进程操作相关命令
ps 显示当前系统中由该用户运行的进程列表
kill 输出特定的信号给指定的进程,并根据该信号而完成指定的行为
top 动态显示当前系统中由该用户运行的进程列表
renice 修改一个正在运行的进程的优先级
pstree 列出当前的进程,以及它们的树状结构
ps
Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Copy to clipboardErrorCopied
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
[root@localhost ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:39 ? 00:00:12 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 08:39 ? 00:00:00 [kthreadd]
root 4 2 0 08:39 ? 00:00:00 [kworker/0:0H]
root 6 2 0 08:39 ? 00:00:01 [ksoftirqd/0]
root 7 2 0 08:39 ? 00:00:04 [migration/0
Copy to clipboardErrorCopied
BSD语法
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 194904 8000 ? Ss 08:39 0:12 /usr/lib/systemd/systemd --switched-root --system --deserialize 2
root 2 0.0 0.0 0 0 ? S 08:39 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 08:39 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 08:39 0:01 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? S 08:39 0:04 [migration/0]
root 8 0.0 0.0 0 0 ? S 08:39 0:00 [rcu_bh]
Copy to clipboardErrorCopied
12.2 grep
过滤文本,定位文本的
[root@localhost ~]# cat /etc/passwd
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin
games❌12💯games:/usr/games:/sbin/nologin
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
nobody❌99:99:Nobody:/:/sbin/nologin
systemd-network❌192:192:systemd Network Management:/:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
polkitd❌999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt❌998:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
colord❌997:994:User for colord:/var/lib/colord:/sbin/nologin
rpc❌32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
saned❌996:993:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gluster❌995:992:GlusterFS daemons:/run/gluster:/sbin/nologin
saslauth❌994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
abrt❌173:173::/etc/abrt:/sbin/nologin
setroubleshoot❌993:990::/var/lib/setroubleshoot:/sbin/nologin
rtkit❌172:172:RealtimeKit:/proc:/sbin/nologin
pulse❌171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
radvd❌75:75:radvd user:/:/sbin/nologin
chrony❌992:987::/var/lib/chrony:/sbin/nologin
unbound❌991:986:Unbound DNS resolver:/etc/unbound:/sbin/nologin
qemu❌107:107:qemu user:/:/sbin/nologin
tss❌59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sssd❌990:984:User for sssd:/:/sbin/nologin
usbmuxd❌113:113:usbmuxd user:/:/sbin/nologin
geoclue❌989:983:User for geoclue:/var/lib/geoclue:/sbin/nologin
ntp❌38:38::/etc/ntp:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
rpcuser❌29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody❌65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup❌988:982::/run/gnome-initial-setup/:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi❌70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix❌89:89::/var/spool/postfix:/sbin/nologin
tcpdump❌72:72:😕:/sbin/nologin
jshand❌1000:1000:jshand:/home/jshand:/bin/bash
通过grep命令 定位
[root@localhost ~]# cat /etc/passwd | grep jshand
jshand❌1000:1000:jshand:/home/jshand:/bin/bash
[root@localhost ~]# ps -ef|grep ssh
root 1243 1 0 08:40 ? 00:00:00 /usr/sbin/sshd -D
root 4737 4522 0 08:41 ? 00:00: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 9866 1243 0 10:57 ? 00:00:00 sshd: root@pts/0
root 10640 9871 0 11:07 pts/0 00:00:00 grep --color=auto ssh
Copy to clipboardErrorCopied
top /free
[root@localhost ~]# top
top - 11:09:12 up 2:29, 2 users, load average: 0.06, 0.04, 0.05
Tasks: 228 total, 1 running, 227 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.1 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 7828268 total, 5947240 free, 1065584 used, 815444 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 6664768 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4789 root 20 0 3694564 189188 65836 S 1.0 2.4 0:39.76 gnome-shell
748 rtkit 21 1 198784 1772 1408 S 0.3 0.0 0:00.34 rtkit-daemon
751 root 20 0 295564 5304 4056 S 0.3 0.1 0:32.01 vmtoolsd
5048 root 20 0 608644 25484 18816 S 0.3 0.3 0:24.01 vmtoolsd
10681 root 20 0 162100 2364 1580 R 0.3 0.0 0:00.23 top
1 root 20 0 194904 8000 4232 S 0.0 0.1 0:12.82 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.15 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:01.04 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:04.99 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:04.65 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.37 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.10 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 0:04.90 migration/1
14 root 20 0 0 0 0 S 0.0 0.0 0:01.54 ksoftirqd/1
Copy to clipboardErrorCopied
free -m
Copy to clipboardErrorCopied
pstree
[root@localhost ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─VGAuthService
├─2*[abrt-watch-log]
├─abrtd
├─accounts-daemon───2*[{accounts-daemon}]
├─alsactl
├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon}
│ └─3*[{at-spi-bus-laun}]
├─at-spi2-registr───2*[{at-spi2-registr}]
├─atd
├─auditd─┬─audispd─┬─sedispatch
Copy to clipboardErrorCopied
kill
Linux kill 命令用于删除执行中的程序或工作。
kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 jobs 指令查看。
参数说明:
-l <信息编号> 若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
-s <信息名称或编号> 指定要送出的信息。
[程序] [程序]可以是程序的PID或是PGID,也可以是工作编号。
使用 kill -l 命令列出所有可用信号。
最常用的信号是:
1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。
示例创建一个运行脚本,能一直执行内容如下
#!/bin/bash
ping www.baidu.com
#创建文件
[root@zhangshun ~]# touch pingtest
#编辑测试脚本
[root@zhangshun ~]# vi pingtest
#添加执行权限
[root@zhangshun ~]# chmod a+x pingtest
#执行脚本
[root@zhangshun ~]# ./pingtest
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=4 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=5 ttl=52 time=6.72 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=6 ttl=52 time=6.76 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=7 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=8 ttl=52 time=6.72 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=9 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=10 ttl=52 time=6.75 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=11 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=12 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=13 ttl=52 time=6.72 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=14 ttl=52 time=6.75 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=15 ttl=52 time=6.75 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=16 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=17 ttl=52 time=6.76 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=18 ttl=52 time=6.75 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=19 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=20 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=21 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=22 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=23 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=24 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=25 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=26 ttl=52 time=6.72 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=27 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=28 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=29 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=30 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=31 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=32 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=33 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=34 ttl=52 time=6.73 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=35 ttl=52 time=6.71 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=36 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=37 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=38 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=39 ttl=52 time=6.74 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=40 ttl=52 time=6.71 ms
./pingtest: line 3: 6276 Killed ping www.baidu.com
Copy to clipboardErrorCopied
在ping任务执行的过程中,另外再打开一个窗口执行
[root@zhangshun ~]# ps -ef|grep ping
root 6311 6253 0 11:32 pts/0 00:00:00 /bin/bash ./pingtest
root 6312 6311 0 11:32 pts/0 00:00:00 ping www.baidu.com
root 6333 6315 0 11:32 pts/1 00:00:00 grep --color=auto ping
[root@zhangshun ~]# kill -9 6312