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