[英]Show not logged users processes linux bash script
我正在執行一個bash腳本,並且在寫這篇文章以顯示未記錄的用戶進程,這些進程通常是守護進程,為此,在練習中,他們建議我:
要處理命令行,我們將使用cut命令,該命令允許通過過濾器選擇列表的不同列。
我用了:
ps -A | grep -v w
ps -A | grep -v who
ps -A | grep -v $USER
但是嘗試所有這些選項時,所有用戶的所有進程都將打印在輸出文件中,而我只希望未登錄的用戶的進程。
我感謝您的幫助
謝謝。
grep -vw
將刪除與正則表達式w
(簡單地是包含字符串w
任何東西)匹配的行。 要運行命令 w
您必須這樣說: 但按照說明中的提示,您還需要使用cut
對輸出進行后處理。
為了避免完全給出答案,這里提供了粗糙的偽代碼。
w | cut something >tempfile
ps -A | grep -Fvf tempfile
如果可以在管道中傳遞w
的后處理結果,那就很好了,但是標准輸入已經綁定到ps -A
。 如果您具有支持流程替換的外殼,則可以使用它。
ps -A | grep -Fvf <(w | cut something)
不幸的是, w
的輸出不能被機器正確地讀取-您也將適當地切掉標題行。 (在我的機器上,有兩個標題行。您可能會有所不同。)您稍后可能會在課程中學到一些Awk,但是直到那時,
ps -A | grep -Fvf <(w | tail -n +3 | cut something)
這仍然不能完全解決所有可能的情況。 如果某人的帳戶名是grep
怎么辦?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.