Jawaban:
tmux
meluncurkan shell login secara default, jadi ~/.bashrc
tidak akan dieksekusi (yang kemudian sumber ~/.bash_aliases
. Anda perlu sumber ~/.bashrc
dari Anda ~/.bash_profile
. Lihat INVOCATION
bagian man bash
.
( Jawaban Chris Down memiliki penjelasan yang benar tetapi tidak ada solusi yang baik)
Masalah Anda berasal dari kombinasi bug desain bash dan bug desain tmux.
Secara default, tmux memulai shell login di setiap jendela. Ini tidak masuk akal: jika Anda telah menetapkan tmux sebagai shell login Anda, Anda perlu mengatur default-command
opsi untuk sesuatu selain tmux; dan jika Anda belum menetapkan tmux sebagai shell login Anda, Anda perlu mengatur default-command
opsi untuk menghindari memulai shell login di dalam tmux. Jadi cibir ini di Anda ~/.tmux.conf
untuk memberitahu tmux untuk memulai shell biasa:
set-option -g default-command $SHELL
Maka Anda .bashrc
akan dibaca. Ada masalah lain dengan bash, yang tidak masalah di sini jika Anda mengkonfigurasi tmux seperti yang direkomendasikan di atas, tetapi yang akan muncul lagi jika Anda masuk dalam mode teks (pada konsol teks, atau melalui SSH). Bash membaca ~/.bash_profile
di shell login, dan ~/.bashrc
di shell interaktif tetapi hanya jika mereka bukan shell login. Untuk membaca ~/.bashrc
juga di shell login jika interaktif, tambahkan ini ke ~/.bash_profile
:
case $- in *i*) . ~/.bashrc;; esac
tmux
? Saya menggunakan tmux sekitar setahun dan belum melihat masalah dengan alias. Coba tambahkanset -x
di awal perintah Anda.bashrc
dan jalankan . Mungkin Anda akan menemukan kesalahan dan itu akan menyelesaikan masalah Anda.tmux
source ~/.bashrc