tl; versione dr: usa ~/.zshrc
E leggi la pagina man per capire le differenze tra:
~/.zshrc
, ~/.zshenv
e ~/.zprofile
.
Per quanto riguarda il mio commento
Nel mio commento allegato alla risposta data da kev , ho detto:
Questo sembra non essere corretto - / etc / profile non è elencato in nessuna documentazione zsh che riesco a trovare.
Questo risulta essere parzialmente errato: /etc/profile
potrebbe essere fornito da zsh
. Tuttavia , ciò si verifica solo se zsh
è "invocato come sh
o ksh
"; in queste modalità di compatibilità:
I soliti script di avvio / arresto di zsh non vengono eseguiti. Shell di login sorgente / etc / profile seguito da $ HOME / .profile. Se la variabile di ambiente ENV è impostata al richiamo, $ ENV viene originato dopo gli script del profilo. Il valore di ENV è soggetto all'espansione dei parametri, alla sostituzione dei comandi e all'espansione aritmetica prima di essere interpretato come un percorso. [ man zshall, "Compatibility" ].
Il collegamento ArchWiki ZSH dice:
All'accesso, Zsh genera i seguenti file in questo ordine:
/ etc / profile
Questo file viene fornito da tutte le shell compatibili con Bourne al momento dell'accesso
Questo implys che /etc/profile
è sempre leggere dal zsh
momento del login - io non ho alcuna esperienza con il progetto Arch Linux; il wiki potrebbe essere corretto per quella distribuzione, ma generalmente non lo è . Le informazioni non sono corrette rispetto alle pagine di manuale di zsh e non sembrano applicarsi a zsh su OS X (i percorsi $PATH
impostati in /etc/profile
non arrivano alle mie sessioni zsh).
Per rispondere alla domanda:
dove esattamente dovrei posizionare le mie aggiunte rvm, python, node ecc al mio $ PATH?
In generale, vorrei esportare il mio $PATH
da ~/.zshrc
, ma vale la pena di avere una lettura della zshall pagina man, in particolare la sezione "avvio / arresto FILES" - ~/.zshrc
si legge per interattive conchiglie, che può o non può soddisfare le vostre esigenze - se si desidera che il $PATH
per ogni zsh
shell invocata da te (sia interactive
e non, sia login
e non, ecc.), quindi ~/.zshenv
è un'opzione migliore.
C'è un file specifico che dovrei usare (ad es. .Zshenv che attualmente non esiste nella mia installazione), uno di quelli che sto utilizzando attualmente, o ha importanza?
Ci sono un sacco di file letti all'avvio (controlla le man
pagine collegate ), e c'è una ragione per questo: ogni file ha la sua posizione particolare (impostazioni per ogni utente, impostazioni per utente specifico, impostazioni per shell di accesso, impostazioni per ogni shell, eccetera).
Non preoccuparti di ~/.zshenv
non esistere: se ne hai bisogno, fallo e verrà letto.
.bashrc
e non.bash_profile
vengono letti da , a meno che tu non li trovi esplicitamente da fonti o simili; la sintassi tra e non è sempre compatibile. Entrambi e sono progettati per le impostazioni, non per le impostazioni.zsh
~/.zshrc
bash
zsh
.bashrc
.bash_profile
bash
zsh
.bashrc
e.bash_profile
non sia letto dazsh
come attualmente ho la miarvm
aggiunta a$PATH
in.bashrc
e la miapython
aggiunta in.bash_profile
, ed entrambe vengono aggiunte bene. In ogni caso, sposterò tutte le mie$PATH
esportazioni in~/.zshrc
quanto tutta la mia altrazsh
configurazione è ospitata lì. Devo ammetterlo, non ho molta familiarità con i diversi tipi di conchiglie. Dalla lettura dei link che hai postato, immagino di utilizzare una shell interattiva, ma leggerò oltre per esserne sicuro ... Grazie ancora!