13

次のような多くのシェルコマンドがあります

ls、cd、猫など

これらのコマンドを記述する際に使用されるプログラミング言語は何ですか? それらはどのようにコンパイルされますか?

私の理解:

Shell is a program which takes command; ** does this mean that it interprets those commands(like ls is interpreted by shell program)?**

もう 1 つの質問ですが、Shell プログラムは何語で書かれていますか?

4

3 に答える 3

10

Linux の基本的なユーティリティのほとんどは で書かれていますC。この u は、で書かbusybox source codeれている基本的な Linux コマンド ユーティリティのほとんどをサポートしていることを確認できCます。ls、cd ...などのコマンドが入っていますc

シェルが以下のリンクのチェックを解釈する方法

オペレーティング システムには、シェルと呼ばれる特別なプログラムがあります。シェルは人間が読めるコマンドを受け入れ、カーネルが読み取って処理できるものに変換します。

http://www.math.iitb.ac.in/resources/manuals/Unix_Unleashed/Vol_1/ch08.htm

于 2013-09-27T11:11:32.310 に答える
7

これらのプログラムは、主に Linux カーネルと同様に C プログラミング言語で書かれています。

于 2013-09-27T09:11:56.670 に答える
4

プログラムは、任意の言語 (主に C) で書かれた通常の実行可能ファイルです。

シェルは、入力されたコマンドをただの文字列として受け取ります。$次に、環境変数の後に単語が続く、リダイレクトの後にパスが続くなど、シェルにとって特別な意味を持つ特定の文字シーケンスを探し>ます。この置換が実行されると、実行可能ファイルとパラメータの名前を生成するためにスペースで分割された文字列が含まれます。シェルは、環境変数 PATH のディレクトリのリストで実行可能ファイルを検索します。次に、シェルはシステム コールを使用して、パラメーターを使用して実行可能ファイルからプロセスを作成します。

たとえば、コマンドを実行するにはls $HOME、シェルは最初にそれが環境変数であることを認識し$HOME、この場合/home/userはコマンドを残してその値に置き換えls /home/userます。次に、コマンドをスペースで分割して、実行可能ファイル名lsとパラメーターを取得します/home/user。シェルは、ls通常、一致する最初の実行可能ファイルを見つけ/bin/lsます。次に、spawn()/posix_spawn() または fork() および exec() システム コールを使用して、新しいプロセスを作成します。

于 2013-09-27T09:16:40.653 に答える