在终端中只输出`ps`命令的COMMAND下的列

Rap*_*ael 14 command-line ps

我知道我们可以很容易地找到以下内容:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
Run Code Online (Sandbox Code Playgroud)

使用以下命令查看所有正在运行的进程:

sudo ps aux

我的问题是,是否可以只显示下列的输出COMMAND而不显示其他任何内容?

Ser*_*nyy 21

使用-o标志。

仅列出您自己的进程

 ps -o command  
Run Code Online (Sandbox Code Playgroud)

列出所有系统进程

 ps -e -o command
Run Code Online (Sandbox Code Playgroud)

这不是列出命令的唯一方法,它们可以用命令行标志打印,也可以仅作为可执行文件(这是command选项的作用)。

从我的评论下面得到答案:

command、args 和 cmd 都给出了完整的命令。事实上,手册页指出 command 和 cmd 是 args 的别名,包括 - 标志。comm 仅给出可执行文件的名称。其别名是 ucmd 和 ucomm。我误读了 AIX 选项,这些选项实际上可以用类似 printf 的格式指定,%a 表示 args,%c 表示 comm

man ps有关用法和可用格式选项的更多信息,请参阅

编程方法有点多余,因为ps已经为我们提供了格式化选项,但可以使用 来完成awk,这在处理列化输出时非常有用。

ps aux | awk '{ for(i=1;i<=NF;i++) {if ( i >= 11 ) printf $i" "}; printf "\n" }'
Run Code Online (Sandbox Code Playgroud)

但是请注意,如果用户名包含空格,则此代码会中断,例如john doe. 这可以通过添加gsub功能进行修改,该功能将从ps列表中删除您的用户名。但是,如果有多个用户登录系统,则可能很难从输出中删除所有用户名。因此,您可以看到该-o标志更受欢迎。

旁注,sudo没有必要列出所有进程ps

  • @Andrew 所以,我已经阅读了更多手册。所以`command`、`args`和`cmd`都给出了完整的命令。事实上,手册页指出 `command` 和 `cmd` 是 `args` 的别名,包括 `-` 标志。`comm` 仅给出可执行文件的名称。其别名是 `ucmd` 和 `ucomm`。我误读了 AIX 选项,这些选项实际上可以用类似 printf 的格式指定,%a 表示 args,%c 表示 comm (2认同)

A.B*_*.B. 5

一种更通用的方式。我们确定命令的列。这样,使用哪些开关就无关紧要了ps

ps ax | awk -v p='COMMAND' 'NR==1 {n=index($0, p); next} {print substr($0, n)}'
Run Code Online (Sandbox Code Playgroud)

样本输出

% ps aux | awk -v p='COMMAND' 'NR==1 {n=index($0, p); next} {print substr($0, n)}'
/sbin/init splash
[kthreadd]
[ksoftirqd/0]
[kworker/0:0H]
[rcu_sched]
[rcu_bh]
[migration/0]
[watchdog/0]
[watchdog/1]
[migration/1]
[ksoftirqd/1]
[kworker/1:0H]
[watchdog/2]
[migration/2]
[ksoftirqd/2]
[kworker/2:0H]
[khelper]
[kdevtmpfs]
[netns]
[perf]
[khungtaskd]
[writeback]
[ksmd]
[khugepaged]
[crypto]
[kintegrityd]
[bioset]
[kblockd]
[ata_sff]
[md]
[devfreq_wq]
[kswapd0]
[fsnotify_mark]
[ecryptfs-kthrea]
[kthrotld]
[acpi_thermal_pm]
[scsi_eh_0]
[scsi_tmf_0]
[scsi_eh_1]
[scsi_tmf_1]
[ipv6_addrconf]
[deferwq]
[charger_manager]
[kpsmoused]
[scsi_eh_2]
[scsi_tmf_2]
[kworker/0:1H]
[jbd2/sda1-8]
[ext4-rsv-conver]
[kauditd]
[kworker/0:2]
/lib/systemd/systemd-journald
/lib/systemd/systemd-udevd
[…]
Run Code Online (Sandbox Code Playgroud)

那是怎么回事pstree

样本输出

