웹사이트 검색

Linux Shell의 명령줄 별칭


이 페이지에서

  1. Linux의 명령줄 별칭
  2. 관련 세부정보
  3. 결론

지금까지 cd - 및 pushd/popd 명령과 CDPATH 환경 변수에서. 이 네 번째이자 마지막 회에서는 별칭의 개념과 별칭을 사용하여 명령줄 탐색을 더 쉽고 원활하게 만드는 방법에 대해 설명합니다.

Linux의 명령줄 별칭

평신도 용어로 별칭은 인수 또는 옵션을 포함하여 복잡한 명령 또는 명령 그룹에 대한 짧은 이름 또는 약어로 생각할 수 있습니다. 따라서 기본적으로 별칭을 사용하면 입력/기억하기 쉽지 않은 명령에 대한 기억하기 쉬운 이름을 만들 수 있습니다.

예를 들어 다음 명령은 cd ~ 명령에 대한 별칭 home을 만듭니다.

alias home="cd ~"

즉, 이제 시스템의 어느 곳에서나 홈 디렉토리로 돌아가고 싶을 때마다 신속하게 home을 입력하고 Enter 키를 누를 수 있습니다.

이 유틸리티에 대한 별칭 명령 매뉴얼 페이지의 내용은 다음과 같습니다.

The alias utility shall create or redefine alias definitions or write the values of existing alias definitions to standard output. An alias definition provides a string value that shall replace a command name when it is encountered

An alias definition shall affect the current shell execution environment and the execution environments of the subshells of the current shell. When used as specified by this volume of IEEE Std 1003.1-2001, the alias definition shall not affect the parent process of the current shell nor any utility environment invoked by the shell.

그렇다면 명령줄 탐색에서 별칭이 정확히 어떻게 도움이 될까요? 다음은 간단한 예입니다.

많은 하위 디렉터리와 하위 하위 디렉터리가 포함된 /home/himanshu/projects/howtoforge 디렉터리에서 작업한다고 가정합니다. 예를 들어 다음은 하나의 완전한 디렉토리 분기입니다.

/home/himanshu/projects/howtoforge/command-line/navigation/tips-tricks/part4/final

이제 최종 디렉토리에 있고 tips-tricks 디렉토리로 돌아가고 거기에서 howtoforge 디렉토리로 돌아가야 한다고 상상해 보십시오. 어떻게 하시겠습니까?

음, 일반적으로 다음 명령 집합을 실행합니다.

cd ../..
cd ../../..

이 접근 방식이 그 자체로는 잘못된 것은 아니지만 확실히 편리하지 않습니다. 특히 매우 긴 경로에 있는 5개의 디렉토리와 같이 되돌아가야 하는 경우에는 더욱 그렇습니다. 그래서 해결책은 무엇입니까? 대답은 별칭입니다.

cd .. 명령에 대해 기억하기 쉬운(및 입력) 별칭을 만들 수 있습니다. 예를 들어:

alias bk1="cd .."
alias bk2="cd ../.."
alias bk3="cd ../../.."
alias bk4="cd ../../../.."
alias bk5="cd ../../../../.."

이제 현재 작업 디렉토리에서 5곳으로 돌아가고 싶을 때마다 다음 명령을 실행하면 됩니다.

bk5

지금은 쉽지 않습니까?

관련 세부 정보

지금까지 쉘 프롬프트에서 별칭을 정의하는 데 사용한 기술(alias 명령 사용)이 트릭을 수행하지만 별칭은 현재 터미널 세션에만 존재합니다. 이후에 시작하는 새 명령줄 터미널 창/탭에서 사용할 수 있도록 사용자가 정의한 별칭을 유지하기를 원할 가능성이 높습니다.

이를 위해 기본적으로 ~/.bashrc 파일에 의해 로드되는 ~/.bash_aliases 파일에서 별칭을 정의해야 합니다. 이전 우분투 버전 사용).

다음은 .bash_aliases 파일에 대해 설명하는 내 .bashrc 파일에서 발췌한 것입니다.

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

.bash_aliases 파일에 별칭 정의를 추가하면 모든 새 터미널에서 해당 별칭을 사용할 수 있습니다. 그러나 해당 별칭을 정의할 때 이미 열려 있던 다른 터미널에서는 사용할 수 없습니다. 탈출구는 해당 터미널에서 .bashrc를 소싱하는 것입니다. 다음은 실행해야 하는 정확한 명령입니다.

source ~/.bashrc

너무 많은 작업처럼 들린다면(예, LAZY ONES를 보고 있습니다) 이 모든 작업을 수행할 수 있는 지름길은 다음과 같습니다.

"alias [the-alias]" >> ~/.bash_aliases && source ~/.bash_aliases

말할 필요도 없이 [the-alias]를 실제 명령으로 바꿔야 합니다. 예를 들어:

"alias bk5='cd ../../../../..'" >> ~/.bash_aliases && source ~/.bash_aliases

이제 별칭을 몇 개 만들고 몇 달 동안 켜고 끌었다고 가정해 보겠습니다. 어느 날 갑자기 그들 중 하나가 예상대로 작동하지 않는다는 것을 의심하게 됩니다. 따라서 해당 별칭에 할당된 정확한 명령을 살펴볼 필요가 있다고 느꼈습니다. 어떻게 하시겠습니까?

물론 .bash_aliases 파일을 열어 살펴볼 수 있지만 이 프로세스는 특히 파일에 많은 별칭이 포함된 경우 시간이 많이 걸릴 수 있습니다. 따라서 쉬운 방법을 찾고 있다면 여기에 한 가지가 있습니다. 별칭 이름을 인수로 사용하여 alias 명령을 실행하기만 하면 됩니다.

예를 들면 다음과 같습니다.

$ alias bk6
alias bk6='cd ../../../../../..'

보시다시피 앞서 언급한 명령어는 bk6 별칭에 할당된 실제 명령어를 표시했습니다. 방법이 하나 더 있습니다. type 명령을 사용하는 것입니다. 다음은 예입니다.

$ type bk6
bk6 is aliased to `cd ../../../../../..'

따라서 type 명령은 사람이 더 이해할 수 있는 출력을 생성합니다.

여기서 공유할 가치가 있는 또 다른 사항은 일반적인 오타에 별칭을 사용할 수 있다는 것입니다. 예를 들어:

alias mroe='more'

마지막으로 모든 사람이 별칭 사용을 선호하는 것은 아니라는 점도 언급할 가치가 있습니다. 그들 대부분은 일단 쉽게 정의한 별칭에 익숙해지면 해당 별칭이 존재하지 않는 다른 시스템에서 작업하기가 정말 어려워진다고 주장합니다. 일부 전문가가 별칭 사용을 권장하지 않는 이유와 정확한 이유는 여기에서 확인할 수 있습니다.

결론

이전 부분에서 논의한 CDPATH 환경 변수와 마찬가지로 별칭도 매우 신중하게 사용해야 하는 양날의 검입니다. 모든 것이 장점과 단점이 있으므로 낙심하지 마십시오. 별칭과 같은 개념을 다룰 때는 연습과 완전한 지식이 핵심입니다.

이것으로 이 튜토리얼 시리즈의 끝을 표시합니다. 당신이 그것을 즐겼고 그것으로부터 몇 가지 새로운 것/개념을 배우기를 바랍니다. 의문 사항이나 문의 사항이 있는 경우 아래 의견을 통해 당사(및 전 세계)와 공유하십시오.