Windows cmd.exe
はls
、mount
これらを自分でインストールして%PATH%
(Cygwin、MinGW、Unixベースアプリケーション用サブシステム(SUA)など)に追加しない限り、、などをサポートしません。Powershellはそうです。それは、Powershellが標準のPowershellコマンドのエイリアスとしてこれらを持っているためです。これにより、Unixユーザーはより快適になれます。Powershellの互換性エイリアスのリストを参照してください。Windowsにはありますrmdir
、mkdir
など、が、これらは、もちろん、あなたがUbuntuの上で見つけるだろうと同じオプションの構文をサポートしていません。
Ubuntuでは、これらはBashとは関係ありません。それらはすべて外部コマンドです。そのようなユーティリティには標準があります。POSIXは最も注目に値し(POSIX必須ユーティリティのリストを参照)、Linux Standard Base(LSB)はLinuxシステムにとって重要なもう1つです(これはほとんどPOSIXに基づいていますが、いくつかの追加があります)。Ubuntu上のものは主にGNUによって提供され、GNUユーティリティは多くの場合POSIXで必要なベースよりも多くの機能を備えています。
POSIXは、あなたが言及したシェル言語も定義しています(これはの言語とはかなり異なりますcmd.exe
)。Bourneシェルの構文から派生しています。また、GNUのBash(今ではBourneが何を指しているかを知っています)も機能を追加しますが、必要に応じてPOSIX準拠の方法で動作できます。POSIX言語は、で期待されるものですsh
。bash
、ksh
、ash
、dash
、zsh
すべての使用その機能強化で、言語を。csh
独自の(悪夢のような)世界にあり、をtcsh
強化しcsh
ます。
もう少し理解するには、Unixの歴史を調べ、 Unixライクなシステムの。Unixは10年以上前にWindowsに先行し、これらのユーティリティはUnixで初めて登場しました。
Windowsは、かつてPOSIX準拠でした。これは、米国政府が政府機関が使用するOSに対してWindowsを必要としていたためです(追加されたときです) (最初の段落で言及したSUAの由来であるServices for Unix(SFU)たです)。しかし、その要件は破棄され、その後、SUAは廃止されました。
関連:
(これらの投稿の共通部分に注意してください-それらはすべてUnixとLinuxにあり、タグ付けされた履歴です -そのタグの閲覧は非常に有益です。)