По умолчанию оболочка в 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 в приглашении, просто набрав ./my_program.c
- который будет работать точно так же, как если бы вы набрали vim ./my_program.c
. (Сортировка эквивалента двойным щелчком по значку файла.)
Или распечатайте имена файлов, измененных сегодня:
-
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