
Мне очень нравятся псевдонимы 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
Есть несколько файлов, которые запускаются при входе в оболочку, включая ~/.bash_profile и, возможно, ~/.bashrc и ~/.bash_aliases, если они указаны в файле ~/.bash_profile. Чтобы иметь псевдоним, доступный при каждом входе, просто поместите команду, которая создает псевдоним, в один из этих файлов.
http://shreevatsa.wordpress.com/2008/03/30/zshbash-startup-files-loading-order-bashrc-zshrc-etc/