linux 쉘(Shell)

반응형

이번 포스트에서는 쉘에 대해서 포스트 해보겠습니다.

쉘을 정의해보자면, 운영체제에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램입니다. 쉘은 리눅스에만 있는것이 아니라 윈도우나 다른 운영체제에서도 쉘은 필수적으로 존재합니다.


쉘은 로그인한 사용자가 없다면 실행되지 않습니다. 사용자가 로그인을 시도하면 운영체제는 ID와 패스워드를 받아들이는 로그인 프로그램을 실행하고 인증과정이 통과하면 쉘을 실행하여 사용자 세션을 쉘에게 넘겨주게 됩니다.


쉘의 역할은 사용자가 입력한 명령을 해석하여 대신 실행해주는 것인데 쉘 자체 내부의 명령이라면 스스로 실행을 하지만 내부명령이 아닌경우 PATH 환경변수에 지정된 경로에서 입력받은 명령과 같은 파일을 찾아 프로그램을 실행시켜 줍니다. 명령을 완수한 쉘은 프롬프트 #의 형태로 표시되어 다음 명령을 대기하게 되죠.


쉘에게는 몇가지의 설정파일이 있습니다.


- /etc/skel/.bashrc

- /etc/skel/.bash_profile

- /etc/skel/.bash_logout


.bashrc, .bash_profile

- 사용자의 로그인 쉘이 실행될 때, 자동으로 실행

- .bash_profile은 로그인 쉘인 경우에만 실행

- .bash_profile은 환경변수를 추가할 수 있습니다.

- .bashrc은 앨리어스를 추가할 수 있습니다.


* allias(앨리어스) : 별칭


사용 방법 : alias <명령어>='<명령어>'

ex) alias ls='ls -lhF'

ls명령을 주면 ls -lhF명령을 실행 (변수와 비슷)

앨리어스 삭제 : unalias ls


.bash_logout

- 사용자가 로그아웃(쉘을 종료)할 때, 실행되는 파일



사용자 변경하는 명령

su

su -


su <user name>

- 이전 사용자의 쉘 환경을 그대로 사용

- 로그인 쉘이 아님

- .bashrc 스크립트만 실행


su - <user name>
- 로그인 쉘로 실행



위에 예시처럼 su - 명령어를 사용시 그 사용자 자체의 쉘이 실행되면서 사용자 홈디렉터리로 이동합니다. 하지만 su 명령어를 이용해서 사용자를 바꾸면 기존에 사용하던 쉘을 그대로 사용하게 되는것이죠. 아무래도 su 명령어는 보안상 문제가 있을 수 있기때문에 사용할 때 조심해서 써야한다는 점.. 되도록 su - 명령을 쓰는것이 좋을 것 같습니다.


이상으로 쉘에 대한 포스트를 마치겠습니다.

반응형

'OS > linux' 카테고리의 다른 글

linux 커널(kernel)  (3) 2016.10.02
linux 패키지 설치(rpm,wget,yum)  (0) 2016.10.02
linux 문자열  (0) 2016.09.30
linux 변수 +환경변수  (0) 2016.09.29
linux 프로세스  (0) 2016.09.29
TAGS.

Comments