ps与grep组合命令使用

本文详细介绍了Linux系统中ps和grep两个常用命令的功能及用法。通过结合使用这两个命令,可以有效地查询系统中特定进程的信息。文章还提供了具体的使用示例帮助读者更好地理解和掌握这些命令。
管道命令

我们在做运维的时候,经常会使用这个命令ps -ef | grep nginx
ps -ef 表示显示所有进程的消息。
| 是管道命令。通常需要借助管道命令”|”多个命令的组合,形式如下:

command 1 |  command 2 |  command 3 ……

管道命令的作用是将command 1 执行的结果,交给command 2 处理,以此内推。所以 ,

grep nginx 表示的是在所有进程的消息查询名字为nginx的进程。

下面来看看grep指令与ps 指令的具体用法。

grep 指令

grepLinux 下的文本过滤工具。它的使用权限是所有用户。grep 根据制定的字符串,对文件的每一行进行搜索。 如果找到这个字符串,就输出这个字符串的内容。其格式如下:

grep [选项] 需要查找的文件名

选项说明:

选项说明
-A NUM除了列出符合条件的行外,同时列出每个符合条件的后NUM行
-i搜索时忽略大小写
-n在搜索结果中忽略行号
-w精准查找

例如:新建了一个exercise.txt文件,内容如下:

1. 查找文件中的“adb”字符串,模糊查找

grep abc exercise.txt

2. 查找文件中的“adb”字符串,不区分大小写

grep -i abc  exercise.txt 

3. 查找文件中“abc”字符串,精准查找

grep -w abc  exercise.txt 

ps 指令

ps指令显示系统进程在瞬间的运行状态,其格式如下:

ps [选项]

选项说明:

选项说明
a显示所有用户的进程,包含每个程序完整路径
-x显示所有系统程序,包括那些没有终端的程序
-f显示UID,PPIP,C与STIME栏位。
-c只显示进程名称,不显示进程的完整路径
-e将除内核进程外所有的进程信息写到标准输出

例如:

UIDPIDPPIDCPUSTIMETTYTIMECMD
root130318828022:30pts/000:00:00grep nginx
  • UID: 程序被该 UID 所拥有
  • PID: 就是这个程序的 ID
  • PPID 则是其上级父程序的ID
  • CPU: 使用的资源百分比
  • STIME :系统启动时间
  • TTY: 登入者的终端机位置
  • TIME:使用掉的 CPU 时间。
  • CMD: 所下达的指令为何
在 Linux 中,`ps` 和 `grep` 经常结合使用来查找特定的进程信息。以下是常见用法和示例: --- ### **1. 基本用法:查找进程** ```bash ps aux | grep <关键词> ``` - **示例**:查找所有包含 `nginx` 的进程 ```bash ps aux | grep nginx ``` - **输出说明**: - `USER`:进程所有者 - `PID`:进程 ID - `%CPU`/`%MEM`:CPU/内存占用 - `COMMAND`:进程命令或路径 --- ### **2. 排除 `grep` 自身进程** 默认情况下,`grep` 也会出现在结果中,可通过以下方式排除: ```bash ps aux | grep -v "grep" | grep <关键词> ``` 或使用正则表达式: ```bash ps aux | grep "[k]eyword" # 方括号技巧(grep 进程不会匹配自身) ``` **示例**: ```bash ps aux | grep "[n]ginx" ``` --- ### **3. 精确匹配进程名** ```bash ps -ef | grep -w "<进程名>" ``` - `-w` 表示全词匹配(避免部分匹配)。 - **示例**:精确匹配 `bash` 进程 ```bash ps -ef | grep -w "bash" ``` --- ### **4. 查看特定用户的进程** ```bash ps -u <用户名> | grep <关键词> ``` **示例**:查看用户 `www-data` 的所有进程 ```bash ps -u www-data ``` --- ### **5. 结合 `awk` 提取特定字段** 提取进程 PID 和命令: ```bash ps aux | grep <关键词> | awk '{print $2, $11}' ``` - `$2` 是 PID,`$11` 是命令。 --- ### **6. 统计进程数量** ```bash ps aux | grep -c "<关键词>" ``` **示例**:统计 `python` 进程数量 ```bash ps aux | grep -c "python" ``` --- ### **7. 杀死所有匹配的进程** ```bash pkill -f "<关键词>" # 直接杀死 # 或 kill $(ps aux | grep '<关键词>' | awk '{print $2}') # 先获取PID再杀死 ``` **注意**:操作前务必确认进程列表,避免误杀! --- ### **常见问题** - **`ps aux` 和 `ps -ef` 的区别**: - `aux`:BSD 风格,显示更详细(如 CPU/内存)。 - `-ef`:Unix 风格,格式更简洁。 - **`grep` 结果为空**: - 检查关键词是否拼写错误。 - 尝试去掉 `-w` 或使用模糊匹配(如 `grep ".*nginx.*"`)。 --- ### **总结命令** | 需求 | 命令示例 | |--------------------|----------------------------------| | 查找进程 | `ps aux | grep nginx` | | 精确匹配 | `ps -ef | grep -w "bash"` | | 排除 grep 自身 | `ps aux | grep "[n]ginx"` | | 提取 PID 和命令 | `ps aux | grep nginx | awk '{print $2, $11}'` | | 统计进程数 | `ps aux | grep -c "python"` |
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值