/bin에 명령 바로가기 추가

/bin에 명령 바로가기 추가

사용자 정의 명령을 추가하는 방법이 있습니까 /bin?

예를 들어 docker container ls많이 사용하는데 dcls.

라는 파일을 추가하고 정확한 명령을 지정하면 dcls이것이 작동하지 않을 것 같습니다./bindocker container ls

그렇다면 이와 같은 작업을 수행하는 올바른 방법은 무엇입니까?

답변1

단축키를 지정하는 간단한 방법은alias

alias dcls='docker container ls'

docker container ls이는 입력할 때 실행되며 dcls명령은 정의한 별칭을 나열합니다 alias. 이 별칭을 제거하려면 를 사용하세요 unalias dcls.

~/.bashrcBash를 사용하는 경우 또는 에 별칭을 저장할 수 있습니다 ~/.bash_aliases.

~/.bash_aliases시작할 때 콘텐츠를 읽지 못하는 경우 다음 줄을 다음 줄에 추가할 수 있습니다 ~/.bashrc.

[ -f ~/.bash_aliases ] && . ~/.bash_aliases

답변2

실제로 설명하신 내용은 가능하지만 몇 가지 참고할 사항이 있습니다.

  1. 간단히 docker container ls. /bin/dcls​"shebang"이라는 줄로 파일을 시작하는 것이 더 안정적이므로 파일은 다음과 같습니다.
    #!/bin/sh
    도커 컨테이너
    파일이 쉘 스크립트임을 지정합니다.
  2. 이 명령을 실행하기 전에 다음 명령을 사용하여 파일을 실행 가능하게 만들어야 합니다.
    chmod +x /bin/dcls
    이 작업을 수행하려면(즉, 실행하려면) 루트 권한이 필요할 수 있습니다 sudo.
  3. 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.

  1. 에서는 확실히 작동할 수 있지만 /bin, 특히 소프트웨어가 고객 사이트에 배포될 예정이라면 표준을 준수하는 것이 더 좋습니다.
  2. 스크립트가 선택사항인 경우/opt
  3. 스크립트 자체는 다음과 같습니다.

    #!/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
    

관련 정보