IT/리눅스마스터1급

[linux] 환경 변수(path) profile 설정

알콩달콩아빠 2023. 8. 19. 21:13
728x90
반응형

1. 지역(쉘)변수, 전역변수

1.1 지역(쉘) 변수

- 현재 쉘(Shell)에 국한되어 사용되어지는 변수로 name=value 형식으로 사용(name변수에 value값을 할당)

- 변수에 문자열을 사용할경우 작은 따옴표('')를 이용해 문자열을 포함시킨다.

(주의 : 변수에 할당 하는 값의 = 앞뒤로 공백이 들어가면 안된다. 그러나 C Shell일 경우에는 허용됨 )

- 사용 예)

// name이라는 변수에 문자 'hong' 값을 할당

[root@localhost] name='hong' //원칙은 set name='hong'이지만 Bash쉘에서는 set명령어 생략이 가능하다.

// 할당된 name값 확인

[root@localhost] echo $name

hong

// 할당된 name변수 해제

[root@localhost] unset name

1.2 전역 환경 변수

- export 명령어를 사용해 지역(쉘) 변수를 환경 변수로 저장할수 있다.

- 이 전역 환경변수는 터미널을 닫기 전 까지 사용할수 있지만 터미널이 닫히면 사라지게 된다.

 

- 사용 예)

// 1.1에서 문자 'hong' 값을 할당한 name변수를 전역 환경 변수로 설정

[root@localhost] export name

//env로 확인하면 환경변수 목록에 name이 추가되었음을 확인할수 있다.

[root@localhost] env | grep name

hong

- set과 export 명령어를 한번에 사용하는 방법

[root@localhost] env NAME='hong'

* env : 환경변수를 보여주거나, 설정 혹은 삭제 하는 명령어

// 할당된 name변수 해제(지역 변수와 동일)

[root@localhost] unset name

 

1.3 path 설정방법

- 형식 : PATH=$PATH:폴더

- 기존의 PATH 뒤에 추가하고 싶은 폴더를 쓰면 된다. 윈도우에서는 폴더 사이의 구분자가 세미콜론(;)이지만,

리눅스에서는 콜론(:)이다.

 

- 사용 예)

// 설정되어 있는 PATH를 확인한다(PATH는 반드시 대문자)

[root@localhost] echo $PATH

/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/parallels/.local/bin

 

//기존의 PATH 맨 뒤에 /home과 /var가 추가(구분자 사이 공백있으면 안됨)

[root@localhost] PATH=$PATH:/home:/var

[root@localhost] echo $PATH

/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/parallels/.local/bin:/home:/var

2. 영구적인 환경 설정 스크립트(Login shell vs Non-login shell)

리눅스에는 로그인 하면 자동으로 실행되는 스크립트 파일이 있는데 이걸 환경 초기화 스크립트라고 한다.

로그인 하는 대상에 따라서 다음의 표와같이 실행되는 스크립트가 구분되며, 환경 초기화 스크립트에 적어두면 로그인할때마다 자동으로 환경 변수를 설정할수 있다.

User Class
대상 스크립트
비고
모든 계정에 공통 적용
(All users)
/erc/profile
* 시스템에 로그인할 때마다 로드(Login Shell에서 실행)
환경설정
특정 사용자에게만 적용
(One user)
$HOME/.bash_profile
(각 계정의 HOME디렉토리)
* 시스템에 로그인할 때마다 로드(Login Shell에서 실행)
환경설정
root에만 적용
/root/.bash_profile
* 시스템에 로그인할 때마다 로드(Login Shell에서 실행)
환경설정
모든 계정에 공통 적용
(All users)
/etc/bashrc
* bash로 로그인할 때에만 실행
* 로그인 한 상태에서 새 터미널 창을 열 때마다 로드
쉘 함수 및
Alias설정
특정 사용자 에게만 적용
(One user)
$HOME/.bashrc
* bash로 로그인할 때에만 실행
* 로그인 한 상태에서 새 터미널 창을 열 때마다 로드
쉘 함수 및
Alias설정
root에만 적용
/root/.bashrc
* bash로 로그인할 때에만 실행
* 로그인 한 상태에서 새 터미널 창을 열 때마다 로드
쉘 함수 및
Alias설정

* root로 로그인을 하면 먼저 /etc/profile을 읽어들여서 적용하고, 그 다음 root의 홈 디렉토리 아래있는 root의 .bash_profile을 읽어들 인다.

root가 아닌 scott 계정으로 로그인 한다면 /etc/profile을 읽어들이고 scott 계정의 홈 디렉토리에 있는 .bash_profile을 읽어들인다.

* 환경설정은 profile에, 다른 함수나 alias 설정은 bashrc에 저장하도록 권장한다. (bash 쉘을 사용할 경우)

* 스크립트 실행 순서

2.1 Login shell

- Login shell은 사용자가 로그인 했을때 적용되는 shell을 의미한다.

- 로그인은 계정과 암호를 입력해서 Shell을 실행하는 것을 말한다. 따라서 ssh로 접속하거나 로컬에서 GUI를 통해

Shell을 실행하는 것은 Login Shell 이다.

- .profile, .bash_profile 이 두 파일은 Login할 때 로드되는 파일이다.

* .profile'은 꼭 bash가 아니더라도 로그인하면 로드되며, '.bash_profile'은 꼭 bash로 로그인 할 때만 실행된다.

2.2 Non Login shell

- Non-Login Shell은 로그인 없이 실행하는 Shell을 말한다. ssh로 접속하고 나서 다시 bash를 실행하는 경우나,|

GUI 세션에서 터미널을 띄우는 것도 여기 해당한다. ('sudo bash'나 'su'같은 것도 해당)

- .bashrc은 이미 로그인 한 상태에서 새 터미널 창을 열 때마다 실행된다. (non-login shell에서 실행)

* 만약 새 터미널 창을 열 때마다 .bashrc를 로드하고 싶다면 .bash_profile 에서 .bashrc를 로드하면 된다.

3. 환경 설정 스크립트 작성및 적용 방법

source 명령어는 스크립트나 설정 파일들을 수정한 후에 수정된 값이 바로 적용되도록 사용하는 명령어 이다.

- 사용 방법

# source [file_name]

- 사용 예)

[root@localhost] vi .bash_profile

정전 : PATH=$PATH:$HOME/bin

수정후 : PATH=$PATH:$HOME/bin:/usr/sbin

vi로 편집한 .bash_profile 저장후 빠져나오기

[root@localhost] source .bash_profile

[root@localhost] echo $PATH

/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/parallels/.local/bin:/home:/var:/root/bin:/usr/sbin

4. 사용자 환경 변수 설정

.bashrc 이나 .bash_profile 파일 하단에 'export [변수명]=[환경변수값]' 명령줄을 추가한 후 source [파일 이름] 명령어로 설정.

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

5. 시스템 환경 변수 설정

/etc/bash.bashrc 이나 /etc/profile 파일 하단에 'export [변수명]=[환경변수값]' 명령줄을 추가한 후 source [파일 이름] 명령어로 설정.

 

출처 : [linux] 환경 변수(path) profile 설정 : 네이버 블로그 (naver.com)

728x90
반응형