Open10

WindowsのShellを試す

yulogyulog

CMD.exe

Pros

  • 履歴が残らない(残さなくても良い場合)

Cons

  • 履歴が見れない
  • .batの記法やコマンドが分かりづらい
yulogyulog

PowerShell(pwsh)

Pros

  • クロスプラットフォーム
  • 履歴が残る
  • .ps1の記法やコマンドがCMDより分かりやすい

Cons

  • 履歴をpecoでフィルタリングする場合の描画の挙動が微妙
  • コマンドが長い
  • 文字化けすることがある
yulogyulog

上記のため、Windowsで使えるShellを試してみる。

環境

  • Windows 11
  • Windows Terminal

用途

  • 開発用リポジトリへの移動(ghq+peco)
  • ビルドなどのコマンド実行(go get、go build、mage)
  • ツールのインストール(winget、ghg、go install)

Shellを使って複雑なことはしない想定。

yulogyulog

Elvish

https://elv.sh/
https://github.com/elves/elvish

  • Go製
  • Windowsもサポート(クロスプラットフォーム)

Pros

  • 履歴のフィルタリングを標準でサポート

Cons

  • wingetが使えない(PATHの設定?)
  • インストールがやや面倒
    • バイナリを自分でダウンロードしてPATHの通った場所に置く
    • configファイルは自動で作成されない(自分で作る)
    • Windows Terminalのプロファイルも自分で作る
yulogyulog

Nushell

https://www.nushell.sh/
https://github.com/nushell/nushell

  • Rust製
  • Windowsもサポート(クロスプラットフォーム)

Pros

  • 履歴のフィルタリングを標準でサポート
  • wingetも使える
  • インストールが簡単
    • winget install nushell
    • 初回起動時にconfigを自動作成できる
    • Windows Terminalのプロファイルも自動で作られる(アイコンも付く!)
  • ドキュメントが充実
  • lsやpsなどの内臓コマンドが見やすい

Cons

  • 履歴の重複排除や削除ができない
    • txtなので自分でやればできる