ターミナルとシェルは同じですか?


29

これは愚かに聞こえるかもしれませんが、Linuxの世界で使用されている2つの単語に本当に違いがあるかどうかを知りたかっただけです。シェルはコマンドラインインターフェイスであり、Bash、Kornなどの多くのバリアントがあることを知っています。また、Ctrl + Alt + TがUbuntuでターミナルを起動することも知っています。この2つのドットを接続したいだけです。

端末は開くウィンドウであり、シェルはウィンドウに入力されたコマンドを解釈するために背後で実行されるプログラムであることを意味しますか?または、ターミナルがシェルなどの概念を抽象化するために使用される一般的な用語である場合、それらは同じですか?

2つの単語を正確に区別するのは何ですか?

回答:


30

ターミナルエミュレータ(多くの場合、単にターミナルと呼ばれます)は、「ちょうどウィンドウ」です。デフォルトでは、ログインシェル(Ubuntuではbash)であるテキストベースのプログラムを実行します。ウィンドウに文字を入力すると、端末はシェル(または他のプログラム)のstdinに送信することに加えて、ウィンドウにこれらの文字を描画します。シェルがstdoutおよびstderrに出力する文字は端末に送信され、端末はこれらの文字をウィンドウに描画します。

そのため、はい、シェルとターミナルエミュレーターは完全に別のプログラムであり、どちらも他方なしで使用できます。


2
ターミナルなしでシェルを使用するにはどうすればよいですか?
コライトゥゲイ

5
@ KorayTugay、cronまたはデスクトップランチャー(「ターミナルで実行」にチェックマークを付けていない場所)からシェルスクリプトを実行する場合、ターミナルなしのシェルを使用しています。
ガイラ


6

はい、ターミナルエミュレータとシェルは2つの異なるプログラムです。ご存知のように、違いの1つの例は、ターミナルウィンドウを起動すると、構成したもの(bash、tcsh、ksh、ash、pythonなど)に応じて異なるシェルを実行できることです。

別の違いは、デフォルトよりも多くのターミナルエミュレータがあることです:gnome-terminal、いくつかの種類のxterm、konsole(KDE用)など(http://www.howtogeek.com/howto/ubuntu/set-を参照) the-default-terminal-emulator-on-ubuntu-linux /)。シェルは、これらのターミナルエミュレータのいずれでも、それほど困難なく実行できます。

3番目の違いは、シェルコマンドの実行に加えて、ターミナルエミュレーターで特定の対話型アプリケーションを起動することもできることです。これらは同じウィンドウで実行されます(実際のグラフィックスの処理は同じターミナルエミュレータープログラムに依存しています)。 vimテキストエディタ、nethack RPGなど。必要に応じて、端末エミュレータでプロファイルを設定して、たとえば新しいタブを開いたときに自動的にnethackを開始することができます。シェルは関係しませんが、端末エミュレーターはまだ同じプログラムです。

4番目の違いは、sshなどのプログラムを使用して、ターミナルウィンドウ内からリモートログインを実行できることです。この場合、シェル(またはリモートで実行するプログラム)は別のコンピューターで実行され、sshプログラムは、グラフィックを処理するマシンで実行されているローカルターミナルエミュレータープログラムに接続します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.