Как изменить переменные среды PATH в Catalina?

Как изменить переменные среды PATH в Catalina?

Некоторое приложение просит меня добавить что-то в переменные среды PATH. Я знаю, что один из способов сделать это — создать файл по адресу ~/.zshrc, но я хотел бы знать, где находится файл, в котором PATH=...хранится переменная?

Когда я набрал текст, echo $PATHя получил:

/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

Из файла, /etc/pathsкоторый я получил:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

Так какой же файл добавил дополнительные пути?


Ответ на комментарий:

Я получил: (простите, что я изменил свое имя пользователя на 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

решение1

Как вы сказали вваш собственный ответ, вам не нужно знать, где PATHизначально заполнена переменная.

Вы можете легко добавлять новые пути в PATHконец или начало, а zshтакже имеете удобный способ удаления дубликатов.

Сначала вы можете сделать PATHпеременную и связанный с ней pathмассив уникальными, используя

typeset -U -g PATH path

Переменные тогда будутоставатьсяуникальный благодаря этой команде.

Чтобы добавить несколько путей:

path=( /new/path1 /new/path2 $path )

Чтобы добавить несколько путей:

path=( $path /new/path1 /new/path2 )

или,

path+=( /new/path1 /new/path2 )

Значение переменной PATHбудет обновлено соответствующим образом.

Вы можете захотеть сделать это в вашем $ZDOTDIR/.zprofileфайле, который автоматически генерируется любой zshоболочкой входа. Делать это в вашем $ZDOTDIR/.zshenvфайле было бы ненужно, так как этот файл генерируетсялюбой типпризыва zsh(и поэтому его следует делать очень коротким, если это вообще необходимо; я, ZDOTDIR=$HOME/.zshнапример, просто вставил туда).

Обратите внимание, что PATHэто уже переменная среды, поэтому ее повторный экспорт не имеет смысла.

решение2

Файл /etc/zprofileиспользуется /usr/libexec/path_helperдля установки значений по умолчанию PATH, и у нас нет его исходного кода.

Ниже показано, как изменить данные для пользователя PATH:

Создайте/отредактируйте ~/.zprofileи добавьте следующий контент:

# 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

решение3

Следующие шаги покажут вам, как изменить систему PATH:

  1. PATHСоздайте файл с соглашением об именовании: priority-appname (например, «20200418-vscode», я просто использую дату, чтобы сделать приоритет уникальным). Затем сохраните в нем путь, который вы хотите добавить .

  2. Переместите этот файл в /etc/paths.d/, готово.

Примечание1:Не забудьте создать новый сеанс терминала, чтобы увидеть изменения в echo $PATH.

Примечание 2: только этот методдобавляетВаш путь к PATH.

Связанный контент