Direkt zum Inhalt

Cookie-Einstellungen

Wählen Sie, welche Arten von Cookies Sie erlauben. Sie können Ihre Auswahl jederzeit über Cookie-Einstellungen unten auf jeder Seite ändern. Datenschutzerklärung

Notwendig

Immer aktiv

Nötig zum Einloggen, für Ihren Warenkorb und um Ihre Auswahl zu speichern. Diese sind immer aktiv.

Welche Cookies?
  • weboke_sessie, weboke_klant, weboke_remember: Ihre Sitzung und eingeloggt bleiben
  • weboke_basket: Ihr Warenkorb
  • wkBtwIncl: Preise mit oder ohne MwSt. anzeigen
  • wok_cookies: Ihre Cookie-Auswahl, 12 Monate

Misst, welche Anzeige zu einem Besuch oder einer Bestellung führt, damit wir nicht für Anzeigen zahlen, die nichts bringen.

Welche Cookies?
  • Google Ads über Google Tag Manager (_gcl_au, _gcl_aw), bis zu 90 Tage
  • OpenAI Ads, Anzeigen in ChatGPT
  • wok_aff: über welchen Partner Sie zu uns kamen (Partnerprogramm), 60 Tage

4,6

Land und Sprache

Jedes Land hat seine eigene Website, mit Preisen und MwSt. dieses Landes.

Anzeigen

Modul 1 · 1.4

Sich auf der Kommandozeile umsehen

Modul 1: Ihr erster Server · Lesezeit: 11 Minuten

Lernziel: Nach dieser Lektion finden Sie sich auf einem Linux-Server zurecht: Sie wechseln zwischen Verzeichnissen, lesen und bearbeiten Dateien, sehen, wie viel Festplatte und Arbeitsspeicher frei sind, und schlagen selbst Hilfe zu einem Befehl nach.

Kernbegriffe: Shell, Prompt, Verzeichnis und Pfad, absoluter und relativer Pfad, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, Tab-Vervollständigung, uname, df, free, uptime, Pipe, grep

Die Shell und der Prompt

Nach dem Einloggen sprechen Sie mit der Shell: dem Programm, das Ihre Befehle liest und ausführt. Auf Debian und Ubuntu ist das meist bash. Links vom Cursor steht der Prompt:

anna@web1:~$
root@web1:~#

Er verrät drei Dinge: wer Sie sind (anna oder root), auf welchem Server (web1) und in welchem Verzeichnis Sie sich befinden (~ ist Ihr eigenes Home-Verzeichnis). Das letzte Zeichen ist wichtig: $ steht für einen normalen Benutzer, # steht für root. Sehen Sie #, dann läuft jeder Befehl mit allen Rechten. Tippen Sie dort mit Bedacht.

Verzeichnisse und Pfade

Alles unter Linux hängt an einem einzigen Baum, der bei / beginnt (dem Wurzelverzeichnis, nicht zu verwechseln mit dem Benutzer root). Einigen Verzeichnissen begegnen Sie in diesem Kurs immer wieder:

VerzeichnisWas darin liegt
/etcKonfiguration: SSH (/etc/ssh), Webserver (/etc/nginx), Benutzer (/etc/passwd)
/var/logLogdateien (neben dem Journal, Lektion 6.2)
/var/libDaten von Programmen, zum Beispiel Datenbanken und Docker
/homeHome-Verzeichnisse normaler Benutzer, etwa /home/anna
/rootHome-Verzeichnis von root
/usrInstallierte Programme und Bibliotheken
/tmpTemporäre Dateien, wird aufgeräumt
/srv oder /var/wwwÜblicher Ort für Websites und Dienste

Ein absoluter Pfad beginnt bei /, zum Beispiel /etc/ssh/sshd_config. Ein relativer Pfad beginnt dort, wo Sie sich gerade befinden: Sind Sie in /etc, dann ist ssh/sshd_config dieselbe Datei. .. ist das übergeordnete Verzeichnis, . das aktuelle Verzeichnis.

