Presque tous les Linux utilisent des versions GNU des commandes Unix de base originales comme ps
, qui, comme vous l'avez noté, prennent en charge les options de style BSD et AT&T.
Étant donné que votre objectif déclaré n'est que la compatibilité entre Linux, cela signifie que la réponse est: «Cela n'a pas d'importance».
Les versions embarquées et autres très petites variantes de Linux utilisent généralement BusyBox au lieu des outils GNU, mais dans le cas de ps
cela, cela n'affecte vraiment pas la réponse, car la version BusyBox est tellement dépouillée qu'elle ne peut être appelée ni AT & Tish ni BSDish.
Au fil du temps, d'autres systèmes Unixy ont réduit les ps
différences de compatibilité. Mac OS X - qui dérive indirectement de BSD Unix et se comporte généralement de la même manière que BSD Unix - accepte à la fois les ps
drapeaux AT & Tish et BSDish .
Solaris / OpenIndiana se comporte également de cette façon, bien que cela soit moins surprenant car il a un historique mixte BSD et AT&T.
FreeBSD, OpenBSD et NetBSD utilisent toujours exclusivement le style BSD.
Plus une boîte Unix est ancienne, plus il est probable qu'elle n'accepte qu'un seul style de drapeaux. Vous pouvez passer en revue les différences sur une telle boîte de la même manière que nous le faisons maintenant: installez les outils GNU, s'ils ne l'ont pas déjà été.
Cela dit, il reste des pièges. ps
la sortie ne doit généralement pas être analysée dans des scripts qui doivent être portables, par exemple, car les systèmes Unixy varient dans les colonnes disponibles, la quantité de données que le système d'exploitation est prêt à rendre visible aux utilisateurs non root, etc.
(Soit dit en passant, notez que c'est "BSD vs AT&T", pas "BSD vs. Unix". BSD Unix est toujours UNIX®. BSD Unix partage un historique de développement direct avec la branche AT&T d'origine. Ce partage va aussi dans les deux sens. : AT&T et ses successeurs ont ramené les innovations BSD chez eux à plusieurs moments de son histoire. Cette unification dans le temps est en partie due aux efforts de The Open Group et de ses prédécesseurs.)
ps
styles d'argument, lequel (BSD ou Unix) est POSIX, alors?En cas de doute, utilisez la syntaxe SysV. Cela a été accepté par beaucoup de gens et c'est la norme de facto. La substance BSD date de la préhistoire ou fait partie d'une branche divergente (SysV était un effort pour mettre fin aux guerres Unix en rassemblant toutes les lignes disparates sous un même toit).
la source