사용자 정의 명령을 추가하는 방법이 있습니까 /bin
?
예를 들어 docker container ls
많이 사용하는데 dcls
.
라는 파일을 추가하고 정확한 명령을 지정하면 dcls
이것이 작동하지 않을 것 같습니다./bin
docker container ls
그렇다면 이와 같은 작업을 수행하는 올바른 방법은 무엇입니까?
답변1
단축키를 지정하는 간단한 방법은alias
alias dcls='docker container ls'
docker container ls
이는 입력할 때 실행되며 dcls
명령은 정의한 별칭을 나열합니다 alias
. 이 별칭을 제거하려면 를 사용하세요 unalias dcls
.
~/.bashrc
Bash를 사용하는 경우 또는 에 별칭을 저장할 수 있습니다 ~/.bash_aliases
.
~/.bash_aliases
시작할 때 콘텐츠를 읽지 못하는 경우 다음 줄을 다음 줄에 추가할 수 있습니다 ~/.bashrc
.
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
답변2
실제로 설명하신 내용은 가능하지만 몇 가지 참고할 사항이 있습니다.
- 간단히
docker container ls
./bin/dcls
"shebang"이라는 줄로 파일을 시작하는 것이 더 안정적이므로 파일은 다음과 같습니다.#!/bin/sh 도커 컨테이너
파일이 쉘 스크립트임을 지정합니다. - 이 명령을 실행하기 전에 다음 명령을 사용하여 파일을 실행 가능하게 만들어야 합니다.
chmod +x /bin/dcls
이 작업을 수행하려면(즉, 실행하려면) 루트 권한이 필요할 수 있습니다sudo
. dcls
위의 두 단계를 수행 하면docker container ls
. 그러나 를 입력하면dcls -l foo
여전히 작동합니다docker container ls
. 이렇게 하려면docker container ls -l foo
스크립트를 다음으로 변경해야 합니다.#!/bin/sh 도커 컨테이너 ls "$@"
이는 명령줄에 입력한 모든 인수가 명령dcls
에 전달되도록 지정합니다.docker container ls
물론 명령줄 인수를 사용하여 더 복잡한 작업을 수행할 수도 있습니다.
간단한 명령 → 다른 사용자와 공유할 필요가 없는 간단한 명령 매핑의 경우 별칭(프레디가 제안한대로) 또는 쉘 기능. 보다 복잡한 기능은 일반적으로 스크립트, 즉 명령이 포함된 텍스트 파일로 작성됩니다. 그러나 다른 사용자와 공유할 필요가 없다면 개인 bin
디렉터리를 사용하는 것이 더 일반적입니다.
$CD # (홈 디렉토리로) $ mkdir 빈
dcls
그런 다음 에 복사 $HOME/bin
하고 추가하십시오.내보내기 PATH="$HOME/bin:$PATH"당신을 위한
~/.bashrc
.
또한 개인 스크립트를 넣고 시스템과 함께 제공되는 프로그램 /usr/local/bin
에 맡기는 것이 일반적입니다./bin
답변3
당신만을 위한 것이라면 별칭도 괜찮겠지만,Linux 파일 시스템 계층 표준/usr/local/bin/
대신 로컬 시스템 전체 스크립트가 들어갑니다 /bin
.
- 에서는 확실히 작동할 수 있지만
/bin
, 특히 소프트웨어가 고객 사이트에 배포될 예정이라면 표준을 준수하는 것이 더 좋습니다. - 스크립트가 선택사항인 경우
/opt
스크립트 자체는 다음과 같습니다.
#!/bin/bash # # Version 1.0 DD 2019-05-04 # dcls = docker container ls docker container ls "@0" if [[ $? -eq 0 ]]; then echo -e "Errors encountered..." exit 1 fi