Odpowiedzi:
tmux
Uruchamia shell logowania domyślnie, więc ~/.bashrc
nie będzie wykonywany (które następnie kolejno źródła ~/.bash_aliases
. Trzeba źródła ~/.bashrc
z listy ~/.bash_profile
. Patrz INVOCATION
sekcja man bash
.
(Odpowiedź Chrisa Downa zawiera właściwe wyjaśnienie, ale nie dobre obejście)
Twój problem wynika z połączenia błędu projektowania basha i błędu projektowania tmux.
Domyślnie tmux uruchamia powłokę logowania w każdym oknie. To nie ma sensu: jeśli ustawiłeś tmux jako powłokę logowania, musisz ustawić default-command
opcję na coś innego niż tmux; a jeśli nie ustawiłeś tmux jako powłoki logowania, musisz ustawić default-command
opcję unikania uruchamiania powłoki logowania w tmuxie. Więc wypowiedz to w swoim, ~/.tmux.conf
aby powiedzieć Tmuxowi, aby uruchomił zwykłą powłokę:
set-option -g default-command $SHELL
Wtedy .bashrc
zostaniesz przeczytany. Jest jeszcze jeden problem z bash, który nie ma tutaj znaczenia, jeśli skonfigurujesz tmux zgodnie z zaleceniami powyżej, ale który pojawi się ponownie, jeśli zalogujesz się w trybie tekstowym (na konsoli tekstowej lub przez SSH). Bash czyta ~/.bash_profile
w powłokach logowania i ~/.bashrc
w interaktywnych powłokach, ale tylko wtedy, gdy nie są one powłokami logowania. Aby czytać ~/.bashrc
również w powłokach logowania, jeśli są interaktywne, dodaj to do ~/.bash_profile
:
case $- in *i*) . ~/.bashrc;; esac
tmux
? Korzystam z tmuxa około roku i nie widziałem żadnych problemów z aliasami. Spróbuj dodaćset -x
na początku.bashrc
i uruchomtmux
poleceniesource ~/.bashrc
. Być może znajdziesz jakieś błędy, a to rozwiąże twój problem.