Ps
如何在ps中對兩個選擇條件進行邏輯與?
我正在模擬
ps
沒有參數的預設行為:
- 一種選擇條件是找到控制終端與目前shell相同的程序。
- 另一個選擇條件是查找目前使用者為 euid 的程序。
所以我需要對使用者和終端的選擇進行邏輯和。
$ ps -u t -t /dev/pts/4 -o pid,tname,time,ucmd $ ps -u t -t pts/4 -o pid,tname,time,ucmd $ ps -u t -t /dev/tty -o pid,tname,time,ucmd
我知道目前 shell 的控制終端是
/dev/pts/4
. 但是所有這些都給了我帶有其他控制終端和沒有控制終端的程序。謝謝。
-u
程序選擇與and是累積的-t
:您正在選擇以 user 身份執行的所有程序t
,並且在這些程序之上,所有具有控制終端/dev/pts/4
或/dev/tty
. 要查看給定控制終端的程序,請單獨使用-t
:ps -t pts/4 -o pid,tname,time,ucmd
正如POSIX 所指定的,程序選擇選項是附加的:
除了**-f**、-l、-n namelist和**-o** format之外,顯示的所有選項都用於選擇程序。如果有任何指定,則預設列表應被忽略,並且ps應選擇由所有選擇標準選項的包含 OR 表示的程序。
要組合條件,僅列出與所有條件匹配的程序,您可以使用
pgrep
:ps -p $(pgrep -d, -u t -t pts/4) -o pid,tname,time,ucmd