
Algum aplicativo me diz para adicionar algo nas variáveis de ambiente PATH, sei que uma maneira de fazer isso é criando um arquivo em ~/.zshrc
, mas gostaria de saber onde está o arquivo que a variável PATH=...
está armazenada?
Quando digitei echo $PATH
recebi:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin
Do arquivo que /etc/paths
obtive:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
Então, qual arquivo anexou os caminhos adicionais?
Resposta ao comentário:
Eu recebi: (perdoe-me por ter mudado meu nome de usuário para alice
)
grep: /Users/alice/.profile: No such file or directory
grep: /etc/environment: No such file or directory
grep: /etc/zsh/zprofile: No such file or directory
grep: /Users/alice/.zshrc: No such file or directory
grep: /Users/alice/.profile: No such file or directory
Responder1
Como você disse emsua própria auto-resposta, você não precisa saber onde a PATH
variável foi originalmente preenchida.
Você pode facilmente adicionar novos caminhos PATH
no final ou no início e zsh
também tem uma maneira conveniente de remover duplicatas.
Você pode tornar a PATH
variável e o path
array associado únicos primeiro, usando
typeset -U -g PATH path
As variáveis serão entãoficarúnico em virtude deste comando.
Para preceder alguns caminhos:
path=( /new/path1 /new/path2 $path )
Para anexar alguns caminhos:
path=( $path /new/path1 /new/path2 )
ou,
path+=( /new/path1 /new/path2 )
O PATH
valor da variável será atualizado de acordo.
Você pode querer fazer isso em seu $ZDOTDIR/.zprofile
arquivo, que é originado automaticamente por qualquer zsh
shell de login. Fazer isso em seu $ZDOTDIR/.zshenv
arquivo seria desnecessário, pois esse arquivo é originado porqualquer tipode zsh
invocação (e, portanto, deve ser mantido bem curto, se for necessário; acabei de definir ZDOTDIR=$HOME/.zsh
lá, por exemplo).
Observe que PATH
já é uma variável de ambiente, portanto exportá-la novamente não serve para nada.
Responder2
O arquivo /etc/zprofile
usa /usr/libexec/path_helper
para definir o padrão PATH
e não temos o código fonte dele.
O seguinte mostra como modificar o usuário PATH
:
Crie/edite ~/.zprofile
e adicione o seguinte conteúdo:
# append to PATH
export PATH="$PATH:.../to/target/bin"
# prepend to PATH
export PATH=".../to/target/bin:$PATH"
# remove duplicate in PATH
typeset -U PATH
Responder3
As etapas a seguir mostram como modificar o sistema PATH
:
PATH
Crie um arquivo com a convenção de nomenclatura: prioridade-appname (por exemplo, '20200418-vscode', apenas uso data para tornar a prioridade única) Em seguida, armazene nele o caminho que deseja adicionar .Mova esse arquivo para
/etc/paths.d/
, pronto.
Aviso1:Lembre-se de criar uma nova sessão de terminal para ver a alteração no arquivo echo $PATH
.
Aviso2: apenas este métodoacrescentaseu caminho para PATH
.