# 1.1 Linux-Grundlagen

Linux ist ein freies,
unixähnliches Betriebssystem,
das besonders häufig auf Servern,
Netzwerkgeräten,
Cloud-Systemen,
Containern,
Embedded-Systemen
und Entwicklerarbeitsplätzen eingesetzt wird.

Für Fachinformatiker Systemintegration ist Linux wichtig,
weil viele Serverdienste,
Automatisierungen,
Container,
Firewalls,
NAS-Systeme,
Cloud-Umgebungen
und Webdienste auf Linux basieren.

Merksatz:

    Linux ist besonders stark im Serverbetrieb,
    bei Automatisierung,
    Netzwerkdiensten
    und stabilen Systemumgebungen.

---

**Lernziele**

Nach dieser Seite solltest du erklären können:

    - was Linux ist
    - was der Linux-Kernel ist
    - was eine Linux-Distribution ist
    - was eine Shell ist
    - was ein Terminal ist
    - was der Unterschied zwischen Root und normalen Benutzern ist
    - warum Linux im Serverbereich wichtig ist
    - welche Grundbegriffe in der Prüfung häufig vorkommen

---

**Was ist Linux?**

Linux ist im engeren Sinn der **Kernel** eines Betriebssystems.

Der Kernel ist der zentrale Teil,
der zwischen Hardware und Software vermittelt.

Im Alltag meint man mit „Linux“ meistens ein komplettes Betriebssystem,
bestehend aus:

    - Linux-Kernel
    - Systemprogrammen
    - Shell
    - Paketverwaltung
    - Diensten
    - Bibliotheken
    - Benutzerprogrammen
    - optional grafischer Oberfläche

Beispiel:

    Ubuntu,
    Debian,
    Fedora,
    Arch Linux,
    openSUSE,
    Rocky Linux
    oder Alpine Linux

sind keine unterschiedlichen Kernel,
sondern unterschiedliche Linux-Distributionen.

Merksatz:

    Linux ist streng genommen der Kernel.
    Im Alltag meint man mit Linux meist die ganze Distribution.

---

**Kernel**

Der Kernel ist der Kern des Betriebssystems.

Er verwaltet unter anderem:

    - Prozesse
    - Arbeitsspeicher
    - Dateisysteme
    - Gerätetreiber
    - Netzwerkzugriffe
    - Rechte und Systemaufrufe
    - Kommunikation zwischen Hardware und Programmen

Programme greifen nicht direkt unkontrolliert auf die Hardware zu.
Sie nutzen Funktionen des Betriebssystems,
die vom Kernel bereitgestellt werden.

Beispiel:

    Ein Webserver schreibt eine Logdatei.
    Das Programm schreibt nicht direkt auf die Festplatte,
    sondern nutzt Betriebssystemfunktionen,
    die vom Kernel verarbeitet werden.

Merksatz:

    Der Kernel verbindet Hardware und Software.

---

**Linux-Distribution**

Eine Linux-Distribution ist ein vollständiges Betriebssystempaket
auf Basis des Linux-Kernels.

Eine Distribution enthält typischerweise:

    - Linux-Kernel
    - Paketverwaltung
    - Standardprogramme
    - Systemdienste
    - Konfigurationsstruktur
    - Installationssystem
    - Sicherheitsupdates
    - Dokumentation
    - optional grafische Oberfläche

Beispiele:

| Distribution | Typischer Einsatz |
|---|---|
| Debian | Server, stabile Systeme |
| Ubuntu | Desktop, Server, Cloud |
| Fedora | moderne Linux-Technologien |
| Rocky Linux | Enterprise-Server |
| openSUSE | Desktop und Server |
| Arch Linux | sehr individuell, fortgeschritten |
| Alpine Linux | kleine Container-Images |
| Kali Linux | Security- und Testumgebungen |

Wichtig:

    Die Distribution bestimmt,
    wie Pakete installiert werden,
    wo bestimmte Konfigurationsdateien liegen
    und wie Updates bereitgestellt werden.

Merksatz:

    Distribution = Linux-Kernel plus Systemumgebung.

---

**Warum gibt es verschiedene Distributionen?**

