2008-09-04 8 views
181

По умолчанию оболочка в Mac OS X - bash, которую я обычно рад использовать. Я просто считаю это само собой разумеющимся. Было бы очень приятно, если бы он автоматически завершил больше вещей, хотя, и я слышал хорошие вещи о zsh в этом отношении. Но на самом деле у меня нет желания тратить часы, играя с настройками, чтобы улучшить использование моей командной строки на крошечную сумму, так как моя жизнь в командной строке не так уж плоха.Стоит переключиться на zsh для повседневного использования?

(Как я понимаю, bash также может быть настроен на автоматическое заполнение поумнее. Это конфигурирование я не все, что увлечен.)

Будет ли переход на zsh, даже в небольших случаях число , облегчить мне жизнь? Или это только лучшая оболочка, если вы положили время, чтобы узнать , почему это лучше? (Примеры было бы хорошо, слишком :))


@Rodney Amato & @Vulcan Eager дают две веские причины, чтобы соответственно прилипают к bash и переключиться на zsh. Похоже, мне придется исследовать и то, и другое! Ну хорошо :)

Есть ли кто-нибудь с мнением с обеих сторон аргумента?

+12

Поскольку zsh является (почти) надмножеством bash, вы можете начать с перехода к zsh и использовать его как bash. Затем вы можете узнать жемчужины zsh немного за раз. – orip 2008-12-21 05:13:09

+0

Если у вас есть немного настроек bash, и вы часто используете оболочку внутри emacs, это не кажется тривиальным. Я разместил связанный вопрос: http://stackoverflow.com/questions/13326879/any-tips-on-switching-from-bash-to-zsh-if-often-using-shell-inside-of-emacs – justingordon 2012-11-10 22:58:37

+0

Только * * вещь, которую мне не нравится в zsh, заключается в том, что (по крайней мере, на Ubuntu) вам придется настраивать ее самостоятельно при первом запуске (вместо того, чтобы предоставлять некоторые нормальные значения по умолчанию, которые вы можете позже изменить). Если вы справитесь с этим, zsh станет лучшим! – zrajm 2013-09-06 20:00:23

ответ

64

Для повседневного использования вы, вероятно, лучше придерживаться Баш и просто установить завершение оргии.

Установка это довольно легко, возьмите Баш-завершающие-20060301.tar.gz из http://www.caliban.org/bash/index.shtml#completion и извлечь его с

tar -xzvf bash-completion-20060301.tar.gz 

скопируйте bash_completion/файл bash_completion в/и т.д. с

sudo cp bash_completion/bash_completion /etc 

, который запросит у вас пароль. Вероятно, вам захочется создать каталог /etc/bash_completion.d для любых дополнительных скриптов завершения (например, у меня есть скрипт завершения git).

После того, как это делается последний шаг, чтобы убедиться, что файл .bash_profile в домашнем каталоге есть

if [ -f /etc/bash_completion ]; then 
    . /etc/bash_completion 
fi 

в нем, чтобы загрузить файл завершения при входе.

Чтобы проверить это, просто откройте новый терминал и попробуйте выполнить на cvs, и он должен показать вам параметры cvs в списке завершений.

+0

Я пробовал это, но потом, когда начинаю bash, я получаю 4 «унарный оператор, ожидаемый» и 4 «слишком много аргументов». – Annan 2012-11-21 18:14:02

6

У zsh есть консольная конфигурация gui. Вы можете настроить его довольно быстро и легко, не имея необходимости возиться с файлами конфигурации. Я не думаю, что вам понадобится много времени, чтобы настроить его, возможно, 10 секунд, просто используя настройки по умолчанию, поэтому идите и попробуйте.

+10

Как у вас получилось получить доступ к этой «консоли gui»? – mpen 2014-03-26 17:55:50

+0

Обычно это первое, что вы видите, когда вы загружаете `zsh` без каких-либо связанных точечных файлов. Чтобы получить его вручную, попробуйте `autoload -U + X zsh-newuser-install; zsh-newuser-install -f` – 2015-08-19 20:23:37

2

Staale говорит о волшебной программе (CUI), которая запускает автозапуск при первом запуске zsh. Просто ответьте на некоторые вопросы, просмотрите/измените настройки по умолчанию и настройте их для себя.

IBM developerWorks имеет большой потенциал по zsh.

Я не использовал очень продвинутые функции, и до сих пор я не сталкивался с серьезными различиями, которые должны мешать кому-то, исходящему из bash.

Некоторые примеры:!?

  • < шаблон Tab > будет автозаполнения последнюю команду в истории соответствия шаблону. Очень полезно.

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

  • Вы можете перенаправить ввод из нескольких файлов (еще попробовать): кот < file1 < file2 < file3

81

Лично я люблю zsh.

Как правило, вы, вероятно, не заметите разницы между ним и Башем, пока вы не хотите, чтобы быстро делать такие вещи, как рекурсивная подстановка:

  • **/*.c, например.

Или используйте псевдонимы суффикса для связывания определенных прогов с различными суффиксами, чтобы вы могли «выполнить» их напрямую. Следующий псевдоним позволяет вам «запускать» исходный файл C в приглашении, просто набрав ./my_program.c - который будет работать точно так же, как если бы вы набрали vim ./my_program.c. (. Сортировать по эквивалентному двойным щелчком по значку файла)

  • alias -s c=vim

Или напечатать имена файлов изменены сегодня:

  • print *(e:age today now:)

Возможно, вы все это делаете в bash, но мой опыт работы с zsh заключается в том, что если есть что-то, что я Чтобы сделать это, я, вероятно, найду его в zsh-lovers. Я также нахожу книгу 'From Bash to Z-Shell' действительно полезной.

Игра с разумом, поразительно большим количеством вариантов, тоже очень весело!

12

Если все, что вы хотите использовать ZSH для лучшего завершения, конфигурация довольно проста. Поместите это в вашем ~/.zshrc:

autoload -U zutil  # [1] 
autoload -U compinit # [2] 
autoload -U complist # [3] 
compinit 

Тем не менее, стоит проверить все другие большие особенности ZSH. Вышеприведенный пример даст вам довольно простое приглашение с хорошим завершением. Если вы не хотите возиться с конфигурациями, но хотите узнать, что ZSH может сделать для вас, Google для «zshrc», и вы получите некоторые готовые конфигурации для начала работы.

36

Переключение в Zsh. Вы будете иметь доступ к:

  1. zmv: Вы можете сделать: zmv '(*).mp3' '$1.wma' для тысяч файлов.
  2. zcalc: Чрезвычайно удобный калькулятор, лучше, чем bc.
  3. zparseopts: Однострочный синтаксический анализатор для разбора произвольных комплексных параметров, заданных вашему скрипту.
  4. autopushd: Вы всегда можете сделать popd после cd, чтобы вернуться в предыдущий каталог.
  5. Поддержка с плавающей точкой. Это необходимо время от времени.
  6. Хеши поддержки. Иногда это всего лишь ключевая особенность.

 Смежные вопросы

  • Нет связанных вопросов^_^