ps -ef 指令
在Linux系统中,ps
是一个非常基础且强大的命令行工具,用于报告当前系统中运行的进程的状态。它是 “Process Status” 的缩写。通过使用不同的选项和参数,ps
命令能够以多种格式展示进程信息,帮助用户了解系统中进程的运行状况。以下是一些基本用法和概念:
基本使用
-
查看当前终端下的进程:
ps
或
ps -f
-f
选项提供了完整的格式化输出,包括UID、PID、PPID(父进程ID)、启动时间、终端类型等信息。 -
查看所有用户的进程:
ps -ef 或 ps aux
-e
或a
选项表示显示所有用户的进程,f
和ux
提供了不同的输出格式。 -
搜索特定进程:
ps aux | grep [process-name-or-pattern]
这将列出所有包含指定名称或模式的进程。
常用选项
- -a:显示所有用户的进程。
- -u:显示进程的用户ID和用户名。
- -x:显示没有控制终端的进程。
- -o:自定义输出格式,可以指定显示哪些字段,如
ps -eo pid,ppid,cmd
。 - -p:指定进程ID,查看特定的进程,例如
ps -p 1234
。 - -t:指定终端,查看在指定终端上的进程。
- -f:提供完整的格式输出,包含额外的信息如进程启动时间和命令行参数。
进阶用法
- 与管道结合:常与
grep
、awk
、sort
等命令结合,进行更复杂的进程信息筛选和处理。 - 实时监控:虽然
ps
默认给出的是一个瞬间的进程快照,但结合watch
命令可以实现定期刷新查看进程状态,如watch -n 1 'ps -aux | grep [process]'
,这里-n 1
表示每秒更新一次。
例如 ps -ef | grep mysql 会只过滤出包含mysql的进程
注意
- 如果需要持续监控进程状态,通常推荐使用
top
或htop
命令,它们提供了更加动态和交互式的界面。 ps
命令的选项在不同的Linux发行版中可能略有差异,部分选项属于BSD风格,部分属于GNU风格,使用时需根据系统手册页(man ps
)来确定适用的选项。
netstat -tuplan 指令
在Linux系统中,netstat -tuplan
是一个组合命令,用于详细展示当前系统中的网络连接信息。这个命令的具体组成部分意义如下:
-
netstat
:是“network statistics”的缩写,是一个强大的命令行工具,用于显示网络连接、路由表、网络接口统计等网络相关信息。 -
-t
:此选项告诉netstat只显示TCP连接。 -
-u
:此选项用于显示UDP连接。 -
-p
:显示每个连接所属的进程ID(PID)和进程名称。这对于识别哪个程序正在使用特定的网络端口非常有用。 -
-l
:显示处于监听(listen)状态的套接字。这些通常是服务器应用程序等待客户端连接的端口。 -
a
:显示所有活动的TCP连接、UDP连接以及监听的端口(也就是既包括连接中的也包括等待连接的)。 -
n
:以数字形式显示IP地址和端口号,而不是尝试去解析主机名和服务名称。这可以使输出更快,尤其是在DNS解析有问题或不需要名称解析的情况下。
netstat -tuplan
命令会列出所有TCP和UDP的连接信息,包括监听中的端口,并且会显示每个连接或监听对应的进程ID和进程名称,所有IP地址和端口都以数字形式展现,以便于快速查看和分析系统的网络连接状况。
可以帮助监控和故障排查网络服务。