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

StackOverflow https://stackoverflow.com/questions/43321

  •  09-06-2019
  •  | 
  •  

Вопрос

Оболочкой по умолчанию в 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.У вас будет доступ к:

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

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

IBM developerWorks располагает большими ресурсами для разработки zsh.

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

Несколько примеров:

  • !?шаблон<Tab> автоматически завершится до последней команды в истории, соответствующей шаблону.Очень полезно.

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

  • Вы можете перенаправлять входные данные из нескольких файлов (пока не пробовали это делать).:кошка < файл1 < файл2 < файл3

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top