Infrastructure/Linux

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

Jinlib 2017. 12. 25. 02:00

1. 쉘이 가지고 있는 명령어 해석 기능은 무엇인지 설명하시오.

사용자와 커널 사이에서 명령을 수행하고 적절한 프로그램을 생성하는 것.

 

2. 솔라리스 11에서는 본 쉘이 콘 쉘로 대체되었다. 이를 어떻게 확인할 수 있는지 설명하시오.

ls l /usr/bin/sh로 확인할수 있다.

위의 명령을 입력해 보면 /usr/bin/sh -> i86/ksh93 으로 심볼링 링크 되어 있는 것을 알 수 있다. 이것으로 본 쉘이 콘 쉘로 대체되었다는 것을 알 수 있다.

 

3. 콘 쉘의 환경 변수에서 환경 변수와 쉘 변수는 어떤 차이가 있는지 설명하시오.

콘 쉘의 환경 변수를 서브 쉘에도 사용할 경우 배쉬 셀처럼 export 명령으로 지정해야 한다. 하지만, 쉘 변수로 사용할 경우 export 명령을 수행하지 않는다.

 

4. 콘 쉘과 C 쉘의 환경 설정 파일의 이름과 실행 순서를 설명하시오.


 

환경 설정 파일

실행 순서

C

/etc/.login, ~/.cshrc, ~/.login, ~/.logout

/etc/.login -> ~/.cshrc -> ~/.login

콘 쉘

/etc/profile, ~/.profile, ~/.kshrc

.profile -> .kshrc

 

5. 현재 로그인한 사용자가 서브 쉘로 변경한 것인지 원래 로그인 쉘에서 작업하고 있는 것인지 구분할 수가 없다. 이를 어떻게 확인할 수 있는지 설명하시오.

ps

위 명령어를 통해 실행중인 프로세스를 확인하면 된다.

 

6. MYNAME 이라는 환경 변수에서 나의 영어 이름을 설정하고 환경 변수로 만들려고 한다. 콘 쉘과 C 쉘에서 이를 설정하는 명령을 순서대로 나열하시오.

콘 쉘 : MYNAME=Jin1ib export MYNAME

C : setenv MYNAME Jin1ib 만 하면 끝

 

7. rm 명령이 rm -i 로 앨리어스가 되어 있다. 'rm *'로 여러 파일을 삭제하려고 하였더니 매번 삭제할 것인지 물어본다. 앨리어스를 수정하지 않고 rm 명령의 -i 옵션을 동작시키지 않으려면 어떻게 하면 되는지 설명하시오.

unalias rm으로 앨리어스를 삭제하면 된다.

 

 

8. 로그인 쉘이 지정되어 있는파일을 기술하시오. 로그인 쉘은 어떻게 변경할 수 있나?

/etc/passwd 파일의 마지막 필드에 로그인 쉘이 있는데, chsh 명령과 옵션을 이용해 변경할 쉘을 입력하면 된다.

 

9. 콘 쉘의 .profile 이 변경되어 이를 적용시키기 위해 '. .profile'를 실행하였더니 아래와 같은 메시지가 출력되었다. 무엇이 문제이고 어떻게 해결할 수 있는지 설명하시오.

-ksh: .: .profile: cannot open [No such file or directory]

./.profile을 해 줘야한다. 이유는 현재 디렉토리(.)가 기본 경로에 지정되어 있지 않기 때문이다.

 

10. C 쉘의 초기화 설정 파일인 .login 파일이 변경되었다. 이를 현재 쉘에서 인식하도록 하는 명령을 기술하시오.

source .login