如何始终从 `ps aux` 命令中删除 PID?
How to always cut the PID from `ps aux` command?
我想从我的进程中获取 pid。我做 ps aux | cut -d ' ' -f 2
但我注意到有时它会获取 pid,有时却不会:
[user@ip ~]$ ps aux
user 2049 0.5 10.4 6059216 1623520 ? Sl date 8:48 process
user 12290 0.3 6.9 5881568 1086244 ? Sl date 2:30
[user@ip ~]$ ps aux | cut -d ' ' -f 2
12290
[user@ip ~]$ ps aux | cut -d ' ' -f 3
2049
请注意,第一个 cut
命令将它传送到 2
,而第二个命令将它传送到 3
。如何在不知道要使用哪个数字(2
或 3
)的情况下从中挑选出 PID?
谁能告诉我它们之间的区别以及为什么它拾起一个而不拾取另一个?
-d ' '
表示使用单个 space 作为分隔符。由于在 2049 之前有 1 个 space,在 12290 之前有 2 个 space,您的命令通过 -f 2
和 -f 3
获取它们。
我建议使用 ps aux | awk '{print }'
获取这些 pids。
或者你可以先用tr
压缩那些space
ps aux | tr -s ' ' | cut -d ' ' -f 2
您可以使用选项 -o 仅打印 pid:
ps -u user -o pid
您始终可以使用 pgrep 获取进程的 PID
例如带有 PS AUX
的 PID
wix@wsys:~$ ps aux | grep sshd
root 1101 0.0 0.0 72304 3188 ? Ss Oct14 0:00 /usr/sbin/sshd -D
root 6372 0.0 0.1 105692 7064 ? Ss 06:01 0:00 sshd: wix [priv]
wix 6481 0.0 0.1 107988 5748 ? S 06:01 0:00 sshd: wix@pts/1
root 6497 0.0 0.1 105692 7092 ? Ss 06:01 0:00 sshd: wix [priv]
wix 6580 0.0 0.1 107988 5484 ? S 06:01 0:00 sshd: wix@pts/2
wix 6726 0.0 0.0 13136 1044 pts/1 S+ 06:12 0:00 grep --color=auto sshd
现在只需 pgrep 即可获取 PID
wix@wsys:~$ pgrep sshd
1101
6372
6481
6497
6580
wix@wsys:~$
我想从我的进程中获取 pid。我做 ps aux | cut -d ' ' -f 2
但我注意到有时它会获取 pid,有时却不会:
[user@ip ~]$ ps aux
user 2049 0.5 10.4 6059216 1623520 ? Sl date 8:48 process
user 12290 0.3 6.9 5881568 1086244 ? Sl date 2:30
[user@ip ~]$ ps aux | cut -d ' ' -f 2
12290
[user@ip ~]$ ps aux | cut -d ' ' -f 3
2049
请注意,第一个 cut
命令将它传送到 2
,而第二个命令将它传送到 3
。如何在不知道要使用哪个数字(2
或 3
)的情况下从中挑选出 PID?
谁能告诉我它们之间的区别以及为什么它拾起一个而不拾取另一个?
-d ' '
表示使用单个 space 作为分隔符。由于在 2049 之前有 1 个 space,在 12290 之前有 2 个 space,您的命令通过 -f 2
和 -f 3
获取它们。
我建议使用 ps aux | awk '{print }'
获取这些 pids。
或者你可以先用tr
压缩那些space
ps aux | tr -s ' ' | cut -d ' ' -f 2
您可以使用选项 -o 仅打印 pid:
ps -u user -o pid
您始终可以使用 pgrep 获取进程的 PID
例如带有 PS AUX
的 PIDwix@wsys:~$ ps aux | grep sshd
root 1101 0.0 0.0 72304 3188 ? Ss Oct14 0:00 /usr/sbin/sshd -D
root 6372 0.0 0.1 105692 7064 ? Ss 06:01 0:00 sshd: wix [priv]
wix 6481 0.0 0.1 107988 5748 ? S 06:01 0:00 sshd: wix@pts/1
root 6497 0.0 0.1 105692 7092 ? Ss 06:01 0:00 sshd: wix [priv]
wix 6580 0.0 0.1 107988 5484 ? S 06:01 0:00 sshd: wix@pts/2
wix 6726 0.0 0.0 13136 1044 pts/1 S+ 06:12 0:00 grep --color=auto sshd
现在只需 pgrep 即可获取 PID
wix@wsys:~$ pgrep sshd
1101
6372
6481
6497
6580
wix@wsys:~$