tl; wersja dr: użyj ~/.zshrc
I przeczytać stronę man , aby zrozumieć różnice pomiędzy:
~/.zshrc, ~/.zshenvi ~/.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 zshjest „wywołane jako shlub 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/profilejest zawsze odczytywane przez zshprzy 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 $PATHustawieniu /etc/profilenie 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ć $PATHz ~/.zshrc, ale warto o odczyt z zshall strony człowieka, zwłaszcza w sekcji „uruchamianie / zamykanie FILES” - ~/.zshrcto lektura obowiązkowa dla interaktywnych muszli, które mogą lub nie mogą własnych potrzeb - jeśli chcesz, aby $PATHna każda zshpowłoka wywołana przez Ciebie (zarówno interactivei nie, jak logini nie, itd.) ~/.zshenvjest 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 manstrony) 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 ~/.zshenvnie istnieje - jeśli tego potrzebujesz, zrób to, a zostanie przeczytane.
.bashrci 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~/.zshrcbashzsh.bashrc.bash_profilebashzsh
.bashrci.bash_profilenie są odczytywane przezzshjak ja obecnie mam mójrvmdodatek do$PATHw.bashrc, a mójpythondodatek w.bash_profile, i oba są dodawane dobrze. W każdym razie zamierzam przenieść wszystkie moje$PATHeksporty do,~/.zshrcponieważ cała moja innazshkonfiguracja 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ę!