IT하는 참새
shell의 변수 본문
Shell은 기본적으로 사용하는 변수들이 있다
(사용자의 작업을 더 편리하게 제공하기 위해서)
쉘이 사용하는 변수의 종류
- 쉘 변수 : 현재 쉘에서만 사용가능한 지역변수(서브쉘에서 사용불가)
- 환경 변수 : 현재 쉘, 서브쉘에서 모두 사용가능한 전역변수
set: 쉘 변수 목록 확인 명령어
env: 환경변수 목록 확인 명령어
쉘 변수는 현재 shell의 변수를 sub shell에서 사용불가능하다
예를들어
현재 shell에서 name=gugu라는 name변수를 만들었다면
set | grep name 하면 변수가 추가된게 보인다(즉 사용할 수 있다)
하지만 여기서 bash명령어 한번더 입력하여 sub shell을 생성 후
set | grep name 하면 변수가 보이지않는다(즉 사용할 수 없다)
환경변수는 현재 shell의 변수를 sub shell에서 사용가능하다
환경변수를 만드는 방법은 export키워드를 사용한다
export 쉘변수 (이미 만들어진 쉘변수)
export 쉘변수=값
이렇게한다면 현재 shell이든, sub shell이든 변수가 보인다
그래... 다좋다!! 하지만 치명적인 문제가 있다
Terminal에서 쉘변수, 환경변수 만드는 작업은
해당 Terminal세션에서만 유효하므로 껐다키면 사라진다
그럼 어떻게 하나?? --> 이 변수들을 파일로 저장하고 shell이 매번 읽게하면 됨
shell이 실행할 때 읽는 파일들이 몇가지 있는데 각각 특징이 다르다
1. /etc/profile
- root만이 rw권한이 있으므로 root부터 일반인까지 영향을 미침
- /etc/bash.bashrc - /etc/profile.d 파일을 읽으면서 읽힘
2. ~/.profile
- 로그인할 때에 shell이 파일을 읽음
3. ~/.bashrc(일반적)
- 로그인할 때나, 자식프로세스를 만들 때 shell이 파일을 읽음
이 파일들에 원하는 쉘스크립트를 작성해놓으면 됨
그냥 변수를 추가해놔도 상관없음
'리눅스' 카테고리의 다른 글
PATH 환경변수 동작원리 (0) | 2018.09.19 |
---|---|
alias 명령어 (0) | 2018.09.19 |
File Descriptor (0) | 2018.09.19 |
shell의 기본개념 (0) | 2018.09.19 |
vi 자주 사용되는 명령어 (0) | 2018.09.19 |