Unix / Linux Shells 101

Autor: Eugene Taylor
Erstelldatum: 11 August 2021
Aktualisierungsdatum: 8 Kann 2024
Anonim
Unix Shell Crash Course || Unix Shell Tutorial for Beginners
Video: Unix Shell Crash Course || Unix Shell Tutorial for Beginners

Inhalt



Quelle: Tomasz Bidermann / Dreamstime.com

Wegbringen:

Unix- und Linux-Shells sind sehr leistungsfähig und extrem anpassbar.

Die Kommandozeile auf Unix- und Linux-Systemen ist bereits sehr mächtig, aber Shells sind ein noch mächtigeres Werkzeug, als man denkt. Sie können sie anpassen und nach Herzenslust austauschen, solange Sie wissen, wie.

Was ist eine Muschel?

Fast jedes Unix- und Linux-Handbuch enthält das Standarddiagramm einer Shell, die das Betriebssystem umschließt und einer Art Schokoriegel ähnelt. Die Shell ist wirklich nichts anderes als eine Schnittstelle zwischen dem Betriebssystem, einschließlich dem Kernel, dem Dateisystem und den verschiedenen Systemaufrufen und dem Benutzer. Für viele Jahre war es die einzige interaktive Benutzeroberfläche, bevor grafische Benutzeroberflächen in den 1980er Jahren üblich wurden. Grafische Benutzeroberflächen können auch als eine Art Shell betrachtet werden, da sie viele der gleichen Funktionen erfüllen: Starten von Programmen, Konfigurieren des Systems und Verwalten von Dateien.

Diese bescheidenen Schnittstellen haben eine überraschende Menge an Leistung. Zum einen sind sie vollwertige Programmiersprachen. Bevor noch leistungsstärkere Skriptsprachen wie Python auf den Markt kamen, waren Shell-Skripts ideal zum Schreiben von Programmen, die nicht unbedingt die Leistung von C benötigten. Sie sind weiterhin nützlich für die Automatisierung von Systemaufgaben und für das Rapid Prototyping.

Sie haben auch eine Reihe von Funktionen, die das Arbeiten mit und das Auffinden von Dateien erleichtern. Eine der am häufigsten verwendeten Methoden ist "Wildcarding" oder "Globbing". Fast alle Unix- und Linux-Benutzer kennen den Platzhalter "*" für jedes Zeichen. Dies ist eigentlich die Aufgabe der Shell. Verschiedene Shells bieten noch leistungsstärkere Optionen.

Eine der Besonderheiten von Unix ist die Möglichkeit, Programmeingaben und -ausgaben umzuleiten. Die Shell implementiert diese Funktionalität.

Die Shell ist nur ein weiteres Programm, daher kann jeder Programmierer mit den richtigen Fähigkeiten eines erstellen. Im Laufe der Jahre sind mehrere größere Granaten entstanden.

Geschichte und eine Zusammenfassung der Muscheln

Obwohl es in den Anfangszeiten des Betriebssystems mehrere Unix-Shells gab, war die Bourne-Shell, benannt nach Stephen R. Bourne, die erste, die außerhalb von Bell Labs große Anerkennung fand. Die Hauptinnovation der Shell bestand darin, dass sie Funktionen für die strukturierte Programmierung unterstützte, wodurch es erstmals möglich wurde, die Shell als echte Programmiersprache zu verwenden. Es ist so unverzichtbar, dass alle modernen Unix- und Linux-Versionen es weiterhin verwenden, obwohl es normalerweise eine der neueren Shells ist, die die Bourne-Shell emulieren.

Die nächste wichtige Shell war die C-Shell, die allgemein als "csh" abgekürzt wird. Diese Shell wurde am UC Berkeley entwickelt und ist ein wichtiger Bestandteil der BSD-Version von Unix. Wie der Name schon sagt, ähnelt die Syntax der Programmiersprache C, wurde jedoch für die interaktive Verwendung entwickelt.

