Unix-Betriebssysteme: Grundlagen, Kommandozeilen und Werkzeuge für Linux, macOS & BSD

Unix ist ein echtes IT-Urgestein – und dennoch topmodern. Was in den 1970er Jahren als Multiuser- und Multitasking-System begann, erfüllt auch heute höchste Anforderungen an Cloud, KI und IoT. Dank kontinuierlicher Weiterentwicklung bleiben die bewährten Konzepte aktuell und leistungsfähig. In diesem Beitrag erhalten Sie einen Einblick in die Grundlagen, die Arbeit mit der Kommandozeile sowie essenzielle Werkzeuge für Linux, macOS und BSD.

Autor/in Renato Testa
Datum 27.02.2025
Lesezeit 7 Minuten

Offenheit, transparente Schnittstellen und gut dokumentierter Quellcode machen Unix auch nach über 50 Jahren zu einer verlässlichen Basis für innovative IT-Lösungen. Unixoide Systeme folgen alle dem gleichen Prinzip: Um auf Linux-, macOS- oder BSD-Systemen effizient zu arbeiten, werden die Shell und Kommandos benutzt.

Das Unix-Prinzip erklärt

Die Unix-Community

Unixioide Systeme – speziell Linux, BSD, OpenSolaris – werden von einer eingeschworenen Community weiterentwickelt, welche eine Kultur pflegt. Einersetit geht es  dabei darum, wie  die Software entwickelt und betrieben wird und andererseits wie miteinander kommuniziert und zusammengearbeitet wird. Proprietäres Gärtlidenken ist Unix-Fachpersonen fremd.

Das Unix-Design

Unix wurde als reines Multiuser/Multitasking-System entwickelt. Somit ist Security, gegenseitiger Ausschluss, von allem Anfang an integriert. Benutzer A kann nicht per se auf die Dateien von Benutzer B zugreifen. Prozess A kann nicht auf die Ressourcen von Prozess B oder des Systems zugreifen. Dieses Prinzip wurde seit über 50 Jahren stetig weiterentwickelt.

Transparenz dank Open-Source

Die meisten unixoiden Systeme sind komplett im Source-Code verfügbar. Alles kann einfach nachvollzogen werden, um die Fehleranfälligkeit minimal zu halten, sogar binäre Programme können einfach debuggt werden. Log- oder Konfigurationsdateien sind Textdateien, welche mit gängigen Werkzeugen durchsucht und bearbeitet werden können. Netzwerkverbindungen lassen sich mit Werkzeugen wie tcpdump oder wireshark analysieren.

Die Zutaten für ein Unix-Kernel

Beim Start eines Unix-Systems lädt ein Bootloader den Kernel, also den Kern des Betriebssystems. Der Kernel erkennt die vorhandene Hardware (z. B. Prozessor, Speicher, Festplatten) und lädt die nötigen Module, damit diese Komponenten verwendet werden können.

Der Kern arbeitet in zwei Betriebsmodi:

  • Kernel-Mode: Operationen werden privilegiert ausgeführt, z.B. Zugriff auf eine Datei oder ein Subsystem
  • User-Mode: Daten werden aufbereitet, berechnet oder formatiert – allerdings ohne direkten Zugriff auf kritische Systembereiche.

Dieses Prinzip gewährleistet die Stabilität und Sicherheit des Systems.

Während der GNU/Linux-Kern fast alles über Module einbindet (Kernelspace), gehen macOS und BSD einen anderen Weg mit einem schlanken Kernel mit weniger Modulen. Dafür werden verschiedene Komponenten im Userspace behandelt.

Am Ende startet der Kern einen Service der das System weiter «hochfährt» oder initialisiert

Die INIT-Systeme

Da der Zugang zu den Komponenten nun verfügbar ist, werden Dienste gestartet um:

  • Den Zugang zu Daten – Dateisysteme, Datenbanken, Datensicherheit
  • Netzwerkdienste wie Web-, Email-, Internet, …
  • Lokale Dienste um die Integrität des Systems zu gewährleisten
  • Eine Benutzerschnittstelle um Zugang (lokal oder remote) zum System zu haben

Zum Einsatz kommen hier verschiedene INIT-Systeme:

  • systemd → Linux
  • launchd → macOS
  • init → BSD

Benutzerschnittstelle

Als Workstation kann die Benutzerschnittstelle graphisch sein, bei Server, IoT, embedded Systemen, Containern oder VMs ist diese jedoch textbasiert. Ein unixoides System kann immer mindestens auf der Konsole erreicht werden. Falls gewünscht, können die Systeme diese Benutzerschnittstelle auch über eine Netzwerkverbindung oder andere Schnittstellen und immer mit Authentifizierung anbieten.

Die Shell: Das Steuerzentrum eines Unix-Systems

Bei textbasierten Zugängen wird nach erfolgreicher Authentifizierung eine Shell gestartet. Die Shell ist ein «hochpotenter» Kommandointerpreter, dem eine Fülle von «hochpotenten» Kommandos zur Verfügung steht.

Die Macht der Unix-Kommandos