Distributionen unterscheiden sich zum Beispiel bei:

    - Paketverwaltung
    - Update-Strategie
    - Stabilität
    - Aktualität der Software
    - Zielgruppe
    - Sicherheitskonzept
    - Standardkonfiguration
    - Supportdauer
    - Einsatzgebiet

Beispiele:

    Debian ist sehr stabil
    und wird häufig für Server genutzt.

    Ubuntu ist weit verbreitet
    und wird auf Desktop,
    Servern
    und in der Cloud genutzt.

    Alpine ist sehr klein
    und wird oft für Container verwendet.

    Rocky Linux orientiert sich am Enterprise-Server-Umfeld.

Merksatz:

    Nicht jede Linux-Distribution verfolgt dasselbe Ziel.

---

**CLI und GUI**

Linux kann mit grafischer Oberfläche oder über die Kommandozeile bedient werden.

GUI bedeutet:

    Graphical User Interface

Also:

    grafische Benutzeroberfläche

CLI bedeutet:

    Command Line Interface

Also:

    Kommandozeile

Im Serverbereich wird Linux sehr häufig über die Kommandozeile verwaltet,
weil sie:

    - ressourcenschonend ist
    - gut automatisierbar ist
    - per SSH erreichbar ist
    - exakt dokumentierbare Befehle erlaubt
    - auf Servern ohne Monitor funktioniert

Merksatz:

    GUI ist grafisch.
    CLI ist textbasiert.
    Server werden häufig über CLI administriert.

---

**Terminal und Shell**

Terminal und Shell werden oft verwechselt.

**Terminal**

Das Terminal ist das Programm oder die Umgebung,
in der Befehle eingegeben werden.

Beispiele:

    Terminal-App

    SSH-Sitzung

    Konsolenfenster

    virtuelle Konsole

**Shell**

Die Shell interpretiert die eingegebenen Befehle
und führt sie aus.

Bekannte Shells:

    bash

    zsh

    sh

    fish

Beispiel:

    Du gibst im Terminal einen Befehl ein.
    Die Shell verarbeitet diesen Befehl.

Merksatz:

    Terminal = Eingabefenster.
    Shell = Befehlsinterpreter.

---

**Bash**

Bash steht für:

    Bourne Again Shell

Die Bash ist eine der bekanntesten Shells unter Linux.

Sie kann:

    - Befehle ausführen
    - Variablen verwenden
    - Skripte ausführen
    - Bedingungen prüfen
    - Schleifen nutzen
    - Ausgaben umleiten
    - Befehle verketten

Beispielhafte Bash-Befehle:

    pwd

    ls

    cd

    cp

    mv

    rm

    grep

    find

    chmod

    systemctl

Merksatz:

    Bash ist Shell und Skriptsprache zugleich.

---

**Prompt**

Der Prompt ist die Eingabeaufforderung der Shell.

Er zeigt häufig Informationen wie:

    - Benutzername
    - Hostname
    - aktuelles Verzeichnis
    - Benutzerrolle

Beispiel:

    felix@server:~$

Bedeutung:

| Teil | Bedeutung |
|---|---|
| felix | Benutzer |
| server | Hostname |
| ~ | Home-Verzeichnis |
| $ | normaler Benutzer |

Ein Prompt mit Raute zeigt häufig Root-Rechte an:

    root@server:~#

Wichtig:

    # bedeutet oft:
    Root-Shell oder administrative Rechte.

Merksatz:

    $ steht meist für normalen Benutzer.
    # steht häufig für Root.

---

**Root**

Root ist der administrative Hauptbenutzer unter Linux.

Root darf grundsätzlich alles:

    - Dateien ändern
    - Benutzer verwalten
    - Dienste starten und stoppen
    - Systemkonfiguration ändern
    - Software installieren
    - Rechte verändern
    - Systemdateien löschen

Das ist mächtig,
aber auch gefährlich.

Ein falscher Befehl als Root kann das System beschädigen.

Beispiel:

    Ein Löschbefehl mit Root-Rechten kann auch wichtige Systemdateien entfernen.

Merksatz:

    Root darf fast alles.
    Deshalb Root-Rechte nur bewusst verwenden.

---

**Normale Benutzer**

Normale Benutzer haben eingeschränkte Rechte.

Sie dürfen typischerweise:

    - eigene Dateien bearbeiten
    - eigene Prozesse starten
    - Programme ausführen
    - im eigenen Home-Verzeichnis arbeiten

