Mam powtarzalny problem:
- skonfiguruj moją ŚCIEŻKĘ w Bash .profile
- rozpocząć tmux przez
tmux,tmux attachlub dowolnego wariantu - echo $ PATH i zobacz to z tymi samymi komponentami, ale w innej kolejności
Jak to zatrzymać? Co to wyjaśnia?
Mam powtarzalny problem:
tmux, tmux attachlub dowolnego wariantuJak to zatrzymać? Co to wyjaśnia?
Odpowiedzi:
Jeśli korzystasz z komputera Mac i zastanawiasz się, dlaczego /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/binciągle uruchamiasz PATH po uruchomieniu tmux, dzieje się tak z powodu narzędzia o nazwie ścieżka_pomoc, które jest uruchamiane z Twojego /etc/profilepliku.
Nie możesz łatwo przekonać tmuxa (a raczej basha) do braku źródła /etc/profile(z jakiegoś powodu tmux zawsze działa jako powłoka logowania, co oznacza, że / etc / profil zostanie odczytany), ale możesz się upewnić, że efekty path_helper don wkręć swoją ŚCIEŻKĘ.
Sztuczka polega na upewnieniu się, że ŚCIEŻKA jest pusta przed uruchomieniem path_helper. W moim ~/.bash_profilepliku mam to:
if [ -f /etc/profile ]; then
PATH=""
source /etc/profile
fi
Wyczyszczenie ŚCIEŻKI przed wykonaniem path_helper zapobiegnie przygotowaniu domyślnej ŚCIEŻKI do (poprzednio) ŚCIEŻKI i pozwoli pozostałym osobistym skryptom instalacyjnym bash (polecenia znajdujące się niżej .bash_profilelub w .bashrcprzypadku, gdy je pozyskałeś .bash_profile) na skonfigurowanie twojego ŚCIEŻKA odpowiednio.
Mam nadzieję, że to ma sens ...
-fz -e, ale nie osobiście spróbować źródło pliku ze skryptu, który pobiera prowadzonym kiedy się zalogować, chyba bym sprawdził to było. Jednak często używam skryptu bash na wielu różnych komputerach (i systemach operacyjnych), więc chcę się upewnić, że są one kuloodporne. Mogę sobie wyobrazić, że niektóre inne warianty unix mogą to nazwać czymś innym.
~/.bash_profilekrótkiego fragmentu na szczycie mojego zdrowia psychicznego przywróciło mój szczęśliwy świat tmux.
set -g default-command "${SHELL}"w .tmux.confsiłach tmux używać pocisków bez logowania. I tak nie widzę sensu, ponieważ zwykle otwierasz tmux po zalogowaniu się.
Nie; sortowanie $PATHbyłoby zbyt szaloną rzeczą, ponieważ wiele systemów zależy od kolejności ustawionej przez użytkownika.
Jednak tmux ma uruchomić powłokę w trybie „login”, powodując ~/.profilebyć pozyskiwane ponownie . Oznacza to, że jeśli masz coś takiego PATH=/my/dir:/another/dir:$PATHw tym pliku, zostanie to zrobione ponownie , co spowoduje dodanie $ PATH /my/dir:/another/dir:/my/dir:/another/dir:(etc.). Aby tego uniknąć, możesz użyć innej zmiennej do sprawdzenia:
if [ "$_SKIP_PROFILE" ]; then
return 0
else
export _SKIP_PROFILE=y
fi
export PATH="/my/dir:/another/dir:$PATH"
if [ -n "$TMUX" ]klauzulą, ale zastanawiałem się - jak ważne jest to[ -f /etc/profile ]naprawdę? Czy nie jest bezpiecznie zakładać, że/etc/profilezawsze jest to zwykły plik?