셸 변수와 환경 변수
- 변수는 특정 데이터 또는 환경 설정을 위한 값을 저장
- 셸 변수 (지역 변수)
- 변수가 정의된 셸에서만 사용이 가능하고, 서브 셸로는 전달되지 않음
- 환경 변수 (전역 변수)
- 현재 셸뿐만 아니라 서브 셸로도 전달
- 보통 변수 이름으로 대문자를 사용함
- 터미널 창을 열어 셸을 시작하면 이미 많은 환경 변수가 설정되어 있음
- 시스템의 모든 환경 변수의 이름과 값을 출력하려면 printenv 명령을 사용
- export -p는 현재 셸의 모든 환경 변수를 출력
- 변수 설정과 환경 변수로 만드는 방법
- 변수=값; export 변수
- 또는 export 변수=변수
- 특정 환경 변수의 값을 확인하는 방법
- printenv 변수
- echo $변수는 모든 변수 값을 확인할 수 있음
### 자주 사용되는 환경 변수
변수 |
내용 |
HISTSIZE |
1개 셸에서 저장되는 명령 히스토리 목록의 최대 개수로 기본 값은 1000 |
HOME |
홈 디렉터리 |
MAIL |
사용자의 메일박스에 해당하는 파일로 보통 /var/spool/mail/username |
PATH |
명령을 수행할 때 실행 파일을 찾기 위한 디렉터리 목록 |
PS1 |
셸 프롬프트를 표시하기 위한 문자열 |
SHELL |
사용 중인 기본 셸 |
PWD |
현재 작업 디렉터리 |
USER |
현재 사용자 계정 |
로그인과 셸의 환경 설정 파일
- 로그인할 때 또는 셸을 시작할 때 자동으로 실행되는 명령을 저장한 파일
- 시스템 환경 설정 파일과 사용자 환경 설정 파일이 있음
- 셸의 종류에 따라 다른 이름의 설정 파일을 사용함
- bash 셸의 경우 다음과 같음
파일 |
설명 |
/etc/profile |
모든 사용자에게 적용. 로그인할 때 가장 먼저 수행됨. PATH, MAIL, HISTSIZE 등 전역의 환경 변수가 설정됨 |
~/ .bash_profile |
로그인할 때 수행되며 개별 사용자에게 적용됨. 보통 내부에서 ~/ .bashrc를 실행 |
~/ .bashrc |
셸을 시작할 때마다 수행되며 개별 사용자에게 적용됨. 보통 내부에서 /etc/bashrc를 수행 |
/etc/bashrc |
모든 사용자에게 적용. 셸을 시작할 때마다 수행됨. PS1 설정, 에일리어스 설정, umask를 사용한 접근권한의 초기값, 함수 등을 설정 |
~/ ,bash_logout |
로그아웃을 수행할 때 실행되는 스크립트 파일 |