Стоит ли переходить на 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".
Игра с умом ошеломляюще большим количеством вариантов - это тоже весело!
Переключиться на зш. У вас будет доступ к:
zmv
: Ты можешь сделать:zmv '(*).mp3' '$1.wma'
для тысяч файлов.zcalc
: Чрезвычайно удобный калькулятор, лучше чемbc
,zparseopts
: Одна строка для анализа произвольных сложных опций, заданных вашему скрипту.autopushd
: Всегда можно сделатьpopd
послеcd
чтобы вернуться к предыдущему каталогу.- Поддержка с плавающей точкой. Это нужно время от времени.
- Поддержка хэшей. Иногда они просто ключевая особенность.
Если все, что вы хотите использовать для 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