ターミナルはなぜ大文字と小文字を区別するのですか?

ターミナルはなぜ大文字と小文字を区別するのですか?

これを行うと、CD ..代わりにcd ..
次のエラーが発生します。

CD: command not found

なぜ?端末Linuxコマンドは大文字と小文字を区別しますか?私は、「すべて大文字」または「すべて小文字」の文字を使用してコマンドを実行できる必要があることです。

どういう理由なのかは分かりますが、ただ気になりました。

答え1

最終的に、これは40年以上前にUnixの創始者がランダムに選んだものでした。 10年後、MS-DOS製作者がしたように大文字と小文字を区別しないかもしれませんが、ここには欠点がありました。

それは*ix文化に深く根付いているので、今は変えることができません。これeppesuigが提起した大文字と小文字の区別ファイルシステムの問題ただそれの一部です。 macOSシステム—どちらがUnixベースですか?- 通常、大文字と小文字を区別しない(ただし大文字と小文字を保持する)ファイルシステムがあるため、これらのシステムでは、シェル外部コマンドは事実上大文字と小文字を区別しません。しかし、次の組み込み機能cd大文字と小文字を区別してください。

大文字と小文字を区別しないファイルシステムを使用しても、物事の記録はあなたの意志に反します、Hussain。lsMacに入力すると、カラフルなディレクトリのリストが表示されます。LS代わりにこれを入力しても実行されますが、追加されたフラグのエイリアスは大文字と小文字を区別するため、/bin/lsリストに色は付けられません。-C

慣れることをお勧めします。可能であれば、それを愛する方法を学びます。

答え2

これは「ターミナル」の問題ではなく、ファイルシステムの機能です。シェルは(常に大文字と小文字を区別する)ファイルシステムでコマンドをどのように見つけるべきですか?

答え3

私が使用して尊重する技術システムは、オペレーティングシステムであるか、プログラミング言語であるか、他のものであれ、ほとんど完全に大文字と小文字を区別します。

今すぐ考えられる例外は、HTMLタグとSQLおよびAdaプログラミング言語の一部の実装です。

このような場合でも、実際にHTMLタグは小文字で書き、SQLクエリセマンティクスは大文字(パラメータ大文字を使用)で書く傾向が強いようです。 (私が間違っている場合は修正してください。)Adaの場合、プロシージャ名を小文字で入力すると、Emacsモードはそれを修正します。しかし、コンパイル時には問題になりません。したがって、大文字と小文字を区別しないにもかかわらず、人々はそれが悪い考えだと思うようです。

その理由は大文字と小文字を区別すると表現力が向上するからです。数量の観点から(CD1つだけでなくCD、、、、 4つ)よりCd重要なことにcDcd大文字を賢く使用して目的、強調などを表現することができ、プログラミング時の読みやすさも向上します。

直感的に、あなたが同じ方法で読んでいないことは明らかですhiHI

しかし、コンピュータの世界の例を挙げると、プログラミング言語Ada(1980年代)では、手続き型コードブロックの最初の行は次のようになります。

procedure body P(SCB : in out Semaphore_Control_Block) is

ご覧のとおり、プロシージャとパラメータ名は大文字で、データ型は大文字で、残りはすべて小文字で表示されます。また、「すべて大文字」パラメータ名が省略形であることを示します。それでは、次のものと組み合わせてください。

procedure body p(scb : in out semaphore_control_block) is

これは、Adaが大文字と小文字を区別しないために可能です(または、コンパイラは最初の例のようにこれを変更しますが、もちろんコードは変更しません)。それともどうですか?

PROCedure body P(Scb : IN Out semaphore_CONTROL_BLOCK) iS

ちょっと面白いということは分かりますが、誰かはそのような言葉を書くほど愚かなことがあります。要点は、大文字と小文字を区別するシステムが人々に一貫性を強制するだけでなく、それを通して助けを受けて(読みやすく)、それを有利に使用するということです(上記の略語の例)。

答え4

「大文字/小文字」大文字と小文字の区別の概念は、ロケールによって異なる可能性があり、他の設計の複雑さと同様に、アプリケーションの一部になるのではなく、アプリケーションスタックの使用ポイントにできるだけ近づける必要があります。スタック部分。核兵器。

大文字と小文字を区別する環境では、大文字と小文字を区別しない環境にラップできますが、その逆は不可能です。

関連情報