So ziemlich alle Linux-Versionen verwenden GNU-Versionen der ursprünglichen Unix-Kernbefehle ps
, die, wie Sie bereits bemerkt haben, sowohl BSD- als auch AT & T-Optionen unterstützen.
Da Ihr erklärtes Ziel nur die Kompatibilität zwischen Linuxen ist, heißt die Antwort: "Es spielt keine Rolle."
Eingebettete und andere sehr kleine Linux-Varianten verwenden in der Regel BusyBox anstelle der GNU-Tools, haben jedoch ps
keinen Einfluss auf die Antwort, da die BusyBox-Version so reduziert ist, dass sie weder als AT & Tish noch als BSDish bezeichnet werden kann.
Im Laufe der Zeit haben andere Unixy-Systeme die ps
Kompatibilitätsunterschiede verringert . Mac OS X - das indirekt von BSD Unix abgeleitet ist und sich im Allgemeinen noch immer am ähnlichsten wie BSD Unix verhält - akzeptiert sowohl AT & Tish- als auch BSDish- ps
Flags.
Solaris / OpenIndiana verhält sich auch so, obwohl dies weniger überraschend ist, da es eine gemischte BSD- und AT & T-Geschichte hat.
FreeBSD, OpenBSD und NetBSD verwenden immer noch ausschließlich den BSD-Stil.
Je älter eine Unix-Box ist, desto wahrscheinlicher ist es, dass sie nur einen Flaggenstil akzeptiert. Sie können die Unterschiede auf einer solchen Box auf die gleiche Weise wie jetzt dokumentieren: Installieren Sie die GNU-Tools, sofern diese noch nicht installiert wurden.
Trotzdem gibt es immer noch Fallen. ps
Die Ausgabe sollte im Allgemeinen nicht in Skripten analysiert werden, die portierbar sein müssen, z. B. weil Unixy-Systeme in Bezug auf die verfügbaren Spalten, die Datenmenge, die das Betriebssystem für Nicht-Root-Benutzer sichtbar machen möchte, usw. variieren.
(Übrigens, es ist "BSD vs. AT & T", nicht "BSD vs. Unix". BSD Unix ist immer noch UNIX®. BSD Unix teilt eine direkte Entwicklungshistorie mit der ursprünglichen AT & T-Niederlassung. Diese Weitergabe funktioniert auch in beide Richtungen : AT & T und seine Nachfolger brachten BSD-Innovationen an mehreren Stellen in ihrer Geschichte nach Hause. Diese Vereinheitlichung im Laufe der Zeit ist teilweise auf die Bemühungen von The Open Group und seinen Vorgängern zurückzuführen.)
ps
Argumentstil (BSD oder Unix) ist dann POSIX?Verwenden Sie im Zweifelsfall die SysV-Syntax. Dies wurde von vielen Menschen vereinbart und ist de facto der Standard. Das BSD-Zeug stammt entweder aus der Vorgeschichte oder ist Teil eines unterschiedlichen Zweigs (SysV war ein Versuch, die Unix-Kriege zu beenden, indem alle unterschiedlichen Linien unter einem Dach vereint wurden).
quelle