[LINUX] Versuchen Sie, mit einer Shell zu programmieren!

Hallo zusammen!

Hast du jemals von einer Muschel gehört?

Wenn Sie auf die Website von [hier] verweisen (http://www.cc.kyoto-su.ac.jp/~hirai/text/shell.html),

Die Shell ist ein Zyklus, in dem der Benutzer bei Verwendung von Terminalsoftware (kterm usw.) unter UNIX / Linux den an der Eingabeaufforderung auszuführenden Befehl eingibt, das dort angezeigte Ergebnis sieht und dann den nächsten Befehl eingibt. Interaktiv arbeiten mit. In der Realität führt der Benutzer verschiedene Verarbeitungen mit den Funktionen durch, die vom Kern von UNIX / Linux (Kernel) verwaltet werden, aber der Kernel selbst kann nicht direkt mit dem Benutzer interagieren. Daher gibt es ein Zwischenprogramm zwischen dem Benutzer und dem Kernel, das die Fähigkeit hat, mit dem Benutzer zu interagieren und den Kernel nach Operationen zu fragen, und der Benutzer führt die Operationen aus. Dieses Zwischenprogramm wird als Shell bezeichnet, da es für den Benutzer wie eine "Shell" aussieht, die den Kernel umgibt (siehe Abbildung 1). Einfach ausgedrückt, die Shell kann vom Benutzer eingegebene Befehle interpretieren, den Kernel auffordern, sie zu verarbeiten, und die Ergebnisse und Meldungen auf dem Bildschirm anzeigen.

Korrekt!

Mit anderen Worten, wenn wir dem Kernel vom Terminal aus Anweisungen geben, scheint es ein Interpreter zu sein, der in den Kernel einbricht und ihn übersetzt, damit der Kernel verstanden werden kann!

Nachdem Sie die Shell schnell verstanden haben, können Sie mit der Shell-Programmierung über das Terminal beginnen!

Es scheint, dass es verschiedene Arten von Shells gibt, aber da Bash die Standardumgebung für Shells unter Linux und Mac OS ist, werden wir Bash verwenden!

Programmieren mit der Shell

Ein Shell-Skript ist eine Sammlung von Befehlen, die von der Shell in einer einzelnen Datei ausgeführt werden.

Über den zu verwendenden Befehl

Bitte denken Sie über die Funktion nach, die Sie verwenden möchten, und probieren Sie sie aus!

Die Erweiterung des Shell-Skripts lautet ".sh".

Beispiel-Shell-Skript (ein Skript, das den Datumsbefehl nach Ausführung des Befehls ls ausführt, eine Zeichenfolge mit dem Befehl echo ausgibt, das Eingabeergebnis mit dem Befehl read empfängt, es in eine Variable einfügt und ausgibt)

#!/bin/bash
ls
date
Bitte geben Sie eine Echo-Nachricht ein.
read message
echo Eingangsnachricht: $message

--Dateiberechtigungen Für alle Linux-Dateien

・ Benutzer, dem die Datei gehört ·Gruppenmitgliedschaft ・ Andere Benutzer Für eine Gruppe von drei Konten

・ Lesbar · Schreibbar ・ Ausführbar

Verwaltet drei Berechtigungen

chmod a + x my-first.sh ändert die Dateiberechtigungen, sodass my-first.sh von allen Benutzern ausgeführt werden kann

Ausführungsergebnis

$ ./my-first.sh

my-first.sh
Donnerstag, 29. März 2018 08:13:52 UTC
Bitte geben Sie eine Nachricht ein.
Nachricht eingegeben: hoge

Zeigen Sie den Eingabeinhalt an, indem Sie die Variable des ersten Arguments durch die Eingabezeichenfolge durch den Befehl read ersetzen und die Variable mit dem Befehl echo mit $ angeben.

#!/bin/bash
read -p "Ist Yarigatake der zweithöchste Berg Japans?[y/n]" yn
if [ $yn = "n" ]; then
echo Richtige Antwort. Der zweithöchste Berg Japans ist Kitadake.
else
echo Falsche Antwort. Der zweithöchste Berg Japans ist Kitadake.
fi

Der Lesebefehl kann während der Anzeige von Zeichen Eingaben in eine Variable empfangen, indem die Option -p "Zeichenfolge, die Sie anzeigen möchten" hinzugefügt wird.

Wenn die Anweisung "if [$ yn =" n "]; then" lautet, geben Sie die Bedingung in [] mit einem Leerzeichen ein und fügen Sie am Ende einen Doppelpunkt und "then" hinzu. Außerdem muss am Ende der if-Anweisung "fi" geschrieben werden.

--Während Klausel im Shell-Skript

Schleife von "while:; do" bis "done", bis die Endnachricht empfangen wird

Beispiel: while:; do (echo" Danke für Ihren Zugriff! ") | Nc -l 8000; done

→ Starten Sie als Server über den Port 8000, und geben Sie bei Zugriff den Inhalt der Standardausgabe zurück und beenden Sie das Programm

Übergabe der Standardausgabe des Befehls echo an den Befehl nc mit | (Pipe)

Befehl nc: Abkürzung für NetCat. Es ist ein Befehl zum Lesen und Schreiben von TCP und UDP und verfügt über verschiedene Funktionen wie das Abrufen von Informationen von einem Webserver, das Installieren eines einfachen Webservers und das Senden von E-Mails.

Port: Eine der TCP- und UDP-Kommunikationsanordnungen. Kommunizieren Sie, indem Sie eine der Zahlen 0 bis 65535 einstellen. Um zu kommunizieren, müssen Sie immer einen Port verwenden, und es gibt viele Fälle, in denen dieser Port vom Protokoll oder der Software bestimmt wird.

Recommended Posts

Versuchen Sie, mit einer Shell zu programmieren!
Versuchen Sie, ein FizzBuzz-Problem mit einem Shell-Programm zu erstellen
Versuchen Sie die GUI-Programmierung mit Hy
Versuchen wir es mit einem Shell-Skript
Programmierung für Menschen mit einem genau definierten __repr__
Versuchen Sie, mit matplotlib eine Normalverteilung zu zeichnen
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
Versuchen Sie es mit einer probabilistischen Programmiersprache (Pyro).
Verwalten Sie Protokollrotationsgenerationen mit einem Shell-Skript.
Probieren Sie eine funktionale Programmierpipe in Python aus
Versuchen Sie, eine Karte mit Python + Cartopy 0.18.0 zu zeichnen
Probieren Sie TensorFlows RNN mit einem Basismodell aus
Versuchen Sie Tensorflow mit einer GPU-Instanz unter AWS
Zeigen Sie die heutige Wettervorhersage mit Shell-Skript an
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuchen Sie, eine Nachricht mit dem SMS-Dienst von Twilio zu senden
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Versuchen Sie, eine Karte mit Pythons Folium-Paket zu zeichnen
Versuchen Sie es mit Python.
Asynchrone Programmierung mit libev # 2
3. 3. KI-Programmierung mit Python
Schaben mit kratzender Schale
Python-Programmierung mit Atom
Wettbewerbsfähige Programmierung mit Python
Shader-Programmierung mit pyOpenGL
Versuchen Sie SNN mit BindsNET
Ich habe versucht, Shell zu programmieren
Asynchrone Programmierung mit libev
Lineare Programmierung mit PuLP
Versuchen Sie eine Regression mit TensorFlow
Mit Dekorateur dekorieren
Programmieren mit Python Flask
Asynchrone Programmierung mit libev # 3
Versuchen Sie, eine einfache Website mit Responder und sqlite3 zu erstellen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Versuchen Sie, mit Tkinter in Python dynamisch einen Checkbutton zu erstellen
Versuchen Sie, Python mit pybind11 in ein C ++ - Programm einzubetten
Ein Beispiel, um Faktorisierungsmaschinen schnell mit fastFM auszuprobieren
Programmieren mit Python und Tkinter
Versuchen Sie, den Boden durch Rekursion herauszufordern
Versuchen Sie, Python in der mit pipenv erstellten Django-Umgebung auszuführen
Versuchen Sie die Funktionsoptimierung mit Optuna
Lernen Sie Librosa mit einem Tutorial 1
Versuchen Sie es mit TensorFlow
Versuchen Sie, PythonTex mit Texpad zu verwenden.
Versuchen Sie es mit normaler Linux-Programmierung Teil 7
Versuchen Sie die Kantenerkennung mit OpenCV
Versuchen Sie, RBM mit Chainer zu implementieren.
Versuchen Sie Google Mock mit C.
[Linux] Kopieren Sie Daten mit einem Shell-Skript von Linux nach Windows
Versuchen Sie es mit matplotlib mit PyCharm
Versuchen Sie Auto Encoder mit Pytorch
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Versuchen Sie die Matrixoperation mit NumPy
[Python] Versuchen Sie, die FX-Systolenparameter mit einem genetischen Algorithmus zu optimieren
Versuchen Sie es mit normaler Linux-Programmierung Teil 2
Erstellen Sie eine Homepage mit Django