Zum Inhalt springen

Glossar

Die Begriffe, die im Kurs immer wieder vorkommen. Englische Fachbegriffe bleiben englisch, weil sie so in Manpages, Fehlermeldungen und Stellenanzeigen stehen.

Alias: Abkürzung für einen Befehl, die nur in der Shell gilt, zum Beispiel alias ll='ls -lah'. Definiert in ~/.bashrc, zeigt alias alle, unalias löscht.

Argument: Was ein Befehl bearbeitet, meist ein Datei- oder Verzeichnisname. In cp -r quelle ziel sind quelle und ziel Argumente, -r ist eine Option.

apt: Paketverwaltung von Debian und Ubuntu. apt install, apt update, apt upgrade. In Skripten apt-get, weil dessen Ausgabe stabil bleibt.

Bash: Bourne Again Shell, die Standard-Shell auf Ubuntu und den meisten Linux-Systemen. Interaktiv am Prompt und als Sprache für Skripte.

Boot: Der Startvorgang: Firmware (UEFI), Bootloader (GRUB), Kernel, dann systemd als erster Prozess.

Branch: Eigenständige Entwicklungslinie in Git. main ist der Hauptbranch, für jede Aufgabe legst du einen eigenen an.

Builtin: Befehl, der in der Shell selbst eingebaut ist und nicht als Programm auf der Platte liegt: cd, echo, read, export. type befehl verrät es.

Commit: Ein gespeicherter Zustand des Repositorys mit Nachricht, Autor und Zeitstempel. Jeder Commit hat eine eindeutige ID (Hash).

Container: Isolierter Prozess mit eigenem Dateisystem und Netzwerk, der sich den Kernel mit dem Host teilt. Leichter als eine VM, startet in Sekunden. Docker ist das bekannteste Werkzeug.

cron: Dienst, der Befehle zeitgesteuert ausführt. Konfiguration mit crontab -e, Format: Minute Stunde Tag Monat Wochentag Befehl.

Daemon: Prozess, der im Hintergrund läuft und auf Aufträge wartet, meist mit d am Ende des Namens: sshd, systemd, dockerd.

Distribution: Linux-Kernel plus Paketverwaltung, Werkzeuge und Konfiguration, zusammengestellt von einem Projekt oder einer Firma: Ubuntu, Debian, Fedora, Arch.

Docker Compose: Beschreibt mehrere Container, Netze und Volumes in einer compose.yaml und startet sie gemeinsam mit docker compose up.

dpkg: Das Low-Level-Werkzeug hinter apt, das .deb-Pakete installiert. dpkg -l listet, dpkg -S findet das Paket zu einer Datei.

Environment (Umgebung): Variablen, die ein Prozess an seine Kindprozesse vererbt: PATH, HOME, LANG. export macht eine Shell-Variable zur Umgebungsvariablen, env zeigt alle.

Exit-Status: Zahl von 0 bis 255, die ein Programm beim Beenden zurückgibt. 0 bedeutet Erfolg, alles andere Fehler. In der Shell steht er in $?.

FHS: Filesystem Hierarchy Standard, die Norm, die festlegt, was wohin gehört: Programme nach /usr/bin, Konfiguration nach /etc, Logs nach /var/log, Benutzerdaten nach /home.

Fork: In Git: eigene Kopie eines fremden Repositorys auf dem Server. Im Betriebssystem: Erzeugen eines neuen Prozesses als Kopie des aktuellen.

GID: Group ID, die Nummer einer Gruppe. Steht in /etc/group, id zeigt deine.

Glob: Dateinamenmuster mit *, ? und [...], das die Shell vor dem Aufruf des Befehls in passende Namen auflöst. Siehe Wildcard.

GRUB: Der Bootloader, der nach der Firmware den Kernel lädt. Sein Menü erscheint beim Start mit Shift oder Esc und erlaubt den Recovery-Modus.

