현재 디렉터리에 관계없이 특정 프로그램을 실행하려면 어떻게 해야 합니까? 폴더에 있는 프로그램에 대한 심볼릭 링크를 만들어야 합니까 /bin
?
답변1
export PATH=$PATH:</path/to/file>
명령줄 만 입력하면 전체 세션 동안에만 지속됩니다.
영구적으로 변경하려면 export PATH=$PATH:</path/to/file>
~/.bashrc 파일에 추가하세요(마지막에만).
답변2
즉, 프로그램을 실행하려면 디렉터리가 무엇이든 검색 경로에 프로그램 디렉터리가 있어야 합니다. 해당 경로에 이미 있는 폴더에 프로그램을 배치하거나 경로에 새 폴더를 추가하면 문제를 해결할 수 있습니다. 두 가지 모두 작동합니다. 최선의 답변은 다음에 따라 달라집니다.
프로그램이 소스 코드에서 직접 컴파일하여 다운로드한 것입니까?
아마도 이미 장착 메커니즘이 있을 것입니다. 프로그램이 컴파일된 폴더에서 루트로 "make install"을 실행합니다.
이 프로그램이 귀하의 컴퓨터에서 표준 프로그램의 일부로 제공될 것으로 예상되는 다운로드입니까?
이러한 응용 프로그램을 표준 폴더에 넣는 것이 합리적입니다. 이러한 프로그램에서는 /usr/local/bin과 같은 디렉토리를 사용하는 것이 일반적입니다. 이 작업을 수행하려면 루트 액세스 권한이 필요합니다.
이것은 귀하가 직접 작성한 프로그램이거나 귀하의 컴퓨터에 대한 특별한 권한이 없습니다.
홈 디렉토리에 "bin"이라는 폴더를 만들고 그 안에 프로그램을 넣습니다. 이 폴더에 전체 경로를 추가하려면 로그인 스크립트를 편집해야 할 수도 있습니다(예: /usr/home/jeremy/bin)
검색 경로에 현재 디렉터리를 추가할 수 있지만 새 프로그램마다 이 작업을 계속 수행해야 합니다. 이렇게 하려면 장기적으로 더 많은 작업이 필요합니다.
답변3
/bin
여러 가지 이유로 인해 디렉토리에 파일 링크를 배치하는 것은 최선의 방법이 아닙니다.
- 실제 실행 파일이 일부 사용자가 보거나 실행할 수 없는 위치에 있는 경우 링크가 잘못되었거나 제대로 작동하지 않는 프로그램으로 간주됩니다.
- 이
/bin
디렉토리는 시스템을 실행하는 데 필요한 프로그램(예: 등)용으로 예약되어야chmod
합니다mkdir
.
실제로 실행 파일 /usr/bin/
을 /usr/local/bin/
. , 없애고 싶다면 수동으로 삭제해야 합니다. 또한, 어떤 패키지에 의존하는지 알아야 합니다(이미 해당 프로그램을 사용하고 있는 것처럼 들리므로 이 문제는 해결되지만 일반적으로...).
다른 사용자가 사용하기를 원하는 프로그램을 설정하는 경우를 제외하고는 일반적으로 이 작업을 수행하지 않습니다. 홈 디렉터리에 bin 디렉터리를 만든 다음 쉘 구성 파일을 편집하여 환경 변수 ~/bin/
에 추가합니다. PATH
설치된 프로그램은 시스템의 나머지 부분과 분리되어 있기 때문에 이런 방식으로 설치된 프로그램을 추적하는 것이 더 쉽다는 것을 알았습니다.
답변4
이를 어지럽히면 PATH
실수로 악성 프로그램을 실행할 수 있습니다. 표준은 아래의 "로컬" 항목을 설치하는 것입니다 /usr/local
(참조FHS, Unix 사용법을 체계화한 것입니다. 약간 구식이지만 기본 사항을 제공합니다. , /usr/local/bin
일반적 PATH
으로 모든 사용자가 사용할 수 있습니다.
내 "로컬 설치" 프로그램은 $HOME/bin
표준 댄스에 설정되어 있으며 ./configure --prefix=$HOME ...
, 예를 들어 시스템에서 자체 구축된 git을 선택하기 위한 일부 (bash) 별칭이 있습니다(충돌하지 않는 프로그램은 끝에 있습니다 PATH
).