Ubuntu hat eine Bash (Bourne Again SHell), während Windows eine proprietäre Shell hat. Nach meiner Recherche 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 Windows - & Ubuntu shells die gleichen Befehle verstehen , 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.
command-line
bash
windows
history-of-ubuntu
Schattiger Programmierer
quelle
quelle
ls
dass Powershell das unterstützt, nichtcmd.exe
. Und das liegt daran, dass die Macher von Powershell einige Anstrengungen unternommen haben, um Aliase für allgemeine Unix-Befehle hinzuzufügen, damit sich Unix-Benutzer wohler fühlen. technet.microsoft.com/en-us/library/dd347739.aspxAction-Object
Struktur benannt sind, die sich aus einer Reihe von ebenfalls standardisierten Aktionen und Objekten zusammensetzt. Beispielsweise sind beidels
unddir
Aliase fürGet-ChildItem
(die zusätzlich über den Alias verfügengci
)mkdir
undmd
tatsächlichNew-Item
(die aufgrund des objektbasierten Ansatzes von PowerShell viel mehr als nur Verzeichnisse erstellen können) und so weiter.Antworten:
Der Windows
cmd.exe
nicht unterstütztls
,mount
usw., es sei denn , Sie diese selbst installiert und fügten sie zu dem%PATH%
(via Cygwin, MinGW, Subsystem für UNIX-basierte Anwendungen (SUA) oder etwas anderes). Powershell macht. Und das liegt daran, dass Powershell diese Befehle als Aliase zu Standard-Powershell-Befehlen verwendet, damit sich Unix-Benutzer wohler fühlen können. Sehen Sie sich die Liste der Kompatibilitäts-Aliase in Powershell an . Windows hatrmdir
,mkdir
usw. , aber diese, natürlich, unterstützen nicht die gleiche Option Syntax , dass Sie auf Ubuntu finden würde.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 der von POSIX beauftragten Dienstprogramme ), und Linux Standard Base (LSB) ist ein weiteres wichtiges Element für Linux-Systeme (das hauptsächlich auf POSIX basiert, jedoch einige Ergänzungen enthält ). Diejenigen unter Ubuntu werden meistens von GNU bereitgestellt , und GNU-Dienstprogramme haben oft mehr Funktionen als die Basis, die von POSIX benötigt wird.
POSIX definiert auch die von Ihnen erwähnte Shell-Sprache (die sich wesentlich von der in unterscheidet
cmd.exe
). Es leitet sich aus der Syntax der Bourne-Shell ab . Bash (jetzt wissen Sie, worauf sich der Bourne bezieht), ebenfalls von GNU, fügt ebenfalls Funktionen hinzu, kann sich aber bei Bedarf POSIX-konform verhalten. Die POSIX-Sprache ist genau das, was Sie erwartensh
.bash
,ksh
,ash
,dash
,zsh
Alle verwenden die Sprache, mit Verbesserungen.csh
ist in einer (Albtraum-) Welt für sich undtcsh
wertet aufcsh
.Um etwas mehr zu verstehen, werfen Sie einen Blick in die Geschichte von Unix und Unix-ähnlichen Systemen. 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 , von denen die im ersten Absatz erwähnte SUA stammte). Diese Anforderung wurde jedoch gestrichen, und anschließend wurde die SUA eingestellt.
Verbunden:
(Beachten Sie den gemeinsamen Teil dieser Beiträge - sie alle auf sind Unix & Linux und getaggten Geschichte -. Sie durch diesen Tag gerade finden könnte sehr informativ)
quelle
rmdir
(zusammen mitmkdir
undcd / chdir
) sind nativecommand.com
Buildins seit MS-DOS 2.0 (vorher gab es keine Hierarchie im DOS-Dateisystem)rd
war auch eine Abkürzungmd
.sh
.bash
,ksh
,ash
,dash
,zsh
Alle verwenden die Sprache, mit Verbesserungen.csh
ist in einer (Albtraum-) Welt für sich undtcsh
wertet aufcsh
. Windows hat sich früher an POSIX gehalten, da es von der US-Regierung für Betriebssysteme vorgeschrieben wurde, die von Regierungsbehörden verwendet wurden (daher kam die SUA). Diese Anforderung wurde jedoch gestrichen, und anschließend wurde die SUA eingestellt.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 .
quelle