Infrastructure/Linux

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

Jinlib 2017. 12. 23. 21:20

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

유닉스 쉘이 작업을 수행하는데 필요한 정보를 받아들이는 장치를 표준 입출력 장치라

하고 실행 결과를 내보내는 장치를 표준 출력 장치라 한다. 기본적으로 표준 입출력

장치는 키보드로 설정되어 있고 표준 출력 장치는 모니터로 설정되어 있다.

 

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

$ set -o noclobber

$ ls -al > test

 

3. “ ”‘ ’의 차이점을 설명하시오.

‘’는 모든 쉘 특수 문자를 무시하며, “”$, `, \를 제외한 모든 문자들을 무시한다.

 

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

첫번째 방법 echo $SHELL

두번째 방법 grep $LOGNAME /etc/passwd

 

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

시스템 초기화 파일에는 /etc/profile이 있고, 사용자 초기화 파일에는

$HOME/.bash_profile$HOME/.profile$HOME/.bashrc이 있다.

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

사용자가 로그인하면 제일 먼저 시스템 초기화 파일이 실행되며 시스템 공통 환경을 만들

, 이후 사용자 초기화 파일을 순서대로 실행해 사용자별 맞춤 환경을 만들어 준다.

/etc/profile : 시스템 전체 사용자에게 적용할 설정 정보 저장

$HOME/.bash_profile : 각 사용자 별로 실행되는 초기화 파일.

$HOME/.profile : 각 사용자 별로 실행되는 초기화 파일

$HOME/.bashrc : 자식 쉘이 실행될 대 마다 실행됨

 

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

ls -al [0-9]* | more

 

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

cp *.c /tmp

 

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

alias ls='ls aF’

 

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

PS1='\!:\u@\h’

 

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

cd -

 

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

ls al ~ > ls.out 2> ls.err

 

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

CDPATH=.:/etc:~

 

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

(필자의 번호는 404를 빼줘야한다)

①576번 작업(172)에서 현재 디렉토리의 모든 c 소스 파일을 홈 디렉토리 아래의 디렉토리로 복사하려고 했는데, ~/C 디렉토리가 없어서 실패하였다

그래서 그 다음 작업으로 ~/C 디렉토리를 생성하였고, 576 (172)에서 작업하였던 복사 명령을 다시 실행하려고 한다.해당작업을 반복하는 방법을

두가지 이상 적으시오.

첫 번째 방법 !576

두 번째 방법 !-4 (-3이 아닌 이유는 fc l도 하나로 취급하기 때문이다.)

 

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

cp *.c /tmp

 

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

!571:p

 

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

첫번째 방법 !! 

두번째 방법 !-1