Ubuntuにはbash(Bourne Again Shell)がありますが、Windowsには独自のシェルがあります。私の研究によると、Windows/Ubuntuのシェルスクリプトに使用される言語の名前はありません。シェルスクリプトと呼ばれます。
なぜWindowsとUbuntuシェルは、ls
、mkdir
、rmdir
、mount
などの同じコマンドを理解するのですか?
Shellスクリプト用の共通語のようなものはありますか?もしそうなら、詳細を教えてください。
Windows cmd.exe
はls
、mount
などをサポートしません。これらを自分でインストールして%PATH%
に追加しない限り(Cygwin、MinGW、 nixベースのアプリケーション用サブシステム(SUA ) またはその他))。 Powershellは行います。それは、Powershellがこれらを標準のPowershellコマンドのエイリアスとして持っているためです。これにより、Unixユーザーはより快適になれます。 Powershellの互換性エイリアス のリストを参照してください。 Windowsには rmdir
、mkdir
など がありますが、これらはもちろん、Ubuntuで見られるのと同じオプション構文をサポートしていません。
Ubuntuでは、これらはBashとは関係ありません。それらはすべて外部コマンドです。そのようなユーティリティには標準があります。 POSIX が最も注目に値します( POSIX必須ユーティリティ のリストを参照)、そして Linux Standard Base(LSB) も重要ですLinuxシステムの場合(ほとんどがPOSIXに基づいていますが、 一部の追加 があります)。 Ubuntu上のもののほとんどは GNU で提供され、GNUユーティリティはPOSIXで必要なベースよりも多くの機能を備えていることがよくあります。
POSIXでは、 シェル言語 についても定義しています(これは cmd.exe
のものとは大幅に異なります)。 Bourne Shell の構文から派生しています。 Bash(Bourne againが何を参照しているか知っています)また、GNUからも機能が追加されていますが、POSIX準拠の方法で動作できます必要な場合に。 POSIX言語は、sh
で得られるものです。 bash
、ksh
、ash
、dash
、zsh
all usethat拡張された言語。 csh
は(悪夢のような)独自の世界にあり、tcsh
はcsh
を強化します。
もう少し理解するには、Unixと nixのような システムの歴史を調べてください。 Unixは10年以上前にWindowsに先行し、これらのユーティリティはUnixで初めて登場しました。
Windowsは、かつてPOSIX準拠でした。これは、米国政府が政府機関が使用するOSに対してWindowsを必要としていたためです( Services for Unix(SFU) 。最初の段落)。しかし、その要件は破棄され、その後、SUAは廃止されました。
関連する:
(これらの投稿の共通部分に注意してください-それらはすべて nixおよびLinux にあり、タグ付き history -そのタグを参照すると非常に有益であることがわかります。)
シンプル:
Linuxは、デニスリッチーとケントンプソンが発明したUNIXモデルに基づくシステムです。
Windows/DOSは、1970年代にテレビに接続した古いコンピューターで普及していたCP/Mと呼ばれるシステムの安価な模造品であり、このシステムは60年代後半/ 70年代初期の初期のUNIXシステムの安価な模造品でした。