Hardlink: Zweiter Name für dieselbe Datei (denselben Inode). Die Datei ist erst weg, wenn alle Namen gelöscht sind. Nur innerhalb eines Dateisystems, nicht für Verzeichnisse.

Home-Verzeichnis: Das persönliche Verzeichnis eines Benutzers, /home/name, abgekürzt ~. Hier liegen deine Dateien und die Konfigurationsdateien mit Punkt am Anfang.

Hypervisor: Software, die virtuelle Maschinen ausführt. Typ 1 läuft direkt auf der Hardware (Proxmox, ESXi, Hyper-V), Typ 2 als Programm in einem Betriebssystem (VirtualBox, VMware Workstation, UTM).

Image: Schreibgeschützte Vorlage für Container (Docker-Image) oder ein Abbild eines Datenträgers (ISO-Image zur Installation). Aus einem Image entstehen beliebig viele Container.

Inode: Datenstruktur im Dateisystem, die alles über eine Datei weiss ausser dem Namen: Besitzer, Rechte, Grösse, Zeitstempel, Position der Datenblöcke. ls -i zeigt die Nummer.

Journal: Das Log von systemd, das alle Meldungen von Diensten und dem Kernel sammelt. Lesen mit journalctl.

Kernel: Der Kern des Betriebssystems, der Hardware, Speicher, Prozesse und Dateisysteme verwaltet. Linux ist genau genommen nur der Kernel; der Rest ist die Distribution.

Locale: Einstellungen für Sprache, Zeichensatz, Datum und Zahlenformat eines Benutzers, zum Beispiel de_CH.UTF-8. locale zeigt sie.

Log: Protokolldatei, in die Programme schreiben, was sie tun. Klassisch unter /var/log, bei systemd-Diensten im Journal.

Manpage: Handbuchseite zu einem Befehl, einer Datei oder einem Systemaufruf, lesbar mit man befehl. In Abschnitte nummeriert: 1 Befehle, 5 Dateiformate, 8 Administration.

Merge: Zusammenführen zweier Branches in Git. Wenn beide dieselbe Stelle geändert haben, entsteht ein Konflikt, den du von Hand auflöst.

Merge Request: Bitte an das Team, einen Branch in main zu übernehmen, mit Diskussion, Review und automatischen Prüfungen. Bei GitHub heisst dasselbe Pull Request. So gibst du im Kurs Lösungen ab.

Mountpoint: Verzeichnis, an dem ein Dateisystem in den Verzeichnisbaum eingehängt ist, etwa /mnt/usb oder /. mount und lsblk zeigen, was wo hängt.

Option: Schalter, der das Verhalten eines Befehls ändert: kurz -l oder lang --all. Steht in der Manpage unter OPTIONS.

Owner (Besitzer): Der Benutzer, dem eine Datei gehört. Zusammen mit der Gruppe und den Rechtebits bestimmt er, wer lesen, schreiben und ausführen darf.

Paket: Installierbare Einheit der Paketverwaltung mit Programm, Dateien, Abhängigkeiten und Installationsskripten. Bei Ubuntu .deb, bei Fedora .rpm.

PATH: Umgebungsvariable mit der Liste der Verzeichnisse, in denen die Shell nach Programmen sucht, getrennt durch Doppelpunkt. Das aktuelle Verzeichnis gehört bewusst nicht dazu, darum ./skript.sh.

PID: Process ID, die eindeutige Nummer eines laufenden Prozesses. ps, pgrep und $$ zeigen sie, kill braucht sie.

Pipe: Das Zeichen |, das die Ausgabe eines Befehls als Eingabe an den nächsten weiterreicht: ps aux | grep ssh.

Prompt: Die Eingabeaufforderung der Shell, zum Beispiel alice@vm:~$. Das $ am Ende steht für einen normalen Benutzer, # für root.

Prozess: Ein laufendes Programm mit eigener PID, Besitzer, Speicher und Umgebung. Jeder Prozess hat einen Elternprozess; ganz oben steht systemd mit PID 1.

