본문 바로가기
👨‍💻Computer Science/리눅스시스템프로그래밍

[Linux] 환경변수

by 코푸는 개발자 2022. 3. 29.
728x90

환경변수란?

프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임으로 쉘에서 정의되고 실행하는 동안 프로그램에 필요한 변수를 나타낸다.

1. 동작 범위에 따른 환경 변수

1.1. 로컬 환경 변수

현재 세션에서만 동작하는 환경변수

 

1.2. 사용자 환경변수 

특정 사용자에 대해서만 정의된 환경변수로 로컬 터미널 세션 또는 원격 로그인 세션을 사용하여 로그인할 때마다 로드된다.

*관련 파일은 특정 사용자의 홈 디렉토리에 존재하는 파일로 .bashrc, .bash_profile, bash_login, .profile 등이 있다.

 

1.3. 시스템 전체 환경변수

해당 시스템에 존재하는 모든 사용자가 사용할 수 있는 환경변수로 시스템 전원이 켜져있고 모든 사용자가 로컬 또는 원격으로 로그인할 때마다 로드된다.

*관련 파일은 /etc/environment, /etc/profile, /etc/profile.d/, /etc/bash.bashrc 등이 있다.

 

2. 환경변구 구성 파일

2.1. bashrc

특정 사용자가 새로운 로컬 세션응 생성할 대마다 로그되는 파일로 별칭(alias)과 bash가 실행될 때 실해되는 함수 등으로 구성된다.

*이 파일은 전역적인 설정 파일인 /etc/bashrc 이 수행된 다음 바로 수행된다.

*모든 사용자에게 영향을 주는 /etc/bashrc 와는 달리 ~/.bashrc 는 오직 bash 를 실행하는 그 사용자에게만 영향을 준다.

 

2.2. bash_profile

특정 사용자의 원격 로그인 파일로 이 파일에 있는 환경변수는 사용자가 원격 로그인 세션이 이루어질 시에 호출된다.

*이 파일이 존재하지 않으면 시스템은 .bash_login이나 .profile 파일을 검색한다.

*이 파일은 전역적인 설정 파일인 /etc/profile 이 수행된다음 바로 수행된다.

*모든 사용자에게 영향을 주는 /etc/profile 과는 달리 ~/.bash_profile 는 오직 bash 를 실행하는 그 사용자에게만 영향을 준다.

 

2.3. /etc/environment

전반적인 시스템을 제어하는 파일로 필요한 환경변수를 작성하거나 편집 또는 제거한다.

이 파일에서 만든 환경변수는 로컬 및 원경으로 접속한 모든 사용자가 액세스할 수 있다.

 

2.4. /etc/bash.bashrc

시스템 전체의 bashrc 파일로 모든 사용자가 로컬 터미널 세션을 열 때마다 로드된다.

이 파일에서 만든 환경변수는 모든 사용자가 액세스할 수 있지만 로컬 터미널 세션에서만 가능하다.

 

2.5. /etc/profile 

시스템 전체의 profile 파일로 모든 사용자가 원격 로그인 세션이 이루어질 시에 호출된다.

이 파일에서 만든 환경변수는 모든 사용자가 엑세스할 수 있지만 원격 로그인 세션에만 가능하다.

 

*source <파일명> - 파일 내용을 수정 후에 재부팅/재실행 없이 즉시 적용하고자 한다면 해당 명령어와 같이 입력한다.

 

3. 로컬 환경변수 설정

<방법1>

가변적인 변수명을 써서 설정한다.

형식 : <가변적인 변수명>=<환경변수값>

<방법2>

export 명령어를 이용하여 환경변수를 설정한다.

형식 : export <변수명>=<환경변수값>

*변수명과 데이터값 사이에 있는 '='과 띄어쓰기를 하면 안된다. (띄어쓰기를 하면 '='을 데이터로 인식하여 오류가 발생한다.)

*입력한 환경변수를 확인할 때는 'echo <$변수명>' 명령을 입력해서 확인한다.

*로컬 환경변수를 삭제할 때는 'unset <가변적인 변수명>' 입력하거나 'env -i bash' 명령을 입력한다. (해당 명령어 사용후 exit 명령어를 입력하면 모든 변수명이 복원되어 다시 사요할 수 있다.)

*export 명령어만 사용하면 환경변수 리스트를 보여준다.

*export <변수명>=<$변수명>:<환경변수값> 이와같은 형태로 사용하면 변수명의 환경변수에 환경변수값을 추가할 수 있다.

 

4. 사용자 환경변수 설정

.bashrc 나 .bash_profile 파일 하단에 'export <변수명>=<환경변수값>' 명령줄을 추가한 후 source <파일 이름> 명령어를 입력해서 설정한다.

삭제할 때는 역으로 'export <변수명>=<환경변수값>' 명령줄을 삭제한 후  source <파일 이름> 명령어를 입력해서 설정한다.

.bashrc : 특정 사용자가 새로운 로컬 세션으로 접근 시도시

.bash_profile : 특정 사용자가 원격 로그인 세션으로 접근 시도시

 

5. 시스템 전체 환경변수

/etc/bash.bashrc 나 /etc/profile 파일 하단에 'export <변수명>=<환경변수값>' 명령줄을 추가한 후 source <파일 이름> 명령어를 입력해서 설정한다.

삭제할 때는 역으로 'export <변수명>=<환경변수값>' 명령줄을 삭제한 후  source <파일 이름> 명령어를 입력해서 설정한다.

.bashrc : 모든 사용자가 새로운 로컬 세션으로 접근 시도시

.bash_profile : 모든 사용자가 원격 로그인 세션으로 접근 시도시

 

6. 일반적으로 사용되는 환경변수 목록

7. 환경변수 확인 명령어

set : 로컬 환경변수 조회 명령어

env : 글로벌 환경변수 조회 명령어

 

728x90

댓글