Bash/zsh 별칭을 어떻게 관리합니까?
"별칭 고려 -> .zshrc-sourced-file 열기 -> 편집 -> 닫기, .zshrc 다시 로드 -> 별칭 사용"을 줄여 이를 더 쉽게 만드는 도구가 있습니까?
답변1
더 이상 별칭을 추가하거나 편집하는 일이 거의 없지만 여전히 별칭을 보유하고 가끔 사용합니다.
alias savealiases='alias > ~/.bash-aliases'
loadaliases
또한 하나의 셸(터미널 창 또는 탭, tmux 창, ssh 세션 등)에서 별칭을 생성하거나 변경하고 이를 실행 중인 다른 셸에 쉽게 로드할 수 있도록 이 기능이 있습니다 .
alias loadaliases='source ~/.bash-aliases'
로그인하거나 새 셸을 시작할 때 내 별칭이 로드되도록 하려면 다음을 포함합니다 ~/.bashrc
.
[ -e ~/.bash-aliases ] && . ~/.bash-aliases
매우 독창적이지만 20년 넘게 나에게는 충분했습니다. 별칭을 멋지게 편집해야 하는 경우 vi를 사용할 수 있습니다.
답변2
bash 및 zsh 이상의 것에 관심이 있다면 1980년에 UNOS 명령 해석기를 사용하여 도입된 완전히 다른 접근 방식에 관심이 있을 수 있습니다. 명령 해석기는 파일에 저장된 영구 별칭을 구현합니다.$HOME/.globals
이 방법은 이제 최신 Bourne Shell 버전의 Schily-Tools에서 얻을 수 있는 bsh에서 사용할 수 있습니다.
최근 Bourne Shell 매뉴얼 페이지를 확인하십시오:
http://schillix.sourceforge.net/man/man1/bosh.1.html
Korn Shell 구문의 복잡한 별칭은 정확한 인용으로 입력하기 어려운 반면, Bourne Shell은 소위 alias
hash 명령을 구현하여 모드에서 별칭 입력을 허용하기 때문에 이 접근 방식을 언급합니다.
참고: 영구 별칭을 지원하지 않는 다른 쉘의 별칭을 저장하는 올바른 방법은 다음과 같습니다.
alias -p > file
ksh93을 사용하여 호출 하면 alias
다음과 같은 출력이 표시됩니다.
autoload='typeset -fu' command='command ' compound='typeset -C'
하지만 에 전화하면 alias -p
다음을 얻게 됩니다.
alias autoload='typeset -fu' alias command='command ' alias compound='typeset -C'
보시다시피, alias -p
반환된 내용은 나중에 다음을 호출하여 셸 입력으로 다시 사용할 수 있기 때문에 필요합니다.
. file
편집: alias -p
POSIX는 아니지만 bash 이외의 쉘은 기본적으로 구문 분석 가능한 출력을 생성하지 않는 것 같습니다. 일부 쉘은 구문 분석 가능한 출력을 생성하지 않습니다!
-p
출력해야 하는 쉘은 parsable
다음과 같습니다.
- 본 쉘
- ksh93(ksh88은 구문 분석 가능한 출력이나 -p를 지원하지 않음)
배쉬 허용 -p...
그런데:스프린트구문 분석 가능한 출력은 전혀 지원되지 않으며 -p도 지원되지 않습니다.
다루기 힘든alias -p
via 와 동등한 기능을 구현합니다 alias -L
.