Разница между Zsh и Bash
- Zsh называется Z Shell, который является расширением Bash и имеет много новых функций и тем. Zsh был выпущен в 1990 году Полом Фальстадом. Zsh также имеет сходство с оболочкой Korn. Linux и Mac OS используют Bash в качестве оболочки по умолчанию.
- Bash - это сокращение от Bourne-again shell. В 1971 году была выпущена операционная система UNIX вместе с оболочкой Томпсона. В 1979 году оболочка Томпсона была модифицирована и выпущена как оболочка Борна. Брайан Фокс выпустил Bash в 1989 году для своего проекта, который предусматривал улучшения по сравнению с предыдущими версиями. Релиз Bash расширил его использование в качестве языка сценариев. Zsh по умолчанию отличается от Bash.
Сравнение лицом к лицу между Zsh и Bash (Инфографика)
Ниже приведено 36 лучших сравнений между Zsh и Bash:
Ключевые различия между Zsh и Bash
Давайте обсудим некоторые основные ключевые различия между Zsh и Bash:
- Zsh более интерактивный и настраиваемый, чем Bash.
- У Zsh есть поддержка с плавающей точкой, которой нет у Bash.
- В Zsh поддерживаются структуры хеш-данных, которых нет в Bash.
- Функции вызова в Bash лучше по сравнению с Zsh.
- Внешний вид подсказки можно контролировать в Bash, тогда как Zsh настраивается.
- Конфигурационными файлами являются .bashrc в интерактивных оболочках без регистрации и .profile или .bash_profile в оболочках входа в Bash. В Zsh оболочками, не входящими в систему, являются .zshrc, а оболочками для входа - .zprofile.
- Массивы Zsh индексируются от 1 до длины, тогда как Bash индексируется от -1 до длины.
- В Zsh, если шаблоны не совпадают ни с одним файлом, выдается ошибка. Находясь в Баше, он остается без изменений.
- Правая часть конвейера запускается как родительская оболочка в Zsh, в то время как в Bash она запускается как подоболочка.
- В Zsh функция zmv используется для массового переименования, тогда как в Bash мы должны использовать функцию расширения параметров.
- Bash имеет хорошие возможности написания сценариев в одной строке, в то время как в Zsh мы не смогли найти то же самое.
- По умолчанию выходные данные хранятся во временном файле в Zsh, а в Bash - нет.
- Многие встроенные функции в Bash упрощают сложные программы, тогда как в Zsh встроенных функций для сложных программ меньше.
- Zsh эффективно управляет своими файлами, в то время как Bash плохо умеет работать с файлами.
Сравнительная таблица Zsh против Bash
В таблице ниже приведены сравнения между Zsh и Bash:
Ср № | Zsh | удар |
1 | Пользователи меньше по сравнению с Bash | Пользователи больше и, следовательно, поддержка сообщества, а также |
2 | Авто завершение быстрее | Авто завершение не быстрее, чем Zsh |
3 | У Zsh есть встроенное расширение по шаблону | Bash не имеет встроенного расширения подстановочных знаков |
4 | Завершение вкладки похоже на выпадающее меню в Zsh. | Завершение табуляции похоже на вывод команды в Bash. |
5 | У Zsh есть псевдонимы префиксов и суффиксов команд. | Bash не имеет псевдонимов префиксов и суффиксов команд. |
6 | Zsh более точно следует стандарту POSIX. | Bash не следует стандарту POSIX так, как Zsh. |
7 | Функциональность Zsh более настраиваемая. | Функциональность Bash не сильно настраивается. |
8 | Вкладка используется для навигации между параметрами. | В Bash такой опции нет. |
9 | У Zsh много тем и плагинов | Опция bash для тем и плагинов меньше. |
10 | Изменение имени каталога может быть легко сделано в Zsh. | Имя каталога не может быть автоматически изменено в Bash. |
11 | Zsh исправит написание и завершение слов. | Баш сам ничего не исправит. |
12 | Получая значение переменной, у Zsh есть много способов применить преобразование. | У Bash очень мало способов применить преобразование к переменной. |
13 | Спецификаторы глобуса в Zsh показывают совпадающие файлы, основанные на метаданных. | Bash не имеет классификаторов Glob. |
14 | Дополнительные шаблоны подстановки включаются автоматически в Zsh. | В Bash дополнительные шаблоны используются с помощью shopt -s extglob. |
15 | # не рассматривается как комментарий по умолчанию в Zsh. | В Bash # считается комментарием по умолчанию. |
16 | У Zsh есть настройки setopt. | Bash покупал настройки. |
17 | Zsh завершает имена команд и файлов, запуская compinit. | Bash завершает имена команд и файлов, выполняя bash_completion. |
18 | Zsh более точный, и если что-то не так, он показывает ошибку. | Bash сам делает вещи, которые могут быть не правильными, а разумными. |
19 | Zsh подсказка содержит процентные экранирования. | В приглашении Bash есть экранированные символы. |
20 | Используя Zsh, мы можем создавать необычные подсказки. | В Bash мы не можем создавать необычные подсказки. |
21 | Связывание ключей в Zsh осуществляется bindkey. встроенный. | Bash использует .inputrc и встроенную привязку для связывания ключей. |
22 | Настройки конфигурации пользователя хранятся в .zshrc. | Настройки конфигурации пользователя хранятся в .bashrc. |
23 | У Zsh есть сообщество Oh-my-Zsh, которое помогает в написании сценариев. | Bash не имеет определенного сообщества как такового, но, поскольку оно старое, существует множество онлайн-сообществ, которые могут поддержать создание сценариев. |
24 | Zsh может отображать разделенный экран, аналогичный разделенному экрану vim. | В Bash такой опции нет. |
25 | Расчеты можно выполнить в Zsh с помощью команды zcalc. | Expr и bc внешний калькулятор используется в Bash для выполнения расчетов. |
26 | В Zsh команда zparseopts используется для разбора скрипта. | Встроенная команда Getopts используется в Bash для разбора скриптов. |
27 | Расширенные псевдонимы разрешены в любом месте строки, если в команде используется псевдоним. | Bash не разрешает эту функцию в строке. |
28 | Окружающими скриптами Zsh являются zlogin, zlogout, zprofile, zshenv, zshrc. | Bash не имеет много сценариев среды. |
29 | При запуске автозагрузка не запускается. | Shellopts запускается автоматически при запуске Bash. |
30 | Сценарии не так хороши по сравнению с Bash. | У Bash хорошие скриптовые возможности. |
31 | История делится во всех случаях в Zsh | В Bash не так просто делиться историей. |
32 | Zsh совсем не похож на Emacs. | Ярлыки в Bash очень похожи на Emacs. |
33 | Настройка выполняется в процессе установки в Zsh. | Настройка выполняется путем проверки параметров конфигурации в Bash. |
34 | Конфигурационные файлы не так легко исследовать. | Конфигурационные файлы легко сделать в Bash. |
35 | Zsh имеет много продвинутых функций. | Особенности не продвинуты. |
36 | Автозаполнение является особенностью Zsh. | Сторонние плагины должны быть установлены для автозаполнения. |
Вывод
Интерактивные функции конфигурации имеют много различий при сравнении Zsh и Bash. Zsh известен своей расширяемостью, хорошей настройкой и расширенными возможностями. Поскольку Zsh сделан из Bash, почти 90% сценариев схожи и совместимы с Bash. И Zsh, и Bash имеют много общего и легко переносимы. Многие системы начали использовать Zsh в качестве оболочки по умолчанию.
Рекомендуемые статьи
Это руководство к Zsh против Bash. Здесь мы также обсудим ключевые различия между Zsh и Bash, сравнивая их по отдельности (инфографика) и таблицу сравнения. Вы также можете взглянуть на следующие статьи, чтобы узнать больше
- Руст против С ++
- Физический адрес против логического адреса
- Список против набора - полезные сравнения
- Array vs ArrayList