Unix / Linux - Was ist die Shell?

Hallo, angehende Programmierer! Willkommen auf unserer Reise in die faszinierende Welt der Unix- und Linux-Shells. Als Ihr freundlicher Nachbarschaftsinformatiklehrer bin ich aufgeregt, Ihnen dieses grundlegende Konzept zu erläutern. Tauchen wir ein!

Unix / Linux - What is Shell?

Was ist eine Shell?

Stellen Sie sich vor, Sie versuchen, mit einem Freund zu kommunizieren, der eine andere Sprache spricht. Sie bräuchten einen Übersetzer, oder? Eine Shell ist so etwas wie dieser Übersetzer zwischen Ihnen und Ihrem Betriebssystem. Es ist ein Kommandozeileninterpreter, der Ihre menschenlesbaren Befehle in etwas übersetzt, das der Computer verstehen und ausführen kann.

In meinen frühen Tagen des Unterrichtens habe ich meinen Schülern gesagt, sie sollten sich die Shell als eine magische sprechende Muschel vorstellen, die in ihrem Computer lebt. Sie flüstern Befehle zu ihr, und sie lässt den Computer Ihren Befehlen gehorchen. Das ist nicht完全 accurate, aber es hat das Konzept wirklich fest im Gedächtnis bleiben lassen!

Shell-Prompt

Wenn Sie ein Terminal auf Ihrem Unix- oder Linux-System öffnen, sehen Sie etwas wie dies:

benutzername@rechnername:~$

Dies ist Ihr Shell-Prompt. Es ist so, als ob der Computer sagt: "Ich bin bereit für Ihren Befehl, oh weise Benutzer!" Lassen Sie uns das auseinandernehmen:

  • benutzername: Das bist du!
  • @: Bedeutet einfach "bei"
  • rechnername: Der Name Ihres Computers
  • ~: Ihr aktueller Verzeichnis (~ bedeutet Heimatverzeichnis)
  • $: Zeigt an, dass Sie ein normaler Benutzer sind (es wäre # für den Root-Benutzer)

Shell-Typen

Es gibt mehrere Arten von Shells, die in Unix/Linux-Systemen verfügbar sind. Es ist so, als hätte man verschiedene Eiscreme-Sorten – sie sind alle lecker, aber jede hat ihren eigenen Geschmack! Hier sind einige gängige:

Shell-Name Beschreibung
Bourne Shell (sh) Die ursprüngliche Unix-Shell
Bourne Again Shell (bash) Erweiterte Version von sh, am häufigsten in Linux
C Shell (csh) Syntax ähnlich der Programmiersprache C
Korn Shell (ksh) Kombination aus Funktionen von sh und csh
Z Shell (zsh) Erweiterte Version von bash mit vielen Verbesserungen

Bash ist die am häufigsten verwendete Shell, auf die wir uns in unseren Beispielen konzentrieren werden.

Shell-Skripte

Nun, hier geschieht die Magie! Shell-Skripte sind wie Kochbücher für Ihren Computer. Anstatt Befehle einzeln einzugeben, können Sie eine Reihe von Befehlen in einer Datei schreiben und sie alle auf einmal ausführen. Es ist, als ob Sie Ihrem Computer ein neues Kunststück beibringen!

Beispielskript

Lassen Sie uns unser erstes Shell-Skript erstellen. Wir nennen es hello_world.sh:

#!/bin/bash

echo "Hallo, Welt!"
echo "Willkommen in der wundersamen Welt der Shell-Skripte!"
echo "Heutiges Datum ist $(date)"
echo "Ihr aktuelles Verzeichnis ist $(pwd)"

Lassen Sie uns das auseinandernehmen:

  1. #!/bin/bash: Dies wird als Shebang bezeichnet. Es tells dem System, welchen Interpreter zu verwenden (in diesem Fall bash).
  2. echo: Dieser Befehl gibt Text auf den Bildschirm aus.
  3. $(date) und $(pwd): Dies sind Befehlsubstitutionen. Sie führen die Befehle innerhalb der Klammern aus und fügen die Ausgabe in unsere echo-Anweisung ein.

Um dieses Skript auszuführen:

  1. Speichern Sie es als hello_world.sh
  2. Machen Sie es ausführbar: chmod +x hello_world.sh
  3. Führen Sie es aus: ./hello_world.sh

Sie sollten etwas wie folgendes sehen:

Hallo, Welt!
Willkommen in der wundersamen Welt der Shell-Skripte!
Heutiges Datum ist Mo Mai 15 10:30:45 PDT 2023
Ihr aktuelles Verzeichnis ist /home/benutzername

Ist das nicht toll? Sie haben gerade Ihr erstes Shell-Skript erstellt!

Shell-Kommentare

Kommentare sind wie kleine Notizen, die Sie selbst (oder andere Programmierer) in Ihrem Code hinterlassen. In Shell-Skripten beginnen Kommentare mit einem #:

# Dies ist ein Kommentar
echo "Dies wird ausgegeben"
# echo "Aber dies wird nicht ausgegeben"

Ich sage meinen Schülern immer: Kommentieren Sie Ihren Code so, als ob derjenige, der ihn liest, ein gewalttätiger Psychopath ist, der weiß, wo Sie wohnen. Klar formulierte Kommentare können Leben retten! (Oder zumindest Frustration verhindern.)

Erweiterte Shell-Skripte

Wenn Sie sich zunehmend wohl mit Shell-Skripten fühlen, können Sie komplexere Skripte erstellen. Hier ist ein Beispiel, das Variablen, Benutzereingaben und bedingte Anweisungen demonstrates:

#!/bin/bash

# Fragen Sie nach dem Namen des Benutzers
echo "Wie ist Ihr Name?"
read name

# Grüßen Sie den Benutzer
echo "Hallo, $name! Schön, Sie kennenzulernen."

# Fragen Sie nach dem Alter des Benutzers
echo "Wie alt sind Sie?"
read age

# Überprüfen Sie, ob der Benutzer alt genug zum Wählen ist
if [ $age -ge 18 ]
then
echo "Sie sind alt genug zum Wählen!"
else
echo "Sie sind noch nicht alt genug zum Wählen."
years_left=$((18 - age))
echo "In $years_left Jahren werden Sie alt genug sein, um zu wählen."
fi

Dieses Skript:

  1. Fragt nach dem Namen und Alter des Benutzers
  2. Verwendet Variablen, um diese Informationen zu speichern und zu verwenden
  3. Verwendet eine bedingte Anweisung (if-else), um das Alter zu überprüfen
  4. Führt eine Berechnung durch, um die Jahre bis zum Wahlalter zu bestimmen

Denken Sie daran, das Lernen von Code ist wie das Fahrradfahren. Am Anfang könnten Sie ein paar Male fallen, aber mit Übung werden Sie schnell darin werden!

Ich hoffe, diese Einführung in Shells hat Ihr Interesse geweckt. Weitersuchen, weiter fragen und vor allem: weiter codieren! Wer weiß? Vielleicht unterrichten Sie eines Tages die nächste Generation von Programmierern über die magische Welt der Shells!

Credits: Image by storyset