端末エミュレータ

xtermの画面。cdコマンドを入力してカレントディレクトリを「etc」に変更し、lsコマンドでファイル類を一覧表示させた状態。
端末エミュレータ（たんまつエミュレータ、terminal emulator）とは、端末のエミュレーションを行うソフトウェアで、専用端末の代わりに使えるソフトウェアである。英語をそのままカタカナにしてターミナルエミュレータとも表記する。ターミナルソフト（terminal software）やターミナルアプリケーション（terminal applicationともいう。
グラフィカルユーザインタフェース (GUI) 環境内でコマンドライン・インタフェースを提供する画面は端末ウィンドウやターミナルウィンドウ（terminal window）などと呼ぶ。「エミュレータ」や「ウィンドウ」を略して単に「ターミナル」と呼ぶことも増えている

**概要**
端末エミュレータは、専用端末（物理的に存在する専用の端末）をエミュレートしてその機能を実現するソフトウェアであり、パーソナルコンピュータ (PC) やUnixワークステーションなどを専用端末の代わりとして使うことができるようにするソフトウェアである。基本的にはDEC VT100のエミュレーションをするソフトウェアをさすことが多く、通常はキャラクタベースのビデオ端末をエミュレートするが、グラフィック端末（xtermがTektronix 4014をエミュレートする）やプリンタのエミュレーションを行うものもある。
用途としては、通信経由でホストマシンに接続して使う用途もあれば、現にユーザが操作している眼の前のマシンのインタフェースとして利用し設定変更、ファイル操作、ソフトのインストール、ソフトウェア開発などのために使う用途もある。
端末エミュレータを動作させるコンピュータがウィンドウシステムを搭載している場合、これを利用して一つのコンピュータ上で複数の端末エミュレータを同時に稼働させることができることが多い。これは殆どの専用端末では実現できない機能である。

**エミュレートする端末**
実際の端末における、画面制御やキーボード制御、プリンタ制御など、入出力処理には統一された規格が存在しない。現在、端末エミュレータを使用する接続先はUnixが多いため、Unixで事実上の標準となっているDEC社のVT100やその上位機種のエミュレータが多い。VT100の端末エミュレータやその機能を「VT100互換」と呼称する。
接続先がメインフレームであれば、IBM 3270、富士通、日立製作所の端末を、接続先がIBM AS/400であればIBM 5250を、エミュレートすることになる。それぞれのメーカーから純正のエミュレータが発売されているが、サードパーティ製もある。メインフレームの端末の多くは、RS-232のような単純なシリアルインターフェースではなく、インテリジェントなものだったが、その後、シリアル接続やイーサネット接続も可能となっている。
多くの端末はキャラクタしか扱えないが、グラフィックを扱うことができるグラフィック端末もある。例えばxtermがエミュレートするTektronix 4014がその一例で、キャラクタとグラフィックのどちらも扱うことができる。日本では、ヤマハのYIS(YGT-100)もよく知られている。また、コンピュータグラフィックスの黎明期には、多くのメインフレームにオプションとして専用のグラフィック端末が用意されていた。

**TCP/IP経由**
TCP/IPを介した端末エミュレータの接続にはSSH、Telnet、rlogin等の機能を用いる。rloginとTelnetは、パスワードなども含めて、すべての通信内容を平文（暗号化されていない状態）で送受信する。極めて限定された用途であれば、それが必ずしも悪いわけではないが、インターネットを介した接続ではあまりに危険な行為である。したがって、近年は、SSHによる接続が一般的である。
2015年ごろまで、Windows用のSSHクライアントは公式に提供されていなかったため、端末エミュレータはSSHクライアントを統合したものが多かった。現在では OpenSSH in Windowsが提供されており、PowerShellやコマンドプロンプトなどのコマンドラインツールから利用することができる。

**種類**
POSIXに準拠したものと、そうでないものに分類することもできる。

**例 == 

**POSIX系、UNIX系マシンで動作するもの**
POSIX系、UNIX系のマシンで動くもの。最近メジャーなUbuntuやシングルボードコンピュータのRaspberry Piで動くターミナルもここに属す。

