실행 파일이 있습니다. 다른 명령처럼 이름으로 터미널에서 실행 파일을 실행하고 싶습니다.
내 실행 파일을 넣을 수 있습니다 /usr/local/bin
또는 나는 그것 추가 할 수 있습니다 PATH
에 ~/.bashrc
. 둘 다 작동합니다.
더 나은 게 뭐야? 차이점이 있습니까?
실행 파일이 있습니다. 다른 명령처럼 이름으로 터미널에서 실행 파일을 실행하고 싶습니다.
내 실행 파일을 넣을 수 있습니다 /usr/local/bin
또는 나는 그것 추가 할 수 있습니다 PATH
에 ~/.bashrc
. 둘 다 작동합니다.
더 나은 게 뭐야? 차이점이 있습니까?
답변:
예를 들어 실행 파일이 있다고 가정하겠습니다 myscript
. 터미널에서 다음과 같이 실행해야합니다.
/path/to/myscript
사용자 레벨 변경
PATH
해당 실행 파일을에 추가하면 ~/.bashrc
어디에서나 이름을 가진 실행 파일을 실행할 수 있습니다 ( Avinash Raj는 이미 언급 한 바와 같이).
myscript
그러나 변경 사항은 사용자 수준에 영향을 미칩니다 . 즉, 다른 사용자가 있으면 이름만으로 실행 파일에 액세스 할 수 없습니다. 적절한 권한이 있으면 실행 파일을 다음과 같이 실행해야합니다.
/path/to/myscript
또한 루트 가 아닌 스크립트를 sudo 로 PATH
실행할 sudo
수 없습니다.
sudo /path/to/myscript
시스템 레벨 변경
스크립트를 넣으면 /usr/local/bin
시스템 전체 및 모든 사용자가 액세스 할 수 있습니다. 이 경우 모든 사용자는 실행 파일을 다음과 같이 실행할 수 있습니다 (적절한 권한이있는 경우)
myscript
이 경우 실행 파일을 다음과 같이 실행할 sudo
수도 있습니다.
sudo myscript
이제 필요에 따라 한 가지 방법을 선택하십시오.
파일의 $PATH
변수에 파일 위치를 추가하면 ~/.bashrc
어느 위치에서나 실행할 수 있지만/usr/bin/
시스템에있는 모든 사용자는 어느 위치에서나 해당 파일을 실행할 수 있습니다.
왜 그런 겁니까? ~/.bashrc
파일은 사용자 만 볼 수 있기 때문 입니다. 따라서 수행 된 모든 변수 변경은 귀하에게 제한됩니다. 반면에 파일을 추가하면 파일이 /usr/bin
모든 사용자에게 남아있을 수 있으며 누군가 파일을 제거하지 않는 한 변수에 /usr/bin
존재 하므로 $PATH
모든 사용자가 모든 위치에서 파일을 실행할 수 있습니다.
실행 파일을 /usr/bin
또는에 넣으면 /usr/local/bin
이름 your-program
대신 ( /usr/local/bin/your-program
) 만 지정하여 해당 프로그램을 실행할 수 있습니다 .
대신 프로그램을 포함하는 디렉토리를 ~/.bashrc
파일에 추가하면 해당 디렉토리에 PATH
있는 실행 파일은 이름 만 입력하여 시작할 수 있습니다.