Bash

顯示註冊使用者數

  • January 11, 2020

如何在系統上顯示其主目錄位於 /home 並同時將 Bash Shell 作為命令解釋器的註冊使用者數?

您可以只為具有(因此以 開頭的欄位)的行grep的文件,然後是更多的非字元,並且在結束前只有一個,後面應該是:/etc/password``:/home``/home``:``:``/bin/bash

$ grep ':/home/[^:]*:/bin/bash' /etc/passwd
terdon:x:1000:1000::/home/terdon:/bin/bash
bib:x:1001:1001::/home/bib:/bin/bash

因此,僅顯示數字:

$ grep -c ':/home/[^:]*:/bin/bash' /etc/passwd
2

使用getentawk

getent passwd | awk -F: '$6 ~ "^/home/" && $7 ~ "bash$"{print $1}'

這將/home/在其主目錄中查找所有具有路徑且其 shell 設置為 bash 的使用者,並列印使用者名列表。

如果您只希望它僅返回使用者數,您可以將awk程序修改為:

getent passwd | awk -F: '$6 ~ "^/home/" && $7 ~ "bash$"{c+=1}END{print c}'

引用自:https://unix.stackexchange.com/questions/561500