.bashrc/.profile не загружается в новый сеанс tmux (или окно) - почему?

Когда tmux запускает или открывает новое окно, он не загружает мои .profile или .bashrc. В конечном итоге я набираю . ~/.bashrc каждый раз. Есть ли способ сделать это автоматически?

Ответ 1

Да, в конце вашего .bash_profile, поместите строку:

. ~/.bashrc

Это автоматически создает rc файл в тех случаях, когда он обычно обрабатывает только профиль.

Правила относительно того, когда bash запускают определенные файлы, являются сложными и зависят от типа запускающей оболочки (логин/не-логин, интерактивный или нет) и т.д.), а также аргументы командной строки и переменные среды.

Вы можете увидеть их в выводе man bash, просто найдите INVOCATION - вам, вероятно, потребуется некоторое время для его переваривания и декодирования: -)

Ответ 2

Запуск bash явно работал у меня, добавив эту строку в файл ~/.tmux.conf:

set-option -g default-command "exec /bin/bash"

Ответ 4

У меня была та же проблема, и решения пока не сработали для меня. Решение, которое оказалось для меня работающим, можно найти здесь.

Короче говоря, tmux windows/sessions использует оболочку входа, которая ищет файл ~/.profile среди других файлов при его запуске.

Я хотел, чтобы zsh начинался с каждого нового окна tmux поэтому я exec zsh в exec zsh моего ~/.profile.

Ответ 5

Решение, которое сработало для меня, следующее:

  • Создайте файл .bash_profile если у вас его нет в ~
  • В конце .bash_profile поместите source ~/.bashrc или source ~/.profile
  • Перезапустить tmux.

Теперь проблема должна быть исправлена.