Windows PowerShellはUnix / Linuxのターミナルと同じくらい強力ですか?[閉まっている]


44

Windows PowerShellはLinuxと同じくらい強力で効率的terminalですか?

オフラインの人々は、多くを説明することなく、Windows PowerShellはUnix管理者にWindowsの使用をより快適にさせる試みだと言っています。しかし、彼らはそれが(またはほぼ)同じ効率を持っている場合にのみ快適になると思います。


3
THAT Linuxシェルはないので、答えるのは難しいです。Linux(または一般的に* nixシステム)で一般的に使用される多くのシェルがあります。最も使用されているのはbashなので、それについて尋ねることができます。<br>また、「強力な」は非常に意見に基づいています。
クリツェフィッツ14年

7
People offline tell me ... that Windows Powershell is an attempt to make UNIX administrators feel more comfortable using Windows.それらの人々はUnixもPowershellも使用していません。
surfasb 14年

PowerShellは、Microsoftの一部の領域から、強力なシェルを使用できないことで混乱していることを認めていると思います。ただし、UNIXのスタイルはまったくコピーされません。PSを知るには、Windowsがどのように動作し、.NETがどのように動作するかについて少し理解するのが本当に上手です。
ジュリアンナイト14年

ところで、Microsoftには、UNIXからWindows Serverへの移行を支援するための移行ツールキットの一部であるBASHシェルがありました。
ジュリアンナイト14年

1
私は、ほとんどの点でWindowsよりもUnixを好む長年のUnixファンです。ただし、PowerShellは、純粋なテキストではなくキー/値のペアを持つオブジェクトをパイプするため、bashに勝ります。これにより、デザインはbashよりもjQueryに似ています。
マリオ14

回答:


55

さて、あなたの最初の問題は、シェル(PowerShell)と端末を比較していることです。Linuxでは、ターミナルは文字ベースのI / Oを送受信するものであり、背後にインタラクティブユーザーがいると見なされます(つまり、シェルを含むために使用されるGUIアプリケーションです)。Ubuntuのターミナル内で実行される最も一般的なシェルの1つはBashですが、他にもあります。

オフラインの人々は、多くを説明することなく、Windows PowerShellはUnix管理者にWindowsの使用をより快適にさせる試みだと言っています。

実際、PowerShellはWindowsがWindows であり、インタラクティブでスクリプト可能なコマンドライン環境でWMICOM、および.NETオブジェクトモデルの多くを公開しています。およびI / Oリダイレクト-古いDOS(2.0以降)command.comと同様に、Unixシェルからcmd.exe。パイプラインは、PowerShellのオブジェクトで機能します。十分な知識があれば、その場でHTMLやExcelスプレッドシートを作成できます。確かに、Windows NT 4.0cmd.exeからあまり変わっていない古いシェルからのアップグレード/交換です。

構文については、(コマンドレットの最後にどれも使用しませんが、それはあまりUnixシェルのようなものです/スイッチまたはパラメータインジケータとして)が、古典的なUnixのコマンドには多くの別名がある-などに入るなどlsのように動作しますPowerShellウィンドウではdir。しかし、これらは単なるエイリアスです(「Get-Alias」にリストされていますか?)。

PowerShellの機能に関しては、VBScriptCScriptから、スクリプトのみの形式で、実際には同様の機能がありましたが、どちらも.NETより前のものです。

ほとんどの場合、Bashを使用するときにUnixの人がしなくてよいことの1つは、多くの高度で単純なPowerShellタスクに必要なプログラマーまたはオブジェクトの非常に精巧なオブジェクトモデルに精通していることです。しかし、これは多くの標準POSIXコマンドのストレートテキスト出力の明確な規則があるためにのみ可能です。Windowsにはこの伝統がありません。mmc管理タスクにコンソールを使用することを好み、長年にわたってコマンドをあちこちに追加しているようです。さらに、多くの有名なUnixユーティリティは複雑でありrsync、使用する前にある程度の調査が必要です-、、および他の多くのユーティリティwget。効率はおそらく、使用しているツールを他の何よりもよく知っているかどうかの関数です。


8
PowerShellが.NETをコンソールおよびスクリプトホストとして公開していることに言及して+1。スクリプトで使用される多くの主要なWindowsライブラリのパワーを公開します。2つのユースケースは似ているかもしれませんが、スタイルはまったく異なります。
ジュリアンナイト14年

3
ターミナルにシェルが含まれていることに言及するための+1。私は長い間WindowsとLinuxを使ってきましたが、誰も違いをはっきりと述べたことはありませんでした。
タイラーコリアー14

25

Windows PowerShellとUnixシェルは、両方に利点がある2つの異なるものです。

Unix(シェル)には、すべてがファイルであるという哲学があります。Unixコマンドの入出力には、ファイルのようにアクセスできます。これにより、コマンドの連鎖が非常に簡単になり、あるコマンドの出力を別のコマンドで再利用することがUnixシェルの力になります。

Windows PowerShellでは、私が知る限り、すべてがオブジェクトです。コマンドの結果をオブジェクトとして別のユーザーに渡すことができます。これは非常に強力ですが、Unixの単純な概念はありません。

PowerShellがUnixシェルほど効率的であるとは思いませんが、他の人はそうだと信じています。

しかし、Windowsは* nixシステムではないため、比較は無意味です。したがって、* nixの概念は適用されません。MS-DOSと比較して、PowerShellは大きな改善です。


4
すべてはファイルとシェルとは何の関係もない、それはカーネルのことです。
テルドン14年

3
確かに、unixシェルの設計方法に影響を与えます。
ビアピー14年

@terdon:その通りですが、シェルはこれでうまく動作します。それはまだのような記号を認識し、シェルのため|<または>
クリツェフィッツ14年

1
人々は、これらのオブジェクトについてパワーシェルで話し続けています。cmd.exeとbash(または他のシェル)にのみ使用されているので、おそらく簡単な例で詳しく説明できますか?
リュック14年

5
このページから離れることなく-パイプの右側にある* nixシステムで物事をパイプラインするとき、単純なテキスト、たとえば--- history | grep cp ---はcpを含む行のみを返します。一方、右側のPSで物事をパイプライン処理すると、次のようなプロパティを持つオブジェクトが取得されます--- Get-History | Where-Object {$ _。CommandLine -eq "cp"} --- $ _は各オブジェクト、CommandLineはプロパティ、-eqは文字列cpと等しく、最後に文字列cpです。
不明
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.