Was ist Shell Scripting und warum sollten Sie es verwenden?

Was ist Shell Scripting und warum sollten Sie es verwenden? / Programmierung

Die Shell ist ein Programm innerhalb eines Linux- oder Unix-Betriebssystems, mit dem Sie Befehle zur Ausführung durch das System eingeben können. Wenn ein Terminalfenster auf einem Linux-Computer geöffnet wird, wird das Shell-Programm gestartet, das eine Schnittstelle zum Eingeben von Befehlen bietet. Diese Schnittstelle wird als Befehlszeilenschnittstelle bezeichnet. Wenn ein Befehl eingegeben wird, wird er von der Shell ausgeführt und die Ausgabe wird auf dem Bildschirm angezeigt.

Neben der Möglichkeit, Befehle interaktiv anzunehmen und auszuführen, kann die Shell auch Befehle ausführen, die in einer Datei gespeichert sind. Diese Art der Ausführung ist bekannt als Shell-Scripting, In diesem Artikel werden die Grundlagen des Shell-Skripts behandelt. 5 Gründe für die Verwendung von PowerShell anstelle von Batch-Skripting 5 Gründe für die Verwendung von PowerShell anstelle von Batch-Skripting PowerShell erhalten Sie, wenn Sie die Eingabeaufforderung mit Batch-Skripting überschreiten einige zusätzliche Funktionen, und es trat mehrere Kerben. Hier sind einige Gründe, warum Sie es versuchen sollten. Weiterlesen .

1. Geschichte der Shell

In den 70er Jahren begann mit Unix ein Shell-Programm namens V6-Shell entwickelt von Ken Thomson. Es war eine interaktive Shell und es fehlte an Scripting-Fähigkeiten.

Es folgte die Bourne Shell 1977 und wird bis heute als Standard-Shell für die verwendet Wurzel Konto. Diese Shell fügte Skriptfähigkeiten hinzu, die sich in der Praxis im Laufe der Jahre als äußerst nützlich erwiesen haben.

Die Weiterentwicklung der Schale in den 1980er Jahren führte zu vielen beliebten Schalenvarianten, von denen die bekanntesten waren C-Shell und das Korn Shell. Jede dieser Schalen brachte ihre eigene Syntax mit, die sich in bestimmten Fällen drastisch von der ursprünglichen Schale unterschied.

Eine der beliebtesten Muscheln ist heute die Bash Shell. Bash steht für Bourne-Again-Shell und ist eine erheblich verbesserte Variante der ursprünglichen Bourne-Shell.

In diesem Artikel wird das Shell-Scripting für die Bash-Shell beschrieben. Eine kurze Anleitung zur Linux-Bash-Shell in Windows 10 Eine kurze Anleitung zur Linux-Bash-Shell in Windows 10 Sie können Linux jetzt unter Windows ausführen. Erfahren Sie mehr über Bash unter Windows, wie und warum Sie es installieren sollten, sowie versteckte Funktionen, von denen Sie wahrscheinlich nichts wussten. Weiterlesen .

2. Ein Shell-Skript ausführen

Wie führe ich ein Shellskript aus? Einfach. Übergeben Sie einfach den Skriptpfad als Argument an die Shell:

Ein Beispiel für ein Shell-Skript:

Echo "Hallo Welt" 

Führen Sie es wie folgt aus:

$ bash hello.sh # druckt Hallo Welt 

Hinweis: Die Shell erfordert, dass Zeilen mit LF-Zeichen (Line-Feed) abgeschlossen werden. Wenn Sie Ihr Shellskript unter Windows schreiben und versuchen, es direkt auf einem Linux-System auszuführen, können Fehler auftreten. Windows verwendet die CR-LF-Kombination (Carriage-Return-Line-Feed) für die Leitungsbeendigung. Dies muss nur in LF konvertiert werden. Suchen Sie in Ihrem Windows-Editor nach Möglichkeiten, dies zu tun.

Es gibt eine andere Möglichkeit, ein Shell-Skript direkt als Befehl auszuführen. Fügen Sie die folgende Zeile ein (die Haschbang Deklaration) als erste Zeile Ihres Shellskripts.

#! / bin / bash 

Mit dieser Änderung ist unser einfaches Shellskript jetzt:

