Linux von Grund auf lernen: ein Plan von der ersten Kommandozeilen-Eingabe bis zur Serveradministration
Linux von Grund auf lernen gelingt am besten schichtweise: zuerst Terminal und Dateisystem, dann Benutzer und Rechte, Bash-Skripte, Pakete, Prozesse und systemd, danach Festplatten, Logs, Netzwerk, SSH und Serversicherheit. In jeder Etappe braucht es Übung auf einer eigenen virtuellen Maschine oder einem günstigen VPS; das Ziel ist ein selbst eingerichteter und abgesicherter Server mit laufendem Dienst.
Linux von Grund auf zu lernen ist einfacher, als es scheint, wenn man die richtige Reihenfolge einhält und sofort übt. Der größte Fehler von Einsteigern: Man liest über Befehle, ohne sie einzutippen, oder springt zu Docker und Kubernetes, ohne zu verstehen, was ein Prozess und Rechte sind. Im Folgenden finden Sie einen Plan mit neun Etappen: was Sie lernen, was Sie üben und woran Sie erkennen, dass eine Etappe abgeschlossen ist.
Als grober Richtwert gelten zwei bis vier Monate bei einer Stunde Lernen am Tag, das Tempo ist aber bei jedem anders. Wichtiger als die Geschwindigkeit ist, dass Sie nach jeder Etappe etwas mit eigenen Händen tun können.
Etappe 0. Richten Sie Ihre Übungsumgebung ein
Linux lernt man auf Linux. Die Möglichkeiten, von einfach bis realitätsnah:
- WSL2 unter Windows — ein Ubuntu-Terminal in wenigen Minuten. Gut für Befehle und Skripte, aber systemd und Netzwerk verhalten sich dort nicht wie auf einem echten Server.
- Virtuelle Maschine (VirtualBox, VMware, UTM auf dem Mac) mit Ubuntu Server oder Debian. Sie können dort ohne Folgen Dinge kaputt machen und auf Snapshots zurückgehen.
- Ein günstiger VPS bei einem Cloud-Anbieter. Ein echter Server mit öffentlicher IP ist der beste Übungsplatz für die Etappen zu Netzwerk und Sicherheit.
Zum Einstieg eignen sich Ubuntu Server oder Debian: Dafür gibt es die meiste Dokumentation und die meisten Antworten auf Fragen. Eine grafische Oberfläche brauchen Sie nicht: Server werden über das Terminal verwaltet, gewöhnen Sie sich also vom ersten Tag an daran.
Etappe 1. Terminal und Dateisystem
Ziel ist, sich im System sicher zu bewegen und ohne Maus mit Dateien zu arbeiten.
- Navigation:
pwd,ls -la,cd, absolute und relative Pfade,~,.und... - Dateien:
cp,mv,rm,mkdir -p,touch, Anzeige mitcat,less,head,tail -f. - Suche:
find,which,locate. - Hilfe:
man,--help. Man-Seiten lesen zu können ist eine Fähigkeit, die sich ein Leben lang auszahlt. - Verzeichnisstruktur: was in
/etc,/var/log,/home,/usr,/proc,/devliegt; was Einhängen und Inodes sind. - Ein Texteditor im Terminal: zunächst
nano, danach die Grundbefehle vonvim— er ist auf fast jedem Server vorhanden.
Übung: Finden Sie alle .conf-Dateien in /etc, die in der letzten Woche geändert wurden (find /etc -name "*.conf" -mtime -7). Öffnen Sie /etc/os-release und ermitteln Sie die Version Ihres Systems. Sehen Sie nach, was das System in /var/log schreibt.
Etappe 2. Benutzer, Gruppen und Rechte
Rechte sind die Grundlage der Sicherheit unter Linux und die Quelle der Hälfte aller Fehler „Permission denied“.
- Die Ausgabe von
ls -llesen: Typ, Rechte, Besitzer, Gruppe. chmodin symbolischer und numerischer Form,chown,umask.- Spezielle Bits: SUID, SGID, Sticky Bit — und warum
/tmpfür alle beschreibbar ist, fremde Dateien dort aber nicht gelöscht werden können. - Benutzer und Gruppen:
useradd,usermod -aG,passwd, die Dateien/etc/passwd,/etc/shadow,/etc/group. sudo, die Regeln in sudoers und das Bearbeiten übervisudo.
Übung: Legen Sie zwei Benutzer und einen gemeinsamen Projektordner an, in dem beide Dateien erstellen können, andere aber nichts sehen. Tipp: eine Gruppe, chmod 2770 und SGID für die Vererbung der Gruppe.
Etappe 3. Bash und Textwerkzeuge
Administration bedeutet zu einem großen Teil, Text zu verarbeiten: Logs, Konfigurationen, Befehlsausgaben. In dieser Etappe wird das Terminal vom Befehlssatz zum Werkzeug.
- Umleitungen und Pipelines:
>,>>,2>&1,|,xargs. - Filter:
grep(mit regulären Ausdrücken),sort,uniq -c,wc,cut,sed,awk. - JSON und HTTP in der Konsole:
curlundjq. - Skripte: Shebang, Variablen, Anführungszeichen, Bedingungen
ifund[[ ]], Schleifen, Funktionen, Exitcodes,set -euo pipefail.
Übung: Zählen Sie mit einer einzigen Zeile die zehn IP-Adressen mit den meisten Anfragen im Log eines Webservers:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head
Schreiben Sie danach ein Skript, das ein Verzeichnis in ein Archiv mit Datum im Namen sichert, Archive löscht, die älter als sieben Tage sind, und bei einem Fehler einen Exitcode ungleich null zurückgibt.
Etappe 4. Pakete, Umgebung und Zeitplaner
- Paketmanager:
apt update,apt install,apt remove,apt search,dpkg -l. Auf RHEL-artigen Systemen —dnf. Verstehen Sie, was ein Repository ist und wozu Signaturschlüssel dienen. - Umgebungsvariablen:
env,export,PATH, die Dateien~/.bashrc,~/.profile,/etc/environment— und welche davon wann gelesen wird. - Zeitplanung:
crontab -e, die Syntax der fünf Felder und warum ein Befehl, der im Terminal funktioniert, in cron „nicht läuft“ (andere Umgebung und andererPATH).
Übung: Installieren Sie nginx aus dem Repository, fügen Sie Ihr Skriptverzeichnis dem PATH hinzu und richten Sie das Backup-Skript aus Etappe 3 so ein, dass es jede Nacht per cron läuft und seine Ausgabe in ein Protokoll schreibt.
Etappe 5. Prozesse und systemd
Hier beginnen Sie zu verstehen, was im System tatsächlich geschieht.
- Prozesse:
ps aux,top/htop, PID und PPID, Zustände, Prioritäten (nice), Signale undkill. - Last: Load Average, Speicher und Swap (
free -h), was ein „Prozess im Zustand D“ bedeutet. - Fehlersuche:
lsof— welche Dateien und Ports ein Prozess geöffnet hat;strace— welche Systemaufrufe er macht und wo er hängen bleibt. - systemd: Units,
systemctl status/start/enable, eine eigene Unit-Datei mitRestart=on-failure, Timer statt cron. - Logs:
journalctl -u,-f,-b,-p err, Rotation, rsyslog; Leistungsstatistiken mit sysstat (sar,iostat).
Übung: Richten Sie eine kleine Anwendung (mindestens python3 -m http.server) als systemd-Dienst unter einem eigenen Benutzer ein, beenden Sie den Prozess mit kill -9 und prüfen Sie, dass systemd ihn wieder gestartet hat. Finden Sie den Neustart-Eintrag im Journal.
Etappe 6. Festplatten, LVM und RAID
- Geräte und Partitionen:
lsblk,blkid,fdiskoderparted, die Dateisysteme ext4 und XFS,mkfs. - Einhängen:
mount,/etc/fstabmit UUIDs, Prüfung mitmount -a. - Speicherplatz:
df -h,df -i,du -sh, die Suche nach dem, was die Platte füllt. - LVM: physische Volumes, Volume-Gruppen, logische Volumes und das Vergrößern einer Partition ohne Stillstand.
- Software-RAID mit
mdadm— Verständnis der Stufen 0, 1, 5, 10 und der Tatsache, dass RAID kein Backup ist.
Übung: Fügen Sie einer virtuellen Maschine zwei Festplatten hinzu, richten Sie darauf LVM ein, erstellen Sie ein Volume, hängen Sie es über fstab ein und vergrößern Sie es danach mit lvextend -r.
Etappe 7. Netzwerk
- Das TCP/IP-Modell in dem Umfang, der für Fehlersuche nötig ist: IP, Maske, Gateway, Port, TCP und UDP.
- Befehle:
ip a,ip r,ss -tlnp,ping,traceroute/mtr,curl -v,nc. - DNS: wie die Auflösung funktioniert,
/etc/hosts,/etc/resolv.conf,dig,resolvectl. - Netzwerkkonfiguration Ihrer Distribution (netplan in Ubuntu, NetworkManager in anderen).
- Traffic-Mitschnitt:
tcpdumpfür Fälle, in denen alles andere nicht geholfen hat.
Übung: Finden Sie heraus, welcher Prozess auf jedem offenen Port Ihres Servers lauscht. Klären Sie, warum ein Dienst, der auf 127.0.0.1 lauscht, von außen nicht erreichbar ist, und beheben Sie das.
Etappe 8. Fernarbeit: SSH und Dateiübertragung
- SSH: Schlüssel (
ssh-keygen -t ed25519,ssh-copy-id), die Datei~/.ssh/config,ssh-agent, Portweiterleitung (ssh -L), ein Bastion-Host überProxyJump. - Kopieren:
scpundrsync -avz --delete— und warum rsync für die Synchronisation besser ist. - Netzwerkdateisysteme: NFS zwischen Linux-Servern, SMB (Samba) für den Austausch mit Windows.
Übung: Richten Sie auf einem VPS die Anmeldung nur per Schlüssel ein, beschreiben Sie sie in ~/.ssh/config unter einem kurzen Namen und richten Sie eine tägliche Synchronisation eines Verzeichnisses auf den Server mit rsync ein.
Etappe 9. Serversicherheit
- Firewall: das Prinzip „alles verbieten, was nicht erlaubt ist“,
ufwfür einfache Fälle,nftables— um zu verstehen, was unter der Haube passiert. fail2ban: Sperren einer IP nach einer Reihe fehlgeschlagener Anmeldungen, Prüfung mitfail2ban-client status sshd.- Konfiguration von sshd: Passwort-Anmeldung und Anmeldung als root verbieten.
- Sicherheitsupdates und ihre automatische Installation (unattended-upgrades in Debian und Ubuntu).
- GPG: Prüfung von Paket- und Dateisignaturen, Verschlüsselung von Backups.
Übung: Öffnen Sie in der Firewall nur die Ports 22, 80 und 443, aktivieren Sie fail2ban und sehen Sie nach einem Tag in seinen Status, wie viele Adressen bereits gesperrt sind.
Abschlussprojekt: Bauen Sie einen ganzen Server
Die beste Prüfung, ob Sie Linux wirklich gelernt haben, ist es, einen Server ohne Hilfestellung von Grund auf aufzubauen:
- Ein neuer VPS, Ihr eigener Benutzer mit sudo, Anmeldung per SSH-Schlüssel, Passwörter und root-Anmeldung deaktiviert.
- Firewall und fail2ban, automatische Sicherheitsupdates.
- Webserver und Anwendung als systemd-Dienst mit automatischem Neustart.
- Eine eigene Festplatte oder ein eigenes Volume für Daten, eingehängt über fstab.
- Backup nach Zeitplan (cron oder systemd-Timer) auf eine andere Maschine per rsync, mit Protokoll und Test der Wiederherstellung.
- Eine kurze Anleitung: wie man all das neu aufsetzt.
Wenn Sie diese Liste durchgehen und jeden Schritt erklären können, haben Sie die Grundlage für die Arbeit als Administrator oder DevOps-Ingenieur. Die natürlichen nächsten Schritte sind Container, Automatisierung der Konfiguration und Monitoring.
So lernen Sie effektiver
- Tippen Sie die Befehle selbst ein. Abgeschriebenes behält man nicht; Eingetipptes und die eigenen Fehler schon.
- Brechen und reparieren Sie. Beschädigen Sie in der virtuellen Maschine fstab oder die Rechte von
~/.sshund stellen Sie das System wieder her. Solche Erfahrung wird im Vorstellungsgespräch geschätzt. - Führen Sie Notizen. Ihr eigenes Befehlsheft mit Beispielen ist nützlicher als jeder fremde Spickzettel.
- Lesen Sie die Logs. Fast jedes Problem unter Linux erklärt das Protokoll — gewöhnen Sie sich an, dort zuerst nachzusehen.
Fazit
Die Antwort auf die Frage, wie man Linux von Grund auf lernt, lautet: schichtweise vorgehen — Terminal und Dateien, Rechte, Bash, Pakete, Prozesse und systemd, Festplatten, Netzwerk, SSH, Sicherheit — und in jeder Etappe eine praktische Aufgabe auf der eigenen Übungsumgebung lösen. Das Endziel ist, selbstständig einen Server mit laufendem Dienst aufzusetzen und abzusichern. Genau diesen Weg, von der Einführungsvorlesung bis zum Abschlussprojekt, geht unser Linux-Kurs auf der Plattform.
Häufige Fragen
Wie viel Zeit braucht man, um Linux von Grund auf zu lernen?
Bei etwa einer Stunde Lernen am Tag beherrscht man die Grundlagen für die Arbeit mit einem Server meist in einigen Monaten. Sicherheit kommt mit der Praxis an realen Aufgaben, deshalb zählt die Regelmäßigkeit mehr als die Gesamtzahl der Stunden.
Brauche ich Programmierkenntnisse, um Linux zu lernen?
Nein, Sie können ohne sie anfangen. Doch bei den Bash-Skripten programmieren Sie bereits, und diese Fähigkeiten nützen Ihnen später bei der Automatisierung.
Kann ich Linux unter Windows lernen?
Ja, über WSL2 oder eine virtuelle Maschine. Für die Themen systemd, Festplatten und Netzwerk sind eine vollwertige virtuelle Maschine oder ein VPS besser geeignet.
Sollte ich Linux als Hauptsystem auf meinem Computer installieren?
Das kann nützlich sein, ist aber nicht nötig. Für die Administration ist wichtiger, mit einem Server-Linux über das Terminal zu arbeiten, als eine grafische Arbeitsoberfläche zu benutzen.
Welche Distribution soll ein Einsteiger wählen?
Ubuntu Server oder Debian: Dafür gibt es viel Dokumentation, und die Kenntnisse lassen sich leicht auf andere Distributionen übertragen. Der Hauptunterschied bei RHEL-artigen Systemen ist der Paketmanager dnf.
Dieses Thema wird im Kurs „Linux: с нуля до уверенного администрирования“ ausführlich mit Praxis behandelt.
- Linux: с нуля до уверенного администрирования
- Финал: собираем защищённый и автоматизированный сервер целиком