PATHにさらにディレクトリを追加する方法

PATHにさらにディレクトリを追加する方法

さて、まず私はLinuxに初めて触れ、Linux Mintを使っています。

私(特に私のホームディレクトリ)にさらにディレクトリを追加するには、PATH同様のBashコマンドが必要であることを学びましたPATH=$PATH:~。そうですか?

$PATH問題はなぜそれをそこに入れなければならないのですか。システムパスを意味します。そうですか?ただ入力すると機能しますかPATH=~?私は、私のホームディレクトリを既存のディレクトリに追加したいという意味ですPATH

ベストアンサー1

Unixでは、環境変数などの一部の環境変数は、個々の項目ではなく$PATH項目のリストであるという点で特別です。このタイプのリストでは、コロン(:)でリスト内の項目を区切ります。

$PATHただ印刷すると次のように見えるからです。

$ printenv PATH
/sbin:/bin:/usr/sbin:/usr/bin

追加アイテムを追加するには、新しいアイテムだけでなく古いリストも含める必要があります。あなたがそう言うとき、それは実際にあなたがやっていることですPATH=$PATH:<new item>

$ PATH=$PATH:/path/to/some/dir
$ printenv PATH
/sbin:/bin:/usr/sbin:/usr/bin:/path/to/some/dir

これらの変更は実行されるシェルにのみ適用されることに注意してください。再起動後も変更を保持したりシェルの他のインスタンスに表示したりするには、その$PATH変更がデフォルト値の一部になるように構成ファイルに追加する必要があります。

通常、ユーザーはこれらのファイルを使用して次のことを行います~/.bashrc~/.bash_profile

export PATH=$PATH:$HOME/bin:$HOME/somedir

このような行を追加すると$PATH

代替$PATH使用

実行可能ファイルにないスクリプトと実行可能ファイルを実行したい場合$PATH$PATH

以下はシナリオです。次の実行可能ファイルがあるとします。

$ ls -l helloexec.bash
-rwxr-xr-x 1 user1 user1 31 Aug 12 07:45 helloexec.bash

しかし、そこにない$PATHので実行できません。

$ helloexec.bash
bash: helloexec.bash: command not found...

$PATHだからあなたは「ああ、これを実行するには私のアイテムに追加する必要がある」と思います。ただし、次のように現在のディレクトリから実行可能ファイルを実行できます。

$ ./helloexec.bash
hello bash

Unix型オペレーティングシステムでは、スクリプトと実行可能ファイルの両方$PATH

リスクが追加されました$PATH

あなたの例では、あなたはこれを~あなたの$PATH$PATH

これは一般的に良いアプローチではありません。代わりに、Linux / Unixで実行可能ファイルを保存する場所を慎重に検討し、目立つ場所(たとえば$PATH

ほとんどの人は通常、システムディレクトリを追加してから1つを追加して$HOME/binその$PATHままにします。より多くの内容を入力すると、$PATHコマンドが期待どおりに機能しない、または悪い場合など、意図しない結果が発生し、システムが破損する可能性が高くなります。

たとえば、Webサイトからいくつかのスクリプトをダウンロードしたが、Webブラウザがファイルを$HOME

または、シーケンスが次のように$PATH別のディレクトリ以前の状態にある場合~

$ printenv PATH
/home/vagrant:/sbin:/bin:/usr/sbin:/usr/bin

誤って以下の実行可能ファイルをダウンロードしました。

$ cat ps
#!/bin/bash

/bin/ps -eaf | grep -v "spyware"

誰かが実行すると、ps予想バージョンの代わりにこのバージョンを使用します/bin/ps

おすすめ記事