![Windows PowerShell は Unix/Linux のターミナルと同じくらい強力ですか?](https://rvso.com/image/1395271/Windows%20PowerShell%20%E3%81%AF%20Unix%2FLinux%20%E3%81%AE%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%A8%E5%90%8C%E3%81%98%E3%81%8F%E3%82%89%E3%81%84%E5%BC%B7%E5%8A%9B%E3%81%A7%E3%81%99%E3%81%8B%3F%20.png)
WindowsはパワーシェルLinux と同じくらい強力で効率的ですかterminal
?
オフラインの人たちは、あまり説明せずに、Windows PowerShell は Unix 管理者が Windows をより快適に使用できるようにするための試みだと言います。しかし、彼らが快適に感じるには、Windows PowerShell が同等の (またはほぼ同等の) 効率性を備えている必要があると思います。
答え1
まず、シェル(PowerShell)とターミナルを比較していることが問題です。Linuxでは、ターミナルとは文字ベースのI/Oを送受信するもので、その背後に対話型のユーザーがいることが前提となっています(言い換えれば、含むシェル)。最も一般的なシェルの1つは内でUbuntuのターミナルはバッシュ、他にもあります。
オフラインの人たちは、あまり説明せずに、Windows PowerShell は Unix 管理者が Windows をより快適に使用できるようにするための試みだと言います。
実際、PowerShellはWindowsの多くの機能を露出させていると言うのが正しいでしょう。ウィキペディア、コムそして。ネットインタラクティブでスクリプト可能なコマンドライン環境でのオブジェクトモデル - そして、このコマンドライン環境は、パイプラインやI/Oリダイレクトなど、古いDOS(2.0以降)と同様に、Unixシェルから多くの概念を借用し続けていcommand.com
ますcmd.exe
。パイプラインはPowerShellのオブジェクトで機能します。HTMLを作成したり、エクセル十分に知識があれば、スプレッドシートを即座に作成できます。これは、cmd.exe
ほとんど変更されていない古いシェルからのアップグレード/置き換えです。Windows NT4.0 の場合。
構文に関しては、Unix シェルとはあまり似ていませんが (ただし、最終的にはコマンドレットのいずれもスイッチまたはパラメータ インジケーターとして使用しません)、従来の Unix コマンドに対するエイリアスが多数あります。たとえば、 PowerShell ウィンドウに と/
入力すると、のように動作します。ただし、これらは単なるエイリアスです (「Get-Alias」でこれらが一覧表示されます)。ls
dir
PowerShellの機能に関しては、スクリプトのみで同様の機能がありました。VBスクリプトそしてCスクリプトただし、これらは両方とも .NET より前のものです。
UnixユーザーがBashを使用する際にほとんどの場合必要としないことの1つは、多くの高度なPowerShellタスクや単純なPowerShellタスクに必要な、プログラマーやオブジェクトの非常に複雑なオブジェクトモデルに精通していることです。しかし、これが可能なのは、多くの標準的なスクリプトでテキスト出力が明確に規定されているからです。POSIXコマンド。Windows にはこの伝統がありません。mmc
管理タスクにはコンソールを使用するのが好まれ、コマンドは長年にわたってあちこちに追加されてきました。さらに、よく知られている Unix ユーティリティの多くは複雑で、使用する前にある程度の学習が必要です。rsync
、wget
、などなど。効率性は、おそらく何よりも、自分が使用しているツールをどれだけよく知っているかによって決まります。
答え2
Windows PowerShell と Unix シェルはそれぞれ異なるものですが、それぞれに利点があります。
Unix (シェル) には、すべてがファイルであるという哲学があります。Unix コマンドの入力と出力は、ファイルのようにアクセスできます。これにより、コマンドの連鎖が非常に簡単になり、あるコマンドの出力を別のコマンドで再利用できるのが Unix シェルの強みです。
Windows PowerShell では、私の知る限り、すべてがオブジェクトです。コマンドの結果をオブジェクトとして別のコマンドに渡すことができます。これは非常に強力ですが、Unix のようなシンプルな概念はありません。
PowerShell が Unix シェルほど効率的だとは私は信じていませんが、そう信じている人もいます。
しかし、Windowsは*nixシステムではないので、*nixの概念は適用されないため、比較は意味がありません。MS-DOSPowerShell は大きな改善点です。