目次:
コマンドラインでコマンドを入力すると、基本的には、指定された名前で実行可能ファイルを実行するようシェルに指示します。 Linuxでは、
ls
、
find
、
file
などのこれらの実行可能プログラムは、通常、システム上のいくつかの異なるディレクトリ内に存在します。 これらのディレクトリに格納された実行可能権限を持つファイルは、任意の場所から実行できます。 実行可能プログラムを保持する最も一般的なディレクトリは、
/bin
、
/sbin
、
/usr/sbin
、
/usr/local/bin
および
/usr/local/sbin
です。
しかし、シェルはどのようにして実行可能プログラムを検索するのか、シェルはファイルシステム全体を検索するのか、どのように知っていますか?
答えは簡単です。 コマンドを入力すると、シェルは、ユーザーの
$PATH
変数で指定されたすべてのディレクトリを検索して、その名前の実行可能ファイルを探します。
この記事では、Linuxシステムで
$PATH
にディレクトリを追加する方法を示します。
Linuxの
$PATH
とは
$PATH
環境変数は、実行可能ファイルを検索するディレクトリをシェルに指示するディレクトリのコロン区切りリストです。
$PATH
に含まれるディレクトリを確認するには、
printenv
または
echo
コマンドを使用できます。
echo $PATH
出力は次のようになります。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$PATH
ディレクトリを追加する
$PATH
変数に他のディレクトリを追加したい場合があります。 たとえば、一部のプログラムは別の場所にインストールされている場合や、個人用スクリプト専用のディレクトリが必要な場合がありますが、実行可能ファイルへの絶対パスを指定せずに実行できます。 これを行うには、ディレクトリを
$PATH
に追加するだけです。
シェルスクリプトを保持するホームディレクトリに
bin
というディレクトリがあるとします。 ディレクトリを
$PATH
追加するには、次を入力します。
export PATH="$HOME/bin:$PATH"
export
コマンドは、変更された変数をシェルの子プロセス環境にエクスポートします。
実行可能ファイルのフルパスを指定せずに、実行可能スクリプト名を入力するだけでスクリプトを実行できるようになりました。
ただし、この変更は一時的なものであり、現在のシェルセッションでのみ有効です。
変更を永続的にするには、シェル構成ファイルで
$PATH
変数を定義する必要があります。 ほとんどのLinuxディストリビューションでは、新しいセッションを開始すると、次のファイルから環境変数が読み取られます。
-
/etc/environment
や/etc/profile
グローバルシェル固有の構成ファイル。 新しいディレクトリをすべてのシステムユーザー$PATH
追加する場合は、このファイルを使用します。ユーザーごとのシェル固有の構成ファイル。 たとえば、Bashを使用している場合、
~/.bashrc
ファイルで$PATH
変数を設定できます~/.zshrc
を使用している場合、ファイル名は~/.zshrc
です。
この例では、
~/.bashrc
ファイルに変数を設定します。 テキストエディターでファイルを開き、最後に次の行を追加します。
nano ~/.bashrc
〜/.bashrc
export PATH="$HOME/bin:$PATH"
ファイルを保存し、
source
コマンドを使用して現在のシェルセッションに新しい
$PATH
をロードします。
source ~/.bashrc
ディレクトリが正常に追加されたことを確認するには、次を入力して
$PATH
値を出力します。
結論
ユーザーまたはグローバル
$PATH
変数に新しいディレクトリを追加するのは非常に簡単です。 これにより、非標準の場所に保存されているコマンドとスクリプトを実行可能ファイルへのフルパスを入力することなく実行できます。
Ubuntu、CentOS、RHEL、Debian、Linux Mintなど、すべてのLinuxディストリビューションに同じ手順が適用されます。
ご質問がある場合は、コメントをお気軽にお寄せください。
ターミナル