Unix / Linux - Was ist Shells?
EIN Shellbietet Ihnen eine Schnittstelle zum Unix-System. Es sammelt Eingaben von Ihnen und führt Programme basierend auf diesen Eingaben aus. Wenn ein Programm die Ausführung beendet hat, zeigt es die Ausgabe dieses Programms an.
Shell ist eine Umgebung, in der wir unsere Befehle, Programme und Shell-Skripte ausführen können. Es gibt verschiedene Varianten einer Shell, genauso wie es verschiedene Varianten von Betriebssystemen gibt. Jede Shell-Variante hat ihre eigenen erkannten Befehle und Funktionen.
Shell-Eingabeaufforderung
Die Eingabeaufforderung, $, das heißt command promptwird von der Shell ausgegeben. Während die Eingabeaufforderung angezeigt wird, können Sie einen Befehl eingeben.
Shell liest Ihre Eingabe, nachdem Sie gedrückt haben Enter. Sie bestimmt den Befehl, den Sie ausführen möchten, indem Sie sich das erste Wort Ihrer Eingabe ansehen. Ein Wort ist ein ununterbrochener Zeichensatz. Leerzeichen und Tabulatoren trennen Wörter.
Das Folgende ist ein einfaches Beispiel für die date Befehl, der das aktuelle Datum und die aktuelle Uhrzeit anzeigt -
$date
Thu Jun 25 08:30:19 MST 2009
Sie können Ihre Eingabeaufforderung mithilfe der Umgebungsvariablen PS1 anpassen, die im Lernprogramm "Umgebung" erläutert wird.
Shell-Typen
In Unix gibt es zwei Haupttypen von Shells:
Bourne shell - Wenn Sie eine Bourne-Shell verwenden, wird die $ Zeichen ist die Standardaufforderung.
C shell - Wenn Sie eine C-Shell verwenden, ist das Zeichen% die Standardaufforderung.
Die Bourne Shell hat die folgenden Unterkategorien:
- Bourne Shell (sh)
- Kornschale (ksh)
- Bourne Again Shell (Bash)
- POSIX-Shell (sh)
Die verschiedenen C-Typ-Schalen folgen -
- C-Schale (csh)
- TENEX / TOPS C-Shell (tcsh)
Die ursprüngliche Unix-Shell wurde Mitte der 1970er Jahre von Stephen R. Bourne geschrieben, als er bei den AT & T Bell Labs in New Jersey war.
Die Bourne-Shell war die erste Shell, die auf Unix-Systemen angezeigt wurde, daher wird sie als "Shell" bezeichnet.
Die Bourne-Shell wird normalerweise als installiert /bin/shauf den meisten Versionen von Unix. Aus diesem Grund ist es die Shell der Wahl zum Schreiben von Skripten, die für verschiedene Unix-Versionen verwendet werden können.
In diesem Kapitel werden wir die meisten Shell-Konzepte behandeln, die auf der Borne Shell basieren.
Shell-Skripte
Das Grundkonzept eines Shell-Skripts ist eine Liste von Befehlen, die in der Reihenfolge ihrer Ausführung aufgelistet sind. Ein gutes Shell-Skript enthält Kommentare, denen vorangestellt ist# Zeichen, das die Schritte beschreibt.
Es gibt bedingte Tests, z. B. Wert A ist größer als Wert B, Schleifen, mit denen wir große Datenmengen durchlaufen können, Dateien zum Lesen und Speichern von Daten sowie Variablen zum Lesen und Speichern von Daten, und das Skript kann Funktionen enthalten.
Wir werden in den nächsten Abschnitten viele Skripte schreiben. Es wäre eine einfache Textdatei, in die wir alle unsere Befehle und einige andere erforderliche Konstrukte einfügen würden, die der Shell-Umgebung mitteilen, was und wann zu tun ist.
Shell-Skripte und -Funktionen werden beide interpretiert. Dies bedeutet, dass sie nicht kompiliert werden.
Beispielskript
Angenommen, wir erstellen eine test.shSkript. Beachten Sie, dass alle Skripte die haben würden.shErweiterung. Bevor Sie Ihrem Skript etwas anderes hinzufügen, müssen Sie das System darüber informieren, dass ein Shell-Skript gestartet wird. Dies geschieht mit demshebangbauen. Zum Beispiel -
#!/bin/sh
Dies teilt dem System mit, dass die folgenden Befehle von der Bourne-Shell ausgeführt werden sollen. Es heißt Shebang, weil die#Das Symbol heißt Hash, und das! Symbol heißt Knall .
Um ein Skript mit diesen Befehlen zu erstellen, setzen Sie zuerst die Shebang-Zeile und fügen dann die Befehle hinzu -
#!/bin/bash
pwd
ls
Shell Kommentare
Sie können Ihre Kommentare wie folgt in Ihr Skript einfügen:
#!/bin/bash
# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
pwd
ls
Speichern Sie den obigen Inhalt und machen Sie das Skript ausführbar -
$chmod +x test.sh
Das Shell-Skript kann jetzt ausgeführt werden -
$./test.sh
Bei der Ausführung erhalten Sie folgendes Ergebnis:
/home/amrood
index.htm unix-basic_utilities.htm unix-directories.htm
test.sh unix-communication.htm unix-environment.htm
Note - Verwenden Sie zum Ausführen eines im aktuellen Verzeichnis verfügbaren Programms ./program_name
Erweiterte Shell-Skripte
Für Shell-Skripte sind mehrere Konstrukte erforderlich, die der Shell-Umgebung mitteilen, was und wann zu tun ist. Natürlich sind die meisten Skripte komplexer als die oben genannten.
Die Shell ist schließlich eine echte Programmiersprache mit Variablen, Kontrollstrukturen usw. Egal wie kompliziert ein Skript wird, es ist immer noch nur eine Liste von Befehlen, die nacheinander ausgeführt werden.
Das folgende Skript verwendet die read Befehl, der die Eingabe von der Tastatur übernimmt und sie als Wert der Variablen PERSON zuweist und schließlich auf STDOUT druckt.
#!/bin/sh
# Author : Zara Ali
# Copyright (c) Tutorialspoint.com
# Script follows here:
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
Hier ist ein Beispiellauf des Skripts -
$./test.sh
What is your name?
Zara Ali
Hello, Zara Ali
$