Zum Inhalt

Test_1

  • Sie können den Unterschied zwischen einem Skript und z.B. einem C-Programm erläutern

Vergleichstabelle

Merkmal Skript (z. B. Bash, Python) C-Programm
Ausführung Direkt (Interpreter) Nach Kompilierung
Geschwindigkeit Langsamer Schneller
Flexibilität Hoch Niedriger
Einsatz Automatisierung, einfache Aufgaben Leistungsstarke Anwendungen
Lernen Einfach Schwieriger
  • Skripte sind ideal für einfache Automatisierungen und schnelle Lösungen.

  • C-Programme sind besser für Anwendungen, die Effizienz und Geschwindigkeit erfordern.

  • Sie können Beispiele für den Einsatz von Skripts nennen

  • Automatische Backups – Sichert regelmäßig wichtige Dateien und Verzeichnisse.

  • System- und Netzwerküberwachung – Prüft CPU-Auslastung, Festplattenplatz oder Serververfügbarkeit.

  • Benutzer- und Rechteverwaltung – Erstellt oder verwaltet Benutzerkonten und setzt Berechtigungen.

  • Datei- und Textverarbeitung – Sortiert, filtert oder durchsucht große Mengen an Daten und Log-Dateien.

  • Software-Installation & Updates – Automatisiert das Installieren, Konfigurieren und Aktualisieren von Programmen.

  • Sie können das Vorgehen bei der Skriptentwicklung erläutern

  • Problem analysieren – Bestimmen, welche Aufgabe das Skript automatisieren oder lösen soll.

  • Ablauf planen – Erstellen eines groben Konzepts, z. B. mit einem Programmablaufplan (PAP) oder Struktogramm.

  • Skript schreiben – Implementieren des Codes in der gewählten Skriptsprache (z. B. Bash, Python).

  • Testen und Debuggen – Das Skript ausprobieren und Fehler beheben, um sicherzustellen, dass es korrekt funktioniert.

  • Dokumentation und Optimierung – Das Skript mit Kommentaren versehen, verbessern und ggf. anpassen.

  • Automatisierung und Wartung – Das Skript in den Arbeitsablauf integrieren und regelmäßig aktualisieren.

  • Sie kennen die graphischen Darstellungen PAP, Struktogramm.

1. Programmablaufplan (PAP)

  • Wird auch Flussdiagramm genannt.

  • Besteht aus Symbolen wie Start, Prozess, Entscheidung und Ende.

  • Zeigt den Ablauf eines Programms visuell mit Pfeilen.

  • Gut für einfache Visualisierung von Abläufen.

2. Struktogramm

  • Auch als Nassi-Shneiderman-Diagramm bekannt.

  • Zeigt die hierarchische Struktur eines Programms in rechteckigen Blöcken.

  • Enthält Blöcke für Anweisungen, Schleifen und Verzweigungen.

  • Wird oft zur detaillierten Programmplanung genutzt.

  • Sie können ein Struktogramm oder ein PAP gemäss Aufgabenbeschreibung erstellen (auf Papier)

  • Sie haben verstanden, wie in Linux Benutzerberechtigungen geregelt werden (rwx)

1. Syntax von chmod

chmod [Optionen] Modus Datei
  • Modus: Kann symbolisch (u+rwx) oder numerisch (755) angegeben werden.
  • Optionen:
  • -R (rekursiv für alle Unterordner & Dateien)
  • -v (zeigt Änderungen an)
  • -f (unterdrückt Fehlermeldungen)

2. Symbolischer Modus (Buchstaben)

Format: [Benutzerkategorie][Operator][Rechte]

  • Benutzerkategorien:
  • u = Besitzer (user)
  • g = Gruppe (group)
  • o = Andere (others)
  • a = Alle (u, g, o zusammen)
  • Operatoren:
  • + Rechte hinzufügen
  • - Rechte entfernen
  • = Rechte genau setzen
  • Rechte:
  • r = Lesen
  • w = Schreiben
  • x = Ausführen

Beispiele:

  • chmod u+rwx datei.txt → Besitzer bekommt vollen Zugriff
  • chmod g-w datei.txt → Gruppe verliert Schreibrechte
  • chmod a+x script.sh → Alle dürfen die Datei ausführen

3. Numerischer Modus (Oktalzahlen)

Jede Ziffer steht für eine Benutzerkategorie:
chmod XYZ datei.txt

  • X = Besitzer, Y = Gruppe, Z = Andere
  • Zahlenwerte:
  • 7 = Lesen, Schreiben, Ausführen (4+2+1)
  • 6 = Lesen, Schreiben (4+2)
  • 5 = Lesen, Ausführen (4+1)
  • 4 = Nur Lesen
  • 3 = Schreiben, Ausführen (2+1)
  • 2 = Nur Schreiben
  • 1 = Nur Ausführen
  • 0 = Keine Rechte

Beispiele:

  • chmod 777 datei.txt → Jeder darf alles
  • chmod 644 datei.txt → Besitzer darf lesen & schreiben, andere nur lesen
  • chmod 700 geheim.txt → Nur Besitzer hat Zugriff

4. Wichtige Optionen

  • chmod -R 755 /pfad → Setzt Rechte für alle Unterordner & Dateien
  • chmod -v 644 datei.txt → Zeigt die Änderungen an

  • Sie können Benutzerberechtigungen gezielt setzen

  • Sie können die Bedeutung der Linuxverzeichnisse der obersten Ebene erläutern

