gyeong3un2

[유닉스 이론과 실습] 11장 연습문제 본문

유닉스 기초/[유닉스 이론과 실습] 연습문제

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

ʕっ•ᴥ•ʔっ 프론트엔드 개발하는 쿼카 2021. 5. 24. 23:46

01. wc 명령의 실행 결과가 다음과 같다. 잘못 해석한 것은 무엇인가?

 

     user1@solaris11:~/Unix/ch11$  wc  test_wc1

     5  35  293  test_wc1

 

     ① test_wc1 파일은 5행으로 구성되어 있다.

      test_wc1 파일은 35개의 단어로 구성되어 있다.

      test_wc1 파일은 35행으로 구성되어 있다.

      test_wc1 파일의 크기는 293 바이트이다.

 

더보기

정답 : ③ test_wc1 파일은 35행으로 구성되어 있다.

 

- 5는 행 수, 35는 단어 수, 그리고 293은 바이트 수다. 단어는 공백으로 구분된 문자열을 말한다.

- wc 명령 : 파일의 행 수, 단어 수, 문자 수를 출력한다.

 


 

02. 다음 파일들을 크기가 큰 파일에서 작은 파일 순서대로 정렬하여 출력하고 싶다. 알맞은 명령은 무엇인가?

 

     user1@solaris11:~/Unix/ch11$  ls  -l  test*

     -rw-r--r--  1  user1  staff   150  5월  2   19:56  test_dd1

     -rw-r--r--  1  user1  staff      0  5월  2   19:59  test_dd2

     -rw-r--r--  1  user1  staff     86  5월  2   19:06  test_paste2

     -rw-r--r--  1  user1  staff   137  4월  30  18:36  test_sort1

     -rw-r--r--  1  user1  staff   4739 4월 30   20:27  test_split

     -rw-r--r--  1  user1  staff     52  5월  1    20:25  test_uniq

     -rw-r--r--  1  user1  staff   193  4월  29   21:16  test_wc

 

     ① ls  -l  test*  |  sort

      ls  -l  test*  |  sort  -k  5

      ls  -l  test*  |  sort  +4

      ls  -l  test*  |  sort  -r

 

더보기

정답 : ④ ls  -l  test*  |  sort  -r

 

- sort 명령 : 입력한 내용을 정렬해 출력한다.

   - k 5 : 정렬의 기준이 되는 필드번호(5) 지정

   +4 :  번호+1 필드를 기준으로 정렬

   - r : 역순으로 정렬

 


 

03. 파일 a.txt에는 텍스트가 중복된 것들이 들어있다. a.txt에서 중복을 모두 제거하여 b.txt에 저장하는 명령은 무엇인가?

 

     ① uniq  a.txt  |  sort  >  b.txt

      sort  a.txt  |  uniq  >  b.txt

      sort  a.txt  |  uniq  -u  >  b.txt

      uniq  -d  a.txt  |  sort  >  b.txt

 

더보기

정답 : ② sort  a.txt  |  uniq  >  b.txt

 

- sort  a.txt  |  uniq  >  b.txt : |(파이프)는 sort 명령의 실행 결과를 uniq 명령의 입력으로 전달하는 기능을 한다.

- uniq 명령 : 중복 행을 삭제한다.

  - u : 중복되지 않은 행만 출력

 


 

04. /etc/passwd 파일에서 각 계정의 기본 셸의 종류와 지정된 횟수를 세는 명령은 무엇인가?

 

     ① cut  -d:  -f  7  /etc/passwd  |  uniq  -u

      cut  -d:  -f  7  /etc/passwd  |  uniq  -c

      cut  -d:  -f  7  /etc/passwd  |  wc  -l  |  uniq  -c

      cut  -d:  -f  7  /etc/passwd  |  sort  |  uniq  -c

 

더보기

정답 : ④ cut  -d:  -f  7  /etc/passwd  |  sort  |  uniq  -c

 


 

05. dd 명령으로 a.txt으 내용을 삭제하려면 어떻게 해야 하는가?

 

     ① dd  if=/dev/null  of=a.txt

      dd  if=a.txt  of=/dev/null

      dd  if=/dev/false  of=a.txt

      dd  if=a.txt  of=/dev/false

 

더보기

정답 : ① dd  if=/dev/null  of=a.txt

 

- 입력 파일을 /dev/null로 지정하고 출력파일을 원하는 파일 명으로 지정하면 파일 내용을 지울 수 있다.

 


 

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

 

더보기

정답 : sort  -t:  +3 -4 +0 -1  /etc/passwd

 

sort 명령 : 입력한 내용을 정렬해 출력한다.

-t 문자: 지정한 문자를 필드 구분자로 사용

+번호 : 번호+1 필드를 기준으로 정렬

+pos1  -pos2 : 정렬하고자 하는 필드의 열을 지정. pos1~pos2 열 정렬

 


 

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

 

더보기

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

 

cut 명령 : 파일에서 선택된 필드를 추출한다.

형식 : cut [옵션] [파일명]

-d 문자 : 필드 구분자

-f 필드 번호 : 지정한 필드를 잘라냄

 


 

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

 

더보기

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

 


 

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

 

더보기

정답 : paste  test_user  test_shell  >  test_user_shell

 

paste 명령 : 두 파일의 내용을 결합한다.

형식 : paste [옵션] 파일명1 파일명2

 


 

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

 

더보기

정답 : split  -5  test_user_shell

 

split 명령 : 파일을 분할한다.

형식 : split [옵션] [파일명]

 

-n : n행씩 분할한다.

 


 

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

 

더보기

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

 


 

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

 

더보기

정답 : who | sort | uniq | wc -l

 

who 명령 : 시스템을 사용하고 있는 사용자의 정보를 출력한다.

sort 명령 : 입력한 내용을 정렬해 출력한다.

uniq 명령 : 중복 행을 삭제한다.

wc 명령 : 파일의 행 수, 단어 수, 문자 수를 출력한다.

 


 

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

 

     $ sort [                     ] test_sort2

     006  Jung  Doo-Ri  49  F

     004  Kim  Chan-Sook  60  F

     003  Lee  Na-Young  54  F

     007  Lee  Mi-Ra  59  F

     005  Han  Ji-Soo  75  M

     001  Hong  Gil-Dong  80  M

     002  Park  Ji-Soo  100  M

     $

 

더보기

정답 : +4 -5 +1 -2

 


 

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

 

더보기

정답 : ① cut -d: -f 4 /etc/passwd > num_list, ② uniq num_list | sort -n > num_list2

 


 

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

 

더보기

정답 : uniq -c num_list | sort -r

 

uniq 명령

-c : 각 행의 처음에 중복 횟수를 출력

 

sort 명령

-r : 역순으로 정렬

 


 

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

 

더보기

정답 : sort +3 -4 -r -t: /etc/group

 


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

 

더보기

정답 : dd if=test_user of=test_user2 conv=ebcdic

 

dd명령 : 입력한 내용을 변환하여 출력한다.

형식 : dd if [옵션] [if=입력파일명] [of=출력파일명]

conv=ebcdic : 알파벳을 EBCDIC 코드로 변환