プログラムは、任意の言語 (主に C) で書かれた通常の実行可能ファイルです。
シェルは、入力されたコマンドをただの文字列として受け取ります。$
次に、環境変数の後に単語が続く、リダイレクトの後にパスが続くなど、シェルにとって特別な意味を持つ特定の文字シーケンスを探し>
ます。この置換が実行されると、実行可能ファイルとパラメータの名前を生成するためにスペースで分割された文字列が含まれます。シェルは、環境変数 PATH のディレクトリのリストで実行可能ファイルを検索します。次に、シェルはシステム コールを使用して、パラメーターを使用して実行可能ファイルからプロセスを作成します。
たとえば、コマンドを実行するにはls $HOME
、シェルは最初にそれが環境変数であることを認識し$HOME
、この場合/home/user
はコマンドを残してその値に置き換えls /home/user
ます。次に、コマンドをスペースで分割して、実行可能ファイル名ls
とパラメーターを取得します/home/user
。シェルは、ls
通常、一致する最初の実行可能ファイルを見つけ/bin/ls
ます。次に、spawn()/posix_spawn() または fork() および exec() システム コールを使用して、新しいプロセスを作成します。