Terminal: Handige functies activeren in de nieuwe ZSH shell
Sinds macOS Catalina 10.15 maakt Terminal gebruik van ZSH, ook wel de Z-shell genoemd. Dit is een uitgebreide versie van de Bash shell die jarenlang door Apple voor Terminal onder macOS werd gebruikt.
ZSH heeft extra functies, zo kun je bijvoorbeeld gebruikmaken van plugins. Wanneer je ZSH gaat gebruiken zul je echter wel merken dat een aantal functies die onder de Bash shell standaard geactiveerd waren dat nu niet meer zijn. Gelukkig kun je deze weer eenvoudig activeren.
.zshrc bestand bewerken
Het activeren van de missende functies kan door deze toe te voegen aan het .zshrc configuratie bestand en Terminal te herstarten. Het configuratie bestand kan je met behulp van de standaard aanwezige nano editor bewerken. Als het bestand nog niet bestaat dan wordt deze automatisch aangemaakt door de editor.
Je opent het .zshrc bestand in de nano editor met:
nano .zshrc
Nadat wijzigingen zijn aangebracht sla je de wijzigingen op met behulp van de toetsencombinatie ctrl+x, gevolgd door y en enter.
Let op na het aanpassen van .zshrc bestand moet je Terminal afsluiten en opnieuw starten om de wijzigingen te activeren. Eventueel kun je met onderstaande commando de nieuwe .zshrc activeren:
exec zsh
ZSH Volledige history weergeven
Met behulp van het commando history
kun je eerdere uitgevoerde commando's bekijken. Voor de commando's wordt een regelnummer weergegeven. Als je een commando opnieuw wilt uitvoeren dan kun je een uitroepteken typen, direct gevolgd door het regelnummer van het commando (bijvoorbeeld !11
). Het commando behorend bij regelnummer 11 zal nu direct worden uitgevoerd.
Dit is een ontzettend handig functie als je lange/complexe commando in het verleden heb gebruikt. Dit geschiedenis onder ZSH is echter standaard beperkt tot maximaal 16 commando's. Wil je een grotere history hebben dan kun je dit aangeven in het .zshrc configuratie bestand.
Je kunt hiervoor de onderstaande regel toevoegen:
alias history="history 1"
Deze regel zorgt ervoor dat je history wordt weergeven vanaf regelnummer 1. Wil je alleen de laatste 25 uitgevoerde commando's bekijken dan gebruik je:
alias history="history 25"
ZSH automatisch aanvullen activeren
Door gebruik te maken van de tab-toets is het mogelijk om de benaming van een bestand of map automatisch aan te vullen. Wil je bijvoorbeeld naar de map 'Downloads' dan volstaat het om 'cd Do
' te typen gevolgd door de tab-toets. De naam van de map wordt automatisch aangevuld, tenzij er nog een map of bestand aanwezig is die begint met 'Do'.
Onder ZSH is de auto complete standaard niet geactiveerd, wil je hiervan toch gebruiken maken dan voeg je aan .zshrc de volgende twee regels toe:
autoload -Uz compinit
compinit
Na een herstart van de Terminal app is het automatisch aanvullen weer beschikbaar. Met een bijkomend voordeel. Als er meerdere mogelijkheden zijn kun je met behulp van de tab-toets een van de mogelijkheden selecteren. Deze mogelijkheden worden onder de actieve regel weergeven.
ZSH gekleurde bestandsweergave
Onder Bash was het mogelijk om op basis van kleur onderscheid te maken tussen verschillende bestanden en mappen. Hierdoor kunnen bijvoorbeeld mappen worden weergegeven in blauw en een alias in paars.
Ook onder ZSH is het mogelijk om het kleurenschema te activeren hiervoor voeg je de onderstaande regel toe aan .zshrc:
export CLICOLOR=1;
Na de herstart van Terminal wordt het kleurenschema toegepast. Het toepassen van het kleurenschema zorgt ervoor de inhoud van een map overzichtelijker wordt weergeven.
Auteur | Richard IJzermans | |
Datum | 11/08/2020 21:24 | |
Categorie | macOS | |
Reacties
Naast compinit voor auto-completion gebruik ik het volgende commando om de auto-completion hoofdletterongevoelig te laten werken:
zstyle ‘:completion:*’ matcher-list ‘m:{a-z}={A-Za-z}’
Dan krijg je dus bijvoorbeeld ook auto-completion voor Downloads als je ‘cd dow’ intikt en hoef je niet per se ‘cd Dow’ te typen.