Sie dürfen normalerweise nicht:

    - Systemdateien beliebig ändern
    - fremde Dateien lesen
    - Dienste systemweit verändern
    - Benutzer anlegen
    - Pakete installieren

Vorteil:

    Fehler oder Angriffe haben weniger Auswirkungen.

Merksatz:

    Normale Benutzer schützen das System vor unnötigen Risiken.

---

**sudo**

sudo bedeutet sinngemäß:

    führe einen Befehl mit erhöhten Rechten aus

Mit sudo kann ein berechtigter Benutzer einzelne administrative Befehle ausführen,
ohne dauerhaft als Root angemeldet zu sein.

Beispiel:

    sudo systemctl restart nginx

Bedeutung:

    Der Dienst nginx wird mit administrativen Rechten neu gestartet.

Vorteile:

    - keine dauerhafte Root-Sitzung nötig
    - bessere Nachvollziehbarkeit
    - gezielte Rechtevergabe möglich
    - weniger Risiko durch versehentliche Root-Befehle

Merksatz:

    sudo erlaubt gezielte administrative Befehle.

---

**Linux im Serverbetrieb**

Linux wird häufig als Serverbetriebssystem genutzt.

Typische Serveraufgaben:

    - Webserver
    - Datenbankserver
    - Dateiserver
    - DNS-Server
    - DHCP-Server
    - Mailserver
    - Container-Host
    - Firewall
    - VPN-Server
    - Monitoring-System
    - Backup-Server

Gründe für Linux im Serverbereich:

    - stabil
    - ressourcenschonend
    - gut automatisierbar
    - viele Serverdienste verfügbar
    - starke Netzwerkfunktionen
    - gute Fernadministration per SSH
    - weit verbreitet in Cloud und Containern

Merksatz:

    Linux ist ein Standardbetriebssystem im Serverbereich.

---

**Linux und Open Source**

Linux ist eng mit Open Source verbunden.

Open Source bedeutet:

    Der Quellcode ist offen einsehbar
    und kann je nach Lizenz genutzt,
    verändert
    und weitergegeben werden.

Vorteile:

    - Transparenz
    - große Community
    - Anpassbarkeit
    - viele freie Werkzeuge
    - schnelle Fehleranalyse möglich
    - breite Nutzung in Bildung und Unternehmen

Wichtig:

    Open Source bedeutet nicht automatisch kostenlos in jedem geschäftlichen Zusammenhang.
    Lizenzen und Supportmodelle müssen beachtet werden.

Merksatz:

    Open Source bedeutet offener Quellcode,
    nicht automatisch regelfrei.

---

**Linux und Dateisystem-Hierarchie**

Linux nutzt einen hierarchischen Verzeichnisbaum.

Der oberste Punkt ist:

    /

Das nennt man Root-Verzeichnis.

Wichtige Verzeichnisse:

| Verzeichnis | Bedeutung |
|---|---|
| / | Wurzel des Dateisystems |
| /home | Benutzerverzeichnisse |
| /root | Home-Verzeichnis des Root-Benutzers |
| /etc | Konfigurationsdateien |
| /var | veränderliche Daten, Logs, Spool |
| /tmp | temporäre Dateien |
| /usr | Programme und Bibliotheken |
| /bin | wichtige Programme |
| /sbin | Systemprogramme |
| /dev | Gerätedateien |
| /mnt | temporäre Mountpoints |
| /media | Wechselmedien |
| /proc | Kernel- und Prozessinformationen |

Diese Verzeichnisse werden auf der nächsten Seite genauer erklärt.

Merksatz:

    Unter Linux beginnt alles bei /.

---

**Linux und Dienste**

Viele Serverfunktionen laufen unter Linux als Dienste.

Ein Dienst ist ein Programm,
das im Hintergrund läuft
und eine bestimmte Aufgabe erfüllt.

Beispiele:

    Webserver

    Datenbankserver

    SSH-Server

    DNS-Server

    Backupdienst

    Monitoring-Agent

Dienste werden auf vielen Linux-Systemen mit systemd verwaltet.

Typische Befehle:

    systemctl status dienstname

    systemctl start dienstname

    systemctl stop dienstname

    systemctl restart dienstname

    systemctl enable dienstname

    systemctl disable dienstname

