🚀 Bist Du bereit für eine Karriere im Bereich Data? Finde es in nur 60 Sekunden heraus!

Bash-Skripting: Alles, was Du wissen musst

-
4
 Minuten Lesezeit
-

Scripting bietet Dir die Möglichkeit, deine täglichen Abläufe zu vereinfachen und zu optimieren. Bash-Skripte (Akronym für Bourne Again Shell) sind sehr leistungsstarke und nützliche Werkzeuge für die Entwicklung.

Es handelt sich um einen Kommandozeilen-Interpreter für Unix- und Linux-Systeme. Er wurde 1989 von Brian Fox für das GNU-Projekt entwickelt, um die ursprüngliche Bourne Shell zu ersetzen, und brachte signifikante Verbesserungen in Bezug auf Funktionen und Kompatibilität.

Die Bedeutung von Bash in der Systemadministration und Softwareentwicklung kann nicht unterschätzt werden. Es ermöglicht die Automatisierung sich wiederholender Aufgaben, die Verwaltung großer Systeme und erleichtert die Entwicklung komplexer Skripte für verschiedene Anwendungen.

Die Grundlagen des Bash-Scripting

Bash-Scripting ist eine wesentliche Fähigkeit für jeden, der mit Unix- oder Linux-Systemen arbeitet.

Bash und Bang: Einführung in Shebang

Das erste Schlüsselelement jedes Bash-Skripts ist die Shebang-Zeile. Sie teilt dem System mit, welchen Interpreter es zur Ausführung des Skripts verwenden soll.

				
					#!/bin/bash
				
			

Das #! ist als Shebang bekannt, und /bin/bash gibt den Pfad zum Bash-Interpreter an. Diese Zeile ist entscheidend, da sie sicherstellt, dass das Skript von Bash interpretiert wird, auch wenn andere Shells auf dem System vorhanden sind.

Erster Schritt: Hello World!

Erstelle mit Deinem bevorzugten Texteditor eine Datei namens hello.sh, füge den folgenden Inhalt hinzu und speichere sie:

				
					#!/bin/bash
echo "Hello World!"
				
			

Ein Skript ausführbar machen

Standardmäßig hat eine Textdatei keine Berechtigungen, um wie ein Programm ausgeführt zu werden. Um Dein Skript ausführbar zu machen, musst du den folgenden Befehl verwenden, um die Berechtigungen zu ändern:

				
					chmod +x hello.sh
				
			

Dann kannst Du die Berechtigungen mit dem folgenden Befehl überprüfen:

				
					ls -l hello.sh
				
			

Ausführung eines Skripts

Um das Skript auszuführen, gibt es mehrere Möglichkeiten:

  • Relativer Pfad:
				
					./hello.sh
				
			
  • Verwendung der Bash-Shell:
				
					bash hello.sh
				
			
  • Über die sh-Shell, kann aber zu unterschiedlichen Verhaltensweisen führen, wenn das Skript bash-spezifische Funktionen verwendet:
				
					sh hello.sh
				
			

Grundlegende Befehle

Bash-Scripting basiert auf der effizienten Nutzung einer Vielzahl von Befehlen, um einfache und komplexe Aufgaben zu erledigen. Hier sind einige häufig verwendete Befehle zum Navigieren und Verwalten des Dateisystems:

  • Dateien und Ordner im aktuellen Verzeichnis auflisten
				
					ls
				
			
  • Verzeichnis wechseln
				
					cd /path/to/directory
				
			
  • Aktuelles Verzeichnis anzeigen
				
					pwd
				
			
  • Eine leere Datei erstellen oder den Zeitstempel einer bestehenden Datei aktualisieren
				
					touch newfile.txt
				
			
  • Dateien oder Ordner löschen
				
					rm file.txt
				
			

Kombination von Befehlen

Bash-Skripte werden mächtig, wenn Du Befehle kombinierst, um komplexere Aufgaben zu erledigen. Hier sind einige Beispiele:

  • Verwendung von „;“ zum Ausführen mehrerer Befehle in einer Sequenz
				
					cd /path/to/directory; ls; pwd
				
			
  • Ausgabeumleitung: Verwende >, um die Ausgabe eines Befehls in eine Datei umzuleiten, oder >>, um zu einer bestehenden Datei hinzuzufügen
				
					echo "Hello, World!" > hello.txt
echo "Hello again!" >> hello.txt
				
			
  • Verwendung von Pipe ( | ), um die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu verwenden
				
					ls -l | grep ".txt"
				
			

Variablen und Substitution

  • Erklärung einer Variablen und deren Nutzung mit $
				
					NAME=”Alice”
echo “Hello, $NAME!”
				
			
  • Verwendung der Substitution, um die Ausgabe eines Befehls als Variable zu verwenden
				
					DATE=$(date)
echo "Today's date is $DATE"
				
			

Beachte, dass dieses Beispiel häufig bei der Erstellung von Logs verwendet wird.

Pfadverwaltung

Das Verständnis und die Verwaltung von Dateipfaden sind unerlässlich, um effizient im Dateisystem zu navigieren und robuste Skripte zu schreiben.

Absoluter Pfad vs relativer Pfad

