在 Linux 系统中,可以通过多种方式查看正在运行的各种进程。以下是常用的方法和命令:
---
1. `ps` 命令
`ps` 命令可以显示当前系统中的进程信息。
常用选项:
- `ps aux`: 显示所有用户的所有进程,带详细信息。
- `ps -ef`: 以另一种格式显示进程列表。
示例:
```bash
ps aux
```
输出中包含:
- USER: 进程所属用户
- PID: 进程 ID
- %CPU/%MEM: 占用的 CPU 和内存百分比
- COMMAND: 执行的命令
---
2. `top` 命令
`top` 提供实时动态的进程列表,适合监控系统性能。
使用方法:
```bash
top
```
常用快捷键:
- `q`: 退出
- `k`: 杀死一个进程(需要输入 PID)
- `P`/`M`: 按 CPU 或内存使用排序
---
3. `htop` 工具
`htop` 是 `top` 的增强版,界面友好,支持上下文导航。
安装:
```bash
sudo apt install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
```
运行:
```bash
htop
```
---
4. `pgrep` 命令
`pgrep` 用于查找特定的进程。
例如,查找名字包含 `nginx` 的进程:
```bash
pgrep nginx
```
结合 `-a` 参数查看完整命令:
```bash
pgrep -a nginx
```
---
5. `pidof` 命令
查找特定程序的 PID:
```bash
pidof sshd
```
---
6. `systemctl` 和 `service`
查看服务相关进程状态:
- 使用 `systemctl`:
```bash
systemctl status nginx
```
- 使用 `service`:
```bash
service nginx status
```
---
7. `lsof` 工具
`lsof` 可以列出系统打开的文件和对应进程。
示例:查看特定端口占用的进程:
```bash
lsof -i :80
```
---
8. `netstat` 和 `ss` 工具
用于查看网络相关进程。
例如,查看所有的端口:
```bash
netstat -tuln
# 或者
ss -tuln
```
---
9. `kill` 和 `killall`
- 使用 `kill` 终止指定 PID 的进程:
```bash
kill -9 PID
```
- 使用 `killall` 终止某类进程:
```bash
killall nginx
```
---
这些工具组合使用,能方便地查看和管理 Linux 系统中的各种进程。如果需要更深入的分析,还可以使用 `strace` 或 `perf` 这样的高级工具。