Windows Terminal

【連載】

PowerShell Core入門 - 基本コマンドの使い方

【第56回】Windows Terminal

[2019/07/12 07:00]後藤大地 ブックマーク ブックマーク

  • サーバ/ストレージ

サーバ/ストレージ

コマンドプロンプトまたはWindows PowerShell

WindowsでPowerShell Coreを利用するにはコンソールアプリケーション(またはターミナルアプリケーションと呼ばれることも多い)が必要になる。PowerShell CoreはCUIアプリケーションであり、それを実行するには基盤となるコンソールがなければならない。

WindowsにはコマンドプロンプトやWindows PowerShellといったコンソールアプリケーションがあり、ここでPowerShell Coreを起動して利用するというのが、WindowsでPowerShell Coreを使う場合の一般的な使い方ということになる。

Windowsプラットフォームがデフォルトで提供しているコンソールアプリケーション(ターミナルアプリケーション)は、macOSやLinuxでよく使われているターミナルアプリケーションと比べると、いささか機能が貧弱だ。コマンドプロンプトは互換性を重視する傾向が強いためそもそも機能が少なく、Windows PowerShellはコマンドプロンプトよりはマシだが、サードパーティ製ターミナルアプリケーションと比べると見劣りしてしまう。

しかし、この状況は変わろうとしている。

MicrosoftはコマンドプロンプトやWindows PowerShellといったコンソールアプリケーションをオープンソースソフトウェアとして公開するとともに、「Windows Terminal」というアプリケーションの開発に着手した。

Windows Terminalはすでにオープンソースソフトウェアとして公開されている。このアプリケーションは今後PowerShell CoreやPowerShell 7でデフォルトのプラットフォームとなる可能性が高い。

今回はWindows Terminalを取り上げる。

Windows Console

Windows Terminalについて話をはじめる前に、『Windows Console』という言葉を理解する必要がある。

というのも、Windows Consoleというアプリケーションがあるわけではない。Windows ConsoleとはCUIベースのコマンドやアプリケーション向けのWindows APIベースインフラストラクチャのことを意味している。

『Windows Console』というのはアプリケーションの種類のようなもので、WindowsのCUIアプリケーションを実行するためのターミナルアプリケーションの総称を『Windows Console』と呼んでいる。

つまり、Windows Consoleの実態というか実装系はひとつではないということだ。コマンドプロンプトもWindows Consoleの実装系だし、Windows PowerShellもWindows Consoleの実装系ということになる。

macOSやLinuxであればターミナルアプリケーションは一つで、そこでシェルやPowerShell Coreを実行する。対して、WindowsではコマンドプロンプトやWindows PowerShellはGUIアプリケーションでありシェルでもある。両方含んだ状態になっているわけだ。

Windowsにおけるコンソールアプリケーションとシェルという概念がわかりにくいのは、このような癒着した状態で提供されているからだ。

Windows PowerShellの実行例

たとえば上記スクリーンショットはWindows PowerShellの実行例だ。Windows PowerShellは『Windows Console』としてのGUIアプリケーション(コンソールアプリケーション/ターミナルアプリケーション)と、シェルとしてのPowerShell 5 (powershell.exe)の双方が含まれている。つまり、Windows ConsoleとしてのGUIアプリケーションが起動したあとに、自動的にPowerShell 5 (powershell.exe)が実行されている。

上記スクリーンショットでは、PowerShell 5から、さらにPowerShell Core 6.1を起動して使っている。このあたりが状況をさらにややこしくしているのだが、そういった使い方も当然できるようになっている。

Windows Consoleという言葉は、特にWindows Terminalが登場してから使われることが増えてきた。Windows TerminalとこれまでのコマンドプロンプトやWindows PowerShellを理解する流れにおいて、「Windows Console」という言葉を使うと都合がよいためではないかと考えられる。

Windows Terminal

そして『Windows Terminal』だ。

macOSやLinuxでよく使われているターミナルアプリケーションのMicrosoft版だと考えればよい。コマンドプロンプトやWindows PowerShellと癒着するのではなく、さまざまシェルを実行するための汎用目的のターミナルアプリケーションだ。Microsoftは従来のコマンドプロンプトやWindows PowerShellは互換性目的で維持するが、今後は基本的にWindows Terminalの開発を進めていくとしている。

Windows Terminalはまだ開発段階だがプレビュー版がすでにMicrosoft Storeに登録されており、一般ユーザも利用できる状態になっている。

Microsoft Storeに登録されたプレビュー版Windows Terminal

プレビュー版Windows Terminalにはまだまだ問題が多いことが説明されている

プレビュー版のWindows Terminalはお世辞にも優れたアプリケーションとは言い難い。提供されている機能は必要最低限でモダンなターミナルアプリケーションが提供している機能の基本は抑えているといった感じだが、GUIはまだまだ荒削りだし、設定も一般ユーザ向けとは言えない。

Windows Terminalプレビュー版の実行例

現段階でのWindows Terminalの特徴はタブUIに対応していることにある。今さらタブUIが話題になるのかと思うかもしれないが、Microsoftにおいては話題になる。これまでMicrosoftの提供するWindows ConsoleインスタンスはタブUIを提供してこなかった。Windows 10でもっと汎用的なタブUIの導入を模索していることも関係しているのだろうが、そもそも最近のターミナルアプリケーションでタブUIが提供されていないというのは致命的なので、そうした背景もあるのだろう。

タブUIに対応したWindows Terminalプレビュー版

Windows Terminalで新規タブを作成しようとした場合、上記スクリーンショットのようにインストールされているシェルの中から対象を選ぶことができる。このあたりもWindows Terminalがcmd.exeやpowershell.exeになど特定のシェルに特化したものではなく、汎用的なターミナルアプリケーションであることを示している。

Windows Terminaklの設定は次のようにJSONファイルになっている。JSONファイルを編集することがWindows Terminalの設定を変更することになっている。

Windows Terminalの設定はJSONファイルの編集で行う

設定ファイルがJSONファイルになっているというのは最近のアプリケーションにはよくあることだ。MicrosofotはVisual Studio Codeなどのオープンソースソフトウェア開発を通じてこうした最新のスタイルを取り込んでいるものと見られる。

*  *  *

これまでWindows Consoleの実装系はそれほど便利なものとはいえない面が強かった。UNIX系コマンドを実行するための互換性改善が図られてきたとはいえ、サードパーティ製のターミナルアプリケーションと比べてしまうと、どうしても機能不足が目立っていた。

しかし、Windows Terminalの登場で状況は変わろうとしている。まだまだ荒削りな状態だが、今後Windows TerminalがWindowsにおけるデフォルトのターミナルアプリケーションとして広く使われていく可能性が高い。提供される機能は時間とともに増えるだろう。今後しばらくはWindows Terminalの発展から目が離せないことになりそうだ。

参考資料

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】RPA入門 - ツールで学ぶ活用シーン

【連載】RPA入門 - ツールで学ぶ活用シーン

AIには、ルールベース、機械学習、深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現しますが、AIのスピンオフという位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPAが注目されています。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします

会員登録(無料)

注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
知りたい! カナコさん 皆で話そうAIのコト
教えてカナコさん! これならわかるAI入門
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
ソフトウェア開発自動化入門
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る