Merksatz:

    Dienste laufen im Hintergrund
    und stellen Funktionen bereit.

---

**Linux und Prozesse**

Ein Prozess ist ein laufendes Programm.

Beispiele:

    Shell

    Webserver-Prozess

    Datenbankprozess

    Editor

    Backupskript

Jeder Prozess hat unter Linux eine Prozess-ID.

Diese nennt man:

    PID

Prozesse können angezeigt,
überwacht
und beendet werden.

Typische Befehle:

    ps

    top

    htop

    kill

Merksatz:

    Prozess = laufendes Programm.

---

**Linux und Netzwerk**

Linux bringt viele Werkzeuge für Netzwerkdiagnose mit.

Typische Netzwerkbefehle:

| Befehl | Zweck |
|---|---|
| ip addr | IP-Adressen anzeigen |
| ip route | Routing anzeigen |
| ping | Erreichbarkeit per ICMP testen |
| ss | Ports und Verbindungen anzeigen |
| curl | HTTP/HTTPS prüfen |
| dig | DNS prüfen |
| nslookup | DNS prüfen |
| ssh | sichere Fernadministration |

Für FISI ist das besonders wichtig,
weil Linux häufig im Server,
Container-
und Cloud-Umfeld genutzt wird.

Merksatz:

    Linux ist sehr stark bei Netzwerkdiagnose und Serverbetrieb.

---

**Linux und Paketverwaltung**

Software wird unter Linux meistens über Paketverwaltungen installiert.

Beispiele:

| Distribution | Paketverwaltung |
|---|---|
| Debian / Ubuntu | apt |
| Fedora | dnf |
| Rocky Linux | dnf |
| openSUSE | zypper |
| Arch Linux | pacman |
| Alpine Linux | apk |

Paketverwaltungen können:

    - Software installieren
    - Software entfernen
    - Updates einspielen
    - Abhängigkeiten verwalten
    - Paketquellen nutzen
    - Versionsstände prüfen

Merksatz:

    Paketverwaltung installiert Software kontrolliert aus Paketquellen.

---

**Linux und Konfiguration**

Viele Linux-Programme werden über Textdateien konfiguriert.

Häufige Orte:

    /etc

    /etc/systemd

    /etc/ssh

    /etc/nginx

    /etc/fstab

Vorteile:

    - gut dokumentierbar
    - per SSH änderbar
    - versionierbar
    - automatisierbar
    - auch ohne GUI nutzbar

Wichtig:

    Änderungen an Konfigurationsdateien sollten nachvollziehbar,
    vorsichtig
    und möglichst mit Backup erfolgen.

Merksatz:

    Linux-Konfiguration liegt häufig in Textdateien.

---

**Linux und Logs**

Linux schreibt viele Ereignisse in Logdateien oder das Journal.

Logs helfen bei:

    - Fehlersuche
    - Sicherheitsanalyse
    - Dienstproblemen
    - Loginproblemen
    - Startproblemen
    - Netzwerkproblemen

Typische Werkzeuge:

    journalctl

    dmesg

    tail

    grep

Typische Orte:

    /var/log

    systemd-journal

Merksatz:

    Logs sind bei Linux-Fehlersuche zentral.

---

**Linux und Automatisierung**

Linux eignet sich sehr gut für Automatisierung.

Typische Mittel:

    - Shell-Skripte
    - Cronjobs
    - systemd Timer
    - SSH
    - Paketmanager
    - Konfigurationsdateien
    - Pipes und Umleitungen

Beispiele:

    Backups automatisch starten

    Logs auswerten

    Dienste überwachen

    Dateien regelmäßig synchronisieren

    Systeme aktualisieren

Merksatz:

    Linux wird stark über Skripte und Automatisierung verwaltet.

---

**Typische Linux-Begriffe**

| Begriff | Bedeutung |
|---|---|
| Kernel | Kern des Betriebssystems |
| Distribution | vollständiges Linux-Systempaket |
| Shell | Befehlsinterpreter |
| Terminal | Eingabeumgebung für Befehle |
| Root | administrativer Hauptbenutzer |
| sudo | Befehl mit erhöhten Rechten ausführen |
| Prozess | laufendes Programm |
| Dienst | Hintergrundprogramm mit Aufgabe |
| Paketmanager | installiert und aktualisiert Software |
| Repository | Paketquelle |
| Log | Protokolldatei oder Ereignisprotokoll |
| Mount | Einhängen eines Dateisystems |
| Pfad | Ort einer Datei oder eines Verzeichnisses |
| Home-Verzeichnis | persönlicher Benutzerbereich |

