web-dev-qa-db-ja.com

Linuxでのこの$ PATHとは何か、およびそれを変更する方法

Linuxのこの$ PATHについていくつか質問があります。

実行可能ファイルを検索するディレクトリをシェルに指示するので、次のようにします。

  1. 環境変数とはどういう意味ですか?
  2. そのパスを変更するには?それを変更することをお勧めしますか?
  3. 変更するとどうなりますか?
10

現在のパス$PATH変数を取得するには、次のように入力します。

echo $PATH 

バイナリを探す場所をシェルに伝えます。

はい、変更できます。たとえば、カスタムスクリプトを使用して$PATHフォルダに追加します。

そのため、スクリプトが/usr/local/myscriptsにある場合、それらを実行するには、スクリプトへのフルパスを入力する必要があります:/usr/local/myscripts/myscript.sh$PATH変数を変更したら、myscript.shスクリプトを実行します。

RHELの$PATHの例を次に示します。

/ usr/kerberos/bin:/ usr/local/bin:/ bin:/ usr/bin:/ home/user/bin

$PATHを変更するには、ユーザーの~/.profile(または~/.bash_profile)または$PATHのグローバル/etc/profile設定を編集する必要があります。

$PATH変数が不正確になると、シェルは完全な$PATHがないとプログラムを見つけて実行できなくなります。

12
Chris

第一に、あなたは$ PATHが何をするかというあなたの声明で正しいです。 (3つ目のポイントに従って)どうにかしてそれを壊した場合、ターミナルから/ usr/binでプログラムを実行したい場合は、手動で/ usr/bin/xyzを入力する必要があります。個々のプログラムの動作方法によっては、lsまたは何かを実行できることを期待しているため、他のプログラムを呼び出す一部のプログラムが壊れる可能性があります。

したがって、$ PATHをいじる場合は、まずどこかに保存することをお勧めします。コマンドライン命令を使用する

echo $PATH > someRandomFile.txt

someRandomFile.txtに保存する

$ PATHは、exportコマンドを使用して変更できます。そう

export PATH=someNewPath

ただし、これは$ PATHをsomeNewPathに完全に置き換えます。パス内のアイテムは「:」で区切られているため、次のコマンドを実行すると、アイテムを追加できます(削除しないことをお勧めします。上記を参照)。

export PATH=$PATH:newPath

環境変数であるという事実は、プログラムがその値を見つけることができることを意味します。つまり、プログラムが実行されている環境について設定されるものです。他の環境変数には、現在のディレクトリや現在のプロキシのアドレスなどが含まれます。

9
rspencer

これは簡単で、私はこのようにしています。

Linux bashシェルを開き、環境変数を出力します。

printenv

PATH」変数をテキストエディターにコピーし、必要に応じて編集します。次に、PATHを次のように更新します

export PATH= /variable dir list/

できます。

または、単一の変数を追加する場合は、このコマンドを使用します。

export PATH = $PATH:/variable_dir_path/

これにより、PATHが新しいディレクトリパスで拡張されます。