Wenn wir ein wichtiges Betriebssystem verwenden, interagieren wir indirekt mit dem Hülse . Während wir Ubuntu, Linux Mint oder eine andere Linux-Distribution ausführen, interagieren wir mit der Shell über das Terminal. In diesem Artikel besprechen wir Linux-Shells und Shell-Scripting. Bevor wir also Shell-Scripting verstehen, müssen wir uns mit den folgenden Terminologien vertraut machen:
- Kernel
- Hülse
- Terminal
Inhaltsverzeichnis
- Was ist Kernel?
- Was ist Shell?
- Befehlszeilen-Shell
- Grafische Muscheln
- Was ist ein Terminal?
- Shell-Scripting
Was ist Kernel?
Der Kernel ist ein Computerprogramm, das den Kern des Betriebssystems eines Computers bildet und die vollständige Kontrolle über alles im System hat. Es verwaltet die folgenden Ressourcen des Linux-Systems –
- Dokumentenverwaltung
- Prozessmanagement
- I/O-Management
- Speicherverwaltung
- Geräteverwaltung usw.
Es wird oft fälschlicherweise angenommen, dass Linus Torvalds das Linux-Betriebssystem entwickelt hat, tatsächlich ist er jedoch nur für die Entwicklung des Linux-Kernels verantwortlich.
Komplettes Linux-System = Kernel + GNU Systemdienstprogramme und Bibliotheken + andere Verwaltungsskripte + Installationsskripte.
Was ist Shell?
Eine Shell ist ein spezielles Benutzerprogramm, das dem Benutzer eine Schnittstelle zur Nutzung von Betriebssystemdiensten bereitstellt. Shell akzeptiert für Menschen lesbare Befehle von Benutzern und wandelt sie in etwas um, das der Kernel verstehen kann. Dabei handelt es sich um einen Befehlsspracheninterpreter, der Befehle ausführt, die von Eingabegeräten wie Tastaturen oder aus Dateien gelesen werden. Die Shell wird gestartet, wenn sich der Benutzer anmeldet oder das Terminal startet.
Chiranjeevi-Schauspieler

Linux-Shell
Shell wird grob in zwei Kategorien eingeteilt:
- Befehlszeilen-Shell
- Grafische Hülle
Befehlszeilen-Shell
Auf die Shell können Benutzer über eine Befehlszeilenschnittstelle zugreifen. Ein spezielles Programm namens Terminal unter Linux/macOS oder Eingabeaufforderung unter Windows wird bereitgestellt, um für Menschen lesbare Befehle wie cat, ls usw. einzugeben und dann auszuführen. Das Ergebnis wird dem Nutzer dann am Terminal angezeigt. Ein Terminal im Ubuntu 16.4-System sieht so aus:

Linux-Befehlszeile
Im obigen Screenshot ls Befehl mit -l Option wird ausgeführt. Es werden alle Dateien im aktuellen Arbeitsverzeichnis in einem langen Listenformat aufgelistet.
Die Arbeit mit einer Befehlszeilen-Shell ist für Anfänger etwas schwierig, da es schwierig ist, sich so viele Befehle zu merken. Es ist sehr mächtig; Es ermöglicht Benutzern, Befehle in einer Datei zu speichern und gemeinsam auszuführen. Auf diese Weise können sich wiederholende Aufgaben problemlos automatisiert werden. Diese Dateien werden in Windows normalerweise als Batchdateien bezeichnet Hülse Skripte in Linux/macOS-Systemen.
Grafische Muscheln
Grafische Shells bieten Mittel zum Bearbeiten von Programmen auf der Grundlage der grafischen Benutzeroberfläche (GUI), indem sie Vorgänge wie das Öffnen, Schließen, Verschieben und Ändern der Größe von Fenstern sowie das Wechseln des Fokus zwischen Fenstern ermöglichen. Als gutes Beispiel können Windows-Betriebssysteme oder Ubuntu-Betriebssysteme angesehen werden, die dem Benutzer eine grafische Benutzeroberfläche für die Interaktion mit dem Programm bieten. Benutzer müssen nicht für jede Aktion Befehle eingeben. Eine typische GUI im Ubuntu-System –

