Shell Scripting unter Linux - Computer verstehen im Allgemeinen die Sprache der Nullen und Einsen, die als Binärsprache bezeichnet wird. Vor Jahrzehnten haben Menschen Programme und Anwendungen wie Taschenrechner in Binärsprachen geschrieben. Aber das war nicht hübsch. Stell dir vor! Sie möchten 73 + 96 berechnen, wie würden Sie schreiben? Sie müssten eher die Binärzahl für 73 und 96 berechnen und diese dann addieren. Eine Person muss ziemlich dumm sein, um das zu tun. Man rechnet lieber 73 und 96 auf Papier und geht weiter. Aber das ist für den kleineren Teil. Was ist, wenn Sie etwas berechnen müssen wie (19273/23 * (2967 3)). Ich würde jetzt sagen, dass dies ziemlich intensiv ist.
Ein indealer Mann, der lernt, alles in binärer Sprache zu kodieren, macht also keinen Sinn. Dies ist der Hauptgrund, warum die Computer in den 70er und 80er Jahren nicht populär waren. Später, noch bevor Windows entwickelt wurde, begannen die Leute, Kernel und ähnliches zu entwickeln, die den Kern des Betriebssystems ausmachten. Die verwendeten Kernel verstehen das vom Menschen lesbare Format eines bestimmten Programms und konvertieren es dann in Maschinencode. Und hier entstanden die Programmiersprachen, die die gesamte Ära der Computerwelt veränderten. Anwendungen wurden in C und C ++ und später mit Java, Python, Ruby und Perl erstellt.
Derzeit gibt es mehr als 50 Programmiersprachen. Und das sind zumindest diejenigen, die ich kenne. Ganz zu schweigen von der Tatsache, dass es andere Programmiersprachen gibt, die noch schwerer zu verstehen sind als Maschinencode. Mein Punkt ist, Beispiele wie Hühnerprogrammierung und Malbolge. Sie sind ein böses Zeug, mit dem man sich auseinandersetzen muss.
Shell-Programmierung… .errr… Scripting?
Jetzt wundern Sie sich vielleicht, warum ich die Shell-Programmierung oben nicht zusammen mit den anderen Programmiersprachen erwähnt habe. Der Hauptgrund, warum Shell selbst ist, ist keine Programmiersprache. Es ist eine Skriptsprache. Shell ist nur ein benutzerseitiges interaktives Programm, das alle Eingaben des Benutzers interpretiert und das Ergebnis liefert, sofern der Befehl gültig ist. Dann übergibt es das Programm an den Kernel, um es auszuführen. Die Shell ist kein Teil des Kernels, sondern verwendet den Kernel, um Dateien auszuführen und zu erstellen.
Arten von Shell-Skriptprogrammen
Im Gegensatz zu C, C ++ oder Java gibt es jetzt verschiedene andere Arten von Shells, die für das Shell-Scripting verwendet werden können. Im Folgenden sind die vier Arten von Muscheln aufgeführt, die bis heute erhältlich sind:
Nein. | Shell-Typ | Beschreibung |
1. | Bash aka Bourne Again Shell | Dies ist die gebräuchlichste Shell, die auf allen Linux- und Debian-basierten Systemen verfügbar ist. Es ist Open Source und Freeware. |
2. | CSH oder C Shell | Dieses Shell-Skriptprogramm verwendet die Shell-Syntax der C-Programmierung und ähnelt fast C. |
3. | KSH oder Korn Shell | Korn ist ein Unix-basiertes Shell-Skriptprogramm, das ursprünglich auf dem Bash-Shell-Skript basiert. Diese Shell ist ziemlich fortgeschritten und eine Programmiersprache auf hohem Niveau. |
4. | TCSH | Es gibt keine spezifische Vollform von TCSH. Es ist so wie es ist. TCSH ist eine erweiterte Version der Berkeley Unix C-Shell. Es unterstützt wieder die C-Syntax |
Was den heutigen Tag betrifft, interessieren uns hier nicht alle oben genannten Muscheln. Wir interessieren uns nur für die Bash-Shell, da sie heute die weltweit am häufigsten verwendete Shell ist.
Die Bash Shell
Das Skriptprogramm Bash Shell ist eine Hochsprache, die der von Python ähnelt. Wenn Sie jedoch bereits Erfahrung mit Python haben, werden Sie feststellen, dass Bash Shell Scripting weitaus einfacher ist als jede andere Skriptsprache. Man kann Skripte in Bash viel schneller schreiben als in C, C ++, Java oder Python. Das Standardterminal in der heutigen Linux-Umgebung, zum Beispiel: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux oder jede andere Debian-Umgebung besteht aus Bash als Standard-Shell. Sie können jedoch alle in Ihrem System vorhandenen Shell-Umgebungen überprüfen, indem Sie im Standard-Terminal Folgendes eingeben:
$ cat / etc / shells |
(Hinweis: Das Dollarzeichen am Anfang wird zum Identifizieren eines Terminals verwendet.)
Die 'cat'-Syntax zum Lesen von Textdateien. Die Arten von Shell-Skriptprogrammen in einer Linux-, Unix- oder Debian-Umgebung werden in der Shell- Datei im Verzeichnis etc gespeichert. Jede Shell hat einen eigenen Satz von Syntaxen und einen eigenen Satz von eingebauten Funktionen. Die DOS- oder Windows-Version hat auch eine eigene Shell, die ab Windows 8.1 als "Eingabeaufforderung" oder "Powershell" bezeichnet wird. Sie ist jedoch immer noch nicht so leistungsfähig wie die Bash. Die cat-Syntax gibt Ihnen die Liste der auf dem System verfügbaren Shells an. Um jedoch die Standard-Shell zu finden oder die aktuelle using-Shell zu überprüfen, kann im Shell Scripting Terminal die folgende Syntax verwendet werden:
$ echo $ SHELL |
Die 'Echo'-Syntax wird zum Drucken beliebiger Anweisungen verwendet. Hier ist die 'SHELL' eine Variable, die zum Drucken der aktuellen Shell verwendet wird. Das Dollarzeichen nach 'echo' wird verwendet, um eine Variable in Shell Scripting darzustellen.
Empfohlene Kurse
- Zertifizierungskurs in Java Hibernate
- Java-Frühlingskurs
- WordPress Online-Training
- Ruby-Training
Shell Scripting
Nachdem Sie nun wissen, was eine Shell ist, werfen wir einen Blick auf Shell Scripting und warum dies so ist. Shell Scripting ist nichts anderes als eine Reihe von Befehlen in einer einfachen Textdatei, die mit der Erweiterung '.sh' endet. Die .sh-Datei legt fest, dass es sich um eine ausführbare Shell-Datei handelt. Nach dem Schreiben eines Shell-Skripts müsste die ausführbare Berechtigung mit der Funktion 'chmod' geändert werden. Standardmäßig kann eine neu erstellte Shell in der UNIX- oder Linux-Umgebung nur ausgeführt werden, wenn die Berechtigungen speziell geändert wurden. Shell Scripting ähnelt fast der Stapelprogrammierung unter Windows, mit dem Unterschied, dass Shell Scripting leistungsfähiger ist und eine wesentlich hochwertigere interaktive Umgebung mit Tabulatorvervollständigungen bietet. Man muss einen guten Texteditor benutzen, um ein Shell-Skript zu schreiben. Wenige bessere, die ich kenne, sind Vim, Gedit und Leafpad.
Im Gegensatz zu anderen Programmiersprachen können Shell-Skripten schneller geschrieben und ausgeführt werden. Sie müssen keine spezifischen Bundles oder Abhängigkeiten herunterladen, um sie auszuführen. Sie können nicht nur von einem Systemadministrator, sondern auch von einer normalen Person zur täglichen Ausführung automatisierter Skripts verwendet werden. Das Folgende ist ein einfaches Beispiel eines hier geschriebenen Skripts.
#! / bin / bash echo -e "Willkommen beim ersten Shell-Programm. \ n" echo -e "Schreiben Sie hier etwas, und dieses Programm druckt dasselbe zurück. \ n" eingegeben: $ input ” exit 0 |
Lassen Sie mich nun alle Parameter im obigen Code erklären. Schreiben Sie zunächst den obigen Code in eine Textdatei im Ist-Format und speichern Sie sie mit einer Erweiterung, die auf ".sh" endet. Nennen Sie die Datei beispielsweise "main_program.sh". Stellen Sie sicher, dass es sich nicht um 'main_program.sh.txt' handelt. Die meisten Anfänger tendieren dazu, dasselbe zu tun, und dann ist es nicht ausführbar. Nachdem der obige Code kopiert wurde, ändern Sie seine Berechtigungen mithilfe der folgenden Syntax im Terminal:
$ chmod + x main_program.sh ODER $ chmod 755 main_program.sh |
Fühlen Sie sich frei, einen der obigen Befehle zu verwenden, da beide dasselbe tun. In den modernen Bash-Shell-Skriptprogrammen wird '755' in '+ x' geändert. Es spielt also keine Rolle, welche Sie tatsächlich verwenden. Nachdem Sie die Berechtigungen geändert haben, geben Sie Folgendes ein, um sie auszuführen.
$. / main_program.sh |
Der Punkt und der Schrägstrich werden verwendet, um die Shell-Skripte zu identifizieren und auszuführen. Sobald Sie das obige Skript ausführen, wird die erste Echo-Anweisung gedruckt, und Sie werden aufgefordert, etwas einzugeben. Sobald Sie es eingegeben haben, wird dasselbe für Sie ausgedruckt und der Interpreter beendet. Lassen Sie mich also alle obigen Syntaxen erklären. Das '#! / Bin / bash' wird verwendet, um dem Interpreter mitzuteilen, dass es sich um ein Bash-Skript handelt und sich das Bash-Shell-Skriptprogramm im 'bin'-Verzeichnis befindet. Der Befehl 'echo' wird verwendet, um eine beliebige Anweisung zu drucken, und das Flag '-e' wird verwendet, um die Shell darauf hinzuweisen, dass entweder eine neue Zeile als 'Schrägstrich n oder \ n' oder ein Tabulator 'Schrägstrich t oder \ t 'oder dergleichen in der Echo-Anweisung. Der Hash-Teil in der zweiten Zeile wird verwendet, um einen Kommentar in einem Bash-Skript zu kennzeichnen. Was immer Sie nach dem Hash schreiben, wird auskommentiert und nicht ausgeführt. Dies gilt jedoch nicht für '#! / Bin / bash' in der ersten Zeile. So soll das Skript funktionieren. Die 'read'-Syntax wird verwendet, um Eingaben vom Benutzer zu lesen. Und die 'Eingabe', die ich nach der 'Lese'-Syntax erwähnt habe, ist die Variable, in der die Eingabe vom Benutzer gespeichert wird. Anstelle der Eingabe kann eine beliebige Variable verwendet werden. In der vorletzten Zeile wird die $ -Eingabe verwendet, um sich als Variable zu identifizieren und die darin gespeicherte Eingabe auszugeben. Schließlich wird der Befehl exit verwendet, um den Interpreter mit einer sauberen Exit-Null zu beenden.
Nicht interaktives Scripting
Das obige Beispiel ist jetzt ganz einfach. Es gibt jedoch integrierte Module, die Sie verwenden können, anstatt alle Eingaben selbst vorzunehmen. Es folgt ein Code, der den aktuell angemeldeten Benutzernamen, die aktuelle Uhrzeit, das Kalenderdatum und die Anzahl der Anmeldungen ausgibt:
#! / bin / bash # Dieses Skript gibt die aktuell angemeldeten Benutzerinformationen, die Anzahl der angemeldeten Benutzer, das Datum, die Uhrzeit und den Kalender aus echo "Hallo, $ USER" echo "Das heutige Datum und die aktuelle Uhrzeit sind" Datum " echo" Anzahl der angemeldeten Benutzer: "who | wc -l` "
Echo "Kalender" cal Ausfahrt 0 |
Führen Sie dieses Skript aus, nachdem Sie die Berechtigungen der obigen Datei geändert haben. Nun wundern Sie sich vielleicht, dass wir im vorherigen Skript die Eingabe tatsächlich eingegeben haben und sie dann mithilfe der Variablen zurückgegeben hat. Aber hier haben wir keine Eingabe innerhalb der '$ USER'-Variablen gemacht, und wie kommt es, dass sie den genauen Benutzer ausgibt. Der Hauptgrund dafür ist, dass diese Dinge bereits im System konfiguriert sind. Erinnern Sie sich, dass ich Ihnen bereits zu Beginn von $ SHELL erzählt habe, wie es standardmäßig definiert ist? Ja, ähnlich ist es hier mit dem $ USER. Wenn Sie das Datum ohne Anführungszeichen in das Terminal eingeben, werden das genaue Datum und die Uhrzeit ausgedruckt. Ich habe nur ein einfaches Anführungszeichen (`) verwendet, um sich als Syntax zu identifizieren, anstatt als Teil der Echo-Anweisung. Das einfache Anführungszeichen (`) führt jede darin gedruckte Syntax aus, sei es in einer Anweisung oder irgendwo anders. In Bezug auf die Anzahl der Benutzer wird der Befehl 'who' verwendet, um die aktuell angemeldeten Benutzer zusammen mit den angemeldeten Prozessen sowie Datum und Uhrzeit des Starts zu überprüfen. Was den obigen Befehl betrifft, habe ich ihn tatsächlich abgeschnitten, um nur die Anzahl der Benutzer auszugeben, die ihn mit dem Befehl 'wc -l' protokolliert haben. Der Strich (|) oder das, was im Volksmund als Pipe bezeichnet wird, wird verwendet, um zwei Befehle zu kombinieren. Die Pfeife steht eigentlich für viel mehr als das, aber ich werde hier nicht näher darauf eingehen. Und schließlich habe ich den Kalender mit dem eingebauten Befehl 'cal' gedruckt, um das aktuelle Datum im Kalender auszudrucken.
Die Ausfahrt Null
Der Exit Zero ist etwas, was ich in keinem der oben beschriebenen Programme erklärt habe. Der Hauptgrund für die Tatsache, dass "Exit Zero" verwendet wird, ist weitaus schwerwiegender als alle oben in Shell Scripting beschriebenen Syntaxen. Wenn Sie ein Skript in einer Linux- oder Unix-Distribution ausführen, gibt es standardmäßig zwei Arten von Werten zurück, genauer gesagt den Exit-Status, um zu überprüfen, ob die Ausführung des Shell-Skripts erfolgreich war oder nicht. Wenn der Wert als Null zurückgegeben wird, war die Ausführung erfolgreich. Andernfalls wurde die Ausführung nicht ausgeführt, oder es ist ein Fehler während der Ausführung aufgetreten. Wenn Sie also am Ende eines Skripts "exit 0" eingeben, wird der Ausführungsstatus des Skripts überprüft.
Alle Dinge, die ich hier behandelt habe, sind nur der am wenigsten grundlegende Teil des Shell-Skripts in der Linux-Distribution. Der Exit-Zero-Teil und die Pipe spielen eine wichtige Rolle, wenn mehrere Shell-Skripte in Linux-Befehlen ausgeführt und zusammen mit den bedingten if- und else-Anweisungen verwendet werden.
In Verbindung stehende Artikel:-
In den folgenden Artikeln erfahren Sie mehr über die Shell-Skripttypen für Linux-Neulinge. Gehen Sie einfach über den Link.
- Im Vorstellungsgespräch bei Shell Scripting | Top 10 nützliche Fragen
- Linux vs Windows - Finden Sie die 9 größten Unterschiede heraus
- Linux Interview Fragen und Antworten | Nützlich und am meisten gefragt
- Karriere in der Linux Administration
- Regeln und Vorschriften für Shell-Skriptparameter