Из основных оболочек Unix (bash, ksh, tcsh, zsh, другие?) Есть ли веские причины использовать один поверх другого?
- Что является наиболее интерактивным / дружественным к командной строке?
- Что является наиболее подходящим / интуитивным для написания сценариев?
- Существуют ли основные встроенные функции, которые предлагает одна оболочка, а другие нет?
- Любая из этих оболочек действительно хороша для одного типа функции, но не для другого? Или они все довольно хорошо округлены / гибкие?
- Это просто вопрос личных предпочтений?
Я могу сделать это сообщество вики, если кто-то предпочитает.
fish - это новая оболочка, которая, возможно, более интересна, чем другие, не потому, что она обязательно имеет больше функций, а потому, что они просто работают по умолчанию и потому, что рыба стремится к удобству использования.
Несколько скриншотов ( 1 , 2 , 3 , 4 ) достаточно, чтобы дать общее представление.
fish теперь стандартная оболочка на моем Mac на работе. Пойди разберись.
источник
Если вы собираетесь изучать оболочку, отличную от
sh
/bash
, вы можете просто пойти дальшеzsh
. Я не думаю, что кто-то всерьез оспаривает, что это самая мощная и функциональная из альтернативных оболочек; конечно, все еще предстоит спорить.Я слышал о хороших вещах
fish
, но никогда не пытался беспокоиться о них.Админы я знаю , считать
csh
иtcsh
быть мерзости , которые следует избегать любой ценой, и я согласен с ними , несмотря ни разу не были вынуждены поставить себя либо через оболочку.источник
Я бы порекомендовал хорошо знать bash, так как он один из самых распространенных (обычно по умолчанию в Linux). Лично я люблю zsh как свою интерактивную оболочку. У этого есть большие особенности завершения. Например, вы можете установить список хостов, и когда вы сделаете что-то вроде ssh Ser [tab], он попытается автоматически завершить один из этих хостов. Он также имеет рекурсивное перетаскивание, поэтому, если вы хотите найти все файлы JPEG в текущем и подкаталоге, вы можете использовать
ls -ld **/*.jpg
. В zsh есть много интересных функций (поиск файлов .zshrc людей), и вы можете установить для него «совместимость с bash», так что легко переключаться между ними. Если вы объедините это с GNU Screen, вы можете обнаружить, что с командной строкой работать довольно приятно.источник
Не забывайте свой другой вопрос. Наиболее распространенная оболочка Unix / Linux - самая популярная оболочка, вероятно, самая популярная по причине ;-)
Что бы это ни стоило, большинство людей не часто переключаются между оболочками, поэтому будет сложно получить всестороннее сравнение различных вариантов; вы с большей вероятностью увидите, как разные люди отстаивают достоинства своих любимых оболочек. Из всего, что я слышал о различных оболочках, все они предлагают одни и те же базовые функции (такие как перенаправление ввода / вывода, история команд и т. Д.), Поэтому личные предпочтения, вероятно, будут большим компонентом.
источник
Убедительная причина использования ZSH, которая не была упомянута, это режим vi и режим emacs .
Для тех, кто любит использовать свою мышечную память в оболочке, это убийственная особенность.
И для тех, кто предпочитает emacs, вы также можете использовать эти комбинации клавиш, но истинные сторонники emacs, вероятно, скажут, что emacs - их любимая оболочка.
;-)
источник
Предпочтение ежедневного использования действительно зависит от личного вкуса, однако, когда я пишу сценарии, я стараюсь быть посликс-совместимым ради переносимости.
источник
Так же, как Heads Up: Ubuntu по умолчанию использует "sh" для "dash", что в прошлом приводило к некоторым проблемам с совместимостью с POSIX. Видимо, эхо-команды немного отличаются.
источник