Зш против Баш - Лучшие 36 отличий, которые вы должны знать

Содержание:

Anonim

Разница между 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, сравнивая их по отдельности (инфографика) и таблицу сравнения. Вы также можете взглянуть на следующие статьи, чтобы узнать больше

  1. Руст против С ++
  2. Физический адрес против логического адреса
  3. Список против набора - полезные сравнения
  4. Array vs ArrayList