显示Linux所有正在运行的进程

本文介绍Linux下用于管理和查看进程的多种命令,包括ps、top、pstree等,并演示了如何利用这些命令完成不同任务,例如获取进程树、查找特定进程等。

ps命令

输入下面的ps命令,显示所有运行中的进程:

# ps aux | less

其中,

-A:显示所有进程

a:显示终端中包括其它用户的所有进程

x:显示无控制终端的进程

任务:查看系统中的每个进程。

# ps -A

# ps -e

任务:查看非root运行的进程

# ps -U root -u root -N

任务:查看用户vivek运行的进程

# ps -u vivek

任务:top命令

top命令提供了运行中系统的动态实时视图。在命令提示行中输入top:

# top

 

任务:显示进程的树状图。

pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。

$ pstree

 

任务:使用ps列印进程树

# ps -ejH

# ps axjf

任务:获得线程信息

输入下列命令:

# ps -eLf

# ps axms

任务:获得安全信息

输入下列命令:

# ps -eo euser,ruser,suser,fuser,f,comm,label

# ps axZ

# ps -eM

任务:将进程快照储存到文件中

输入下列命令:

# top -b -n1 > /tmp/process.log

你也可以将结果通过邮件发给自己:

# top -b -n1 | mail -s 'Process snapshot' you@example.com

任务:查找进程

使用pgrep命令。pgrep能查找当前正在运行的进程并列出符合条件的进程ID。例如显示firefox的进程ID:

$ pgrep firefox

下面命令将显示进程名为sshd、所有者为root的进程。

$ pgrep -u root sshd

向htop和atop说hello

htop是一个类似top的交互式进程查看工具,但是可以垂直和水平滚动来查看所有进程和他们的命令行。进程的相关操作(killing,renicing)不需要输入PID。要安装htop输入命令:

# apt-get install htop

# yum install htop

在命令提示行中输入htop:

# htop

atop工具

atop是一个用来查看Linux系统负载的交互式监控工具。它能展现系统层级的关键硬件资源(从性能角度)的使用情况,如CPU、内存、硬盘和网络。

它也可以根据进程层级的CPU和内存负载显示哪个进程造成了特定的负载;如果已经安装内核补丁可以显示每个进程的硬盘和网络负载。输入下面的命令启动atop:

# atop

<think>我们正在回答用户关于“如何查看Linux系统中所有正在运行进程”的问题。根据用户提供的引用内容,我们可以总结出几种常用方法,并结合这些引用进行回答。 用户引用内容分析: [1]:介绍了如何检查机器上运行的所有程序,包括列出、管理和终止进程。 [2]:提到使用`ps`命令和查看`/proc`目录来查看进程。 [3]:讨论了如何查看systemd下运行的服务。 [4]:详细介绍了`ps`命令及其参数。 根据这些引用,我们可以提供以下方法: 1. 使用`ps`命令:这是最常用的查看进程的命令,结合不同的参数可以显示不同详细程度的信息。 2. 查看`/proc`目录:该目录以虚拟文件系统的方式提供了进程和系统信息。 3. 使用`top`或`htop`命令:这些是动态查看进程的工具,可以实时显示进程状态。 4. 使用`systemctl`命令:用于查看systemd管理的服务(也是一种进程)。 由于用户特别询问了“所有正在运行进程”,我们将重点放在如何显示所有进程上。 回答结构: 1. 介绍`ps aux`命令(最常用) 2. 介绍`ps -ef`命令 3. 介绍通过`/proc`目录查看 4. 介绍动态工具`top`和`htop` 5. 补充说明`pstree`以树形结构显示 6. 简要提及`systemctl`查看服务进程(但注意,服务进程通常也会包含在上述命令中) 同时,我们根据要求,生成相关问题。 注意:在回答中,对于命令示例,我们使用代码块,并确保数学表达式(如果有)使用正确的格式。另外,在适当的地方添加引用标记。</think>### Linux 查看所有正在运行进程的方法 #### 1. **使用 `ps` 命令(最常用)** ```bash ps aux ``` - **参数解析**: - `a`:显示所有用户进程 - `u`:显示详细用户信息 - `x`:包括未控制终端的进程(如守护进程) - **输出示例**: ``` USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 169020 13136 ? Ss 08:30 0:02 /sbin/init mysql 1024 0.5 5.2 1123456 420000 ? Sl 08:32 2:15 /usr/sbin/mysqld ``` - **关键字段**: - `PID`:进程ID - `COMMAND`:启动命令 - `STAT`:进程状态(如`S`=睡眠, `R`=运行) #### 2. **结合管道过滤(精确查看)** ```bash ps -ef | grep -v "\[" # 排除内核线程 ``` - 显示所有进程并过滤掉内核线程(内核线程名通常包含`[]`) #### 3. **查看 `/proc` 目录** ```bash ls /proc | grep -E "^[0-9]+$" ``` - **原理**:每个进程在`/proc`下有一个以PID命名的目录 - **查看进程详情**: ```bash cat /proc/<PID>/status # 查看指定进程状态 ``` #### 4. **动态监控工具** - **`top`(实时进程监控)**: ```bash top ``` - 按内存排序:`Shift + M` - 按CPU排序:`Shift + P` - **`htop`(增强版)**: ```bash htop # 需先安装:sudo apt install htop ``` - 支持鼠标操作和彩色显示 #### 5. **树状结构显示** ```bash pstree -p ``` - **输出示例**: ``` systemd(1)─┬─NetworkManager(786)─┬─{gdbus}(812) ├─sshd(1024)───sshd(2048)───bash(2050) ``` - `-p` 参数显示PID,清晰展示进程父子关系 #### 6. **查看 systemd 管理的服务** ```bash systemctl list-units --type=service --state=running ``` - 专用于显示通过 systemd 管理的后台服务进程[^3] > **权限说明**:普通用户查看自身进程查看所有进程需`sudo`权限 > **调试技巧**:使用 `watch -n 1 'ps aux'` 每秒刷新进程列表 --- ### 相关问题 1. 如何根据进程名查找特定进程的PID? 2. 当发现高CPU占用进程时,如何安全终止它? 3. Linux 中的僵尸进程是什么?如何检测和清理? 4. 如何持续监控某个进程的资源使用情况? 5. 守护进程(daemon)和普通进程在管理方式上有何不同? [^1]: 参考 Linux 进程管理基础 [^2]: 基于 /proc 文件系统的进程信息获取方法 [^3]: 系统服务进程的专用管理命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值