Порівняння оболонок Unix


9

Чи є основні оболонки Unix (bash, ksh, tcsh, zsh, інші?), Чи є переконливі причини використовувати один над іншим?

  • Який найбільш інтерактивний / командний рядок?
  • Що є найбільш сприятливим / інтуїтивним для написання сценаріїв?
  • Чи є якісь основні вбудовані функції, які одна оболонка пропонує тим, що інші не мають?
  • Чи справді одна з цих оболонок хороша для одного типу функцій, а не іншої? Або всі вони досить добре округлені / гнучкі?
  • Це лише питання особистої переваги?

Я можу зробити цю вікі спільноти, якщо хто хоче.

Відповіді:


17

Поточний:

  • bash- Оболонка Bourne знову, оболонка за замовчуванням у більшості дистрибутивів Linux. Пристойні риси;
  • zsh - найсильніша функція, але все ще рідко використовується;
  • ksh - оболонка за замовчуванням у Solaris, AIX та інших кількох уніксах;
  • tcsh - оболонка за замовчуванням у різних * ароматах BSD;

Історичний:

  • sh- оригінальна оболонка Борна (випущена 1977). Застарілий баш;
  • csh- оригінальна оболонка С (випущена 1978 р.). Застарілий tcsh і ksh;

Зауважте, що bash, ksh та zsh походять від синтаксису sh, тоді як tcsh походить від синтаксису csh. Це два досить різні синтаксиси.

Діаграма характеристик (вікі).


Більшість сценаріїв, як правило, написано як сумісність, оскільки запуск сценарію через sh зазвичай набагато швидше, ніж bash.
Пробіг

Як це? У Linux / bin / sh є символьним посиланням на / bin / bash.
vartec

2
/ bin / sh не завжди є посиланням на / bin / bash
Бред Гілберт

1
Коли ви інстанціюєте bash як "sh", він працює в режимі "sh", який підтримує підмножину команд bash. Я вважаю, що синтаксис "sh" - це стандарт POSIX.
duffbeer703

У Debian ви можете використовувати 'dash' як заміну для '/ bin / sh'.
сухі змагання

9

риба - це нова оболонка, яка, можливо, цікавіша за інші, не тому, що вона обов'язково має більше функцій, а тому, що вони просто працюють за замовчуванням і тому, що риба прагне до зручності використання.

Кілька скріншотів ( 1 , 2 , 3 , 4 ) достатньо, щоб дати загальну думку.

Риба зараз оболонка за замовчуванням на моєму Mac. Піди розберися.


2

Якщо ви збираєтесь вивчати інші оболонки, ніж sh/ bash, ви можете просто піти з zsh. Я не думаю, що хтось серйозно оскаржує, що це найпотужніший та найпоширеніший з альтернативних снарядів; Зрозуміло, чи просто процвітає, це все ще залишається для дискусій.

Я чув про хороші речі fish, але ніколи не витрачав зусиль на те, щоб потурбуватися ними.

Адміни я знаю , вважати cshі tcshбути гидоти , які слід уникати будь-яку ціну, і я згоден з ними , незважаючи ні разу не були змушені поставити себе або через оболонку.


2

Я рекомендую добре знати bash, оскільки це один з найбільш поширених (як правило, за замовчуванням Linux). Особисто я люблю zsh як свою інтерактивну оболонку. Він має чудові функції завершення. Наприклад, ви можете встановити список хостів, і коли ви зробите щось на кшталт ssh Ser [вкладка], він буде знати, що спробує вкласти автоматично автозаповнення одного з цих хостів. Він також має рекурсивне глобулювання, тому якщо ви хочете знайти всі файли jpeg у поточному та підкаталозі, який ви можете використовувати ls -ld **/*.jpg. З zsh є багато цікавих функцій (пошук файлів .zshrc для людей), і ви можете встановити його на "bash сумісний", тому легко перемикатися між ними. Якщо ви поєднаєте це з екраном GNU, то, можливо, ви знайдете командний рядок із задоволенням працювати.


1

Не забудьте своє інше питання Найпоширеніша оболонка Unix / Linux - найпопулярніша оболонка, мабуть, найпопулярніша з причини ;-)

Для чого це варто, більшість людей не вимикаються між оболонками часто, тому складно порівняти різні варіанти; ви з більшою ймовірністю побачите різних людей, що підтримують чесноти улюблених мушлі. З того, що я мало чула про різні оболонки, всі вони пропонують одні і ті ж основні особливості (як перенаправлення вводу-виводу, історія команд тощо), тому особисті переваги, ймовірно, будуть великою складовою.


1

Переконливою причиною використання ZSH, про яку не було сказано, є режим vi та режим emacs .

Для тих, хто любить використовувати свою м'язову пам’ять vi в оболонці, це вбивча особливість.

А для тих, хто віддає перевагу emacs, ви також можете використовувати ці клавіші, але справжні віруючі emacs, напевно, скажуть, що emacs - їх улюблена оболонка.

;-)


0

Віддавання переваги щоденному використанню справді є важливим для особистого смаку, однак, коли пишуть сценарії, я намагаюся бути сумісними з позиціями заради переносимості.


0

Так само, як Heads Up: Ubuntu за замовчуванням "sh" переходить на "тире", що призводить до деяких проблем у минулому із сумісністю POSIX. Мабуть, команди ехо дещо відрізняються.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.