tl; wersja dr: użyj ~/.zshrc
I przeczytać stronę man , aby zrozumieć różnice pomiędzy:
~/.zshrc
, ~/.zshenv
i ~/.zprofile
.
Odnośnie mojego komentarza
W komentarzu dołączonym do odpowiedzi, której udzielił Kev , powiedziałem:
Wygląda na to, że jest to nieprawidłowe - pliku / etc / profile nie ma w żadnej dokumentacji zsh, którą mogę znaleźć.
Okazuje się, że jest to częściowo błędne: /etc/profile
może pochodzić z zsh
. Jednak dzieje się tak tylko wtedy, gdy zsh
jest „wywołane jako sh
lub ksh
”; w tych trybach zgodności:
Zwykłe skrypty uruchamiania / zamykania zsh nie są wykonywane. Powłoki logowania source / etc / profile, a następnie $ HOME / .profile. Jeśli zmienna środowiskowa ENV jest ustawiona przy wywołaniu, kod $ ENV jest pobierany po skryptach profilu. Wartość ENV podlega interpretacji parametrów, podstawianiu poleceń i interpretacji wyrażeń arytmetycznych, zanim zostanie zinterpretowana jako nazwa ścieżki. [ man zshall, "Compatibility" ].
Link ArchWiki ZSH mówi:
Podczas logowania Zsh pobiera następujące pliki w następującej kolejności:
/ etc / profile
Ten plik jest pobierany przez wszystkie powłoki kompatybilne z Bourne po zalogowaniu
Ten implys że /etc/profile
jest zawsze odczytywane przez zsh
przy logowaniu - Nie mam żadnego doświadczenia z projektu Arch Linux; wiki może być poprawne dla tej dystrybucji, ale generalnie nie jest poprawne. Informacje są niepoprawne w porównaniu ze stronami podręcznika zsh i wydają się nie mieć zastosowania do zsh w systemie OS X (ścieżki w $PATH
ustawieniu /etc/profile
nie prowadzą do moich sesji zsh).
Aby odpowiedzieć na pytanie:
gdzie dokładnie powinienem umieścić moje dodatki rvm, python, node itp. w mojej $ PATH?
Generalnie chciałbym wyeksportować $PATH
z ~/.zshrc
, ale warto o odczyt z zshall strony człowieka, zwłaszcza w sekcji „uruchamianie / zamykanie FILES” - ~/.zshrc
to lektura obowiązkowa dla interaktywnych muszli, które mogą lub nie mogą własnych potrzeb - jeśli chcesz, aby $PATH
na każda zsh
powłoka wywołana przez Ciebie (zarówno interactive
i nie, jak login
i nie, itd.) ~/.zshenv
jest lepszym rozwiązaniem.
Czy istnieje konkretny plik, którego powinienem używać (np. .Zshenv, którego obecnie nie ma w mojej instalacji), jeden z tych, których obecnie używam, czy w ogóle ma to znaczenie?
Jest kilka plików odczytywanych podczas uruchamiania (sprawdź powiązane man
strony) i jest ku temu powód - każdy plik ma swoje określone miejsce (ustawienia dla każdego użytkownika, ustawienia dla użytkownika, ustawienia powłok logowania, ustawienia dla każdej powłoki, itp).
Nie martw się, że ~/.zshenv
nie istnieje - jeśli tego potrzebujesz, zrób to, a zostanie przeczytane.
.bashrc
i nie.bash_profile
są czytane przez użytkownika , chyba że wyraźnie je pozyskujesz z lub w podobny sposób; składnia pomiędzy i to nie zawsze zgodne. Obie i są przeznaczone do ustawień, a nie ustawień.zsh
~/.zshrc
bash
zsh
.bashrc
.bash_profile
bash
zsh
.bashrc
i.bash_profile
nie są odczytywane przezzsh
jak ja obecnie mam mójrvm
dodatek do$PATH
w.bashrc
, a mójpython
dodatek w.bash_profile
, i oba są dodawane dobrze. W każdym razie zamierzam przenieść wszystkie moje$PATH
eksporty do,~/.zshrc
ponieważ cała moja innazsh
konfiguracja jest tam przechowywana. Muszę przyznać, że nie jestem zbyt zaznajomiony z różnymi typami muszli. Po przeczytaniu linków, które zamieściłeś, domyślam się, że używam interaktywnej powłoki, ale dla pewności przeczytam dalej ... Jeszcze raz dziękuję!Oto dokumentacja ze stron man zsh w sekcji STARTUP / SHUTDOWN FILES.
Z tego widać, że odczytywane są pliki zamówień:
Więcej informacji znajdziesz tutaj .
źródło
Miałem podobny problem (w poleceniu terminalu bash działało poprawnie, ale zsh pokazał błąd nie znaleziono polecenia)
Rozwiązanie:
po prostu wklej to, co wcześniej wklejałeś w ~ / .bashrc do:
źródło