> /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.
Oliver B. Fischer, 28. November 2016
Seit langem ist die Bourne 4 auf jedem unixoiden System verfügbar. Auf jedem? Nein! Nur eine Firma in Cupertino hält der Bash 3 die Treue. Eine Anleitung zum sicheren Umstieg auf Bash 4.
Standardmäßig setzt OS X und auch das neue macos Sierra auf die Bourne-again shell, kurz Bash, als Standard-Shell. Allerdings in Version 3 aus dem Jahre 2007. Apple aktualisiert zwar regelmäßig sein Betriebssystem, jedoch die Bash bleibt davon ausgenommen. Für mich persönlich unverständlich, denn gerade die Mischung aus einem unixoiden und einem Consumer-Betriebssystem verschafft einen Mac bei Entwicklern die notwendige Attraktivität.
Neben dem Umstand das die ausgelieferte Bash-Version gut neun Jahre alt ist, stellt Version 4 der Bash auch viele neue Features bereit. Das attraktivste Feature davon für mich sind assoziative Arrays, auf die ich nicht mehr verzichten wollte.
> /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.
Die Bash 4 kann zusätzlich neben der Bash 3 über Homebrew oder MacPorts mit ein paar Schritten installiert werden.
Note
|
Für diese Anleitung zum Umstieg auf die Bash 4 wird eine funktionsfähige Installation von MacPorts vorausgesetzt. |
# Aktuellen Port der Bash über MacPorts installieren
> sudo -i port install bash
# Version überprüfen
> /opt/local/bin/bash --version
GNU bash, Version 4.4.0(1)-release (x86_64-apple-darwin15.6.0)
Copyright (C) 2016 Free Software Foundation, Inc.
Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl.html>
Dies ist freie Software. Sie darf verändert und verteilt werden.
Es wird keine Garantie gewährt, soweit das Gesetz es zulässt.
Damit die nun installierte Shell auch als Login-Shell genutzt werden kann,
muß sie zur Liste der erlaubten Login-Shells in /etc/shells
hinzugefügt werden.
# Anzeigen der aktuell möglichen Shells
> grep "^/" /etc/shells
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
# Neuinstallierte Bash hinzufügen
> sudo bash -c 'echo /opt/local/bin/bash >> /etc/shells'
# Bash 4 als eigene Login-Shell konfigurieren
> chsh -s /usr/local/bin/bash
Kurze Zeit nachdem ich auf die Bash 4 umgestiegen bin, wollte ich alle meine Ports neu installieren und habe dafür zuerst alle installierten Ports entfernt — und damit auch meine eigene Login-Shell. Damit hatte ich mir jede Möglichkeit genommen eine Shell zu öffnen und meine Ports erneut zu installieren.
Passiert so etwas, kann die Shell auch über die Systemeinstellungen geändert werden. Dafür werden diese zuerst geöffnet und dann auf die Gruppe Benutzer & Gruppen geklickt.
Im Panel Benutzer & Gruppen werden links alle Benutzer aufgeführt. Um einen Benutzer bearbeiten zu können, muß das Schloß unten links mit dem Label Zum Bearbeiten auf das Schloss klicken geöffnet werden.
Die Einstellung für die Login-Shell für einen Benutzer ist in den Erweiterten Einstellungen enthalten, die über einen Klick mit der rechten Maustaste auf den zu ändernden Benutzer aufgerufen werden können.
In den erweiterten Optionen eines Benutzers gibt es ein Feld Anmelde-Shell,
über das die zu verwendende Login-Shell eingestellt werden kann. Beispielsweise
die vom Betriebssystem mitgelieferte Bash 3 unter /bin/bash
.
Mich hat erneut überrascht, wie viel Unix in OS X enthalten ist und wie gut dieses auch in die übrigen Tools integriert ist. Nicht das ich nicht wüßte, das Darwin, das eigentliche Betriebssystem von OS X und macOS Sierra, auf BSD beruht und vieles nur von Aqua verdeckt wird. Doch das vergißt man leicht bei der täglichen Arbeit.
Viel Freude mit der jetzt jeweils aktuellsten Bash.