Обычно в bash ответом будет ~ / .bashrc или /etc/bash.bashrc. Но, к сожалению, Ubuntu получает эти файлы из ~ / .profile и / etc / profile соответственно. Итак, где я должен поместить такие команды в Ubuntu?
См. Также Почему / etc / profile не вызывается для оболочек, не входящих в систему? , если вы не знакомы с этими файлами.
При открытии Вашего man bash
можно найти где-нибудь в строке 150:
When an interactive shell that is not a login shell is started, bash reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if these files exist. This may be inhibited by using the --norc option. The --rcfile file option will force bash to read and execute commands from file instead of /etc/bash.bashrc and ~/.bashrc.
Так, можно использовать с уверенностью ~/.bashrc
(или /etc/bash.bashrc
, но я не буду совет Вы для использования этого файла в масштабе всей системы) для цели. И да, в Ubuntu.
Кажется, что нет никакого стандартного места для таких команд на Ubuntu (не изменяя поведение, которое можно считать стандартным на Ubuntu). Вот обходное решение, которое я придумал:
Добавляют это к началу /etc/profile
:
IS_LOGIN_SHELL=1
Затем в /etc/bash.bashrc
или ~/.bashrc
тест для этой переменной:
if [ -n "${IS_LOGIN_SHELL-}" ]; then
# Put your commands here
fi
, Надо надеяться, имя переменной не столкнется ни с чем больше, и это не изменяет то, на что могут полагаться другие части Ubuntu.