CatalinaでPATH環境変数を変更するには?

CatalinaでPATH環境変数を変更するには?

一部のアプリケーションでは、PATH環境変数に何かを追加するように指示します。 1つの方法はファイルを生成することですが、変数が保存されているファイルがどこにあるかを~/.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_helperPATH

ユーザーの状況に応じて変更する方法は次のとおりです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. 命名規則に従ってファイルを生成します。Priority-appname(例: '20200418-vscode'、優先順位を一意にするために日付を使用しました)。次に、追加したいパスを保存しますPATH

  2. ファイルを/etc/paths.d/完了に移動します。

注1:を表示するには、新しい端末セッションを作成する必要がありますecho $PATH

注2:この方法のみ追加あなたの道PATH

関連情報