WindowsとUbuntuに同様のシェルコマンドがあるのはなぜですか?


14

Ubuntuにはbash(Bourne Again SHell)がありますが、Windowsには独自のシェルがあります。私の研究によると、Windows / Ubuntuのシェルスクリプトに使用される言語の名前はありません。単にシェルスクリプトと呼ばれます。

なぜWindowsとUbuntuの殻のような同じコマンドを理解してください:lsmkdirrmdirmountなどの上に?

シェルスクリプト用の共通語のようなものはありますか?もしそうなら、詳細を教えてください。


9
en.wikipedia.org/wiki/List_of_Unix_commandsを参照してください-これらのコマンドが最初に登場した時期を探し、WindowsとGNUが最初に登場した時期を確認してください。これらのコマンドはbashの一部ではありません-それらは外部ユーティリティであるため、使用されるシェルは無関係です。
ムル

10
そして、私はlsPowershellによってではなく、Powershellによってサポートされていると確信していcmd.exeます。それは、Powershellの作成者がUnixユーザーがより快適になるように、一般的なUnixコマンドのエイリアスを追加する努力をしたためです。technet.microsoft.com/en-us/library/dd347739.aspx
muru

7
DOSに関するウィキペディアの記事は、これにいくらかの光を当てるかもしれません。引用:「DOSは代わりにIntel 8086 16ビットプロセッサで実行されました。MS-DOS1.28とPC DOS 2.0から、オペレーティングシステムには、MicrosoftのUnixの変種であるXenixに触発されたさまざまな機能が組み込まれました。」したがって、Unixは、ある意味ではMS-DOSの先祖です。 en.wikipedia.org/wiki/DOS
テオドール

4
@muru:実際、Unix DOSの両方のコマンドは、実際には、標準化されたアクションとオブジェクトのセットで構成される標準化された構造に従って命名された実際の PowerShellコマンドの単なるエイリアスです。たとえば、とは両方とも(追加でaliasを持つ)のエイリアスであり、実際(PowerShellのオブジェクトベースのアプローチにより、実際には単なるディレクトリ以上のものを作成できる)などです。Action-ObjectlsdirGet-ChildItemgcimkdirmdNew-Item
ヨルグWミットタグ

2
CPM、VMS、JCLもご覧ください。
ザンリンクス

回答:


44

Windows cmd.exelsmountこれらを自分でインストールして%PATH%(Cygwin、MinGW、Unixベースアプリケーション用サブシステム(SUA)など)に追加しない限り、、などをサポートしません。Powershellはそうです。それは、Powershellが標準のPowershellコマンドのエイリアスとしてこれらを持っているためです。これにより、Unixユーザーはより快適になれます。Powershell互換性エイリアスのリストを参照してください。Windowsにはありますrmdirmkdirなど、が、これらは、もちろん、あなたが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言語は、で期待されるものですshbashkshashdashzshすべての使用その機能強化で、言語を。csh独自の(悪夢のような)世界にあり、をtcsh強化しcshます。

もう少し理解するには、Unixの歴史を調べ、 Unixライクなシステムの。Unixは10年以上前にWindowsに先行し、これらのユーティリティはUnixで初めて登場しました。

Windowsは、かつてPOSIX準拠でした。これは、米国政府が政府機関が使用するOSに対してWindowsを必要としていたためです(追加されたときです) 最初の段落で言及したSUAの由来であるServices for Unix(SFU)です)。しかし、その要件は破棄され、その後、SUAは廃止されました。

関連:

(これらの投稿の共通部分に注意してください-それらはすべてUnixとLinuxにあり、タグ付けされた履歴です -そのタグの閲覧は非常に有益です。)


3
私の知る限り、rmdir(沿って有するmkdircd / chdir)天然であるcommand.comMS-DOS 2.0(前DOSファイルシステムには階層が存在しなかった)ので、ビルトイン
jlliagre

1
rdショートカットでmdもありました。
jlliagre

1
これは私があなたの答えを読んだり、他の人から提供されたリンクをざっと読んだりして得たものです。これらのコマンド/ユーティリティは、さまざまなシステムで過去に初めて登場しました。時間の経過とともに、それらのほとんどはUbuntuに統合され、一部はWindowsに統合されました。しかし、Windowsは独自の方法で処理し、これらのユーティリティの独自のバージョンを作成することにしました。時間が経つにつれて、Windowsは独自のシェルコマンドにエイリアスを追加して、Linuxユーザーがシステム上と同じように見えるが、その下でWindowsコマンドに変換されるコマンドを使用できるようにすることを決めました
Shady Programmer

1
POSIX言語は、で期待されるものですshbashkshashdashzshすべての使用その機能強化で、言語を。csh独自の(悪夢のような)世界にあり、をtcsh強化しcshます。米国政府は政府機関(SUAの出所)が使用するOSに対してPOSIXを必要としていたため、WindowsはかつてPOSIXに従いました。しかし、その要件は破棄され、その後、SUAは廃止されました。
ムル

1
@ShadyProgrammer興味深い別のU&L投稿:unix.stackexchange.com/q/145522/70524
muru

0

シンプル:

Linuxは、デニスリッチーとケントンプソンが発明したUNIXモデルに基づくシステムです。

Windows / DOSは、1970年代にテレビに接続した古いコンピューターで人気があったCP / Mと呼ばれるシステムの安価な模造品であり、このシステムは60年代後半/ 70年代初期の初期のUNIXシステムの安価な模造品でした。


あなたの答えにはいくつかの真実がありますが、あまりにも単純化されすぎて有用ではありません。(そして、私たちはテレビではなくCP / Mを備えたモニターまたは端末を使用しました;)簡単でした-64kマシンでメモリを使い果たしたことはありませんでした。
ジョー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.