Bash als Shell in Betriebssystemen und zsh als Alternative

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.

Bash wurde jahrelang als Shell unter Mac OS X, OS X und macOS verwendet. Doch seit einigen Jahren kommt zsh im Terminal des Apple Mac zum Einsatz. Hier findet ihr die Gründe dafür.
Bash wurde jahrelang als Shell unter Mac OS X, OS X und macOS verwendet. Doch seit einigen Jahren kommt zsh im Terminal des Apple Mac zum Einsatz. Hier findet ihr die Gründe dafür.

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.

Welche Shell in eurer macOS-Version zum Einsatz kommt, das zeigt euch das Terminal direkt an.
Welche Shell in eurer macOS-Version zum Einsatz kommt, das zeigt euch das Terminal direkt an.

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. 
Hat dir der Artikel gefallen und helfen dir die Anleitungen im Blog? Dann würde ich mich freuen, wenn du das Blog über eine Steady-Mitgliedschaft unterstützen würdest.

2 Kommentare zu „Bash als Shell in Betriebssystemen und zsh als Alternative“

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Im Sir Apfelot Blog findest du Ratgeber, Anleitungen und Testberichte zu Apple Produkten wie iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini und Mac Studio.

Specials
Shopping
  •  
  •