de.phhsnews.com


de.phhsnews.com / 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, aber Sie können auch zu einer anderen Shell-Umgebung wechseln. Zsh ist eine besonders beliebte Alternative, und es gibt andere Muscheln, wie Asche, Strich, Fisch und Tcsh. Aber was ist der Unterschied und warum gibt es so viele?

Was tun Shells?

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

Die erste Shell-Umgebung war die Thompson Shell, die bei Bell Labs entwickelt und 1971 veröffentlicht wurde. Shell-Umgebungen haben seitdem auf dem Konzept aufgebaut und eine Vielzahl hinzugefügt B. neue Funktionen, Funktionen und Geschwindigkeitsverbesserungen.

Zum Beispiel bietet Bash Befehls- und Dateinamenergänzung, erweiterte Skriptfunktionen, eine Befehlshistorie, konfigurierbare Farben, Befehlsaliasnamen und eine Vielzahl anderer Funktionen, die nicht verfügbar waren 1971, als die erste Shell veröffentlicht wurde.

Die Shell wird auch von verschiedenen Systemdiensten im Hintergrund verwendet. Linux-Distributionen enthalten viele Funktionen, die als Shell-Skripte geschrieben sind. Diese Skripte sind Befehle und andere erweiterte Shell-Skriptfunktionen, die durch die Shell-Umgebung laufen.

Shells, die zur Bash führen: sh, csh, tsh und ksh

VERWANDT: Was ist Unix und warum spielt es eine Rolle? ?

Der prominenteste Vorläufer moderner Muscheln ist die Bourne-Shell - auch bekannt als "sh" -, die nach ihrem Schöpfer Stephen Bourne benannt wurde, der bei AT & T's Bell Labs arbeitete. Im Jahr 1979 veröffentlicht, wurde es der Standard-Befehlsinterpreter in Unix wegen seiner Unterstützung für Befehlssubstitution, Rohrleitungen, Variablen, Zustandsprüfung und Schleifen, zusammen mit anderen Funktionen. Es bot nicht viel Anpassung für Benutzer und unterstützte keine modernen Feinheiten wie Aliase, Befehlsvervollständigung und Shell-Funktionen (obwohl diese letzte schließlich hinzugefügt wurde).

Die C-Shell oder "csh" wurde entwickelt in den späten 1970er Jahren von Bill Joy an der University of California, Berkley. Es wurden viele interaktive Elemente hinzugefügt, mit denen Benutzer ihre Systeme steuern konnten, wie Aliase (Verknüpfungen für lange Befehle), Job-Management-Fähigkeiten, Befehlsverlauf und mehr. Es wurde von der C-Programmiersprache modelliert, in der das Unix-Betriebssystem selbst geschrieben war. Dies bedeutete auch, dass Benutzer der Bourne-Shell C lernen mussten, um Befehle darin eingeben zu können. Darüber hinaus hatte csh einige Bugs, die von Nutzern und YouTubern über einen langen Zeitraum hinweg herausgefordert werden mussten. Die Leute benutzten die Bourne-Shell für Skripte, weil sie nicht-interaktive Befehle besser handhabten, aber für die normale Verwendung bei der C-Shell blieben.

Im Laufe der Zeit haben viele Leute Fehler in der C-Shell behoben und Funktionen hinzugefügt eine verbesserte Version von csh, bekannt als "tcsh". Aber csh war immer noch der Standard in 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 rückwärtskompatibel mit der Sprache der Bourne-Shell war, aber viele Features aus der csh-Shell hinzufügte. Es wurde 1983 veröffentlicht, aber unter einer proprietären Lizenz. Es war keine freie Software bis zu den 2000er Jahren, als es 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 hektische proprietäre csh Implementierungen. Es hat unter anderem erfolgreich einen Standard für die Befehlsinterpretation erstellt und schließlich viele Features in der KornShell gespiegelt. Zur gleichen Zeit versuchte das GNU-Projekt ein freies, Unix-kompatibles Betriebssystem zu erstellen. Das GNU-Projekt entwickelte eine freie Software-Shell, die Teil seines kostenlosen Betriebssystems sein sollte und nannte es die "Bourne Again Shell" oder "Bash".

