Tmux başladığında veya yeni bir pencere açtığında, my .profileveya .bashrc. . ~/.bashrcHer 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 .profileveya .bashrc. . ~/.bashrcHer seferinde yazmaya başladım . Bunu otomatik olarak gerçekleştirmenin bir yolu var mı?
Yanıtlar:
Evet, .bash_profilesatırınızın sonuna şunu yazın :
. ~/.bashrc
Bu, normalde yalnızca profili işleyeceği durumlarda rc dosyasını otomatik olarak kaynaklar.
bashBelirli 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, ~/.bashrcbir 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-commandkabuk komutuVarsayılan, tmux'a
default-shellseç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_ENVGarip 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 tmuxBu başlıktan:
kullanmak .bash_profileiş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_profileyoksa bir dosya oluşturun~.bash_profileput source ~/.bashrcveyasource ~/.profileSorun ş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ı, tmuxwindows / sessions , ~/.profilebaş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ı tmuxben koymak böylece pencerenin exec zshSesimin altındaki ~/.profile.