versão tl; dr: use ~/.zshrc
E leia a página do manual para entender as diferenças entre:
~/.zshrc
, ~/.zshenv
e ~/.zprofile
.
Em relação ao meu comentário
Em meu comentário anexado à resposta que kev deu , eu disse:
Isso parece estar incorreto - / etc / profile não está listado em nenhuma documentação zsh que posso encontrar.
Isso acabou sendo parcialmente incorreto: /etc/profile
pode ser fornecido por zsh
. No entanto , isso ocorre apenas se zsh
for "invocado como sh
ou ksh
"; nestes modos de compatibilidade:
Os scripts usuais de inicialização / desligamento zsh não são executados. Login shells source / etc / profile seguido por $ HOME / .profile. Se a variável de ambiente ENV for definida na chamada, $ ENV será originado após os scripts de perfil. O valor de ENV está sujeito à expansão de parâmetro, substituição de comando e expansão aritmética antes de ser interpretado como um nome de caminho. [ man zshall, "Compatibilidade" ].
O link do ArchWiki ZSH diz:
No login, o Zsh fornece os seguintes arquivos nesta ordem:
/ etc / profile
Este arquivo é fornecido por todos os shells compatíveis com Bourne no login
Este implys que /etc/profile
é sempre ler por zsh
no início da sessão - Eu não tenho nenhuma experiência com o projeto Arch Linux; o wiki pode ser correto para aquela distribuição, mas geralmente não é correto. As informações estão incorretas em comparação com as páginas de manual do zsh e não parecem se aplicar ao zsh no OS X (os caminhos $PATH
definidos em /etc/profile
não chegam às minhas sessões zsh).
Para resolver a questão:
onde exatamente devo colocar minhas adições de rvm, python, nó, etc. em meu $ PATH?
Geralmente, gostaria de exportar meu $PATH
partir ~/.zshrc
, mas vale a pena ter uma leitura do zshall página do homem, especificamente a seção "Inicialização / desligamento FILES" - ~/.zshrc
é lido para interativas conchas, que pode ou não atender às suas necessidades - se você quiser o $PATH
para cada zsh
shell invocado por você (ambos interactive
e não, ambos login
e não etc.), ~/.zshenv
é uma opção melhor.
Há um arquivo específico que devo usar (ou seja, .zshenv que não existe atualmente na minha instalação), um dos que estou usando atualmente, ou isso importa?
Há um monte de arquivos lidos na inicialização (verifique as man
páginas vinculadas ), e há uma razão para isso - cada arquivo tem seu lugar particular (configurações para cada usuário, configurações específicas do usuário, configurações para shells de login, configurações para cada shell, etc).
Não se preocupe por ~/.zshenv
não existir - se você precisar, faça e ele será lido.
.bashrc
e não.bash_profile
são lidos por , a menos que você explicitamente os origine de ou similar; a sintaxe entre e é não sempre compatíveis. Ambos e são projetados para configurações, não configurações.zsh
~/.zshrc
bash
zsh
.bashrc
.bash_profile
bash
zsh
.bashrc
e.bash_profile
não seja lido porzsh
eu atualmente ter meurvm
acréscimo$PATH
em.bashrc
e meupython
acréscimo em.bash_profile
, e ambos estão sendo adicionados muito bem. Em qualquer caso, vou mover todas as minhas$PATH
exportações para,~/.zshrc
pois todas as minhas outraszsh
configurações estão alojadas lá. Tenho que admitir, não estou muito familiarizado com os diferentes tipos de conchas. Lendo os links que você postou, suponho que uso um shell interativo, mas lerei mais para ter certeza ... Obrigado novamente!Aqui estão os documentos das páginas de manual do zsh na seção STARTUP / SHUTDOWN FILES.
A partir disso, podemos ver que a ordem de leitura dos arquivos é:
Você pode obter mais informações aqui .
fonte
Tive um problema semelhante (no comando bash terminal estava funcionando corretamente, mas zsh mostrou erro de comando não encontrado)
Solução:
basta colar o que você estava colando anteriormente em ~ / .bashrc em:
fonte