Bash wurde in den Jahrzehnten seit seiner ersten Veröffentlichung im Jahr 1989 verbessert, aber es ist immer noch die Standard-Shell auf den meisten Linux-Distributionen heute. Es ist auch die Standard-Shell auf Mac OS X von Apple und ist für die Installation auf Microsoft Windows 10 verfügbar.

Neuere Shells: Asche, Dash, Zsh und Fisch

Während sich die Linux-Community in den folgenden Jahren auf Bash niedergelassen hat, hörten Entwickler nicht auf, neue Shells zu erstellen, als Bash vor 28 Jahren zum ersten Mal veröffentlicht wurde.

Kenneth Almquist kreierte ein Bourne-Shell-Klon, bekannt als Almquish-Shell, A Shell, "Ash" oder manchmal nur "sh". Es war auch POSIX-kompatibel und wurde zur Standard-Shell in BSD, einem anderen Zweig von Unix. Die Ash-Shell ist leichter als Bash, was sie in Embedded-Linux-Systemen beliebt macht. Wenn Sie ein gerootetes Android-Telefon mit BusyBox installiert haben - oder ein anderes Gerät mit der BusyBox-Software-Suite -, verwendet es Code von Ash.

Debian entwickelte eine Shell-Umgebung basierend auf Asche und nannte sie "Strich". Es ist so konzipiert, dass es POSIX-kompatibel und leichtgewichtig ist. Es ist also schneller als Bash, verfügt jedoch nicht über alle Funktionen. Ubuntu verwendet die Dash-Shell als Standard-Shell für nicht-interaktive Aufgaben, beschleunigt Shell-Skripte und andere Aufgaben, die im Hintergrund ausgeführt werden. Ubuntu verwendet immer noch Bash für interaktive Shells, so dass Benutzer immer noch die interaktive Umgebung mit allen Funktionen haben.

Eine der beliebtesten neueren Shells ist die Z-Shell oder "zsh". Von Paul Falstad im Jahr 1990 entwickelt, ist zsh eine Bourne-Stil-Shell, die die Funktionen enthält, die Sie in bash finden, und noch mehr. Zum Beispiel hat zsh Rechtschreibprüfung, die Fähigkeit, nach Logins / Logouts zu schauen, einige eingebaute Programmierfunktionen wie Bytecode, Unterstützung für wissenschaftliche Notation in der Syntax, ermöglicht Fließkomma-Arithmetik und mehr Funktionen.

Ein weiterer neuer shell ist die Friendly Interactive Shell oder "fish", die 2005 veröffentlicht wurde. Sie hat eine einzigartige Befehlszeilensyntax, die etwas einfacher zu erlernen ist, aber 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, wird Ihnen nicht unbedingt helfen, bash und andere Bourne-abgeleitete Schalen zu verwenden.

Was sollten Sie wählen? (und warum Zsh populär ist)

Sie müssen keine Shell auswählen. Ihr Betriebssystem wählt Ihre Standard-Shell für Sie, und diese Wahl ist fast immer bash. Setzen Sie sich vor eine Linux-Distribution - oder sogar einen Mac - und Sie werden fast immer eine Bash-Shell-Umgebung haben. Bash hat einige fortgeschrittene Funktionen, aber Sie werden sie wahrscheinlich nur verwenden, wenn Sie Shell-Skripte programmieren.

Auf Embedded-Linux-Systemen oder BSD-Systemen erhalten Sie die Aschemaske. Aber Asche ist eine Bourne-basierte Shell und ist weitgehend kompatibel mit bash. Jegliches Wissen, das Sie mit bash haben, wird in eine Ash- oder Dash-Shell übertragen, obwohl einige erweiterte Skriptfunktionen in dieser leichtgewichtigen Shell nicht verfügbar sind.

