Infrastructure/Linux

[연습문제] 유닉스 이론과 실습 개정판 11장 연습문제

Jinlib 2017. 12. 25. 00:30

1. /etc/passwd 파일의 네 번째 필드(그룹id)를 첫 번재 기준으로 하고첫 번째 필드(로그인 ID)를 두 번재 기준으로 하여 정렬하시오.

sort t: +4 -1 +1 2 /etc/passwd


2. /etc/passwd 파일에서 사용자의 이름만 뽑아서 test_user라는 이름의 파일로 저장하시오.

cut d: -f 1 /etc/passwd > test_user

 

3. /etc/passwd 파일에서 사용자의 쉘 정보만 뽑아서 test_shell이라는 이름의 파일로 저장하시오.

cut d: -f 7 /etc/passwd > test_shell

 

4. 3, 4번에서 생성한 파일의 내용을 필드로 합쳐서 새로운 test_user_shell 파일을 생성하시오.

paste test_user test_shell > test_user_shell

 

5. test_user_shell 파일을 5행 단위로 나누시오.

split 5 test_user_shell

 

6. /etc/passwd 파일에서 로그인 ID와 쉘 정보만 추출하고, 이 중 로그인 쉘을 가진 로그인 ID와 로그인 쉘이 지정되지 않은 사용자로 구분하여 정렬하시오.

cut d: -f 1,7 /etc/passwd > ID_SHELL
sort +1 1 t: -r ID_SHELL > ID2

 

7. 현재 시스템에 접속 중인 사용자 수를 알아보려 한다. 본문에서는 who 명령과 wc명령을 결합하여 접속 중인 사용자 수를 알아보았는데, 한 사용자가 두 개의 다른 창을 이용해 접속하면 who 명령의 실행 결과 해당 이름이 2번 나오게 된다. 이 중복을 제거하여 시스템에 접속 중인 순수 하용자의 수를 알아내려면 어떻게 해야 하는가? 명령을 한 행으로 기술하시오.

who | sort | uniq | wc -l

 

8. test_sort2 파일을 정렬한 결과가 다음과 같이 나왔다. sort 명령에서 지정한 옵션은 무엇이었는지 설명하시오.

+4 5 +1 2

 

9. /etc/passwd 파일에서 GID를 추출하여 중복된 GID를 제거하고 번호 순서대로 정렬하는 명령은 무엇인지 기술하시오.

cut d: -f 4 /etc/passwd >gj_list
uniq gr_list | sort n > gj_list2

 

10. 9번에서 추출한 GID 중에서 가장 많은 계정에 등록된 GID가 무엇인지 알 수 있는 명령은 무엇인지 설명하시오. 파일 내용을 직접 보지 않고 명령을 사용하여 알아내야 한다.

uniq c gr_list | sort -r

 

11. /etc/group 파일에는 그룹에 속한 멤버가 사용자가 있는 그룹들이 있다. 이렇게 멤버가 있는 그룹을 상단으로 오게 정렬하여 출력하는 명령은 무엇인지 기술하시오.

sort +3 4 r t: /etc/group > gr_mem

 

12. dd 명령의 man 페이지를 참조하여 위에서 생성한 test_user 파일의 내용을 EBCDIC 코드로 변환하여 test_user2이름으로 저장하시오.

dd if=test_user of=test_user2 conv=ebcdic