Стоит ли переходить на zsh для случайного использования? [закрытый]


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

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

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


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

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

6 185

6 ответов:

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

установка это довольно легко, захватить Баш-завершение-20060301.смола.ГЗ от 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 там).

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

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

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

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

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

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

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

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

  • alias -s c=vim

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

  • print *(e:age today now:)

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

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

переключиться на zsh. Вы будете иметь доступ к:

  1. zmv: вы можете сделать: zmv '(*).mp3' '.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 имеет консоль gui конфигурации вещь. Вы можете настроить его довольно быстро и легко, без необходимости возиться с файлами конфигурации. Я не думаю, что вам понадобится много времени, чтобы настроить его, вероятно, 10 секунд с помощью только по умолчанию, так что вперед и попробовать его.

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

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

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

примеры:

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

  • вы можете настроить приглашение на ПРАВАЯ СТОРОНА. Один используется для поддержания фиксированного подсказка ширины на левой стороне так что все команды выстраиваются красиво пока отображение pwd (или что-нибудь из переменная ширина) как правая рука боковая подсказка.

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