Tekrarlanabilir bir sorunum var:
- PATH'imi Bash .profile içinde kurdum
- tarafından tmux başlatmak
tmux,tmux attachya da herhangi bir varyantı - echo $ PATH ve aynı bileşenlerle ama farklı sırada görün
Bunu nasıl durdurabilirim? Ne açıklıyor?
Tekrarlanabilir bir sorunum var:
tmux, tmux attachya da herhangi bir varyantıBunu nasıl durdurabilirim? Ne açıklıyor?
Yanıtlar:
Bir Mac kullanıyorsanız ve /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bintmux'u çalıştırdığınızda neden PATH'a başlanmaya devam ettiğini merak ediyorsanız , bunun nedeni dosyadan çalıştırılan path_helper adlı bir yardımcı programdır /etc/profile.
Tmux'u (veya daha doğrusu bash) kaynağa yönlendirmemeye kolayca ikna edemezsiniz /etc/profile(bir nedenle tmux her zaman bir giriş kabuğu olarak çalışır, bu da / etc / profile okunacak anlamına gelir), ancak path_helper don'un etkilerinden emin olabilirsiniz. PATH ile vidalamayın.
İşin püf noktası, path_helper çalışmadan önce PATH'ın boş olduğundan emin olmaktır. Benim ~/.bash_profiledosyamda bu var:
if [ -f /etc/profile ]; then
PATH=""
source /etc/profile
fi
Path_helper yürütülmeden önce PATH'ın temizlenmesi, varsayılan PATH'yi (önceden) seçtiğiniz PATH'ınıza eklemesini önleyecek ve kişisel bash kurulum komut dosyalarınızın geri kalanının (komutların daha aşağıya .bash_profileveya .bashrckaynaklandıysa .bash_profile) Buna göre PATH.
Umarım mantıklıdır ...
-file -eama giriş yaptığınızda Orada olduğunu kontrol etmezseniz ben şahsen koþulur bir komut dosyasından bir dosya deneyin ve kaynak olmaz. Bash komut dosyamı birçok farklı makinede (ve işletim sisteminde) yeniden kullanma eğilimindeyim, bu yüzden kurşun geçirmez olduklarından emin olmak istiyorum. Diğer bazı unix varyantlarının buna başka bir şey diyebileceğini hayal edebiliyorum.
~/.bash_profileakıl sağlığımın tepesine geri koydum, mutlu tmux dünyama.
set -g default-command "${SHELL}"içinde .tmux.confkuvvetler olmayan giriş kabukları kullanmak tmux. Zaten
Hayır; $PATHbirçok sistem kullanıcı tarafından ayarlanan sıraya bağlı olduğundan, sıralama yapmak çok çılgınca bir şey olacaktır.
Ancak, tmux yok neden "login" modunda kabuk başlatmak ~/.profilekaynaklı olması tekrar . Bu PATH=/my/dir:/another/dir:$PATH, o dosyadaki gibi bir şeye sahipseniz , bunun tekrar yapılacağı ve $ PATH içerdiği anlamına gelir /my/dir:/another/dir:/my/dir:/another/dir:(etc.). Bundan kaçınmak için kontrol etmek için başka bir değişken kullanabilirsiniz:
if [ "$_SKIP_PROFILE" ]; then
return 0
else
export _SKIP_PROFILE=y
fi
export PATH="/my/dir:/another/dir:$PATH"
if [ -n "$TMUX" ]Kendimi bir cümlenin arkasına gizledim, ama merak ediyordum -[ -f /etc/profile ]gerçekten ne kadar önemli ? Bunun/etc/profileher zaman normal bir dosya olduğunu varsaymak güvenli değil mi?