如何显示系统上主目录位于 /home 且同时使用 Bash Shell 作为命令解释器的注册用户数量?
答案1
使用getent
和awk
:
getent passwd | awk -F: '$6 ~ "^/home/" && $7 ~ "bash$"{print $1}'
这将查找/home/
主目录中路径为 bash 且 shell 设置为 bash 的所有用户,并打印用户名列表。
如果您只想返回用户数量,您可以将awk
程序修改为:
getent passwd | awk -F: '$6 ~ "^/home/" && $7 ~ "bash$"{c+=1}END{print c}'
答案2
您可以只包含以下行的文件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