anna@web1:~$ pwd
/home/anna
anna@web1:~$ cd /etc/ssh
anna@web1:/etc/ssh$ ls
moduli  ssh_config  ssh_config.d  sshd_config  sshd_config.d  ssh_host_ed25519_key  ssh_host_ed25519_key.pub ...
anna@web1:/etc/ssh$ cd ..
anna@web1:/etc$ cd
anna@web1:~$

cd ohne weitere Angabe bringt Sie zurück in Ihr Home-Verzeichnis.

Dateien ansehen

ls -l zeigt mehr als nur Namen:

anna@web1:/etc/ssh$ ls -l sshd_config ssh_host_ed25519_key ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 3248 Aug 12 10:01 sshd_config
-rw------- 1 root root  399 Nov  2 14:20 ssh_host_ed25519_key
-rw-r--r-- 1 root root   91 Nov  2 14:20 ssh_host_ed25519_key.pub

Von links nach rechts: die Rechte, die Anzahl der Verknüpfungen, Eigentümer, Gruppe, Größe in Bytes, Datum und Name. Beachten Sie den Unterschied: Den geheimen Host Key (-rw-------) darf nur root lesen, den öffentlichen (-rw-r--r--) jeder. In Lektion 3.1 lernen Sie, diese Rechte genau zu lesen. ls -la zeigt auch versteckte Dateien: Namen, die mit einem Punkt beginnen, wie .ssh.

Um den Inhalt zu lesen:

  • cat bestand: die ganze Datei auf einmal, praktisch für kurze Dateien;
  • less bestand: blättern mit den Pfeiltasten und der Leertaste, suchen mit /woord, beenden mit q;
  • head -n 20 bestand und tail -n 20 bestand: die ersten oder letzten Zeilen; tail -f zeigt laufend neue Zeilen an, sobald welche hinzukommen.

Eine Datei mit nano bearbeiten

Konfiguration ändern Sie in einem Texteditor. nano ist der einfachste:

root@web1:~# nano /etc/hosts

Unten stehen die Tastenkürzel; ^ steht für Strg (Ctrl). Speichern ist Strg+O und Enter, Beenden Strg+X, Suchen Strg+W. Wer bereits mit vim arbeitet, kann diesen verwenden; vim ist bei einer Minimalinstallation nicht immer vollständig vorhanden.

Drei Gewohnheiten, die Ihnen später viel Ärger ersparen:

  1. Legen Sie zuerst eine Kopie an: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.
  2. Testen Sie die Konfiguration, bevor Sie einen Dienst neu starten. Viele Programme haben dafür einen eigenen Befehl: sshd -t, nginx -t (Lektion 2.2 und 7.2).
  3. Ändern Sie immer nur eine Sache, damit Sie wissen, was einen Fehler verursacht hat.

Wie steht es um Ihren Server?

Einige Befehle, die Sie in jeder Situation brauchen:

anna@web1:~$ uname -a
Linux web1 6.12.0-... #1 SMP ... x86_64 GNU/Linux
anna@web1:~$ uptime
 10:12:44 up 3 days,  2:10,  1 user,  load average: 0.08, 0.05, 0.01
anna@web1:~$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        40G  3.1G   35G   9% /
anna@web1:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       412Mi       2.9Gi       1.0Mi       720Mi       3.4Gi
Swap:             0B          0B          0B
  • uname -a: welcher Kernel läuft.
  • uptime: wie lange der Server schon läuft und die Load Average über 1, 5 und 15 Minuten. Grob gesagt: Eine Last, die dauerhaft über der Anzahl der Prozessorkerne liegt, bedeutet, dass Prozesse warten müssen.
  • df -h: freier Festplattenplatz (-h steht für "human readable", mit G und M). Eine volle Festplatte ist eine der häufigsten Ursachen dafür, dass ein Server "einfach so" stehen bleibt.
  • free -h: Arbeitsspeicher. Achten Sie auf die Spalte available, nicht auf free: Linux nutzt freien Speicher als Cache (buff/cache) und gibt ihn zurück, sobald ein Programm ihn braucht.

Und Ihr Netzwerk, aus Lektion 1.2: ip -brief address.

Hilfe finden