Es enthielt einen Verlaufsmechanismus, mit dem Benutzer alle zuvor ausgegebenen Befehle wiederholen konnten, ohne eine ganze Zeile erneut eingeben zu müssen, und eine verbesserte Auftragssteuerung, die das Ausführen mehrerer Aufgaben erleichterte. (Denken Sie daran, dass dies eine Zeit war, in der die meisten Leute noch Terminals mit Basis verwendeten.)

Die nächste große Shell war die Korn Shell, die ebenfalls von Bell Labs stammte. Die Muschel wurde übrigens nach David Korn benannt, nicht nach der Band. Die Hauptinnovation der Korn-Shell ist die Einführung der Befehlszeilenbearbeitung, mit der die Verlaufsfunktionen noch erweitert werden. Benutzer können zurückgehen und die von ihnen eingegebenen Befehle mit Befehlen bearbeiten, die denen der Editoren vi oder Emacs ähneln.

Von den großen Muscheln ist die Bourne Again Shell (Bash) die beliebteste seit ihrer Einführung Ende der 80er Jahre. Diese Shell, die im Rahmen des GNU-Projekts entwickelt wurde, enthält die Neuerungen der C- und Korn-Shells und behält gleichzeitig die Kompatibilität mit der Bourne-Shell bei, daher der Name. Es ist die "Standard" -Shell für die meisten Linux-Distributionen.

Die Z-Shell (zsh), die erstmals 1990 veröffentlicht wurde, ist ein Traum für Befehlszeilenbenutzer. Es hat nicht nur die meisten anderen Hauptfunktionen, die die anderen Shells bieten, sondern ist auch wahnsinnig anpassbar mit vielen leistungsstarken Funktionen. Eine der leistungsstärksten Methoden ist das rekursive Globbing, mit dem Benutzer Dateinamen in Unterverzeichnissen zuordnen können, wenn sie Befehle anstelle von Dateien im aktuellen Arbeitsverzeichnis eingeben. Sehr erfahrene Benutzer können auch die Vervollständigungsoptionen anpassen und die Dateien abgleichen, ohne sie vollständig eingeben zu müssen. Und für die fetten Schreibkräfte kann es auch Ihre Rechtschreibung korrigieren. Diese Shell ist so fortschrittlich, dass ihre Handbuchseite in mehrere sehr lange Abschnitte unterteilt wurde.

Scripting

Wie bereits erwähnt, sind Shells nicht nur Befehlszeilenschnittstellen, sondern leistungsstarke Programmiersprachen. Das Schöne an Shell-Skripten ist, dass Sie die gleiche Sprache sowohl in der regulären interaktiven Verwendung als auch in Skripten verwenden können, wodurch die Lernkurve viel flacher wird. Moderne Shells enthalten alle üblichen Funktionen der Programmiersprache, einschließlich Ablaufsteuerung, Funktionen und Variablen. Einige von ihnen verfügen sogar über erweiterte Datenstrukturen wie assoziative Arrays.

Trotz ihrer Leistungsfähigkeit hat das Programmieren in Shells einige Tücken. Das größte Problem ist, dass es zu einfach ist, Skripte zu schreiben, die von einem Programm abhängen, das sich möglicherweise nicht auf einem anderen System befindet oder von einer bestimmten Unix- oder Linux-Version abhängt. Aus diesem Grund eignen sich Shell-Skripte am besten für Programme, von denen Sie wissen, dass sie nur auf einem System ausgeführt werden. Wenn Sie versuchen, ein portables Programm zu erstellen und kein C-Programm schreiben möchten, schreiben Sie am besten in einer anderen Skriptsprache wie Perl oder Python.

Ein Blick unter die Haube der Unix / Linux-Kommandozeile

Unter der Oberfläche Ihrer Unix / Linux-Befehlszeile lauert mehr Strom. Dieser Artikel könnte Sie dazu inspirieren, einen Blick unter die Haube Ihrer Lieblingsschale zu werfen, um zu sehen, was Sie wirklich tun können. Wenn Sie sich mit Shell-Skripten befassen möchten, sollten Sie die Bücher Unix Power Tools und Learning the Bash Shell lesen. Das Originalpapier von Stephen R. Bournes auf seiner Shell ist auch eine gute Einführung in die Welt des Shell-Scriptings, auch wenn es alt ist.