1. Shell启动
Gun bash shell为用户提供交互式访问,登录时系统依赖于用户账户的配置,在/etc/passwd 文件中存放所有系统用户账户列表及基本配置,以下为条目样本:
root:x:0:0:root:/root:/bin/bash
每个条目共有七个字段,分别以冒号隔开,代表的含义依次为“用户名:密码:UID(用户ID号):GID(用户主组ID号):GECOS(用户详细描述信息):用户家目录:用户默认shell程序”。当用户登录以后将会启动默认shell程序。
2. 命令帮助
2.1 which命令
说明:查看命令完整路径,如果有命令设置了别名,还可以显示别名。
格式:which COMMAND
示例:
[root@localhost ~]# which ls
alias ls='ls --color=auto' ####别名
/bin/ls ####ls命令的详细路径,在制作shell脚本时,经常需要用到命令的完整路径。
命令帮助方法有几种:
2.2 man命令
说明:查看命令的帮助文档,通常放置于/usr/share/man 目录中
格式:man [ 章节] COMMAND
Man手册根据对应内容区域分为八个章节
1章节:用户命令
2章节:系统调用
3章节:库调用
5章节:配置文件格式
6章节:游戏
7章节:概览、约定和杂项
Man手册格式
Name:命令名和命令的描述
Synopsis:命令的语法
Description:命令一般性描述
Option:命令选项描述
Example:命令用法示例
Authors:命令开发人员信息
Reporting Bugs:BUG提交方法
See Also:与命令相关的其他命令
内部命令帮助查看可以使用COMMAND �Chelp或help COMMAND
3. 浏览查看命令
3.1 cd命令
说明:进入到指定路径下,通常使用格式为 cd COMMAND
使用场景:
cd /root :进入/root路径下
cd ~ :进入到当前用户的家目录
cd - :返回上次目录
cd .. :进入此目录的上一级目录
cd / :进入根目录
3.2 ls命令
说明:查看指定路径下的目录和文件
格式:ls [参数] 路径
参数:
不带任何参数和路径时表示查看当前目录下非隐藏属性的所有文件和目录
-d:只显示目录
常用组合:
-alh:显示长格式目录下包含隐藏文件在内的所有文件信息,文件大小人性化显示;
-il:以长格式显示路径下文件和文件夹信息并显示inode编号
长格式内容信息描述
[root@localhost ~]# ls -il
total 52
1572873 -rw-------. 1 root root 2392 Oct 27 2014 anaconda-ks.cfg
从左至右一次解析:
1572873:文件的inode编号
-:文件类型,一般文件类型有-(普通文本文件)、d(目录)、s(套接字文件)、c(字符设备文件)、b(块设备文件)、l(符号链接文件)、p(管道文件)
rw-------:共计有9位,依次表示文件的属主、属组、其他用户的权限。
root:属主
root:属组
2329:文件大小,以字节为单位
Oct 27 2014:最后一次被修改时间
anaconda-ks.cfg:文件名
4. 文件处理命令
4.1 touch命令
说明:touch命令主要用于改变文件的时间戳,当文件不存在时会创建该文件。可以通过stat filename来查看文件的时间戳
格式:touch [ 参数 ] 文件名
参数:
touch filename :表示创建名为filename的文件
小技巧:可以通过 ls -l �Ctime=atime filename来显示该文件的最后一次访问时间。
4.2 cp命令
格式1:cp 原路径目标路径
原路径为文件会有一下四种情况:
如果目标路径不存在则会创建目标路径并将文件复制到目标路径中
如果目标目录存在
如果目标路径是文件则会被源路径文件覆盖,建议此时使用-i选项。
如果目标路径是目录则会在目标目录下新建一个同名文件,将源文件内容填充至目标文件中。
格式2:cp 多个源文件目标路径
如果复制多个文件到目标路径,则目标路径必须存在且为目录
格式3:cp 源路径目标路径
如果源路径为目录则目标路径必须为目录,且必须使用-r选项,如果目标路径目录不存在则会创建该目录并将源路径目录填充只目标目录中,如果目录路径是目录且已存在,则会直接将源路径目录及目录中的文件填充至目标目录中。
参数:
-a:归档复制
-i:交互式,复制每一个文件和目录都需确认
-r:递归复制目录下的所有文件
-f:强制复制
4.3 mv命令
格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
参数:
-i:交互式
-f:强制
4.4 ln命令
说明:创建符号连接文件和硬链接,链接到同一个文件的硬链接文件inode编号为同一编号,在磁盘中存放的位置一致,符号连接文件相当于源连接文件的一个快捷方式。
4.5 rm命令
参数:
-i:交互式
-r:递归删除
-f:强制删除
rm -rf 命令会在不通知的情况下强制删除所制定的目录和文件,慎用。
mkdir命令
说明:删除空目录,当目录中有文件时,无法删除,可使用rm -rf 强制删除。
5. shell通配符
*:代表任意长度的任意字符
?:代表一位任意字符
[]:位于[]中的字符为可选字符。
示例:
ls /etc/p* 表示列出/etc目录下所有以P开头的文件和文件夹
ls /etc/p?sswd 表示列出/etc目录下以任意以P开头sswd结尾的文件
6. 绝对路径和相对路径
绝对路径:表示完整路径,例如 /bin/bash
相对路径:./ 表示当前路径,../表示当前路径的上一级路径。
7. 文件查看命令
7.1 file命令
7.2 cat命令
说明:仅查看文本文件文件的命令,-n参数表示查看文件时带上行号,-b参数表示仅在有文字的行前加行号,-T表示显示时去表文件中的制表符
7.3 more命令
说明:more支持翻页,cat在查看大文件时不受控制,more可以自动分页,仅支持向下翻页。
7.4 less命名
7.5 tail命令
说明:只从尾部开始查看文件,默认查看最后10行,-n 20 则表示查看倒数20行,-f参数可动态显示文件尾部追加的内容。
7.6 head命令
说明:从头部开始查看文件,默认显示从头部开始10行文件, -20则表示查看从头部开始往后20行文件
7.7 tree命令
说明:tree命令可以树型结构查看指定路径的文件和文件夹。一般系统默认不安装此命令,可使用yum -y install tree安装。
8. 监测程序
8.1 ps命令
说明:ps是一个功能强大的进程查看工具,可查看进程和系统关键参数。
BSD风格的常用组合:ps aux
解析:
USER:启动进程的用户
PID:进程编号
%MEM:内存占用率
VSZ:虚拟内存集
RSS:常驻内存集
TTY:进程启动时的终端
STAT:进程当前状态
R:正在运行
S:可中断睡眠
D:不可终端睡眠
T:停止的进程
Z:父进程已被结束的僵死进程
+:前台进程
<:高优先级进程
N:低优先级进程
s:该进程是控制进程
l:多线程
START:进程启动时的系统时间
TIME:进程占用的cpu时间
COMMAND:程序名
参数:
-a:与终端相关的进程
-x:与终端无关的进程
Unix风格的常用组合:ps -ef
解析:
UID:用户ID
PID:进程编号
PPID:父进程进程编号
C:进程声明周期中的cpu利用率
STIME:进程启动时的系统时间
TTY:进程启动时的终端
TIME:运行进程累计需要使用的cpu时间
CMD:启动的程序名称
参数:
-e:显示所有进程
-f:显示完整格式的进程信息
ps -eFH
参数:
-F:显示完整的进程信息
-H:以层级格式显示进程信息
ps -efl
解析:
F:内核分配给进程的系统标记
S:进程的状态(O代表正在运行,S代表休眠,R代表可运行正在等待运行,Z代表僵死状态,T代表停止)
PRI:进程优先级,数字越大优先级越低
NI:NICE值,用来动态调整优先级
ADDR:进程的内存地址
SZ:假如进程要被换出,所需的交换分区大小
WCHAN:进程休眠的内核函数的地址
参数:
8.2 top命令
说明:top命令功能与ps命令类似,都是用于查看进程信息,不过top命令是动态显示进程当前状态,可以用来追踪某些资源占用高的进程
解析:
首部top项表示当前系统时间、系统运行时间、登录的用户数,cpu的平均负载,分为表示1分钟、5分钟、15分钟的平均负载
第二行Tasks项表示进程大致统计信息,依次为总进程数、正在运行的进程数、休眠态的进程数、停止的进程数、僵死的进程数
第四行表示内存使用情况
第五行表示交换分区使用情况
PR:进程优先级
NI:进程nice值用于调节进程优先级
VIRT:内存占用的虚拟内存总量
RES:进程占用的物理内存总量
S:进程状态(R代表正在运行、S代表休眠、D代表可中断睡眠、T代表跟踪或停止状态、Z代表僵死态)
%MEM:进程占用的内存占可用内存的比例
TIME+:启动进程到目前位置使用cpu时间的总和
COMMAND:进程名
内置命令
排序:
M: 以进程内存占用比例排序
T: 累计占据cpu时长排序
首部显示:
l: uptime首部时间显示
m:内存显示
退出命令:q
修改刷新间隔:s
杀死进程:k
参数:
-d # :指定刷新时间
-b :以批次方式显示
-n :显示多少批次
8.3 htop
说明:htop比top功能更强大,可以实时显示当前进程状态,而且可以跟踪显示指定进程,htop系统并不自带需额外配置EPEL源安装。
解析:
首部为cpu、内存、交换分区使用情况
下部PID、USER等与top相同。
内置命令:
s:跟踪进程的系统调用
l:查看进程打开的文件列表
a:将进程绑定在某cpu核心
t:将进程以层级方式显示
参数:
-d # :指定延时刷新时间
-u username :仅显示指定用的进程
-s COLONM:以指定字段排序
8.4 kill命令
说明:kill命令用于给进程发送信号,以实现对进程的管理,一般不带信号参数时,默认发送15号信号。
常用信号种类:(可以使用kill -l 命令查看所有可以发送的信号)
2SIGINT:中止正在运行的指定进程,相当于Ctrl+c
9SIGKILL:杀死正在运行的进程
15 SIGTERM:终止正在运行的进程
19 SIGSTOP:停止正在运行的进程
指定信号的方法:
通过信号对应的数字,例如1、2、9、15
通过信号的完整名称,例如SIGHUB、SIGINT
通过信号的简称,例如HUB、INT
向进程发信号的方法:kill [ -SIGNAL ] 进程名
终止某进程名下的所有进程:killall [ -SIGNAL ] 进程名
9. 磁盘挂载及监测相关命令
9.1 mount命令
说明:用于把设备关联到挂载点。仅用命令,重启后失效,如果需要永久生效可以通过配置/etc/mtab来实现
mount:查看当前所有已挂载的设备
mount [ -fnrsvw ] [ -t vfstype] [ -o options ] device dir
device:指明要挂载的设备
(1)设备文件:例如/dev/dsa5
(2)卷标: -L ‘LABEL’,例如 -L ‘MYDATA’
(3)UUID:-U ‘UUID’ ,例如:-U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4)伪文件系统:proc、sysfs、devtmpfs、configfs
dir:挂载点,尽量使用空目录,如果挂载前目录中已存在文件则在挂载后会暂时隐藏。正在使用中的设备无法挂载
常用命令选项:
-t vsftype:指定要挂载的设备的文件系统类型;
-r:readonly,只读挂载
-w:read and write,读写挂载
-n:不更新/etc/mtab
-a:自动挂载所有支持自动挂载的设备;(定义在/etc/fstab文件中,且挂载选项中有”自动挂载功能”)
-L ’LABEL’:以卷标指定挂载的设备
-U ‘UUID’:以UUID指定要挂载的设备
-B,--bind:绑定一个目录到另一个目录上
注意:查看内核追踪到的已挂载设备,可用 cat /proc/mounts
-o options:挂载文件系统的选项
async:异步模式
sync:同步模式
atime/noatime:包含目录和文件
diratime/nodiratime:目录的访问时间戳
exec/noexec:是否支持将文件系统上的应用程序运行成进程
suid/nosuid:是否在此文件系统中使用SUID
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备
注意:上述选项可多个同时使用,以,号隔开,默认挂载选项default包含rw,suid,dev,auto,nouser,async
卸载命令:
umount DEVICE
umount MOUNT_POINT
查看正在访问指定文件系统的进程:fuser -v MOUNT_POINT
终止所有正在访问指定的文件系统的进程:fuser -km MOUNT_POINT
9.2 df命令
说明:df用来查看挂载点的详细参数,包含挂载的设备、可用容量、已用容量和所占百分比等
格式:df [ 选项 ] [挂载点]
选项:
-h:已人性化的方式显示挂载点设备、可用和已用容量等,不加挂载点时会显示当前系统所有挂载的设备
-i:同-h,但是显示的容量信息将以inode为单位
-P:以posix兼容的格式输出
9.3 du命令
说明:查看指定文件夹所占用空间容量
格式:du [ 选项 ] DIR
选项:
-h :以人性化显示
-s:仅显示占用的总容量
10. 数据文件处理命令
10.1 sort命令
说明:此命令可根据指定的条件对数据进行排序
格式:sort [ 参数 ] 目标文件
参数:
-f:忽略字符大小写
-r:逆序排序
-t DELIMITER:指定字段分隔符
-k #:以指定的字段为标准进行排序
-n:以数字大小进行排序
-u:uniq,排序后去重
-M:以月份大小进行排序
10.2 . grep命令
说明:grep为正则表达式,为非常常用的文本搜索工具,会对用户给的条件进行逐行匹配,并打印出来,egrep为扩展正则表达式
格式:grep [ 参数 ] 模式目标文件
参数:
-v :打印未匹配到指定模式的行
-i:忽略字符大小写
-o:仅显示匹配到的字符
-q:静默模式,不将匹配到的行打印出来
--color=auto:指定匹配到的字符的颜色
-A # :打印匹配到的行的前面#行
-B # :打印匹配到的行的后面#行
-C # :打印匹配到的行的前后各#行
正则表达式元字符:
字符匹配:
. :任意一个字符
*:前面字符的任意次数
[ ] :匹配中括号中的任意单个字符
[^ ] :匹配指定范围的任意单个字符
[:digit:] :任意单个数字,相当于0-9
[:upper:]:匹配单个大写字母,相当于A-Z
[:alnum:]:匹配任意字母或数字,相当于0-9、a-z、A-Z
[:alpha:]:匹配任意单个字母,相当于A-Z、a-z
[:punct:]:匹配特殊字符中的一个, !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~.
[:space:]:匹配单个空格
匹配次数:
.*:匹配任意字符任意长度
\?:匹配前面的字符0次或1次,表示前面的字符可有可无
\+:匹配前面的字符至少一次
\{m,n\}:匹配前面字符至少m次,至多n次
\{m,\}:匹配前面字符至少m次
\{0,n\}:匹配前面字符至多n次
位置锚定:
^:行首锚定
$:行尾锚定
\<或\b:词首锚定
\>或\b:词尾锚定
^$:表示匹配空行
^[[:space:]]$:表示空行
分组:将多个匹配的模式可以通过分组的方式绑定在一起
\( \):将多个匹配的模式放在括号里可以被当成一个整体处理了,例如\(xy\)*表示匹配\(xy\)任意次
后向引用:分组可以用\1,\2,………等参数所引用,后向引用引用仅引用前面分组中模式所匹配的内容而不是引用模式,次序按照第一个\(开始到后面与之匹配的\)结束,依次类推。
后向引用示例:\(ab\+\(xy\)*\) :后巷引用\1: ab\+\(xy\)* 。后向引用\2: xy
10.3 egrep命令
说明:egrep为grep的扩展,也等同于grep -E ,选项与grep相同。
扩展正则表达式的元字符:
字符匹配:与grep相同
次数匹配:
*:任意次数
?:0次或1次
+:至少1次
{m}:匹配m次
{m,n}:匹配至少m次,至多n次
位置锚定:
^:锚定行首
$:锚定行尾
\<或\b:锚定词首
\>或\b:锚定词尾
分组:()
后向引用:\1,\3……
或者:|,a|b表示a或者b,C|cat表示C或者cat
10.4 gzip/gunzip
说明:gzip用来压缩文件,文件后缀以gz结尾,gunzip用于解压文件。
选项:
-d :解压缩文件
-#:1-9,压缩比,默认为6
10.5 bzip2/bunzip2/bzcat
说明:功能与gzip类似,文件以bz结尾。bzcat用于不展开bz压缩文件查看文件中的内容
参数:
-d:解压文件
-k:保留原文件
-#:1-9,压缩比,默认为6
10.6 xz/unxz/xzcat
说明:功能与gzip与bzip2功能类似,压缩魏建以xz结尾,xzcat用于不展开xz压缩文件查看文件的内容
参数:
-k:保留原文件
-d:解压缩文件
-#:1-9,压缩比,默认为6
10.7 tar命令
说明:tar主要用于文件归档。
创建归档:
tar -cf /path/to/files.tar files…….
tar -tf /path/to/file.tar
展开归档:
tar -xf /path/to/file.tar
tar -xf /path/to/file.tar -C /path/to/dir
结合压缩工具实现压缩并归档:
-j:bzip2
-z:gzip
-J:xz
原文链接:https://www.f2er.com/bash/392597.html