web-dev-qa-db-ja.com

ZSHのPATH変数に新しいエントリを追加する

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変数がどこかに設定されています。

107
David Barreto

ここに:

export PATH=/home/david/pear/bin:$PATH
132
Linuxios

実際、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 :
110
ony

最小限の方法でPATHname__に追加できます。複数の要素を追加する場合を除き、括弧は必要ありません。また、通常は引用符を必要としません。だからを追加する簡単で短い方法は:

path+=/some/new/bin/dir

一般的な使用法

次に、新しいスクリプト/実行可能ファイルをテストするための一般的なパターンは次のようになります。

path+=$PWD/.
# or
path+=$PWD/bin

この小文字の構文は、pathname__を配列として使用していますが、大文字の同等のPATHname__(typesetname__を介して "バインド")にも影響します。

no :は必要ありません/セパレータとして必要です。)

関連情報

pathname__をこのように(配列として)処理することは、rehashname__を実行する必要はありません新しくパスされたコマンドを見つけることも意味します。

また、pathNAME__を編集する動的な方法としてのvared pathおよびその他のものを見てください。

この質問ではpathname__のみに興味があるかもしれませんが、エクスポートと配列について話しているので、配列は通常エクスポートできません。

PATHname__が重複エントリを取るのを防ぐthis および this を参照):

typeset -U path
18
Micah Elliott

~/.zshrcファイルを開かずに1つのライナー

echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc

または

echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc

効果を確認するには、同じタブでsource ~/.zshrcを実行するか、新しいタブを開きます

15
Siva Praveen

オプション1:この行を〜/ .zshrcに追加します:

export "PATH=$HOME/pear/bin:$PATH"

その後、変更を有効にするためにsource ~/.zshrcを実行する必要がありますORこのウィンドウを閉じて新しいウィンドウを開きます

オプション2:ターミナルコンソール内で実行し、現在のターミナルウィンドウセッションにのみこのパスを追加します。ウィンドウ/セッションを閉じると、失われます。

5
Dimitar
  1. 〜/ .zshrcへのパスを追加しました

    Sudo vi ~/.zshrc

    新しいパスを追加

    export PATH="$PATH:[NEW_DIRECTORY]/bin"
    
  2. 〜/ .zshrcを更新

    〜/ .zshrcを保存

    source ~/.zshrc

  3. パスを確認

    echo $PATH

2
saneryee