WindowsもとうとうTerminalと名のつくツールが正式に公開されました。どんなものなのかみてみましょう。
Windows Terminalとは
Microsoftが開発した端末エミュレーターです。
とても短い一言で説明できてしまいましたが、かつてより他のOSでは(UNIX、Linux、macOS)標準で使えるソフトウェアです。
そもそも端末エミュレーターとは何者でしょうか。
かつてコンピューターが大型しかなかった時代はその大きなコンピューターを操作するには端末が必要でした。
コンピューターには出力と入力があります。
出力はディスプレイやプリンターなどで、さらに昔になると穴の空いた紙などです。
入力はキーボードなどで、これもさらに昔は穴の空いた紙などです。
大きなコンピューターしかなかった時代もキーボードで入力して、ディスプレイやプリンターで処理結果を見てました。
これが端末コンピューターです。
この端末コンピューターをソフトウェアで実現しているのが、端末エミュレーターです。
ハードウェアである端末コンピューターをソフトウェアでエミュレーションしているのです。
端末コンピューターは接続する大きなコンピューターによって、通信プロトコルであったりコンピューター内部の処理が異なります。
いろいろある環境の中で現在も接続することが多いのはUNIXと思います。
UNIXはこういった接続を想定して作られているため、基本的なオペレーション(操作)はターミナル(Terminal)と呼ばれるソフトウェアで行います。
ここで考えられるのは、Winodws、macOS、Linuxで動作しているターミナルはこのUNIXのターミナルを踏襲したものではないかと言うことです。
つまりネット上ではWindows Terminalは端末エミュレーターと説明されているものが多いですが、UNIXのターミナルであることを説明したほうがわかりやすい気がします。
Windows以外のmacOSとLinuxはUNIXをベースに開発されているOSなので、ターミナルがあるのは自然なことです。
Windowsはそれに代わるものとして、Command、PowerShellがありました。
しかし、これらはCLIとして入力するコマンドやパス指定など、MS-DOSから受け継いているのでUNIX系とは違ったものでした。
パソコンとしてWindowsは世界的なシェアが多いですが、こういった理由でWindowsを端末として使うには他社製品のソフトウェアを使って動かすしかありませんでした。
長い時間がかかってはいますが、Windows10ではサブシステムでLinuxをインストールして使えたりなど、MicrosoftはWindowsでも標準で端末として使えるように開発を進めているように思います。
そしてとうとうWindows Terminalが正式にリリースされました。
ちなみにWindows Terminalは開発している頃からGithubから入手可能でした。
https://github.com/microsoft/terminal
Microsoftの資料サイトは以下です。
https://docs.microsoft.com/en-us/windows/terminal/
コンソールとターミナルとシェルの違いについては、Microsoftのサイトからリンクされているこんなページがあるので参考にどうぞ
https://www.hanselman.com/blog/WhatsTheDifferenceBetweenAConsoleATerminalAndAShell.aspx
Windows Terminalを使ってみた
そんなWindows Terminalを使ってみました。
名前だけ聞くとUNIXやLinuxのターミナルのようなことができるんだと思いますが、少し違います。
それでは導入方法から見てみましょう。
Windows Terminalは使用できる環境が、Windows10 May 2019 Update(バージョン1903)以降となっています。
Microsoft Storeから無料でインストールできます。
インストールするとWindowsメニューから選択して起動します。
Windows Terminalを起動したら表示されるのは、実はPowerShellやCommandなどこれまであるものです。
WSLをインストールしているようなUNIXやLinuxライクな操作ができるものを想像していたのですが違いました。。
そして表示スペックが大きく変わっています。
これまでのPowerShellやCommandは1つの画面にタブを増やして異なった画面を表示することができませんでしが、Windows Terminalではタブ表示が可能になっています。
WSLをインストールしていると、WSLのターミナルとして表示することもできます。
タブ表示だけではなく、1つの画面内に複数のペインを表示することもできます。
ペインを表示したり非表示にしたりはキーボード操作で行います。
ペインに関する操作だけまとめたものです。
「Alt + Shift + Plus(+)」で横にペインを追加表示
「Alt + Shift + -」で縦にペインを追加表示
「Ctrl + Shift + w」でフォーカスしているペインを閉じる
「Alt + Shift + right」で右方向にペイン画面サイズを変える
「Alt + Shift + left」で左方向にペイン画面サイズを変える
「Alt + Shift + up」で上方向にペイン画面サイズを変える
「Alt + Shift + down」で下方向にペイン画面サイズを変える
「Alt + right」で右方向のペインにフォーカスを移す
「Alt + left」で左方向のペインにフォーカスを移す
「Alt + up」で上方向のペインにフォーカスを移す
「Alt + down」で下方向のペインにフォーカスを移す
これらはMicrosoftサイトに情報があります。
Githubサイトにも情報があります。
これ以外にも様々な表示の操作や設定が可能で、UTF-8の絵文字も表示できます。
そしてWindows Terminalに表示するコンソールアプリケーションはプルダウンで選択することができます。
さらに、ペイン表示で開く画面は設定をカスタマイズすることで指定することができます。
つまりペインごとにPowerShellだったりWSLなどを指定して表示することができます。
例えば、「Ctrl + u」を押すとWSLのUbuntuで新たなペイン画面を表示する設定は以下です。
{ "command": { "action": "splitPane", "split": "auto", "profile": "Ubuntu-18.04" }, "keys": "ctrl+u" }
“split”はどの方向にペインを開くかを設定するのですが、ここではautoとしています。
autoは最も表面積が大きいエリアにペイン画面を表示します。
設定は画面プルダウンメニューから設定を選ぶか「Ctrl + ,」でsettings.jsonファイルを開いて編集します。
JSONファイルに関連付けられているエディタがなければメモ帳などでファイルが開きます。
settings.json在り処はここです。
%UserProfile%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState
先程の記述をsetting.jsonに追加することで設定できます。
その他の設定についてはMicrosoft資料サイトに情報があるのでいろいろ試してみてください。
これを気にWindowsでもCLIを使った操作がどんどんメジャーになるのかもしれません。