シェルとは
シェルとは、コマンドを受け取り実行するプログラムである。
シェルは、OSとユーザーの間に立つインターフェースである。ユーザーからコマンドを受け取り、それをOSに渡して実行する。シェルからOSにコマンドを渡す際は、OSの提供するシステムコールを利用する。
つまり、シェルは、ユーザーが入力したコマンドを解釈し、それに対応するシステムコールを呼び出すプログラムである。
ターミナルとは
ターミナルとは、シェルとユーザーの間のインターフェースとなるデバイスである。
ターミナル自身はコマンドの実行機能を持たない。あくまでユーザーの入力をシェルに渡し、シェルからの出力をユーザーに表示する役割を持つデバイスである。
昔はターミナルと呼ばれる物理的なデバイスを利用していたが、現在はターミナルエミュレータというソフトウェアを利用するのが一般的である。
ターミナルの表示
シェルの出力はターミナルの機能で画面に表示される。そのため、ターミナルがシェルの出力をどう解釈するかによって、表示のされ方が異なる。
たとえば、出力に\n
が含まれていると、大抵のシェルは改行する。これは、ターミナルが\n
を「改行」と解釈して表示するためである。
細かいターミナル表示の制御をするために、ANSIエスケープシーケンスと呼ばれる特殊な文字列が存在する。これを利用することで、文字色や背景色の変更、カーソルの移動、画面のクリアなどが可能となる。