Connect with us

Wie man

Was ist der Unterschied zwischen Bash-, Zsh- und anderen Linux-Shells?

Was ist der Unterschied zwischen Bash-, Zsh- und anderen Linux-Shells?

Die meisten Linux-Distributionen enthalten standardmäßig die Bash-Shell. Sie können jedoch auch zu einer anderen Shell-Umgebung wechseln. Zsh ist eine besonders beliebte Alternative, und es gibt andere Muscheln wie Asche, Dash, Fisch und Tcsh. Aber was ist der Unterschied und warum gibt es so viele?

Was machen Muscheln?

Wenn Sie sich über die Befehlszeile anmelden oder unter Linux ein Terminalfenster starten, startet das System das Shell-Programm. Shells bieten eine Standardmethode zum Erweitern der Befehlszeilenumgebung. Sie können die Standard-Shell gegen eine andere austauschen, wenn Sie möchten.

Die erste Shell-Umgebung war die Thompson Shell, die von Bell Labs entwickelt und 1971 veröffentlicht wurde. Seitdem bauen Shell-Umgebungen auf dem Konzept auf und fügen eine Vielzahl neuer Features, Funktionen und Geschwindigkeitsverbesserungen hinzu.

Zum Beispiel bietet Bash die Vervollständigung von Befehlen und Dateinamen, erweiterte Skriptfunktionen, einen Befehlsverlauf, konfigurierbare Farben, Befehlsaliasnamen und eine Vielzahl anderer Funktionen, die 1971 bei der Veröffentlichung der ersten Shell nicht verfügbar waren.

Die Shell wird auch im Hintergrund von verschiedenen Systemdiensten verwendet. Linux-Distributionen enthalten viele Funktionen, die als Shell-Skripte geschrieben wurden. Diese Skripte sind Befehle und andere erweiterte Shell-Skriptfunktionen, die in der Shell-Umgebung ausgeführt werden.

Muscheln, die zu Bash führen: sh, csh, tsh und ksh

Der bekannteste Vorläufer moderner Muscheln ist die Bourne-Muschel – auch als „sh“ bekannt -, die nach ihrem Schöpfer Stephen Bourne benannt wurde, der bei den Bell Labs von AT & T arbeitete. Es wurde 1979 veröffentlicht und wurde zum Standard-Befehlsinterpreter unter Unix, da es neben anderen Funktionen auch das Ersetzen von Befehlen, Piping, Variablen, Bedingungstests und Schleifen unterstützt. Es bot den Benutzern nicht viele Anpassungsmöglichkeiten und unterstützte keine modernen Funktionen wie Aliase, Befehlsvervollständigung und Shell-Funktionen (obwohl diese letzte schließlich hinzugefügt wurde).

Die C-Shell oder „csh“ wurde Ende der 1970er Jahre von Bill Joy an der University of California in Berkley entwickelt. Es wurden viele interaktive Elemente hinzugefügt, mit denen Benutzer ihre Systeme steuern können, z. B. Aliase (Verknüpfungen für lange Befehle), Funktionen zur Auftragsverwaltung, Befehlsverlauf und mehr. Es wurde aus der Programmiersprache C modelliert, in der das Unix-Betriebssystem selbst geschrieben war. Dies bedeutete auch, dass Benutzer der Bourne-Shell C lernen mussten, damit sie Befehle eingeben konnten. Darüber hinaus hatte csh einige Fehler, die von Benutzern und Entwicklern über einen langen Zeitraum hinweg behoben werden mussten. Die Leute verwendeten die Bourne-Shell für Skripte, weil sie nicht interaktive Befehle besser handhabte, aber für den normalen Gebrauch bei der C-Shell blieb.

Im Laufe der Zeit haben viele Leute Fehler behoben und der C-Shell Funktionen hinzugefügt, die in einer verbesserten Version von csh gipfelten, die als „tcsh“ bekannt ist. Csh war jedoch immer noch die Standardeinstellung bei Unix-basierten Computern und hatte einige nicht standardmäßige Funktionen hinzugefügt. David Korn von Bell Labs arbeitete an der KornShell oder „ksh“, die versuchte, die Situation zu verbessern, indem sie abwärtskompatibel mit der Sprache der Bourne-Shell war, aber viele Funktionen aus der csh-Shell hinzufügte. Es wurde 1983 veröffentlicht, jedoch unter einer proprietären Lizenz. Es war keine freie Software, bis sie in den 2000er Jahren unter verschiedenen Open-Source-Lizenzen veröffentlicht wurde.

