Zsh vs Bash - 36 najważniejszych różnic, które powinieneś znać

Spisie treści:

Anonim

Różnica między Zsh a Bash

  • Zsh nazywa się Z Shell, który jest rozszerzeniem Bash, który ma wiele nowych funkcji i motywów. Zsh został wydany w 1990 roku przez Paula Falstada. Zsh ma również podobieństwa do skorupy Korna. Linux i Mac OS używają Bash jako domyślnej powłoki.
  • Bash to skrót od skorupy Bourne'a. W 1971 r. Wydano system operacyjny UNIX wraz z powłoką Thompson. W 1979 r. Powłoka Thompson została zmodyfikowana i wydana jako powłoka Bourne'a. Brian Fox wydał Bash w 1989 roku dla swojego projektu, który zapewnił ulepszenia w stosunku do poprzednich wersji. Wydanie Bash zwiększyło jego wykorzystanie jako języka skryptowego. Domyślny Zsh różni się od Bash.

Bezpośrednie porównanie między Zsh a Bash (infografiki)

Poniżej znajduje się porównanie 36 najlepszych między Zsh a Bash:

Kluczowe różnice między Zsh a Bash

Omówmy niektóre z głównych różnic między Zsh a Bash:

  • Zsh jest bardziej interaktywny i konfigurowalny niż Bash.
  • Zsh ma obsługę zmiennoprzecinkową, której Bash nie posiada.
  • Struktury danych mieszania są obsługiwane w Zsh, które nie są obecne w Bash.
  • Funkcje wywoływania w Bash są lepsze w porównaniu z Zsh.
  • Szybkim wyglądem można sterować w Bash, a Zsh można dostosować.
  • Pliki konfiguracyjne to .bashrc w interaktywnych powłokach bez logowania i .profile lub .bash_profile w powłokach logowania Bash. W Zsh powłoki niezalogowane to .zshrc, a powłoki logowania to .zprofile.
  • Tablice Zsh są indeksowane od 1 do długości, natomiast Bash jest indeksowany od -1 do długości.
  • W Zsh, jeśli wzorce wieloznaczne nie pasują do żadnego pliku, zgłasza błąd. W trybie Bash pozostaje niezmieniony.
  • Prawa strona potoku jest uruchamiana jako powłoka nadrzędna w Zsh, podczas gdy w Bash jest uruchamiana jako podpowłoka.
  • W Zsh funkcja zmv służy do masowej zmiany nazwy, natomiast w Bash musimy użyć funkcji rozszerzania parametrów.
  • Bash ma dobre możliwości skryptowe w jednym wierszu, podczas gdy w Zsh nie mogliśmy znaleźć tego samego.
  • Dane wyjściowe są domyślnie przechowywane w pliku tymczasowym w Zsh, podczas gdy w Bash tak nie jest.
  • Wiele wbudowanych funkcji w Bash ułatwia tworzenie złożonych programów, podczas gdy w Zsh wbudowane funkcje dla złożonych programów są mniejsze.
  • Zsh skutecznie zarządza swoimi plikami, podczas gdy Bash nie jest dobry w obsłudze swoich plików.

Tabela porównawcza Zsh vs Bash

Poniższa tabela podsumowuje porównania między Zsh a Bash:

Sr nr.ZshGrzmotnąć

1

Użytkownicy są mniej w porównaniu z BashUżytkownicy stanowią więcej, a więc także wsparcie społeczności

2)

Automatyczne uzupełnianie jest szybszeAutomatyczne uzupełnianie nie jest szybsze niż Zsh

3)

Zsh ma wbudowane rozszerzenie symboli wieloznacznychBash nie ma wbudowanego rozszerzenia symboli wieloznacznych

4

Uzupełnianie tabulatorów jest jak menu rozwijane w Zsh.Uzupełnianie tabulatorów jest jak polecenie wyjściowe w Bash.

5

Zsh ma aliasy komend prefiksów i sufiksów.Bash nie ma aliasów poleceń przedrostka i przyrostka.

6

Zsh dokładniej przestrzega standardu POSIX.Bash nie przestrzega standardu POSIX tak bardzo jak Zsh.

7

Funkcjonalność Zsh jest bardziej konfigurowalna.Funkcjonalność Bash jest mało konfigurowalna.

8

Zakładka służy do nawigacji między opcjami.Żadna taka opcja nie jest dostępna w Bash.

9

Zsh ma wiele motywów i wtyczekOpcja bash dla motywów i wtyczek jest mniejsza.

10

Zsh można łatwo zmienić nazwę katalogu.Nazwy katalogu nie można automatycznie zmienić w Bash.

11

Zsh poprawi pisownię i uzupełnianie słów.Bash sam niczego nie naprawi.

12

