Когда tmux запускает или открывает новое окно, он не загружает мои .profile
или .bashrc
. В конечном итоге я набираю . ~/.bashrc
каждый раз. Есть ли способ сделать это автоматически?
.bashrc/.profile не загружается в новый сеанс tmux (или окно) - почему?
Ответ 1
Да, в конце вашего .bash_profile
, поместите строку:
. ~/.bashrc
Это автоматически создает rc файл в тех случаях, когда он обычно обрабатывает только профиль.
Правила относительно того, когда bash
запускают определенные файлы, являются сложными и зависят от типа запускающей оболочки (логин/не-логин, интерактивный или нет) и т.д.), а также аргументы командной строки и переменные среды.
Вы можете увидеть их в выводе man bash
, просто найдите INVOCATION
- вам, вероятно, потребуется некоторое время для его переваривания и декодирования: -)
Ответ 2
Запуск bash явно работал у меня, добавив эту строку в файл ~/.tmux.conf:
set-option -g default-command "exec /bin/bash"
Ответ 3
Из этой темы:
кажется, что использование .bash_profile
будет работать.
Ответ 4
У меня была та же проблема, и решения пока не сработали для меня. Решение, которое оказалось для меня работающим, можно найти здесь.
Короче говоря, tmux
windows/sessions использует оболочку входа, которая ищет файл ~/.profile
среди других файлов при его запуске.
Я хотел, чтобы zsh начинался с каждого нового окна tmux
поэтому я exec zsh
в exec zsh
моего ~/.profile
.
Ответ 5
Решение, которое сработало для меня, следующее:
- Создайте файл
.bash_profile
если у вас его нет в~
- В конце
.bash_profile
поместитеsource ~/.bashrc
илиsource ~/.profile
- Перезапустить tmux.
Теперь проблема должна быть исправлена.