커맨드 라인에 'music'을 입력하는 것처럼 나만의 명령을 내릴 수 있는지 궁금합니다. 내 vlc가 열리고 재생 목록 재생이 시작되어야합니다. VLC는 단지 예일 뿐이지 만 의문은 남아 있습니다.
나만의 명령을 내릴 수 있습니까? 그렇다면 어떻게?
커맨드 라인에 'music'을 입력하는 것처럼 나만의 명령을 내릴 수 있는지 궁금합니다. 내 vlc가 열리고 재생 목록 재생이 시작되어야합니다. VLC는 단지 예일 뿐이지 만 의문은 남아 있습니다.
나만의 명령을 내릴 수 있습니까? 그렇다면 어떻게?
답변:
예- 음악 이라는 파일을 만들고 그 안에 다음을 넣으십시오.
#!/bin/bash
echo "Hello world"
다음으로 chmod +x musictype-파일을 실행 가능하게 만듭니다. 이제이 ./music스크립트를 실행하기 위해 입력 할 수 있습니다 .
echo $PATH스크립트 를 입력 하여 해당 디렉토리 중 하나에 복사 하는 것이 좋습니다 . 내가 만드는 제안 $HOME/bin하고 해당 추가 PATH 를 통해 ~/.bash_profile나 ~/.profile. 이 파일들 중 하나에 다음을 추가하면됩니다 : export PATH="$HOME/bin:$PATH". 그런 다음 source .bash_profile파일을 다시로드하려면 해당 파일에 파일을 넣었다고 가정해야합니다.
다른 대안은 bash 별명으로 실행하려는 명령을 추가하는 것입니다. .bash_aliases홈 디렉토리에 이름이 지정된 파일에 다음을 추가하여이를 수행 할 수 있습니다 .
alias music='vlc --some-option --foo'
실행 source ~/.bash_aliases또는 로그 아웃 및 로그인하면 작동합니다 :-)
경로의 디렉토리에있는 모든 실행 파일은 "명령"이 될 수 있습니다. 다른 답변에서 제안한 스크립트 일 수 있지만 지원되는 모든 언어로 컴파일 된 프로그램 일 수도 있습니다.
별칭도 작동하지만 "한 줄짜리"이므로 복잡한 작업을 수행하면 읽기 어려운 코드를 신속하게 생성 할 수 있으므로 제한적입니다. 또한 입력 한 쉘과 동일한 변수 범위에서 실행되므로 다른 디렉토리에 사용자를 남겨 두거나 별명이 수행하는 태스크에만 필요한 변수를 정의하는 등 의도하지 않은 부작용을 쉽게 가질 수 있습니다. (물론, 원하는 부작용이 있기 때문에 별칭을 정확하게 사용하고 싶을 수도 있습니다.)
새 명령을 경로의 디렉토리에 넣으면 쉘에서 찾아서 실행할 수 있습니다. 가장 일반적인 장소는 $ HOME / bin입니다. 이 디렉토리가 존재하면 종종 자동으로 경로에 추가됩니다.
이것을 설정할 때 명심해야 할 두 가지 사항은 다음과 같습니다. 1) 일반적으로 시스템에 이미 정의 된 것과 일치하지 않는 명령에 고유 이름을 사용하는 것이 가장 좋습니다. 이것에 대해 많은 논쟁이 있지만, 요점은 다른 사람이 시스템을 사용하고 있고 특별한 명령을 수행하는 일반적인 명령에 익숙해지면 다른 시스템에서 작업 할 때 익숙한 명령이 예기치 않은 결과를 가져서는 안된다는 것입니다 그런 식으로 정의되지 않은 곳.
2) 경로의 시작이나 끝에 $ HOME / bin을 추가 할 수 있습니다 (또는 그 사이에 있지만 일반적으로 수행되지는 않습니다).
명령의 버전이 항상 실행되는 명령이고 더 빨리 찾을 수 있으므로 경로 앞에 추가하는 것이 가장 편리한 선택입니다. $ HOME / bin에 대한 쓰기 권한을 가진 사람 (루트 액세스보다 훨씬 쉬운 사람)은 일반적인 명령을 잠재적으로 악성 코드로 매우 쉽게 대체 할 수 있기 때문에 보안 취약점이기도합니다. 또한 시스템을 모르는 사람에게 도움을 요청해야하는 경우 모든 것을 설명하기 위해 많은 노력을 기울이지 않으면 사용자 지정 명령의 특수한 동작에 의해 트립 될 수 있습니다. 당신의 질문.
이미 경로에있는 명령과 이름이 같은 명령을 먼저 찾아서 대신 실행하기 때문에 경로 명령문의 끝에 추가하면 조금 더 안전합니다. .
이 모든 것을 피하기 위해 (약간의 추가 입력을 희생하면서) 경로에없는 디렉토리에 명령을 넣을 수 있습니다. 그것을 실행하십시오.
리눅스의 대부분의 것들과 마찬가지로, 새로운 명령을 생성하고 사용하는 방법은 여러 가지가 있으며 각각 고유 한 장점과 한계가 있습니다.