![명령 별칭을 빠르게 추가, 나열 및 삭제할 수 있는 유틸리티가 있습니까?](https://linux55.com/image/25126/%EB%AA%85%EB%A0%B9%20%EB%B3%84%EC%B9%AD%EC%9D%84%20%EB%B9%A0%EB%A5%B4%EA%B2%8C%20%EC%B6%94%EA%B0%80%2C%20%EB%82%98%EC%97%B4%20%EB%B0%8F%20%EC%82%AD%EC%A0%9C%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EC%9C%A0%ED%8B%B8%EB%A6%AC%ED%8B%B0%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
나는 명령 별칭을 신속하고 즉각적으로 추가(및 나열/제거)하여 쉘이 다시 시작될 때까지 지속되도록(에 추가된 것처럼 .bashrc
) 할 수 있기를 원합니다. 나에게 도움이 될 수 있는 미리 만들어진 유틸리티/스크립트/무엇이 있습니까?
이상적으로 사용 예는 다음과 같습니다.
aliasutil add "gcm" "git checkout master"
aliasutil add "gfp %1" "git push --force %1"
aliasutil list
aliasutil remove "gcm"
답변1
alias
별칭 생성 및 나열을 처리합니다. unalias
삭제하는 과정을 진행하세요. 필요한 경우 bash help
내장 help alias
및/ help unalias
또는 bash 매뉴얼 페이지를 사용하여 자세한 내용을 확인할 수 있습니다.
이를 저장하기 위해 저는 수년 동안 다음 방법을 사용해 왔습니다.
$ alias savealias='alias > ~/.bash-aliases'
$ savealias
이제 모든 별칭(새로 정의된 별칭 포함)이 savealias
에 저장됩니다 ~/.bash-aliases
. 필요한 경우 쉘 스크립트처럼 편집할 수 있는 일반 텍스트 파일입니다. 예를 들어 내 내용에는 다음과 같은 줄이 포함되어 있습니다.
alias acs='apt-cache show'
alias acss='apt-cache search'
alias loadalias='. ~/.bash-aliases '
alias mq='mailq | grep "^[0-9A-Z]"'
alias savealias='alias >~/.bash-aliases'
alias ttystat='echo $(tty) $TERM ${COLUMNS}x$LINES'
alias where='type -all'
alias which='type -path'
다른 많은 것들이 있습니다.
~/.bash_profile, ~/.bashrc 또는 심지어 /etc/profile에 다음을 추가하여 로그인 시 저장된 별칭을 로드합니다.
[ -e ~/.bash-aliases ] && . ~/.bash-aliases
즉, ".bash-aliases 파일이 내 홈 디렉터리에 있으면 가져옵니다."
이 방법을 사용하면 별칭에 대한 모든 변경 사항은 실행하지 않는 한 로그아웃 시 손실됩니다. savealias
여기에는 별칭 추가, 편집 및 삭제도 포함됩니다.
답변2
내가 아는 한, 이 작업을 수행할 수 있는 도구는 없지만 대부분의 작업을 완료하려면 기존 유틸리티를 사용할 수 있어야 합니다. 별칭을 얼마나 동기화할지에 따라 .bashrc
각 명령줄 위 또는 앞에 다음 명령을 사용하여 목록을 가져올 수 있습니다 PROMPT_COMMAND
.
ALIAS_FILE='~/.aliases'
PROMPT_COMMAND=". $ALIAS_FILE"
aliasutil add "gcm" "git checkout master"
echo 'alias gcm="git checkout master"' >> $ALIAS_FILE
aliasutil add "gfp %1" "git push --force %1"
%1
그걸 논거로 삼을 건가요 ? 별칭은 매개변수를 지원하지 않으므로 이를 달성하려면 함수를 생성해야 합니다.
Alias 유틸리티 목록
cat $ALIAS_FILE
aliasutil은 "gcm"을 제거합니다.
sed -i '/^alias gcm=/d'
unalias gcm
답변3
@Thor의 답변에서 영감을 받아 이것을 직접 구현했을 때 다른 사람들이 잘 설치할 수 있는 도구를 만들 것이라고 생각했습니다.https://github.com/talwrii/aliasutil.
이는 bash에서 작동 zsh
하며 bash(테스트되지 않음)에서도 작동할 것으로 예상됩니다.
사용 중이라면 zsh
을 사용하여 설치할 수 있습니다 zplug
.
source /usr/share/zplug/init.zsh
zplug talwrii/aliasutil
zplug install
zplug load