-
Linux网络连接的三种模式
- 桥接模式 ,虚拟系统可以和外部系统通讯,但容易造成IP冲突
- NAT模式,网络地址转换模式,虚拟系统可以和外部系统通讯,不造成IP冲突 “一般推荐直接使用NAT模式即可”
- 主机模式,独立系统
-
文件目录结构
- 具体的目录结构(不用背,知道即可)
-
/bin $\color{red}{[常用]}$ (/usr/bin、/usr/local/bin) 是Binary的缩写,这个目录存放着最常用使用的命令
-
/sbin $\color{red}{[常用]}$ s就是Super user的意思,这里存放的是系统管理员使用的系统管理程序。
-
/home $\color{red}{[常用]}$ 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户账户命名
-
/root $\color{red}{[常用]}$ 该目录为系统管理员,超级权限的用户主目录。
-
/etc $\color{red}{[常用]}$ 所有的系统管理所需要的配置文件和子目录,例如安装MySQL数据库my.conf等等...
-
/usr $\color{red}{[常用]}$ 非常重要的目录吗,用户的很多应用程序和文件都放在这个目录,类似于windows下的program目录。
-
/boot $\color{red}{[常用]}$ 是Linux启动的时候使用的一些核心文件,包括一些连接文件以及镜像文件
-
/proc $\color{green}{[不能动]}$ 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
-
/srv$\color{green}{[不能动]}$ service缩写,该目录存放一些服务器之后需要提取的数据
-
/sys $\color{green}{[不能动]}$是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs
-
/dev 是设备管理器 Linux统一把所以硬件映射成文件来管理,类似于windows的设备管理器
-
/media $\color{red}{[常用]}$linux系统会自动识别一些设备,例如U盘、光驱等等、当识别后,linux会把识别的设备挂载到这个目录下
-
/mnt $\color{red}{[常用]}$ 系统提供目录是为了让用户临时挂载别的文件系统的,可以将尾部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
-
/opt 这是给主机额外$\color{red}{[安装软件]}$所存放的目录,如安装ORACLE数据库、jdk、tomcat就可放到该目录下。默认为空
-
/usr/local $\color{red}{[常用]}$ 这是另一个给主机额外安装软件所安装的目录.已经安装好的目标目录,一般是通过编译源码方式安装的程序
-
/var $\color{red}{[常用]}$ 这个目录中存放这在不断昆虫这的东西,习惯将经常修改的目录放在这个目录下。包括各种日志文件
-
/tmp 这个目录是存放一些临时文件的
-
/lib 系统开机所需要是最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
-
/selinux 【security-enhanced linux】 SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置。
-
/lost+found 这个目录一般为空,当系统非法关机,这里存放了一些文件,一般情况隐藏起来的。
总结:在linux世界里,一切皆是文件
-
vi和vim的基本使用
-
正常模式
以vim打开的一个档案就直接进去一般模式(默认模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制,粘贴】来处理你的文件数据
-
插入模式
按下i,I,o,O,A,r,R等任何一个字母之母才会进入编辑模式,一般来说按 i 即可。
-
命令行模式
+输入esc再输入: 这个模式当中,可以提供你相关指令,完成读取,存盘,替换,离开vim,显示行号等的动作则是在此模式中达成的 :wq(保存退出) :q(退出) :q!(强制退出) :wq!(保存并强制退出)
- 快捷键的使用:$\color{green}{一般模式下输入}$
-
拷贝当前行 yy,拷贝当前向下的5行 5yy, 并粘贴(输入p)
-
删除当前行 dd,删除当前向下的5行 5dd
-
在文件中查找某个单词[命令行下 输入: /关键词,回车查找,输入n就是查找下一个]
-
设置文件的行号,取消文件的行号.[命令行下 :set un 和 :set nonu]
-
编辑/etc/profile文件,是同快捷键到该文档的 最末行[G] 和 最首行[gg]
-
在一个文件中输入“hello”,然后又 撤销这个动作 u
-
编辑/etc/profile文件, 并将光标移动到你目标行 输入目标行,再输入 shift+g
-
关机&重启命令
- shutdown -h(halt) now --立刻关机
- shutdown -h(halt) 1 --1分钟后关机
- shutdown -r(reboot) now --现在重新启动计算机
- halt --关机
-
reboot --现在重启计算机
sync --把内存的数据同步到磁盘
-
用户登录和注销
- 普通用户登录 ”su - 用户名“ 切换成系统管理员身份
- 在提示符下输入logout即可注销用户
-
用户管理操作
进入/home/目录下/
-
输入:useradd 添加用户
-
输入:userdel 用户名 删除用户
-
输入:passwd 用户名 即可给用户名设置新密码
-
输入:groupadd -g 组名 添加组名
-
输入:groupdel 组名 删除组名
-
输入:usermod -g 组名 修改组名
- /etc/passwd文件
用户(user)的配置文件,记录用户的各种信息 每行的含义:
$\color{blue} {用户名:口令:用户标识号:组标识号:注释性描述:登录Shell}$
- /etc/shadow文件
口令的配置文件 每行的含意:
$\color{blue}{登录名:加密口令:最后一次修改时间:最小时间间隔:警告时间:不活动时间:失效时间:标志}$
- /etc/group文件
组(group)的配置文件,记录Linux包含的组的信息 每行含义
$\color{blue}{组名:口令:组标识号:}$
-
运行级别
- 多用户状态又网络服务: init 3
- 图形界面: init 5
- 系统重启: init 6
-
找回root密码(不需要记&背)
- 在登录页面前5秒按下 “e” 进入编辑界面,使用键盘上的上下光标往下移动,找到以 “”Linux16" 开头内容所在的行数”,在行的最后面输入:init=/bin/sh
- 接着直接按快捷键:Ctrl+x 进入单用户模式
- 接着在光标闪烁的位置中输入: mount -o remount,rm / 回车
- 在新的一行最后面输入:passwd
- 输入你新密码
- 接着在光标闪烁的为重中(最后一行中)输入: touch /.autorelabel(注意touch后面与/有一个空格)
- 继续在光标闪烁的位置上,输入:exec /sbin/init(注意exec与/后面有一个空格),等待系统自动修改密码(过程时间有点长)完成后,系统会自动重启,新的密码生效了
-
帮助指令
- man获得帮助信息
- 基本语法 :man命令或配置文件
- 案例 :查看ls命令的帮助信息 man ls
- 在linux下,隐藏文件是以 .开头
-
help指令
- 基本语法: help命令(功能描述:获得shell内置命令帮助信息)
-
文件目录指令(基本且重要)
- ls(英文全拼:list files): 列出目录及文件名
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)
- cd(英文全拼:change directory):切换目录
使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..
- pwd(英文全拼:print work directory):显示目前的目录
-P :显示出确实的路径,而非使用连结 (link) 路径。
- mkdir(英文全拼:make directory):创建一个新的目录
mkdir [-mp] 目录名称
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
- rmdir(英文全拼:remove directory):删除一个空的目录
rmdir [-p] 目录名称
-p :连同上一级『空的』目录也一起删除
- touch :创建空文件
基本语法 --touch 文件名称
- cp(英文全拼:copy file): 复制文件或目录
-a:相当於 -pdr 的意思,至於 pdr 请参考下 列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
- rm(英文全拼:remove): 删除文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
- mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
-
Linux 文件内容查看
-
Linux系统中使用以下命令来查看文件的内容:
-
- cat 由第一行开始显示文件内容
只能浏览文件,而不能修改文件,为了浏览方便,一帮会带上 $\color{red}{管道命令}$|more
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写
- nl 显示的时候,顺道输出行号!
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
- more 一页一页的显示文件内容
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本的内容。more指令中内置了诺干个快捷键(交互的指令)
空白键 (space):代表向下翻一页;
Enter:代表向下翻『一行』;
/字串:代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f:立刻显示出档名以及目前显示的行数;
q:代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
- echo 类似于PHP的echo指令,都是用于字符串的输出
- head 只看头几行
-n :后面接数字,代表显示几行的意思
- tail 只看尾巴几行
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
- >指令和>>指令
>输出重定向和>>追加
- 基本语法
ls -l >文件 (功能描述:列表的内容写入文件xx.txt中(覆盖写))
ls -al >>文件 (功能描述:列表的内容追加到文件xx.txt的末尾)
cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
echo “内容” >> 文件
- ln(英文全拼:link files):功能是为某一个文件在另外一个位置建立一个不同的链接
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接) (常用)
-v 显示详细的处理过程
- history:查看以往的曾经输入的命令列表
-
时间日期类
基本语法 date “+%Y-%m-%d% %H:%M:%S”(功能描述:显示-年月日时分秒)
时间方面-参数
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S(功能描述:显示-时分秒)
%Z : 显示时区
时间方面-参数
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
cal:查看日历指令
-
搜索查找类
find:指令从指定目录下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。
基本语法:find /(斜杆指查询所有) -参数 目标
-name 文件名称
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-user<用户名>:查询用户名为xx的目标文件
locate:快速定位文件路径,会建立自己的一个数据库,无需遍历整个文件系统,查询快,第一次运行前““必须使用updatedb指令””创建locate数据库
- 基本语法:updatedb 回车 locate 文件名称
总结find和locate的区别说明:
locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:updatedb
which:指令会在环境变量$PATH设置的目录里查找符合条件的文件
- 基本语法:which ls(命令符)
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息。
grep过滤指令&管道符号 | :表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法:grep [参数] 查找内容 源文件
- -n 功能显示匹配行及行号
- -i 功能忽略字母大小写
-
压缩和解压类
- gzip/gunzip 指令: --gzip用于压缩文件,gunzip用于解压的
基本语法:
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
- zip/unzip指令: zip用于压缩文件,unzip用于解的,在项目打包发布中很有用
基本语法:
zip [参数] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [参数] XXX.zip (功能描述:解压缩文件)
-r:递归压缩,即压缩命令
-d《目录》:指定解压后文件的存放目录
- tar指令: 打包指令,最后打包后的文件是.tar.gz的文件
基本语法:
tar [参数] XXX.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)-c 功能产生.tar打包文件
-v 功能显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
总结打包和压缩
-
打包:将一堆文件或目录什么的变成一个总的文件。
-
压缩:将一个大的文件经过某种压缩算法变成一个小文件。
为什么要区分这两个概念呢?因为Linux中的很多压缩程序只能针对一个文件进行压缩,所以当你想要压缩一大堆文件时,首先需要打个包,然后压缩。