Como modificar as variáveis ​​de ambiente PATH no Catalina?

Como modificar as variáveis ​​de ambiente PATH no Catalina?

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 $PATHrecebi:

/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/pathsobtive:

/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 PATHvariável foi originalmente preenchida.

Você pode facilmente adicionar novos caminhos PATHno final ou no início e zshtambém tem uma maneira conveniente de remover duplicatas.

Você pode tornar a PATHvariável e o patharray 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 PATHvalor da variável será atualizado de acordo.

Você pode querer fazer isso em seu $ZDOTDIR/.zprofilearquivo, que é originado automaticamente por qualquer zshshell de login. Fazer isso em seu $ZDOTDIR/.zshenvarquivo seria desnecessário, pois esse arquivo é originado porqualquer tipode zshinvocação (e, portanto, deve ser mantido bem curto, se for necessário; acabei de definir ZDOTDIR=$HOME/.zshlá, por exemplo).

Observe que PATHjá é uma variável de ambiente, portanto exportá-la novamente não serve para nada.

Responder2

O arquivo /etc/zprofileusa /usr/libexec/path_helperpara definir o padrão PATHe não temos o código fonte dele.

O seguinte mostra como modificar o usuário PATH:

Crie/edite ~/.zprofilee 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:

  1. PATHCrie 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 .

  2. 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.

informação relacionada