**X Window System上で動作するもの**
xterm（Xの標準的な端末エミュレータ。VT102を拡張した仕様とTektronix 4014）
**kterm（xtermを日本語対応としたもの。kはkanjiの意）
**rxvt（xtermからTektroエミュレーションなど、機能を削って軽量化）
**uxterm
*LXTerminal（LXDE）
*Xfce Terminal（Xfce）
*dtterm  (CDE)
*GNOME 端末 (GNOME) GNOME 端末。Bashが動いている状態。
**GNOME Terminator
*Konsole (KDE)

**macOS上で動作するもの**
（注.macOSは、macOS X以降はUNIX系である）
*ターミナル (macOS)
*Simulator (Xcode)
*iTerm
*JTerminal.app

**Windowsマシンで動作するもの**

**Microsoft Windowsマシンで動作するもの**
Windowsにバンドルされているもの
**Win32コンソール (conhost.exe)
***コマンドプロンプトやPowerShellなどのWindowsコンソールアプリケーションやWindows Subsystem for Linux (WSL)がデフォルトで使用するOS組み込みのソフトウェア。
**ハイパーターミナル（Hilgraeve Inc.の製品）
*自由ソフトウェア
**Windows Terminal Windows Terminalのマルチ画面
**Poderosa
**PuTTY
**RLogin
**Tera Term
**mintty
*IBM IBM PCOMMのWindows上で動作しているIBMホスト・システムへアクセスする端末エミュレータ
**パーソナル・コミュニケーションズ (IBM製3270/5250端末のエミュレータ。略称PCOMM)
*富士通 
***WSMGR (富士通製F6680, 3270, 5250エミュレータ)
***Kシリーズ端末エミュレータ（FMGシリーズ、PRIMERGY 6000など）
**日立製作所
***CommuniNet Version3（日立製作所製端末のエミュレータ）
*インターコム
**FALCON（クライアントPC導入型 3270, 5250, 6680, 560 端末エミュレータ）
**FALCON for .NET（サーバー導入型 3270, 5250, 6680, 560 端末エミュレータ）
**FALCON for iPad（iPad導入型 3270, 5250 端末エミュレータ）
*キヤノンソフト情報システム（キヤノンソフトウェアの子会社。旧蝶理情報システム）
**TCPLink スタンダード
**DirectLink HIS対応版
**DirectLink DLC対応版
**DirectLink HNALAN対応版
**SingleLink
*サイバネットシステム
**Reflection for UNIX and OpenVMS（VTエミュレータ）
**Reflection for IBM 2007（3270, 5250エミュレータ）
*NetManage
**RUMBA for Citrix and Terminal Server（3270, 5250, VT, WYSE 50/60, HP/MPEエミュレータ）
**RUMBA Mainframe（3270エミュレータ）
**RUMBA AS/400（5250エミュレータ）
**RUMBA UNIX-HP（VT, HP3000 MPEエミュレータ）
*ビーコンIT
**EXTES（F6680, 3270, 5250, 560, Kシリーズ 端末エミュレータ）
**EXTES Xuras（F6680, 3270, 5250, 560, Kシリーズ Webエミュレータ）

**MS-DOS上で動作するもの**
MS-Kermit（VT102エミュレーションとカーミットプロトコルによるファイル転送）
*hterm (AXやDOS/VでないIBM-PCでも日本語の使用を実現した。)

**他**

**Classic Mac OS上で動作するもの**
NCSA Telnet（Telnetとftp）
*BetterTelnet（NCSA Telnetを改良したもの）
*MacSSH（BetterTelnetをSSH対応としたもの）

**脚注**

**関連項目**
仮想コンソール
*端末
**Lear Siegler ADM-3A
**DEC VT100
**IBM 3270
**IBM 5250
**日本楽器製造株式会社（現在のヤマハ株式会社) グラフィック端末 YGT-100 (1983年7月発売,解像度 640x480,フレームバッファ数で3モデル)
*通信プロトコル
**rlogin
**SSH
**Telnet