환경변수는 운영체제 수준에서 선언하는 변수이다.
운영체제 해당 환경에서 실행되는 프로세스가 모두 참조할 수 있다.
선언하기에 따라서 내가 접속하고 있는 환경에서만 참조할 수도 있다.
대표적으로 다음과 같은 경우에 사용한다.
export 환경변수명=값
: 값을 환경변수로 임시 선언
이 경우 시스템 재부팅 또는 로그아웃을 하면 환경 변수 값이 사라지게 된다.
환경 변수를 특정 유저에게만 영구적으로 적용하고 싶은 경우에는 ~/.bash_profile 파일을 수정한다.
~/.bash_profile은 user 가 처음 login 할 때 수행된다.
단, bash shell 접속했을 때만 동작한다. sh 또는 zsh로 접속하면 동작하지 않는다.
환경 변수를 모든 유저에게만 영구적으로 적용하고 싶은 경우에는
/etc/profile 파일을 수정한다.
내가 어떤 명령어를 설치하고 어디서든 동작하게 하고 싶다면 그 명령어를 만들기만 할 뿐 아니라 만든 다음 path 경로 디렉토리에 위치시켜주던가 이 디렉토리 중에 하나로 옮겨주던가 아니면 path에 내가 선언한 그 명령어가 있는 디렉토리를 등록을 추가로 해줘야 함.
mkdir bin
cd bin
vi mycomand.sh
#!/bin/sh
echo $*
뒤에 넘긴 파라미터를 그대로 echo 해주는 프로그램.
chomod +x mycomand.sh
./mycomand.sh Leon is ausome
출력 : Leon is ausome
bin 디렉토리를 벗어나 mycommand 를 검색해도 찾을 수 없다.
그 경우 mycommand가 있는 경로를 PATH 에 추가해 보자
export PATH="$PATH:(mycomand pwd 경로)"
path에 등록된 경로에 mycommand.sh 가 있으니 다른 경로에서도 실행 가능.
하지만 로그아웃 하고 들어오면 path에서 사라져 있어서 mycommand는 찾을 수 없음.
이런 경우에는 이 디렉토리를 sudo vi /etc/profile 에 들어가서
export PATH=$PATH:(mycomand pwd 경로) 해줘야 로그아웃 해도 다시 추가되어 있을 수 있따.
다른 방법은 PATH에 이미 등록되어 있는 곳에 mycommand는를 옮겨 놓는 것이다.