Modul 1 · 1.4
Deutsch
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:
| Verzeichnis | Was darin liegt |
|---|---|
/etc | Konfiguration: SSH (/etc/ssh), Webserver (/etc/nginx), Benutzer (/etc/passwd) |
/var/log | Logdateien (neben dem Journal, Lektion 6.2) |
/var/lib | Daten von Programmen, zum Beispiel Datenbanken und Docker |
/home | Home-Verzeichnisse normaler Benutzer, etwa /home/anna |
/root | Home-Verzeichnis von root |
/usr | Installierte Programme und Bibliotheken |
/tmp | Temporä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.pubVon 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 mitq;head -n 20 bestandundtail -n 20 bestand: die ersten oder letzten Zeilen;tail -fzeigt 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/hostsUnten 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:
- Legen Sie zuerst eine Kopie an:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. - 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). - Ä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 0Buname -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 (-hsteht 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 Spalteavailable, nicht auffree: 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 beiless, suchen mit/.man sshd_configbeschreibt jede einstellbare Option in dieser Datei.ls --helpliefert 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;
historyzeigt 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 | lessZeilen, 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.
rmhat keinen Papierkorb. Weg ist weg. Seien Sie besonders vorsichtig mitrm -r(ein Verzeichnis samt Inhalt) und mit Platzhaltern wie*.- Groß- und Kleinschreibung zählt.
/etc/SSHgibt es nicht;/etc/sshschon. - 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,headundtail; bearbeiten Sie mitnano, nach einer Kopie, und testen Sie die Konfiguration vor dem Neustart. df -h,free -h,uptimeundip -brief addresszeigen, wie es um Ihren Server steht.- Hilfe finden Sie in
manund--help; Tab vervollständigt; mit|undgrepfiltern Sie Ausgaben.
Quiz
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.
available rechnet auch den Cache-Speicher mit, den Linux freigibt. Die .pub-Datei ist der öffentliche Teil, den jeder Client sieht; die Datei ohne .pub ist geheim (600, root), denn wer sie besitzt, kann sich als Ihr Server ausgeben.
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
- Speicherplatz Ihres VPS vergrößern
- SSH-Zugang und das Terminal in DirectAdmin: welche Pakete und wie Sie sich anmelden
- Debian-Referenz, Kapitel 1 (Anleitung für die Kommandozeile): https://www.debian.org/doc/manuals/debian-reference/ch01.en.html
- Filesystem Hierarchy Standard 3.0: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html
