리눅스 - 환경변수

OS/Linux 2016. 2. 17. 08:30

<환경변수란?>

환경변수란 운영체제 즉 리눅스, 윈도우, 유닉스 등에서는 모두 path환경변수가 존재한다

사용자의 명령을 기다리는 프롬프트 상에서 command를 내리면 그 실행파일을 OS가 찾게 되는데 어디에서 찾냐면 path에 설정되어 있는 곳에서 찾는다.

path에 셋팅된 위치에 있는 명령어는 그냥 명령어만 치면 실행이 되고,

path에 셋팅되지 않은 명령어는 명령어의 위치를 나타내는 절대경로를 사용하여야 한다.

path? 사용자가 정의해놓은 길을 의미한다. path에 있는 경로를 따라가면 이런 명령어들을 실행할 수 있을거야~ 같이...

 

절대경로는 C:\xxx\xxx 처럼, root디렉토리에서부터 명령어(실행파일있는 곳까지의 경로를 다 적는 것을 말한다.

path 설정을 왜 사용하는 것일까? 물론 매번 사용자들이 절대경로를 모두 알고 일일이 사용할 때 마다 절대경로를 사용한다면 상관없지만 솔직히 귀찮지 않은가... 사용자의 편의를 위해 사용되는 것이다.

예를 들어 사용자가 만든 프로그램 test1 /usr/bin/local/test 에 있다고 가정을 할 때..

사용자 위치는 /home/testuser 이라고 가정을 하자.

사용자가 test1 명령을 수행하기 위해 /usr/bin/local/test/test1 을 수행해야 한다.

하지만 path=.;/usr/bin/local/test

라는 설정이 추가되어 있다면, test1 수행만으로 실행이 되는 것이다.

왜냐? path에서 이미 /usr/bin/local/test로 가면 test1이라는게 있다고 미리 정의해놨으니까! 길을 터놓은 셈이다.

 


리눅스에 예를 들어보자.

cd, ls 등 이런 명령어들은 어딘가의 경로에 디렉토리 안에서 프로그램으로 존재하고 있다. (명령어니까)

그래서 이 프로그램들을 실행하기 위해서는 각각의 절대경로를 사용해서 /bin/ls 이런식으로 일일이 써줘야지 명령어가 먹힌다. 하지만 이런것들을 모두 타이핑 하지 않고도 cd, ls 이렇게만 써줘도 사용가능한 이유가 환경변수 때문이다. 그 이유는... 환경변수에 명시되어 있기 때문이다.

, 그렇다면 운영체제가 명령어들을 찾는 순서를 알아볼까?

/etc/profile -> /etc/bashrc -> /etc/inputrc -> $HOME/.bash_profile -> $HOME/.bashrc -> $HOME/.inputrc 이런식으로 찾아보게 된다.

 


.bashrc : 주로 alias가 등록되어 있다.

.bash_profile : path같은 환경변수가 등록되어 있다.

.bash_history : 사용한 명령어가 기록되어 있다.

.bash_logout : 로그아웃시 실행할 명령어가 기록되어 있다.

 


, 그렇다면 환경변수 path에 내가 만든 프로그램을 실행시키고 싶어 절대경로가 아닌 그 프로그램명만 입력했을때 바로 실행되게 하려면 어떻게 해야할까?

path환경변수에 넣어주면 된다.

export PATH=[추가할경로]:$PATH를 입력하면 환경변수에 추가된다.

환경변수의 구분자는 :이다.

echo $PATH를 사용해서 지금 사용하고 있는 리눅스에 어떤 환경변수들이 저장되어 있는지 알아보자.

 



 

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

리눅스 - Telnet(텔넷) 서버  (0) 2016.02.19
리눅스 - FTP서버  (0) 2016.02.18
리눅스 - Setuid, Setgid  (0) 2016.02.17
리눅스 - /etc/fstab  (0) 2016.02.16
리눅스 - Quota(쿼터) (사용자별로 공간 할당하기)  (0) 2016.02.15
posted by 경원구