纯手打所有的进程和计划任务管理命令及理解

                                                     |——ps 查看静态的进程统计信息
                         ———— 查看进程|——top 查看动态进程信息
                        |                              |——pgrep 查询进程信息
查看和控制进程|                               | ——pstree 查看进程树
                        |                            
                         ————控制进程|——at 一次性任务设置
                                                     | ——crontab 周期性任务设置
ps——查看静态进程统计信息
选项:
a:显示当前终端下的所有进程信息
u:使用以用户为主的格式输出进程信息
x:显示当前用户所在所有终端下的进程信息
-e:下按时系统内所有进程信息
-l:使用长(long)格式显示进程信息
-f:使用完整的(full)格式显示进程信息
一般使用ps aux或ps -elf命令
[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.6  0.0 193700  6828 ?        Ss   13:46   0:02 /usr/lib/systemd/systemd --
root          2  0.0  0.0      0     0 ?        S    13:46   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    13:46   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   13:46   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    13:46   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    13:46   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    13:46   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S    13:46   0:00 [watchdog/0]
root         11  0.0  0.0      0     0 ?        S    13:46   0:00 [watchdog/1]
root         12  0.0  0.0      0     0 ?        S    13:46   0:00 [migration/1]
root         13  0.0  0.0      0     0 ?        S    13:46   0:00 [ksoftirqd/1]
root         14  0.0  0.0      0     0 ?        S    13:46   0:00 [kworker/1:0]
root         15  0.0  0.0      0     0 ?        S<   13:46   0:00 [kworker/1:0H]
root         16  0.0  0.0      0     0 ?        S    13:46   0:00 [watchdog/2]
root         17  0.0  0.0      0     0 ?        S    13:46   0:00 [migration/2]
root         18  0.0  0.0      0     0 ?        S    13:46   0:00 [ksoftirqd/2]
root         20  0.0  0.0      0     0 ?        S<   13:46   0:00 [kworker/2:0H]
root         21  0.0  0.0      0     0 ?        S    13:46   0:00 [watchdog/3]
root         22  0.0  0.0      0     0 ?        S    13:46   0:00 [migration/3]
root         23  0.0  0.0      0     0 ?        S    13:46   0:00 [ksoftirqd/3]
root         25  0.0  0.0      0     0 ?        S<   13:46   0:00 [kworker/3:0H]
root         27  0.0  0.0      0     0 ?        S    13:46   0:00 [kdevtmpfs]

USER:启动该进程的用户账号的名称
PID:该进程在系统中的数字ID号,在当前系统中是唯一的
TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端
STAT:显示了进程当前状态,S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、
s(父进程)、+(前台进程)。处于僵死状态的进程要手动终止。
START:启动该进程的时间
TIME:该进程占用的CPU时间
COMMAND:启动该进程的命令与名称
%CPU:cpu占用百分比
%MEM:内存占用百分比
VSZ:占用虚拟内存(swap空间)的大小
RSS:占用常驻内存(物理内存)的大小
执行ps-elf则将以长格式显示系统中的进程信息,并包含丰富的内容。
[root@localhost ~]# ps -elf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 48425 ep_pol 13:46 ?        00:00:02 /usr/lib/systemd
1 S root          2      0  0  80   0 -     0 kthrea 13:46 ?        00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 13:46 ?        00:00:00 [ksoftirqd/0]
1 S root          5      2  0  60 -20 -     0 worker 13:46 ?        00:00:00 [kworker/0:0H]
1 S root          7      2  0 -40   - -     0 smpboo 13:46 ?        00:00:00 [migration/0]
1 S root          8      2  0  80   0 -     0 rcu_gp 13:46 ?        00:00:00 [rcu_bh]
1 S root          9      2  0  80   0 -     0 rcu_gp 13:46 ?        00:00:00 [rcu_sched]
5 S root         10      2  0 -40   - -     0 smpboo 13:46 ?        00:00:00 [watchdog/0]
5 S root         11      2  0 -40   - -     0 smpboo 13:46 ?        00:00:00 [watchdog/1]
1 S root         12      2  0 -40   - -     0 smpboo 13:46 ?        00:00:00 [migration/1]
1 S root         13      2  0  80   0 -     0 smpboo 13:46 ?        00:00:00 [ksoftirqd/1]
1 S root         14      2  0  80   0 -     0 worker 13:46 ?        00:00:00 [kworker/1:0]
1 S root         15      2  0  60 -20 -     0 worker 13:46 ?        00:00:00 [kworker/1:0H]
5 S root         16      2  0 -40   - -     0 smpboo 13:46 ?        00:00:00 [watchdog/2]
1 S root         17      2  0 -40   - -     0 smpboo 13:46 ?        00:00:00 [migration/2]
单独ps只会显示用户会话打开的进程
[root@localhost ~]# ps
   PID TTY          TIME CMD
  2429 pts/0    00:00:00 bash
  3975 pts/0    00:00:00 ps
管道符号| 加grep过滤
[root@localhost ~]# ps aux |grep bash #过滤bash的信息
root        797  0.0  0.0 115256   924 ?        S    13:46   0:00 /bin/bash /usr/sbin/ksmtuned
root       1937  0.0  0.0  51332   584 ?        Ss   13:47   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
root       2429  0.0  0.0 118652  3220 pts/0    Ss   13:47   0:00 -bash
root       3993  0.0  0.0 112664   972 pts/0    S+   14:07   0:00 grep --color=auto bash

top——查看进程动态信息
默认每三秒刷新一次,若不想服务器断开也用此命令
[root@localhost ~]# top
top - 14:09:06 up 22 min,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 199 total,   1 running, 198 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7994076 total,  5515300 free,   758492 used,  1720284 buff/cache
KiB Swap: 16777212 total, 16777212 free,        0 used.  6911548 avail Mem 
上述输出信息中,开头部分显示了系统任务(Tasks)、cpu占用、内存占用(mem)、交换空间(swap)
等汇总信息,汇总信息下方依次显示当前进程的排名情况。
系统任务(tasks)信息:total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数;
stopped,终止的进程数;zombie,僵死无响应的进程数。

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                
  2135 root      20   0  384948  18376  14552 S   0.3  0.2   0:00.87 vmtoolsd               
     1 root      20   0  193700   6828   4056 S   0.0  0.1   0:02.65 systemd                
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd               
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.02 ksoftirqd/0            
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H           
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.03 migration/0            
-cpu占用信息;us,用户占用;sy,内存占用;ni,优先级调度占用;id,空闲的cpu;wa,I/O等待占用;
hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。要了解空闲的cpu占比主要看%id部分
-内存占用(mem)信息:total,总内存空间;uesd,已用交换空间;free,空闲内存;buffers,缓冲区域。
-交换空间占用(swap)占用:total,总交换空间;used,已用交换空间;free,空闲交换空间;cached,缓存空间。

pgrep——查询进程信息
选项
-l 同时输出进程名
[root@localhost ~]# pgrep -l "log"
431 xfs-log/dm-0
652 xfs-log/sda1
732 rsyslogd
739 abrt-watch-log
746 abrt-watch-log
749 systemd-logind
-U选项查询特定的用户进程、-t查询特定终端运行的进程
[root@localhost ~]# pgrep -l -U root
1 systemd
2 kthreadd
3 ksoftirqd/0
5 kworker/0:0H
7 migration/0
8 rcu_bh
9 rcu_sched
10 watchdog/0
11 watchdog/1
12 migration/1
13 ksoftirqd/1

pstree——查看进程树
选项
-p:列出对应的PID号
-a:列出完整的命令信息
-u:列出对应的用户名
[root@localhost ~]# pstree -aup #查看当前系统的进程数,包括各进程对应pid号、用户名、完整命令等。
systemd,1 --switched-root --system --deserialize 21
  ├─ModemManager,718
  │   ├─{ModemManager},743
  │   └─{ModemManager},780
  ├─NetworkManager,808 --no-daemon
  │   ├─{NetworkManager},821
  │   └─{NetworkManager},825
  ├─VGAuthService,741 -s
  ├─abrt-watch-log,739 -F Backtrace /var/log/Xorg.0.log -- /usr/bin/abrt-dump-xorg -xD
  ├─abrt-watch-log,746 -F BUG: WARNING: at WARNING: CPU:INFO: possible recursive locking de
  ├─abrtd,738 -d -s
  ├─accounts-daemon,737
  │   ├─{accounts-daemon},751
  │   └─{accounts-daemon},779
  ├─alsactl,721 -s -n 19 -c -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf--initfile=/lib/alsa
  ├─anacron,3936 -s
  ├─at-spi-bus-laun,1952

控制进程
手动启动进程要使用到&操作符&放在命令最末尾
[root@localhost ~]# cp /dev/cdrom mycd.iso &
[1] 4692
改变进程的运行方式
linux命令在前台执行时,按ctrl+z组合键可以将任务调入后台挂起。
[root@localhost ~]# wget ftp://173.17.17.13/Firefox-latest.bar.bz2
--2020-07-20 14:48:13--  ftp://173.17.17.13/Firefox-latest.bar.bz2
           => ‘Firefox-latest.bar.bz2’
Connecting to 173.17.17.13:21... ^Z 调到后台挂起
[1]+  Stopped                 wget ftp://173.17.17.13/Firefox-latest.bar.bz2
[root@localhost ~]# 
※fg 加后台进程排名序号可以将挂起的进程重新调入前台执行。

终止进程执行
kill需要使用进程pid号作为参数。若进程无响应加-9选项强行终止进程。
[root@localhost ~]# pgrep -l -U yuheng
4943 sshd
4944 bash #bash进程pid是4944
[root@localhost ~]# kill -9 4944 #yuheng账户就掉线了
[root@localhost ~]# pgrep -l -U yuheng
[root@localhost ~]# 啥也不显示了

killall 可以将同名的进程都强行终止
挂起vimtest进程
killall -9 vim 把名为vim所有进程强行终止

pkill可以根据进程的名称、运行的用户、进程的终端等多种属性终止特定进程
[root@localhost ~]# pgrep -l -U yuheng 查看yuheng下进程相关信息
5191 sshd
5192 bash
[root@localhost ~]# pkill -9 -U "yuheng" 终止yuheng的进程
[root@localhost ~]# pgrep -l -U yuheng 查看yuheng下的进程
[root@localhost ~]#  确认全部终止

计划任务管理
at——一次性任务设置
[root@localhost ~]# at 15:16 2020-07-21
at> at> pgrep -U root | wc -l > /otp/sj.root  7.21号15.16创建sj文件夹把root用户运行的进程数保存到opt下
at> <EOT>   ctrl+d提交任务
job 3 at Tue Jul 21 15:16:00 2020

设置21.30关闭电脑
[root@localhost ~]# at 21:30
at> shutdown -h now 在21.30时候关闭电脑
at> <EOT> ctrl+d提交
job 5 at Mon Jul 20 21:30:00 2020

查看未执行的任务atq
[root@localhost ~]# atq
3       Tue Jul 21 15:16:00 2020 a root
5       Mon Jul 20 21:30:00 2020 a root

删除进程atrm
[root@localhost ~]# atrm 3
[root@localhost ~]# atrm 5
[root@localhost ~]# atq
[root@localhost ~]# 确认3 5进程被删除

crontab周期性任务设置

[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash                           #设置执行计划的shell环境
PATH=/sbin:/bin:/usr/sbin:/usr/bin#定义可执行命令程序路径
MAILTO=root                                  #将任务输出信息发送到指定用户邮箱
HOME+/                                         #执行计划任务时使用主目录

# 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
  分时日月周
使用crontab管理用户的计划任务
-e 编辑计划任务列表
-u 指定所管理的计划任务属于那个用户,默认当前用户,一般只有root有权限使用
-l 列表显示计划任务
-r 删除计划任务列表
分钟+小时+日期+月份+星期 /任务
分钟:取值0-59任意整数
小时:取值0-23任意整数
日期:取值1-31任意整数
月份:取值1-12任意整数
星期:取值0-7任意整数
命令:可以是普通的命令,也可以是脚本程序

-:表示一个连续的时间范围,如1-4
,:可以表示一个时间间隔不连续的范围,如1,4,8
/:用来指定间隔频率

举例:每天早上7:50开启sshd服务
[root@localhost ~]# crontab -e #进入编辑任务
no crontab for root - using an empty one
50 7 * * * /sbin/service sshd start #7:50开启ssh服务

[root@localhost ~]# crontab -l #查看人物列表
50 7 * * * /sbin/service sshd start
[root@localhost ~]# crontab -r  #清空任务列表
[root@localhost ~]# crontab -l #确认任务列表没有任务
no crontab for root

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值