Dieser Artikel vermittelt Ihnen Wissen über die Shell-Programmierung in Linux-Systemen. Bevor wir die Shell-Programmierung erlernen, sollten wir zunächst wissen, was Shell ist und was Shell-Skripte sind.
Shell ist ein Anwendungsprogramm, das auch als Befehlsinterpreter bezeichnet werden kann. Es stellt eine Brücke zwischen dem Benutzer und dem Linux-Kernel dar. Es kann die Operationen des Benutzers auf der grafischen Oberfläche oder die im Terminal eingegebenen Befehle an den Linux-Kernel übertragen Anschließend kann der Linux-Kernel verschiedene Hardware- und andere Ressourcen planen, um Benutzervorgänge abzuschließen.
Was ist der Linux-Kernel? Im Linux-Betriebssystem wird der Teil, der die Computerhardware tatsächlich betreiben kann, um eine bestimmte Benutzerfunktion auszuführen, als Kernel des Linux-Systems bezeichnet. Wenn Benutzer ein Linux-System verwenden, können sie den Kernel nicht direkt bedienen, sondern indirekt über die Shell. Die Shell ist kein Teil des Kernels, sondern eine außerhalb des Linux-Kernels entwickelte Anwendung. Sie übergibt die empfangenen Mausklickoperationen oder Eingabebefehle des Benutzers an den Kernel, und der Kernel plant dann die Hardware, um den angegebenen Vorgang abzuschließen. Auf diese Weise müssen Benutzer den Kernel nicht direkt bedienen, sondern den Kernel indirekt über die Shell bedienen. Der Kernel wird nicht direkt der Außenwelt ausgesetzt, was die Sicherheit des Kernels gewährleistet und den Benutzerbetrieb vereinfacht.程SHELLs Anwendung wird beim Einschalten gestartet. Wenn wir das Linux-System betreiben, bedienen wir den Linux-Kernel ständig direkt oder indirekt über die Shell. Tatsächlich riefen Benutzer, bevor es eine grafische Oberfläche gab, die Shell-Anwendung direkt über das Terminal oder die Konsole auf und bedienten dann das Linux-System durch Eingabe von Befehlen. Die $ und #, die Benutzer auf der Konsole oder dem Terminal sehen, sind eigentlich die Shell-Eingabeaufforderung, die anzeigt, dass der Benutzer das Shell-Programm aufgerufen hat und nur Befehle eingeben muss, um den Linux-Kernel über die Shell zu bedienen. Es ist nur so, dass $ angezeigt wird, wenn sich der Root-Benutzer anmeldet, und #, wenn sich der normale Benutzer anmeldet.Darüber hinaus ist der Prozess der Shell-Übertragung von Benutzeroperationen an den Kernel der Prozess des Aufrufs der vom Kernel bereitgestellten API-Schnittstelle. Beispielsweise führt der Benutzer einen Vorgang zum Öffnen einer Datei über die grafische Benutzeroberfläche oder die Terminalbefehlszeile aus. Nachdem er den Vorgang des Benutzers empfangen hat, ruft die Shell die entsprechende vom Kernel bereitgestellte Funktion auf und der Kernel plant dann die Hardwareressourcen, um den Vorgang abzuschließen Bedienung durch den Benutzer.
2. Gemeinsame Shell
Wir wissen, dass Linux ein Open-Source-Betriebssystem ist, das von mehreren Organisationen oder Einzelpersonen auf der ganzen Welt gemeinsam entwickelt wird. Jede Organisation oder Einzelperson ist für einige Funktionen verantwortlich und schließlich gemeinsam bilden das Linux, das wir jetzt verwenden. Aus diesem Grund entwickeln diese verschiedenen Organisationen oder Einzelpersonen Anwendungen, die in Linux-Systemen verwendet werden können. Die Funktionen dieser Anwendungen können ähnlich sein und jede hat ihre eigenen Vor- und Nachteile. Die Wahl liegt beim Benutzer zu verwenden. Shell ist eine solche Anwendung, daher gibt es viele Versionen von Shell. Derzeit ist die Bash-Shell die von den meisten Linux-Distributionen verwendete Standard-Shell. Andere gängige Shell-Versionen sind wie folgt:csh: Die Syntax dieser Shell ähnelt in gewisser Weise der C-Sprache, daher wird sie C-Shell oder kurz csh genannt.
(3)tcsh: tcsh ist eine erweiterte Version von csh, die eine Befehlsvervollständigungsfunktion hinzufügt und eine leistungsfähigere Syntaxunterstützung bietet.
(5) bash: bash-Shell wird von der GNU-Organisation entwickelt und bleibt mit der sh-Shell kompatibel. Es ist die in verschiedenen Linux-Distributionen konfigurierte Standard-Shell.
Im Linux-System ist die Standard-Shell im Allgemeinen die Bash-Shell. Shell ist eine Anwendung, die normalerweise in einer /bin
或者/user/bin
目录下,而当前 Linux 系统可用的 Shell 都记录在/etc/shells
-Datei abgelegt wird.
(1) Um die aktuell im System verfügbare Shell anzuzeigen, führen Sie den Befehl [cat -n /etc/shells] aus:
(2) Um die aktuell vom System standardmäßig verwendete Shell anzuzeigen, führen Sie den aus Befehl [echo $SHELL]:
(3) Sehen Sie sich die von jedem Benutzer verwendete Shell an und führen Sie den Befehl aus [cat -n /etc/passwd]:
Wir wissen bereits, dass Shell eine Anwendung ist, und diese Anwendung kann nicht nur Benutzerbetriebsbefehle an den Linux-Kernel übergeben, sondern unterstützt auch die Programmierung. Shell entspricht einer Reihe von Programmiersprachensyntaxen, und diese Sprachen werden als Shell-Programmiersprache oder Shell-Skriptsprache bezeichnet. Die Programmiersprache Shell ist eine Skriptsprache wie die JavaScript-Sprache. Sie erfordert keine Kompilierung und ihr Interpreter ist die Shell-Anwendung selbst. „Die Shell“, die wir in unserer Arbeit normalerweise nennen, bezieht sich in den meisten Fällen auf die Shell-Skriptsprache und nicht auf die Shell-Anwendung.
2. Was ist ein Shell-Skript?
(2) und geben Sie dann Folgendes ein:
#!/bin/bash echo "Hello World "
erste Zeile:#! Es ist ein Versprechen, das kann man erkennen Das System Welche Shell-Version sollte dieses Skript als Interpreter verwenden? Das unmittelbar darauf folgende /bin/bash ist der Pfad der Shell, also bedeutet [#!/bin/bash], dass die Bash-Shell im bin-Verzeichnis als verwendet wird Interpreter dieses Skripts. ;
Die zweite Zeile: [echo „Hello World“] bedeutet den Ausgabetext Hello World! ;
(3) Dann speichern und beenden: [!wq];
(4) Auf diese Weise kann man „Hello World!“ ausgeben. Das Skript ist fertig.
Zusätzliche Erklärung:Wir haben oben bereits gesagt, dass das Shell-Programm der Interpreter der Shell-Skriptsprache ist und wenn wir das Terminal verwenden (z. B. eine Verbindung zum Terminal des Linux-Servers über Xshell herstellen), Wir haben tatsächlich die Shell eingegeben. Für dieses Programm können wir den Code in der Programmiersprache Shell tatsächlich direkt in das Terminal eingeben, um es auszuführen, ohne ihn vor der Ausführung in ein Skript schreiben zu müssen. Deklarieren Sie beispielsweise eine Variable und geben Sie den Wert dieser Variablen aus:
(1) Geben Sie den Code ein: [name=Zhang San], was bedeutet, dass ein Variablenname definiert ist und sein Wert Zhang San ist; (2 ) Geben Sie den Code ein: [ echo $name] bedeutet, dass der Wert des Variablennamens gedruckt wird.
Diese Methode eignet sich natürlich nur zum Ausführen einfacher Logik mit nur einem oder zwei Codesätzen. In den meisten Fällen schreiben wir den Shell-Programmiercode immer noch in ein .sh-Skript und führen ihn dann aus.Oben haben wir ein Skript geschrieben, das „Hello World!“ ausgeben kann. Das Shell-Skript wird ausgeführt und jetzt müssen wir das Hello.sh-Skript ausführen. Es gibt zwei Möglichkeiten, das Shell-Skript auszuführen:
Die erste: Erteilen Sie dem .sh-Text die ausführbare Berechtigung und führen Sie dann den Text aus:
(1) Erteilen Sie zuerst dem Shell-Skript die ausführbare Berechtigung: [chmod +x
Hello.sh
];
Übergeben Sie es einfach als Parameter an Shell: [/bin/bash Hello.sh] oder [bash Hello.sh]
(2) Es sollte hier beachtet werden, dass bei Verwendung dieser Methode zum Ausführen die Shell-Skript, im ersten Es ist nicht erforderlich, in einer Zeile zu deklarieren, welche Shell-Version als Interpreter verwendet werden soll, d. h. diese Codezeile ist nicht erforderlich [#!/bin/bash], da im Befehl Wir führen das Skript [/bin/bash Hello.sh] aus. Es gibt bereits an, welche Shell-Version als Interpreter verwendet werden soll.Unterschiede in den Ausführungsmethoden.
Verwandte Empfehlungen: „
Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonBeherrschen Sie die Shell-Programmierung in Linux-Systemen vollständig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!