Ich finde, dass einige Befehle, zum Beispiel ls
und pwd
, sowohl auf Linux- als auch auf Unix-Systemen verwendet werden können.
- Können alle Linux-Befehle in den Unix-Systemen und alle Unix-Befehle in Linux verwendet werden?
- Oder einfach, dass alle Linux-Befehle unter Unix ausgeführt werden können, aber nicht alle Unix-Befehle unter Linux ausgeführt werden können.
- Oder dass alle Unix-Befehle unter Linux ausgeführt werden können, aber nicht alle Linux-Befehle unter Unix ausgeführt werden können?
- Oder gibt es eine Referenz, die zeigt, welche Befehle unter Linux und Unix ausgeführt werden können und wo beide ihre eigenen eindeutigen Befehle haben?
Antworten:
Daniel Anderssons Kommentar zu POSIX ist hier die richtige Antwort: Es gibt einen Standard namens POSIX, der den Kern eines UNIX-ähnlichen Systems sowohl in Form von Shell-Befehlen als auch in Form von Systemaufrufen definiert. Wenn Sie Software in die POSIX-Spezifikation schreiben, sollte es theoretisch möglich sein, sie auf jedem UNIX-, Linux-, BSD- usw. System zu kompilieren und auszuführen.
http://pubs.opengroup.org/onlinepubs/009695399/mindex.html gibt Ihnen eine endgültige Antwort darauf, was POSIX ausmacht, aber dies ist für praktische Zwecke keine nützliche Antwort. Jemand anderes verfügt möglicherweise über gute Befehlsreferenzen für allgemeine Unterschiede zwischen Linux-Systemen und anderen UNIX-ähnlichen Systemen.
Ein konkretes Beispiel: "killall" unter Linux beendet alle Prozesse mit einem bestimmten Namen. Unter Solaris wird das System heruntergefahren. Wichtig, dass Sie nicht den falschen verwenden.
quelle
cat
eincat
, und denken Sie daran , dass eine Rose von einem anderen Namen noch so süß riechen soll. Hie dich auf eine Windows-Box und lerne, was Unix nicht ist . Aber Linux ist natürlich Unix.Die meisten Linux-Distributionen werden heute mit vielen wichtigen GNU-Programmen und der GNU-Toolchain ausgeliefert. GNU war ein Projekt zum Umschreiben einer frei verfügbaren Unix-Kopie, die später mit dem Linux-Kernel gepaart wurde. Wenn Sie
ls
auf einem Unix-Computer arbeiten, verwenden Sie das Original bzw. was aus dem Original geworden istls
. Wenn Siels
GNU / Linux verwenden, verwenden Sie die GNU,ls
die von Grund auf neu geschrieben wurdels
. Allerdings ist nicht jede GNU-Software genau die gleiche wie ihre Unix-Gegenstücke. Jetzt, da Unix im Wesentlichen zu BSD geworden ist, können GNU / Linux-Distributionen auch die BSD-Version dieses Tools enthalten. Zum Beispielbsdtar
undtar
in den Sinn kommen.tl; dr: Sie sind nicht genau derselbe Code, aber sie sollen größtenteils genau derselbe sein.
quelle
ps
angeht, ist dies das nervigste Beispiel, das ich mir vorstellen kann. Verschiedene Switches auf verschiedenen Systemen (Linux, AIX und Solaris). Auch anderes Ausgabeformat. Der Zweck dieses Befehls ist jedoch auf allen Systemen derselbe.Sie haben nicht angegeben, um welches UNIX es sich handelt (BSD, System V ...). Es gibt keine universelle Antwort (UNIX). Jede UNIX-Variante verfügt über eigene benutzerdefinierte Befehle (z. B. Mac OS X), sodass es auch zwischen UNIX-Versionen unterschiedliche Befehle gibt. In der Regel sind alte Befehle (wie ls, pwd, cd, cp, mv, rm ...) auf allen UNIX-Versionen (einschließlich Linux) gleich.
quelle
Was Sie zuerst berücksichtigen müssen, ist, dass die Befehle eigentlich kleine Programme sind, in diesem Sinne nicht unbedingt ein Teil des Betriebssystems, wenn Sie Haare teilen. Die alten und klassischen gibt es schon lange und sind in den meisten * nix-Systemen enthalten. Wie "vollständig" das Betriebssystem ist, hängt davon ab, was mit dem Paket geliefert wird.
Beispiel: Die meisten Wiederherstellungs- / Notfall-CDs, von denen Sie booten können, enthalten eine schlanke Linux-Distribution. Einige typische Befehle sind in diesen Systemen möglicherweise nicht enthalten, da sie in den meisten Fällen nicht benötigt werden.
quelle
Auf Solaris müssen Sie nur
/usr/gnu/bin
Ihren Pfad ergänzen oder austauschen,/usr/bin
und Ihre Befehlssätze werden sehr ähnlich seinquelle