知道一个程序的PID,可以进入目录/proc/PID查看进程的具体信息。
ps,pstree -p,ps aux,pgrep查看PID
PS
ps 命令是一个用于显示进程信息的常用命令。以下是 ps 命令的一些常用选项:
-e:显示所有进程,包括系统进程。
-f:显示完整的进程信息,包括进程的详细信息。
-l:显示更多的列,包括进程的状态、CPU 使用情况等。
-u:显示指定用户的进程信息。
-aux:结合 -a 和 -u 选项,显示所有用户的所有进程,并显示详细信息。
-p:显示指定进程号(PID)的进程信息。
-k --sort:按指定的列排序显示进程信息,常见的排序列包括 %cpu(CPU 使用率)、%mem(内存使用率)等。-%cpu倒序显示
-C:根据命令名显示进程信息。
-o:自定义输出格式,可以指定要显示的列。
--forest:以树状结构显示进程间的父子关系。
ps aux含义
USER: 进程的拥有者。这通常是运行该进程的用户帐户的名称。PID: 进程ID。每个进程都有一个唯一的ID,用于标识该进程。%CPU: 该进程占用的CPU使用率百分比。%MEM: 该进程占用的物理内存使用率百分比。VSZ: 虚拟内存大小,单位是KB。这表示进程使用的虚拟内存量。RSS: 常驻集大小,单位是KB。这表示进程在物理内存中占用的固定大小。TTY: 终端类型。如果进程没有与任何终端关联,则显示为"?"。STAT: 进程状态。这描述了进程的当前状态,例如运行中、休眠等。START: 进程启动的时间。TIME: 该进程实际使用CPU的时间,单位是小时:分钟:秒。COMMAND: 启动进程的命令名称或命令行。
STAT
在 ps aux 命令的输出中,STAT 列显示了进程的状态。这些状态通常是由一些字符表示的,每个字符代表了不同的状态。下面是一些常见的进程状态及其含义:
R:正在运行,或者可运行(可执行)。
S:处于休眠状态,包括睡眠状态。
D:不可中断的睡眠状态,通常是由于等待 I/O 操作完成而导致的。
T:已停止,可能是由于接收到了信号而被停止。
Z:僵尸状态,进程已经终止但父进程尚未对其进行清理。
<:高优先级进程。
N:低优先级进程。
L:位于内存锁中。
+:位于前台的进程组。
s:会话领导者。
这些状态字符可能会组合在一起,例如 R+ 表示正在运行且位于前台的进程组。
ps -ef含义
UID:用户ID,表示运行该进程的用户。PID:进程ID,每个进程都有一个唯一的ID。PPID:父进程ID,表示创建该进程的父进程的ID。C:CPU使用率,表示该进程占用的CPU百分比。STIME:进程启动的时间。TTY:终端类型,如果进程与某个终端关联,则显示该终端的名称;否则显示"?"。TIME:该进程实际使用CPU的时间,通常以分钟或小时为单位。CMD:启动进程的命令名称或命令行。
用法
-k:按指定的列排序显示进程信息,常见的排序列包括 %cpu(CPU 使用率)、%mem(内存使用率)等。-%cpu倒序显示
axo:查看进程的特定属性
ps axo pid,cmd,%mem,%cpu --sort %mem | head #显示pid,cmd,%mem,%cpu并以mem排序 --sort可以换成k
top
top 命令是一个常用的系统监视工具,在 Linux 和 Unix 系统中经常用于实时显示系统中各个进程的资源占用情况。通过 top 命令,用户可以查看 CPU 使用率、内存占用、进程列表等信息,并可以交互式地对进程进行管理。
选项:
-d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
-b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
-n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
-p 进程PID:仅查看指定 ID 的进程;
-s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
-u 用户名:只监听某个用户的进程;
在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:
? 或 h:显示交互模式的帮助;
c:按照 CPU 的使用率排序,默认就是此选项;
M:按照内存的使用率排序;
N:按照 PID 排序;
T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
r:按照 PID 给某个进程重设优先级(Nice)值;
q:退出 top 命令;
总体系统信息:
uptime:系统的运行时间和平均负载。
tasks:当前运行的进程和线程数目。
CPU:总体 CPU 使用率和各个核心的使用情况。
内存(Memory):总体内存使用情况、可用内存和缓存。
进程信息:
PID:进程的标识符。
USER:运行进程的用户名。
PR(优先级):进程的优先级。
NI(Nice值):进程的优先级调整值。
VIRT(虚拟内存):进程使用的虚拟内存大小。
RES(常驻内存):进程实际使用的物理内存大小。
SHR(共享内存):进程共享的内存大小。
%CPU:进程占用 CPU 的使用率。
%MEM:进程占用内存的使用率。
TIME+:进程的累计 CPU 时间。
pgrep
查看指定的进程
-u 指定用户
-l: 显示进程名
-a: 显示完整格式的进程名
-P pid: 显示指定进程的子进程
pidof
知道程序名不知道PID
pstree
后面可以跟用户名
lsof
lsof 是一个用于列出系统中打开的文件(File)的工具,它可以显示当前系统中正在被打开的文件、目录和网络连接等信息。它的名字代表 "list open files"。
-i:显示网络相关信息,如打开的端口、连接状态等。这对于检查网络连接和端口占用情况非常有用。
-p:仅显示指定进程号(PID)相关信息。通过指定特定的 PID,可以查看该进程打开的文件和网络连接等信息。
-u:仅显示指定用户的相关信息。通过指定用户名,可以查看该用户打开的文件和网络连接等信息。
-c:仅显示指定进程名的相关信息。通过指定进程名,可以查看该进程打开的文件和网络连接等信息。
-t:仅显示进程号(PID),而不显示其他信息。这在需要获取进程号的场景中很有用。
当我们删除一个文件,但是空间没有被释放时,可以使用
lsof | grep delete
找出该进程号
/proc/PID/fd
找出删除文件,可以通过将该文件重新写入还原删除但没有释放空间的文件。
lsof过滤端口号