
Quando eu echo $PATH eu recebo isso: Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/platform-tools:/platform-tools
.
Quero remover alguns caminhos disso, mas quando abro o arquivo usando o comando vim /etc/paths
, obtenho os seguintes resultados:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
O arquivo /etc/paths é diferente da variável $PATH?
Responder1
/etc/paths
faz parte do que é usado para configurar $PATH
processos shell. Quando você abre uma nova janela do Terminal, ele inicia bash
, que executa vários scripts de inicialização: /etc/profile
AND ~/.bash_profile
OR (se não existir) ~/.bash_login
OR (se também não existir) ~/.profile
. Esses scripts configuram o ambiente shell, incluindo $PATH
.
Uma das coisas /etc/profile
que faz é run /usr/libexec/path_helper
, que lê /etc/paths
todos os arquivos /etc/paths.d
e adiciona seu conteúdo ao $PATH
. Mas este é apenas um ponto de partida; seu próprio script de inicialização (se existir) pode adicionar $PATH
, editar, substituir completamente, etc.
Parece-me que seu script de inicialização (e/ou coisas que ele executa) está adicionando uma série de entradas ao conjunto básico do qual ele obtém /etc/paths
. "Users/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:" é adicionado ao início de $PATH
(o que significa que esses diretórios serão pesquisados primeiro) e ":/Users/mac/Library/Android/sdk /platform-tools:/platform-tools" é adicionado no final. Se você quiser saber exatamente o que os está adicionando, você precisa dar uma olhada no seu script de inicialização.
A propósito, este processo de configuração $PATH
se aplica apenas aos shells de "login" do bash. Qualquer coisa executada por um shell bash herdará $PATH
dele, então provavelmente terá essencialmente a mesma coisa. Os shells bash sem login seguem um processo de configuração um pouco diferente. Outros shells e coisas que não foram iniciadas a partir de um shell (por exemplo, cron jobs) podem ter arquivos $PATHs
.
Responder2
Os primeiros lugares que procuraria para verificar se há modificações são,
~/.profile
~/.bashrc
~/.bash_profile
Se você estiver usando algo que não seja Bash, verifique os arquivos de configuração para ver qualquer menção ao PATH.