Na Bash en Korn zullen we vandaag de zeer populaire Zsh-shell ontdekken. Zsh is zelfs zo populair dat veel mensen Bash voor hem hebben verlaten. De belangrijkste reden achter zijn populariteit is te wijten aan een ongelooflijke interactiviteit met de gebruiker, en een zeer uitgebreide en krachtige functie voor automatisch aanvullen.

Geschiedenis

De eerste versie van Zsh werd in 1990 gemaakt door een Princeton-student genaamd Paul Falstad. De naam "Zsh" komt vermoedelijk uit de ID van de Princeton-professor Zhong Shao. De schaal zelf werd beïnvloed door Bash, Ksh en Tcsh: Zsh heeft een zeer krachtige functie voor automatisch aanvullen, samen met recursieve zoekacties en een corrector opgenomen. En natuurlijk kan de prompt worden gedefinieerd op basis van de wens van de gebruiker. Toch beschouwen sommigen Zsh als een uitgebreide Bourne Shell.

Installatie

Nu dat je meer weet over Zsh, laten we het installeren. Voor Ubuntu is de installatie vrij eenvoudig:

 sudo apt-get install zsh 

Voor andere distributies zou het ook beschikbaar moeten zijn in uw repositories. Download in het ergste geval het pakket van de officiële pagina.

Zodra het pakket is geïnstalleerd, kunt u via de opdracht een Zsh-shell vanuit elke terminal starten:

 zsh 

Als je deze shell echt leuk vindt en wilt dat deze je huidige vervangt, kun je dat doen door te typen

 sudo usermod -s / bin / zsh [gebruikersnaam] 

Merk op dat zoals gewoonlijk het configuratiebestand op "~ / .zshrc" staat en bij de eerste lancering wordt aangemaakt. Net als bash kan dit worden gebruikt om aliassen toe te voegen en de prompt te personaliseren.

Gebruik

Zsh is erg intuïtief. In het begin mag u geen verschil merken in gedrag met Bash. Een goede manier om de eerste functie te herkennen, is echter:

 rm - [tabulatietoets] 

en gebruik vervolgens de tabelsleutel. Dit toont alle mogelijke argumenten voor de opdracht "rm". Zoals u kunt zien, is de automatische voltooiing ongelooflijk met Zsh.

Niet alleen de argumenten van een commando, maar ook de presentaties van de ssh-host in / etc / hosts, de mogelijke doelen voor de opdracht "make", de handmatige pagina's, de bestanden op een verre server, enz. Ze kunnen allemaal automatisch worden voltooid door Zsh. En de snelheid waarmee automatisch wordt voltooid, is ook indrukwekkend.

Je kunt ook proberen een verkeerde opdracht te typen zoals

 gdit .zshrc 

en het activeert de correctiefunctie:

Als de correctie in eerste instantie niet werkt, betekent dit dat u deze nog niet hebt geactiveerd. Om dit te doen, typ je gewoon:

 setopt correct 

De correctie is niet de enige optie die u kunt activeren. Na de opdracht "setopt" kunt u ook gebruiken

  • piep : om een ​​piepgeluid af te spelen wanneer er een fout optreedt
  • hist_ignore_all_dups : om te voorkomen dat dezelfde opdracht tweemaal in de geschiedenis wordt opgenomen
  • auto_cd : om naar een map te gaan door gewoon zijn naam in te typen (geen behoefte aan het cd-commando meer)

Integendeel, als u een optie wilt verwijderen, is de syntaxis:

 unsetopt [optie] 

Een ander goed gebruik van Zsh is de recursieve zoekopdracht. U werd met Bash gebruikt door de operator "*" voor "alles". Nu met Zsh kan "**" vertaald worden "alles binnenin iedereen". Met andere woorden: recursief zoeken. Laat me dit illustreren met een voorbeeld. Als je een bestand met de naam "foobar" wilt verwijderen, maar je weet niet meer waar het is, wordt deze regel handig:

 rm ** / foobar 

Zsh zoekt naar het foobar-bestand in de huidige map en in elke submap totdat het wordt verwijderd.

De recursieve operator kan erg handig worden bij het zoeken naar een bepaald type bestand. Het is mogelijk om de combinatie van het "ls" -commando en een regex te gebruiken. Een eenvoudige opdracht zoals

 ls ** / *. mp3 

zal alle mp3-bestanden terugzenden die Zsh recursief kan vinden in de huidige map.

Laten we tot slot een beetje praten over de configuratie van Zsh. Zoals je weet gebeurt het in ~ / .zshrc. Als u enkele gepersonaliseerde aanwijzingen wilt uitproberen, bevat Zsh een aantal opgeslagen thema's. Om te zien welke beschikbaar is, laadt u het promptsysteem

 autoload -U promptinit promptinit 

En geef een lijst met de thema's met:

 prompt - l 

En typ om uw huidige prompt te wijzigen

 prompt [naam van het thema] 

Als je in bash veel aliassen hebt gemaakt, werken ze niet in zsh. Je moet ze over het ~ / .zsh-bestand porten. De basissyntaxis is hetzelfde als die van Bash:

 alias [alias 'name] = "[opdracht]" 

Bovendien kunt u ook een specifieke alias voor de bestandsextensie definiëren. Hiermee kunt u automatisch de juiste opdracht voor het gewenste bestand starten. Ik gebruik bijvoorbeeld het programma "mpg123" om mp3's af te spelen vanaf de opdrachtregel. Daarom kan ik toevoegen aan mijn .zshrc:

 alias -s mp3 = "mpg123" 

Vanaf daar elke keer dat ik iets als schrijven

 ./song.mp3 

Mpg123 wordt gestart en speel het nummer. Met een beetje fantasie kunnen we deze functionaliteit combineren met mijn vorige artikel over de omgang met archieven vanuit de opdrachtregel:

 alias -s tar = "tar -xvf" alias -s rar = "unrar x" alias -s zip = "unzip" alias -s pdf = "evince" 

Conclusie

Ja, Zsh en Bash lijken erg op elkaar, maar Zsh is flexibeler waardoor het populairder wordt. Persoonlijk stel ik de functie voor automatisch aanvullen erg op prijs en de alias voor bestandsextensie. De hierboven genoemde tips besloeg slechts een klein deel van wat Zsh kan doen. Om meer over Zsh te weten te komen, nodig ik je uit om de Archlinux-wiki te lezen.

Wat denk je van de Zsh Shell? Heb je er nog een geprobeerd? Heeft u vragen over de schelpen in het algemeen? Laat het ons weten in de comments.