% pstree -alU
systemd splash
  ??ModemManager
  ?   ??{gdbus}
  ?   ??{gmain}
  ??NetworkManager --no-daemon
  ?   ??dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/sendsigs.omit.d/network-manager.dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclient-57cfb005-1dc6-410d-aebc-16d8d152abfd-eth0.lease -cf /var/lib/NetworkManager/dhclient-eth0.conf eth0
  ?   ??dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
  ?   ??{gdbus}
  ?   ??{gmain}
  ??VBoxClient --clipboard
  ?   ??VBoxClient --clipboard
  ?       ??{SHCLIP}
  ??VBoxClient --display
  ?   ??VBoxClient --display
  ?       ??{VT_MONITOR}
  ??VBoxClient --seamless
  ?   ??VBoxClient --seamless
  ?       ??{X11 events}
  ??VBoxClient --draganddrop
  ?   ??VBoxClient --draganddrop
  ?       ??{dndHGCM}
  ?       ??{dndX11}
  ??VBoxService --pidfile /var/run/vboxadd-service.pid
  ?   ??{automount}
  ?   ??{control}
  ?   ??{cpuhotplug}
  ?   ??{memballoon}
  ?   ??{timesync}
  ?   ??{vminfo}
  ?   ??{vmstats}
  ??VBoxService
  ?   ??{automount}
  ?   ??{control}
  ?   ??{cpuhotplug}
  ?   ??{timesync}
  ?   ??{vminfo}
  ?   ??{vmstats}
  ??accounts-daemon
  ?   ??{gdbus}
  ?   ??{gmain}
  ??agetty --noclear tty1 linux
  ??apache2 -k start
  ?   ??apache2 -k start
  ?   ??apache2 -k start
  ?   ??apache2 -k start
  ?   ??apache2 -k start
  ?   ??apache2 -k start
  ??at-spi-bus-laun
  ?   ??dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3
  ?   ??{dconf worker}
  ?   ??{gdbus}
  ?   ??{gmain}
  ??at-spi2-registr --use-gnome-session
  ?   ??{gdbus}
  ?   ??{gmain}
  ??atd -f
  ??avahi-daemon
  ?   ??avahi-daemon
  ??cgmanager -m name=systemd
  ??colord
  ?   ??{gdbus}
  ?   ??{gmain}
  ??console-kit-dae --no-daemon
  ?   ??62*[{console-kit-dae}]
  ?   ??{gdbus}
  ?   ??{gmain}
  ??cron -f
  ??cups-browsed
  ?   ??{gdbus}
  ?   ??{gmain}
  ??cupsd -l
  ?   ??dbus dbus:// 
  ??dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
  ??dnsmasq -u lxc-dnsmasq --strict-order --bind-interfaces --pid-file=/run/lxc/dnsmasq.pid --listen-address 10.0.3.1 --dhcp-range 10.0.3.2,10.0.3.254 --dhcp-lease-max=253 --dhcp-no-override --except-interface=lo --interface=lxcbr0 --dhcp-leasefile=/var/lib/misc/dnsmasq.lxcbr0.leases --dhcp-authoritative
  ??gdm
  ?   ??gdm-session-wor
  ?   ?   ??gdm-x-session /usr/bin/gnome-session --autostart /usr/share/gdm/greeter/autostart
  ?   ?   ?   ??Xorg vt7 -displayfd 3 -auth /run/user/120/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3
  ?   ?   ?   ?   ??{llvmpipe-0}
  ?   ?   ?   ?   ??{llvmpipe-1}
  ?   ?   ?   ?   ??{llvmpipe-2}
  ?   ?   ?   ??dbus-daemon --print-address 4 --session
  ?   ?   ?   ??gnome-session-b --autostart /usr/share/gdm/greeter/autostart
  ?   ?   ?   ?   ??gnome-settings-
  ?   ?   ?   ?   ?   ??{dconf worker}
  ?   ?   ?   ?   ?   ??{gdbus}
  ?   ?   ?   ?   ?   ??{gmain}
  ?   ?   ?   ?   ?   ??{pool}
  ?   ?   ?   ?   ??gnome-shell --mode=gdm
  ?   ?   ?   ?   ?   ??ibus-daemon --xim --panel disable
  ?   ?   ?   ?   ?   ?   ??ibus-dconf
  ?   ?   ?   ?   ?   ?   ?   ??{dconf worker}
  ?   ?   ?   ?   ?   ?   ?   ??{gdbus}
  ?   ?   ?   ?   ?   ?   ?   ??{gmain}
  ?   ?   ?   ?   ?   ?   ??ibus-engine-sim
  ?   ?   ?   ?   ?   ?   ?   ??{gdbus}
  ?   ?   ?   ?   ?   ?   ?   ??{gmain}
  ?   ?   ?   ?   ?   ?   ??{gdbus}
  ?   ?   ?   ?   ?   ?   ??{gmain}
  ?   ?   ?   ?   ?   ??{JS GC Helper}
  ?   ?   ?   ?   ?   ??{JS Sour~ Thread}
  ?   ?   ?   ?   ?   ??{Sync}
  ?   ?   ?   ?   ?   ??{dconf worker}
  ?   ?   ?   ?   ?   ??{gdbus}
  ?   ?   ?   ?   ?   ??{gmain}
  ?   ?   ?   ?   ?   ??{llvmpipe-0}
  ?   ?   ?   ?   ?   ??{llvmpipe-1}
  ?   ?   ?   ?   ?   ??{llvmpipe-2}
  ?   ?   ?   ?   ?   ??{threaded-ml}
  ?   ?   ?   ?   ??{dconf worker}
  ?   ?   ?   ?   ??{gdbus}
  ?   ?   ?   ?   ??{gmain}
  ?   ?   ?   ??{gdbus}
  ?   ?   ?   ??{gmain}
  ?   ?   ??{gdbus}
  ?   ?   ??{gmain}

[…]
Run Code Online (Sandbox Code Playgroud)