Що вибрати - команди BSD або Unix-стилі, коли вони доступні?


14

Команди на зразок psпоставляються з великою кількістю параметрів, тим більше, що вони дають можливість вибору між прапорами стилю Unix та BSD. Я сподіваюся, що ви зрозумієте мою думку

Отже, коли є така опція, яку вибрати для максимальної сумісності у всіх системах Linux? (максимум сумісності є одним із пріоритетів, наприклад)

Я знаю, що стиль Unix є досить очевидним, але команди BSD чомусь містять більш читабельну інформацію (наприклад, заголовки стовпців, стовпчик процесора тощо). Звичайно, будь ласка, виправте мене, якщо я помиляюся, але це я відчув.

Відповіді:


17

Практично всі Linuxes використовують версії GNU оригінальних ядерних команд Unix, як ps, як ви вже зазначали, підтримує параметри стилю BSD та AT&T.

Оскільки ваша заявлена ​​мета - це лише сумісність між Linuxes, це означає, що відповідь - це не має значення.

Вбудовані та інші дуже малі варіанти Linux зазвичай використовують BusyBox замість інструментів GNU, але у випадку psце дійсно не впливає на відповідь, оскільки версія BusyBox настільки знята, що її не можна назвати ні AT & Tish, ні BSDish.

З часом інші системи Unixy зменшили psрізницю сумісності. Mac OS X - який опосередковано походить від BSD Unix і в цілому поводиться найбільш схоже на BSD Unix досі - приймає як AT & Tish, так і BSDish psпрапори.

Solaris / OpenIndiana також поводиться так, хоча це і не менш дивно, оскільки вона має змішану історію BSD та AT&T.

FreeBSD, OpenBSD і NetBSD все ще залишаються виключно стилем BSD.

Чим старше вікно Unix, тим більше шансів на те, що він приймає лише один стиль прапорів. Ви можете роздрукувати відмінності на такому вікні так само, як ми зараз: встановіть інструменти GNU, якщо вони ще не були встановлені.

Однак, пастки все ще є. psвисновок, як правило, не слід розбирати в скриптах, які повинні бути портативними, наприклад, оскільки системи Unixy залежать від наявних стовпців, обсягу даних, які ОС готова зробити видимими для некористуючих користувачів тощо.

(До речі, зауважте, що це "BSD vs. AT&T", а не "BSD vs. Unix". BSD Unix все ще є UNIX®. BSD Unix ділиться історією прямого розвитку з оригінальною галуззю AT&T. Цей обмін іде також обома способами. : AT&T та його наступники повернули інновації BSD додому в декілька моментів своєї історії. Це об'єднання з часом частково пояснюється зусиллями The Open Group та її попередників.)


Незважаючи на те, що це чудове пояснення (і відповідь), це не допомагає в питанні: Який стиль я повинен вибрати, щоб вивчити?
Ярл

@Jarl: Спершу вивчіть POSIX. Це доступно скрізь. Потім дізнайтеся, які дивні варіанти використовуються в системах, які ви найбільше використовуєте. Ігноруйте решту.
Warren Young

У випадку psстилів аргументів, який (BSD або Unix) є POSIX, тоді?
Ярл

@Jarl: Дивіться специфікацію . Взагалі кажучи, POSIX схиляє більше SysVish, ніж BSD, оскільки POSIX керується економікою, і всі основні комерційні Unixes того часу були похідними System V.
Warren Young

0

У разі сумнівів використовуйте синтаксис SysV. З цим погодилося багато людей, і це є фактичним стандартом. Матеріал BSD або датується доісторичним періодом, або є частиною якоїсь розбіжної гілки (SysV намагався покінчити з війнами Unix шляхом підведення всіх розрізнених ліній під одним дахом).


Фактично стандарт для Linux, а не Solaris, * BSD, OSX тощо
chiggsy

Звичайно , це є стандартом для Solaris (який був перший SysV вийти, пам'ятайте). Його дотримувались, принаймні, AIX та HP-UX IBM. BSD - це прихильність минулої епохи.
фонбранд

1
Ви праві, що Solaris є SysV, моя помилка.
chiggsy

3
Оголошено, хоча я сумніваюся у зневажливих посиланнях на BSD. Непогано продовжувати робити справи правильно.
chiggsy

2
-1: По-перше, я думаю, ви маєте на увазі стандарт де-юре . Щоб розглянути параметри стилю SysV фактично стандартними, вам доведеться ігнорувати кілька фактів існування: FreeBSD, OpenBSD та NetBSD. Ви не можете перенести їх із існування аргументом "доісторії". По-друге, Solaris не була першою системою V. Це може бути перша комерційна доставка SVR4 , але SVR1 був розроблений для Vaxen та PDP-11 .
Warren Young
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.