Zshを使用していて、PATH
変数に新しいエントリ(/home/david/pear/bin
)を追加しようとしていますが、方法がわかりません。
私を最も混乱させているのは、~/.zshrc
ファイルにPATH
変数への単一の参照がないが、echo $PATH
を実行すると返されることです。
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
そのため、PATH
変数がどこかに設定されています。
ここに:
export PATH=/home/david/pear/bin:$PATH
実際、ZSHを使用すると、環境変数の特別なマッピングを使用できます。だからあなたは簡単に行うことができます:
# append
path+=('/home/david/pear/bin')
# or prepend
path=('/home/david/pear/bin' $path)
# export to sub-processes (make it inherited by child processes)
export PATH
私にとって、それは他の変数に伝播できる非常にきちんとした機能です。例:
typeset -T LD_LIBRARY_PATH ld_library_path :
最小限の方法でPATH
name__に追加できます。複数の要素を追加する場合を除き、括弧は必要ありません。また、通常は引用符を必要としません。だからを追加する簡単で短い方法は:
path+=/some/new/bin/dir
次に、新しいスクリプト/実行可能ファイルをテストするための一般的なパターンは次のようになります。
path+=$PWD/.
# or
path+=$PWD/bin
この小文字の構文は、path
name__を配列として使用していますが、大文字の同等のPATH
name__(typeset
name__を介して "バインド")にも影響します。
(no :
は必要ありません/セパレータとして必要です。)
path
name__をこのように(配列として)処理することは、rehash
name__を実行する必要はありません新しくパスされたコマンドを見つけることも意味します。
また、path
NAME__を編集する動的な方法としてのvared path
およびその他のものを見てください。
この質問ではpath
name__のみに興味があるかもしれませんが、エクスポートと配列について話しているので、配列は通常エクスポートできません。
PATH
name__が重複エントリを取るのを防ぐ( this および this を参照):
typeset -U path
~/.zshrc
ファイルを開かずに1つのライナー
echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc
または
echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc
効果を確認するには、同じタブでsource ~/.zshrc
を実行するか、新しいタブを開きます
オプション1:この行を〜/ .zshrcに追加します:
export "PATH=$HOME/pear/bin:$PATH"
その後、変更を有効にするためにsource ~/.zshrc
を実行する必要がありますORこのウィンドウを閉じて新しいウィンドウを開きます
オプション2:ターミナルコンソール内で実行し、現在のターミナルウィンドウセッションにのみこのパスを追加します。ウィンドウ/セッションを閉じると、失われます。
〜/ .zshrcへのパスを追加しました
Sudo vi ~/.zshrc
新しいパスを追加
export PATH="$PATH:[NEW_DIRECTORY]/bin"
〜/ .zshrcを更新
〜/ .zshrcを保存
source ~/.zshrc
パスを確認
echo $PATH