Przyjmując wartość zmiennej, Zsh ma wiele sposobów zastosowania transformacji.Bash ma bardzo niewiele sposobów zastosowania transformacji do zmiennej.

13

Kwalifikatory globu w Zsh pokazują pasujące pliki oparte na metadanych.Bash nie ma żadnych kwalifikatorów Glob.

14

Dodatkowe wzorce wieloznaczne są włączane automatycznie w Zsh.W Bash dodatkowe wzory wieloznaczne są włączane za pomocą extglob shopt -s.

15

# nie jest domyślnie traktowany jako komentarz w Zsh.W Bash # jest domyślnie uważany za komentarz.

16

Zsh ma ustawione ustawienia.Bash ma ustawienia shopt.

17

Zsh uzupełnia nazwy poleceń i plików, uruchamiając compinit.Bash uzupełnia nazwy poleceń i plików, uruchamiając bash_completion.

18

Zsh jest bardziej precyzyjny, a jeśli coś jest nie tak, pokazuje błąd.Bash robi rzeczy same w sobie, co może nie być właściwe, ale rozsądne.

19

Monit Zsh zawiera procentowe zmiany znaczenia.Monit Bash ma znaki ucieczki odwrotnego ukośnika.

20

Korzystając z Zsh, możemy tworzyć fantazyjne podpowiedzi.W Bash nie jesteśmy w stanie tworzyć fantazyjnych podpowiedzi.

21

Klucze powiązania w Zsh są wykonywane przez klucz powiązania. wbudowany.Bash używa .inputrc i wbudowanego wiązania do wiązania kluczy.

22

Ustawienia konfiguracji użytkownika są przechowywane w .zshrc.Ustawienia konfiguracji użytkownika są przechowywane w .bashrc.

23

Zsh ma społeczność Oh-my-Zsh, która pomaga w tworzeniu skryptów.Bash nie ma zdefiniowanej społeczności jako takiej, ale ponieważ jest stara, istnieje wiele społeczności online do obsługi skryptów.

24

Zsh może wyświetlać podzielony ekran podobny do podzielonego ekranu vima.Żadna taka opcja nie jest dostępna w Bash.

25

Obliczenia można wykonać w Zsh za pomocą polecenia zcalc.Zewnętrzny kalkulator Expr i bc jest używany w Bash do wykonywania obliczeń.

26

W Zsh komenda zparseopts służy do analizowania skryptu.Wbudowane polecenie Getopts jest używane w Bash do analizowania skryptów.

27

Rozwinięte aliasy są dozwolone w dowolnym miejscu linii, jeśli w poleceniu jest używany alias.Bash nie zezwala na tę funkcję w linii.

28

Skrypty środowiska Zsh to zlogin, zlogout, zprofile, zshenv, zshrc.Bash nie ma wielu skryptów środowiska.

29

Podczas uruchamiania systemu shellopts nie jest uruchamiany.Shellopts jest uruchamiany automatycznie podczas uruchamiania Bash.

30

Skrypty nie są tak dobre w porównaniu z Bash.Bash ma dobre możliwości skryptowe.

31

Historia jest udostępniana we wszystkich instancjach w ZshUdostępnianie historii nie jest tak łatwe w Bash.

32

Zsh wcale nie jest podobny do Emacsa.Skróty w Bash są bardzo podobne do Emacsa.

33

Dostosowanie odbywa się podczas procesu instalacji w Zsh.Dostosowanie odbywa się poprzez sprawdzenie ustawień konfiguracji w Bash.

34

Pliki konfiguracyjne nie są łatwe do eksploracji.Pliki konfiguracyjne są łatwe w Bash.

35

Zsh ma wiele zaawansowanych funkcji.Funkcje nie są zaawansowane.

36

Automatyczne uzupełnianie jest funkcją Zsh.Wtyczki innych firm muszą być zainstalowane w celu automatycznego uzupełniania.

Wniosek

Interaktywne funkcje konfiguracji mają wiele różnic podczas porównywania Zsh i Bash. Zsh jest znany z rozszerzalności, dobrego dostosowywania i zaawansowanych funkcji. Ponieważ Zsh jest wykonany z Bash, prawie 90% skryptów jest podobnych i jest kompatybilne z Bash. Zarówno Zsh, jak i Bash mają wiele podobieństw i są łatwe do przenoszenia. Wiele systemów zaczęło używać Zsh jako domyślnej powłoki.

Polecane artykuły

To jest przewodnik po Zsh vs Bash. Tutaj omawiamy również różnice między kluczem Zsh a Bash z porównaniem bezpośrednim (infografiki) i tabelą porównawczą. Możesz także zapoznać się z następującymi artykułami, aby dowiedzieć się więcej-

  1. Rust vs C ++
  2. Adres fizyczny a adres logiczny
  3. Lista kontra zestaw - Przydatne porównania
  4. Array vs ArrayList