Lequel choisir – Commandes BSD ou Unix quand elles sont disponibles?

Les commands comme ps viennent avec beaucoup de parameters, surtout parce qu'elles donnent à l'user la possibilité de choisir entre les flags de style Unix et BSD. J'espère que vous comprendrez mon point ici.

Donc, quand il y a une telle option disponible, laquelle dois-je choisir pour une compatibilité maximale sur tous les systèmes Linux? (la compatibilité maximale est l'une des priorités par exemple)

Je sais que le style Unix est assez évident, mais les commands BSD pour une raison quelconque incluent des informations plus lisibles (titres de colonnes par exemple, colonne CPU etc). Bien sûr, corrigez-moi si je me trompe, mais c'est ce que j'ai ressenti.

Presque tous les Linux utilisent des versions GNU des commands Unix d'origine, comme ps , qui, comme vous l'avez noté, prend en charge les options de style BSD et AT & T.

Puisque votre objective déclaré est seulement la compatibilité entre Linuxes, cela signifie que la réponse est "Cela n'a pas d'importance".

Embedded et d'autres très petites variantes de Linux utilisent généralement BusyBox au lieu des outils GNU, mais dans le cas de ps , cela n'affecte pas vraiment la réponse car la version BusyBox est tellement dépouillée qu'elle ne peut s'appeler ni AT & Tish ni BSDish.

Au fil du time, d'autres systèmes Unixy ont réduit les différences de compatibilité ps . 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 les drapeaux de AT & Tish et BSDish.

Solaris / OpenIndiana se comporte de cette façon aussi, bien que cela soit less surprenant car il a un historique mixte BSD et AT & T.

FreeBSD, OpenBSD et NetBSD sont toujours exclusifs du 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 écrire sur les différences sur une telle boîte de la même manière que nous faisons maintenant: installer les outils GNU, s'ils n'ont pas déjà été installés.

Cela dit, il y a encore des pièges. ps sortie ps ne doit généralement pas être analysée dans les scripts qui doivent être portables, par exemple, puisque les systèmes Unixy varient en fonction des colonnes disponibles, de la quantité de données que le operating system est prêt à rendre visible pour les users non root, etc.

(A propos, notez que c'est "BSD contre AT & T", pas "BSD contre Unix"), BSD Unix est toujours UNIX®, BSD Unix partage un historique de développement direct avec la twig originale d'AT & T. : AT & T et ses successeurs ont ramené chez eux les innovations de BSD à plusieurs moments de son histoire. Cette unification dans le time est en partie due aux efforts de The Open Group et de ses prédécesseurs.

En cas de doute, utilisez la syntaxe SysV. Cela a été accepté par beaucoup de gens, et c'est la norme de facto. Les BSD datent de la préhistoire ou font partie d'une twig divergente (SysV était un effort pour mettre fin aux guerres Unix en rassemblant toutes les lignes disparates sous un même toit).