You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从ps命令输出中排除user列?

如何从ps命令输出中排除user列?

嗨,我明白你现在的需求了——你用ps waxfu查看进程时,想把开头的用户名列去掉,方便把剩下的内容传给脚本,而且你已经注意到MariaDB进程的用户是mysql对吧?这里有几个简单好用的办法:

方法1:让ps直接输出你需要的列(推荐)

其实ps本身支持自定义输出字段,根本不用先输出所有列再过滤。你可以用-o参数指定要显示的列,完全避开用户名(USER)列。比如如果你习惯了ps waxfu的输出结构,只是去掉USER列,就可以这样写:

ps axo pid,%cpu,%mem,vsz,rss,tty,stat,start,time,cmd

解释一下参数逻辑:

  • a:显示所有终端关联的进程
  • x:显示无终端的后台进程(比如你关注的MariaDB)
  • o:后面跟着你要保留的字段列表,这里的字段完全对应waxfu输出里除USER外的所有内容,顺序也和原输出一致

如果只需要MariaDB相关的进程信息,还可以直接组合过滤:

ps axo pid,%cpu,%mem,cmd | grep mariadbd

方法2:用awk过滤现有输出

如果你还是想先用ps waxfu输出全量内容,再去掉第一列,awk是最稳妥的选择(因为进程名或参数里可能有空格,用cut容易分割出错):

ps waxfu | awk '{$1=""; print substr($0, 2)}'

这里的逻辑很简单:把每一行的第一列(用户名)设为空,再用substr去掉开头多余的空格,这样输出的就是去掉用户名后的完整内容了。

要是你需要把结果传给脚本,直接在后面加管道就行,比如:

ps axo pid,%cpu,%mem,cmd | grep mariadbd | ./your_script.sh

这样应该就能满足你的需求啦,试试哪个方法更顺手~

备注:内容来源于stack exchange,提问作者palmasd1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 12:14:28