gyeong3un2

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

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

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

ʕっ•ᴥ•ʔっ 프론트엔드 개발하는 쿼카 2021. 4. 8. 18:39

01. 내가 사용중인 셸의 종류를 확인하는 방법으로 적합하지 않은 것을 고르시오.

 

     ① echo $SHELL

     ② grep user1 /etc/passwd

     ③ 프롬프트의 모양을 확인한다.

     ④ bash --version

 

더보기

정답 : ② grep user1 /etc/passwd

- echo $SHELL : 내가 사용중인 셸의 종류를 확인하는 방법

- grep user1 /etc/passwd : grep 명령은 지정한 파일(/etc/passwd)에서 특정 문자열(user1)이 있는 행을 찾아 그 내용을 화면에 출력한다.

- bash --version : 버전 정보를 비롯한 배시 셸의 모든 정보를 알 수 있다.

 


 

02. 서브 셸을 종료하는 명령이 아닌 것은? 

 

     ① logout

     ② exit

     ③ [Ctrl] + C

     ④ [Ctrl] + D

 

더보기

정답 : ③ [Ctrl] + C

- [Ctrl] + C : 현재 명령을 중지하는 명령이다.

- 서브 셸을 종료하는 명령은 logout, [Ctrl] + D, exit 등 일반 셸의 로그아웃 명령과 같으나 대부분의 셸이 exit을 사용할 것을 추천하고 있다.

 


 

03. 임의의 문자열을 나타내는데 사용되는 특수 문자는 무엇일까?

 

     ① *

     ② ?

     ③ [ ]

     ④ ~

 

더보기

정답 : ① *

- * : 임의의 문자 또는 문자열

- ? : 임의의 한 문자

- [ ] : 한 문자 위치를 위한 문자의 범위 표시

- ~ : 홈 디렉토리

 


 

04. 셸에서 사용 가능한 변수에 대한 설명으로 맞는 것을 고르시오.

 

     ① 셸 변수는 수정, 삭제가 가능하다.

     ② 셸 변수는 한 번 설정하면 수정할 수 없다.

     ③ 환경 변수는 한 번 설정하면 수정할 수 없다.

     ④ 서브 셸을 생성하면 모든 환경 변수는 리셋된다.

 

더보기

정답 :  셸 변수는 수정, 삭제가 가능하다.

 

 


 

05. 다음 중 배시 셸에서 사용하는 환경 설정 파일이 아닌 것은 무엇인가?

 

     ① /etc/.profile

     ② /etc/.login

     ③ $HOME/.profile

     ④ $HOME/.bashrc

 

더보기

정답 : ② /etc/.login

- /etc/.login : C 셸의 시스템 초기화 파일이다.

 


 

06. 표준 입출력 장치가 무엇인지 설명하시오.

 

더보기

정답 : 유닉스 셸이 작업을 수행하는 데 필요한 정보를 받아들이는 장치이다.

 

 


 

07. > 사용시 기존 파일의 내용을 덮어쓸 수 있다. 이를 방지하기 위한 방법을 설명하시오.

 

더보기

정답 : set -o noclobber

해당 이름의 파일이 있는지 'ls 파일명'으로 먼저 확인한 후에 사용해야 한다.

- ls 파일명 : 파일명이 있는지 확인

- ls -al > 파일명 : ls 명령의 수행 결과를 파일명에 저장

- date > 파일명 : date 명령의 수행 결과를 파일명에 저장

- cat 파일명 : 명령의 실행 결과를 보여줌

 


 

08. " "와 ' '의 차이점을 설명하시오.

 

더보기

