シェル、コンソール、ターミナルの違いは何ですか?


回答:


168

Linuxの世界では、キーボードでユーザーの観点から見ると、すべて同じように見えます。違いは、相互作用の方法にあります。

シェルは、実際にコマンドを処理し、出力を返すプログラムです。ほとんどのシェルは、フォアグラウンドおよびバックグラウンドプロセス、コマンド履歴、コマンドライン編集も管理します。これらの機能(およびその他の機能)はbash、現代のLinuxシステムで最も一般的なシェルであるの標準です。

端末は、シェルを実行するラッパープログラムを指します。何十年も前、これはモニターとキーボードだけで構成される物理的なデバイスでした。UNIX / Linuxシステムがより優れたマルチプロセッシングシステムとウィンドウシステムを追加したため、この端末の概念はソフトウェアに抽象化されました。これで、コマンドを入力できるシェルを実行するGnomeウィンドウ環境でウィンドウを起動するGnomeターミナルなどのプログラムができました。

コンソールには、特別な一種であるターミナル。従来、コンソールは、オペレーティングシステムとの低レベルでの直接通信に使用されるコンピューターの専用シリアルコンソールポートに接続された単一のキーボードとモニターでした。最新のLinuxシステムは仮想コンソールを提供します。これらは、Linuxオペレーティングシステムの低レベルで処理されるキーの組み合わせ(例:Alt+ F1またはCtrl+ Alt+ F1; ファンクションキーは異なるコンソール)を介してアクセスされます-これは、実行するためにインストールおよび構成する必要のある特別なサービスがないことを意味します。コンソールとの対話も、シェルプログラムを使用して行われます。


1
端末がキーボードを備えたモニターである前は、テレタイプであり、一種の電気タイプライターでした。 en.wikipedia.org/wiki/Teleprinter
ケビン・パン粉

13
コンソールとは、「このコンピューターに物理的に接続されているキーボードとモニター」を意味する場合があります。たとえば、「サーバーがネットワークに応答していないため、コンソールからログオンしました。」
ケビンパンコ

1
@Doug Harris:あなたが話しているハードウェアの写真をいくつか追加できますか?

1
私が1980年代後半に大学にいたとき、私はDEC VT220端末で多くの仕事をしました-en.wikipedia.org/wiki/VT220-それは私が説明した物理デバイスの良い例です。
ダグ・ハリス

5
それでは、端末コンソールが現代にそれぞれソフトウェアで実装されている場合、2つ(現在)の違いは何ですか?
ギャビンホープ

15

シェルは、プロンプトを表示し、ユーザーがコマンドを入力するのを待つプログラムです。それらを実行し、別のプロンプトを出力します。したがって、WindowsのCMDやUnixのBashのように。端末またはコンソールで実行できます。

コンソールはもともと物理的なもので、コントロールパネルでした。コンピューティング用語では、通常、GUIの起動前または終了後に表示されるディスプレイを意味します。GUIの代わりに表示に切り替えることができます。オペレーティングシステムがエラーメッセージを出力する場所です。マルチユーザーコンピューターでは、実際にコンピューターに接続されているのはディスプレイです。混乱させるために、Windowsでは、コマンドシェルを含むウィンドウ、つまりターミナルを意味する場合もあります。

ターミナルはもともとハードウェアであり、コンピューターとの通信に使用されていました。今日では、通常、コマンドライン(シェル)を備えたウィンドウを指し、GUIウィンドウまたはGUIの代わりに表示される場合があります。


2

ターミナルはテキストベースのインターフェースです(シェルの場合もあります)

コンソールとシェルの違いは、私がまだ把握していないものですが、ターミナルがシェルとどのように異なるかを説明できます。

端末は、(あるウィキペディアによれば)「テキスト入力と表示のためのシリアルコンピュータインタフェース。情報は、予め選択され形成された文字の配列として提示されています」。

ターミナルを使用してシェルとやり取りできますが、ターミナルベースのテキストベースGUIターミナルユーザーインターフェイスとも呼ばれる)とやり取りすることもできます。例えば:

  • Vimには、行番号や名前付きタブなどのGUI要素があります
  • Nanoには、コマンドのヘルプメニューを含むGUI要素があります
  • Tmuxには、ステータスバーやペイン間の分割線などのGUI要素があります
  • Minicomには、メニューやステータスバーなどのGUI要素があります

いずれの場合も、GUI要素はピクセルではなくテキストで「描画」されます。


この定義がテキストのみであるかどうかはわかりません。ある意味では、一部のGUIはターミナルimoと見なすことができます。
ジグガンジャー

2

初心者初心者向け

詳細な説明:https : //askubuntu.com/a/506628/130518

  • 端末=テキスト入力/出力環境
  • コンソール=物理端末
  • shell =コマンドラインインタープリター

これについては、次のテキストで最も一般的な使用例を説明します。

端末シェルを使用します。シェルは端末なしで実行できます。

日常のアイテムに関連する:

  • ターミナル->家のテレビ画面
  • シェル->テレビ画面で実行されているプログラム

別の見方:耳(入力)と口(出力)は音の終端です。あなたの脳は、特定のシェル(処理)を使用したこれらの音のインタープリターです。

端末は人間向けであるため、シェルとの間で読み書きできます。シェルは、cronジョブなどの人間の対話を必要としないバックグラウンドプロセスで実行できます。したがって、端末は必要ありません。

存在する端末のいくつかの例:

  • コマンド・プロンプト
  • グアケ
  • gnome-terminal
  • ターミネーター

存在するシェルのいくつかの例:

  • バッシュ
  • sh(ボーンシェル)
  • PowerShell [windows]
  • zsh(Zシェル)

これら2つが通常どのように機能するかを書いただけで、他にも機能する方法がありますが、それは上級ユーザー向けです。


1

別のコンテキスト、つまり開発を考えてください。
開発の深い知識がなくても、おそらく基本を知っているでしょう。つまり、プログラムを編集し、それをコンパイラーまたはコンパイル済みアプリケーションをビルドするインタープリターに送信します。
コンソールはプログラムのエディターのようなものです。書面では役立ちますが、実際には何も実行されません。完了したら、そのためにコンパイラに送信します。

好みのエディター、vim、gedit、emacs、notepad ++、Netbeans、ecliseなどを使用できますが、最終的には異なるツールになります。同じプログラムを記述した場合、出力は同じになります。
この比phorでは、シェルはコンパイラです。ターミナルに入力されたコマンドはシェルに送信され、シェルはそれらを解釈してすぐに実行します。
そのため、ターミナルはシェルのフロントエンドにすぎませんが、シェルにはコンパイラーのように実際の言語が含まれています。

主にファイルを生成せず、基礎となるシェルにテキストを送信し、そこから出力を取得するため、明らかにターミナルはテキストエディターではありません。

また、シェルはコンパイラではありません。実際、実行可能ファイルを作成する代わりに、コマンドを解釈してすぐに実行します。

この大きな違いがあったとしても、このメタファーはこの考えを理解するのに大いに役立つと思います。


0

それほど大きな違いはありません。「シェル」がプログラムであり、「端末」がこのプログラムのフロントエンドラッパーであり、「コンソール」がコンピューター(キーボード/画面)への物理的な接続であった時代にさかのぼります。

実行しているOSによって違いがあります。「標準」シェルはBASHで、通常はすべての種類のLinux / Unixで利用可能です。Windowsはまったく異なるシェルを使用します。

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