Подтвердить что ты не робот

Какую оболочку Linux я должен использовать?

Я использовал bash, csh и tcsh. Но я спросил этот вопрос, и Джонатан сообщил мне, что csh не нужно доверять. Итак, какая оболочка Linux хороша для разработки. и почему?

4b9b3361

Ответ 1

На сегодняшний день наиболее распространенной оболочкой в Linux является bash. Если у вас нет веской причины использовать альтернативу, я бы предложил использовать команду bash или наиболее часто используемую оболочку вашей проектной команды (или большую часть сценариев оболочки, с которыми вам приходится работать).

Единственный другой очень распространенный претендент - это тире, который все более широко используется в проекте Ubuntu.

Это действительно личное предпочтение, ну, за исключением csh.

Ссылка на Википедию для csh

Ответ 2

Я предпочитаю zsh.

Только табло-пополнение стоит:

  • Он расширяет подстановочные знаки, если вы хотите (удобно, когда вы хотите удалить все, кроме одного файла в каталоге)
  • Дает вам список переключателей после указания программы
  • Предоставляет параметры завершения вкладок под строкой, над которой вы работаете, что очень удобно.

http://zsh.sourceforge.net/

Ответ 3

Для интерактивности используйте Zsh. Некоторое время я был сторонником FreeBSD-порта сценариев завершения Bash, но отказался от него, как только я впервые попробовал Zsh. Он может делать все, что Bash может сделать, но более легко и элегантно. Он также обладает прекрасным свойством иметь чрезвычайно Bash -подобные нажатия клавиш, поэтому, если вы находитесь в системе без Zsh, вы сможете сделать (даже если это не будет "чувствовать" как приятно).

Для сценариев используйте Bourne Shell (sh). Это стандартный скриптовый язык POSIX, и ваши скрипты в значительной степени гарантированно работают повсюду. Bash и Zsh и другие оболочки имеют приятные расширения, которые вы пропустите, но они привязывают вас к определенной настройке. Игнорируйте этот совет для сценариев только для личного использования, и вы уверены, что никогда не будете работать в другом месте, но помните, что это реальный компромисс, который вам нужно рассмотреть.

Но в итоге, Zsh. Я не знаю никого, кто пробовал его, который не сразу и постоянно переключался. Это действительно так хорошо.

Ответ 4

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

Даунсайд - это то, что он хаотично развивается, имеет небольшую (но полезную) базу пользователей и сильно отличается от других оболочек. Обратная совместимость с идиомами оболочки не была приоритетом.

Во многих случаях это хорошо... у многих стандартных оболочек есть действительно глупые способы делать что-то, только потому, что это всегда делалось именно так. "do/done", "case/esac", "if/fi"? Это безумие, с которым рыба уходит.

Это стоит посмотреть.

Ответ 5

Поскольку я считаю, что я тот человек, который предложил использовать что-то другое, кроме C Shell, возможно, мне следовало бы слегка подкрепить мои замечания, а затем поддержать тех, кто сказал "bash в Linux, оболочку Korn на других платформах (если там не установлен bash).

Скорее, как редакторы (вы предпочитаете vim или emacs), выбор оболочки отчасти является вопросом привычки и отчасти вопросом предпочтения. Есть много таких, как C shell, хотя я считаю, что он менее прост в программировании, чем Bourne shell и производные. То, что у меня есть в моем .cshrc, действительно эквивалентно exec /bin/ksh (это не тождественно, потому что я хочу выполнить оболочку входа - тот, который читает профиль и т.д.), Но я бы никого не осуждал за используя оболочку C или производную, если это осознанное решение.

Если вы решите, что хотите использовать что-то другое, отличное от C-оболочки, то вы в основном находитесь в лагере оболочки Bourne, для которого стандарт POSIX более или менее указывает ожидаемое поведение, а затем различные оболочки, то есть Bourne, Korn или Born Again - добавьте (или, в случае классической оболочки Bourne, вычесть) несколько функций. Если вашему коду может потребоваться переместить Linux на HP-UX, Solaris или AIX (сохранившееся трио классических вариантов AT & T-производных Unix), тогда вам следует подумать над тем, чтобы вы могли писать сценарии оболочки в классической оболочке Bourne, хотя оболочка Korn также довольно безопасна. Заметим, однако, что в Linux вы можете написать #!/bin/sh и получить Bash, на других платформах вы получите оболочку Bourne.

Я переключаюсь между оболочкой Korn и bash без серьезных проблем - и редко с небольшими проблемами. Я стараюсь держаться подальше от тех уголков любого языка, который не определен четко, - который имеет тенденцию означать "определенный в обоих". Еще одна проблема для пользователей Linux заключается в том, что инструменты GNU имеют больше возможностей, чем классические версии Unix, и вы можете потерять переносимость не из-за созданных вами конструкций программирования оболочки, а из-за параметров команды, которые вы используете. Опыт и свободный доступ к страницам руководства других систем чрезвычайно помогают.

Ответ 6

Я обычно придерживаюсь bash, потому что он более дружелюбен, чем прямой sh, и это значение по умолчанию для каждого дистрибутива, который я использовал полу-регулярно (SuSE, RHEL, Ubuntu, Slackware).

Если вы планируете писать переносные сценарии оболочки, убедитесь, что все они запущены в режиме реального времени.

Ответ 7

Bash. Он стандартный.

