Tmux başladığında veya yeni bir pencere açtığında, my .profile
veya .bashrc
. . ~/.bashrc
Her seferinde yazmaya başladım . Bunu otomatik olarak gerçekleştirmenin bir yolu var mı?
Tmux başladığında veya yeni bir pencere açtığında, my .profile
veya .bashrc
. . ~/.bashrc
Her seferinde yazmaya başladım . Bunu otomatik olarak gerçekleştirmenin bir yolu var mı?
Yanıtlar:
Evet, .bash_profile
satırınızın sonuna şunu yazın :
. ~/.bashrc
Bu, normalde yalnızca profili işleyeceği durumlarda rc dosyasını otomatik olarak kaynaklar.
bash
Belirli dosyaların ne zaman çalıştırılacağına ilişkin kurallar karmaşıktır ve komut satırı argümanları ve ortam değişkenleriyle birlikte başlatılan kabuğun türüne (oturum açma / oturum açma olmayan, etkileşimli ya da değil vb.) Bağlıdır.
Bunları man bash
çıktıda görebilirsiniz , sadece bakın INVOCATION
- muhtemelen özetlemek ve kodunu çözmek için biraz zamana ihtiyacınız olacak :-)
.bashrc/.profile is not loaded on new tmux session (or window) — why?
Bu satırı ~ / .tmux.conf dosyama ekleyerek bash'ı çalıştırmak benim için açıkça çalıştı:
set-option -g default-command "exec /bin/bash"
~/.tmux.conf
: set -g default-command "/bin/bash"
. Teşekkürler dostum.
Önceki cevaplar çözüm sağladı ancak nedenini açıklamadı. İşte burada.
Bu, Bash başlatma dosyalarıyla ilgilidir. Varsayılan olarak, ~/.bashrc
bir kullanılır interaktif olmayan giriş kabuğu. Bir giriş kabuğundan kaynaklanmayacak. Tmux, varsayılan olarak bir oturum açma kabuğu kullanır . Bu nedenle, tmux tarafından başlatılan kabuklar atlar ~/.bashrc
.
default-command
kabuk komutuVarsayılan, tmux'a
default-shell
seçeneğin değerini kullanarak bir oturum açma kabuğu oluşturmasını söyleyen boş bir dizedir .
Bash için dosyaları başlatma,
/etc/profile
~/.bash_profile
, ~/.bash_login
, ~/.profile
(Var olan tek birincisi)/etc/bash.bashrc
(bazı Linux; Mac OS X'te değil)~/.bashrc
$BASH_ENV
Garip etkileşimli, giriş dışı yükleme gereksinimi, diğer durumlarda da insanların kafasını karıştırır. En iyi çözüm , yükleme gereksinimini yalnızca etkileşimli~/.bashrc
olarak değiştirmektir; bu, Ubuntu gibi bazı dağıtımların yaptığı gibi.
# write content below into ~/.profile, or ~/.bash_profile
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
Arzu ettiğiniz çözüm bu olmalıdır. Ve her Bash kullanıcısının bunu profilde kurmasını tavsiye ederim.
Referanslar
man tmux
Bu başlıktan:
kullanmak .bash_profile
işe yarayacak gibi görünüyor .
$echo case $- in *i*) . ~/.bashrc;; esac >> .bash_profile
Benim için işe yarayan çözüm şudur:
.bash_profile
yoksa bir dosya oluşturun~
.bash_profile
put source ~/.bashrc
veyasource ~/.profile
Sorun şimdi çözülmelidir.
Aynı sorunu yaşadım ve şu ana kadar çözümler benim için işe yaramadı. Benim için işe yarayan çözüm burada bulunabilir .
Kısacası, tmux
windows / sessions , ~/.profile
başladığında diğer dosyalar arasında bir arama yapan bir giriş kabuğu kullanır.
Ne istediğim her yeni başlamak zsh sahip olmaktı tmux
ben koymak böylece pencerenin exec zsh
Sesimin altındaki ~/.profile
.