Sie müssen sich nicht alle Optionen merken. Sie sollten aber wissen, wo sie stehen:

  • man ssh öffnet das Handbuch (Manual Page) zu einem Befehl. Blättern wie bei less, suchen mit /. man sshd_config beschreibt jede einstellbare Option in dieser Datei.
  • ls --help liefert bei den meisten Befehlen eine kurze Liste der Optionen.
  • Die Tab-Taste vervollständigt Namen von Befehlen und Dateien. Zweimal Tab zeigt die Möglichkeiten an. Das erspart Tippfehler in langen Pfaden.
  • Die Pfeiltaste nach oben holt frühere Befehle zurück; history zeigt alle an.

Bei einer Minimalinstallation fehlen die Handbücher manchmal. Auf Debian und Ubuntu installieren Sie sie mit apt install man-db (Modul 4).

Pipes und grep

Befehle können Sie mit einer Pipe (|) verketten: Die Ausgabe des einen ist die Eingabe des nächsten. grep filtert Zeilen, die ein bestimmtes Wort enthalten:

anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | less

Zeilen, die mit # beginnen, sind Kommentare: Sie bewirken nichts und zeigen oft den Standardwert. In Lektion 2.2 sehen Sie, warum das bei SSH verwirrend sein kann.

Stolperfallen

  • Einfügen ohne zu lesen. Befehle aus dem Internet tun genau das, was dort steht, auch wenn das etwas anderes ist, als der Titel des Artikels verspricht. Lesen Sie jeden Befehl, bevor Sie ihn ausführen, erst recht als root.
  • rm hat keinen Papierkorb. Weg ist weg. Seien Sie besonders vorsichtig mit rm -r (ein Verzeichnis samt Inhalt) und mit Platzhaltern wie *.
  • Groß- und Kleinschreibung zählt. /etc/SSH gibt es nicht; /etc/ssh schon.
  • Leerzeichen in Pfaden müssen in Anführungszeichen stehen: cat "/srv/mijn site/index.html". Besser: Verwenden Sie auf einem Server keine Leerzeichen in Namen.

Zusammenfassung

  • Der Prompt zeigt, wer Sie sind, auf welchem Server und wo; # steht für root.
  • Konfiguration liegt in /etc, Logs in /var/log, Programmdaten in /var/lib, Home-Verzeichnisse in /home.
  • Lesen Sie mit cat, less, head und tail; bearbeiten Sie mit nano, nach einer Kopie, und testen Sie die Konfiguration vor dem Neustart.
  • df -h, free -h, uptime und ip -brief address zeigen, wie es um Ihren Server steht.
  • Hilfe finden Sie in man und --help; Tab vervollständigt; mit | und grep filtern Sie Ausgaben.

Quiz

1. Ihr Prompt lautet root@web1:/var/log#. Was wissen Sie jetzt?



2. Sie befinden sich in /etc. Welcher Pfad zeigt auf dieselbe Datei wie /etc/nginx/nginx.conf?



3. free -h zeigt free 120Mi und available 2.9Gi. Hat der Server zu wenig Arbeitsspeicher?



4. Was ist am klügsten, bevor Sie /etc/ssh/sshd_config ändern?



5. Wo schlagen Sie nach, welche Einstellungen sshd_config kennt?



Aufgabe

Aufgabe O1.4: Ihren Server kennenlernen. Führen Sie die Befehle aus der Lektion auf Ihrem eigenen Server aus und tragen Sie ein: Distribution und Version, Kernel, freier Festplattenplatz, verfügbarer Arbeitsspeicher, Load, IPv4 und IPv6 sowie welche Dateien in /etc/ssh nur von root gelesen werden können. Beantworten Sie anschließend zwei Fragen zu dem, was Sie gesehen haben.

Aufgabe O1.4: Ihren Server kennenlernen

Diese Aufgabe machen Sie selbst; niemand prüft sie nach. Haken Sie ab, was Sie erledigt haben, und markieren Sie die Aufgabe als erledigt.



Ihre Haken und Notizen bleiben nur in diesem Browser; wir senden sie nirgendwohin. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe erledigt haben.

Weiterführende Informationen

Einen Moment bitte…

Richten Sie Ihre Domains ein

Legen Sie für jede Domain die Nameserver, die Verknüpfung mit Ihrem Hosting und den künftigen Inhaber fest.

Ihre Domains werden geladen…