显示注册用户数

显示注册用户数

如何显示系统上主目录位于 /home 且同时使用 Bash Shell 作为命令解释器的注册用户数量?

答案1

使用getentawk

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

相关内容