GNU/Linux >> Linux の 問題 >  >> Linux

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

近い質問がたくさんありますが、質問自体はいくつかの重要な用語の根底にある誤解を示しています.

  • PowerShell ではなく Windows ターミナルを使用する理由は?
  • bash には WSL は必要ありません。Cygwin を使用しています。
  • conemu を PowerShell Core で使用できますか?それとも Windows ターミナルを使用する必要がありますか?

用語集から始めて、最初にいくつかの単語を明確にしましょう。

ターミナル

Terminal という単語は terminate に由来し、通信プロセスの終端または「端末」エンドであることを示します。隣に座っているコンピューターが入力を受け取ってテキストを表示するだけで、実際の作業はメインフレームまたは大型コンピューターの反対側で行われているテキストベースの環境を指す場合、「ダム端末」とよく耳にします。

TTY または「テレタイプライター」は、最初の種類の端末でした。画面ではなく、目の前に文字どおりのタイプライターがあります。入力すると、紙にテキストが表示され、そのテキストがコンピューターに入力されます。そのコンピューターが応答すると、タイプライターが同じ紙に自動的にタイプするのが見えます。

ソフトウェアの意味でターミナルを参照する場合、TTY またはターミナルの文字通りのソフトウェア バージョンを参照しています。 Windows ターミナルがそれです。テキスト出力を表示するのは本当に得意です。入力を受け取り、それを渡すことができます。 しかし、ターミナルはスマートではありません。実際に入力を処理したり、ファイルを調べたり考えたりしたりしません。 .

コンソール

20 世紀半ばの人々は、リビング ルームにコンソールまたはコンソール キャビネットと呼ばれる家具を置いていました。コンピューターのコンテキストでのコンソールは、画面とキーボードが内部で組み合わされたコンソールまたはキャビネットです。しかし、それは事実上ターミナルです。技術的には、コンソールはデバイスであり、ターミナルはコンソール内のソフトウェア プログラムです。

ソフトウェアの世界では、ターミナルとコンソールは、あらゆる意味で同義です。

シェル

シェルは、端末がユーザー入力を送信するプログラムです。シェルは出力を生成し、それを端末に戻して表示します。シェルの例を次に示します:

  • bash、fish、zsh、ksh、sh、tsch
  • PowerShell、pwsh
  • cmd、yori、4dos、command.com

これらのターミナルを使用することで、より理解が深まる重要なポイントがあります。シェルの選択は、ターミナル アプリケーションの選択を決定するものではなく、決定すべきではありません。

<ブロック引用>

余談: WSL と WSL2 (Linux 用の Windows サブシステム) は、Windows 10 で実行される完全なローカル Linux (または多くの Linux) です。 WSL2 は、実際の Linux カーネルを出荷し、Windows 上で実行されます。 Cygwin は Linux ではありません。 Cygwin は、Windows 上の Linux と同様の機能を提供する GNU およびオープン ソース ツールの大規模なコレクションですが、Linux ではありません。シミュラクラムです。これは、Win32 に対してコンパイルされた GNU utils です。それは素晴らしいことですが、違いが何であるかを知ることが重要です。 Cygwin では bash シェル スクリプトを実行できますが、Apache、Docker、またはその他の実際の ELF バイナリと Linux アプリは実行できません。

Windows コンソールの選択は?

Windows に同梱されているシェルは多数あります。ここに私が今実行しているいくつかがあります。それらの周りの「クロム」または境界線とタイトルに注意してください。これらのシェルはすべて、聞いたことのない conhost.exe という従来の Windows コンソールによってホストされています。コマンド プロンプトに移動して、powershell、cmd、または ubuntu と入力すると、任意の数のシェルが実行されます。 Conhost は入力と出力の作業を行います。

conhost が存在することは忘れてください。これはひどいものです。非常に古いものです。

疑似コンソール、疑似ターミナル、PTY、疑似 TTY (ConPTY)

疑似端末は、端末をエミュレートする端末エミュレータまたはソフトウェア インターフェイスです。上記のような端末のふりをします。 *Nix システムには長い間疑似端末 (PTY) インフラストラクチャがあり、現在は Windows も疑似コンソール (ConPTY) として使用されています。

Windows の新しい ConPTY インターフェイスは、Windows のコンソールと端末の未来です。 Windows 用のサードパーティ (組み込みではない) コンソール アプリケーションを選択する場合は、それが ConPTY をサポートしていることを確認してください。これにより、スクリーン スクレイピングやその他のハックを使用する一部の古いコンソールよりも優れたエクスペリエンスが得られます。

選択した Windows コンソールに戻る

Windows で使用できるシェルが多数あることを思い出してください。conhost.exe が気に入らない場合 (使用すべきでない場合) に使用できるサード パーティのコンソールが多数あります。

  • ハイパー
  • ConEmu
  • 司令官
  • コンソール 2
  • ConsoleZ
    • ターミナル
    • FluentTerminal
    • ZOC
    • モバエクスターム
    • バブン (死亡)
    • 4NT/jpSoftware (無料ではありません)
    • パテ
    • MinTTY
    • Windows ターミナル (Microsoft Store で無料)
    • XTermjs - 端末をアプリに統合できる Typescript コンポーネント
    • VSCode にはターミナルが含まれています
    • Visual Studio 2019 Preview にはターミナルが含まれています

    これらのターミナルはすべて、上記のすべてのシェルと、私が見逃したシェルをサポートしています。シェルは端末ではないためです。あなたを幸せにするものを選んでください。 Windows ターミナルの WSL2 で PowerShell Core と Ubuntu を使用しています。

    これが問題の解決に役立つことを願っています。

    スポンサー: ソフトウェアのバグがわかりにくくて困っていませんか? Raygun.com のエラー監視により、顧客が期待する価値のあるエクスペリエンスを顧客に提供します。数分でインストールできます。今すぐお試しください!


    Linux
    1. 「ターミナル」、「シェル」、「tty」、「コンソール」の正確な違いは?

    2. 組み込みコマンドとそうでないコマンドの違いは?

    3. 「…」、「…」、$’…’、および$“…”の引用符のシェルでの違いは?

    1. [[$ a ==Z*]]と[$a==Z *]の違いは?

    2. シェル変数と環境変数の使用法の違いは?

    3. Sudo Su –とSudo Su —の違いは何ですか?

    1. NssとPamの違いは?

    2. bashの&>と>&の違いは何ですか?

    3. ls と l はどう違いますか?