系统进程与计划任务相关命令详解整合

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 fullYou 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系统中执行某些操作时候,有时需要将当前任务暂停调至后台,或有时须将后台暂停的任务重启开启并调至前台,这一序列的操作将会使用到 jobsbg、和 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 COMMAND1507 pts/1    Ss+    0:00 -bash1605 tty1     Ssl+   0:00 /usr/bin/X :0 -background none -noreset -au2258 pts/0    Ss     0:00 -bash2595 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 ping0 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 aPID TTY      STAT   TIME COMMAND1428 pts/1    Ss     0:00 -bash1592 tty1     Ssl+   0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -a4019 pts/0    Ss     0:00 -bash19438 pts/1    S+     0:00 ping 192.168.124.519439 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 aPID TTY      STAT   TIME COMMAND1428 pts/1    Ss+    0:00 -bash1592 tty1     Ssl+   0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -a4019 pts/0    Ss     0:00 -bash19451 pts/0    R+     0:00 ps a[root@CentOS7 data]#

pkill

  • pkill命令可以按照进程名杀死进程。pkill和killall应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉。

选项

  • 与kill类似

示例

[root@CentOS7 data]# ps aPID TTY      STAT   TIME COMMAND1428 pts/1    Ss     0:00 -bash1592 tty1     Ssl+   0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -a4019 pts/0    Ss     0:00 -bash19492 pts/1    S+     0:00 ping 192.168.124.519516 pts/0    R+     0:00 ps a[root@CentOS7 data]# pgrep -l ping
19492 ping[root@CentOS7 data]# pkill ping[root@CentOS7 data]# ps aPID TTY      STAT   TIME COMMAND1428 pts/1    Ss+    0:00 -bash1592 tty1     Ssl+   0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -a4019 pts/0    Ss     0:00 -bash19526 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 aPID TTY      STAT   TIME COMMAND1428 pts/1    Ss     0:00 -bash1592 tty1     Ssl+   0:00 /usr/bin/X :0 -background none -noreset -4019 pts/0    Ss     0:00 -bash22720 pts/1    S+     0:00 ping 192.168.124.522731 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 ~]# w19: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 -s19: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 ~]# uptime20: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.
> EOFBroadcast 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.

20-Linux系统进程与计划任务相关命令详解整合相关推荐

  1. 【Linux】定时任务crontab和at命令详解

    [Linux]定时任务crontab和at命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的 ...

  2. linux 更新软件命令 失败,对linux下软件(库)的更新命令详解

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...

  3. linux下tar命令解压缩,tar解压缩命令 Linux下的tar压缩解压缩命令详解

    <tar解压缩命令 Linux下的tar压缩解压缩命令详解>由会员分享,可在线阅读,更多相关<tar解压缩命令 Linux下的tar压缩解压缩命令详解(14页珍藏版)>请在人人 ...

  4. linux命令打包文件,Linux系统中打包文件的命令详解

    linux系统中遇到要打包文件的时候我们该使用什么命令呢?下面由秋天网 Qiutian.ZqNF.Com小编为大家整理了linux系统中打包文件的命令详解的相关知识,希望对大家有帮助! linux系统 ...

  5. linux内存管理机制以及free命令详解

    linux内存管理机制以及free命令详解 一.linux内存管理机制 1.物理内存和虚拟内存 直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存 ...

  6. linux sfdisk命令,Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解

    本文主要向大家介绍了Linux运维知识之Linux sfdisk硬盘分区工具程序命令详解,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 功能说明:硬盘分区工具程序. 语 法:s ...

  7. Linux中sort,uniq,cut,wc命令详解

    Linux中sort,uniq,cut,wc命令详解 来源:hellodev 本文主要对Linux中sort,uniq,cut,wc这4个命令的使用方法进行了详细说明,希望对你有所帮助. sort s ...

  8. linux终端机详解,Linux reset设定终端机的状态命令详解

    名称: reset, tset 使用方法: tset [-IQqrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal] 使用说明: reset ...

  9. Linux服务器,服务管理--systemctl命令详解,设置开机自启动

    Linux服务器,服务管理--systemctl命令详解,设置开机自启动 syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了. 摘要: syst ...

最新文章

  1. 引用数据类型的深拷贝
  2. Postman——导出测试接口集合的Collection文件
  3. 【离散数学中的数据结构与算法】十 汉诺塔
  4. 美国住宅保修公司新增支持加密货币支付,并决定将 BTC 列入资产负债表
  5. Spring集成Hprose
  6. pca 累积方差贡献率公式_SPSS主成分分析时,是不是得到的方差百分比就是贡献率,累计百分比就是累计贡献率??...
  7. Pika的设计及实现
  8. react-native 启动android项目失败:A problem occurred evaluating project ‘:react-native-orientation‘.
  9. pc计算机含义,pc端游什么意思
  10. 北大教授的美国博士生涯:学术是自由灵魂的分泌物
  11. Mac PS CC2018详细软件按照教程
  12. 软件测试用例——三角形
  13. 地理空间数据共享资源大汇总
  14. 机器学习为什么重要_机器学习:它是如何工作的; 更重要的是,为什么它起作用?...
  15. 随身WiFi加装风扇+天线、插卡可用安卓系统高通410
  16. JAVA打印月历(以2017年为例)
  17. 三方支付公司有哪些?
  18. 重磅|阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务
  19. Autodesk PowerShape Ultimate 2021中文版
  20. 外汇天眼:外汇走势图怎么看涨跌,怎么看外汇盘面走势图?

热门文章

  1. 三十年三十谈|探索城市设计的科学方法和实施路径
  2. 前端页面优化,减少reflow的方法。
  3. Javascript刷新页面的几种方法。
  4. 长时间待机的监控摄像机可以持续多久
  5. Linux nginx 基础介绍与安装版本选择
  6. 国产操作系统UOS Vmware虚拟机安装教程
  7. nginx使用lua实战
  8. 直播预约|有奖竞猜,企业架构从业人员峰会进入两天倒计时
  9. WordPress主题的基本模板及常用函数
  10. shutil模块 python_python模块shutil