Tekrarlanabilir bir sorunum var:
- PATH'imi Bash .profile içinde kurdum
- tarafından tmux başlatmak
tmux
,tmux attach
ya 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 attach
ya 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/bin
tmux'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_profile
dosyamda 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_profile
veya .bashrc
kaynaklandıysa .bash_profile
) Buna göre PATH.
Umarım mantıklıdır ...
-f
ile -e
ama 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_profile
akıl sağlığımın tepesine geri koydum, mutlu tmux dünyama.
set -g default-command "${SHELL}"
içinde .tmux.conf
kuvvetler olmayan giriş kabukları kullanmak tmux. Zaten
Hayır; $PATH
birç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 ~/.profile
kaynaklı 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/profile
her zaman normal bir dosya olduğunu varsaymak güvenli değil mi?