
一部のアプリケーションでは、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_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
。
命名規則に従ってファイルを作成します: priority-appname(例: '20200418-vscode'、優先度を一意にするために日付を使用します) 次に、追加するパスを
PATH
そのファイルに保存します。そのファイルを に移動すれば
/etc/paths.d/
完了です。
お知らせ1:変更を確認するには、必ず新しいターミナル セッションを作成してくださいecho $PATH
。
注意2: この方法のみ追加するへのあなたの道PATH
。