#! / bin / bash Echo "Hallo Welt" 

Nun müssen Sie die Skriptdatei folgendermaßen ausführbar machen:

$ chmod + x hallo.sh 

An dieser Stelle können Sie die Skriptdatei direkt ausführen, ohne explizit auf die Shell verweisen zu müssen.

$ hello.sh # druckt Hallo Welt 

Lassen Sie uns nun einige Vorteile der Verwendung von Shell-Skripten betrachten. Was sind CGI-Skripts und wie verbessern sie Websites? Was sind CGI-Skripts und wie verbessern sie Websites? CGI steht für Common Gateway Interface. Es ist ein Standardprotokoll für Webserver, um Programme auszuführen und Ausgaben für Webbrowser zu generieren. Erfahren Sie alles über CGI-Skripts und wie Sie Ihre Website verbessern können. Weiterlesen .

3. Aufgabenautomatisierung

Der erste Vorteil der Verwendung von Shell-Skripts ist die Automatisierung häufig ausgeführter Aufgaben. 7 Tägliche Aufgaben, von denen Sie nicht wussten, dass sie in wenigen Minuten automatisieren könnten. 7 Tägliche Aufgaben, von denen Sie nicht wussten, dass Sie in wenigen Minuten automatisieren könnten. Es gibt viele Dinge, die Sie jetzt automatisieren können Dadurch sparen Sie Zeit und können sich auf andere Dinge konzentrieren. Wir geben Ihnen sieben Dinge, die Sie jetzt mit den richtigen Tools automatisieren können. Weiterlesen . Angenommen, Sie haben eine Aufgabe, die Sie täglich ausführen müssen. Wenn Sie täglich mehrere Befehle auf Ihrem Linux-System ausführen müssen, können Sie diese Befehle in einer Datei speichern und das Skript ausführen. Beispiele beinhalten:

  • Archivieren und laden Sie täglich eine Datei oder einen Ordner in eine Cloud-Speicheranlage. Dropbox vs. Google Drive vs. OneDrive: Welcher Cloud-Speicher eignet sich am besten für Sie? Dropbox vs. Google Drive vs. OneDrive: Welcher Cloud-Speicher eignet sich am besten für Sie? Haben Sie die Art und Weise geändert, wie Sie über Cloud-Speicher denken? Zu den beliebten Optionen von Dropbox, Google Drive und OneDrive kamen weitere hinzu. Wir helfen Ihnen zu beantworten, welchen Cloud-Speicher-Service Sie verwenden sollten. Lesen Sie mehr wie S3.
  • Komprimieren Sie Protokolldateien, die tendenziell täglich wachsen.
  • Aktienkurse abrufen, die abgerufenen Daten analysieren und eine E-Mail oder SMS auslösen, wenn bestimmte Bedingungen erfüllt sind (zu hohe oder zu niedrige Preise).

4. Mehrere Befehle kombinieren

Neben der Automatisierung häufiger Aufgaben kann es auch von Vorteil sein, dass Sie mehrere Befehlsfolgen in einem einzigen Befehl kombinieren können. Das Erinnern an einen einzelnen Befehl ist viel einfacher als mehrere Befehle, ganz zu schweigen von der Reihenfolge, in der sie ausgeführt werden müssen.

Ein Beispiel wäre die Startsequenz des Linux-Betriebssystems. Erste Schritte für Linux Erste Schritte für Linux Ein Neulinge: Erste Schritte für Linux! Sie haben wahrscheinlich von Linux gehört, dem kostenlosen Open-Source-Betriebssystem, das sich gegen Microsoft durchgesetzt hat. Lesen Sie mehr selbst. Beim Booten führt das Betriebssystem eine Reihe von Befehlen aus, um das System in einen ordnungsgemäßen Zustand zu bringen. Diese Befehle sind eigentlich Shellskripte, die unter der /usw Verzeichnis. Wenn Sie sich eines dieser Shell-Skripte anschauen, werden Sie die Komplexität des Bootens eines Systems erkennen, das Sie in Abwesenheit von Shell-Skripten möglicherweise manuell ausführen mussten.

Das folgende Beispiel zeigt ein Shell-Skript, / etc / profile, Dies wird jedes Mal ausgeführt, wenn sich ein Benutzer anmeldet. Stellen Sie sich vor, Sie geben diese Befehle von Hand ein!

