准建 发表于 2024-8-18 23:04:49

Linux系统中的进程和端口查看命令

本章将和大家分享Linux系统中的进程和端口查看命令。
一、ps命令

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
1、基本语法

ps [选项]2、常用选项


[*]a:显示所有进程
[*]-a:显示同一终端下的所有程序
[*]-A:显示所有进程的信息。
[*]c:显示进程的真实名称
[*]-N:反向选择
[*]-e:显示所有进程(与 -A 相同)。
[*]e:显示环境变量
[*]-f:以全格式显示进程信息,包括父进程ID(PPID)、CPU使用率(%CPU)、内存使用率(%MEM)等。
[*]-H:显示树状结构
[*]r:显示当前终端的进程
[*]T:显示当前终端的所有程序
[*]-u:显示指定用户的进程信息,可以通过用户名来限制显示的进程列表。
[*]-C :显示由指定命令启动的进程的信息。
[*]--lines:每页显示的行数
[*]--width:每页显示的字符数
[*]--help:显示帮助信息
[*]--version:显示版本显示
[*]-l:显示长格式信息,包括更多细节,如进程命令行、进程状态等。
[*]-p:显示指定进程ID(PID)的进程信息。
[*]-o:自定义输出格式,可以指定要显示的列和排序方式。
[*]-x:显示没有控制终端的进程。
[*]-aux:BSD风格的选项组合,显示详细的进程信息,包括所有用户的进程、进程所有者、CPU和内存使用情况等。
[*]-ef:System V风格的选项组合,以全格式显示系统中所有进程的列表,包括其他用户的进程。
3、输出字段

ps 命令默认显示的列有:

[*]PID:进程 ID。
[*]TTY:控制终端。
[*]TIME:所使用的 CPU 时间。
[*]CMD:启动的命令。
通过 -o 选项,你可以指定输出格式,例如:

[*]%cpu:CPU 使用百分比。
[*]%mem:内存使用百分比。
[*]%c:进程优先级。
[*]args:命令行参数。
[*]pcpu:当前 CPU 使用百分比。
[*]pmem:当前内存使用百分比。
4、输出信息解释


[*]UID:进程所有者的用户ID。
[*]PID:进程的唯一标识符,即进程ID。
[*]PPID:父进程的进程ID。
[*]%CPU:进程使用的CPU资源的百分比。
[*]%MEM:进程使用的内存资源的百分比。
[*]VSZ:进程的虚拟内存大小(以KB为单位)。
[*]RSS:进程占用的物理内存大小(以KB为单位)。
[*]TTY:进程所关联的终端。
[*]STAT:进程的状态(如R表示运行,S表示睡眠,Z表示僵尸等)。
[*]START:进程启动的时间。
[*]TIME:进程运行过程中占用CPU的总时间。
[*]COMMAND:启动进程的命令名称。
5、示例

1)显示所有进程
ps -e

ps -A2)以全格式显示所有进程
ps -ef3)显示特定用户的进程
ps -u 用户名4)显示指定进程ID的进程信息
ps -p PID5)显示指定命令名称的进程
ps -C 命令名6)自定义输出格式
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem6、常用方式

ps -ef #显示所有当前进程(常用)
ps -aux #显示所有当前进程(显示更详细的信息)(常用)
ps -ax #显示所有当前进程
ps -u pungki #根据用户过滤进程
ps -aux --sort -pcpu | less #根据 CPU 使用来升序排序
ps -aux --sort -pmem | less #根据用户过滤进程
ps -aux --sort -pcpu,+pmem | head -n 10 #查询使用cpu和内存最高的前10个应用
ps -C getty #通过进程名和PID过滤
ps -f -C getty #带格式显示的,通过进程名和PID过滤
ps -L 1213 #根据线程来过滤进程
ps -axjf(或pstree) #树形显示进程
ps -eo pid,user,args # 显示安全信息
ps -U root -u root u #格式化输出 root 用户(真实的或有效的UID)创建的进程二、netstat命令

netstat 命令在 Linux 系统中是一个非常有用的工具,用于显示网络连接、路由表、网络接口统计信息、伪装连接(masquerade connections)和多播成员信息等。
1、基本语法

netstat [选项]2、常用选项


[*]-a 或 --all: 显示所有连接状态,包括监听连接和非监听连接。
[*]-n 或 --numeric: 显示数字形式的地址和端口,而不是尝试解析它们。
[*]-t 或 --tcp: 仅显示 TCP 连接。
[*]-u 或 --udp: 仅显示 UDP 连接。
[*]-l 或 --listening: 仅显示监听连接。
[*]-p 或 --programs: 显示与每个连接/监听端口相关的程序名称。
[*]-r 或 --route: 显示路由表。
[*]-i 或 --interfaces: 显示网络接口信息。
[*]-s 或 --statistics: 显示每种协议的统计信息。
[*]-v 或 --verbose: 显示更详细的输出。
[*]-m 或 --masquerade: 显示伪装连接。
[*]-g 或 --groups: 显示多播组成员信息。
[*]-b 或 --broadcaster: 显示广播地址信息。
[*]-e: 显示扩展信息,例如uid等。
[*]-c: 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到。
3、示例

1)列出所有端口 (包括监听和未监听的)
## 列出所有端口
netstat -a
## 列出所有 tcp 端口
netstat -at
##列出所有 udp 端口
netstat -au2)列出所有处于监听状态的Sockets
### 只显示监听端口
netstat -l
### 只列出所有监听 tcp 端口
netstat -lt
### 只列出所有监听 udp 端口
netstat -lu
### 只列出所有监听 UNIX 端口
netstat -lx3)找出程序运行的端口(常用)
netstat -tulnp | grep <程序名或端口号>例如:找出 nginx 运行的端口
# netstat -tulnp | grep <程序名或端口号>nginxtcp      0      0 0.0.0.0:80            0.0.0.0:*               LISTEN      8981/nginx: master或者使用ss命令(现代Linux发行版推荐使用):
ss -tulnp | grep <程序名或端口号>选项与netstat命令中的类似。
4)找出运行在指定端口的进程(常用)
例如:找出运行在80端口的进程
# netstat -lntp | grep :80
tcp      0      0 0.0.0.0:80            0.0.0.0:*               LISTEN      8981/nginx: master5)显示所有监听的 TCP 端口及其关联的程序(常用)
netstat -tlpn6)显示所有 TCP 和 UDP 的监听端口及其关联的程序(常用)
netstat -tulnp7)显示所有TCP和UDP连接
netstat -atu8)显示所有连接,包括监听和非监听的 TCP 连接
netstat -an | grep ESTABLISHED 

来源:https://www.cnblogs.com/xyh9039/p/18366046
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Linux系统中的进程和端口查看命令