はじめに
WindowsにはCUI環境がいくつもあって、どれを使えばいいのか迷ったので以下4つのコマンドラインインターフェースの特徴をまとめます。
- コマンドプロンプト
- PowerShell
- WSL2(Windows Subsystem for Linux 2)
- ターミナル(Windows Terminal)
コマンドプロンプト
Windowsの歴史上一番古くからある、Windowsのコマンドラインインターフェースです。基本的なコマンド操作ができます。シンプルなファイル・ディレクトリ操作などを行う場面ではコマンドプロンプトが適しています。
また、バッチファイル(.bat)の実行もコマンドプロンプトで行うことができます。
PowerShell
コマンドプロンプトの機能強化版です。.NET Frameworkを基盤としており、システム管理や自動化に特化しています。コマンドレットと呼ばれる動詞+名詞で命令するコマンドプロンプトよりも強力なコマンドがあり、ファイルシステム、レジストリ、サービスなど、Windowsのあらゆる要素を操作できます。
また、lsやcd, mkdirといったお馴染みのLinuxコマンドのエイリアスも登録されているため、Linuxライクな操作も可能です。スクリプトファイル(.ps1)の実行もPowerShellで行うことができます。
WSL2
WSL2はWindows上でLinuxを使うための機能です。後述するターミナルで開いて使うと便利です。
私はLinuxとWindowsのいいとこ取りをしたいのでWSL2 + VSCodeをメインに使い、Windowsの恩恵を受けたいときは普通にWindowsを使うようにしています。
WSL2は厳密にはWindowsのコマンドラインインターフェースというよりは、Windows上で動作するLinux環境なので、タイトル的に微妙かなと思いましたが、WindowsをWSL2にマウントされたドライブだとみなしてファイル操作する方法があるのでまとめています。
ターミナル(Windows Terminal)
いままでの3つのインターフェースを更に統合して扱える上位のインターフェースです。
具体的には、コマンドプロンプト、PowerShell、WSL2のシェル(bashなど)を一つのウィンドウ内でタブとして開いて切り替えることができます。
まとめ
Windows上でLinux環境を使いたい方はWSL2一択ということになります。Linuxを使わず、特にこだわりもなければターミナル(Windows Terminal)でPowerShellを使うのがいいと思います。