Ответ 8

Проблема с csh заключается в том, что это дерьмо для скриптинга, как описано здесь. Нет никакой реальной причины, по которой вы не должны использовать ее в качестве интерактивной оболочки, но большинство людей сбивает с толку, что нужно изучать две разные оболочки и не пытаться проверять биты их сценариев в командной строке, поэтому проще всего использовать то же самое для всего.

Очевидными кандидатами для интерактивной оболочки являются bash, dash, zsh и {pd,} ksh. Все они реализуют стандарт оболочки posix с некоторыми незначительными расширениями. Выберите, что вам нравится для интерактивного использования, я бы пошел с bash только потому, что он стандарт на linux, но все они имеют свои достоинства и особенно zsh, особенно популярны.

Если вы пишете script, который вы собираетесь переносить, используйте #!/bin/sh и убедитесь, что вы используете стандартный синтаксис командной строки posix. Если он работает как на bash, так и на ksh, он, вероятно, является стандартным. Есть несколько старых версий unix, которые имеют нестандартный /bin/sh, но я бы не стал с этим беспокоиться, если вы не знаете, что вам нужно. Большая проблема для переносимости - это все инструменты командной строки, которые вы вызываете из своего script.

Ответ 9

Никто не упомянул стандарт Debian для sh, его оболочку Debian Almquist dash. Он полностью совместим с POSIX и имеет очень быстрый запуск, поэтому Debian/Ubuntu использует его для /bin/sh.

Поэтому я использую bash для моей интерактивной оболочки, но только dash для сценариев. Таким образом, я знаю, что мои скрипты, по крайней мере, совместимы с POSIX, и будут работать в любой другой оболочке POSIX.... Я знаю, что переносимость - это больше, чем оболочка, но там, где я рисую линию.

Ответ 10

Я не большой пользователь Ruby, но http://rush.heroku.com/ выглядит интересным

Ответ 11

Вероятно, лучше всего придерживаться bash просто потому, что он наиболее широко используется как оболочка и любые учебники или помощь, которую вы можете получить от кого-то, скорее всего, будет использовать bash. Тем не менее, я начал использовать zsh для всех моих скриптов, и я нашел, что он намного превосходит bash с точки зрения сценариев.

Ответ 12

Просто не используйте Korn Shell (ksh).

Если у вас нет идеального набора текста и никогда не нужно использовать клавишу backspace.

Ответ 13

Мне действительно нравится ksh. Он немного более последовательный, чем bash, потому что он не пытается поддерживать какие-либо конструкции csh. По моему опыту, tcsh наименее совместим с другими оболочками, и я избегаю этого. Я пытаюсь писать сценарии для sh, но у ksh есть некоторые приятные функции, такие как экспорт и установка переменной в одну строку. Я также пытаюсь сохранить совместимость с bash, поскольку он полнофункциональный и распространенный. Чтобы написать сценарии переносимой оболочки, что важнее, чем выбрать "лучшую" оболочку, вы можете обратиться к этой книге.

Портативное программирование оболочки: обширная коллекция примеров оболочек Bourne (серия HP Professional), автор Брюс Блинн (Мягкая обложка - 29 октября 1995 г.) amazon.com

Ответ 14

Я использую pdksh все время, не имея ничего близкого к идеальному набору текста (возможно, вам нужно исправить свой termcap?).

ksh является стандартом, csh является стандартом, а bash является "стандартным", но только для Linux. Лучше настроить таргетинг на ksh.

Ответ 15

Для написания реальных скриптов я предпочитаю ksh, который имеет несколько расширений, полезных для программирования и исправляет одно из моих раздражителей для домашних животных.

bash - это мое предпочтение для интерактивных сеансов, но это скорее вопрос личных предпочтений, чем что-либо еще. Просто убедитесь, что это оболочка типа Bourne.

Ответ 16

Я тоже пришел из csh, tcsh в bash. Это другое, но через некоторое время, по крайней мере так же хорошо, как и c-оболочки.

Для сценариев я бы рекомендовал ksh, потому что он доступен для большинства Unix (Solaris, HP-UX, OSF/1 (лучший UNIX когда-либо;) - за это время)), и он имеет хорошие функции. С Korn вы можете программировать большинство скриптов. Sporadicaly вы хотели бы получить больше, чем число, в качестве возвращаемого значения из функции, или у вас есть некоторые данные, которые вы не можете поместить в простой массив, или вам нужно что-то, что имеет лучшие возможности в случае regegs или когда-либо, то я бы предложил perl.

Ответ 17

Для сценариев попробуйте использовать тире в течение некоторого времени, чтобы получить хорошее представление о том, что является портативным. Если вы когда-либо использовали bash для написания оболочки script, явным образом объявляю bash в скриптах shebang.

Для вашей личной консоли используйте эксперимент с тем, что там. Найдите то, с чем вам удобно. Будьте эксцентричными и раздражайте всех своих друзей-системников, собрав оболочку, которая должна быть скомпилирована из источника для каждой машины, на которой вы хотите ее использовать.

Ответ 18

Я думаю, что FISH - лучшая, имеет подсветку синтаксиса (для команд, которые не существуют), и он может автозаполняться. И это очень легко узнать.

Ответ 19

Выберите один: а. Tcsh б. КШ с. ЗШ д. авторизоваться е. bash

Я бы использовал логин. Просто говорю.