PATH에 왜 그렇게 많은 프로그램이 있나요?

PATH에 왜 그렇게 많은 프로그램이 있나요?

데스크탑 Linux에 관해 저를 혼란스럽게 만드는 한 가지 이상은 거의 모든 것이 제 PATH에 있다는 것입니다. 모든 것은 gnome-character-map 및 glchess와 같은 것을 포함한 모든 데스크톱 응용 프로그램을 의미합니다. 여기에는 명령줄 인터페이스가 없으므로 정기적으로 터미널에서 실행하는 상황은 상상할 수 없습니다. 전부 입력해야 하는 불편함. 길. 혼란스러워 보이지만 그럴 만한 이유가 있을 수도 있습니다.

하다이런 일이 일어날까요? 성능이나 유지 관리 가능성에 큰 영향이 있습니까?

답변1

사용자가 실행하려는 모든 명령은 PATH에 있습니다. 그것이 바로 그 목적입니다. 여기에는 다음 명령이 포함됩니다.직접 실행되는 명령, 다른 사람이 직접 실행하는 명령, 자신이나 다른 사람이 다른 명령에 의해 호출되어 간접적으로 실행되는 명령입니다. 이는 터미널에서 실행되는 명령에만 국한되지 않습니다. GUI에서 실행되는 명령은 명령 검색 경로에서도 검색됩니다(다시 말하지만 이것이 바로 그 목적입니다).

전체 경로를 입력해야 하는 것은 좋지 않습니다. 전체 경로가 무엇인지 알아내야 합니다! /usr/bin운영 체제와 함께 제공되는 대부분의 프로그램이 포함되어 있는지 또는 /usr/local/bin관리자가 수동으로 설치한 프로그램이 포함되어 있는지, 일부 유닉스의 핵심 운영 체제에 속하지 않는 프로그램이 포함 되어 있는지 추적해야 합니다. 변형), 기타 시스템별 디렉터리 또는 사용자의 홈 디렉터리 어딘가에 있습니다.

"성능이나 유지 관리에 미치는 영향"에 대해서는 무엇과 비교하는지 언급하지 않기 때문에 답변하기 어렵습니다. 프로그램을 재배치했거나 OS와 함께 제공된 것 또는 시스템 관리자가 제공한 것 이외의 것을 설치하려는 경우, 모든 곳에 전체 경로를 입력해야 하는 것과 비교하면 이는 유지 관리에 있어 악몽입니다. ​​최신 버전의 경우, 모든 위치에서 전체 경로를 바꿔야 합니다. 여러 디렉터리에서 이름을 검색하는 경우 성능에 미치는 영향은 미미합니다.

PATHWindows와 비교하면 상황은 더 나쁩니다. 일부 프로그램은 실행 파일뿐만 아니라 모든 종류의 쓰레기를 PATH에 추가하고 결국 모든 프로그램을 포함하지 않는 1마일 길이의 변수 로 끝납니다. 설치 시 시스템 경로에 자신을 추가합니다.

답변2

PATH 변수에는 디렉터리 경로 목록이 포함되어 있습니다. 사용자가 전체 경로를 제공하지 않고 명령을 입력하면 이 목록을 검사하여 명령에 대한 경로가 포함되어 있는지 확인합니다. 터미널이나 명령줄 자체와 관련된 내용은 없습니다.

또한 데스크톱 Linux와 관련된 내용이 없습니다. 내 XP 시스템의 PATH에는 다음이 포함됩니다.%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem이는 아마도 대부분의 Windows용 바이너리를 포함할 것입니다.

지정된 순서대로 PATH의 디렉터리를 검색하고, 일치하는 항목이 발견되면 즉시 중지합니다. 시스템 디렉터리는 일반적으로 시작 부분에 있으며 우선 순위가 가장 높습니다. 사용자는 끝에 사용자 정의 검색 경로를 추가해야 합니다.

성능에 관해서: 대부분의 최신 쉘은 PATH의 내용을 캐시하므로 사용자가 명령을 입력할 때마다 디스크를 스캔할 필요가 없습니다.

관련 정보