지난 포스팅에서는 bash와 alias 관련 파일인 /etc/bash.bashrc, ~/.bashrc에 대해 공부했습니다.
파일명 | 설명 |
/etc/bash.bashrc | 모든 사용자의 alias 관련 함수 설정 |
~/.bashrc | 개인 사용자의 alias 관련 함수 설정 |
/etc/profile | 모든 사용자에게 적용되는 환경 변수, 시작 프로그램 등 일반 환경 설정 파일 |
~/.bash_profile | 개인 사용자의 환경 설정과 시작 프로그램 설정 (일반 환경 설정 무시 가능) |
~/.bash_logout | 개인 사용자 로그아웃 시 지정 설정 |
이번 포스팅에서는 bash 환경 변수 설정에 대해 알아보겠습니다.
먼저 환경 변수란, 프로세스가 컴퓨터 내에서 동작하는 방식에 영향을 미치는, 동적인 값들로, 쉘에서 정의/실행되는 동안 프로그램에 필요한 변수를 말합니다. 리눅스에서의 환경 변수는 크게 3가지로 분류할 수 있습니다.
- 로컬 환경 변수: 현재 세션에서만 동작하는 환경 변수
- 사용자 환경 변수: 특정 사용자에 대해서만 정의된 환경 변수
- 시스템 전체 환경 변수: 해당 시스템을 사용하는 모든 사용자를 대상으로 동작하는 환경 변수
(2) 환경 변수의 종류와 설정 방법
어떤 환경 변수가 어떤 방법으로 만들어지는 지를 보기 위해 VAR1부터 VAR6까지, 총 6개의 환경 변수를 만들어보았습니다. 아직 echo문(변수값 조회)은 찍지 않은 상태입니다.
1. VAR1: 'mika'로 로그온, [변수명]=[변수값] 형식
2. VAR2: 'mika'로 로그온, export [변수명]=[변수값] 형식
3. VAR3: 'mika'로 로그온, /home/mika/.bashrc에 [변수명]=[변수값] 형식
4. VAR3: 'mika'로 로그온, /home/mika/.bashrc에 export [변수명]=[변수값] 형식
5. VAR5: 'mika'로 로그온, /home/mika/.profile에 [변수명]=[변수값] 형식
6. VAR6: 'mika'로 로그온, /home/mika/.profile에 export [변수명]=[변수값] 형식
7. VAR7: 'root'로 로그온, /etc/bash.bashrc에 [변수명]=[변수값] 형식
8. VAR8: 'root'로 로그온, /etc/bash.bashrc에 export [변수명]=[변수값] 형식
9. VAR9: 'root'로 로그온, /etc/profile에 [변수명]=[변수값] 형식
10. VAR10: 'root'로 로그온, /etc/profile에 export [변수명]=[변수값] 형식
먼저 편집 내용을 적용했습니다.
이제 어떤 방식의 환경 변수 생성이 로컬/사용자/시스템 전체 환경 변수를 만드는지 알아보기 위해 이제부터 echo문을 확인해 값을 조회할 것입니다.
첫번째 조회 계정은 'mika'입니다.
- (좌) 계정 전환(mika -> root -> mika)은 하였지만 로그오프는 하지 않았을 때
- (우) 로그오프 후 재접속 하였을 때
두번째 조회 계정은 'root'입니다.
- (좌) 계정 전환(root -> mika-> root)은 하였지만 로그오프는 하지 않았을 때
- (우) 로그오프 후 재접속 하였을 때
마지막 조회 계정은 'matiii'입니다. 아무 변수도 만들지 않은 제 3자의 계정입니다.
- (좌) 계정 전환(root -> matiii)은 하였지만 로그오프는 하지 않았을 때
- (우) 로그오프 후 재접속 하였을 때
위 10가지 변수 생성과 조회를 통해 bash에서 환경 변수를 생성하는 것에 대한 정리를 해보겠습니다.
- 일회성 환경 변수 설정:
- export [환경변수명]=[환경변수값]
- VAR1: 'mika'로 로그온, [변수명]=[변수값] 형식 -> 조회 x
- VAR2: 'mika'로 로그온, export [변수명]=[변수값] 형식 -> 조회 o, 하지만 터미널에 재접속하면 조회 x
- 영구적 환경 변수 설정:
(1) 시스템 전체 환경 변수 설정
- /etc/bash.bashrc 파일에 export [환경변수명]=[환경변수값] 또는 [환경변수명]=[환경변수값]을 작성 후 source 명령어를 통해 적용
- VAR7: 'root'로 로그온, /etc/bash.bashrc에 [변수명]=[변수값] 형식 -> 어느 경우든 조회 o
- VAR8: 'root'로 로그온, /etc/bash.bashrc에 export [변수명]=[변수값] 형식 -> 어느 경우든 조회 o
- /etc/profile 파일에 export [환경변수명]=[환경변수값]을 작성 후 source 명령어를 통해 적용
- VAR9: 'root'로 로그온, /etc/profile에 [변수명]=[변수값] 형식 -> 조회 x
- VAR10: 'root'로 로그온, /etc/profile에 export [변수명]=[변수값] 형식 -> 어느 경우든 조회 o
(2) 사용자 환경 변수 설정
- 해당 사용자 홈 디렉터리의 ~/.bashrc 파일에 [환경변수명]=[환경변수값]을 작성하면 해당 사용자만 조회 가능하고, 다른 사용자들은 터미널 재접속시 조회가 불가능하다. 대신 export [환경변수명]=[환경변수값]을 작성하면 모두가 조회 가능하다. 이후 source 명령어를 통해 적용한다.
- VAR3: 'mika'로 로그온, /home/mika/.bashrc에 [변수명]=[변수값] 형식 -> mika 조회 o, 재접속시 root, matiii 조회x
- VAR4: 'mika'로 로그온, /home/mika/.bashrc에 export [변수명]=[변수값] 형식 -> mika, root, matiii 조회 o
- 해당 사용자 홈 디렉터리의 ~/.profile 파일에 [환경변수명]=[환경변수값]을 작성하면 재접속 시 모두가 조회할 수 없었다. ~/.profile 파일을 수정할 땐 꼭 export을 붙여 export [환경변수명]=[환경변수값] 형식으로 작성해야 한다. 이 방식으로는 모두가 조회 가능하다. 이후 source 명령어를 통해 적용한다.
- VAR5: 'mika'로 로그온, /home/mika/.profile에 [변수명]=[변수값] 형식 -> 재접속시 mika, root, matiii 조회x
- VAR6: 'mika'로 로그온, /home/mika/.profile에 export [변수명]=[변수값] 형식 -> mika, root, matiii 조회 o
이렇게 bash 환경 변수 설정에 대한 포스팅을 마치겠습니다. 다음 포스팅에서는 간단한 bash 스크립트를 짜보겠습니다.
'SYSTEM' 카테고리의 다른 글
LDAP이란 무엇인가 (0) | 2021.03.18 |
---|---|
bash (3) 간단한 계산기 스크립트 짜기 (1) | 2021.03.11 |
bash (1) alias (별칭/단축키) 설정 (0) | 2021.03.10 |
useradd/adduser 안쓰고 직접 파일 수정하여 계정 생성하기 (0) | 2021.03.09 |
LINUX 계열 별 useradd와 adduser의 차이점 (+userdel와 deluser) (0) | 2021.03.09 |