Fast jede Shell, auf die Sie stoßen werden, basiert auf Bourne und funktioniert ähnlich wie zsh .

Deshalb ist zsh beliebt. Diese neuere Shell ist kompatibel mit bash, enthält aber mehr Funktionen. Die zsh-Shell bietet eine integrierte Rechtschreibkorrektur, eine verbesserte Befehlszeilenkomplettierung, ladbare Module, die als Plug-Ins für Ihre Shell fungieren, globale Aliasnamen, mit denen Sie Alias-Dateinamen oder andere Befehle in der Befehlszeile anstelle von Befehlen übernehmen können mehr thematische Unterstützung. Es ist wie Bash, aber mit vielen Extras, zusätzlichen Funktionen und konfigurierbaren Optionen, die Sie vielleicht schätzen, wenn Sie viel Zeit in der Befehlszeile verbringen.

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

"Oh My ZSH" ist ein Tool, mit dem Sie zsh-Plug-in einfacher aktivieren können. Ins und wechseln Sie zwischen vorgefertigten Designs, und passen Sie schnell Ihre zsh-Shell an, ohne stundenlang daran zu arbeiten.

Es gibt auch andere Shells. Zum Beispiel ist die Tcsh-Shell immer noch da und ist immer noch eine Option. FreeBSD verwendet tsch als Standard-Root-Shell und Asche als seine standardmäßige interaktive Shell. Wenn Sie die C-Programmierung regelmäßig verwenden, ist tsch möglicherweise besser für Sie geeignet. Allerdings ist es bei weitem nicht so gebräuchlich wie bash oder zsh.

Wie man zwischen Shells umschaltet

Es ist einfach, zu einer neuen Shell zu wechseln, um es auszuprobieren. Installieren Sie einfach die Shell aus dem Paketmanager Ihrer Linux-Distribution und geben Sie den Befehl ein, um die Shell zu starten.

Nehmen wir beispielsweise an, 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 in einer zsh-Shell sitzen. Geben Sie "exit" in der Shell ein, um es zu verlassen und zu Ihrer aktuellen Shell zurückzukehren.

Dies ist nur vorübergehend. Wenn Sie ein neues Terminalfenster öffnen oder sich in der Befehlszeile an Ihrem System anmelden, wird Ihre Standardshell angezeigt. Um die Shell zu ändern, die Sie bei der Anmeldung sehen, die als Login-Shell bekannt ist, können Sie im Allgemeinen den Befehlchshoder "Shell ändern" verwenden.

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

welches zsh

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

gespeichert ist. Führe den folgenden Befehl aus, gib dein Passwort ein und du ' Sie werden aufgefordert, eine neue Login-Shell auszuwählen:

chsh

Nach dem obigen Befehl würden wir/ usr / bin / zsheingeben. Die zsh-Shell wäre dann unser Standard, bis wir den Befehlchshausgeführt und ihn zurückgestellt hätten.


So verwalten Sie alle gespeicherten Kennwörter Ihres Macs mit Keychain Access

So verwalten Sie alle gespeicherten Kennwörter Ihres Macs mit Keychain Access

Ihr Mac speichert alle Arten von Kennwörtern. Es werden die Kennwörter für Ihre Wi-Fi-Netzwerke gespeichert, die von Ihren Anwendungen verwendet werden, und sogar diejenigen, die Sie in Safari speichern. Sie fragen sich vielleicht, wo diese Passwörter gespeichert sind und ob Sie sie ansehen können. Wie Sie sehen, können Sie das!

(how-top)

Was ist

Was ist "Systemless Root" auf Android, und warum ist es besser?

Root-Zugriff auf Android-Geräte ist kein neues Konzept, aber die Art, wie es gemacht wird, hat sich mit Android geändert 6.0 Marshmallow. Die neue "systemlose" Root-Methode kann auf den ersten Blick ein wenig verwirrend sein, also sind wir hier, um Ihnen einen Sinn zu geben, warum Sie es wollen und warum diese Methode der beste Weg ist, um ein Android-Smartphone voranzubringen .

(how-top)