私が知っているのは、bashはPython Interactive Shellに似たプログラムで、入力ストリームを介してコマンド(またはコマンド)を受け取り、Linux API関数を呼び出して実行し、実行結果を出力ストリームに提供するプログラムです。
端末もコマンド記録、強調表示など一部の機能を提供し、内部的にはシェル(bash)を使用するプログラムだ。
しかし、Nautilusのようなアプリケーションは/bin/bashを使用しますか、それともLinuxのAPIを使用して通信しますか?
答え1
はい、プログラムは明示的または暗黙的にシェルを使用できます。
たとえば、参照してください。スティーブンの答え無関係な質問です。
たとえば、その答えは、プログラムがCライブラリ関数を使用したりコマンドを実行したりすると、通常戻り時にexeclp()
呼び出されるexecvp()
ことです(「it」は、コマンドのコンテキストである明示的なインタプリタを指定しないシェルスクリプトです)。 )。殻です。execve()
ENOEXEC
sh
sh
ユーティリティの実行に使用されるアプリケーションはsystem()
通常シェルも呼び出します。
Nautilusについて具体的に言うことはできませんが、ある種のスクリプトを実行できる場合は、シェルを使用する可能性が高くなります。他のアプリケーションでは、GUI要素用のライブラリとイベント、ファイルシステムの操作などの他のライブラリを使用できます。これらのライブラリは C または同様の言語で書かれている可能性が高く、C ライブラリを使用します。
ファイルマネージャ自体が疑わしい。次のように書かれたあらゆる種類のシェルスクリプト言語で可能ですが、使用起動またはその他の操作のためのシェルスクリプト。