Стоит переключиться на zsh для повседневного использования?

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

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

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


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

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

Ответ 1

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

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

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

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

sudo cp bash_completion/bash_completion /etc

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

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

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

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

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

Ответ 2

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

Как правило, вы, вероятно, не заметите разницы между ним и 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 действительно полезно.

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

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

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

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

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

  • !? шаблон < & Tab GT; будет автозаполнять последняя команда в сопоставлении истории шаблон. Очень полезно.

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

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