GUI-Shell
Periodenschlüssel
Für Linux-Systeme stehen mehrere Shells zur Verfügung, z.
- BASH (Bourne Again SHell) – Es ist die am häufigsten verwendete Shell in Linux-Systemen. Es wird als Standard-Anmeldeshell in Linux-Systemen und in macOS verwendet. Es kann auch auf einem Windows-Betriebssystem installiert werden.
- CSH (C SHell) – Die Syntax und Verwendung der C-Shell sind der Programmiersprache C sehr ähnlich.
- KSH (Korn SHell) – Die Korn Shell war auch die Basis für die POSIX Shell-Standardspezifikationen usw.
Jede Shell erledigt die gleiche Aufgabe, versteht jedoch unterschiedliche Befehle und bietet unterschiedliche integrierte Funktionen.
Verzeichnisnamen unter Linux ändern
Was ist ein Terminal?
Ein Programm, das für die Bereitstellung einer Schnittstelle für einen Benutzer verantwortlich ist, damit dieser auf die Shell zugreifen kann. Grundsätzlich ermöglicht es Benutzern, Befehle einzugeben und die Ausgabe dieser Befehle in einer textbasierten Oberfläche anzuzeigen. Große Skripte, die zur Automatisierung und Ausführung komplexer Aufgaben geschrieben werden, werden im Terminal ausgeführt.
Um auf das Terminal zuzugreifen, suchen Sie einfach im Suchfeld „Terminal“ und doppelklicken Sie darauf.
offenes Terminal
Hier können Sie sehen, wie das Terminal von Red Hat Linux aussieht.
Terminal
Shell-Scripting
Normalerweise sind Shells interaktiv, das heißt, sie akzeptieren Befehle als Eingaben von Benutzern und führen diese aus. Manchmal möchten wir jedoch eine Reihe von Befehlen routinemäßig ausführen, sodass wir jedes Mal alle Befehle im Terminal eingeben müssen.
Da eine Shell auch Befehle als Eingabe aus einer Datei entgegennehmen kann, können wir diese Befehle in eine Datei schreiben und sie in der Shell ausführen, um diese sich wiederholende Arbeit zu vermeiden. Diese Dateien werden aufgerufen Shell-Skripte oder Shell-Programme . Shell-Skripte ähneln der Batch-Datei in MS-DOS. Jedes Shell-Skript wird mit gespeichert `.sh` Dateierweiterung, z. B. myscript.sh.
Ein Shell-Skript hat die gleiche Syntax wie jede andere Programmiersprache. Wenn Sie bereits Erfahrung mit einer Programmiersprache wie Python, C/C++ usw. haben, wäre der Einstieg sehr einfach.
Ein Shell-Skript besteht aus den folgenden Elementen:
- Shell-Schlüsselwörter – if, else, break usw.
- Shell-Befehle – cd, ls, echo, pwd, touch usw.
- Funktionen
- Kontrollfluss – if..then..else, Case- und Shell-Schleifen usw.
Warum brauchen wir Shell-Skripte?
Es gibt viele Gründe, Shell-Skripte zu schreiben:
- Um repetitive Arbeit und Automatisierung zu vermeiden
- Systemadministratoren verwenden Shell-Scripting für routinemäßige Sicherungen.
- Systemüberwachung
- Hinzufügen neuer Funktionen zur Shell usw.
Einige Vorteile von Shell-Skripten
- Der Befehl und die Syntax stimmen genau mit denen überein, die direkt in der Befehlszeile eingegeben werden, sodass Programmierer nicht auf eine völlig andere Syntax umsteigen müssen
- Das Schreiben von Shell-Skripten geht viel schneller
- Schnellstart
- Interaktives Debuggen usw.
Einige Nachteile von Shell-Skripten
- Da es zu kostspieligen Fehlern kommt, kann ein einziger Fehler den Befehl ändern, was schädlich sein kann.
- Langsame Ausführungsgeschwindigkeit
- Designfehler in der Sprachsyntax oder -implementierung
- Für große und komplexe Aufgaben nicht gut geeignet
- Bieten im Gegensatz zu anderen Skriptsprachen eine minimale Datenstruktur. usw.
Einfache Demo des Shell-Scriptings mit Bash Shell
Wenn Sie an einem Terminal arbeiten, durchsuchen Sie etwas tief in Verzeichnissen. Um dann einige Verzeichnisse im Pfad nach oben zu bringen, müssen wir einen Befehl wie diesen wie unten gezeigt ausführen, um zum Python-Verzeichnis zu gelangen:

