Ringkasan
Ketika saya membuat sesi tmux baru, prompt saya menarik dari konfigurasi bash default dan saya harus menjalankan secara manual source ~/.bashrc
untuk prompt khusus saya.
Analisis
Saya menggunakan mesin RHEL 7. Saya mulai memperhatikan perilaku ini setelah pembaruan bash beberapa waktu lalu, tetapi belum sempat mengajukan pertanyaan sampai sekarang (dan saya tidak yakin pembaruan mana ini mulai terjadi di sekitar).
Misalnya, saya telah menyesuaikan permintaan saya agar terlihat seperti:
[user@hostname ~]$
Setiap kali saya memulai sesi tmux baru, ia menggunakan apa yang tampaknya menjadi default bash:
-sh-4.2$
Jalankan cepat source ~/.bashrc
selalu memperbaiki masalah, tapi itu menjengkelkan bahwa saya harus melakukan ini setiap kali saya ingin memperbaiki sesuatu yang kecil. Ada ide tentang cara mendapatkan tmux untuk melakukan ini secara otomatis lagi?
Jika ada informasi lebih lanjut diperlukan, saya senang memberikannya.
tmux.conf
Untuk referensi, saya memiliki tmux.conf
file saya di bawah ini, meskipun ini bukan apa yang Anda sebut kustom.
setw -g mode-keys vi
# reload tmux.conf
bind r source-file ~/.tmux.conf \; display-message " ✱ ~/.tmux.conf is reloaded"
source ~/.bashrc
baris ke.bash_profile
, mencoba masuk dan kembali, membuat sesi tmux baru, tetapi tidak ada perubahan. Ada ide?.tmux.conf
baris file Andaset-option -g default-shell "/bin/bash"
. Ini harus menyelesaikan masalah Anda (setidaknya saya harap begitu)!bash
melalui Homebrew dan ini tidak berhasil, ubah"/bin/bash"
ke"/usr/local/bin/bash"
.Ini terkait dengan file init Bash. Secara default,
~/.bashrc
digunakan dalam shell interaktif dan non-login . Itu tidak akan bersumber di shell login. Tmux menggunakan shell login secara default. Karenanya, cangkang dimulai oleh tmux skip~/.bashrc
.File init untuk Bash,
/etc/profile
~/.bash_profile
,~/.bash_login
,~/.profile
(Hanya pertama yang ada)/etc/bash.bashrc
(beberapa Linux; bukan pada Mac OS X)~/.bashrc
$BASH_ENV
Larutan
Interaktif, persyaratan memuat non-login aneh membingungkan orang-orang dalam situasi lain juga. The solusi terbaik adalah mengubah persyaratan pemuatan
~/.bashrc
sebagai interaktif hanya , yang persis apa yang beberapa distro, seperti Ubuntu, lakukan.Ini harus menjadi solusi yang Anda inginkan. Dan saya sarankan setiap pengguna Bash mengatur ini di profil.
Referensi
man tmux
sumber
Menambahkan yang berikut ke
.tmux.conf
:JANGAN menghasilkan hasil yang diinginkan.
Hanya ketika menambahkan
source "$HOME/.bashrc"
ke~/.bash_profile
hasil yang diinginkan tercapai.Ini akan bekerja pada sesi tmux aktif ketika membuka jendela atau panel baru, dan juga ketika melepaskan dan membuka sesi tmux baru.
Diuji pada:
sumber