Verzeichnis Bedeutung
/ Root-Verzeichnis, Ausgangspunkt aller Daten.
/bin Wichtige Programme wie ls, cp, rm.
/sbin Systemadministrationsprogramme für root.
/etc Konfigurationsdateien.
/home Benutzerverzeichnisse.
/root Root-Nutzer-Verzeichnis.
/var Logs, temporäre Daten.
/tmp Temporäre Dateien.
/usr Programme, Bibliotheken.
/lib, /lib64 Systembibliotheken.
/boot Startdateien & Kernel.
/dev Geräte-Dateien für Hardware.
/mnt, /media Einhängepunkte für externe Datenträger.
/opt Optionale Software.
/proc Prozess- und Kernel-Informationen.
/sys System- & Hardware-Informationen.
/srv Daten für Server-Dienste.
  • Sie können Verzeichnisse mit cd absolut und relativ wechseln

In Linux gibt es zwei Arten, Verzeichnisse mit cd zu wechseln:

1. Absoluter Pfad

  • Beginnt immer mit / und gibt den vollständigen Weg zum Verzeichnis an.
  • Beispiel: Wechsel zu /home/user/Dokumente, unabhängig vom aktuellen Standort.

2. Relativer Pfad

  • Bezieht sich auf das aktuelle Verzeichnis.
  • Beispiel: Von /home/user aus genügt cd Dokumente, um in /home/user/Dokumente zu wechseln.

Weitere wichtige Befehle:

  • cd .. → Eine Ebene nach oben
  • cd ../../ → Zwei Ebenen nach oben
  • cd - → Zum vorherigen Verzeichnis zurückkehren
  • cd ~ → Direkt ins Home-Verzeichnis wechseln

  • Sie können die Bash-Kommandos ls, cd, cp, mv, rm, touch, find, cat, head, tail, wc, grep, sort, cut, tr, mkdir, rmdir korrekt anwenden

Befehl Erklärung Beispiel
ls Listet Dateien und Verzeichnisse ls -l (detaillierte Ansicht)
cd Wechselt das Verzeichnis cd /home/user
cp Kopiert Dateien oder Verzeichnisse cp datei.txt /ziel/ordner/
mv Verschiebt oder benennt Dateien um mv alte.txt neue.txt
rm Löscht Dateien oder Verzeichnisse rm -r verzeichnis/
touch Erstellt eine leere Datei touch neue_datei.txt
find Sucht nach Dateien find /home -name "test.txt"
cat Zeigt den Inhalt einer Datei an cat datei.txt
head Zeigt die ersten Zeilen einer Datei head -5 datei.txt
tail Zeigt die letzten Zeilen einer Datei tail -3 datei.txt
wc Zählt Wörter, Zeilen oder Zeichen wc -l datei.txt (Zeilen zählen)
grep Sucht nach Textmustern grep "Fehler" log.txt
sort Sortiert Zeilen alphabetisch sort namen.txt
cut Schneidet bestimmte Spalten aus cut -d"," -f1 datei.csv
tr Ersetzt oder löscht Zeichen `echo "text"
mkdir Erstellt ein neues Verzeichnis mkdir neues_verzeichnis
rmdir Löscht ein leeres Verzeichnis rmdir altes_verzeichnis
  • Sie können die man-Pages verwenden um für die obigen Kommandos Hilfestellung zu erhalten

Man-Pages aufrufen

Um die Hilfe für einen Befehl anzuzeigen, verwendet man:

man [Befehl]

Beispiele:

  • man ls zeigt die Dokumentation für den ls-Befehl.
  • man grep gibt eine ausführliche Beschreibung zu grep.
  • Pfeiltasten oder Bild↑/Bild↓ → Blättern
  • Leertaste → Eine Seite weiter
  • B → Eine Seite zurück
  • /Suchbegriff → Suchen innerhalb der man-Page
  • q → Beenden

Alternative Hilfe-Befehle

  • Befehl --help → Zeigt eine kurze Übersicht über den Befehl (z. B. ls --help).
  • info Befehl → Gibt erweiterte Informationen (z. B. info grep)

  • Sie können Ausgabe- und Eingabeumleitung und Pipes (auch in Kombination) korrekt anwenden

1. Ausgabeumleitung (>, >>)

Die Ausgabe eines Befehls kann in eine Datei umgeleitet werden.

  • >Überschreibt eine Datei
  • >>Hängt die Ausgabe an eine Datei an

Beispiele:

  • ls > dateiliste.txt (Schreibt die Dateiliste in dateiliste.txt, vorheriger Inhalt wird gelöscht.)
  • echo "Hallo Welt" >> log.txt (Fügt "Hallo Welt" ans Ende von log.txt.)

2. Eingabeumleitung (<)

Ein Befehl kann Daten aus einer Datei als Eingabe verwenden.

Beispiel:

  • sort < namen.txt (Sortiert die Namen aus namen.txt und gibt sie aus.)

3. Pipes (|)

Pipes verbinden die Ausgabe eines Befehls direkt mit der Eingabe eines anderen Befehls.

Beispiele:

  • ls -l | grep ".txt" (Zeigt nur .txt-Dateien aus der ls -l-Liste.)
  • cat datei.txt | wc -l (Zählt die Zeilen in datei.txt.)
  • ps aux | sort -k4 -nr | head -5 (Zeigt die 5 Prozesse mit dem höchsten Speicherverbrauch.)

4. Kombination von Umleitungen & Pipes

Man kann Pipes und Umleitungen kombinieren, um komplexe Befehle zu erstellen.

Beispiel:

  • ps aux | grep "firefox" > firefox_prozesse.txt (Speichert alle Firefox-Prozesse in einer Datei.)
  • cat log.txt | grep "Fehler" | sort | uniq > fehlerberichte.txt (Sucht nach "Fehler", sortiert und entfernt doppelte Einträge, speichert in fehlerberichte.txt.)