리눅스를 배우시기 전에 간단하게 개념을 알고 있어야 이해하시기 편합니다.
간단하게 알아보도록 하겠습니다. 아래 그림을 참고하시면서 보시면 좋을거 같습니다.
○ 쉘 (Shell) 이란 ?
▷ 커널(kernel)과 함께 운영체제를 이루는 요소들 중 하나입니다.
(커널은 it-serial.tistory.com/40 참조하시면 됩니다.)
▷ 쉘은 영어 뜻 그대로 껍데기처럼 운영체제 겉에서 명령어를 해석해주는 역할
(커널과 응용 프로그램(사용자)를 해석을 통하여 연결시켜 주는 것)
▷ 쉘을 여러개 쓰는 이유 ?
- 사용중인 쉘에 없는 기능을 사용하기 위해
- 여러가지 쉘 중에 어떤 쉘이 평소에는 잘안쓰지만, 어떤 프로그램에 사용해야 할 수 있기 때문
○ 쉘의 종류 & 실행순서
● 쉘의 종류
▷ sh (제일 처음 만든 쉘)
▷ csh (2번째 만든 쉘)
▷ ksh (3번째 만든 쉘)
▷ bash (위에 3개를 조합해서 만든 쉘) * 대부분의 리눅스에서 사용하는 쉘 *
▷ 부가적으로 tcsh 등등 더 많이 있습니다.
● 원리 (실행순서)
▷ bash쉘 관련된 초기화 파일의 실행 순서
▷ 순서마다 각각 무슨 역할인지 아래에 설명을 쭉 읽어보시면 됩니다.
-> ① /etc/profile
-> ② .bash_profile
-> ③ .bashrc
-> ④ /etc/bashrc
-> ⑤ .bash_logout
○ 사용중인 쉘 & 쉘 초기화 파일
● 사용중인 쉘 확인 방법
① # cd ~ 명령어로 사용자의 홈 디렉토리로 이동
② # ls -a 명령어로 있는 파일 전부 확인
③ .bash관련 파일이 있다면 사용중인 쉘은 bash라는 뜻입니다.
두번째 방법이 간단합니다.
# echo $SHELL 명령어로 로그인 계정이 사용하는 쉘 정보 확인
● 쉘 초기화 파일
▷ 초기화 파일이란?
- 기존의 정보를 덮어씌우는 것
- 예시 : 기존 리눅스 설정 된 쉘이 S라 가정하면, 리눅스가 시작되면서 .bash로 시작하는 파일들이
자동으로 실행되면서 S를 새로운 값으로 덮어버리는 것입니다.
▷ .bash_profile : PATH같은 환경변수가 등록되어 있는 파일
▷ .bashrc : 리눅스 부팅 시 설정해두었던 함수, alias 환경변수 적용하는 파일
▷ .bash_history : 접속해서 종료할 때 까지 사용한 명령어를 기록한 파일
▷ .bash_logout : 로그아웃할 때 실행했으면 하는 명령어를 기록한 파일
로그아웃할 때 실행되는 스크립트 파일
(사실상 없어도 상관없습니다.)
○ 쉘에 설정한 파일의 영향
▷ /etc/profile 리눅스 시스템 전체에 적용되는 파일
.bash_profile 설정한 한 사람의 유저에게만 적용되는 파일
※ profile로 끝나는 파일들은 전부 환경 변수가 적혀있는 파일입니다.
환경 변수는 it-serial.tistory.com/38 참조하시면 됩니다.
▷ /etc/bashrc 리눅스 시스템 전체에 적용되는 파일
.bashrc 설정한 한 사람의 유저에게만 적용되는 파일
※ bashrc로 끝나는 파일들은 시스템 전역함수 or alias가 적혀있는 파일입니다.
※ /etc에 있는 곳에 적으면 시스템 전체 모든 유저에게 적용시킬 수 있습니다.
○ alias
▷ alias '알리아스' 라고 불린다.
▷ 쉽게 말해 치환 같은 역할을 한다.
▷ 어느 파일에 등록하는지에 따라 부팅할 때 없어지거나,
다른 사용자로 접속하면 안되거나,
모두 사용할 수 있습니다.
예시로 보면 쉽습니다.
# alias q='ls' 명령어를 입력하게 되면 ls라는 명령어 대신 q를 입력할 수 있게 됩니다.
하지만 이렇게 바로 명령어로 치환을 해버리면 부팅 시 없어집니다.
이 명령을 사용하려면 부팅 시 재등록 해야합니다. (간단하게 잠깐 쓸 때 유용하게 사용)
# unalias q 명령어를 통해 명령을 해제 할 수 도 있습니다.
이제는 사용자 홈 디렉토리로 이동하여 .bashrc라는 파일안에 들어갑니다.
# cd ~ 명령어로 홈 디렉토리로 이동
# vi .bashrc 명령어로 파일 수정모드
파일 안에 위에서 입력한 # alias q='ls' 를 입력해주시고, # :wq 를 통해 저장 후 나오시면 됩니다.
이 파일안에 등록하게 된다면 이 사용자는 재부팅하여도 계속 q명령어로 ls명령어를 대체할 수 있습니다.
혹시 모든 사용자가 사용하게 하고 싶으시면 /etc/bashrc 파일에 똑같이 적어주시면 됩니다.
사용하고 싶지 않으시면 파일에 들어가서 다시 지우면 됩니다.
댓글