Andreas Moor

Linux Systemadministration

Linux Essentials 2.1 (Lektion 1) – Die Kommandozeile verstehen: Dein Schlüssel zur Macht

Grafische Oberflächen sind bequem, aber in Admin-, DevOps- und SRE-Jobs ist die Shell das präziseste Werkzeug: skriptbar, reproduzierbar, remote-tauglich. Diese Lektion bündelt die Grundlagen – inklusive der integrierten Übungsantworten – und macht dich fit für die Linux-Essentials-Prüfung.

Shells & Prompt lesen

Unter Linux dominieren Bash, zsh, ksh sowie (t)csh; in Prüfung & Praxis triffst du vor allem die Bash. Die Eingabeaufforderung (Prompt) zeigt, wer auf welchem Host wo arbeitet und mit welchen Rechten:

carol@mycomputer:~$   # User (Debian/Ubuntu)
root@mycomputer:~#    # root
[dave@mycomputer ~]$  # User (RHEL/CentOS)
  • ~ steht für $HOME, $ = Nutzer, # = root.
  • Hostname anzeigen/setzen: hostname.

Anatomie einer Befehlszeile

Schema: Befehl [Option(en)] [Argument(e)]

# Beispiele (mit Lösung)
ls -l /etc     # Befehl=ls, Option=-l, Argument=/etc
ls -l -a       # Befehl=ls, Optionen=-l -a, Argumente=n/a
cd /home/user  # Befehl=cd, Argument=/home/user

Kurzoptionen lassen sich bündeln (-al), Langoptionen sind oft gleichwertig (-l--format=long). Fast jedes Tool erklärt sich via --help und Manpage.

Builtins vs. externe Befehle

Builtins (Teil der Shell) wie cd, exit, echo sind schnell und verfügbar, externe Befehle (Binär/Skript) wie cat, man liegen als Dateien im System. Prüfen mit type:

type cd    # Shell-Builtin
type cat   # externes Programm
type exit  # Shell-Builtin

Quoting korrekt anwenden

Sobald Leer-/Sonderzeichen oder Variablen auftauchen, entscheidet Quoting.

  • Doppelte Anführungszeichen "…": schützen fast alles, lassen aber $, \, $(…)/`…` aktiv.
echo "I am $USER"      # Variable wird expandiert
touch "new file"       # genau 1 Datei: "new file"
  • Einfache Anführungszeichen '…': geben alles wörtlich aus.
echo 'I am $USER'      # Ausgabe: I am $USER (ohne Expansion)
  • Escape \: hebt die Sonderbedeutung des nächsten Zeichens auf.
echo \$USER            # Ausgabe: $USER

Übungslösungen integriert:

  • echo "$HOME is my home directory"/home/user is my home directory;
  • touch "$USER" erstellt eine Datei <dein-username>;
  • touch 'touch' erzeugt eine Datei namens touch.

Mini-Automatisierung: Brace & Globs

Ohne Skript schon produktiv:

# 5 nummerierte Dateien (Brace Expansion)

touch game{1..5}
ls

# game1 game2 game3 game4 game5

# passendes Löschen (Globs)

rm game?             # genau die 5 Dateien (ein Zeichen am Ende)

Befehle interagieren lassen

Neben Sequenzierung (;) sind wichtig (Vorschau auf spätere Lektionen):

  • Pipes |: Ausgabe → Eingabe
  • Umleitungen >/>>/<
  • Kommandoersetzung $(…)
  • Logische Operatoren && (nur bei Erfolg), || (bei Fehlschlag)
  • Subshells ( … ) für isolierte Umgebungen

Warum das direkt Job-Impact hat

  • Reproduzierbarkeit: Befehle & Optionen sind dokumentier- und versionierbar.
  • Sicherheit: korrektes Quoting verhindert destruktive Expansions.
  • Portabilität & Tempo: Builtins sind schnell; externe Tools gezielt einsetzen.
  • Remote-first: SSH + CLI funktionieren in VMs, Containern und K8s-Pods.

Merkliste

  • Struktur: Befehl – Option(en) – Argument(e)
  • Prompt: user@host:~$ vs. root@host:~#
  • Builtins vs. extern: prüfen mit type
  • Quoting: "…" (Variablen aktiv), '…' (wörtlich), \ (ein Zeichen)
  • Expansion: file{1..5}, rm file?
  • Verkettung: |, >, $(…), &&, ||

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert