Когда tmux запускается или открывает новое окно, он не загружает мой .profile
или .bashrc
. Я . ~/.bashrc
каждый раз печатаю . Есть ли способ сделать это автоматически?
94
Да, в конце вашего .bash_profile
поставьте строку:
. ~/.bashrc
Это автоматически создает файл rc в тех случаях, когда обычно обрабатывается только профиль.
Правила относительно того, когда bash
запускаются определенные файлы, сложны и зависят от типа запускаемой оболочки (вход в систему / без входа в систему, интерактивный или нет и т. Д.), А также от аргументов командной строки и переменных среды.
Вы можете увидеть их на man bash
выходе, просто посмотрите INVOCATION
- вам, вероятно, понадобится время, чтобы переварить и расшифровать его :-)
.bashrc/.profile is not loaded on new tmux session (or window) — why?
Запуск bash явно сработал для меня, добавив эту строку в мой файл ~ / .tmux.conf:
источник
~/.tmux.conf
:set -g default-command "/bin/bash"
. Спасибо друг.Предыдущие ответы предлагали решения, но не объясняли причину. Вот.
Это связано с файлами инициализации Bash. По умолчанию
~/.bashrc
используется в интерактивной оболочке без входа в систему . Он не будет получен в оболочке входа в систему. Tmux по умолчанию использует оболочку входа в систему . Следовательно, оболочки, запускаемые tmux skip~/.bashrc
.Файлы инициализации для Bash,
/etc/profile
~/.bash_profile
`~/.bash_login
`~/.profile
(только первый существующий)/etc/bash.bashrc
(некоторые Linux; не в Mac OS X)~/.bashrc
$BASH_ENV
Странное интерактивное требование загрузки без входа в систему сбивает людей с толку и в других ситуациях. Лучшим решением является изменение требования загрузки в
~/.bashrc
качестве только в интерактивном режиме , что это именно то , что некоторые дистрибутивы, такие как Ubuntu, делают.Это должно быть то решение, которое вы желаете. И я рекомендую каждому пользователю Bash настроить это в своем профиле.
Ссылки
man tmux
источник
Из этой ветки:
кажется, использование
.bash_profile
будет работать.источник
$echo case $- in *i*) . ~/.bashrc;; esac >> .bash_profile
Решение, которое сработало для меня, следующее:
.bash_profile
файл, если его нет в~
.bash_profile
поставитьsource ~/.bashrc
илиsource ~/.profile
Теперь проблема должна быть исправлена.
источник
У меня была та же проблема, и решения пока не помогли. Решение, которое в итоге сработало для меня, можно найти здесь .
Короче говоря,
tmux
окна / сеансы используют оболочку входа в систему, которая~/.profile
при запуске ищет среди других файлов.Я хотел, чтобы zsh запускался с каждым новым
tmux
окном, поэтому я поместилexec zsh
внизу своего файла~/.profile
.источник