簡體   English   中英

顯示未登錄的用戶進程linux bash腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM