登録されたユーザー数を表示

登録されたユーザー数を表示

ホームディレクトリが/ homeにあり、Bash Shellをコマンドソルバーとして使用しているシステムに登録されているユーザーの数を表示する方法は?

答え1

使用getentawk:

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

これにより、bashパスとシェルがbashに設定されているホームディレクトリ内のすべてのユーザーを見つけ、/home/ユーザー名のリストを印刷します。

ユーザー数だけを返すには、awkプログラムを次のように変更できます。

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

答え2

次の行(つまり、次から始まるフィールド)を持つファイルと、より多くのgrep非文字、最後の前に1つの文字しかありません。/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

関連情報