过去几年我一直在学习 Ubuntu,并爱上了 Bash 别名。我最近买了一台 Macbook Air,我想使用别名,但 MacOS 默认使用 zsh。我将 .bash_aliases 文件从我的一台 Ubuntu 机器复制到我的 Macbook,别名立即生效。
当前问题是我创建了一个新别名,但它不起作用。在 Ubuntu 上,我只需bash
再次运行以启动新会话,新别名即可立即使用。zsh
再次运行不会加载新别名,我得到了Command not found
。
我的.bash_aliases
样子是这样的:
alias saud='sudo apt update -y'
alias saug='sudo apt upgrade -y'
alias sarm='sudo apt autoremove -y'
alias sai='sudo apt install $1 -y'
alias ll='ls -lh'
alias cba='cat .bash_aliases'
alias nba='sudo nano .bash_aliases'
alias ifc='ifconfig'
alias rsa='sudo service apache2 restart'
alias version='lsb_release -a'
alias scaf='ssh cloud.mydomain.com -p 12345 -i ~/.ssh/id_rsa -v'
alias ncc='sudo -u www-data php occ'
alias ncr='service mysql restart && service php7.4-fpm restart && service nginx restart'
alias ncs='service mysql status | echo "mysql: " $(grep Active) \
&& service php7.4-fpm status | echo "74fpm: " $(grep Active) \
&& service nginx status | echo "nginx: " $(grep Active)'
我没有收到任何表明文件存在语法问题的错误。
既然其他别名都可以正常使用,为什么新的别名会被排斥呢?
答案1
原则上,zsh
重新启动应该可以工作,但您也可以定义另一个别名来重新读取别名文件rra
:
alias rra='source ~/.bash_aliases'