본문 바로가기

OS/Linux

#05. shell, 변수

이번 소개에서는 변수의 대해서 소개해드리겠습니다. 변수를 설명 드리기전에

먼저 shell부터 소개해드릴께요. 


shell은 커널위에서 사용자의 명령어를 읽고 분석해서 커널이 명령어를 수행할수있게 도와줍니다. 또한 shell 위에 또다른 shell(자식프로세스)을 생성할수도 있습니다.




현재 제가 사용하고있는 shell은 shell종류중 하나인 bash shell을 사용하고있습니다.
위에 그림과 같이 현재 bash shell이 하나만 존재하죠. 

하지만 위에 그림은 bash shell이 두개가 존재하네요. 1번 bash shell이 만들어낸 또다른 2번bash shell(자식 프로세스)입니다.



1.변수(Variable)

이제 변수의 대해서 소개해드릴텐데요. 변수는 두가지 종류, 지역(local)변수와 환경(public)변수가 존재합니다.


지역(local)변수

지역 변수를 생성한 shell에서만 호출가능


생성법

변수명=변수값

호출법

$변수명


환경(public)변수
자신을 생성한 shell과 shell이 만든 자식프로세스(또다른 shell)에서도 호출가능

생성법
export 변수명=변수값
호출법
$변수명

변수명은 알파벳,숫자,_를 사용하여 지정할수있지만 첫문자는 알파벳/_만 가능합니다.


직접 실험을 해봤습니다. 처음엔 bash하나만 존재하는 현재 shell에서 지역변수와 환경변수 두개를 만들었습니다. 그리고 echo를 이용해 두개의 변수를 출력해보았습니다.

(echo: 해당 값을 터미널에출력)

두개의 변수 모두 알맞게 뜨네요.


이후 또다른 bash shell을 만들어 bash shell이 2개 존재하는 자식 프로세스(2번째 bash)에서 두개의 변수를 호출해보니. 지역변수는 값이 뜨질않는게 보이네요.


이것이 두개의 변수 차이점이라고 보시면 되겠습니다.



환경(public)변수 > 지역(local)변수로 변환
export -n 환경(public)변수명


publicVariable 환경변수를 지역변수로 변화해 실험해본 결과물입니다.

지역변수로 변환시킨후 자식 프로세스 shell에서 호출을 해보았지만 아무것도 뜨지않는걸 볼수있네요.


변수값 추가(2개이상의 변수값)
export 변수명=$변수명:변수값


PATH라는 환경변수값에 /home/MoVenPick 이라는 경로를 추가해보았습니다.



변수 삭제
unset 변수명


지역변수를 등록후 해제하는 모습니다.


ReadOnly 변수로 변환(재정의나 설정해제 불가능)
readonly 변수명


readonly로 변수를 변경하는 모습입니다. 이후 해제를 하려해도 하질못하네요.

모든변수목록 확인
set
환경(public)변수 목록출력
env


여기까지 shell과 변수에 대해서 소개해드렸습니다. 이해가 잘 안되는 부분은 다시한번 해보시며 이해하시길 바랍니다. 읽어주셔서 감사합니다.

'OS > Linux' 카테고리의 다른 글

#07. 정규표현식(Regular Expression)  (0) 2012.09.11
#06. Standard I/O Redirection  (0) 2012.09.10
#04. Vim Editor  (0) 2012.09.09
#03. Linux의 기초명령어  (0) 2012.09.08
#02. CentOS에 VMwareTool 설치  (0) 2012.09.07