Стоит ли переходить на Zsh для повседневного использования?

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

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

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


@ Родни Амато и @ Вулкан Эйгер дают две веские причины, чтобы соответственно придерживаться bash и переключиться на zsh, Похоже, мне придется исследовать оба! Ну что ж :)

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

6 ответов

Решение

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

Установить его довольно просто, возьмите bash-complete-20060301.tar.gz с http://www.caliban.org/bash/index.shtml и распакуйте его с помощью

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

затем скопируйте файл bash_completion/bash_completion в / etc с помощью

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 в списке завершений.

Лично я люблю зш.

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

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

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

  • alias -s c=vim

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

  • print *(e:age today now:)

Вы, вероятно, можете делать все это в bash, но мой опыт работы с zsh таков: если я хочу что-то сделать, я могу найти это в zsh-lovers. Мне также очень полезна книга " От Bash до Z-Shell".

Игра с умом ошеломляюще большим количеством вариантов - это тоже весело!

Переключиться на зш. У вас будет доступ к:

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

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

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

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

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

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

IBM developerWorks обладает большими ресурсами на Zsh.

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

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

  • !? pattern выполнит автозаполнение до последней команды в истории соответствия шаблону. Очень полезно.

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

  • Вы можете перенаправить ввод из нескольких файлов (пока попробуйте): cat

Другие вопросы по тегам