IT하는 참새

shell의 변수 본문

리눅스

shell의 변수

pshot 2018. 9. 19. 23:42

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