Windows コマンドライン ツール

OSX と Linux でコーディングに多くの時間を費やしている開発者として、私たちは最新のコマンドライン設定が Windows でどのように見えるか、興味を持たれていました。

StackOverflow のデベロッパー アンケートによると、Windows を使用している開発者の数が他のどの OS よりも多いことが明らかになりました。そのため、私たちは Windows を使用している開発者が、*nix の国にいるのと同等のツールを持っているのではないかと考えました。

私たちは、Windows CLI ツールの状況について時間をかけて評価した後、95% の道のりを進むと思われる一連のツールに決めました。

そして最終的に、以下の組み合わせにたどり着きました。

  • PowerShell
  • ConEmu
  • PSReadLine
  • PSGet
  • チョコレート
  • バブン語(省略可)

これらの機械の各部について、詳しくは下記をご覧ください。

PowerShell(シェル)

  • cmd.exe よりも実際の「シェル」にかなり近いため、タスクを自動化するための強力なスクリプト環境が提供されています。Bashzsh と比較してみましょう。
  • ディレクトリとファイル名をオートコンプリートする
  • アプリケーション名のオートコンプリート
  • エイリアスとコマンドが統合されています(コマンドレットと呼ばれます。たとえば、Select-StringgrepInvoke-ElevatedsudoSort-Objectsort に似ており、Get-Process はすべてのアクティブなプロセスを一覧表示します)。別のシェルから PS に移行する場合、Set-Alias を使用すると、使い慣れたエイリアスを Windows の同等のものにマッピングできます。たとえば、server エイリアスを使用すると、Set-Alias server python -m http.server 8000 は Python サーバーを起動します。
  • エイリアスは PowerShell プロファイルで保持できる
  • Unix などのパイピングをサポートしているUnix とは異なり、テキスト ストリームではなくオブジェクトをパイプします。慣れる必要がありますが、プロパティを取得する場合に再解析は不要です。
  • モジュールをサポートします。PSGet は PowerShell のパッケージ マネージャーであり、簡単に拡張できます。
  • 必要に応じて、Posh-Git(Git でコンテキストに応じてタブ補完を行う PowerShell スクリプト)を検討してください。

トリビアに興味がある場合は、MS がリードのアーキテクトによって PowerShell を作成した理由に対する回答をご覧ください。

PSReadLine(コンソール編集ヘルパー)

  • コンソール編集エクスペリエンスを大幅に改善
  • コマンドの入力を開始するたびにハイライト表示される構文。構文エラーが赤色の「>」で明確に示されている。
  • 高度にカスタマイズ可能なキー バインディング
  • Bash スタイルのオートコンプリート
  • Bash/zsh のインタラクティブな履歴検索(Ctrl+R)。コマンド履歴の走査も強力です。コマンドの最後の行だけではなく、矢印キーを使用して、前の複数行のコマンドを簡単に表示できます。
  • コピー、貼り付け、切り取りの適切なサポート(Ctrl+C、X、V はすべて正常に動作します)
  • 元に戻す/やり直しの適切なサポート
  • 履歴の自動保存

または、Clink を使用することもできます。Clink は同様の機能セットを備えていますが、厳密には PowerShell 用に作成されたものではありません。

ConEmu(コンソール ホスト)

  • 任意のシェルを実行できる高度なコンソール エミュレータ
  • さまざまなタブで複数のターミナルを開くことができます。別のユーザーとして端末を簡単に起動できるようになります。
  • 極めてカスタマイズ可能 - ショートカットからテキスト選択、ステータスバーの色まで、あらゆる項目を変更できます。
  • 分割画面ビューのサポート
  • タブで実行できるシンプルな GUI アプリケーション
  • Windows 7 以降のジャンプリストのサポート
  • スムーズなウィンドウ サイズ変更のサポート
  • Windows フォントのアンチエイリアス
  • 開始タブは、特定のディレクトリから開始するように完全にカスタマイズできます
  • インテリジェントなコピー/貼り付け

今でも Console2 を気に入っている人々もいますが、Scott Hanselman はこれについての投稿を行っています。

Cmder

参考にすべき点は、Cmder です。これは、ConEmu、Clink、msysgit を組み合わせたコンソール エミュレーション パッケージで、Git ヘルパーを提供します。Cmder は基本的にモノカイのカラーパターンにより、デフォルトで ConEmu を美しくします。

Cmder には他にも、Sublime Text などの GUI アプリとの統合など、ちょっとしたメリットもあります。

Chocolatey(Package Manager)

  • Windows 向けの独自仕様であるため、お気に入りの Windows アプリを簡単に取り込むことができます。現在、Chocolatey を使用して直接更新できるパッケージは約 3,000 個用意されています。
  • Nuget とは異なります。NuGet は開発ライブラリ用です。Chocolatey はバイナリ マシン パッケージ マネージャーであり、NuGet インフラストラクチャ上に構築されています。
  • 実質的にサイレント ビルドを提供できる

また、OneGet もご覧ください。これは、Windows 10 で Chocolatey で動作する Microsoft の Package Manager..manager です。

Babun(Cygwin の事前構成済み)

  • Cygwin(Windows 用の Linux に似た環境)から、従来から知られているいくつかの特徴を削除。Babun インストーラを使用すれば、全体的な設定はとても簡単です。特に Unix に精通していて、PowerShell の学習を避けたい方には、cygwin/Babun を検討する価値があります。
  • apt-get に似た pact というパッケージ マネージャー(brew に少し似ています)が含まれています。現在 pact を使用するのではなく、パッケージを追加するときに Cygwin インストーラを再実行する必要があるため、これは重要です。
  • プリインストールおよび事前構成済みの Vim
  • oh-my-zsh のサポートの統合
  • 自動更新

関連情報