Когда 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.
Теперь проблема должна быть исправлена.