루비 버전 관리 프로그램인 rbenv를 설치했습니다. .bashrc 파일을 살펴본 결과 경로 변수가 아래와 같이 변경된 것을 확인했습니다.
export PATH="$HOME/.rbenv/bin:$PATH"
이전 경로 내용을 포함하기 위해 ":$PATH" 부분이 포함된 것 같습니다. 경로 변수를 수정하는 프로그램에 ":$PATH" 부분이 포함되지 않으면 어떻게 되는지 알고 싶습니다. 해당 프로그램이 있는 bin 디렉터리가 더 이상 새 경로 변수에 포함되지 않으므로 명령줄에서 일부 프로그램을 실행할 수 없습니까?
답변1
당신이 올바른지. 따라서 타사 패키지는 현재 경로를 확장하기만 하고 제한해서는 안 됩니다.
답변2
PATH
bash
은 쉘( , fish
, ksh
, sh
등)이 실행할 항목을 찾기 위해 사용하는 콜론으로 구분된 디렉토리 목록입니다 . 셸에 입력한 줄의 첫 번째 단어가 셸 내장 또는 별칭이 아닌 경우, 셸은 에 있는 디렉터리 목록을 탐색하여 $PATH
입력한 명령의 첫 번째 단어와 동일한 이름을 가진 실행 파일을 찾습니다.
command not found
일반적인 명령( da/media/w3/0123-4567/PODCASTS/2016-Nov-27/loe-wildlife-decline.mp3te
, ls
, ...)에 대한 오류는 형식이 잘못되었음을 나타냅니다 PATH
. 긴급 상황 PATH
(문제를 해결할 수 있을 만큼)을 로 설정할 수 있습니다 export PATH=/usr/bin:/bin:/usr/local/bin:/snap/bin
.
많은 PATH
오류는 쉘 구문 오류입니다( Space이전 또는 이후 =
. PATH=value
, 공백 없음).
"경로 손상"에 관한 한, 의 "특수" 버전을 생성하고 ls
에 저장 한 경우 /.evil/bin/ls
경로가 손상되어 다음과 같이 될 수 있습니다./.evil/bin
전에 /bin
, 를 입력하면 ls
셸이 /.evil/bin/ls
대신 실행됩니다 /bin/ls
. 잘 알려진 문제이지만 시스템이 유용해질 때쯤에는 시스템이 완전히 침투됩니다.
답변3
이를 실행할 수 있으며 전체 경로를 지정하기만 하면 됩니다. 수정해도 PATH
연관된 권한은 수정되지 않습니다.