it-swarm.com.de

Warum haben Windows und Ubuntu ähnliche Shell-Befehle?

Ubuntu hat eine Bash (Bourne Again Shell), während Windows eine proprietäre Shell hat. Nach meinen Recherchen gibt es keinen Namen für die Sprache, die für Shell-Skripte in Windows/Ubuntu verwendet wird. Es heißt nur Shell-Scripting.

Warum verstehen Windows- und Ubuntu-Shells dieselben Befehle wie: ls, mkdir, rmdir, mount und so weiter?

Gibt es eine Art Verkehrssprache für Shell-Skripte? Wenn ja, geben Sie mir bitte weitere Details.

14

Windows _cmd.exe_ unterstützt ls, mount usw. nur, wenn Sie diese selbst installiert und zum _%PATH%_ hinzugefügt haben (über Cygwin, MinGW, Subsystem für Unix-basierte Anwendungen (SUA oder etwas anderes). Powershell funktioniert. Dies liegt daran, dass Powershell diese Befehle als Aliase zu Standard-Powershell-Befehlen verwendet, damit sich Unix-Benutzer wohler fühlen können. Siehe die Liste von Kompatibilitäts-Aliases in Powershell . Windows hat rmdir, mkdir, etc. , aber diese unterstützen natürlich nicht die gleiche Optionssyntax, die Sie unter Ubuntu finden würden.

In Ubuntu haben diese nichts mit Bash zu tun. Sie sind alle externe Befehle. Es gibt Standards für solche Dienstprogramme. POSIX ist am bemerkenswertesten (siehe die Liste von POSIX-mandated utilities ), und Linux Standard Base (LSB) ist ein weiterer wichtiger Punkt für Linux-Systeme (die hauptsächlich auf POSIX basieren, aber einige Zusätze ) haben. Diejenigen unter Ubuntu werden meistens von den Hilfsprogrammen GNU und GNU bereitgestellt, die häufig mehr Funktionen bieten als die von POSIX benötigte Basis.

POSIX definiert auch die von Ihnen erwähnte Shell-Sprache (die sich wesentlich von der in cmd.exe unterscheidet). Es leitet sich aus der Syntax von der Bourne-Shell ab. Bash (jetzt wissen Sie, worauf sich die Bourne bezieht), ebenfalls von GNU, fügt ebenfalls Funktionen hinzu, kann sich jedoch POSIX-konform verhalten wenn nötig. Die POSIX-Sprache ist die Sprache, die Sie mit sh erwarten. bash, ksh, ash, dash, zsh alle verwenden , dass Sprache, mit Verbesserungen. csh befindet sich in einer (Albtraum-) Welt für sich und tcsh verbessert csh.

Um ein bisschen mehr zu verstehen, schauen Sie sich die Geschichte von Unix- und nix-like -Systemen an. Unix ist mehr als ein Jahrzehnt älter als Windows, und diese Dienstprogramme wurden erstmals unter Unix eingesetzt.

Windows war zu einer Zeit POSIX-konform, da es von der US-Regierung für Betriebssysteme vorgeschrieben wurde, die von Regierungsbehörden verwendet wurden (zu diesem Zeitpunkt fügten sie die Dienste für Unix (SFU) hinzu, woraus der in erwähnte SUA hervorging erster Absatz). Diese Anforderung wurde jedoch gestrichen, und anschließend wurde die SUA eingestellt.

Verbunden:

(Beachten Sie den allgemeinen Teil dieser Posts - sie sind alle auf nix & Linux und mit history gekennzeichnet - Sie können das Durchsuchen dieses Tags sehr informativ finden.)

44
muru

Einfach:

Linux ist ein System, das auf dem von Dennis Ritchie und Ken Thompson erfundenen UNIX-Modell basiert.

Windows/DOS ist ein billiger Abbruch eines Systems namens CP/M, das in den 1970er Jahren auf den alten Computern, die Sie an einen Fernseher angeschlossen haben, populär war. Dieses System war wiederum ein billiger Abbruch der frühen UNIX-Systeme aus den späten 60er/frühen 70er Jahren .

0
delt