Verschil tussen Zsh vs Bash
- Zsh heet Z Shell, een uitbreiding van Bash met veel nieuwe functies en thema's. Zsh werd in 1990 uitgebracht door Paul Falstad. Zsh heeft ook overeenkomsten met Korn shell. Linux en Mac OS gebruiken Bash als hun standaardshell.
- Bash is de afkorting van de Bourne-alweer shell. In 1971 werd het UNIX-besturingssysteem uitgebracht samen met de Thompson-shell. In 1979 werd de Thompson-shell aangepast en vrijgegeven als Bourne-shell. Brian Fox bracht Bash in 1989 uit voor zijn project dat verbeteringen van zijn vorige versies opleverde. Bash release verbeterde het gebruik ervan als scripttaal. De standaard Zsh is anders dan Bash.
Head to Head-vergelijking tussen Zsh vs Bash (infographics)
Hieronder is de top 36 vergelijking tussen Zsh vs Bash:
Belangrijkste verschillen tussen Zsh versus Bash
Laten we enkele van de belangrijkste belangrijkste verschillen tussen Zsh en Bash bespreken:
- Zsh is interactiever en aanpasbaar dan Bash.
- Zsh heeft drijvende komma ondersteuning die Bash niet bezit.
- Hash-gegevensstructuren worden ondersteund in Zsh die niet aanwezig zijn in Bash.
- De aanroepfuncties in Bash zijn beter in vergelijking met Zsh.
- De snelle weergave kan worden geregeld in Bash terwijl Zsh kan worden aangepast.
- De configuratiebestanden zijn .bashrc in niet-login interactieve shells en .profile of .bash_profile in login shells van Bash. In Zsh zijn niet-login shells .zshrc en login shells zijn .zprofile.
- Zsh-arrays worden geïndexeerd van 1 tot lengte, terwijl Bash wordt geïndexeerd van -1 tot lengte.
- Als de jokertekens niet overeenkomen met een bestand, geeft dit een fout aan. In Bash blijft het ongewijzigd.
- De rechterkant van een pijpleiding wordt uitgevoerd als een bovenliggende shell in Zsh terwijl deze in Bash wordt uitgevoerd als een subshell.
- In Zsh wordt de zmv-functie gebruikt voor massa-hernoemen, terwijl we in Bash de functie voor parameteruitbreiding moeten gebruiken.
- Bash heeft goede scriptmogelijkheden op één regel, terwijl we in Zsh niet hetzelfde konden vinden.
- De uitvoer wordt standaard opgeslagen in een tijdelijk bestand in Zsh, terwijl dat in Bash niet het geval is.
- Veel ingebouwde functies in Bash maken complexe programma's eenvoudig, terwijl in Zsh ingebouwde functies voor complexe programma's minder zijn.
- Zsh beheert zijn bestanden effectief, terwijl Bash niet goed is in het bedienen van zijn bestanden.
Vergelijkingstabel van Zsh vs Bash
De onderstaande tabel geeft een overzicht van de vergelijkingen tussen Zsh en Bash:
Sorry. Nee. | zsh | Bash |
1 | Gebruikers zijn minder in vergelijking met Bash | Gebruikers zijn meer en daarom ook community-ondersteuning |
2 | Automatische voltooiing is sneller | Automatische voltooiing is niet sneller als Zsh |
3 | Zsh heeft inline wildcard-uitbreiding | Bash heeft geen inline wildcard-uitbreiding |
4 | Tabaanvulling is als een vervolgkeuzemenu in Zsh. | Tabaanvulling is als een opdrachtuitvoer in Bash. |
5 | Zsh heeft voorvoegsel en achtervoegsel opdrachtaliassen. | Bash heeft geen voorvoegsel en achtervoegsel opdrachtaliassen. |
6 | Zsh volgt de POSIX-standaard beter op. | Bash volgt de POSIX-standaard niet zoveel als Zsh. |
7 | Zsh-functionaliteit kan beter worden geconfigureerd. | Bash-functionaliteit kan niet veel worden geconfigureerd. |
8 | Het tabblad wordt gebruikt om tussen opties te navigeren. | Een dergelijke optie is niet beschikbaar in Bash. |
9 | Zsh heeft veel thema's en plug-ins | De bash-optie voor thema's en plug-ins is minder. |
10 | Een mapnaamwijziging kan eenvoudig worden gedaan in Zsh. | De mapnaam kan niet automatisch worden gewijzigd in Bash. |
11 | Zsh corrigeert de spelling en voltooiing van woorden. | Bash lost zelf niets op. |
12 | Hoewel de waarde van een variabele wordt gebruikt, heeft Zsh veel manieren om de transformatie toe te passen. | Bash heeft heel weinig manieren om de transformatie toe te passen op de variabele. |
13 | Glob-kwalificaties in Zsh tonen overeenkomende bestanden die zijn gebaseerd op metagegevens. | Bash heeft geen Glob-kwalificaties. |
14 | Extra wildcard-patronen worden automatisch ingeschakeld in Zsh. | In Bash worden extra wildcard-patronen ingeschakeld met behulp van shopt -s extglob. |
15 | # wordt niet standaard als een opmerking behandeld in Zsh. | In Bash wordt # standaard als een opmerking beschouwd. |
16 | Zsh heeft setopt-instellingen. | Bash heeft shopt-instellingen. |
17 | Zsh voltooit opdracht- en bestandsnamen door compinit uit te voeren. | Bash voltooit opdracht- en bestandsnamen door bash_completion uit te voeren. |
18 | Zsh is nauwkeuriger en als er iets mis is, geeft dit een foutmelding. | Bash doet zelf dingen die misschien niet juist maar verstandig zijn. |
19 | Zsh-prompt bevat percentage ontsnappingen. | Bash prompt heeft backslash ontsnapt. |
20 | Met behulp van Zsh kunnen we mooie aanwijzingen maken. | In Bash kunnen we geen mooie aanwijzingen maken. |
21 | Bindtoetsen in Zsh worden gedaan door de bindkey. ingebouwde. | Bash gebruikt .inputrc en de ingebouwde bind om sleutels te binden. |
22 | Gebruikersconfiguratie-instellingen worden opgeslagen in .zshrc. | Gebruikersconfiguratie-instellingen worden opgeslagen in .bashrc. |
23 | Zsh heeft Oh-my-Zsh-community om te helpen bij het maken van scripts. | Bash heeft geen gedefinieerde community als zodanig, maar omdat het oud is, zijn er veel online communities om te ondersteunen in scripting. |
24 | Zsh kan een gesplitst scherm weergeven vergelijkbaar met het gesplitste scherm van vim. | Een dergelijke optie is niet beschikbaar in Bash. |
25 | Berekeningen kunnen worden gedaan in Zsh met behulp van de opdracht zcalc. | Expr en bc externe rekenmachine wordt gebruikt in Bash om berekeningen uit te voeren. |
26 | In Zsh wordt de opdracht zparseopts gebruikt om het script te parseren. | Het ingebouwde commando van Getopts wordt in Bash gebruikt om scripts te parseren. |
27 | Uitgebreide aliassen zijn overal op een regel toegestaan als de alias in de opdracht wordt gebruikt. | Bash staat deze functie niet toe in de regel. |
28 | Omgevingsscripts van Zsh zijn zlogin, zlogout, zprofile, zshenv, zshrc. | Bash heeft niet veel omgevingsscripts. |
29 | Tijdens het opstarten wordt shellopts niet uitgevoerd. | Shellopts wordt automatisch uitgevoerd tijdens het opstarten van de Bash. |
30 | Scripting is niet zo goed in vergelijking met Bash. | Bash heeft goede scriptmogelijkheden. |
31 | Geschiedenis wordt gedeeld in alle instanties in Zsh | Het delen van geschiedenis is niet zo eenvoudig in Bash. |
32 | Zsh is helemaal niet vergelijkbaar met Emacs. | De snelkoppelingen in Bash lijken erg op Emacs. |
33 | Aanpassing gebeurt tijdens het installatieproces in Zsh. | Aanpassing wordt gedaan door de configuratie-instellingen in Bash te controleren. |
34 | Configuratiebestanden zijn niet eenvoudig te verkennen. | Configuratiebestanden worden eenvoudig gemaakt in Bash. |
35 | Zsh heeft veel geavanceerde functies. | Functies zijn niet geavanceerd. |
36 | Automatisch aanvullen is een functie van Zsh. | Plug-ins van derden moeten worden geïnstalleerd voor automatische aanvulling. |
Conclusie
Interactieve configuratiefuncties hebben veel verschillen bij het vergelijken van Zsh en Bash. Zsh staat bekend om zijn uitbreidbaarheid, goede aanpassing en geavanceerde functies. Omdat Zsh is gemaakt van Bash, is bijna 90% van de scripting vergelijkbaar en is het compatibel met Bash. Zowel Zsh als Bash hebben veel overeenkomsten en zijn gemakkelijk draagbaar. Veel systemen begonnen Zsh te gebruiken als hun standaardshell.
Aanbevolen artikelen
Dit is een gids voor Zsh vs Bash. Hier bespreken we ook de belangrijkste verschillen tussen Zsh en Bash met een vergelijking van persoon tot persoon (infographics) en een vergelijkingstabel. U kunt ook een kijkje nemen in de volgende artikelen voor meer informatie-
- Roest versus C ++
- Fysiek adres versus logisch adres
- Lijst versus set - Handige vergelijkingen
- Array versus ArrayList