ps -ef |awl ‘{print $2}’ | sort -n | uniq-c | grep -v ‘1’
时间: 2025-06-01 10:18:10 浏览: 10
### 查找重复的进程 ID 并统计出现次数
为了查找重复的进程 ID(PID)并统计其出现次数,可以结合 `ps -ef` 命令与 `awk`、`sort`、`uniq` 等工具完成。以下是实现该目标的具体方法:
#### 方法描述
1. 使用 `ps -ef` 命令列出所有进程及其详细信息。
2. 通过 `awk` 提取 PID 列。
3. 使用 `sort` 对 PID 进行排序。
4. 使用 `uniq -c` 统计每个 PID 的出现次数。
5. 过滤掉仅出现一次的 PID。
#### 实现代码
以下是一个完整的命令示例:
```bash
ps -ef | awk '{print $2}' | sort | uniq -c | awk '$1 > 1 {print $2, $1}'
```
#### 代码解析
1. **`ps -ef`**
列出系统中所有进程及其详细信息,包括用户、PID、PPID、启动时间等[^4]。
2. **`awk '{print $2}'`**
提取 `ps -ef` 输出中的第二列,即进程 ID(PID)[^3]。
3. **`sort`**
对提取的 PID 列表进行排序,以便后续使用 `uniq` 正确统计出现次数。
4. **`uniq -c`**
统计每个 PID 的出现次数,并在前面加上计数。
5. **`awk '$1 > 1 {print $2, $1}'`**
过滤掉只出现一次的 PID,仅保留出现多次的 PID 及其计数。
#### 示例输出
假设系统中有以下进程:
```
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:00 ? 00:00:01 /sbin/init splash
root 2 0 0 10:00 ? 00:00:00 [kthreadd]
root 3 2 0 10:00 ? 00:00:00 [rcu_gp]
root 4 2 0 10:00 ? 00:00:00 [rcu_par_gp]
root 5 1 0 10:05 ? 00:00:00 /usr/bin/sshd
root 6 5 0 10:05 ? 00:00:00 sshd: root@pts/0
root 6 5 0 10:05 ? 00:00:00 sshd: root@pts/1
```
运行上述命令后,输出可能如下:
```
6 2
```
这表示 PID 为 6 的进程出现了 2 次。
---
###
阅读全文
相关推荐












