しばたテックブログ

PowerShellを中心に気分で書いている技術ブログです。

PowerShell 6.0からPowerShellのプログラム名がpwshに変わります

発端はGitHubのこちらのIssueから

github.com

もともと「PowerShellのプログラム名であるpowershell.exe(powershell)は長いので略称があった方が良いよね。」という提案から始まっています。

新しいPowerShellの略称について

先のIssueを見ればわかりますが、新しいPowerShellの略称は pwsh になりました。

これまでは慣例的にposhが良く使われていましたが、既存の名称(Policy-compliant Ordinary SHell)と重複するため却下され、最終的に名称の重複がないpwshが採用されました。

名前の重複に関しては以前にエイリアスにwgetcurlを使っていた件で荒れに荒れた過去があるためPowerShell Teamとしてかなり慎重になっている様です。

他にも以下の名称が候補に上がっていました。*1

候補 不採用の理由(明確な理由がある場合のみ記載)
posh Policy-compliant Ordinary SHellと名前が重複
ps psコマンドと衝突
psc
psh Perl Shellと名前が重複
msh 既存の様々な略称と重複
mosh Mobile Shellと名前が重複
monad
pscore
coreps
coresh
pscmd
psc
pscx
pscsh cshと名前が重複
pshell
prsh
wpsh
wprsh
pwrsh
paua paua shell(パウア貝)...

個人的はpshが良かったのですが仕方ないですね...

PowerShellのプログラム名が変わる話

PowerShellの新しい略称が決まり、私個人の予想としてはショートカットやシンボリックリンクを張ることで実環境に反映させるのかと思っていたのですが、PowerShell 6.0ではプログラム名(powershell.exe(powershell))をpwsh.exe(pwsh)に変更する対応となりました。

変更するPull Requestが以下に上げられており、つい先日マージされ、正式にプログラム名が変更されることになりました。

github.com

この対応はかなり破壊的な変更になるので正直全く予想できませんでした...

とはいえ破壊的変更といっても非Windows環境においては影響が無く、Windows環境においても既存のWindows PowerShellと明確に区別したいという意図がある様で、改めて考えるとむしろ良い変更なのかな?という気もします。

*1:チェック漏れがあるかも...