在 cygwin 中仅获取 ps 命令的 COMMAND 列

get only a COMMAND column in cygwin for ps command

在 Cygwin 中,我可以通过以下命令获取 运行 个进程的列表:

      PID    PPID    PGID     WINPID   TTY         UID    STIME COMMAND
    13160       1   13160      13160  ?         197609 13:42:18 /usr/bin/mintty
S   15404    2852   15404      16776  pty2      197609 13:59:29 /usr/bin/vi
     2852   12912    2852      11244  pty2      197609 13:42:54 /usr/bin/bash
     9864       1    9864       9864  ?         197609 13:11:32 /usr/bin/mintty
S   10500    2852    1692       1452  pty2      197609 14:09:42 /usr/bin/less
S   17644    2852   17644      11880  pty2      197609 14:00:15 /usr/bin/vi
    12912       1   12912      12912  ?         197609 13:42:54 /usr/bin/mintty
     8432    2852    8432      12020  pty2      197609 14:10:05 /usr/bin/ps
    17092   13160   17092      14720  pty1      197609 13:42:18 /usr/bin/bash

但是,我只想要 COMMAND 列,而不是像这样的所有列:

COMMAND
/usr/bin/mintty
/usr/bin/vi
/usr/bin/bash
/usr/bin/mintty
/usr/bin/less
/usr/bin/vi
/usr/bin/mintty
 /usr/bin/ps
/usr/bin/bash

在MAC中,我可以通过以下命令来做到这一点:

ps -o command

同一命令在 windows 中不适用于 cygwin,因为 -o 选项在 ps 中不存在。

您可以使用 awk 只打印选定的列。

$ ps |awk '{ if (NF==8) {print } else {print }}'
COMMAND
/usr/bin/ps
/usr/bin/bash
/usr/bin/mintty

更多学习: http://www.grymoire.com/Unix/Awk.html#uh-17