コマンドは、ディスクオペレーティングシステムのコマンドだけではありません。パスは、シェルがオペレーティングシステムコマンドやその他のコマンドを探すディレクトリのリストです。コマンドは短いプログラムファイルのようなものです。したがって、コマンドは実行可能ファイルです。コンピュータにインストールされている各アプリケーションには、実行可能ファイルが付属しています。アプリケーションを実行するために、実行可能ファイルが最初に使用されます。これらの実行可能ファイルは、コマンドとも呼ばれます。
PATH変数がない場合、各コマンドは、次のように絶対パスでコマンドされます。
/home/john/dir1/dir2/command.exe
ここで、最初の/はルートディレクトリです。 johnは、ユーザーJohnのユーザーディレクトリです。 dir1とdir2はサブディレクトリです。 command.exeは、実行可能ファイルの名前です。
実行可能ファイルには、他の多くの名前が使用できます。実際、ここではcommand.exeは象徴的です。したがって、ディレクトリ/ home / john / dir1 / dir2(ファイルなし)がPATH変数にある場合、ユーザーjohnはプロンプトでcommand.exeを実行します。[電子メールで保護]:〜$と入力するだけです。 command.exe、前のパスなし。あれは:
[メール保護]:〜$command.exe次にEnterキーを押します。
コンピュータ内のPATHディレクトリの現在のリストを表示するには、次のように入力します。
$捨てた $ PATHターミナルでEnterキーを押します。結果は次のようになります。
/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games:/ usr / local / games:/ snap / bin
ここでの問題は、ディレクトリ(およびその前のパス)をPATH変数にどのように追加するかということです。一部のインストールでは、ディレクトリが自動的に追加されます。他の人と一緒に、それは手動で追加されなければなりません。この記事では、ディレクトリを追加する2つの主な方法について説明します。配列に対して行われるように、ディレクトリは追加(含まれません)されません。 2つの主な方法は、一時的な追加と永続的な追加と呼ばれます。 Bashは、この記事のコード例に使用されているシェルです。
記事の内容
一時的な追加
一時的な追加とは、追加がメモリ内でのみ行われることを意味します。コンピュータの再起動時に使用するために保存されません。
BourneShellの組み込みエクスポートコマンド
簡単に言うと、exportコマンドは次のとおりです。
$書き出す [名前[=値]]この場合、メモリ内の変数に値を再割り当てします。
メモリ内のPATH変数には、すでに次のような値が含まれている可能性があります。
PATH = / usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games:/ usr / local / games:/ snap / bin
追加するディレクトリが/ home / john / dir1 / dir2であると想定します。 exportコマンドが次のように入力された場合、
$書き出す 道=/家/ジョン/dir1/dir2次に、/ home / john / dir1 / dir2は、PATH変数の値としてすでにメモリにあるすべてのものを置き換えます。
exportコマンドが次のように入力された場合、
$書き出す 道=$ PATH:/家/ジョン/dir1/dir2次に、/ home / john / dir1 / dir2は、すでに変数にあるものの最後に自分自身をアタッチします。したがって、新しい変数は次のようになります。
PATH = / usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games:/ usr / local / games:/ snap / bin:/ホーム/ジョン/ dir1 / dir2
上記のコードの前の行では、すでに存在する値の部分が、コロンで新しい部分と区切られていることに注意してください。これは「:」です。コード行の$ PATHは、すでにメモリにあるPATHの値で展開されます(置き換えられます)。
これで、同じコマンドを複数のディレクトリに配置できます。プロンプトで前のパスなしで実行可能コマンドを入力すると、シェルはメモリ内のPATH変数の値(文字列)を左から右に検索し始めます。したがって、上記のコード行を使用すると、検索で/ home / john / dir1 / dir2がついに到着します。誰が自分のディレクトリを最後に到着させたいですか? - 誰でもない。したがって、ディレクトリを含める(追加する)ためのより良い方法は次のとおりです。
$書き出す 道=/家/ジョン/dir1/dir2:$ PATH/ home / john / dir1 / dir2が先頭にあり、次のディレクトリからコロンで区切られています。したがって、[メール保護]のプロンプトが表示されます:〜$、
[メール保護]:〜$書き出す 道=/家/ジョン/dir1/dir2:$ PATH入力してEnterキーを押すと、ディレクトリdir2のコマンドcommand.exeが次のコマンドで実行されます。
[メール保護]:〜$command.exeコンピューターがシャットダウンされていない限り、ユーザーは前のパスを入力せずにcommand.exeを実行し続けます。
コンピュータがシャットダウンされると、ランダムアクセスメモリ内のすべてが消去されます。悪いニュースは、コンピュータのユーザーが、コンピュータを再起動するたびに、自分のディレクトリをPATH変数に追加するこのプロセスを繰り返さなければならないことです。今日は誰もそんなことをしたくありません。したがって、永続的な追加アプローチが推奨されるアプローチです。つまり、PATHへの追加を(ハードディスクに)保存する必要があります。
恒久的な追加
上記の説明から、アイデアは行われた変更を(ハードディスクに)保存することです。したがって、コンピュータが起動するたびにシェルが読み取るファイルに変更が保存されている場合は、それで問題ありません。つまり、コンピュータが起動するたびに、メモリ内のPATH変数が適切に更新されます。コンピュータが起動すると、起動時に特定のファイルが読み取られます。 Linux用のBashシェルが読み取るファイルの1つは、〜/ .bashrcです。ファイル名はです。 bashrc 、ドットで始まります。これはユーザーのディレクトリにあります。
Bashはたった1つのシェルであり、おそらく今日のLinuxで最も人気のあるシェルです。 Linux用のもう1つのシェルはZshです。 Zshの場合、対応するファイルは〜/です。 zshrc 、まだユーザーのディレクトリにあります。シェルが起動すると、起動時にこのファイルが読み取られます。 Bashの場合、ファイルは〜/ .bashrcです。したがって、上記の追加コードを〜/ .bashrcファイルに入力すると、コンピュータが起動するたびに〜/ .bashrcが常にPATHに含めるため、ディレクトリは常にメモリ内にあります。コンピュータがシャットダウンされるまで、メモリに残ります。
Bashでは、〜/ .bashrcは隠しファイルであるため、コマンドの通常の使用では、lsはそれを表示しません。 〜/ .bashrcには、いくつかのBash(シェル)コマンドが含まれています。 UbuntuはLinuxの変種です。 Ubuntuにはテキストエディタが付属しています。著者のコンピューターでは、Ubuntuテキストエディターの背景は黒です。
上記の追加コマンド(プロンプトなし)を〜/ .bashrcファイルに含める必要があります。利用可能なコンテンツに甘んじないように、ファイルの最後に追加することをお勧めします。これはおそらく問題なく機能しています。
Ubuntuで〜/ .bashrcを開くには、ターミナルのコマンドプロンプトで次のように入力し、Enterキーを押します。
$ナノ〜/.bashrcnanoはテキストエディタです。ここで、nanoはコマンド(実行可能)であり、その引数は〜/ .bashrcです。ファイルの内容をテキストエディタで開いて、ターミナルウィンドウをオーバーレイする必要があります。
〜/ .bashrcファイルは、おそらく背景が黒で、テキストエディタで開きます。左上隅でカーソルが点滅します。
カーソルがファイルの終わりに達するまで、キーボードの下矢印キーを押し続けます。の改行を追加します。
$書き出す 道=/家/ジョン/dir1/dir2:$ PATHそれだけではありません。 〜/ .bashrcファイルへの変更は保存されていません。変更を加えてファイルを保存するには、Ctrl + oを押し、表示されるその他の指示に従います。テキストエディタを終了するには、Ctrl + xを押すと、通常のターミナルウィンドウがテキストエディタウィンドウに置き換わります。その後、他のシェルコマンドを発行できます。
echo $ PATHが発行された場合、新しいディレクトリはディスプレイに表示されません。ここから続行するには、2つの方法があります。コンピュータを再起動するか、sourceコマンドを使用して〜/ .bashrcファイルの新しい内容をメモリに取得します。次のように、sourceコマンドを使用するのは簡単です。
$ソース〜/.bashrc再起動せずにsourceコマンドを発行すると、echo $ PATHは結果に追加された新しいディレクトリを表示します(表示)。目的のコマンドは、先行するパスなしで入力できます。
ノート: PATH値(リスト)の終わりと〜/ .bashrcファイルの終わりを混同しないでください。また、メモリ内のPATH内のディレクトリと、ハードディスク内のディレクトリ内の実行可能ファイルを混同しないでください。
結論
PATHは、Linuxシェルの組み込み変数です。 PATHの値は、コロンで区切られたディレクトリのリストです。これらの各ディレクトリのハードディスクには、コマンド(実行可能ファイル)があります。コマンドの前にパスを付けずに販売時にコマンドが発行された場合、シェルはこれらのディレクトリでコマンドを検索します。どのディレクトリにもコマンドが表示されない場合、コマンドは実行されません。この場合、コマンドを実行するには、コマンドの前にパスを付ける必要があります。コマンドは、PATH値の複数のディレクトリーに置くことができます。シェルは、コマンドを含む最初のディレクトリを見つけるとすぐに、コマンドを実行します。 PATH値は、実際にはコロンで区切られたディレクトリで構成される文字列です。
問題は、新しいアプリケーションの実行可能ファイルのディレクトリをPATHに追加する方法です。場合によっては、これは新しいアプリケーションのインストールプログラムによって自動的に行われます。それ以外の場合は、手動で行う必要があります。手動で行うには、一時的な追加と永続的な追加の2つの方法があります。 Temporary Additionは、exportコマンドを使用して、コンピューターの電源が入っているときにディレクトリを追加するだけです。 Permanent Additionは、将来の操作のために、エクスポートコマンドラインを〜/ .bashrc初期化ファイル(Bash)に保存する必要があります。