Image Absolut Image Relativ
Gibt den vollständigen Pfad zu einer Datei oder einem Verzeichnis vom Stammverzeichnis des Dateisystems an. Gibt den Pfad zu einer Datei oder einem Verzeichnis relativ zum aktuellen Verzeichnis an.
Beispiel: /home/user/documents/report.txt Beispiel: documents/report.txt

Zugehörige Befehle

Um Dateien und Befehle zu lokalisieren, stehen in Bash mehrere Tools zur Verfügung:

  • Den Speicherort eines ausführbaren Programms finden
				
					which bash
				
			
  • Ort von Binärdateien, Quellcodes und zugehörigen Dokumentationen zu einem Befehl
				
					whereis bash
				
			
  • Dateien und Ordner durchsuchen
				
					find /home/user -name "report.txt"
				
			

Umgebungsvariablen

Umgebungsvariablen sind Schlüssel-Wert-Paare, die das Verhalten von Systemprozessen beeinflussen. Hier sind die gebräuchlichsten:

  • $PATH: enthält eine Liste von Verzeichnissen, in denen das System nach ausführbaren Dateien sucht. Um es zu ändern, verwende den folgenden Befehl
				
					export PATH=$PATH:/new/directory/path
				
			
  • $HOME: stellt das persönliche Verzeichnis des Benutzers dar
				
					echo $HOME
cd $HOME
				
			
  • $PWD: gibt das aktuelle Arbeitsverzeichnis an
				
					echo $PWD
				
			
  • $USER: enthält den aktuellen Benutzernamen
				
					echo $USER
				
			

Fluss- und Logikkontrolle

Fluss- und Logikkontrolle sind wesentliche Elemente des Bash-Scripting und ermöglichen das Schreiben dynamischer und anpassungsfähiger Skripte.

Bedingte Anweisungen

Sie ermöglichen die Ausführung von Code basierend auf bestimmten Bedingungen. Hier ist ein Beispiel für die Verwendung von if…elif…else.

				
					#!/bin/bash
echo "Gib eine Zahl ein: "
read number
if [ $number -gt 10 ]; then
    echo "Die Zahl ist größer als 10."
elif [ $number -eq 10 ]; then
    echo "Die Zahl ist gleich 10."
else
    echo "Die Zahl ist kleiner als 10."
fi
				
			

Schleifen

Schleifen werden verwendet, um Befehle mehrmals zu wiederholen.

  • for
				
					for i in 1 2 3 4 5; do
    echo "Zähler: $i"
done
				
			
  • while
				
					count=1
while [ $count -le 5 ]; do
    echo "Zähler: $count"
    ((count++))
done
				
			
  • until
				
					count=1
until [ $count -gt 5 ]; do
    echo "Zähler: $count"
    ((count++))
done
				
			

Einige nützliche Skripte und Best Practices

Beispielscripte

  • Backup-Skript: Kopiert Dateien von einer Quelle an ein Ziel
				
					#!/bin/bash
# Dieses Skript führt ein Backup der Dateien durch
src="/home/user/documents"
dest="/backup/documents"

if [ ! -d $dest ]; then
    mkdir -p $dest
fi

for file in $src/*; do
    if [ -f $file ]; then
        cp $file $dest
        echo "Kopiert $file nach $dest"
    fi
done
				
			
  • Bereinigung: Löschen von Elementen in einem temporären Verzeichnis
				
					#!/bin/bash
dir="/home/user/temp"
echo "Bereinige Verzeichnis $dir"

for file in $dir/*; do
    if [ -f $file ]; then
        rm $file
        echo "Gelöscht $file"
    fi
done
				
			

Einige Best Practices

1. Kommentiere: Dies macht die Skripte lesbarer und verständlicher.

2. Benenne deine Variablen aussagekräftig. Vermeide Variablennamen wie $var1, $var2 oder $tmpvar.

3. Fehlerbehandlung: Verwende Bedingungen, um den Erfolg zu überprüfen und Fehler angemessen zu erfassen.

4. Modularisiere deinen Code durch den Einsatz von Funktionen, insbesondere wenn das Skript mehrere Operationen ausführt, zum Beispiel:

				
					backup_files() {
    # Code zum Ausführen des Backups
}
				
			

5. Debugge, um Fehler zu identifizieren. Hier sind nützliche Befehle dafür

				
					#!/bin/bash
set -x # Aktiviert den Trace-Modus, der jeden Befehl und sein Ergebnis anzeigt
# Skriptcode

#!/bin/bash
set -e # Stoppt das Skript bei einem Fehler
# Skriptcode

echo "Skriptanfang" # Verwende echo an strategischen Stellen im Skript, um Ausgaben zu überprüfen und den Ausführungsfluss zu verfolgen
				
			

Fazit

Das Bash-Scripting ist ein leistungsfähiges Werkzeug zur Automatisierung und Vereinfachung von Aufgaben auf Unix- und Linux-Systemen. Durch das Beherrschen der Grundlagen, der grundlegenden Befehle, der Pfadverwaltung, der Flusskontrolle und Best Practices kannst du robuste und effektive Skripte schreiben, um deine tägliche Produktivität zu verbessern.

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.