Quoting: Anführungszeichen, die der Shell sagen, was sie nicht interpretieren soll. Doppelte "..." lassen $var zu, einfache '...' nehmen alles wörtlich, \ schützt ein einzelnes Zeichen.

Redirection (Umleitung): Ausgabe oder Eingabe eines Befehls in eine Datei lenken statt aufs Terminal: >, >>, 2>, <.

Repository: Verzeichnis, dessen Geschichte Git verwaltet, mit allen Commits im versteckten Ordner .git. Lokal auf deinem Rechner und als Kopie auf dem Server (Remote).

root: Der Administrator mit UID 0, der alles darf. Auf Ubuntu arbeitest du nicht als root, sondern mit sudo. Nicht verwechseln mit dem Wurzelverzeichnis / und dem Home-Verzeichnis /root.

Shebang: Die erste Zeile eines Skripts, #!/usr/bin/env bash oder #!/bin/bash, die dem Kernel sagt, welcher Interpreter das Skript ausführen soll.

Shell: Programm, das deine Befehle entgegennimmt, interpretiert und Programme startet. Bash, zsh, fish sind Shells. Das Terminal ist nur das Fenster, in dem die Shell läuft.

Snapshot: Gespeicherter Zustand einer VM, zu dem du jederzeit zurückkehren kannst. Vor jedem Experiment anlegen.

stdin, stdout, stderr: Die drei Standardkanäle jedes Prozesses: Eingabe (0), Ausgabe (1) und Fehlerausgabe (2). Umleitungen und Pipes arbeiten mit diesen Nummern.

sudo: Führt einen einzelnen Befehl mit Root-Rechten aus, nach Eingabe des eigenen Passworts. Wer darf, steht in /etc/sudoers und in der Gruppe sudo.

Symlink (symbolischer Link): Datei, die nur auf einen anderen Pfad zeigt, wie eine Verknüpfung. ln -s ziel name. Zeigt das Ziel nicht mehr, ist der Link kaputt (dangling).

systemd: Der erste Prozess beim Start (PID 1) und das System, das Dienste, Timer, Mounts und Logs verwaltet. Bedient mit systemctl und journalctl.

Target: Gruppe von Units in systemd, die einen Systemzustand beschreibt, etwa multi-user.target (Server ohne GUI) oder graphical.target. Ersetzt die alten Runlevel.

Terminal: Ursprünglich ein Gerät mit Bildschirm und Tastatur, heute ein Programm (Terminal-Emulator), das Text ein- und ausgibt und darin eine Shell startet.

Timer: systemd-Unit, die eine andere Unit zeitgesteuert startet. Die moderne Alternative zu cron, mit Log im Journal. systemctl list-timers.

UID: User ID, die Nummer eines Benutzers. root hat 0, Systembenutzer haben kleine Nummern, normale Benutzer ab 1000. Steht in /etc/passwd.

Unit: Ein Objekt, das systemd verwaltet, beschrieben in einer Datei: .service (Dienst), .timer, .mount, .target. Eigene Units liegen in /etc/systemd/system/.

Variable: Benannter Speicherplatz in der Shell: name=wert setzt, $name liest. Ohne export sieht sie nur die aktuelle Shell.

Virtuelle Maschine (VM): Ein vollständiger simulierter Rechner mit eigenem Kernel, der als Gast auf einem Host läuft. Die lokale VM und die Proxmox-VM im Kurs sind solche Gäste.

Volume: Beständiger Speicher für Container. Container sind wegwerfbar, Daten in einem Volume überleben docker compose down und neue Images.

Wildcard: Platzhalter in Dateinamen: * beliebig viele Zeichen, ? genau eines, [a-z] eines aus der Menge. Die Shell ersetzt sie vor dem Aufruf des Befehls.

Working Directory (Arbeitsverzeichnis): Das Verzeichnis, in dem du dich gerade befindest. pwd zeigt es, cd ändert es, relative Pfade beziehen sich darauf.