一、 Linux基础
常用发行版本:
RedHat Linux或Fedora Core Linux
SlackeWare Linux
SuSE Linux
Debian Linux
红旗Linux
Bash命令行的优势
通过上下键来调取过往执行的Linux命令
命令或参数仅需输入前几位可以用tab键补全
具有强大的批处理脚本
具有适用的环境变量功能
二、 认识Linux
选择登录方式
/etc/inittab文件
打开/etc目录下的inittab文件
从中找到“id:5:initdefault”行;
“3”代表文本模式,5代表X windows模式
修改保存inittab文件后重启即可进入文本或X windows模式
三、 常用命令
yum-rpm软件包管理
语法
yum(选项)(参数)
选项
-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。
参数
install:安装rpm软件包;
update:更新rpm软件包;
check-update:检查是否有可用的更新rpm软件包;
remove:删除指定的rpm软件包;
list:显示软件包的信息;
search:检查软件包的信息;
info:显示指定的rpm软件包的描述信息和概要信息;
clean:清理yum过期的缓存;
shell:进入yum的shell提示符;
resolvedep:显示rpm软件包的依赖关系;
localinstall:安装本地的rpm软件包;
localupdate:显示本地rpm软件包进行更新;
deplist:显示rpm软件包的所有依赖关系。
ls –查看目录下文件
语法
ls(选项)(参数)
选项
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-A:显示除隐藏文件“.”和“…”以外的所有文件列表;
-C:多列显示输出结果。这是默认选项;
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
-F:在每个输出项后追加文件的类型标识符,具体含义:“”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
–file-type:与“-F”选项的功能相同,但是不显示“”;
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间及文件名;
-m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-t:用文件和目录的更改时间排序;
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
–full-time:列出完整的日期与时间;
–color[=WHEN]:使用不同的颜色高亮显示不同类型的。
参数
目录:指定要显示列表的目录,也可以是具体的文件。
-a列出的信息含义
-rw-r-r-- 1 root root 14 11月 24 01:31 file3
文件类型:“-”表示常规文件;“d”表示目录;“c”表示字符设备;“b”表示块设备文件;“s”表示管道文件;“l”表示链接文件。
文件读取权限:从左到右每3个为1组,依次代表文件拥有者、同组用户和其他用户的读取权限。通常文件有3个权限,“r”代表只读;“w”代表只写;“x”代表可执行,“-”表示未设置。
文件的属主和组:在Linux下每个文件都属于特定的用户和组,文件的属主和超级用户对文件用户最大的读取权限。
颜色和文件类型
颜色 含义
默认的shell文本颜色 普通文件
绿色 可执行文件
蓝色 目录
紫红色 符号链接文件
黄色 管道
紫红色 套接字
红色 压缩文件
紫红色 图片文件
紫红色 音频文件
cd-切换文件目录
语法
cd (选项) (参数)
选项
-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
- 当仅实用"-“一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。
实例
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd … 返回上级目录(若当前目录为“/“,则执行完后还在“/”;"…"为上级目录的意思);
cd …/… 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
grep-指定文件中搜索指定字符内容
语法
grep (选项)(参数)
选项
-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找,显示不包含匹配文本的所有行。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
参数
匹配字符
文件目录
pwd-查看当前工作路径
语法
pwd(选项)
选项
–help:显示帮助信息;
–version:显示版本信息。
mkdir-创建空白目录
语法
mkdir (选项)(参数)
选项
-Z:设置安全上下文,当使用SELinux时有效;
-m<目标属性>或–mode<目标属性>建立目录的同时设置目录的权限;
-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
–version 显示版本信息。
参数
目录:指定要创建的目录列表,多个目录之间用空格隔开。
cat-查看文件内容
语法
cat(选项)(参数)
选项
-n或-number:有1开始对所有输出的行数编号;
-b或–number-nonblank:和-n相似,只不过对于空白行不编号;
-s或–squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
参数
文件列表:指定要连接的文件列表。
find-查找指定的文件名
语法
find(选项)(参数)
选项
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-false:将find指令的回传值皆设为False;
-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-help或——help:在线帮助;
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:将find指令的回传值皆设为True;
-typ<文件类型>:只寻找符合指定的文件类型的文件;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-version或——version:显示版本信息;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
参数
起始目录:查找文件的起始目录。
rm-删除文件或目录
语法
rm (选项)(参数)
选项
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
–preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
参数
文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。
mv-移动(剪切)文件或修改文件名
语法
mv(选项)(参数)
选项
–backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
–strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
–target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
参数
源文件:源文件列表。
目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。
clear-清屏
无任何参数
ps-查看进程信息
语法
ps(选项)
选项
-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
a:显示现行终端机下的所有程序,包括其他用户的程序。
-A:显示所有程序。
-c:显示CLS和PRI栏位。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:此选项的效果和指定"A"选项相同。
e:列出程序时,显示每个程序所使用的环境变量。
-f:显示UID,PPIP,C与STIME栏位。
f:用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称>:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g:显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码>:列出属于该群组的程序的状况,也可使用群组名称来指定。
h:不显示标题列。
-H:显示树状结构,表示程序间的相互关系。
-j或j:采用工作控制的格式显示程序状况。
-l或l:采用详细的格式来显示程序状况。
L:列出栏位的相关信息。
-m或m:显示所有的执行绪。
n:以数字来表示USER和WCHAN栏位。
-N:显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码>:指定程序识别码,并列出该程序的状况。
p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r:只列出现行终端机正在执行中的程序。
-s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s:采用程序信号的格式显示程序状况。
S:列出程序时,包括已中断的子程序资料。
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T:显示现行终端机下的所有程序。
-u<用户识别码>:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
-U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称>:列出属于该用户的程序的状况。
v:采用虚拟内存的格式显示程序状况。
-V或V:显示版本信息。
-w或w:采用宽阔的格式来显示程序状况。
x:显示所有程序,不以终端机来区分。
X:采用旧式的Linux i386登陆格式显示程序状况。
-y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码>:此选项的效果和指定"p"选项相同。
–cols<每列字符数>:设置每列的最大字符数。
–columns<每列字符数>:此选项的效果和指定"–cols"选项相同。
–cumulative:此选项的效果和指定"S"选项相同。
–deselect:此选项的效果和指定"-N"选项相同。
–forest:此选项的效果和指定"f"选项相同。
–headers:重复显示标题列。
–help:在线帮助。
–info:显示排错信息。
–lines<显示列数>:设置显示画面的列数。
–no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
–group<群组名称>:此选项的效果和指定"-G"选项相同。
–Group<群组识别码>:此选项的效果和指定"-G"选项相同。
–pid<程序识别码>:此选项的效果和指定"-p"选项相同。
–rows<显示列数>:此选项的效果和指定"–lines"选项相同。
–sid<阶段作业>:此选项的效果和指定"-s"选项相同。
–tty<终端机编号>:此选项的效果和指定"-t"选项相同。
–user<用户名称>:此选项的效果和指定"-U"选项相同。
–User<用户识别码>:此选项的效果和指定"-U"选项相同。
–version:此选项的效果和指定"-V"选项相同。
–widty<每列字符数>:此选项的效果和指定"-cols"选项相同。
man-联机帮助命令
date-显示及设置系统的时间或日期
语法
date(选项)(参数)
选项
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
–help:在线帮助;
–version:显示版本信息。
参数
<+时间日期格式>:指定显示时使用的日期时间格式。
日期格式列表
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分钟(00~59)
%p 显示出AM或PM
%r 显示时间,12小时制(hh:mm:ss %p)
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 显示秒(00~59)
%T 显示时间,24小时制(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 显示时区,日期域(CST)
%a 星期的简称(Sun~Sat)
%A 星期的全称(Sunday~Saturday)
%h,%b 月的简称(Jan~Dec)
%B 月的全称(January~December)
%c 日期和时间(Tue Nov 20 14:12:58 2012)
%d 一个月的第几天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%y 年的最后两个数字(1999则是99)
echo-在终端输出字符串或变量提取后的值
语法
echo(选项)(参数)
选项
-e:激活转义字符。
使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
参数
变量:指定要打印的变量。
实例
echo -e “\e[1;31mThis is red text\e[0m”
This is red text
reboot-重启系统
语法
reboot(选项)
选项
-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
-f:强制重新开机,不调用shutdown指令的功能;
-i:在重开机之前,先关闭所有网络界面;
-n:重开机之前不检查是否有未结束的程序;
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
poweroff- 关闭系统
语法
poweroff(选项)
选项
-n:关闭操作系统时不执行sync操作;
-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
-f:强制关闭操作系统;
-i:关闭操作系统之前关闭所有的网络接口;
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
wget-在终端中下载网络文件
语法
wget (选项) (参数)
选项
-a<日志文件>:在指定的日志文件中记录资料的执行过程;
-A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
-b:进行后台的方式运行wget;
-B<连接地址>:设置参考的连接地址的基地地址;
-c:继续执行上次终端的任务,即断点续传;
-C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
-d:调试模式运行指令;
-D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
-e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令;
-h:显示指令帮助信息;
-i<文件>:从指定文件获取要下载的URL地址;
-l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
-L:仅顺着关联的连接;
-r:递归下载方式;
-nc:文件存在时,下载文件不覆盖原有文件;
-nv:下载时只显示更新和出错信息,不显示指令的详细执行过程;
-p:下载页面内所有资源,包括图片、视频等;
-P:下载到指定目录;
-t:最大尝试次数;
-q:不显示指令执行过程;
-nh:不查询主机名称;
-v:显示详细执行过程;
-V:显示版本信息;
–passive-ftp:使用被动模式PASV连接FTP服务器;
–follow-ftp:从HTML文件中下载FTP连接文件。
参数
URL:下载指定的URL地址。
ps-查看系统中进程状态
语法
ps(选项)
选项
-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
a:显示现行终端机下的所有程序,包括其他用户的程序。
-A:显示所有程序。
-c:显示CLS和PRI栏位。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:此选项的效果和指定"A"选项相同。
e:列出程序时,显示每个程序所使用的环境变量。
-f:显示UID,PPIP,C与STIME栏位。
f:用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称>:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g:显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码>:列出属于该群组的程序的状况,也可使用群组名称来指定。
h:不显示标题列。
-H:显示树状结构,表示程序间的相互关系。
-j或j:采用工作控制的格式显示程序状况。
-l或l:采用详细的格式来显示程序状况。
L:列出栏位的相关信息。
-m或m:显示所有的执行绪。
n:以数字来表示USER和WCHAN栏位。
-N:显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码>:指定程序识别码,并列出该程序的状况。
p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r:只列出现行终端机正在执行中的程序。
-s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s:采用程序信号的格式显示程序状况。
S:列出程序时,包括已中断的子程序资料。
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T:显示现行终端机下的所有程序。
-u<用户识别码>:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
-U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称>:列出属于该用户的程序的状况。
v:采用虚拟内存的格式显示程序状况。
-V或V:显示版本信息。
-w或w:采用宽阔的格式来显示程序状况。
x:显示所有程序,不以终端机来区分。
-x:显示没有控制终端的进程;
X:采用旧式的Linux i386登陆格式显示程序状况。
-y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码>:此选项的效果和指定"p"选项相同。
–cols<每列字符数>:设置每列的最大字符数。
–columns<每列字符数>:此选项的效果和指定"–cols"选项相同。
–cumulative:此选项的效果和指定"S"选项相同。
–deselect:此选项的效果和指定"-N"选项相同。
–forest:此选项的效果和指定"f"选项相同。
–headers:重复显示标题列。
–help:在线帮助。
–info:显示排错信息。
–lines<显示列数>:设置显示画面的列数。
–no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
–group<群组名称>:此选项的效果和指定"-G"选项相同。
–Group<群组识别码>:此选项的效果和指定"-G"选项相同。
–pid<程序识别码>:此选项的效果和指定"-p"选项相同。
–rows<显示列数>:此选项的效果和指定"–lines"选项相同。
–sid<阶段作业>:此选项的效果和指定"-s"选项相同。
–tty<终端机编号>:此选项的效果和指定"-t"选项相同。
–user<用户名称>:此选项的效果和指定"-U"选项相同。
–User<用户识别码>:此选项的效果和指定"-U"选项相同。
–version:此选项的效果和指定"-V"选项相同。
–widty<每列字符数>:此选项的效果和指定"-cols"选项相同。
Linux系统的五种状态
R(运行):进程正在运行或在运行队列中等待;
S(中断):进程处于休眠中,当某个条件形成后或接受到信号时,则脱离该状态;
D(不可中断):进程不响应系统异步信号,即便用kill命令也不断将其中断;
Z(僵尸):进程已经终止,但进程描述依然存在,直到父进程调用wait4()系统函数将进程释放;
T(停止):进程收到停止信号后停止运行。
top-动态地监视进程活动与系统负载等信息
语法
top(选项)
选项
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。
top交互命令
h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。
pidof-查询某个指定指定服务进程的pid值
语法
pidof(选项)(参数)
选项
-s:仅返回一个进程号;
-c:仅显示具有相同“root”目录的进程;
-x:显示由脚本开启的进程;
-o:指定不显示的进程ID。
参数
进程名称:指定要查找的进程名称。
kill-终止某个指定PID的服务进程
语法
kill(选项)(参数)
选项
-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:指定要送出的信息;
-u:指定用户。
参数
进程或作业识别号:指定要删除的进程或作业。
killall-终止指定名称的服务所对应的全部进程
语法
killall(选项)(参数)
选项
-e:对长名称进行精确匹配;
-l:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称;
-s:用指定的进程号代替默认信号“SIGTERM”;
-u:杀死指定用户的进程。
参数
进程名称:指定要杀死的进程名称。
四、 系统检测命令
ifconfig-获取网卡配置和网络状态等信息
语法
ifconfig(参数)
参数
add<地址>:设置网络设备IPv6的ip地址;
del<地址>:删除网络设备IPv6的IP地址;
down:关闭指定的网络设备;
<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;
io_addr<I/O地址>:设置网络设备的I/O地址;
irq<IRQ地址>:设置网络设备的IRQ;
media<网络媒介类型>:设置网络设备的媒介类型;
mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
mtu<字节>:设置网络设备的MTU;
netmask<子网掩码>:设置网络设备的子网掩码;
tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;
up:启动指定的网络设备;
-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
-promisc:关闭或启动指定网络设备的promiscuous模式;
IP地址:指定网络设备的IP地址;
网络设备:指定网络设备的名称。
网络设备信息
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)。
第二行:网卡的IP地址、子网、掩码。
第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节。
第四、五行:接收、发送数据包情况统计。
第七行:接收、发送数据字节数统计信息。
uname-查看系统内核和系统版本信息
语法
uname(选项)
选项
-a或–all:显示全部的信息;
-m或–machine:显示电脑类型;
-n或-nodename:显示在网络上的主机名称;
-r或–release:显示操作系统的发行编号;
-s或–sysname:显示操作系统名称;
-v:显示操作系统的版本;
-p或–processor:输出处理器类型或"unknown";
-i或–hardware-platform:输出硬件平台或"unknown";
-o或–operating-system:输出操作系统名称;
–help:显示帮助;
–version:显示版本信息。
uptime-系统的负载信息
显示当前系统时间、系统运行时间、启用终端数量、平均负载信息
语法
uptime(选项)
选项
-V:显示指令的版本信息。
free-显示当前系统中内存的使用量信息
语法
free(选项)
选项
-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-o:不显示缓冲区调节列;
-s<间隔秒数>:持续观察内存使用状况;
-t:显示内存总和列;
-V:显示版本信息。
who-查看当前登入主机的用户终端信息
语法
who(选项)(参数)
选项
-H或–heading:显示各栏位的标题信息列;
-i或-u或–idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
-m:此参数的效果和指定"am i"字符串相同;
-q或–count:只显示登入系统的帐号名称和总人数;
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
-w或-T或–mesg或–message或–writable:显示用户的信息状态栏;
–help:在线帮助;
–version:显示版本信息。
参数
文件:指定查询文件。
last-查看所有系统的登录记录
语法
last(选项)(参数)
选项
-a:把从何处登入系统的主机名称或ip地址,显示在最后一行;
-d:将IP地址转换成主机名称;
-f <记录文件>:指定记录文件。
-n <显示列数>或-<显示列数>:设置列出名单的显示列数;
-R:不显示登入系统的主机名称或IP地址;
-x:显示系统关机,重新开机,以及执行等级的改变等信息。
参数
用户名:显示用户登录列表;
终端:显示从指定终端的登录列表。
history-历史执行过的命令
语法
history(选项)(参数)
选项
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中。
参数
n:打印最近的n条历史命令。
sosreport-收集系统配置及架构信息并输出诊断文档
五、 工作目录切换命令
pwd-显示用户当前所处的工作目录
cd-切换工作路径
ls-显示目录中文件信息
六、 文本文件编辑命令
cat-查看纯文本文件(文本内容较少)
more-查看纯文本文件(内容较多)
head-查看纯文本文档的前N行
tail-查看纯文本文档的后N行或持续刷新内容
tr-用于替换文本文件中的字符
wc-用于统计指定文本的行数、字数、字节数
stat-查看文件的具体存储信息和时间等信息
cut-按“列”提取文本字符
diff-比较多个文件之间差异
more-查看纯文本文件(内容较多)
常用功能键
按Space键:显示文本的下一屏内容。
按Enier键:只显示文本的下一行内容。
按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键:显示帮助屏,该屏上有相关的帮助信息。
按B键:显示上一屏内容。
按Q键:退出rnore命令。
语法
more(语法)(参数)
选项
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,‘q’ to quit.]”和“[Press ‘h’ for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+<数字>:从指定数字的行开始显示。
参数
文件:指定分页显示内容的文件。
head-查看纯文本文档的前N行
语法
head(选项)(参数)
选项
-n<数字>:指定显示头部内容的行数;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。
参数
文件列表:指定显示头部内容的文件列表。
tail-查看纯文本文档的后N行或持续刷新内容
语法
tail(选项)(参数)
选项
–retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c或——bytes=:输出文件尾部的N(N为整数)个字节内容;
-f<name/descriptor>或;–follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“–retry"连用时功能相同;
-n或——line=:输出文件的尾部N(N位数字)行内容。
–pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;
–help:显示指令的帮助信息;
–version:显示指令的版本信息。
参数
文件列表:指定要显示尾部内容的文件列表。
tr-用于替换文本文件中的字符
语法
tr(选项)(参数)
选项
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或–squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或–truncate-set1:先删除第一字符集较第二字符集多出的字符。
参数
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
字符集2:指定要转换成的目标字符集。
wc-用于统计指定文本的行数、字数、字节数
语法
wc(选项)(参数)
选项
-c或–bytes或——chars:只显示Bytes数;
-l或——lines:只显示列数;
-w或——words:只显示字数。
参数
文件:需要统计的文件列表。
stat-查看文件的具体存储信息和时间等信息
语法
stat(选项)(参数)
选项
-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
–help:显示指令的帮助信息;
–version:显示指令的版本信息。
参数
文件:指定要显示信息的普通文件或者文件系统对应的设备文件名。
cut-按“列”提取文本字符
语法
cut(选项)(参数)
选项
-b:仅显示行中指定直接范围的内容;
-c:仅显示行中指定范围的字符;
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
-f:显示指定字段的内容;
-n:与“-b”选项连用,不分割多字节字符;
–complement:补足被选择的字节、字符或字段;
–out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;
–help:显示指令的帮助信息;
–version:显示指令的版本信息。
参数
文件:指定要进行内容过滤的文件。
diff-比较多个文件之间差异
语法
diff(选项)(参数)
选项
-<行数>:指定要显示多少行的文本。此参数必须与-c或-u参数一并使用;
-a或——text:diff预设只会逐行比较文本文件;
-b或–ignore-space-change:不检查空格字符的不同;
-B或–ignore-blank-lines:不检查空白行;
-c:显示全部内容,并标出不同之处;
-C<行数>或–context<行数>:与执行“-c-<行数>”指令相同;
-d或——minimal:使用不同的演算法,以小的单位来做比较;
-D<巨集名称>或ifdef<巨集名称>:此参数的输出格式可用于前置处理器巨集;
-e或——ed:此参数的输出格式可用于ed的script文件;
-f或-forward-ed:输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处;
-H或–speed-large-files:比较大文件时,可加快速度;
-l<字符或字符串>或–ignore-matching-lines<字符或字符串>:若两个文件在某几行有所不同,而之际航同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异;
-i或–ignore-case:不检查大小写的不同;
-l或——paginate:将结果交由pr程序来分页;
-n或——rcs:将比较结果以RCS的格式来显示;
-N或–new-file:在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录,文件A 若使用-N参数,则diff会将文件A 与一个空白的文件比较;
-p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称;
-P或–unidirectional-new-file:与-N类似,但只有当第二个目录包含了第一个目录所没有的文件时,才会将这个文件与空白的文件做比较;
-q或–brief:仅显示有无差异,不显示详细的信息;
-r或——recursive:比较子目录中的文件;
-s或–report-identical-files:若没有发现任何差异,仍然显示信息;
-S<文件>或–starting-file<文件>:在比较目录时,从指定的文件开始比较;
-t或–expand-tabs:在输出时,将tab字符展开;
-T或–initial-tab:在每行前面加上tab字符以便对齐;
-u,-U<列数>或–unified=<列数>:以合并的方式来显示文件内容的不同;
-v或——version:显示版本信息;
-w或–ignore-all-space:忽略全部的空格字符;
-W<宽度>或–width<宽度>:在使用-y参数时,指定栏宽;
-x<文件名或目录>或–exclude<文件名或目录>:不比较选项中所指定的文件或目录;
-X<文件>或–exclude-from<文件>;您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件;
-y或–side-by-side:以并列的方式显示文件的异同之处;
–help:显示帮助;
–left-column:在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容;
–suppress-common-lines:在使用-y参数时,仅显示不同之处。
参数
文件1:指定要比较的第一个文件;
文件2:指定要比较的第二个文件。
七、 文件目录管理命令
touch-创建空白文件或设置文件的时间
mkdir-创建空白目录
cp-复制文件或目录
mv-移动(剪切)文件或修改文件名
rm-删除文件或目录
dd-按照指定大小和个数的数据块来复制或转换文件
file-查看文件类型
touch-创建空白文件或设置文件的时间
语法
touch (选项) (参数)
选项
-a:或–time=atime或–time=access或–time=use 只更改存取时间;
-c:或–no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或–time=mtime或–time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
–help:在线帮助;
–version:显示版本信息。
参数
文件:指定要设置时间属性的文件列表。
cp-复制文件或目录
语法
cp (选项) (参数)
选项
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
参数
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
dd-按照指定大小和个数的数据块来复制或转换文件
语法
dd (选项)
选项
bs=<字节数>:将ibs(输入)与obs(输出)设成指定的字节数;
cbs=<字节数>:转换时,每次只转换指定的字节数;
conv=<关键字>:指定文件转换的方式;
if:输入的文件名称;
count=<区块数>:仅读取指定的区块数;
ibs=<字节数>:每次读取的字节数;
obs=<字节数>:每次输出的字节数;
of=<文件>:输出到文件;
seek=<区块数>:一开始输出时,跳过指定的区块数;
skip=<区块数>:一开始读取时,跳过指定的区块数;
–help:帮助;
–version:显示版本信息。
参数解释
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
bs 代表字节为单位的块大小。
count 代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回0值字节(\0)。
file-查看文件类型
语法
file (选项)(参数)
选项
-b:列出辨识结果时,不显示文件名称;
-c:详细显示指令执行过程,便于排错或分析程序执行的情形;
-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;
-L:直接显示符号连接所指向的文件类别;
-m<魔法数字文件>:指定魔法数字文件;
-v:显示版本信息;
-z:尝试去解读压缩文件的内容。
参数
文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
八、 打包压缩与搜索命令
tar-对文件进行压缩或解压
grep-指定文件中搜索指定字符内容
find-查找指定的文件名
tar-对文件进行压缩或解压
语法
tar(选项)(参数)
选项
-A或–catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或–create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或–extract或–get:从备份文件中还原文件;
-t或–list:列出备份文件的内容;
-z或–gzip或–ungzip:通过gzip指令处理备份文件;
-Z或–compress或–uncompress:通过compress指令处理备份文件;
-f<备份文件>或–file=<备份文件>:指定备份文件;
-v或–verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或–same-permissions:用原来的文件权限还原文件;
-P或–absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
–exclude=<范本样式>:排除符合范本样式的文件。
参数
文件或目录:指定要打包的文件或目录列表。
Zip-进行归档和压缩
常用参数及作用
参数 作用
-[0-9] 压缩率,0代表压缩程度最小,9代表压缩程度最大
-P 进行显码输入密码
-e 进行隐藏加密
Unzip-进行解密
涉及参数及作用
参数 作用
-l 列出将要解密的文件
-t 测试将要解密的文件
Gzip-进行归档和压缩
参数 作用
-r 进行递归性压缩
-[0-9] 定义相应的压缩率
Gunzip-进行解压
不管是压缩文件还是解压文件,原来的文件都会被删除。
Bzip2-进行归档和压缩
进行归档和压缩文件使用-zcvf,测试将要解压的文件使用-zvtf或-zxvf
九、 管道符、重定向与环境变量
输入输出重定向
标准输入重定向(STDIN,文件描述符为0):默认键盘输入,也可以从其他命令或文件输入;
标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕;
错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕;
输入重定向中用到的符号及作用
符号 作用
命令 < 文件 将文件作为命令的标准输入
命令 << 分界符 从标准输入中读入,直到遇见分界符才停止
命令 <文件1> 文件2 文件1作为命令的标准输入标准输出到文件2
输出重定向中用到的符号及作用
符号 作用
命令 > 文件 将标准输出重定向到一个文件中(清空原来数据)
命令 2 >文件 将错误输出重定向到一个文件中(清空原来数据)
命令 >> 文件 将标准输出重定向到一个文件中(追加到原来内容后面)
命令 2>> 文件 将错误输出重定向到文件中(追加到原来内容后面)
命令 >> 文件 2>&1或命令 &>>文件 将标准输出与错误输出共同写入文件中(追加到原来内容后面)
管道命令符
命令行的通配符
*代表匹配零个或多个字符;
?代表匹配单个字符;
\ 标记下一个字符是特殊字符或文字;
^ 匹配输入的开头;
$ 匹配输入的末尾;
- 匹配前一个字符一次或多次;
. 匹配除换行字符外的任何单个字符;
[xyz] 匹配括号内的任一字符;
[^xyz] 匹配非括号内的任何字符
\b 匹配字的边界,也就是说,在字和空格之间的位置。例如,“er\b” 和 “never” 中的 “er” 匹配,但和 “verb” 中的 “er” 不匹配。
\B 匹配非字边界。“ear\B" 和 “never early” 中的 “ear” 匹配。
\d 匹配数字字符。等价于 [0-9]。
\D 匹配非数字字符。等价于 [^0-9]。
\f 匹配换页字符。
\n 匹配换行字符。
\r 匹配回车符字符。
\s 匹配任何空白,包括空格、制表、换页等。与 “[ \f\n\r\t\v]” 等效。
\S 匹配任何非空白字符。与 “[^ \f\n\r\t\v]” 等效。
\t 匹配制表字符。
\v 匹配垂直制表符。
\w 匹配包括下划线在内的任何字字符。与 “[A-Za-z0-9_]” 等效。
\W 匹配任何非字字符。与 “[^A-Za-z0-9_]” 等效。
\num 匹配 num,其中 num 是一个正整数。返回记住的匹配的引用。例如,"(.)\1" 匹配两个连续的同一字符。
\n 匹配 n,其中 n 是八进制换码值。八进制换码值必须是 1、2、或 3 位长。例如,"\11" 和 “\011” 都匹配制表字符。"\0011" 和 “\001” & “1” 是等效的。八进制换码值必须不超过 256。如果超过了,则只有前两位组成表达式。允许在正则表达式中使用 ASCII 码。
\xn 匹配 n,其中 n 是十六进制换码值。十六进制换;
{n} 匹配 n 次。n 是非负整数
{n,} n 是一个非负整数。至少匹配 n 次。例如,“o{2,}” 和 “Bob” 中的 “o” 不匹配,但和 “foooood” 中的所有 o 匹配。“o{1,}” 与 “o+” 等效。“o{0,}” 和 "o” 等效。
{n,m} m 和 n 是非负整数。至少匹配 n 次而至多匹配 m 次。例如,“o{1,3}” 和 “fooooood” 中的前三个 o 匹配。“o{0,1}” 和 “o?” 等效。
重要环境变量
变量名称 作用
HOME 用户的主目录
SHELL 用户在使用的SHell解释器名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
MAIL 邮件保存路径
LANG 系统语言、语系名称
RANDOM 生成一个随机数字
PS1 Bash解释器的提示符
PATH 定义解释器搜索用户执行命令的路径
EDITOR 用户默认的文本编辑器
常用转义字符
反斜杠():使反斜杠后面的一个变量变为单纯的字符串;
单引号(‘’):转义其中所有的变量为单纯的字符串;
双引号(“”):保留其中变量属性,不进行转义处理;
反引号(``):把其中命令执行后返回结果。
十、 Vim编辑器与Shell命令脚本
Vim文本编辑器
Vim的三种模式:命令模式、输入模式、末行模式
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等操作;
输入模式:正常文本录入;
末行模式:保存或退出文档,以及设置编辑环境;
Vim中常用命令
命令 作用
dd 删除(剪切)光标所在的行
5dd 删除(剪切)光标开始处的5行
yy 复制光标所在的行
5yy 复制从光标开始的5行
n 显示搜索命令定位到的下一个字符串
N 显示搜索命令定位到的上一个字符串
u 撤销上一步操作
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
末行模式可用的命令
命令 作用
:w 保存
:q 退出
:q! 强制退出(放弃文档修改的权利)
:set nu 显示行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到该行
:s /one/two 将当前光标所在行的第一个one替换成two
:s/one/two/q 将当前光标所在行的所有one替换成two
:%s/one/two/q 将全文中的所有one替换成two
?字符串 在文本中从下至上搜索该字符串
/字符串 在文本中从上至下搜索该字符串
简单编辑该文档
进入编辑模式的三种方式:a、i、o
a:在光标后一位切换到输入模式;
i:在光标当前位置切换到输入模式;
o:在光标的下面再创建一盒空行;
配置主机名称
- 使用Vim编辑器修改“/etc/hostname”;
- 把原始主机名称删除后追加“名称”。注意:使用Vim修改主机名称文件后,要在末行模式下执行:wq!命令才能保存并退出文档。
- 保存并退出文档,然后使用hostname命令检查是否修改成功。
配置网卡信息 - 首先切换到/etc/sysconfig/network-scripts目录中;
- 使用Vim修改网卡文件ifcfg-eno16777776,逐项写入下面的配置参数并保存退出:设备类型:TYPE=Ethernet 地址分配模式:BOOTPORTO=static 网卡名称:NAME= eno16777776 是否启动:ONBOOT=yes IP地址:IPADDR=192.168.10.11 子网掩码: NETMASK=255.255.255.0 网关地址:GETWAY=192.168.10.1 DNS地址:DNS1=192.168.10.1
- 重启网络服务并测试网络是否联通。
配置yum软件仓库 - 进入到/etc/yum.repos.d/目录中;
- 使用Vim创建一个名为rhel.repod的新配置文件,主项写入下面加粗的配置参数并保存退出;[rhel-media]:yum仓库唯一标识符,避免与其他搬仓库冲突; name=linuxprob baseurl=file:///media/cdrom:提供的方式包括FTP(ftp://)、HTTP(http://)、本地(file:///)enabled=1设置源是否可用,1为可用,0为禁用; gpgcheck=1 设置此源是否接受校验,1为校验,0为不校验 gpgkey=file:///media/cdrom/RPM-GPG-KEY_redhat-release:若上面参数开启校验,请指定公钥文件地址
- 按配置参数的路径挂载光盘,并把光盘挂载信息写入到/etc/fstab文件中
- 使用“yum install httpd -y”命令检查yum软件仓库是否已经可用。
编写Shell脚本
Shell的两种公工作方式:交互式(interative)、批处理(Barch)
编写简单的脚本
$0 代表脚本文件的名称, $3 则代表该脚本在执行时接收的第三个参数
(#!)用来告诉系统使用哪种 Shell 解释器来执行该脚本;
(#)是对脚本功能和某些命令的介绍信息,使得自己或他人在日后看到这个脚本内容时,可以快速知道该脚本的作用或一些警告信息;
执行Shell文件的方式:bash解释器命令直接运行Shell脚本文件;通过输入完整的路径来执行(出现权限不足时增加权限即可)
接受用户的参数
Shell脚本语言内设了用于接收参数的变量,变量之间可以使用空格间隔。
判断用户的参数
条件语句测试可以分为4种:
文件测试语句;
逻辑测试语句;
整数值比较语句;
字符串比较语句;
文件测试所用的参数
运算符 作用
-d 测试文件是否目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
$?变量显示上一条命令执行后的返回值;
&& 表示当前面的命令执行成功后才会执行它后面的命令;
||表示当前面的命令执行失败后才会执行它后面的命令;
!表示把条件测试中的判断结果取相反值;
¥()-将一个命令的输出插入到另一个命令
可用整数比较运算符
运算符 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否小于等于
-ge 是否大于等于
常见字符串比较运算符
运算符 作用
= 比较字符串是否相等
!= 比较字符串是否不相等
-z 判断字符串是否为空
流程控制语句
计划任务服务程序
计划任务分为:
一次性任务:使用at命令即可实现,想要查看已设置好但还未执行的任务使用“at -l”,将任务删除使用“atrm 任务序号”,设置任务时使用的是交互式
长期性任务:创建和编辑计划任务使用“crontab -e”,查看当前任务使用“crontab -l”,删除某条计划任务使用“crontab -r”,作为管理员可以使用“crontab -u”来编辑他人的计划任务
使用crond设置任务的参数字段说明
字段 说明
分 取值为0-59
时 取值为0-23
日 取值为1-31
月 取值为1-12
星期 取值为0-7其中0和7均表示星期日
命令 要执行的命令或程序脚本
十一、 用户身份和文件权限
用户身份与能力
用户ID(User IDentification)的划分:
管理员的UID为0:系统的管理用户;
系统用户UID为1~999:Linux系统为避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而控制有效范围。
普通用户UID为1000+:由管理员创建的用于日常工作的用户。
用户组ID(GID,Group IDentification):将多个用户划分到一个组中。
Useradd命令-创建新的用户
格式为:useradd [选项] 用户名
使用该命令创建用户账户时,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。
useradd涉及到的参数
参数 作用
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD
-u 指定该账户的默认UID
-g 指定一个初始的用户基本组
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该账户默认Shell解释器
groupadd命令-创建用户组
格式:groupadd [选项] 群组名
usermod命令-修改用户属性
格式:usermod [选项] 用户名
命令中用到的参数
参数 作用
-c 填写用户账户的备注信息
-d –m 参数-m与-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录
-U 解锁用户,允许其登录
-s 变更默认终端
-u 修改用户的UID
Passwd命令-修改用户密码、过期时间、认证信息
格式:passwd [选项] [用户名]
参数及作用
参数 作用
-l 锁定用户,禁止登录
-u 解除锁定,允许登录
–stdin 允许标准输入修改用户密码
-d 使该用户可以空密码登录
-e 强制用户在下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
Userdel命令-删除用户
格式:userdel [选项] 名称
用到的参数及作用
参数 作用
-f 强制用户
-r 同时删除用户和用户家目录
文件权限与归属
常见字符:
-:普通文件;
d:目录文件;
l: 链接文件;
b:块设备文件;
c:字符设备文件;
p:管道文件;
文件权限:
可读(r):能够读取文件的内容;
可写(w):能够编辑、新增、修改、删除文件的内容;
可执行(x):能够运行一个脚本程序;
难点:
目录文件:
可执行:能够进入该目录;
文件权限的字符表示与数字表示
权限分配 文件权限 文件所属组 其他用户
权限项 读 写 执行 读 写 执行 读 写 执行
字符表示 r w x r w x r w x
数字表示 4 2 1 4 2 1 4 2 1
文件的特殊权限
SUID
一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限;
查看passwd命令属性时所有者的权限由rwx变为rws,原本为rw-将变为rwS
SGID
实现两种功能:
- 让执行者临时拥有属组的权利;
- 在某个目录中创建的文件自动继承该目录的用户组。
设置文件所属和所属组:
格式:chown |chmod[参数]所有者:所属组 文件或目录名称
SBIT
用户只能删除自己的文件,不能删除其他用户的文件。文件的其他人权限部分的x执行权限就会被替换t或T,原本有x执行权则会写成t,原本没有x执行权限就会被写成T。
Chmod –R o+t(代表SBIT)
文件的隐藏权限
Chattr命令-用于设置文件的隐藏
格式:chattr [参数] 文件
想要把某个隐藏功能添加到文件上,在命令后追加“+参数”;想要把某个隐藏功能去掉,在后面追加“-参数”。
隐藏参数及作用
参数 作用
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容
S 文件内容在变更后立即同步到硬盘
s 彻底从硬盘中删除,不可恢复
A 不再修改这个文件或目录的最后访问时间
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件或目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并
X 可以直接访问压缩文件中的内容
Lsattr命令-显示文件的隐藏权限
格式:lsattr [参数] 文件
文件访问控制列表(ACL)
Setfacl命令-管理acl规则
格式:setfacl [参数] 文件名称
文件的ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限,使用setfacl可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。
-R 目录文件需要使用该参数进行递归;
-m 普通文件;
-b 删除某个文件的acl
Getfacl-显示文件上设置的ACL信息
格式:getfacl [参数] 文件名称
su命令与sudo服务
su命令与用户之间有一个减号(-),表示完全切换到新的用户,结巴环境变量更新到新用户的相应信息,而不是保留原始信息。
格式:sudo [参数] 命令名称
Sudo服务中用到的参数及作用
参数 作用
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次密码验证
-b 在后台执行指定的指令
-p 更改询问密码的提示语
Sudo功能:
限制用户执行命令;
记录用户执行的每一条命令;
配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
验证密码的后5分钟内无需再让用户再次验证密码。
十二、 存储结构与磁盘划分
一切从”/”开始
Linux系统中的文件从”/”目录开始,按照文件系统层次化标准(FHS)采用树状结构来存放文件,以及定义了常见目录的用途。
Linux系统中常见的目录名称及相对应内容
/boot 开机所需文件-内核、开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口
/etc 配置文件
/home 用户家目录
/bin 存放单用户模式下还可以操作的命令
/lib 开机时所用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin 开机过程中需要的命令
/media 用于挂载设备文件的目录
/opt 放置第三方软件
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态
/usr/local 用户自行安装的软件
/usr/sbin Linux系统开机时不会用到的软件/命令/脚本
/usr/share 帮助与说明文档,也可放置共享文件
/var 主要存放经常变化的文件,如日志
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里
物理设备的命名规则
常见硬件设备及其文件名称
硬件设备 文件名称
IDE设备 /dev/hd[a-d]
SCSSI/SATA/U盘 /dev/sd[a-p]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁盘机 /dev/st0或/dev/ht0
硬盘分区规则:
主分区或扩展区的编号从1开始,到4结束
逻辑分区从5开始
易错点:
/dev/sda中之所以是a,有系统内核的识别顺序决定。
磁盘是由扇区组成,每个扇区容量为512个字节。其中第一个扇区重要,主引导需要占用446个字节,分区表占用64个字节,结束符占用2个字节;其中分区表中每记录一个分区信息就需要16个字节,这样一来最多只有4个分区写到第一个扇区中,即为主分区。
文件系统与数据资料
Linux系统中支持的文件系统:
Ext3:日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。
Ext4:ext3的改进版,能够批量分配block块。
XFS:高性能日志系统RHEL7默认文件系统。
新硬盘的使用:
- 进行分区;
- 格式化文件系统;
- 进行挂载
每个文件占用一个独立的inode表格,默认大小为128字节:
1. 文件的访问权限(read、write、excute);
2. 文件的所有者与所属组(ower、group);
3. 文件大小(size);
4. 文件的创建或内容修改时间(ctime);
5. 文件最后一次访问时间(atime);
6. 文件修改时间(mtime);
7. 文件的特殊权限(SUIT、SGID、SBIT);
8. 文件真实数据地址(point)
挂载硬件设备
Mount命令-挂载文件系统
格式:mount 文件系统 挂载目录
命令参数及作用
参数 作用
-a 挂载所有在/etc/fstab中定义的文件系统
-t 指定文件系统类型
这个命令在系统重启后会失效。
想要硬件设备永久和目录永久自动关联,必须把挂载信息按照指定格式“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”写入/etc/fstab
用于挂载信息的指定格式中,各字段所表示的意义
字段 意义
设备文件 一般为设备的路径+设备名称,也可以写成唯一识别码(UUID)
挂载目录 指定要挂载的目录,需在格式挂载前创建好
格式类型 指定文件系统格式,ext3、ext4等
权限选项 若设置为default,默认为rw,suid,dev,exec,auto,nouser,async
是否备份 若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检 若为1则开机后自动进行自检,为0不自检
Umount命令-用于撤销已经挂载的设备文件
格式:umount [挂载点/设备文件]
添加硬件设备
Fdisk命令-管理磁盘分区
用到命令参数及作用
参数 作用
m 参看全部可用参数
n 添加新的分区
d 删除某个分区信息
l 列出所有可分区类型
t 改变某个分区类型
p 查看分区信息
w 保存并退出
q 不保存直接退出
Du命令-查看文件数据占有量
格式:du [选项] [文件]
添加交换区
SWAP(交换)分区是一种通过预先划分一定的空间,然后把内存中暂时不常用的数据临时存放到硬盘中,有更多的空间来提供程序服务。
SWAP转用分区格式化命令为mkswap;
挂载命令为swapon
磁盘容量配额
Quota命令-磁盘容量配额管理
配额管理的两个功能:软限制和硬限制;
Xfs-quota命令-针对xfs磁盘管理的命令
格式:xfs-quota [参数] 配额 文件系统
参数及作用
参数 作用
-c 以参数的形式执行命令
-x 专家模式
Edquota命令-用于编辑用户的quota配额限制
格式:edquota [参数] [用户]
参数及作用
参数 作用
-u 针对哪个用户进行设置
-g 针对哪个用户组进行设置
软硬方式链接
硬链接(hard link):指向原始文件inode的指针;
软链接(soft link):包含路径名;
Ln命令-创建链接文件
格式:ln [选项] 目标
参数及作用
参数 作用
-s 创建“符号链接”
-f 强制创建文件或目录
-i 覆盖先前访问
-v 显示创建链接
十三、 使用RAID与LVM磁盘阵列技术
RAID(Redundant Array of Indepandent Disks)(独立冗余磁盘阵列)
RAID0-通过软件或硬件的方式将多块物理磁盘串联在一起
提升硬盘数据的吞吐速度,不具备数据备份与错误修复能力。
RAID1-将数据同时写到多个设备
当一个设发生故障时,自动以热交换的方式恢复数据的正常使用。
RAID5-把硬盘的数据奇偶校验信息保存到其他设备中
将磁盘中的数据校验信息保存到除自身以外的每一块硬盘中,利用奇偶校验信息来尝试重建损失的数据。
RAID10-RAID0+RAID1
将磁盘串联与热交换同时使用,进行搭建数据中心。
部署磁盘阵列
Mdadm命令格式:mdadm [模式] <RAID设备名称> [选项] [成员名称]
命令中用到的参数及作用
参数 作用
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列
损坏磁盘阵列及修复
LVM(逻辑卷管理)
十四、 Iptables与firewalld防火墙
防火墙管理工具
定义防火墙策略的房后墙管理工具,一种服务。
RHEL6----iptables-把配置好的防火墙策略交由内核层的netfilter网络过滤器来处理。
RHEL7----firewalld-把配置好的防火墙策略交由内核层面的nftables来处理。
Iptables
策略与规则链
防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后立即结束匹配工作并取执行匹配项中定义的行为。
防火墙策略规则:放行,阻止。
用于处理货过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链依据数据包处理位置的不同进行分类,具体规则:
- 在进行路由选择的选择前处理数据包(PREROUTING);
- 处理流入的数据包(INPUT);
- 处理流出的数据包(OUTPUT);
- 处理转发的数据包(FORWARD);
- 在进行路由选择后处理数据包(POSTROUTING);
Iptables命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,匹配成功按照相应策略规则进行处理
参数 作用
-P 设置默认策略
-F 清空规则链
-L· 查看规则链
-A 在规则链的末尾加入新规则链
-I num 在规则链的头部添加新规则链
-D num 删除某条规则链
-s 匹配来源地址IP/MASK,加叹号“!”表示出这个ip外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如TCP
–dport num 匹配目标端口
–sport num 匹配源端口
Firewalld
Firewalld常用参数及作用
参数 作用
trusted 允许所有的包
home 拒绝流入的流量,除非与流出的流量有关;而如果流量与ssh、mdns、ipp-client、amba-clien与dhcpv6-client服务有关,则允许流量
internal 等同于home
work 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh、ipp-client与dhcpv6-client服务有关,则允许流量
public 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh、dhcpv6-client服务有关,则允许流量
external 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh服务有关,则允许流量
dmz 拒绝流入的流量,除非与流出的流量相关,而如果流量与ssh服务有关,则允许流量
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关
终端管理工具
Firewalld-cmd常用参数与作用
参数 作用
–get-default-zone 查询默认的区域名称
–set-default-one=<区域名称> 设置默认的区域的名称,时期永久生效
–get-zone 显示可用的区域
–get-services 显示预先设定的服务
–get-active-zones 显示正在使用的的区域与网卡名称
–add-source= 将源自此ip或子网的流量导向指定的区域
–remove-source= 不再将源自此ip或子网的流量导向某个指定区域
–add-interface=<网卡名称> 将源自该网卡的所有流量都导向某个指定区域
–change-interface=<网卡名称> 将某个网卡与区域进行关联
–list-all 显示当前区域的网卡配置参数、资源、端口及服务等信息
–list-all-zones 显示所有区域的网卡配置参数、资源、端口及服务等信息
–add-service=<服务名> 设置默认区域允许该服务的流量
–add-port=<端口号/协议> 设置默认该端口的流量
–remove-services=<服务名> 设置默认区域不再允许该服务的流量
–remove-port=<端口号/协议> 设置默认区域不再允许该端口的流量
–reload 让“永久生效”的配置立即生效,并覆盖当前配置
–panic-on 开启应急模式
–panic-off 关闭应急模式
服务的访问控制列表
十五、 使用ssh服务管理远程主机
配置网络服务
配置网络参数
远程控制服务
不间断回话服务
十六、 使用Apache服务部署静态网站
网站服务程序
配置服务文件参数
SELinux安全子系统
个人用户主页功能
虚拟主机功能
Apache的访问控制