系统进程与计划任务相关命令详解整合
at
-
at
命令用于在指定时间执行命令。它能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 -
也能够使用midnight(深夜),noon(中午),teatime(下午茶,下午4点)等比较模糊的词语来指定时间。
-
用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。
-
指定的日期必须跟在指定时间的后面。
选项 :
-f:指定包含具体指令的任务文件;
-q:指定新任务的队列名称;
-l:显示待执行任务的列表;
-d:删除指定的待执行任务;
-m:任务执行完成后向用户发送E-mail。
示例 :
[root@CentOS7 ~]# at 11:50 (创建今天 11:50 计划任务)
at> reboot (计划任务内容根据所需而定)
at> <EOT> (按 Ctrl +D 结束)
job 1 at Mon Oct 28 11:50:00 2019 (计划任务创建成功)
[root@CentOS7 ~]# at -l (使用 at -l 查看计划任务列表)
1 Mon Oct 28 11:50:00 2019 a root (数字1为计划任务的序号)
[root@CentOS7 ~]# at -d 1 (使用 at -d 加计划任务序号,删除该计划任务)
[root@CentOS7 ~]# at -l (此时该计划任务已被删除)
[root@CentOS7 ~]#
at 5pm+3 days
三天后的下午五点
at 10:20 tomorrow
明天10点20
atq
- atq命令显示系统中待执行的任务列表,也就是列出当前用户的at任务列表。但仅会执行一次,执行完成后该计划任务将自动删除。若想要周期性执行计划任务,可使用crontab命令。
示例 :
- 事先创建三个计划任务来演示
[root@CentOS7 ~]# at 17:34
at> touch /home/td/f1.txt
at> <EOT>
job 2 at Mon Oct 28 17:34:00 2019
[root@CentOS7 ~]# at 5pm+3 days
at> rm /data/scripts/first.sh
at> <EOT>
job 3 at Wed Oct 30 17:00:00 2019
[root@CentOS7 ~]# at 00:20 tomorrow
at> cp /etc/passwd /data/cp.log
at> <EOT>
job 4 at Mon Oct 28 00:20:00 2019
[root@CentOS7 ~]# atq (查看计划任务列表)
2 Mon Oct 28 17:34:00 2019 a root
3 Wed Oct 30 17:00:00 2019 a root
4 Mon Oct 28 00:20:00 2019 a root
[root@CentOS7 ~]#
atrm
- atrm命令用于删除待执行任务队列中的指定任务。
示例 :
[root@CentOS7 ~]# atq
2 Mon Oct 28 17:34:00 2019 a root
3 Wed Oct 30 17:00:00 2019 a root
4 Mon Oct 28 00:20:00 2019 a root
[root@CentOS7 ~]# atrm 3 (删除一个计划任务)
[root@CentOS7 ~]# atq
2 Mon Oct 28 17:34:00 2019 a root
4 Mon Oct 28 00:20:00 2019 a root
[root@CentOS7 ~]# atrm 2 4 (删除多个计划任务)
[root@CentOS7 ~]# atq
[root@CentOS7 ~]#
crontab
-
crontab命令被用来提交和管理用户的需要周期性执行的任务,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
-
每个用户都有专用的cron任务文件:/var/spool/cron/USERNAME
-
root能够修改其它用户的作业
-
控制用户执行计划任务: /etc/cron.{allow,deny}
root可以设置白名单allow,或者黑名单deny来控制其他普通用户执行计划任务
选项 :
-e:编辑任务
-l:列出所有任务
-r:移除所有任务
-i:同-r一同使用,以交互式模式移除指定任务
-u <user>:仅root可运行,指定用户管理cron任务
- root可以直接 vim /etc/crontab 编辑计划任务
[root@CentOS7 ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
- 第一行SHELL变量指定了系统要使用哪个shell,这里是bash
- 第二行PATH变量指定了系统执行命令的路径
- 第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
- 第四行的HOME变量指定了在执行命令或者脚本时使用的主目录
示例 :
-
周一到周五期间,每隔十分钟检查一次磁盘空间,若发现任何分区利用率超出80,则广播警告用户
[root@CentOS7 data]# vim diskwarning.sh #!/bin/bash [ `df |sed -nr '/^\/dev\/sd/s/.* ([0-9])%.*/\1/p' |sort -nr | head -n1` -gt 80 ] && wall disk will be full [root@CentOS7 data]# crontab -e (删除计划任务同样使用该命令) */10 * * * 1-5 /bin/bash diskwarning.sh [root@CentOS7 data]# (收到广播警告) Broadcast message from root@CentOS7.localdomain (pts/0) (Tue Oct 29 20:48:00 2019): disk will be full You have new mail in /var/spool/mail/root
batch
- batch命令用于在指定时间,当系统不繁忙时执行任务,用法与at相似。
选项 :
-f:指定包含具体指令的任务文件;
-q:指定新任务的队列名称;
-m:任务执行完后向用户发送E-mail。
示例 :
[root@CentOS7 ~]# batch
at> touch /data/f1.txt
at> echo hello > /data/fi.log
at> <EOT>
job 3 at Sun Oct 27 15:44:00 2019
[root@CentOS7 ~]# cd /data
[root@CentOS7 data]# ls
f1.txt fi.log scripts
[root@CentOS7 data]# cat fi.log
hello
[root@CentOS7 data]# batch
at> echo hello
at> <EOT>
job 6 at Sun Oct 27 15:51:00 2019
[root@CentOS7 data]#
You have new mail in /var/spool/mail/root
bg
- bg命令用于将作业放到后台运行,使前台可以执行其他任务。
- 该命令的运行效果与在指令后面添加符号&的效果是相同的,都是将其放到系统后台执行。
- 在Linux系统中执行某些操作时候,有时需要将当前任务暂停调至后台,或有时须将后台暂停的任务重启开启并调至前台,这一序列的操作将会使用到
jobs
、bg
、和fg
三个命令以及两个快捷键(Ctrl +Z 、 Ctrl +C)来完成。
示例 :
这里我们用 ping 命令来演示
[root@CentOS7 data]# ping 192.168.124.5
PING 192.168.124.5 (192.168.124.5) 56(84) bytes of data.
64 bytes from 192.168.124.5: icmp_seq=1 ttl=64 time=0.043 ms
64 bytes from 192.168.124.5: icmp_seq=2 ttl=64 time=0.073 ms
^Z
[1]+ Stopped ping 192.168.124.5
ping某主机一段时间后用 Ctrl +Z 将其切入后台变为睡眠状态
[root@CentOS7 data]# jobs
[1]+ Stopped ping 192.168.124.5
使用 jobs 命令可查看后台进程的状态,jobs 查看到的所有进程皆为后台进程
[root@CentOS7 data]# fg
ping 192.168.124.5
64 bytes from 192.168.124.5: icmp_seq=26 ttl=64 time=0.040 ms
64 bytes from 192.168.124.5: icmp_seq=27 ttl=64 time=0.062 ms
^C
--- 192.168.124.5 ping statistics ---
28 packets transmitted, 28 received, 0% packet loss, time 202479ms
rtt min/avg/max/mdev = 0.039/0.059/0.163/0.025 ms
使用 fg 命令可将后台进程转为前台进程继续运行
使用 Ctrl +C 终止 ping 命令
[root@CentOS7 data]#
使用bg命令与在指令后面添加符号"&"的效果是一样的
- [root@CentOS7 data]# ping 192.168.124.5 &
[root@CentOS7 data]# ping 192.168.124.5
PING 192.168.124.5 (192.168.124.5) 56(84) bytes of data.
64 bytes from 192.168.124.5: icmp_seq=1 ttl=64 time=0.046 ms
^Z
[1]+ Stopped ping 192.168.124.5
[root@CentOS7 data]# jobs
[1]+ Stopped ping 192.168.124.5
[root@CentOS7 data]# bg
[1]+ ping 192.168.124.5 & (此时的ping命令被切换至后台运行,且无法被关闭)
[root@CentOS7 data]# 64 bytes from 192.168.124.5: icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from 192.168.124.5: icmp_seq=3 ttl=64 time=0.049 ms
ll64 bytes from 192.168.124.5: icmp_seq=5 ttl=64 time=0.054 ms
但是并不会影响我们执行其他命令,比如 ll
total 8
drwxr-xr-x. 2 root root 186 Oct 21 19:24 ceshi
drwxr-xr-x. 2 root root 4096 Oct 14 13:04 script
drwxr-xr-x. 2 root root 4096 Oct 10 19:11 scripts
[root@CentOS7 data]# 64 bytes from 192.168.124.5: icmp_seq=6 ttl=64 time=0.064 ms
64 bytes from 192.168.124.5: icmp_seq=7 ttl=64 time=0.052 ms
64 bytes from 192.168.124.5: icmp_seq=8 ttl=64 time=0.060 ms
^C
使用 Ctrl +C 同样无法将其终止,这时便要使用 ps 与 kill 命令来终止进程运行
[root@CentOS7 data]# 64 bytes from 192.168.124.5: icmp_seq=136 ttl=64 time=0.048 ms
64 bytes from.......................................
.........................................................................
打开一个新的终端
[root@CentOS7 ~]# ps a (显示所有进程列表)
PID TTY STAT TIME COMMAND
1507 pts/1 Ss+ 0:00 -bash
1605 tty1 Ssl+ 0:00 /usr/bin/X :0 -background none -noreset -au
2258 pts/0 Ss 0:00 -bash
2595 pts/1 S 0:00 ping 192.168.124.5 (PID下的数字就是进程的编号)
2879 pts/0 R+ 0:00 ps a
[root@CentOS7 ~]# kill 2595 (使用kill 后面加上进程编号,比如2595)
[root@CentOS7 ~]#
回到原来的终端查看
.............................
64 bytes from 192.168.124.5: icmp_seq=1093 ttl=64 time=0.050 ms
64 bytes from 192.168.124.5: icmp_seq=1094 ttl=64 time=0.069 ms
[1]+ Terminated ping 192.168.124.5
[root@CentOS7 data]#
[root@CentOS7 data]# jobs
[root@CentOS7 data]# (该进程已成功终止)
fg
- fg命令用于将后台作业(在后台运行的或者在后台挂起的作业)放到前台终端运行。与bg命令一样,若后台任务中只有一个,则使用该命令时,可以省略任务号.
jobs
- jobs命令用于显示Linux中的任务列表及任务状态,包括后台运行的任务。该命令可以显示任务号及其对应的进程号。其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的。一个任务可以对应于一个或者多个进程号.
选项 :
-l:显示进程号
-p:仅任务对应的显示进程号
-n:显示任务状态的变化
-r:仅输出运行状态(running)的任务
-s:仅输出停止状态(stoped)的任务
ps
- ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等
选项 :
a 选项包括所有终端中的进程
x 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程树,相当于 --forest
k|--sort 属性 对属性排序,属性前加- 表示倒序
o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
L 显示支持的属性列表
-C cmdlist 指定命令,多个命令用,分隔
-L 显示线程
-e 显示所有进程,相当于-A
-f 显示完整格式程序信息
-F 显示更完整格式的进程信息
-H 以进程层级格式显示进程相关信息
-u userlist 指定有效的用户ID或名称
-U userlist 指定真正的用户ID或名称
-g gid或groupname 指定有效的gid或组名称
-G gid或groupname 指定真正的gid或组名称
-p pid 显示指pid的进程
--ppid pid 显示属于pid的子进程
-t ttylist 指定tty,相当于 t
-M 显示SELinux信息,相当于Z
示例 :
ps a
显⽰所有⽤户在所有终端上运⾏的前台进程
ps u
显⽰⽤户名
ps x
显⽰当前⽤户所运⾏的所有进程,包括前台和后台守护进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
查找占用最多内存和CPU的进程
ps axo %cpu,%mem,pid,comm --sort -%cpu |head -11
显⽰进程的占⽤cpu百分⽐、内存使⽤百分⽐、pid、执⾏的命令,并以cpu排序
ps常⽤组合之⼀:aux
ps常⽤组合之⼀:-eF
nice
-
nice命令用于以指定的进程调度优先级启动其他的程序。
静态优先级:100-139
进程默认启动时的nice值为0,优先级为120
只有root才能降低nice值(提高优先性)
选项 :
-n:指定进程的优先级(整数)
示例 :
nice命令在程序运⾏之前指定调度优先级
[root@CentOS7 data]# nice -n -20 ping 192.168.124.5
[root@CentOS7 ~]# ps axo nice,comm|grep ping
-20 ping
[root@CentOS7 ~]#
renice
- renice命令可以修改正在运行的进程的调度优先级。可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。
选项 :
-g:指定进程组id
-p<程序识别码>:改变该程序的优先权等级,此参数为预设值
-u:指定开启进程的用户名
示例 :
指定正在运⾏的ping程序的优先级为-20
[root@CentOS7 ~]# ps axo nice,comm|grep ping
0 ping
[root@CentOS7 ~]# renice -n -20 $(pidof ping)
3678 (process ID) old priority 0, new priority -20
[root@CentOS7 ~]# ps axo nice,comm|grep ping
-20 ping
[root@CentOS7 ~]#
pidof
- pidof命令用于查找指定名称的进程的进程号id号。
选项 :
-s:仅返回一个进程号
-c:仅显示具有相同“root”目录的进程
-x:显示由脚本开启的进程
-o:指定不显示的进程ID
示例 :
[root@CentOS7 ~]# pidof ping
3678
[root@CentOS7 ~]#
pstree
- pstree命令以树状图的方式展现进程之间的派生关系,显示效果比较直观。
常用选项 :
-a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示
-c:不使用精简标示法
-h:列出树状图时,特别标明现在执行的程序
-H<程序识别码>:此参数的效果和指定"-h"参数类似,但特别标明指定的程序
-l:采用长列格式显示树状图
-p:显示程序识别码;
-u:显示用户名称
示例 :
[root@CentOS7 data]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─2*[dhclient]
│ └─2*[{NetworkManager}]
├─VGAuthService
├─2*[abrt-watch-log]
...........................
[root@CentOS7 data]# pstree -p
systemd(1)─┬─ModemManager(655)─┬─{ModemManager}(672)
│ └─{ModemManager}(720)
├─NetworkManager(777)─┬─dhclient(932)
│ ├─dhclient(934)
│ ├─{NetworkManager}(781)
│ └─{NetworkManager}(784)
├─VGAuthService(682)
├─abrt-watch-log(689)
................................
pgrep
- pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id.
选项 :
-o:仅显示找到的最小(起始)进程号
-n:仅显示找到的最大(结束)进程号
-l:显示进程名称
-P:指定父进程号
-g:指定进程组
-t:指定开启进程的终端
-u:指定进程的有效用户ID
示例 :
[root@CentOS7 ~]# pgrep -l ping
3678 ping
[root@CentOS7 ~]# pgrep -n
8251
[root@CentOS7 ~]# pgrep -o
1
[root@CentOS7 ~]#
kill
-
kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。
-
显示当前系统可用信号: kill –l 或者 trap -l
-
常用信号:man 7 signal
1) SIGHUP 无须关闭进程而让其重读配置文件
2) SIGINT 中止正在运行的进程;相当于Ctrl+c
3) SIGQUIT 相当于ctrl+\
9) SIGKILL 强制杀死正在运行的进程
15) SIGTERM 终止正在运行的进程
18) SIGCONT 继续运行
19) SIGSTOP 后台休眠按PID:kill [-SIGNAL] pid …
kill –n SIGNAL pid
kill –s SIGNAL pid按名称:killall [-SIGNAL] comm…
按模式:pkill [options] pattern
选项 :
-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名(pgrep可用)
-a: 显示完整格式的进程名(pgrep可用)
-P pid: 显示指定进程的子进程
-s <信息名称或编号>:指定要送出的信息
示例 :
[root@CentOS7 data]# ps a
PID TTY STAT TIME COMMAND
1428 pts/1 Ss 0:00 -bash
1592 tty1 Ssl+ 0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -a
4019 pts/0 Ss 0:00 -bash
19438 pts/1 S+ 0:00 ping 192.168.124.5
19439 pts/0 R+ 0:00 ps a
[root@CentOS7 data]# kill ping
-bash: kill: ping: arguments must be process or job IDs
[root@CentOS7 data]# kill 19438
[root@CentOS7 data]# ps a
PID TTY STAT TIME COMMAND
1428 pts/1 Ss+ 0:00 -bash
1592 tty1 Ssl+ 0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -a
4019 pts/0 Ss 0:00 -bash
19451 pts/0 R+ 0:00 ps a
[root@CentOS7 data]#
pkill
- pkill命令可以按照进程名杀死进程。pkill和killall应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉。
选项 :
- 与kill类似
示例 :
[root@CentOS7 data]# ps a
PID TTY STAT TIME COMMAND
1428 pts/1 Ss 0:00 -bash
1592 tty1 Ssl+ 0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -a
4019 pts/0 Ss 0:00 -bash
19492 pts/1 S+ 0:00 ping 192.168.124.5
19516 pts/0 R+ 0:00 ps a
[root@CentOS7 data]# pgrep -l ping
19492 ping
[root@CentOS7 data]# pkill ping
[root@CentOS7 data]# ps a
PID TTY STAT TIME COMMAND
1428 pts/1 Ss+ 0:00 -bash
1592 tty1 Ssl+ 0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -a
4019 pts/0 Ss 0:00 -bash
19526 pts/0 R+ 0:00 ps a
[root@CentOS7 data]#
skill
- skill命令用于向选定的进程发送信号,冻结进程。这个命令初学者并不常用,深入之后牵涉到系统服务优化之后可能会用到。
选项 :
-f:快速模式
-i:交互模式,每一步操作都需要确认
-v:冗余模式
-w:激活模式
-t:指定开启进程的终端号
-u:指定开启进程的用户
-p:指定进程的id号
-c:指定开启进程的指令名称
示例 :
ps a 显示 ping 正在运行
运行状态查看终端二
终端一
[root@CentOS7 script]# ps a
PID TTY STAT TIME COMMAND
1428 pts/1 Ss 0:00 -bash
1592 tty1 Ssl+ 0:00 /usr/bin/X :0 -background none -noreset -
4019 pts/0 Ss 0:00 -bash
22720 pts/1 S+ 0:00 ping 192.168.124.5
22731 pts/0 R+ 0:00 ps a
[root@CentOS7 script]# skill -19 ping (将运行中的ping睡眠)
[root@CentOS7 script]# skill -18 ping (将睡眠中的ping唤醒)
[root@CentOS7 script]# skill -9 ping (强制杀死运行中的ping)
[root@CentOS7 script]#
终端一
.........................
64 bytes from 192.168.124.5: icmp_seq=80 ttl=64 time=0.048 ms
64 bytes from 192.168.124.5: icmp_seq=81 ttl=64 time=0.040 ms
64 bytes from 192.168.124.5: icmp_seq=82 ttl=64 time=0.049 ms
[1]+ Stopped ping 192.168.124.5
运行中的 ping 被睡眠
[root@CentOS7 date]# 64 bytes from 192.168.124.5: icmp_seq=83 ttl=64 time=0.036 ms (ping被重新唤醒)
64 bytes from 192.168.124.5: icmp_seq=84 ttl=64 time=0.042 ms
64 bytes from 192.168.124.5: icmp_seq=85 ttl=64 time=0.042 ms
64 bytes from 192.168.124.5: icmp_seq=86 ttl=64 time=0.047 ms
[1]+ Killed ping 192.168.124.5
ping被强制杀死而终止
[root@CentOS7 date]#
killall
- killall命令使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。杀死指定进程,可以在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一。
选项 :
-e:对长名称进行精确匹配
-l:忽略大小写的不同
-p:杀死进程所属的进程组
-i:交互式杀死进程,杀死进程前需要进行确认
-l:打印所有已知信号列表
-q:如果没有进程被杀死。则不输出任何信息
-r:使用正规表达式匹配要杀死的进程名称
-s:用指定的进程号代替默认信号“SIGTERM”
-u:杀死指定用户的进程
示例 :
pgrep httpd 查看所有与httpd同名的进程
[root@CentOS7 date]# pgrep httpd
23731
23744
23745
23746
23747
23748
[root@CentOS7 date]# killall httpd
[root@CentOS7 date]# pgrep httpd
[root@CentOS7 date]#
top
- 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文件中
iotop
- iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI
选项 :
-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件
-n NUM:显示NUM次,主要用于非交互式模式
-d SEC:间隔SEC秒显示一次
-p PID:监控的进程pid
-u USER:监控的进程用户
iotop常用快捷键 :
左右箭头:改变排序方式,默认是按IO排序。
r:改变排序顺序。
o:只显示有IO输出的进程。
p:进程/线程的显示方式的切换。
a:显示累积使用量。
q:退出。
service
service命令是用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
示例 :
当修改了主机名、ip地址等信息时,经常需要把网络重启使之生效
[root@CentOS7 ~]# service network status
Configured devices:
lo ens33
Currently active devices:
lo ens33 virbr0
[root@CentOS7 ~]# service network restart
Restarting network (via systemctl): [ OK ]
[root@CentOS7 ~]#
w
- w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些,以及他们正在执行的程序。单独执行w命令会显示所有的用户,也可指定用户名称,仅显示某位用户的相关信息。
选项 :
-h:不打印头信息
-u:当显示当前进程和cpu时间时忽略用户名
-s:使用短输出格式
-f:显示用户从哪登录
示例 :
[root@CentOS7 ~]# w
19:41:18 up 20 min, 1 user, load average: 0.00, 0.04, 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.124.1 19:30 6.00s 0.11s 0.00s w
[root@CentOS7 ~]# w -s
19:41:23 up 20 min, 1 user, load average: 0.00, 0.04, 0.08
USER TTY FROM IDLE WHAT
root pts/0 192.168.124.1 3.00s w -s
[root@CentOS7 ~]#
dstat
- dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,与sysstat相比,dstat拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且dstat支持即时刷新。
选项 :
-c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息
-C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息
-d:显示磁盘读写数据大小
-D hda,total:include hda and total
-n:显示网络状态
-N eth1,total:有多块网卡时,指定要显示的网卡
-l:显示系统负载情况
-m:显示内存使用情况
-g:显示页面使用情况
-p:显示进程状态
-s:显示交换分区使用情况
-S:类似D/N
-r:I/O请求情况
-y:系统状态
mpstat
- mpstat命令指令主要用于多CPU环境下,它显示各个可用CPU的状态。这些信息存放在/proc/stat文件中。
选项 :
-P:指定CPU编号
ifstat
- ifstat命令就像iostat/vmstat描述其它的系统状况一样,是一个统计网络接口活动状态的工具。
选项 :
-l 监测环路网络接口(lo)
-a 监测能检测到的所有网络接口的状态信息
-z 隐藏流量是无的接口,例如那些接口虽然启动了但是未用的
-i 指定要监测的接口,后面跟网络接口名
-s 等于加-d snmp:[comm@][#]host[/nn]] 参数,通过SNMP查询一个远程主机
-n 关闭显示周期性出现的头部信息
-t 在每一行的开头加一个时间戳
-T 报告所有监测接口的全部带宽
-w 用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽
-W 如果内容比终端窗口的宽度还要宽就自动换行
-S 在同一行保持状态更新
-b 用kbits/s显示带宽而不是kbytes/s
-q 安静模式,警告信息不出现
iostat
- iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。
选项 :
-c:仅显示CPU使用情况
-d:仅显示设备利用率
-k:显示状态以千字节每秒为单位,而不使用块每秒
-m:显示状态以兆字节每秒为单位
-p:仅显示块设备和所有被使用的其他分区的状态
-t:显示每个报告产生时的时间
-x:显示扩展状态
vmstat
- vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
选项 :
-a:显示活动内页
-f:显示启动后创建的进程总数
-m:显示slab信息
-n:头信息仅显示一次
-s:以表格方式显示事件计数器和内存状态
-d:报告磁盘状态
-p:显示指定的硬盘分区状态
-S:输出信息的单位
free
- free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
选项 :
-b:以Byte为单位显示内存使用情况
-k:以KB为单位显示内存使用情况
-m:以MB为单位显示内存使用情况
-h:以GB为单位显示内存使用情况
-o:不显示缓冲区调节列
-s<间隔秒数>:持续观察内存使用状况
-t:显示内存总和列
total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
shared:当前已经废弃不用;
buff/cache:缓存内存数;
available:缓存内存数。
uptime
- uptime命令能够打印系统总共运行了多长时间和系统的平均负载。显示的信息依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
示例 :
[root@CentOS7 ~]# uptime
20:16:17 up 55 min, 1 user, load average: 0.09, 0.16, 0.11
[root@CentOS7 ~]#
watch
- watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示。可监测一个命令的运行结果。
选项 :
-n:指定指令执行的间隔时间(秒)
-d:高亮显示指令输出信息不同之处
-t:不显示标题
lsof
- lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
选项 :
-a:列出打开文件存在的进程
-c<进程名>:列出指定进程所打开的文件
-g:列出GID号进程详情
-d<文件号>:列出占用该文件号的进程
+d<目录>:列出目录下被打开的文件
+D<目录>:递归列出目录下被打开的文件
-n<目录>:列出使用NFS的文件
-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号>:列出指定进程号所打开的文件
-u:列出UID号进程详情
示例 :
没有
sleep
- sleep命令暂停指定的时间。
- 时间长度,后面可接 s、m、h 或 d,其中 s 为秒,m 为 分钟,h 为小时,d 为日数。
usleep
-
usleep功能把进程挂起一段时间, 单位是微秒(百万分之一秒)。
usleep 1000000 等同于 sleep 1
ping
- ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
常用选项 :
-q 不显示任何传送封包的信息,只显示最后的结果
-n 只输出数值
-R 记录路由过程
-c count 总次数
-w 等待时长
-i 时间间隔
-t 存活数值:设置存活数值TTL的大小
示例 :
ping一次且一秒,测试该IP是否可访问
[root@CentOS7 data]# ping -c 1 -w 1 192.168.124.5 &> /dev/null && echo "It's Up" ||echo "It's Down"
It's Up
[root@CentOS7 data]#
ping一个不通或不存在的IP
[root@CentOS7 data]# ping -c 1 -w 1 172.156.111.5 &> /dev/null && echo "It's Up" ||echo "It's Down"
It's Down
[root@CentOS7 data]#
wall
- wall命令用于向系统当前所有打开的终端上输出信息。通过wall命令可将信息发送给所有同意接收公众信息的终端机用户
示例 :
终端一
root用户向所有用户发送即将关闭终端警告
[root@CentOS7 ~]# wall <<EOF
> hello everybody
> The system is about to be maintained!
> Please exit the terminal in five minutes.
> EOF
Broadcast message from root@CentOS7.7.localdomain (Mon Oct 28 21:04:26 2019):
hello everybody
The system is about to be maintained!
Please exit the terminal in five minutes.
[root@CentOS7 ~]#
终端二普通用户收到
[td@CentOS7 ~]$
Broadcast message from root@CentOS7.7.localdomain (Mon Oct 28 21:04:26 2019):
hello everybody
The system is about to be maintained!
Please exit the terminal in five minutes.
终端三普通用户收到
[mage@CentOS7 ~]$
Broadcast message from root@CentOS7.7.localdomain (Mon Oct 28 21:04:26 2019):
hello everybody
The system is about to be maintained!
Please exit the terminal in five minutes.