我正在尝试从中获取输出ps aux
,使其看起来像:
giovanni 28331 4381 0 15:43 ? 00:00:00 sshd: giovanni@pts/1
giovanni 28346 28331 0 15:43 pts/1 00:00:00 -bash
giovanni 28646 28346 0 15:43 pts/1 00:00:00 ./example.sh
Run Code Online (Sandbox Code Playgroud)
但是,在 Ubuntu 14.04 LTS 上运行此命令会提供以下内容:
giovan+ 28331 4381 0 15:43 ? 00:00:00 sshd: giovanni@pts/1
giovan+ 28346 28331 0 15:43 pts/1 00:00:00 -bash
giovan+ 28646 28346 0 15:43 pts/1 00:00:00 ./example.sh
Run Code Online (Sandbox Code Playgroud)
那么如何删除这些加号并指示命令向我显示整个用户名呢?
Jac*_*ijm 29
根据man ps
,ps -aux
是“使用标准(UNIX)语法查看系统上的每个进程”。我发现无法设置用户定义的格式来显示输出。
但是,在BSD 语法中,您可以设置列的宽度,例如:user:<width>
。以下应该为您提供相同的信息,将用户名列宽设置为 20(或任何其他值):
ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm
Run Code Online (Sandbox Code Playgroud)
具有(非常)长名称的输出:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
.........................................................................................
root 3826 0.0 0.1 77828 4788 ? Ss 08:15:55 00:00:00 cupsd
lp 3831 0.0 0.0 63156 2224 ? S 08:15:56 00:00:00 dbus
lp 3832 0.0 0.0 63156 2220 ? S 08:15:56 00:00:00 dbus
root 4822 1.7 5.1 446964 210416 tty8 Ss+ 08:38:00 00:03:27 Xorg
root 4923 0.0 0.1 174652 4412 ? Sl 08:38:02 00:00:00 lightdm
tantemarievanhier 5181 0.0 0.1 544216 4796 ? Sl 08:38:08 00:00:00 gnome-keyring-d
tantemarievanhier 5228 0.0 0.0 40492 2740 ? Ss 08:38:08 00:00:00 init
tantemarievanhier 5369 0.0 0.0 41816 3064 ? Ss 08:38:09 00:00:02 dbus-daemon
tantemarievanhier 5376 0.0 0.0 10616 316 ? Ss 08:38:09 00:00:00 ssh-agent
Run Code Online (Sandbox Code Playgroud)
将列宽设置为 7:
ps axo user:7,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
.........................................................................................
tantem+ 6623 0.0 0.0 287228 3820 ? Sl 08:39:00 00:00:00 unity-webapps-s
tantem+ 6679 0.0 0.4 676856 18640 ? Sl 08:39:20 00:00:00 update-notifier
tantem+ 6721 0.0 0.1 541224 7056 ? Sl 08:40:20 00:00:00 deja-dup-monito
tantem+ 6743 0.0 0.5 810616 21888 ? Sl 08:41:55 00:00:00 unity-scope-hom
tantem+ 6758 0.0 0.2 717256 10352 ? Sl 08:41:55 00:00:00 unity-files-dae
tantem+ 6760 0.0 0.5 607208 22920 ? Sl 08:41:55 00:00:00 unity-scope-loa
tantem+ 6784 0.0 0.2 350676 9060 ? Sl 08:41:56 00:00:00 unity-music-dae
Run Code Online (Sandbox Code Playgroud)
为方便起见,您可以将以下行添加到~/.bashrc
:
alias psaux='ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm'
Run Code Online (Sandbox Code Playgroud)
所以这ps aux
是“正常”输出,同时psaux
为您提供全名版本。
您还可以通过将名称列移动到最后一个位置来显示全名:
ps axo pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm,user
Run Code Online (Sandbox Code Playgroud)
给出:
PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND USER
5181 0.0 0.1 544216 4548 ? Sl 08:38:08 00:00:00 gnome-keyring-d tantemarievanhier
5228 0.0 0.0 40492 2668 ? Ss 08:38:08 00:00:00 init tantemarievanhier
5369 0.0 0.0 41816 3032 ? Ss 08:38:09 00:00:07 dbus-daemon tantemarievanhier
Run Code Online (Sandbox Code Playgroud)
还有另一种更精细的方法来设置 USER- 列的宽度。如果我们使用 USER 列宽的非常高的值运行命令,我们可以使用一个小脚本来重新排列行,将列宽调整为最长的用户名。
这样做
psaux_alternative.py
.添加一行到您的~/.bashrc
:
alias psaux='/path/to/psaux_alternative.py`
Run Code Online (Sandbox Code Playgroud)然后,psaux
在终端窗口中运行将显示具有 USER 列自动宽度的输出。
剧本:
ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29353 次 |
最近记录: |