저는 PocketMine이라는 게임 서버를 운영하고 있습니다. 따라서 기본적으로 홈 디렉터리에는 서버 실행을 위한 bash 스크립트가 있는 폴더가 있습니다.~/PocketMine/start.sh
서버를 실행하고 싶을 때마다 cd
폴더로 들어가 ./start.sh
거나PocketMine/./start.sh
디렉토리의 내용을 실행하고 사용 하는 호출 pocketmine
( /usr/local/sbin
여기에는 심볼릭 링크가 있는 프로그램이 많이 있습니다) 에 심볼릭 링크를 추가하는 방법을 알고 싶습니다 .start.sh
/usr/local/sbin/pocketmine
=~/PocketMine/./start.sh
게으른 사람이라고 부르세요. 하지만 단순히 명령을 입력하는 대신 폴더에 CD를 넣고 스크립트를 실행하는 데 지쳤습니다.
답변1
실제로 심볼릭 링크는 필요하지 않습니다. ~/.bashrc
다음 명령문을 편집하고 추가하기만 하면 됩니다.
PATH=$PATH:$HOME/PocketMine
이렇게 하면 불필요한 혼란(심볼릭 링크 등)으로 인해 파일 시스템이 오염되는 것을 방지할 수 있습니다. csh/tcsh 사용자이고 bash 사용자가 아닌 경우 편집 ~/.cshrc
하고 추가하세요.
경로 설정 = ($path ~/PocketMine)
개인적으로는 조직 측면에서 한 단계 더 나아가고 싶습니다. 나는 ~/bin
디렉토리를 생성하고 거기에 시작 스크립트를 넣을 것입니다. 아마도 다음과 같은 좀 더 고유한 이름을 가질 것입니다. pmstart
(쉘 스크립트이더라도 상관없습니다. 그렇죠? 언젠가는 Python이나 다른 것으로 다시 구현하고 싶을 수도 있습니다. .sh
충분합니다. 실행 파일에서는 최종 사용자가 신경 쓰지 않는 구현 세부 사항(구현 언어)을 노출하고 하드코딩하고 프로세스에서 해당 구현 세부 사항을 불필요하게 커밋하기 때문에 일반적으로 나쁜 생각입니다.
$PATH에 이미 $HOME/bin이 포함되어 있을 수 있지만 그렇지 않은 경우 유사하게 추가할 수 있습니다.
sbin
마지막으로, 디렉토리에 들어가는 항목과 디렉토리에 들어가는 항목에 관한 역사적인 규칙/모범 사례가 있습니다 bin
. sbin
일반적으로 관리자 도구용으로 예약되어 있으며 bin
일반 최종 사용자 유틸리티에 사용됩니다.
답변2
더 짧은 실행 방법을 원한다면 ~/PocketMine/start.sh
별칭을 만들 수 있습니다. 다음 줄을 추가 ~/.bashrc
하고 호출하여 pm
스크립트를 실행합니다.
alias pm=~/PocketMine/start.sh
먼저 스크립트 디렉터리로 변경해야 하는 경우 해당 디렉터리를 함수로 만드세요.
function pm (
cd ~/PocketMine && exec ./start.sh "$@"
)
대화형 셸뿐만 아니라 다른 스크립트에서도 이 바로가기를 호출할 수 있으려면 에 입력한 대로 바로가기를 설정하세요 $PATH
. 스크립트는 실행 가능해야 하며(예: chmod a+rx ~/bin/pm
) 다음을 포함해야 합니다 .
#!/bin/sh
cd ~/PocketMine && exec ./start.sh "$@"