「Windows Terminal」は、Microsoftが開発を進めているWindows環境向けのターミナルアプリケーションだ。Microsoft製と言っても、MITライセンスと呼ばれるオープンソースライセンスの下に開発されており、誰でも無料で利用できるようになっている。また、Microsoft Storeに登録されているストアアプリであるため、サードパーティ製アプリケーションのようにわざわざダウンロードサイトから取得しなければならないといった面倒がなく、Windows環境に簡単にインストールできるようになっている。

では、そもそもターミナルアプリケーションとは何なのか。Windowsユーザーのなかには、「ターミナル」と聞いてもピンと来ない方もいるかもしれない。「ターミナルエミュレータ」「端末エミュレータ」などとも言われるそれは、一言で言うと「コンピュータを対話的に操作するために用意されたCUI(Character User Interface)アプリケーションを、デスクトップ環境上に1つのウインドウ画面として描画する機能を提供するアプリケーション」である。

少々煩雑な説明となってしまったが、要はキーボードを使い、コマンドによってコンピュータを操作する時に利用するCUIツールと思ってもらえればいい。LinuxなどのUNIX環境でシェルに触れたことがある方や、WindowsをコマンドプロンプトやPowershellウインドウといった「Windows Console」使って操作したことがあるユーザーにとっては、なじみのあるアプリケーションと言える。

Windows Terminalの画面(Powershellが動作しているところ)

Windows TerminalはMicrosoft Storeから簡単にインストールが可能

Windows Terminalは2019年5月に登場したばかりの新しいターミナルアプリケーションであり、まだプレビュー版となっている。後発のため、これまでのターミナルアプリケーションと同様の機能を追加しつつ、ユーザーの要望に沿った機能をどんどん実装していくことが予想される。

「Windows Console」と「Windows Terminal」の違い

先程も述べたが、WindowsにはコマンドプロンプトやPowershellウインドウといったターミナルアプリケーションがすでに存在している。Windows Consoleとも呼ばれているそれらのアプリケーションは、Windowsが標準で持っているWindows APIを使って動作を実現している。Windows環境をCUIで操作する場合においては、コマンドプロンプトや、さらに機能を拡張したPowershellウインドウを標準のターミナルアプリケーションとして利用することに何も問題はない。ただし、WindowsからLinuxなどのUNIX環境を操作したいとなるとそうはいかない。

「Windows Consoleも同じターミナルアプリケーションなのだから、UNIX環境の操作にも利用できるのでは?」と思われるだろう。しかしながらWindows ConsoleはもともとWindows向けにフォーカスして開発されてきたものであり、UNIX系環境向けに開発されているターミナルアプリケーションとは提供している機能や概念の出発点が根本的に違うのだ。そのため、Windows Console上でUNIX系のコマンドを満足に利用することはなかなかできなかった。

コマンドプロンプト(左)とPowershellウインドウ(右)

もちろんMicrosoftはこの問題を認識しており、後述するWSL(Windows Subsystem for Linux)の登場もあってWindows ConsoleのUNIX互換機能を強化するようになっていった。例えば、UNIX系コマンドで利用されているエスケープシーケンスに対応することでUNIX系コマンドをWindows Console上で実行した際に問題なく動作するようにしている。

このようにWindows ConsoleのUNIX互換を推し進めつつあったMicrosoftだったのだが、並行してWSLを利用しやすくする新たな道も切り開いた。それが専用のターミナルアプリケーションであるWindows Terminalの開発というわけだ。

WSLの登場とWindows Terminalの必然性

WSLの登場は、MicrosoftにとってWindows Terminalを開発するきっかけの1つとなったのではないかと思われる。そもそもWSLはWindows上でLinuxバイナリ環境をネイティブに実行するために開発された互換レイヤーだ。2016年に開発版が登場し、その後、64bit版Windows 10およびWindows Server 2019に正式な機能として導入された。

WSL自体はあくまで互換レイヤーであってLinuxではない。そのため、WSL上で動作するLinuxが必要となる。ではそのLinuxをどうやって手に入れるのか。答えは簡単で、Microsoft Storeからインストールすればいいのだ。ストアアプリとしてUbuntu、openSUSE、SUSE Linux Enterprise Server、Debian、Kali Linuxなど数多くのLinuxディストリビューションがすでに登録されている。

UbuntuなどのLinux環境は、Microsoft Storeから簡単に入手できる

Windows TerminalがあればWindows ConsoleやWSLの利用が簡単

WSL上のUbuntu環境をWindows Terminalで操作が可能

WSLの登場以前でWindowsからLinuxを利用したいとなった場合、VirtualboxやVMwareといった仮想化アプリケーション上にLinuxを構築して使う、クラウドまたはオンプレミスのLinuxを構築してssh対応アプリケーションを介して利用するなどのやり方があった。これらの方法は手間暇をかける時間やお金といったリソースがあれば問題なく実現できる。しかしながら、WSLの登場によりWindowsユーザーはそれらのリソースの必要なく、手軽にLinux環境を手に入れることができるようになった。

既存のLinux利用者やLinuxビギナーのWindowsユーザーに大きな衝撃を与えたWSL。このWSL上のLinuxを操作するにあたり、Windows Terminalを利用することは良い選択肢の1つではないかと思われる。

Windows TerminalはWSLとの親和性が高く設計されている。Windows Terminalは、そのWindows環境上にあるWSLを一覧にして選択できるようになっている。ユーザーはその中から使用したいLinuxを選択すれば、WSL上のLinuxがすぐに利用できるようになっている。1つのWindows環境上で複数のLinuxを使いたいユーザーにとっては、1つのターミナルアプリケーションで操作できるのは大きな利点だと言える。

また、Windowsに標準で備わるコマンドプロンプトやPowershellといったWindows Consoleも選択できるようになっている。つまり、WSLを使いたいときもWindows Consoleを使用したいときも、Windows Terminalを立ち上げさえすればいいのだ。

今、始まりつつある”Windows Terminal時代”

Windows Terminalはまだプレビュー版であり、既存のターミナルアプリケーションと比較しても特出した機能があるわけではない。だが、先述の通り後発なので既存のターミナルアプリケーションと同様の機能がすぐに実装される可能性は十分にある。例えば、多くのターミナルアプリケーションで採用されているタブウインドウ機能はすでに実装されているし、JSONを使った設定機能を採用するなどのはやりにも乗っかっている。また、オープンソース/無償で提供されているため、開発者やユーザーからの反応は早く、ほかのオープンソースターミナルアプリケーションで搭載された機能が移植されやすいといった側面もある。

プレビュー版ということもあるが、Windows環境にバンドルされていないという点も興味深い。Windowsと切り離されていることでWindowsのリリースと関係なく、開発/アップデートリリースが行え、ユーザーにいち早く最新版を届けることができるといったメリットがある。

そして何よりMicrosoftが正式に開発を行っているところが大きい。Microsoft Storeから簡単にインストールできるWindows Terminalは、各LinuxディストリビューションやmacOSの標準ターミナルのようなWindowsのデフォルトのターミナルアプリケーションとなっていく可能性を十分に秘めているのだ。

Windows Consoleの開発も並行して続いていくだろうことを考えると、Windows Terminalが立ち消えてしまう可能性もゼロではない。だが、それでもなお、今活発に開発が進むWindows Terminalが”熱い”ことに違いはない。

今回は、本連載を始めるにあたり、Windows Terminalとは何たるかについてまずは説明させていただいた。次回からは、Windows Terminalのインストールや各種機能、設定方法などを順次紹介していきたいと思う。