「ターミナル」、「シェル」、「tty」、「コンソール」の正確な違いは何ですか?

「ターミナル」、「シェル」、「tty」、「コンソール」の正確な違いは何ですか?

私はこれらの用語が緩く使われているときはほとんど同じ意味だと思います。

  • 端末
  • シェル
  • 端末
  • 快適

この用語は正確に何を意味しますか?

ベストアンサー1

ターミナルはワイヤの終わり、エンクロージャはカメの家、ttyは奇妙な略語、コンソールは一種のキャビネットです。

まあ、とにかく語源的に言えば。

Unixの用語で短い答えは次のとおりです。

  • 端末 = tty = テキスト入出力環境
  • コンソール=物理端末
  • シェル=コマンドラインソルバー

コンソール、端末、およびttyは密接に関連しています。もともとは、コンピュータと対話できるデバイスを意味しました。 Unixの初期では、これは次のことを意味しました。テレタイププライター- 時々テレタイプライターまたは単に「tty」と呼ばれるタイプライターに似たデバイスです。 「ターミナル」という名前は電子製品の観点から由来し、「コンソール」という名前は家具の観点から由来しました。 Unixの歴史の初期に、電子キーボードとモニターは端末の標準機能になりました。

Unixの用語では、端末特別デバイスファイル多くの追加コマンドを実装します(I/W制御)読んで書く能力を超えて。最も一般的な意味では、端末ttyの同義語です。一部のttyは、キーボード入力やテキストモードの画面出力やシリアルラインを介して送信される入力と出力などのハードウェアデバイスの代わりにカーネルから提供されます。他のtty、時々呼び出される医者tty、次のプログラムによって(薄いカーネル層を介して)提供されます。端末エミュレータ、例えばXterm(動作Xウィンドウシステム)、画面(プログラムと他の端末との間に分離層を提供します)SSH(ある機械の端末を別の機械のプログラムに接続するため)予想される(ターミナルインタラクションスクリプトの作成に使用)など

ターミナルという用語は通常、キーボードとモニタを使用して、人々がコンピュータと対話するデバイスのより伝統的な意味を持つことがあります。例えば、X端末はシンクライアント、実際のアプリケーションは、より強力な他のコンピュータで実行されている間、キーボード、モニタ、マウス、および時には他の人間の相互作用周辺機器を駆動することが唯一の目的である特別な目的のコンピュータです。

快適一般に、物理的意味のある端末は、ある定義によると、機械に直接接続された基本端末である。コンソールはオペレーティングシステムに(カーネル実装)ttyとして表示されます。 LinuxやFreeBSDなどの一部のシステムでは、コンソールは複数のttyとして表示されます(これらのttyを切り替えるための特別なキーの組み合わせを含む)。問題を混同するために、各特定のttyに割り当てられた名前は「コンソール」、「仮想コンソール」です。 、「仮想端末」およびその他のバリエーション。

また、見ることができます仮想端末が「仮想」である理由は何であり、「実際の」端末は何/なぜ/どこにありますか?


シェルユーザーがログインしたときに表示される基本インターフェイスであり、主な目的は別のプログラムを実行することです。 (もともとのたとえ話がシェルがユーザーのホーム環境であるのか、それともシェルが他のプログラムが実行されているのかわかりません。)

Unix Circleではシェル具体的に言うのはコマンドラインシェル、実行するアプリケーションの名前を入力し、アプリケーションが機能する必要があるファイルまたはその他のオブジェクトの名前を入力してから、キーを押すことを中心にしますEnter。他の種類の環境では、「シェル」という単語は使用しません。例えば、ウィンドウシステムは「ウィンドウマネージャ「そして」デスクトップ環境"、"シェル"ではなく。

Unixシェルにはさまざまな種類があります。対話型使用に広く使用されているシェルは次のとおりです。吹く(ほとんどのLinuxインストールの場合はデフォルト)ジッシュ(機能性とカスタマイズ可能性を強調)(シンプルさを強調)。

コマンドラインシェルには、コマンドを結合するためのフロー制御構造が含まれています。対話型プロンプトでコマンドを入力することに加えて、ユーザーはスクリプトを書くこともできます。最も一般的なシェルには、以下に基づく共通の構文があります。ボンシェル。 「について議論するときシェルプログラミング「シェルはほとんど常にBourneスタイルのシェルを意味しますが、スクリプトによく使用されますが、高度なインタラクティブ機能を欠いているいくつかのシェルは次のとおりです。クッシュ(クッシュ)もっとあります禁煙健康増進協会バリアント。ほとんどすべてのUnixシリーズシステムには、Bourneスタイルのシェル(/bin/sh通常はash、ksh、またはBash)がインストールされています。

Unixシステム管理におけるユーザーのシェルログイン時に呼び出されるプログラムです。一般ユーザーアカウントにはコマンドラインシェルがありますが、アクセスが制限されているユーザーには限られた殻または他の特定のコマンド(ファイル転送アカウントのみ)


ターミナルとシェルの間の労働分業は完全には明確ではありません。主な仕事は次のとおりです。

  • 入力:端末はキー入力を制御シーケンス(例えばLeft\e[D)に変換します。シェルは制御シーケンスをコマンド(例えば\e[Dbackward-char)に変換します。
  • 行の編集、入力履歴、および完成機能はシェルで提供されます。
    • ターミナルは独自の行編集、記録、および完成機能を提供でき、実行の準備ができたときにのみシェルに行を送信します。このように動作する唯一の共通端末はM-x shellEmacsです。
  • 出力:シェルは、「表示foo」、「前景色を緑色に切り替える」、「カーソルを次の行に移動する」などのコマンドを発行します。端末はこの指示に従って動作します。
  • プロンプトは純粋にシェルの概念です。
  • シェルは、自分が実行するコマンドの出力を決して表示できません(リダイレクトされない限り)。出力履歴(ロールバック)は純粋に端末の概念です。
  • アプリケーション間のコピー - 貼り付けは端末で提供されます(通常、マウスや+ Ctrl、+などのキーシーケンスを使用)。シェルには、独自の内部コピー - 貼り付けメカニズム(たとえば、+や+)があります。ShiftVShiftInsertMetaWCtrlY
  • 職業管理(バックグラウンドでプログラムを起動して管理します。)主にシェルによって実行されます。ただし、端末は、フォアグラウンドジョブを終了する+、フォアグラウンドジョブを一時停止するCtrl+などのキーの組み合わせを処理する役割を果たします。CCtrlZ

おすすめ記事