v7 - Shell-Programmierung:
--------------------------
- Was ist die Shell?
- Warum Shell?
- Kenntnisse über die Basis Befehle
- Was ist die She-bang?
- Skriptaufruf mit/ohne Subshell
- Kommentare in Shell Skripte
- Debugging Informationen an/aus
- Standard-Datenströme in der Shell (!!)
- Umleitungsoperatoren (!!)

Was ist die Shell und Warum shell?

Die Shell ist eine Schnittstelle zwischen dem Benutzer und dem Betriebssystem. Sie ermöglicht es dir, Befehle einzugeben, um Programme zu starten, Dateien zu verwalten oder Prozesse zu steuern.

Warum Shell ?

  • man kann Aufgaben mit der shell deutlich schneller erledigen, wie zum Beispiel sachen im internet zu downloden

  • und kann automationen einrichten


Kenntnisse über die Basis Befehle

BefehlFunktionWas wird ausgegeben?
pwdZeigt das aktuelle VerzeichnisDen Pfad, in dem du dich gerade befindest
whoZeigt alle eingeloggten BenutzerEine Liste aller aktiven Benutzer
whoamIZeigt den aktuellen BenutzerDen Benutzernamen, mit dem du angemeldet bist
wcZählt alles buchstaben in einer dateiKommt i.eine zahl raus
lseine liste von der jetzigen Pfad wird angezeigt
cdim Verzeichnis wechsle
touchDatei anlegen
mkdirVerzeichnis anlegen
nanoEditor
rmlöschen
rmdirverzeichnis löschen
cpcopycp datei1 → datei2
mvmovemv datei1 → /../…/absolten pfad/
cut-c1gibt mir den 1 Bustabe
cut-c1-4gib mir die Bustabe von der erste bis 4 reihe
exportexport HalloIch kann die Locale variable zu einer Umgebungsvariable machen
readonlyreadonly Hellowird zu einer Konstante, kann nicht verändert werden
2>&1Flasche output wird zu 1 gewechselt
exprexpr 1 + 2 = 3
expr 5 * 3
wichtig bei * bruache ich einen Back slasch
trtr a b < txt.dateikann die bustabe wechseln. In dem Bsp. werden alle wörter die ein A beinhaltet zu b um gewandelt. z.B paar → pbbr

Was ist die She-bang?

#!/bin/bash

Wenn man eine leere Datei erstellt mit dem befehl touch, dann in der erste Zeile #!/bin/bahs ein trägt, dann weist das proramm “oh es kommt ein bash code”, und man muss nicht extra den Datei einen dateitypen verpassen. also kein .sh oder txt oder pdf.


Skriptaufruf mit/ohne Subshell

BefehlWas passiert?Wichtiger Unterschied
.**/**script.shStartet das Skript in einem neuen Unterprozess (Subshell).Änderungen an Umgebungsvariablen gelten nur innerhalb des Skripts.
. script.shFührt das Skript im akktuellen Termial prozess aus.Änderungen an Umgebungsvariablen bleiben im aktuellen Terminal bestehen.

#Kommentare in einem Skript

image 13.png


Debugging Informationen an/aus

Verwendung des set Kommandos:
▶ set -x : Aktiviert die Ausgabe jedes Befehls vor der Ausführung
▶ set +x : Deaktiviert die Ausgabe jedes Befehls
▶ set -e : Beendet das Skript bei einem Fehler

Termial: 
set -x \#egal was ich jetzt schreibe, es ist wie ein Papagei. 
set +x \#jetzt ist der Papagei still
set -e \#wenn ich i.was flasch flasch mache ist der papagei tot und ich muss mir 
			# einen neune kaufen :(

Standard-Datenströme in der Shell (!!)

image 1 4.png


Umleitungsoperatoren (!!)

image 2 3.png

Siehe auch