tokkilog, https://r4bb1t.tistory.com/69
Hanle OS를 꿈꾸며, https://www.leafcats.com/201
복세편살 개발라이프, https://cosmosproject2015.tistory.com/200
참고 사이트에 내용을 개인적으로 복습하기 편하도록 재구성한 글입니다.
자세한 설명은 참고 사이트를 살펴보시기 바랍니다.
환경 변수는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임입니다. 즉, 시스템에서 사용하는 변수라고 생각하시면 됩니다.
환경 변수를 임시적으로 적용할 때에는 아래와 같이 사용합니다.
$ export <환경 변수명> = <값>
이는 터미널을 재시작하면 휘발됩니다.
환경 변수를 영구적으로 적용하려면 쉘 설정 파일을 수정해줘야 합니다. 사용하는 쉘의 설정파일에 환경 변수 적용 문법을 작성해주면 됩니다.
예를 들어 bash 쉘을 사용한다면, .bashrc 파일 마지막에 export <환경 변수명> = <값>
문법으로 변수를 추가할 수 있습니다.
환경 변수 목록을 확인하고 싶다면 env
명령어를 통해 확인할 수 있습니다.
$ env
환경 변수 해제는 unset
명령어를 사용합니다.
$ unset <환경 변수명>
$ echo $HOME # 사용자의 홈 디렉토리
$ echo $PATH # 실행 파일 경로
$ echo $LANG # 환경변수에 설정된 언어
$ echo $PWD # 사용자의 현재 작업중인 디렉토리
$ echo $SECONDS # 해당 콘솔이 실행된 경과를 초 단위 시간으로 나타냄
$ echo $SHLVL # 사용되는 쉘 레벨
$ echo $SHELL # 사용되는 쉘 이름($BASH와 같게 나옴.)
$ echo $PPID # 부모 프로세스의 PID
$ echo $BASH # BASH 실행 파일 경로
$ echo $BASH_VERSION # 설치된 BASH 버전
$ echo $MAIL # 환경변수에 설정된 메일주소
$ echo $OSTYPE # 운영체제 종류
$ echo $TERM # 현재 사용되는 터미널 이름
$ echo $HOSTNAME # 호스트 전체 이름
$ echo $HOSTTYPE # 시스템의 아키텍처
$ echo $MACHTYPE # PC의 아키텍쳐와 운영체제표시
$ echo $LOGNAME # 로그인 사용자 이름
$ echo $UID # 사용자 UID
$ echo $EUID # su 명령에서 사용하는 사용자의 유효 아이디 값(UID와 EUID 값은 다를 수 있음)
$ echo $USER # 사용자의 이름
$ echo $HISTFILE # history파일의 경로
$ echo $DISPLAY # 현재 사용되는 X 디스플레이 이름
여기서 $PATH
는 실행 파일 경로를 저장하는 변수입니다. 이 곳에 정의된 경로 덕에 실행 파일 위치를 알 수 있어서, 터미널에 실행 파일 이름만 입력해도 해당 파일을 실행시킬 수 있는 것입니다.
리눅스의 mv
, cp
, rm
같은 시스템 명령어들은 /bin
에 저장되어 있고, /usr/bin/
에는 일반 유틸리티나 python 등의 프로그래밍 언어 실행 스크립트 등 대부분의 사용자 명령어가 위치하고 있습니다. 그리고 /usr/local/bin
에는 사용자가 실행하는 프로그램 명령어들이 저장되는 곳이라는 규칙이 있습니다. 이렇게 명령어의 위치에 대한 규칙이 있어서, 터미널에서 명령어를 입력하면 /usr/local/bin
, /usr/bin
, /bin
폴더에서 명령어를 검색해서 실행합니다.
보통 apt
명령어로 패키지를 가져와서 설치하는데, 각 패키지들에는 설치 경로가 명시되어있습니다. 그래서 이렇게 설치한 명령어들은 규칙에 따라 주로 /usr/local/bin
에 저장이 된다고 합니다. 그래서 따로 환경 변수를 주입하지 않아도 전역에서 명령어를 실행할 수 습니다.