LinuxのPATH:シェルの秘密
2025-04-29
Linuxが実行するコマンドをどのように見つけるのか疑問に思ったことはありませんか?答えは、カーネルではなくシェルに依存していることです!この記事では、PATH環境変数のメカニズムを深く掘り下げ、dashのようなシェルが`padvance`関数を使用してPATH内で実行可能ファイルを探し、カーネルの`execve`システムコールが実際には完全なパスを受け取る方法を明らかにします。Python、Go、Rustなどのプログラミング言語も、サブプロセスライブラリに独自のPATH検索を実装しており、最終的には`execvp`などの基底関数に依存しています。この記事では、shebangが絶対パスを必要とする理由と、`/usr/bin/env`の巧妙な役割についても説明します。
開発