Die Geburt von Bash

Die Portable Operating System Interface für Unix oder POSIX war eine weitere Antwort auf die hektischen proprietären csh-Implementierungen. Es wurde erfolgreich ein Standard für die Befehlsinterpretation erstellt (unter anderem) und schließlich viele der Funktionen in der KornShell gespiegelt. Gleichzeitig versuchte das GNU-Projekt, ein kostenloses, Unix-kompatibles Betriebssystem zu erstellen. Das GNU-Projekt entwickelte eine freie Software-Shell als Teil seines freien Betriebssystems und nannte sie „Bourne Again Shell“ oder „Bash“.

Bash wurde in den Jahrzehnten seit seiner ersten Veröffentlichung im Jahr 1989 verbessert, ist aber heute noch die Standard-Shell auf den meisten Linux-Distributionen. Es ist auch die Standard-Shell unter Apples MacOS und kann unter Microsoft Windows 10 installiert werden.

Neuere Muscheln: Asche, Strich, Zsh und Fisch

Während sich die Linux-Community in den letzten Jahren für Bash entschieden hat, haben die Entwickler nicht aufgehört, neue Shells zu erstellen, als Bash vor 28 Jahren zum ersten Mal veröffentlicht wurde.

Kenneth Almquist hat einen Bourne-Shell-Klon erstellt, der als Almquish-Shell, A Shell, „ash“ oder manchmal einfach „sh“ bekannt ist. Es war auch POSIX-kompatibel und wurde zur Standard-Shell in BSD, einem anderen Zweig von Unix. Die Ascheschale ist leichter als Bash, was sie in eingebetteten Linux-Systemen beliebt macht. Wenn Sie ein gerootetes Android-Telefon mit BusyBox installiert haben oder ein anderes Gerät mit der BusyBox-Software-Suite, wird Code aus Asche verwendet.

Debian entwickelte eine auf Asche basierende Shell-Umgebung und nannte sie „Dash“. Es ist POSIX-konform und leichtgewichtig, daher schneller als Bash, verfügt jedoch nicht über alle Funktionen. Ubuntu verwendet die Dash-Shell als Standard-Shell für nicht interaktive Aufgaben, um Shell-Skripte und andere im Hintergrund ausgeführte Aufgaben zu beschleunigen. Ubuntu verwendet Bash jedoch weiterhin für interaktive Shells, sodass Benutzer weiterhin über die interaktive Umgebung mit allen Funktionen verfügen.

Eine der beliebtesten neueren Shells ist die Z-Shell oder „zsh“. Zsh wurde 1990 von Paul Falstad entwickelt und ist eine Shell im Bourne-Stil, die die Funktionen enthält, die Sie in bash finden, und noch mehr. Zum Beispiel verfügt zsh über eine Rechtschreibprüfung, die Möglichkeit, nach Anmeldungen / Abmeldungen zu suchen, einige integrierte Programmierfunktionen wie Bytecode, Unterstützung für die wissenschaftliche Notation in der Syntax, ermöglicht Gleitkomma-Arithmetik und weitere Funktionen.

Eine weitere neuere Shell ist die 2005 veröffentlichte Friendly Interactive Shell („fish“). Sie verfügt über eine einzigartige Befehlszeilensyntax, die etwas einfacher zu erlernen ist, jedoch weder von der Bourne-Shell noch von der C-Shell abgeleitet ist. Es ist eine interessante Idee, aber was Sie durch die Verwendung von Fisch lernen, hilft Ihnen nicht unbedingt bei der Verwendung von Bash und anderen von Bourne abgeleiteten Muscheln.

Welches solltest du wählen? (und warum Zsh beliebt ist)

Sie müssen keine Shell auswählen. Ihr Betriebssystem wählt Ihre Standard-Shell für Sie aus, und diese Auswahl ist fast immer Bash. Setzen Sie sich vor eine Linux-Distribution – oder sogar einen Mac – und Sie haben fast immer eine Bash-Shell-Umgebung. Bash verfügt über einige erweiterte Funktionen, die Sie jedoch wahrscheinlich nur verwenden werden, wenn Sie Shell-Skripte programmieren.

