我.bash_profile
的如下:
alias l='ls -l'
alias p='pwd'
alias sites='cd /home/caveman/sites'
alias time_card='cd /home/caveman/sites/time-card/time-card'
alias ping='ping google.com'
alias bash_profile='gedit /home/caveman/.bash_profile'
alias webroot='cd /var/www'
每次我登录我的机器时我都需要运行source .bash_profile
以使所有别名可用。
你们能找出问题出在哪里吗?
答案1
仅~/.bash_profile
在登录会话中读取。
此外,拥有~/.bash_profile
会阻止获取,这是Ubuntu 配置~/.profile
中用于登录 shell 的首选文件。bash
当您登录显示管理器(我认为是 GDM)时,~/.profile
默认情况下会读取(我不知道 GDM 是否遵循bash
规则并读取~/.bash_profile
(如果存在))。
即使~/.bash_profile
从 GDM 读取,别名也不会被继承,因此图形终端中的 shell(不是登录 shell)无法看到它们。
解决方案是:将您的别名放入~/.bashrc
,并且仅对非常简单的事情使用别名,否则使用函数。
该文件~/.bashrc
由非登录交互式 shell 读取,并以 为源~/.profile
,因此其内容也可在登录 shell 中使用。
答案2
您可以将别名添加到 ~/.bash_aliases