정답 : " "는 $, `, \을 제외한 모든 셸 문자를 무시하는 문자이고 ' '는 모든 셸 문자를 무시하는 문자이다.

 

 


 

09. 현재 사용 중인 셸이 무엇인지 확인하는 방법을 두 가지 적으시오.

 

더보기

정답 : echo $SHELL, grep $LOGNAME /etc/passwd

 


 

10. 배시 쉘이 사용하는 초기화 파일의 이름을 적고 각각의 특징을 설명하시오.

 

더보기

정답 : 배시 쉘의 시스템 초기화 파일은 /etc/profile이고, 사용자 초기화 파일에는 $HOME/.bash_profile, $HOME/.bash_login, $HOME/.profile, $HOME/.bashrc, 그리고 $HOME/.bash_logout이 있다.

시스템 초기화 파일은 시스템을 사용하는 전체 사용자의 공통 환경을 설정하는 파일이다.

사용자 초기화 파일은 각 사용자의 홈 디렉토리에 있으며 사용자가 많은 설정을 수정하고 관리한다.

 


 

※ 다음 작업을 수행하기 위한 명령을 기술하시오.

11. 현재 디렉토리에서 숫자로 시작하는 모든 파일의 상세 정보를 한 화면씩 출력하시오.

 

더보기

정답 : ls -al [0-9]* | more

ls [0~9]* : 파일명이 숫자로 시작하는 모든 파일 목록을 출력한다.

ls -al / | more : 루트 디렉토리에 있는 모든 파일의 상세 정보를 한 화면씩 출력한다.

 


 

12. 현재 디렉토리에 있는 파일명의 확장자인 c인 모든 파일을 /tmp로 복사하시오.

 

더보기

정답 : cp *.c /tmp

cp * /tmp : 현재 디렉토리의 모든 파일을 /tmp 디렉토리로 복사한다.

cp *.c _/C : 확장자인 c인 모든 파일을 상위 디렉토리 밑의 C 디렉토리로 복사한다.

 


 

13. ls 명령 실행시 ls -aF가 실행되도록 설정하시오. 

 

더보기

정답 : alias ls='ls -aF'

 

 


 

14. 현재 히스토리 번호가 600번, 사용 중인 시스템 이름이 cookbook이고, 로그인명이 user1이라면 프롬프트가 600:usr1@cookbook이 되도록 설정하시오.

 

더보기

정답 : PS1='\!:\u@\h'

\! : 히스토리 번호

\u : 현재 사용자 이름

\h : 호스트 이름

 


 

15. 이전의 작업 디렉토리로 이동하시오.

 

더보기

정답 : cd -

 

 


 

16. 홈 디렉토리에 있는 모든 파일의 상세 정보는 파일 ls.out에, 오류 메시지는 ls.err 파일에 저장하되, 하나의 명령으로 실행하시오.

 

더보기

정답 : ls -al ~ > ls.out 2> ls.err

- 2> : 오류 리다이렉션

  명령 2> 파일명 : 표준 오류 메시지를 파일에 저장한다.

 


 

17. cd 명령으로 현재 작업 디렉토리를 변경할 때 현재 디렉토리, /etc 디렉토리, 내 홈 디렉토리 순서대로 디렉토리를 찾도록 환경을 설정하시오. 

 

더보기

정답 : CDPATH=.:/etc:~

 

 


 

18. 이전에 실행했던 명령들의 목록이 다음과 같을 때 물음에 답하시오.

 

user1@Solaris11:~$  fc  -1
. . .
569           cd . .
570           rmdir Test
571           cd~/Unix/ch3
572            vi t2
573            cd Unix
574            history
575            fc  -1
576            cp *. c  ~/C
577            mkdir ~/C
578            clear
user1@Solaris11:~$

 

    1) 576번 작업에서 현재 디렉토리의 모든 c 소스 파일을 홈 디렉토리 아래의 C 디렉토리로 복사하려고 했는데, ~/C

       디렉토리가 없어서 실패하였다. 그래서 그 다음 작업으로 ~/C 디렉토리를 생성하였고, 576번에서 작업하였던

       복사 명령을 다시 실행하려고 한다. 해당 작업을 반복하는 방법을 두 가지 이상 적으시오. 

 

더보기

정답 : !576, !cp

- !cp : 

 

    2) 방금 작업했던 복사 명령을 활용하여 현재 디렉토리의 모든 c 소스 파일을 /tmp로 복사하려고 한다. 어떻게 하면

       되겠는가?

 

더보기

정답 : ^~/C^/tmp

 

 

    3) 571번에 있는 cd 명령을 실행하지 말고 출력만 하시오. 

 

더보기

정답 : !571:p

 

 

    4) 방금 작업한 명령을 반복하는 방법을 두 가지 적으시오. 

 

더보기

정답 : !!, !-1