Auf eingebetteten Linux- oder BSD-Systemen erhalten Sie die Ascheschale. Aber Asche ist eine Schale auf Bourne-Basis und weitgehend kompatibel mit Bash. Alle Kenntnisse, die Sie aus der Verwendung von Bash haben, werden auf die Verwendung einer Asche- oder Dash-Shell übertragen, obwohl einige erweiterte Skriptfunktionen in dieser leichten Shell nicht verfügbar sind.

Fast jede Shell, auf die Sie stoßen, basiert auf Bourne und funktioniert ähnlich – einschließlich zsh.

Deshalb ist zsh beliebt. Diese neuere Shell ist mit Bash kompatibel, enthält jedoch weitere Funktionen. Die zsh-Shell bietet eine integrierte Rechtschreibkorrektur, eine verbesserte Befehlszeilenvervollständigung, ladbare Module, die als Plug-Ins für Ihre Shell dienen, globale Aliase, mit denen Sie Dateinamen oder andere Elemente in der Befehlszeile anstelle von nur Befehlen aliasen können, und mehr thematische Unterstützung. Es ist wie Bash, aber mit vielen Extras, zusätzlichen Funktionen und konfigurierbaren Optionen, die Sie vielleicht zu schätzen wissen, wenn Sie viel Zeit in der Befehlszeile verbringen.

Wenn Sie mit Bash vertraut sind, können Sie zu zsh wechseln, ohne eine andere Syntax zu lernen. Sie erhalten lediglich zusätzliche Funktionen. Wenn Sie mit zsh vertraut sind, können Sie zu bash wechseln, ohne eine andere Syntax zu lernen. Sie haben einfach keinen Zugriff auf diese Funktionen.

Oh mein ZSH”Ist ein Tool, mit dem Sie zsh-Plug-Ins einfacher aktivieren und zwischen vorgefertigten Themen wechseln können. So können Sie Ihre zsh-Shell schnell anpassen, ohne stundenlang Änderungen vornehmen zu müssen.

Es gibt auch andere Muscheln. Zum Beispiel gibt es die tcsh-Shell immer noch und ist immer noch eine Option. FreeBSD verwendet tsch als Standard-Root-Shell und ash als standardmäßige interaktive Shell. Wenn Sie die C-Programmierung regelmäßig verwenden, passt tsch möglicherweise besser zu Ihnen. Es ist jedoch bei weitem nicht so häufig wie Bash oder Zsh.

So wechseln Sie zwischen Muscheln

Es ist einfach, zu einer neuen Shell zu wechseln, um sie auszuprobieren. Installieren Sie einfach die Shell über den Paketmanager Ihrer Linux-Distribution und geben Sie den Befehl zum Starten der Shell ein.

Angenommen, Sie möchten zsh unter Ubuntu ausprobieren. Sie würden die folgenden Befehle ausführen, um sie zu installieren und dann zu starten:

sudo apt install zsh

zsh

Sie würden dann an einer Zsh-Shell sitzen. Art “ exit ”An der Shell, um sie zu verlassen und zu Ihrer aktuellen Shell zurückzukehren.

Dies ist nur vorübergehend. Immer wenn Sie ein neues Terminalfenster öffnen oder sich über die Befehlszeile bei Ihrem System anmelden, wird Ihre Standard-Shell angezeigt. Um die Shell zu ändern, die Sie bei der Anmeldung sehen – die so genannte Login-Shell -, können Sie im Allgemeinen die verwenden chsh , oder „Shell ändern“, Befehl.

Um diesen Befehl verwenden zu können, müssen Sie zuerst den vollständigen Pfad zu Ihrer Shell mit dem Befehl which finden. Nehmen wir zum Beispiel an, wir wollten zur zsh-Shell wechseln. Wir würden den folgenden Befehl ausführen:

which zsh

Unter Ubuntu sagt uns dies, dass die zsh-Binärdatei unter / usr / bin / zsh gespeichert ist.

Führen Sie den folgenden Befehl aus, geben Sie Ihr Kennwort ein und Sie werden aufgefordert, eine neue Anmeldeshell auszuwählen:

chsh

Gemäß dem obigen Befehl würden wir eingeben /usr/bin/zsh . Die zsh-Shell wäre dann unsere Standardeinstellung, bis wir die ausgeführt haben chsh Befehl und änderte es zurück.

Continue Reading
Click to comment

Leave a Reply

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

Tendencia