web-dev-qa-db-ja.com

カタリナの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
2
Niing

your own self-answer で述べたように、PATH変数が元々どこに入力されているかを知る必要はありません。

PATHの末尾または先頭に新しいパスを簡単に追加できます。zshには、重複を削除する便利な方法もあります。

最初に、PATH変数と関連するpath配列を一意にすることができます。

typeset -U -g PATH path

その後、変数はこのコマンドによってstay一意になります。

いくつかのパスを追加するには:

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
Kusalananda

ファイル/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
1
Niing

次の手順は、システムごとのPATHを変更する方法を示しています。

  1. 命名規則:priority-appnameでファイルを作成します。次に、追加するパスをPATHに貼り付けます。例えば私の場合は「20200418-vscode」。

  2. そのファイルを/etc/paths.d/に移動します。ターミナルで新しいタブを開くことを忘れないでください/ターミナルを終了して再度開き、echo $PATHでパスが追加されていることを確認してください!

注意:このメソッドのみ追加PATHへのパス。

0
Niing