ma96o / gialog

MIT License
0 stars 0 forks source link

0822 _ PATH #21

Open ma96o opened 2 years ago

ma96o commented 2 years ago

Linux の PATH について.一度プログラミングを始めた頃に学んだが,そこからなんとなくの理解でこれまでやってきた.今日バイナリファイルをダウンロードして,そのコマンドのパスを通すという作業をしたので,改めて整理しておこうと思う.

そもそも「パスを通す」などで用いられる"パス"は,"コマンドサーチパス"の略称である.

Linux では通常,コマンドを実行するには $ /usr/bin/passwd のように,フルパスを指定する必要がある.しかしそれは面倒である.

そこで,Linus のシェルは,フルパスを指定しなくても,設定されたディレクトリにコマンドの実行ファイルを探しにいくようになっている.このとき「シェルがコマンドのバイナリファイルを探しに行くディレクトリを設定する」ことを「パスを通す」という.言い換えれば,コマンドサーチパスを設定するという意味になる.

コマンドサーチパスは,PATH という環境変数に格納されている.$ echo $PATH を実行すれば,設定されているパスを確認できる.PATHには,通したいパスを「:」区切りで指定する.

以下のような出力であれば,/usr/local/bin, /usr/bin, /bin にパスが通っていることが分かる.

$ echo $PATH
/usr/local/bin:/usr/bin:/bin

追加したいときは,$ export PATH=$PATH:/usr/sample のように,現在の $PATH に「:」で繋げて通したいパスを指定すれば良い.また,同名のファイルが複数のディレクトリにあった場合,PATH に定義されたディレクトリのうち先頭から優先してファイルを実行するので注意が必要.また,セキュリティの観点からも余計なディレクトリを追加せず(パスを通さず),安全なディレクトリに絞って指定することが重要である.