In Kombination mit der Shell können Kommandos eigentlich so ziemlich alles was es braucht, um unixoide Systeme zu:

  • Konfigurieren
  • Installieren
  • Administrieren
  • Überwachen
  • Aktualisieren
  • Automatisieren
  • Troubleshoot

Aufruf

rat@khamsin <UX-Konzepte> $ ls -l /tmp
  1. «rat@khamsin <UX-Konzepte> $» →
    Eine Eingabeaufforderung (Prompt) der Shell. Darin sind Informationen enthalten wie:
    Benutzer@Host <Akt. Verzeichnis> $
    Der ‘$’ zeigt an , dass es ein normaler Benutzer ist. Bei privilegierten Benutzer ist es ein ‘#’.
  2. «ls» → das Kommando welches ausgeführt werden soll
  3. «-l» → eine Option,’ls’ soll ein long listing erzeugen (mit vielen Details)
  4. «/tmp» → ls soll uns den Inhalt des ‘/tmp/’ Verzeichnisses anzeigen

Dieses Prinzip funktioniert für alle Kommandos auf allen unixoiden Systemen.

Das Prinzip der Unix-Kommandos

Kommandos sind kleine Programme (meist in C programmiert), die genau «ein Ding tun». Sie schreiben Output auf STDOUT (default Terminal), Fehlermeldungen auf STDERR (default ebenfalls Terminal) und lesen von STDINPUT (default Keyboard). Halten sich Kommandos an diese Regeln, können sie in der Shell beliebig kombiniert werden.

Unix-Kommandos verbinden

Verbinden wir in der Shell Kommandos mittels der Pipe (Zeichen |), verbindet die Shell den STDOUT des linken Kommandos mit dem STDIN des rechten:

rat@khamsin <UX-Konzepte> $ ls -a /tmp | wc -l

Der Output von «ls -a /tmp» wird als Input für «wc -l» verwendet. «wc -l» zählt in dieser Anwendung einfach wieviele Zeilen «ls -a tmp» produziert hat. Die resultierende Zahl bedeutet die Anzahl der Dateien und Verzeichnisse in «/tmp».

Die richtigen Werkzeuge

Neben Kommandos steht dem Anwender eine riesige Auswahl an sehr mächtigen Werkzeugen zur Verfügung. Diese Werkzeuge arbeiten mit den gleichen Standard- Kanälen (STDIN, STDOUT und STDERR) wie die Kommandos.
Die Wurzeln vieler dieser Werkzeuge liegen in den 1970er Jahren auf den ersten UNIX-Versionen.

Werkzeuge? Ein ganzer Werkzeugkasten!

Mit Werkzeugen können Streams und Datenströme bearbeitet werden. Ein Stream kann eine Datei sein oder der Output eines Kommandos.

Beispiel: 

rat@khamsin <UX-Konzepte> $ grep '^rat:' /etc/passwd

rat:x:1000:1000:Renato Testa:/home/rat:/bin/bash

Im obigen Beispiel durchsucht «grep» die Datei «/etc/passwd» nach Zeilen, welche mit «rat:» beginnen.

rat@khamsin <UX-Konzepte> $ ps aux | grep 'bash$'

rat 261791 0.0 0.0 224376 5600 pts/2 Ss+ Jan07 0:00 bash

rat 262430 0.0 0.0 224376 5280 pts/4 Ss Jan07 0:00 bash

rat 1721126 0.0 0.0 224228 5440 pts/1 Ss 10:47 0:00 -bash

In diesem Beispiel durchsucht «grep» den von «ps aux» erzeugten Stream nach Zeilen, die mit «bash» enden.

Mit «grep» haben wir aber nur eines von vielen Werkzeugen erwähnt, aber immerhin eines, welches wir sehr häufig anwenden.

Eigene Werkzeuge erstellen

Mittels Shell-Scripten lassen sich mit wenig Aufwand eigene Werkzeuge erstellen, um unsere spezifischen oder immer wiederkehrenden Jobs zuverlässig und effizient zu erledigen.

Kreativität und Spass dank Unix-Werkzeugen

Ein ebenfalls wichtiges Prinzip ist Spass bei der Arbeit. Wenn wir den Anspruch haben, dass uns die Arbeit auch Spass machen soll, brauchen wir die passenden Werkzeuge dazu. Mit einem unixoiden System haben wir eine komplett eingerichtete Werkstatt und können unserer Kreativität freien Lauf lassen.


Autor/in

Renato Testa

Renato Testa ist seit 25 Jahren in der IT und im Unix-Umfeld tätig. Mitte der 90er-Jahre führte er die ersten Linux-Kurse  bei Digicomp durch. Neben der Systemprogrammierung ist vor allem Systemadministration von Unix/Linux-Systemen sein Hauptgebiet. Im Rahmen verschiedener OSS-Events bei Digicomp hielt er Referate zu Themen wie HA-Firewalls, OpenSolaris oder Linux-Cluster. Seit 2014 ist sein Hauptthema DevOps in verschiedenen Cloud-Projekten. Renato Testa ist seit 1994 Trainer bei Digicomp und ist im Besitze der SVEB I Zertifizierung.

Kommentar