Linux ⇄ PowerShell コマンド対訳表

「Linuxのあのコマンド、PowerShellでは何?」(その逆も)が一発で分かる対訳表です。やりたいこと・コマンド名のどちらでも検索できます。コマンドはクリックでコピーされます。

使うときの注意点

PowerShellのLinux風エイリアスに注意。 PowerShellでは lscatcdrm などがそのまま動きますが、これは中身が Get-ChildItem などの別コマンドに割り当てられた「別名」です。コマンド名は同じでもオプションは互換性がありません(例: ls -la はPowerShellではエラー)。本表ではエイリアスではなく正式なコマンドレット名を載せています。

curl / wget の罠。 Windows PowerShell 5.1 で curl と打つと、本物のcurlではなく Invoke-WebRequest のエイリアスが動きます。オプションが全く違うためLinuxの感覚で使うとエラーになります。Windows 10以降には本物の curl.exe も同梱されており、curl.exe と拡張子まで打てばそちらが使えます。

文字コードの違い。 Windows PowerShell 5.1 がファイル出力する際の既定はUTF-16です。Linuxサーバーや他のツールに渡すファイルを作るときは -Encoding UTF8 を付けるのが安全です(PowerShell 7以降はUTF-8が既定)。

よくある質問

Q. PowerShellとコマンドプロンプト(cmd)は違うもの?
A. 別物です。cmdは従来のコマンド(diripconfig など)を実行する古いシェル、PowerShellはオブジェクト指向の新しいシェルです。本表はPowerShellを対象としていますが、cmdの伝統的なコマンドの多くはPowerShell上でもそのまま動きます。

Q. Windows PowerShell 5.1 と PowerShell 7 の違いは?
A. 5.1はWindows標準搭載の最終版、7はクロスプラットフォームの後継版(別途インストール)です。本表のコマンドは基本的にどちらでも動きますが、文字コードの既定値など細かい挙動が異なります。注記が必要なものには本表内に記載しています。

Q. 内容に間違いを見つけたら?
A. 検証のうえ修正します。お問い合わせからご連絡ください。