プログラムは、任意の言語 (主に C) で書かれた通常の実行可能ファイルです。
シェルは、入力されたコマンドをただの文字列として受け取ります。次に、$
である環境変数など、シェルにとって特別な意味を持つ特定の文字列を探します。 >
の単語またはリダイレクトが続く パスが続きます。この置換が実行されると、実行可能ファイルとパラメータの名前を生成するためにスペースで分割された文字列が含まれます。シェルは、環境変数 PATH のディレクトリのリストで実行可能ファイルを検索します。その後、シェルはシステム コールを使用して、パラメーターを使用して実行可能ファイルからプロセスを作成します。
たとえば、コマンド ls $HOME
を実行するには シェルは最初に $HOME
を認識します は環境変数であり、この場合 /home/user
の場合はその値に置き換えます コマンド ls /home/user
を終了 .次に、コマンドをスペースで分割して、実行可能ファイル名 ls
を取得します およびパラメーター /home/user
.シェルは ls
に一致する最初の実行可能ファイルを見つけます 通常 /bin/ls
.次に、spawn()/posix_spawn() または fork() および exec() システム コールを使用して、新しいプロセスを作成します。
Linux の基本的なユーティリティのほとんどは C
で書かれています .これは busybox source code
で確認できます C
で書かれた基本的な Linux コマンド ユーティリティのほとんどをサポートします。 .So コマンドのような ls,cd ...etc は c
にあります
シェルがリンクの下のチェックインを解釈する方法
オペレーティング システムには、シェルと呼ばれる特別なプログラムがあります。シェルは人間が読めるコマンドを受け入れ、カーネルが読み取って処理できるものに変換します。
http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm
これらのプログラムは、Linux カーネルと同様に、主に C プログラミング言語で書かれています。