# / etc / profile: systemweite .profile-Datei für die Bourne-Shell (sh (1)) # und Bourne-kompatible Shells (bash (1), ksh (1), ash (1), ...). if ["$ PS1"]; dann wenn ["$ BASH"] && ["$ BASH"! = "/ bin / sh"]; then # Die Datei bash.bashrc legt bereits die Standard-PS1 fest. # PS1 = "\ h: \ w \ $" wenn [-f /etc/bash.bashrc]; dann . /etc/bash.bashrc fi else if ["'id -u'" -eq 0]; dann PS1 = "#" else PS1 = "$" fi fi fi # Die standardmäßige umask wird jetzt von pam_umask behandelt. # Siehe pam_umask (8) und /etc/login.defs. if [-d /etc/profile.d]; dann für i in /etc/profile.d/*.sh; tun, wenn [-r $ i]; dann . $ i fi getan unsetze ich fi 

5. Einfacher zu entwickeln

Es ist möglich, dieselben Aktionen wie ein Shellskript in einem regulären Programm auszuführen, das in C / C ++ geschrieben ist. Es ist jedoch viel einfacher, ein Shellskript zu schreiben und zu debuggen als ein C / C ++ - Programm. Insbesondere für Systemadministrationsaufgaben, die die Ausführung externer Befehle, das Erstellen und Entfernen von Dateien und Verzeichnissen, das Umleiten von Ausgaben usw. umfassen.

C / C ++ - Programme sind für eine wesentlich niedrigere Operationsebene besser geeignet, beispielsweise für das Aufrufen von Systemaufrufen, das Bearbeiten von Datenstrukturen usw.

6. Transparenz

Ein Shell-Skript kann, da es sich um eine Textdatei handelt, leicht angezeigt werden, um herauszufinden, welche Aktionen es ausführt. Im Gegensatz dazu können Sie nur wissen, was ein Programm, das in einer Sprache wie C / C ++ (und zu einer ausführbaren Datei kompiliert) geschrieben wurde, tut, wenn es Ihnen mitteilen will oder ob Sie Zugriff auf den Quellcode haben. Sie können beispielsweise überprüfen, ob ein Shellskript Dateien löscht. Wenn Sie diese Dateien benötigen, können Sie sie an einen anderen Speicherort kopieren.

Es ist auch viel einfacher, Probleme mit Shell-Skripten als mit normalen Programmen zu diagnostizieren, da Sie den Quellcode betrachten können. Schlägt das Skript fehl, weil kein Verzeichnis existiert? Sie können in den Skriptcode schauen und das Verzeichnis erstellen (obwohl ein gut funktionierendes Shell-Skript es prüfen und erstellen sollte, um solche Fehler zu vermeiden).

7. tragbar

Ein Shellskript Eine Kurzanleitung zur Linux Bash Shell in Windows 10 Eine Kurzanleitung zur Linux Bash Shell in Windows 10 Sie können Linux jetzt unter Windows ausführen. Erfahren Sie mehr über Bash unter Windows, wie und warum Sie es installieren sollten, sowie versteckte Funktionen, von denen Sie wahrscheinlich nichts wussten. Read More kann auf andere Unix- und Unix-ähnliche Betriebssysteme übertragen und ausgeführt werden (wenn die Shell selbst vorhanden ist). Selbst wenn Sie ein Shellskript von verschiedenen Architekturen wie x86, MIPS, Sparc usw. übertragen, sind Shellskripte viel portabler als C / C ++ - Programme.

Die einzige Möglichkeit, ein C / C ++ - Programm zu übertragen und auf einem anderen System zu verwenden, besteht darin, den Quellcode zu kopieren, das Programm zu erstellen und zu versuchen, es auszuführen. Selbst dann funktioniert es möglicherweise nicht wie erwartet, wenn es architekturspezifischen Code verwendet.

Nun, da Sie eine Vorstellung davon haben, was Shell-Skripts sind und welche Vorteile sie haben, möchten Sie sie nicht für Ihre Aufgaben verwenden? Mit welchen Problemen sind Sie bei der Verwendung konfrontiert? Bitte teilen Sie uns in den Kommentaren unten mit.

Erfahren Sie mehr über: Linux Bash Shell.