
$PATH Linux 컴퓨터의 백그라운드에서 자동 조작기 중 하나입니다. 그것은 조용히 사용자 경험에 영향을 주지만, 그것에 대한 그늘은 없습니다. 그 기능 및 조정 방법에 대해 설명합니다.
Linux에서 $ PATH는 무엇이며 어떻게 작동합니까?
터미널 창에 명령을 입력하고 Enter를 누르면 명령이 실행되기 전에 많은 활동이 시작됩니다.
Bash는 대부분의 Linux 배포판에서 기본 쉘입니다. 입력 한 텍스트 줄을 해석하고 매개 변수, 파이프, 재 지정 및 기타 다른 항목과 혼합 된 명령 이름을 식별합니다. 그런 다음 해당 명령에 대한 실행 바이너리를 찾아 제공 한 매개 변수로 실행합니다.
쉘이 실행 파일을 찾기 위해 수행하는 첫 번째 단계는 바이너리가 포함되어 있는지 여부를 식별하는 것입니다. 사용하는 명령이 쉘 자체 ( “쉘 내장”) 내에 있으면 추가 검색이 필요하지 않습니다.
쉘 내장은 쉘에 없어서 가장 쉽게 찾을 수 있습니다. 그것들은 툴 벨트에 넣는 것과 같습니다. 항상 당신과 함께 있습니다.
그러나 다른 도구 중 하나가 필요한 경우 작업장에서 찾아야 만 도구를 찾을 수 있습니다. 작업대 나 벽걸이에 있습니까? 그게 $PATH 환경 변수는 않습니다. 쉘이 검색하는 장소와 검색 순서 목록이 들어 있습니다.
명령이 쉘 내장, 별명, 함수 또는 독립 바이너리 mv / work / unfile인지 확인하려면 type 아래와 같이 명령 :
type clear
type cd

이것은 우리에게 clear 이진 파일이며 경로에서 발견 된 첫 번째 파일은 /usr/bin. 여러 버전이있을 수 있습니다 clear 컴퓨터에 설치되어 있지만 셸에서 사용하려고합니다.
놀랍지 않게, cd 쉘 내장입니다.
$ PATH 나열
경로에 무엇이 있는지 쉽게 볼 수 있습니다. 다음을 입력하여 echo 명령을 입력하고 $PATH 변하기 쉬운:
echo $PATH

출력은 콜론 (:) 구분 된 파일 시스템 위치. 셸은 경로를 통해 왼쪽에서 오른쪽으로 검색하여 명령을 수행 할 수있는 실행 파일이 있는지 각 파일 시스템 위치를 확인합니다.
검색 할 파일 시스템 위치와 검색 순서를 확인하기 위해 목록을 탐색 할 수 있습니다.
/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin/usr/games/usr/local/games/snap/bin
즉시 명백하지 않을 수도있는 것은 현재 작업 디렉토리에서 검색이 시작되지 않는다는 것입니다. 오히려 나열된 디렉토리를 통해 작동하며 나열된 디렉토리 만 작동합니다.
현재 작업중인 디렉토리가 경로에 없으면 검색되지 않습니다. 또한 경로에없는 디렉토리에 저장된 명령이 있으면 셸에서 해당 명령을 찾지 못합니다.
이를 증명하기 위해 우리는 작은 프로그램을 만들었습니다. rf. 실행되면 rf 터미널 창에서 시작된 디렉토리의 이름을 인쇄합니다. 그것은에 위치하고 /usr/local/bin. 우리는 또한 최신 버전이 있습니다 /dave/work 예배 규칙서.
우리는 다음을 입력합니다 which 쉘이 찾고 사용할 프로그램의 버전을 알려주는 명령 :
which rf

셸은 찾은 버전이 경로에있는 디렉토리에있는 버전을보고합니다.
다음을 입력하여 실행하십시오.
rf

버전 1.0 rf 우리의 기대가 맞는지 확인하고 확인하십시오. 발견되고 실행 된 버전은 /usr/local/bin.
다른 버전을 실행하려면 rf 이 컴퓨터에서는 아래와 같이 명령 행에서 실행 파일의 경로를 사용해야합니다.
./work/rf

이제 셸에 버전을 찾을 수있는 위치를 알려주었습니다. rf 버전 1.1을 사용합니다. 이 버전을 선호하는 경우이 버전을 /usr/local/bin 디렉토리를 작성하고 이전 디렉토리를 덮어 씁니다.
새 버전을 개발한다고 가정 해 보겠습니다. rf. 개발 및 테스트 할 때 자주 실행해야하지만 출시되지 않은 개발 빌드를 실제 환경에 복사하고 싶지는 않습니다.
또는 새 버전을 다운로드했을 수도 있습니다. rf 공개적으로 사용하기 전에 확인 테스트를하고 싶습니다.
작업 디렉토리를 경로에 추가하면 쉘이 버전을 찾도록 만듭니다. 이 변경은 우리에게만 영향을 미칩니다. 다른 사람들은 여전히 rf 에 /usr/local/bin .
$ PATH에 디렉토리 추가
당신은 사용할 수 있습니다 export 에 디렉토리를 추가하는 명령 $PATH. 그런 다음 디렉토리는 쉘이 검색하는 파일 시스템 위치 목록에 포함됩니다. 쉘이 일치하는 실행 파일을 찾으면 검색을 중지하므로 먼저 디렉토리를 먼저 검색해야합니다. /usr/local/bin.
이것은 쉽습니다. 이 예에서는 다음을 입력하여 디렉토리를 경로의 시작 부분에 추가하여 검색된 첫 번째 위치가되도록합니다.
export PATH=/home/dave/work:$PATH

