我真的很喜欢 bash 别名,但每次我想添加新别名时,我都要输入两个命令,这让我很烦恼:
echo "alias \"short-cmd\"='long-command'" >> ~/.bash_aliases
source ~/.bash_aliases
有什么方法可以使用单个命令永久创建别名吗?
答案1
这是我的解决方法,该函数palias
(又名永久别名):
function palias () {
if [ $# -ne "2" ] ; then
error "Usage: palias short-alias \'long-alias\'"
return
fi
alias $1="$2"
alias $1 >> ~/.bash_aliases
}
答案2
我的“两次击键解决方案”(一个字母和返回键)是设置此别名:
alias a='. ~/.bash_aliases'
然后每当我更新 .bash_aliases 文件时我只需输入a
return
更进一步是使用 github 跨机器维护它们:
bup () { [ $# = 1 ] && { cp -v ~/$1 ~/Dropnot/setups; cd ~/Dropnot/setups; git fetch; git merge origin/master; git add $1; git commit -m"$1 update"; git push origin master; cp -v $1 ~; cd -; } || echo "Error - no filename passed!";}
用法:bup [file] # file must be in ~, is usually a dot file]
答案3
当您登录到 shell 时,会运行多个文件,包括 ~/.bash_profile 以及可能的 ~/.bashrc 和 ~/.bash_aliases(如果 ~/.bash_profile 文件中引用了这些文件)。要在每次登录时都有可用的别名,只需将创建别名的命令放入这些文件之一即可。
http://shreevatsa.wordpress.com/2008/03/30/zshbash-startup-files-loading-order-bashrc-zshrc-etc/