홈 디렉토리가 /home에 있고 Bash Shell을 명령 해석기로 사용하는 시스템에 등록된 사용자 수를 표시하는 방법은 무엇입니까?
답변1
사용 getent
및 awk
:
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
더 많은 비문자, 끝 앞에 문자 하나만 있을 수 있습니다./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