이 명령은 $PATH 추가하는 디렉토리와 같아야합니다. /home/dave/work을 입력 한 다음 전체 현재 경로를 지정하십시오.
첫번째 PATH 달러 기호가 없습니다 ($). 우리는 PATH. 마지막 $PATH 에 저장된 내용을 참조하기 때문에 달러 기호가 있습니다. PATH 변하기 쉬운. 또한 콜론 (:) 새 디렉토리와 $PATH 변수 이름.
이제 경로가 어떻게 보이는지 봅시다 :
echo $PATH

우리의 /home/dave/work 디렉토리가 경로의 시작 부분에 추가됩니다. 우리가 제공 한 콜론은 나머지 경로를 분리합니다.
버전을 확인하기 위해 다음을 입력합니다. rf 처음 발견 된 것입니다 :
which rf

푸딩의 증거가 실행 중입니다 rf, 아래 그림과 같이:
rf

쉘은 버전 1.1을 찾아서 실행합니다. /home/dave/work.
경로의 끝에 디렉토리를 추가하려면 다음과 같이 명령의 끝으로 디렉토리를 이동하십시오.
export PATH=$PATH:/home/dave/work
영구적 변경
“Beth Brooke-Marciniak은 다음과 같이 말했습니다 :“성공은 좋지만 성공은 어려워집니다.” 터미널 창을 닫는 순간, 변경 한 내용은 $PATH 죽었다. 그것들을 영구적으로 만들려면 export 구성 파일의 명령.
당신이 넣어 export 당신의 명령 .bashrc 파일은 터미널 창을 열 때마다 경로를 설정합니다. 같지 않은 SSH 로그인해야하는 세션을 “대화식”세션이라고합니다.
과거에는 export 당신의 명령 .profile 터미널 세션 로그인 경로를 설정합니다.
그러나 우리는 우리가 export 명령 중 하나 .bashrc 또는 .profile 파일, 대화식 및 로그인 터미널 세션 모두에 대한 경로를 올바르게 설정합니다. 당신의 경험은 다를 수 있습니다. 모든 상황을 처리하기 위해 두 파일 모두에서 수행하는 방법을 보여줍니다.
에서 다음 명령을 사용하십시오 /home 편집 할 디렉토리 .bashrc 파일:
gedit .bashrc

그만큼 gedit 에디터 .bashrc 파일이로드되었습니다.

파일의 맨 아래로 스크롤 한 다음 앞에서 사용한 다음 내보내기 명령을 추가하십시오.
export PATH=/home/dave/work:$PATH
파일을 저장하십시오. 그런 다음 터미널 창을 닫았다가 다시 열거 나 dot 읽을 명령 .bashrc 다음과 같이 파일을 작성하십시오.
. .bashrc
그런 다음 다음을 입력하십시오. echo 경로를 확인하는 명령 :
echo $PATH

이것은 추가 /home/dave/work 경로의 시작 디렉토리.
에 명령을 추가하는 프로세스 .profile 파일이 동일합니다. 다음 명령을 입력하십시오 :
gedit .profile

그만큼 gedit 에디터는 .profile 파일이로드되었습니다.

추가 export 파일 맨 아래에 명령을 입력 한 다음 저장하십시오. 새 터미널 창을 닫고 여는 것만으로는 충분하지 않습니다. .profile 다시 읽을 파일입니다. 새로운 설정을 적용하려면 로그 아웃했다가 다시 로그인하거나 dot 아래와 같이 명령 :
. .profile
관련 : gedit를 사용하여 Linux에서 그래픽으로 텍스트 파일을 편집하는 방법
모두를위한 길 설정
시스템을 사용하는 모든 사람의 경로를 설정하려면 /etc/profile 파일.
당신이 사용해야합니다 sudo다음과 같이 :
sudo gedit /etc/profile
때 gedit 편집기가 시작되면 내보내기 명령을 파일 맨 아래에 추가하십시오.

파일을 저장하고 닫습니다. 다음에 로그인 할 때 변경 사항이 적용됩니다.
보안에 대한 참고 사항
실수로 선행 콜론을 추가하지 않도록하십시오.:아래 그림과 같이 경로로 이동하십시오.

그렇게하면 현재 디렉토리를 먼저 검색하여 보안 위험을 초래합니다. 아카이브 파일을 다운로드하여 디렉토리에 압축 해제했다고 가정하십시오. 파일을보고 다른 압축 파일을 봅니다. 압축 해제를 한 번 더 호출하여 해당 아카이브를 추출하십시오.
첫 번째 아카이브에 다음과 같은 실행 파일이 포함 된 경우 unzip 악성 실행 파일 인 경우 실수로 실제 실행 파일 대신 해당 파일을 실행합니다 unzip 실행 파일. 쉘이 현재 디렉토리를 먼저 살펴볼 수 있기 때문입니다.
따라서 입력 할 때는 항상주의하십시오 export 명령. 사용하다 echo $ PATH를 사용하여 해당 내용을 검토하고 원하는 방식인지 확인하십시오.








