RHEL7--第二章
常用系统工作命令
echo,date,reboot,poweroff,wget,ps,top,pidof,kill,killall
系统状态检测命令
ifconfig,uname,uptime,free,who,last,history,sosreport
工作目录切换命令
pwd,cd,ls
文本文件编辑命令
cat,more,head,tail,tr,wc,stat,cut,diff
文件目录管理命令
touch,mkdir,cp,mv,rm,dd,file,
打包压缩与搜索命令
tar,grep,find
- 强大好用的SHELL
shell工具:充当人与内核之间的翻译官,目前默认的shell为:bash
#echo $SHELL
查看当前系统默认使用的SHELL
#cat /etc/shells
查看当前系统支持的所有shell - 主流的SHELL解释器:Bash
1:通过上下方向键来调取过往执行过的命令;
2:命令或参数仅需输入前几位使用Tab键补全命令;
3:具有强大的批处理脚本;
4:具有实用的环境变量功能; - 执行查看帮助命令:man
命令 [选项] [选项] [参数]
![]()
![]()
![]()
- 常用系统工具命令
1:echo
用于在终端输出字符串或变量提取后的值,格式:echo [字符串 | $变量 ]
指定字符串命令:
#echo linux linux为字符串
#linux
使用$变量提取变量SHELL的值:
#echo $SHELL SHELL变量
#/bin/bash
2:date
用于显示及设置系统的时间日期,格式:date [选项] [+指定的格式]
![]()
3:reboot
用于重启系统,管理员root执行;
4:poweroff
用于关系系统,管理员root执行;
shutdown
#shutdown +10 系统将在10分钟后关机
#shutdown -c 取消10分钟后关机命令
5:wget
用于在终端中下载网络文件,格式:wget [参数] 下载地址
#wget -P https://www.baidu.com 下载文件到指定目录下
![]()
6:ps
用于查看系统中的进程状态(静态),格式:ps 参数
ps命令可以允许参数不加减号 -
#ps aux | wc -l
#ps -aux | wc -l
以上两条命令效果一样;
![]()
7:top
用于动态地监控进程活动与系统负载信息等,格式:top
加强的任务管理器;
![]()
@top-19:19:51:系统时间
@up:运行时间
@2 users:登陆终端数
@load average:系统负载值(三个数值分别为1,5,15分钟内的平均值,数值越小意味着负载越低;
@load average 从右往左看负载情况
0.01,0.17,0.19 负载从高在往低下降
0.35,0.21,0.03 负载从低在往上升,需注意
@N1:优先级,数值越小优先级越高
8:pidof
用于查询某个指定服务进程的PID值,格式:pidof [参数] [服务名称]
#pidof sshd
查看 sshd 服务的进程号;
#systemctl status sshd
查看 sshd 服务的当前状态
Active: active (running): 进程开启状态
Active: inactive (dead) : 进程被关闭状态
#systemctl start sshd
启用sshd服务
9:kill
用于终止某个指定PID的服务进程,格式:kill [参数] [进程PID]
#pidof sshd
#1386
查看 sshd 的PID号
#kill 1386
终止PID号为1386的sshd服务
#systemctl start sshd
启用sshd服务
10:killall
用于终止某个指定名称的服务所对应的全部进程,格式:killall [参数] [服务名称];
#pidof httpd
#13581 13580 13584
#killall httpd
终止所有与httpd相关的进程;
# killall -u 用户名
终止指定用户名相关的所有进程; - 系统状态检测命令
1:ifconfig
用于获取网卡配置与网络状态信息,格式:ifconfig [网络设备] [参数]
ethtool
用于侦测网卡配置速率及连接状态,格式:ethtool [网卡名称]
#ethtool eno1
2:uname
用于查看系统内核与系统版本等信息,格式:uname -a
通常搭配 -a ,一起使用;可查看内核,主机名,内核发行版本,硬件名称,平台等
#uname -a
![]()
3:uptime
用于查看系统的负载信息,格式:uptime
与 top 类似,也是查看 load average 负载值,生产环境负载值不要超过 5;
4:free
用于显示当前系统中内存的使用量信息,格式:free [参数]
#free -h 单位换算后查看内存使用量信息
![]()
5:who
用于查看当前登录主机的用户终端信息,格式:who [参数]
6:last
用于查看所有系统的登录记录,格式:last [参数]
由于这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改。千万不要单纯以该命令的输出信息而判断系统有无被恶意入侵
7:history
用于显示历史执行过的命令,格式:history [参数]
登陆shell时,会读取命令历史文件中记录下的命令:
~/.bash_history
登陆进shell后,新执行的命令只会记录在缓存中;
这些命令会用户退出是"追加"至命令历史文件中;
-a:追加本次回话新执行的命令历史列表至历史文件中;
-d:删除历史中指定命令;
#history -d 8
-c:清空命令历史;
快捷操作;
!#:调用历史中第#条命令;
!string:调用历史中最近一条以string开头的命令;
!!:执行上一条命令;
8:sosreport
用于收集系统配置及架构信息并输出诊断文档,格式:sosreport
当Linux系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题
![]()
- 工作目录切换命令
1:pwd
用于显示用户当前所处的工作目录,格式:pwd [选项]
2:cd
用于切换工作路径,格式:cd [目录路径];
#cd - 切换至上一次的目录;
#cd ~ 切换至用户家目录;
#cd ~ username 切换至指定用户家目录;
3:ls
用于显示目录中的文件及目录信息,格式:ls
-l:文件详细信息;
-a:显示隐藏文件;
-d:显示目录信息; - 文本文件编辑命令
1:cat
用于查看纯文本文件(内容较少的),格式:cat [选项] [文件]
-n:显示的内容前面加上序号
清空文件的内容;
#cat /dev/null > /root/file.txt 把file.txt文件中的内容通过重定向覆盖掉,变成空白内容;
/dev/null:黑洞设备,吞噬一切;
2:more
用于查看纯文本文件(内容较多的),分屏显示,格式:more
3:head
用于查看纯文本文档的前N行,格式:head [选项] [文件]
#head -n 10 /etc/passwd 显示passwd的前10行
#head -10 /etc/passwd 与上面一个意思;
4:tail
用于查看文本后N行或持续刷新新内容,格式:tail [选项] [文件]
#tail -5 /etc/passwd 显示passwd的最后5行;
强悍功能在于能够实时查看最新的日志;
#tail -f /var/log/messages
5:tr
用于替换文本文件中的字符,格式:tr [原始字符] [目标字符]
使用 tr 前,必须使用读取文本的命令,如:cat 等,然后再用 tr 替换内容;
#cat /etc/passwd | tr [a-z] [A-Z] > /tmp/test.txt
查看读取passwd内容,通过管道符 | ,使用tr 把a-z字母全部替换成大小并重定向到test.txt文件中;
6:wc
用于统计指定文本的行数,字数,字节数,格式:wc [选项] 文本
![]()
7:stat
用于查看文件的具体存储信息和时间等信息,格式:stat 文件
Access、Modify、Change。这三种时间的区别将在下面的touch命令中详细详解;
8:cut
用于按“列”提取文本字符,格式:cut
如:-d' ':以空格作为分隔符;
如:-d: :以:作为分隔符;
#cut -d: -f1 /etc/passwd 以:为分隔符,提取第一列的信息;
9:diff
用于比较多个文本文件内容的差异,格式:diff [选项] 文件1 文件2
--brief:显示比较后的结果,判断文件是否相同;differ 表示文件内容不同
#diff --brief a.txt b.txt
-c:具体列出文件的不同处;
#diff -c a.txt b.txt
![]()
- 文件目录管理命令
1:touch
用于创建空白文件或设置文件的时间,格式:touch
-c:如果文件不存在,则不创建此文件;
#touch -c aaa.txt
文件的三个时间戳:
access time:访问时间,atime,读取文件内容;
modify time:修改时间,mtime,修改文件内容;
change time:改变时间,ctime,元数据发生变化;
touch 可以修改atime,mtime的时间戳;
-a:使访问时间与当前系统时间同步;
#touch -a /tmp/fstab
-m:使修改时间与当前系统时间同步;
#touch -m /tmp/fstab
-d:同时修改atime和mtime为指定的时间;
#touch -d "2019-03-13 20:20:20" /tmp/fstab
-t STAMP:单独修改a,m的时间戳成指定时间;
#touch -a -t 201903132020.20 /tmp/fstab 修改文件的访问时间为201903132020.20
#touch -m -t 201903132020.20 /tmp/fstab 修改文件的修改时间为201903132020.20
2:mkdir
用于创建空白的目录,格式:mkdir [选项] [目录名称];
-p:如果存在目录不报错,且可自动创建所需的目录,同时创建上级不存在的目录;
-m MODE:创建目录时直接指定权限;
#mkdir -m 777 /tmp/test
3:cp
用于复制文件或目录,格式:cp [选项] [源文件] [目标文件或目录];
![]()
Note:
-a:归档复制,通常用于保留有文件的原属性,用于备份;
4:mv
用于文件的剪切移动或将文件重命名,格式:mv [选项] [源文件] [目录路径 | 目标文件名]
-f:强制移动;
5:rm
用于删除文件或目录,格式:rm
-r:递归删除;删除目录时;
-f:强制删除;不提示直接删除;
#rm -rf /* 强制删除根下所有文件及目录,从centOS6开始必须在 / 后面加上 *
6:dd (实用)非常强大的命令,需多看;
用于按照指定大小和个数的数据块来复制文件或转换文件,格式:dd [参数]
if(input file)
of(output file)
![]()
7:file
用于查看文件的类型,格式:file 文件名 - 打包压缩与搜索命令
- 1:tar
用于对文件进行打包压缩或解压,格式:tar [选项] [文件]
![]()
-f:必须放在参数的最后一位,目标文件;
压缩时:f 后面跟的是需要保存的文件名及路径;
解压时:f 后面跟的是目标文件,需要解压的文件,-C 后是解压后的保存路径
#tar -czvf /tmp/etc.tar.gz /etc
使用gzip来压缩/etc,并以etc.tar.gz命名保存至/tmp目录下
#tar -xzvf etc.tar.gz -C /tmp/etc
Note:
tar可以只打包但压缩文件,比对以下命令查看文件容量大小;
#tar -cvf /tmp/etc.tar.gz /etc 打包不压缩
#tar -czvf /tmp/etc.tar.gz /etc 打包压缩
2:grep
用于在文本中执行关键词搜索,并显示匹配的结果,格式:grep [选项] [文件]
#grep /sbin/nologin /etc/passwd
查看nologin不允许登录系统的用户信息;
#grep root /etc/passwd
在/etc/passwd中搜索关键词为 root 并显示出来;
![]()
3:find
用于按照指定条件来查找文件,格式:find [查找路径] [寻找条件] [操作]
![]()
#find /etc -name "host*" -ls
在 etc 目录下查找 关键字以 host为开头的文件,并以 ls 命令操作显示;
#find / -perm -4000 -ls
在 / 目录下搜索权限中包含SUID权限的所有文件;
其中4000表示:4 表示 属主权限中带有SUID权限
例:查找所有属于a1用户的文件,并复制到/findfiles目录中;
# find / -user a1 -exec cp -Ra {} /findfiles \;
解析:-exec ...{}\; 三个符号一个不能少 {} \ ;
SUID权限的表示方法为:
4:属主权限带有SUID权限
2:属组权限带有SUID权限
1:其他,即 other 带有SUID权限![]()
- 1:tar


















浙公网安备 33010602011771号