Jika Anda menggunakan Mac dan bertanya-tanya mengapa /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
terus ditambahkan ke PATH ketika Anda menjalankan tmux, itu karena sebuah utilitas bernama path_helper yang dijalankan dari /etc/profile
file Anda .
Anda tidak dapat dengan mudah membujuk tmux (atau lebih tepatnya, bash) untuk tidak sumber /etc/profile
(untuk beberapa alasan tmux selalu berjalan sebagai shell login, yang berarti / etc / profile akan dibaca), tetapi Anda dapat memastikan bahwa efek dari path_helper don bisa mengacaukan dengan PATH Anda.
Caranya adalah memastikan PATH kosong sebelum path_helper berjalan. Dalam ~/.bash_profile
file saya, saya punya ini:
if [ -f /etc/profile ]; then
PATH=""
source /etc/profile
fi
Mengosongkan PATH sebelum path_helper dijalankan akan mencegahnya dari prapeletakan PATH default ke PATH yang Anda pilih sebelumnya, dan akan memungkinkan sisa skrip pengaturan bash pribadi Anda (perintah lebih jauh ke bawah .bash_profile
, atau .bashrc
jika Anda berasal dari .bash_profile
) untuk mengatur Anda PATH sesuai.
Harapan itu masuk akal ...
if [ -n "$TMUX" ]
klausa sendiri, tetapi saya bertanya-tanya - seberapa pentingkah[ -f /etc/profile ]
sebenarnya? Bukankah aman untuk menganggap bahwa/etc/profile
itu selalu file biasa?