Gehen Sie zum Python-Verzeichnis:
Es ist ziemlich frustrierend. Warum also nicht ein Dienstprogramm haben, bei dem wir nur den Namen des Verzeichnisses eingeben müssen und direkt dorthin springen können, ohne es auszuführen? CD ../ immer wieder befehlen. Speichern Sie das Skript unter springen.sh
So lesen Sie aus einer CSV-Datei in Javabash
# !/bin/bash # A simple bash script to move up to desired directory level directly function jump() { # original value of Internal Field Separator OLDIFS=$IFS # setting field separator to '/' IFS=/ # converting working path into array of directories in path # eg. /my/path/is/like/this # into [, my, path, is, like, this] path_arr=($PWD) # setting IFS to original value IFS=$OLDIFS local pos=-1 # ${path_arr[@]} gives all the values in path_arr for dir in '${path_arr[@]}' do # find the number of directories to move up to # reach at target directory pos=$[$pos+1] if [ '' = '$dir' ];then # length of the path_arr dir_in_path=${#path_arr[@]} #current working directory cwd=$PWD limit=$[$dir_in_path-$pos-1] for ((i=0; i; i++)) do cwd=$cwd/.. done cd $cwd break fi done }> Im Moment können wir unser Shell-Skript nicht ausführen, da es keine Berechtigungen hat. Wir müssen es ausführbar machen, indem wir den folgenden Befehl eingeben:
$ chmod +x Pfad/zu/unserer/Datei/jump.sh
Um dies nun in jeder Terminalsitzung verfügbar zu machen, müssen wir dies einfügen .bashrc Datei.
.bashrc ist ein Shell-Skript, das die Bash-Shell bei jedem interaktiven Start ausführt. Der Zweck einer .bashrc-Datei besteht darin, einen Ort bereitzustellen, an dem Sie Variablen, Funktionen und Aliase einrichten, unsere Eingabeaufforderung definieren und andere Einstellungen definieren können, die wir verwenden möchten, wenn wir ein neues Terminalfenster öffnen.
Öffnen Sie nun das Terminal und geben Sie den folgenden Befehl ein:
for-Schleife in c
$ echo source ~/path/to/our/file/jump.sh>> ~/.bashrc
Öffnen Sie nun Ihr Terminal und probieren Sie die neue Sprungfunktion aus, indem Sie den folgenden Befehl eingeben:
$ springe dir_name
Genau wie der folgende Screenshot:

springe dir_name
Abschluss
In diesem Artikel haben wir die wesentlichen Teile von Linux-Systemen kennengelernt: den Kernel, der alles steuert, die Shell, die uns die Interaktion mit dem Betriebssystem ermöglicht, und das Terminal, unsere Schnittstelle zum Erteilen von Befehlen. Wir haben Befehlszeilen- und grafische Shells wie BASH untersucht und festgestellt, dass wir unsere Befehle im Terminal eingeben. Der Artikel stellte Shell-Scripting vor, eine Möglichkeit, Aufgaben mithilfe einfacher Skripts zu automatisieren, und erörterte die Vor- und Nachteile ihrer Verwendung. Ein praktisches Beispiel demonstrierte die Erstellung eines Skripts zur schnellen Verzeichnisnavigation. Schließlich haben wir gesehen, wie wir dafür sorgen, dass das Skript funktioniert und in jeder Terminalsitzung zugänglich ist. Dieser Artikel ist eine anfängerfreundliche Anleitung zum Verständnis und zur Verwendung von Linux-Shells und Shell-Scripting. Linux ist eine gute Sprache, es ist in Linux-Sprache geschrieben