---

**Typische Prüfungsfragen**

| Frage | Kurzantwort |
|---|---|
| Was ist Linux im engeren Sinn? | der Kernel |
| Was ist eine Distribution? | Linux-Kernel plus Systemumgebung |
| Was macht der Kernel? | verwaltet Hardwarezugriffe und Systemressourcen |
| Was ist eine Shell? | Befehlsinterpreter |
| Was ist ein Terminal? | Eingabeumgebung für Befehle |
| Was ist Root? | administrativer Hauptbenutzer |
| Was macht sudo? | führt Befehle mit erhöhten Rechten aus |
| Warum wird Linux auf Servern genutzt? | stabil, automatisierbar, ressourcenschonend |
| Wo liegen viele Konfigurationen? | unter /etc |
| Wo liegen viele Logs? | unter /var/log oder im Journal |

---

**Typische Prüfungsfallen**

| Falle | Richtig denken |
|---|---|
| Linux immer als komplette Distribution bezeichnen | streng genommen ist Linux der Kernel |
| Terminal und Shell gleichsetzen | Terminal ist Umgebung, Shell interpretiert Befehle |
| Root dauerhaft nutzen | besser gezielt sudo verwenden |
| GUI für Server voraussetzen | viele Linux-Server laufen ohne GUI |
| Paketmanager mit App Store gleichsetzen | Paketmanager verwaltet Pakete und Abhängigkeiten |
| Logs ignorieren | Logs sind zentral für Fehlersuche |
| Konfiguration nur grafisch erwarten | Linux nutzt häufig Textdateien |
| Open Source mit automatisch kostenlos gleichsetzen | Lizenz und Support beachten |

---

**IHK-sichere Kurzformulierung**

Linux ist im engeren Sinn der Kernel eines Betriebssystems. Im Alltag bezeichnet Linux meist eine vollständige Distribution, also ein System aus Linux-Kernel, Systemprogrammen, Shell, Paketverwaltung, Diensten und Benutzerprogrammen. Der Kernel verwaltet zentrale Ressourcen wie Prozesse, Arbeitsspeicher, Dateisysteme, Treiber und Netzwerkzugriffe. Eine Shell ist ein Befehlsinterpreter, der Eingaben verarbeitet und Befehle ausführt. Das Terminal ist die Umgebung, in der diese Befehle eingegeben werden. Root ist der administrative Hauptbenutzer, während sudo einzelnen berechtigten Benutzern erlaubt, gezielt Befehle mit erhöhten Rechten auszuführen. Linux wird im Serverbereich häufig eingesetzt, weil es stabil, ressourcenschonend, gut automatisierbar und sehr gut per SSH administrierbar ist.

---

**Merksätze**

    Linux ist streng genommen der Kernel.

    Im Alltag meint Linux oft die ganze Distribution.

    Kernel verbindet Hardware und Software.

    Distribution = Kernel plus Systemumgebung.

    Terminal = Eingabeumgebung.

    Shell = Befehlsinterpreter.

    Bash ist eine bekannte Shell.

    Root ist der administrative Hauptbenutzer.

    sudo führt einzelne Befehle mit erhöhten Rechten aus.

    Normale Benutzer begrenzen Risiken.

    Linux-Server laufen häufig ohne grafische Oberfläche.

    CLI ist gut automatisierbar.

    SSH ist wichtig für Fernadministration.

    Unter Linux beginnt der Verzeichnisbaum bei /.

    /etc enthält viele Konfigurationsdateien.

    /var/log enthält viele Logdateien.

    systemd verwaltet viele Dienste.

    Prozess = laufendes Programm.

    Dienst = Hintergrundprogramm mit Aufgabe.

    Paketmanager verwalten Software und Abhängigkeiten.

    Logs sind zentral für Fehlersuche.

    Linux ist stark im Serverbetrieb,
    bei Netzwerkdiensten,
    in Containern
    und in der Cloud.