Shell PATH 변수 사용법 상세 정보

1674 단어 ShellPATH변수
앞에서 말했듯이 프로그램 스크립트가 Linux에서 실행되려면 절대 경로나 상대 경로를 사용하여 이 스크립트가 있는 위치를 지정해야 한다.그런데 왜 시스템 명령은 경로를 지정하지 않고 직접 실행합니까?예를 들어 ls 명령은'/bin/ls'를 입력하지 않고'ls'명령을 직접 실행합니다.이것이 바로 PATH 환경 변수의 기능입니다.
PATH 환경 변수의 값은 다음과 같습니다.

[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/
bin:/root/bin
PATH 변수의 값은 시스템에서 명령을 찾는 경로인 ":"으로 구분된 경로입니다.즉, 경로가 기록되지 않으면 PATH 변수가 정의한 경로에 실행할 수 있는 프로그램이 있는지 찾고, 찾으면 실행합니다. 그렇지 않으면'명령이 발견되지 않았습니다'라는 오류가 발생합니다.
그렇다면 우리가 쓴 스크립트를 PATH 변수가 정의한 경로로 복사해도 경로를 입력하지 않고 실행할 수 있지 않을까요?당연히 할 수 있지. 우리 한번 해보자. 맨 처음에 hello를 가져가자.예를 들자.

[root@localhost ~]# cp /root/sh/hello.sh /bin/
# hello.shi /bin/ 
[root@localhost ~]# hello.sh
c.biancheng.net
#hello.sh 
우리는 프로그램 스크립트를 PATH 변수가 정의한 임의의 경로로 복사하기만 하면 된다. 예를 들어/bin/디렉터리에서 이 스크립트는 절대 경로나 상대 경로를 지정하지 않고 직접 실행할 수 있다.
만약 우리가 자신이 쓴 모든 프로그램 스크립트를/bin/디렉터리에 두었다면, 때로는 시스템 명령과 자신이 쓴 프로그램을 잘 알지 못할 수도 있다. (사실 필자는 시스템 디렉터리의 구조를 바꾸는 것을 매우 반대한다.)프로그램 스크립트를/bin/디렉터리에 복사하지 않고 PATH 변수의 값을 수정할 수 있습니까?
당연히 할 수 있다. 변수의 중첩을 통해 실현할 수 있다.

[root@localhost ~]# PATH="$PATH":/root/sh
# PATH , /root/sh 
[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/
bin:/root/bin:/root/sh
# PATH , 
물론 이렇게 정의된 PATH 변수는 임시로만 적용될 수 있으며 시스템을 다시 시작하거나 로그아웃하면 사라집니다.영구적으로 적용되려면 환경 변수 프로필을 써야 합니다. 다음 장에서 자세히 설명하겠습니다.
이 Shell PATH 변수 사용법에 대한 상세한 설명은 여기 있습니다. 더 많은 Shell PATH 변수 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기