이것이 점프 투 공작소

The command could not be located because '/usr/bin:/bin' is not included in the PATH environment variable. 에러 그리고 리눅스 환경변수란? 본문

리눅스

The command could not be located because '/usr/bin:/bin' is not included in the PATH environment variable. 에러 그리고 리눅스 환경변수란?

겅겅겅 2022. 9. 24. 10:38

리눅스에서 환경변수 좀 수정했더니 발견한 에러

 

'/usr/bin:/bin'이 환경변수에 없다고 한다.

/usr/bin 폴더는 리눅스의 실행파일이 모여있는 폴더다

 

echo $PATH 명령어로 환경변수들 확인해주고

 

진짜로 없던 export PATH=/usr/bin:/bin 로 환경변수 추가해주니 해결

그리고 에러난 김에 환경변수에 대해 정리해보자

 

리눅스의 환경변수

 

환경 변수는 크게 3가지로 나뉜다.

 

1.  로컬 환경 변수

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

선언법 : 변수명='값'

환경변수를 삭제할 때는 unset 명령어를 사용해주면 된다.

 

2. 사용자 환경변수

터미널이나 원격 로그인 세션으로 접속 했을때 로드되는 환경 변수이다.

사용자의  home폴더에 존재하는 .bash_profile, .profile 또는 .bash_login 에 설정된다.

 

관련 파일들을 살펴보자

ls -a ~ 명령어로 확인

.bashrc (사용자가 로컬 세션으로 접근시 로드)

사용자가 로컬 세션을 생성 할 떄 마다 로드되는 파일전역 설정 파일인 /etc/bashrc와 달리 ~/.bashrc는 오직 bash를 실행하는 사용자에게 영향을 준다.

 

.bash_profile (사용자가 원격으로 접근 했을 때 로드)

사용자가 원격 로그인 하였을때 로드되는 파일, 이 파일이 없으면 .bash_login이나 .profile을 찾는다.
즉 사용자 환경변수를 사용하고 싶으면 

.bashrc , .bash_profile 파일의 하단에 환경변수를 작성해주면 된다.

 

해당 파일 하단에 'export <변수명>=<값>' 을 추가 후 source <파일명> 으로 바로 적용해주면 된다.

source 명령어를 즉시 적용하는 이유는 .bashrc파일 같은 경우 유저가 로드 할 떄 읽는 파일이라서 바로 적용해주는것이 편하다.

 

 

 

3. 시스템 전체 환경변수

앞서 잠깐 언급했던 /etc/bash.bashrc(로컬세션접근) 파일이나  etc/profile(원격접근) 선언하는 환경변수이다.

사용자환경변수는 home폴더 안에있는 파일들 이지만 이건 /etc폴더 안에 있다.

시스템 전체 전역변수라고 보면 된다.

grep 으로 검색했다

사용자 환경변수와 동일하게 해당 파일들의 하단에

 'export <변수명>=<값>' 을 추가 후 source <파일명> 으로 바로 적용해주면 된다.

 

환경변수 조회 방법

$ export  (전체검색)
$ echo $환경변수명 (하나검색)