Стоит ли переходить на zsh для повседневного использования?[закрыто]
Вопрос
Оболочкой по умолчанию в Mac OS X является bash
, которым я, как правило, с удовольствием пользуюсь.Я просто принимаю это как должное.Было бы действительно неплохо, если бы это автоматически завершалось еще кое-что, хотя, и я слышал хорошие вещи о zsh
в связи с этим.Но на самом деле у меня нет желания часами возиться с настройками, чтобы хоть немного улучшить использование командной строки, поскольку моя жизнь в командной строке не так уж плоха.
(Насколько я понимаю, bash
также может быть сконфигурирован для более эффективного автозаполнения.Это настройка, которой я не очень увлекаюсь.)
Будет переходить на zsh
, даже в небольшом количестве случаев, облегчите мне жизнь?Или это только улучшит оболочку, если вы потратите время на обучение почему так лучше?(Примеры тоже были бы неплохими :)
)
@Родни Амато
&
@Вулканец Нетерпелив
приведите две веские причины соответственно придерживаться bash
и переключиться на zsh
.Похоже, мне придется расследовать и то, и другое!Ну что ж :)
Есть ли у кого-нибудь мнение с обеих сторон спора?
Решение
Для повседневного использования вам, вероятно, лучше придерживаться bash и просто установить bash completion.
Установить его довольно просто, возьмите 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.общий каталог для любых дополнительных сценариев завершения (например, у меня там есть скрипт завершения 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.У вас будет доступ к:
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 секунд при использовании только настроек по умолчанию, так что продолжайте и попробуйте.
Стаале говорит о программе, подобной мастеру (CUI), которая запускается автоматически при первом запуске zsh.Просто ответьте на несколько вопросов, просмотрите / измените настройки по умолчанию и их настройку для вас.
IBM developerWorks располагает большими ресурсами для разработки zsh.
Я не использовал очень продвинутые функции и до сих пор не сталкивался с серьезными отличиями, которые должны были бы помешать кому-то перейти с bash.
Несколько примеров:
!?шаблон<Tab> автоматически завершится до последней команды в истории, соответствующей шаблону.Очень полезно.
Вы можете настроить приглашение на панели управления RHS.Одно из применений - сохранить приглашение фиксированной ширины с левой стороны чтобы все команды хорошо выстраивались в линию при отображении pwd (или чего-либо с переменной шириной) в качестве правой боковой подсказки.
Вы можете перенаправлять входные данные из нескольких файлов (пока не пробовали это делать).:кошка < файл1 < файл2 < файл3