Als Kommunikationsweg zwischen User und Unix-basiertem Betriebssystem kommt am Computer die sogenannte Shell zum Einsatz. Diese Mensch-Maschine-Schnittstelle stellt eine Nutzungsumgebung zur Verfügung und sorgt dafür, dass der Computer und seine Software nutzbar werden. Die einfachste Kommunikationsmöglichkeit – etwa unter macOS am Apple Mac – ist dabei das Terminal, teilweise auch Kommandozeile oder Befehlszeile genannt. Bis macOS 10.14 Mojave wurde dafür die Bash Shell genutzt. Seit macOS 10.15 Catalina kommt die Z shell, kurz zsh genannt, zum Einsatz. Hier erfahrt ihr mehr dazu.
Kapitel in diesem Beitrag:
Die Bedeutung der Shell in Betriebssystemen
Die Shell ist eine textbasierte Benutzeroberfläche, die es ermöglicht, Befehle direkt an das Betriebssystem zu senden. Auf diesem Weg können Nutzer/innen ihre Dateien verwalten, Programme ausführen, Prozesse überwachen und steuern, Netzwerkaktionen durchführen, Downloads starten, Dateien umwandeln, Einstellungen anpassen und vieles mehr. Die Bash, eine Weiterentwicklung der ursprünglichen Unix-Shell, hat sich als eine der beliebtesten und am weitesten verbreiteten Shells etabliert – sie ist in vielen Unix- und Linux-Distributionen standardmäßig enthalten.
Der Wechsel von Bash zu zsh bei Apple
Die Bash Shell wurde in den späten 1980er Jahren entwickelt und ist 1989 in der Version 1 erschienen. Mittlerweile gibt es die Version 5 (v5.2.15 vom Dezember 2022). Mit der Veröffentlichung von macOS 10.15 Catalina im Jahr 2019 hat Apple aber bereits beschlossen, Bash als Standard-Shell durch die Z Shell (zsh) zu ersetzen. Diese Entscheidung hat vor allem unter Entwickler/innen für einige Aufmerksamkeit gesorgt, da Bash – genauer gesagt die Bash-Version 3 – seit Mac OS X 10.3 Panther ab 2003 die bevorzugte Shell von macOS war. Zuvor kam die TENEX-C-Shell zum Einsatz.
Der Wechsel zu zsh mit macOS Catalina hatte mehrere Gründe. Einer davon war die Lizenzierung von Bash. Die Bash Shell ist seit der Version 4 unter der GNU General Public License (GPL) lizenziert, was bedeutet, dass Änderungen am Code veröffentlicht werden müssen, wenn die Software modifiziert und weitergegeben wird. macOS ist aber ein proprietäres System, und die Code-Weitergabe von Apple nicht vorgesehen. Durch den Wechsel zu zsh konnte Apple die Vorteile dieser Shell nutzen und damit gleichzeitig Lizenzprobleme vermeiden. Die Z Shell bzw. zsh bietet dabei durchaus einige Vorteile im Vergleich zu Bash.
Die zsh Shell: Eine leistungsstarke Alternative zu Bash
Die zsh ist eine erweiterbare und anpassbare Shell, die im Jahr 1990 erschien. Mittlerweile gibt es die Version 5 (v5.9 vom Mai 2022). Zsh stellt eine Kombination und Verbesserung von Bash sowie Kornshell (ksh) und der TENEX-C-Shell (tcsh) dar. Sie bietet viele Funktionen, die in Bash nicht standardmäßig verfügbar sind. Einige der Funktionen der zsh sind (Auszug):
- Verbesserte Autovervollständigung: Die zsh kann eine programmierbare Befehlszeilenergänzung anzeigen, die Befehle, Dateinamen und Argumente vorschlägt, während Eingaben getippt werden. Dies beschleunigt den Eingabeprozess und verringert die Wahrscheinlichkeit von Tippfehlern. Weiterhin kann auch eine einzelne Rechtschreibkorrektur genutzt werden.
- Themes und Plugins: Es werden Themes und Plugins unterstützt, um die Benutzeroberfläche der Shell anzupassen und zusätzliche Funktionen hinzuzufügen. Dies ermöglicht es, die Shell nach eigenen Vorlieben und für den individuellen Workflow anzupassen. Allerdings sind in der Standardversion bereits Befehle für hunderte Programme enthalten.
- Leistungsstarke Skripterstellung: Die zsh Shell bietet eine umfangreiche Skripting-Umgebung mit erweiterten Kontrollstrukturen, Array-Manipulation und anderen Funktionen, welche die Skripterstellung erleichtern.
- Erweiterte History-Verwaltung: Die zsh ermöglicht eine genauere Verwaltung der Befehlshistorie, einschließlich der Möglichkeit, Duplikate zu entfernen, Befehle nach Schlüsselwörtern zu durchsuchen und weitere Anpassungen vorzunehmen.
- Kompatibilität mit anderen Shells: Da zsh keine von anderen Shells abgegrenzte und sich komplett von ihnen unterscheidende Shell ist, kann sie auch Befehle anderer Mensch-Maschine-Schnittstellen nutzen. Zudem kann sie andere Shells imitieren, z. B. als Bourne-Shell mit /bin/sh.
Meine Tipps & Tricks rund um Technik & Apple
Ähnliche Beiträge
Johannes hat nach dem Abitur eine Ausbildung zum Wirtschaftsassistenten in der Fachrichtung Fremdsprachen absolviert. Danach hat er sich aber für das Recherchieren und Schreiben entschieden, woraus seine Selbstständigkeit hervorging. Seit mehreren Jahren arbeitet er nun u. a. für Sir Apfelot. Seine Artikel beinhalten Produktvorstellungen, News, Anleitungen, Videospiele, Konsolen und einiges mehr. Apple Keynotes verfolgt er live per Stream.
Ich benutze die Fish Shell:
https://fishshell.com/
Ja, die hat auch was! 😊