Gdy tmux uruchamia się lub otwiera nowe okno, nie ładuje mojego .profile
ani .bashrc
. Za . ~/.bashrc
każdym razem piszę . Czy istnieje sposób, aby stało się to automatycznie?
94
Tak, na końcu wpisz .bash_profile
wiersz:
. ~/.bashrc
To automatycznie pobiera plik rc w tych okolicznościach, w których normalnie przetwarzałby tylko profil.
Zasady dotyczące bash
uruchamiania niektórych plików są skomplikowane i zależą od typu uruchamianej powłoki (logowanie / brak logowania, interaktywna lub nie, itd.), Wraz z argumentami wiersza poleceń i zmiennymi środowiskowymi.
Możesz je zobaczyć na man bash
wyjściu, po prostu poszukaj INVOCATION
- prawdopodobnie będziesz potrzebować trochę czasu, aby to przetrawić i zdekodować :-)
.bashrc/.profile is not loaded on new tmux session (or window) — why?
Uruchamianie basha wyraźnie zadziałało dla mnie, dodając tę linię do mojego pliku ~ / .tmux.conf:
źródło
~/.tmux.conf
:set -g default-command "/bin/bash"
. Dzięki stary.Wcześniejsze odpowiedzi dostarczały rozwiązań, ale nie wyjaśniały przyczyny. Tutaj jest.
Jest to związane z plikami init Bash. Domyślnie
~/.bashrc
jest używany w interaktywnej powłoce bez logowania . Nie będzie pochodzić z powłoki logowania. Tmux domyślnie używa powłoki logowania . W związku z tym powłoki uruchamiane przez tmux pomijają~/.bashrc
.Pliki init dla Bash,
/etc/profile
~/.bash_profile
,~/.bash_login
,~/.profile
(Tylko pierwsza, że istnieje)/etc/bash.bashrc
(niektóre Linux; nie w Mac OS X)~/.bashrc
$BASH_ENV
Dziwne interaktywne wymaganie ładowania bez logowania dezorientuje ludzi również w innych sytuacjach. Najlepszym rozwiązaniem jest zmiana wymogu ładowania
~/.bashrc
jak tylko interaktywny , który jest dokładnie to, co niektóre dystrybucje, takie jak Ubuntu, robisz.To powinno być rozwiązanie, którego pragniesz. I polecam każdemu użytkownikowi Bash skonfigurowanie tego w profilu.
Bibliografia
man tmux
źródło
Z tego wątku:
wydaje się, że użycie
.bash_profile
będzie działać.źródło
$echo case $- in *i*) . ~/.bashrc;; esac >> .bash_profile
Rozwiązanie, które zadziałało dla mnie, jest następujące:
.bash_profile
plik, jeśli go nie masz w~
.bash_profile
putsource ~/.bashrc
lubsource ~/.profile
Teraz problem powinien zostać rozwiązany.
źródło
Miałem ten sam problem i dotychczasowe rozwiązania nie działały. Rozwiązanie, które mi się udało, znajdziesz tutaj .
Krótko mówiąc,
tmux
okna / sesje używają powłoki logowania, która~/.profile
podczas uruchamiania szuka pośród innych plików.Chciałem, aby zsh zaczynał się od każdego nowego
tmux
okna, więc umieściłemexec zsh
na dole mojego~/.profile
.źródło