📅  最后修改于: 2023-12-03 15:02:44.805000             🧑  作者: Mango
在 Linux 系统中,可以使用 Shell 或 Bash 命令来显示当前正在运行的进程。这些命令可以帮助程序员快速了解系统的状态,诊断问题和调试程序。
以下是一些常用的 Shell 和 Bash 命令来了解 Linux 系统中正在运行的进程。
ps
命令ps
命令是最基本的命令,可以列出当前用户的所有进程。命令如下:
ps -ef
-e
选项表示列出所有进程,-f
选项表示输出详细的信息。该命令会列出类似以下的信息:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 07:53 ? 00:00:02 /usr/lib/systemd/systemd --system --deserialize 34
root 2 0 0 07:53 ? 00:00:00 [kthreadd]
root 3 2 0 07:53 ? 00:00:00 [rcu_gp]
root 4 2 0 07:53 ? 00:00:00 [rcu_par_gp]
root 6 2 0 07:53 ? 00:00:00 [kworker/0:0H-kblockd]
...
每一列的含义如下:
top
命令top
命令用于实时显示进程信息,包括 CPU 占用率、内存占用率等。可以使用以下命令来运行:
top
会输出类似以下的信息:
top - 08:33:23 up 3 min, 1 user, load average: 0.05, 0.22, 0.14
Tasks: 202 total, 1 running, 201 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.4 us, 0.4 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1755.5 total, 1525.1 free, 85.7 used, 144.7 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1596.1 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
65 root 20 0 1163196 301084 37660 S 6.3 17.0 0:15.68 Xorg
333 root 20 0 321720 39168 30304 S 1.7 2.2 0:01.15 irq/105-nv
62 root 20 0 126424 5540 4336 S 0.3 0.3 0:00.73 upowerd
54 root 0 -20 0 0 0 S 0.1 0.0 0:00.71 kworker/0:-
1 root 20 0 174732 8484 6644 S 0.0 0.5 0:02.98 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
...
其中,一些比较重要的列和含义如下:
pstree
命令pstree
命令可以以树形结构显示进程之间的父子关系。以下是使用 pstree
命令输出结果的示例:
pstree
输出结果类似以下:
systemd─┬─abrt-watch-log
├─asl-logger───{asl-logger}
├─chronyd───2*[{chronyd}]
├─crond
├─dbus-daemon
├─gssproxy───2*[{gssproxy}]
├─irqbalance───{irqbalance}
├─lvmetad
├─master───6*[pickup]
├─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─polkitd───2*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─rtkit-daemon───2*[{rtkit-daemon}]
├─sddm───sddm-helper───startkde─┬─dbus-daemon
│ ├─kdeinit5─┬─klauncher───2*[{klauncher}]
│ │ ├─kded5
│ │ ├─kinit───5*[{kinit}]
│ │ ├─klauncher───2*[{klauncher}]
│ │ ├─knotify5
│ │ ├─ksmserver───2*[{ksmserver}]
│ │ ├─kwin_x11─┬─kwin_x11───8*[{kwin_x11}]
│ │ │ └─2*[{kwin_x11_close}]
│ │ ├─plasmashell─┬─xbattmon───2*[{xbattmon}]
│ │ │ ├─xclock
│ │ │ ├─{plasmashell}
│ │ │ ├─{repolist-updat}
│ │ │ ├─{usr/bin/kuiser}
│ │ │ └─2*[{xembedsniproxy}]
│ │ ├─{dconf worker}
│ │ └─{kdeinit5}
│ ├─{sddm-helper}
│ └─{Xorg}
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-network
├─systemd-resolve
├─systemd-udevd
├─tuned───4*[{tuned}]
└─wpa_supplicant
其中,每行代表一个进程,父进程在上,子进程在下,缩进表示父子关系。
以上是一些常用的 Shell 和 Bash 命令来查看运行的进程。使用这些命令可以更好地了解系统的运行状态,有助于程序员调试程序、诊断问题。