명령 별칭을 빠르게 추가, 나열 및 삭제할 수 있는 유틸리티가 있습니까?

명령 별칭을 빠르게 추가, 나열 및 삭제할 수 있는 유틸리티가 있습니까?

나는 명령 별칭을 신속하고 즉각적으로 추가(및 나열/제거)하여 쉘이 다시 시작될 때까지 지속되도록(에 추가된 것처럼 .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

관련 정보