[리눅스] 환경변수 PATH

앙금빵·2021년 6월 28일
0

리눅스

목록 보기
7/13
post-thumbnail

PATH 환경변수

외부 명령어를 입력하면 Shell은 프로그램을 찾기 위해 시스템을 검색하는 과정을 걸친다.
여기서 PATH 환경변수는 명령과 프로그램을 검색하는 디렉토리를 정의한다.


PATH 이해하기

sudo echo "something" 명령어를 입력하면 다음과 같이 나온다.

john@root:~$ sudo echo "something"
[sudo] password for john: 
something

우리가 터미널에 명령어를 입력하면 sudo 라는 명령어는 어떻게 인식해서 우리에게 결과값을 가져다 줄까? which 명령어를 통해 sudo 라는 명령어의 위치를 알아보자

# which는 특정 명령어의 위치를 찾아주는 명령어
john@root:~$ which sudo
/usr/bin/sudo

즉, sudo 라는 명령어는 /usr/bin/sudo 디렉토리에서 실행된다는 의미이다.

이제 echo $PATH 명령어를 통해 나의 모든 디렉토리의 경로를 알아보자.

#PATH 확인
john@root:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

① 우리가 리눅스에서 sudo라는 명령어를 입력하게 되면,

/usr/local/sbin:/usr/local/bin:/usr/sbin:의 탐색 경로를 지나며

/usr/bin/sudo 디렉토리에서 sudo 라는 명령어가 실행이 된다.


PATH 역할

  • 만약 PATH 라는 기능이 없다면, 우리가 sudo 라는 명령어를 입력하였을 때 /usr/bin/sudo 의 명령어를 일일이 입력해야 한다.
  • 명령어들도 결국 일종의 실행 파일이며, 우리가 명령어 입력시 환경 변수에 잡혀 있는 PATH를 따라가서 해당 파일이 실행되는 원리로 명령어가 작동된다.

PATH Appending & Prepending

append: 뒤에 새로운 디렉토리 추가

prepend: 앞에 새로운 디렉토리 추가

# 기존 PATH에 append
# 기존 PATH 뒤에 /some/dir 디렉토리 추가
john@root:~$ PATH=$PATH:/some/dir

# 기존 PATH에 prepend
# 기존 PATH 앞에 /root 디렉토리 추가
john@root:~$ PATH=/root:$PATH

참조

https://aroundck.tistory.com/6920

https://www.youtube.com/watch?v=rJMFxIbDe-g&list=WL&index=1&t=495s&ab_channel=tutoriaLinux

profile
Cloud 관련 개인 공부 지식들을 기록하는 공간입니다.

0개의 댓글