.png)
파일에는 /etc/passwd
소위 GECOS fields
("General Electric Comprehensive Operating System"을 나타냄) 내용이 있습니다. 즉, 다음과 같습니다.
username:password:userid:groupid:gecos:home-dir:shell
다음 GECOS
과 같이 나누어집니다.
:FullName,RoomAddress,WorkPhone,HomePhone,Others:
Others
원하는 만큼 쉼표로 나누어집니다 .
:FullName,RoomAddress,WorkPhone,HomePhone,Other1,Other2,Other3:
페이지 에서 man chfn
다음을 읽을 수 있습니다.
다른 필드는 다른 애플리케이션에서 사용하는 회계 정보를 저장하는 데 사용됩니다.
이제 애플리케이션 개발자(저는 C language
, system calls
및/또는 에 관심이 있습니다 bash script
)에게 이 정보를 얻는 가장 좋은 방법은 무엇입니까?
환경 만 고려하면 Bash
해당 finger
명령이 필드를 표시할 수 없다면 others
(또는 적어도 어떻게 표시할 수 있는지는 모르겠습니다), 표시할 수 있는 다른 명령은 무엇입니까? 나는 chfn
보여줄 뿐만 아니라 변경도 허용한다는 것을 알고 있습니다 . 그냥 출력하려면 어떻게 해야 할까요 stdout
?
답변1
내가 찾은 가장 좋은 방법은 getent
LDAP/NIS 또는 로컬이 아닌 사용자의 다른 방법에서 작동하기 때문에 사용하는 것입니다.
getent passwd $UID| awk -F ":" '{print $5}'
답변2
답변3
두 개의 중첩된 잘라내기 명령을 사용할 수 있습니다.
- 먼저 ":"를 필드 구분자로 사용하고 필드 1과 5를 잘라냅니다. 그리고
- 두 번째는 필드 구분 기호로 ","를 사용하여 필드 1 및 5-N을 잘라냅니다.