Зачем мне нужно запускать исходную команду, чтобы сделать псевдоним .bash_profile доступным?

Мой .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, чтобы сделать все псевдонимы доступными.

Ребята, вы можете понять, в чем проблема?

4
задан 20 September 2011 в 20:31

2 ответа

~/.bash_profile только для чтения в сеансе входа в систему.

Кроме того, наличие ~/.bash_profile предотвращает получение ~/.profile, что является предпочтительным файлом для использования для оболочки входа в конфигурации bash для Ubuntu.

Когда вы входите в Диспетчер отображения (я полагаю, GDM), по умолчанию читается ~/.profile (я не знаю, следует ли GDM правилам bash и вместо этого читает ~/.bash_profile, если существует). ]

Даже если ~/.bash_profile были прочитаны из GDM, псевдонимы не наследуются, поэтому оболочка, установленная в графическом терминале (которая не является оболочкой входа в систему), не может их видеть.

Решение: поместите ваши псевдонимы в ~/.bashrc и используйте псевдонимы только для очень простых вещей, в противном случае используйте функции.

Файл ~/.bashrc читается не входящими в систему интерактивными оболочками и поставляется в ~/.profile, так что его содержимое также доступно в оболочках входа в систему.

0
ответ дан 20 September 2011 в 20:31

Вы можете просто добавить псевдонимы в ~ / .bash_aliases вместо этого

0
ответ дан 20 September 2011 в 20:31

Другие вопросы по тегам:

Похожие вопросы: