Linux-Grundlagen: Befehle, Prozesse & Dateisysteme
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 11,43 KB
Grundlegende Linux-Befehle und Systemkonzepte
1. Verzeichnisse finden und auflisten mit 'ls -l'
Der Befehl ls -l
wird verwendet, um Verzeichnisse und deren Inhalte detailliert aufzulisten. Er zeigt Informationen wie Dateiberechtigungen, Eigentümer, Gruppenzugehörigkeit, Größe und Änderungsdatum an.
2. Speicherort wichtiger Systemdateien
Wichtige Systemdateien werden typischerweise in Verzeichnissen wie /etc
(Konfigurationsdateien), /bin
(grundlegende ausführbare Befehle), /sbin
(Systembefehle für den Administrator), /usr
(Benutzerprogramme und -bibliotheken) und /lib
(Bibliotheken) gespeichert. Das Verzeichnis /dev
enthält Gerätedateien, die Hardware-Geräte repräsentieren.
3. Prozesssteuerung: Vordergrund (FG) und Hintergrund (BG)
Linux, wie jedes Unix-System, ermöglicht die gleichzeitige Ausführung mehrerer Aufgaben (Multitasking). In Prozessorsystemen erhält jede Aufgabe eine bestimmte Zeit zugewiesen, sodass es für den Benutzer so aussieht, als würden sie gleichzeitig ausgeführt.
Programme im Hintergrund starten
Um ein Programm direkt im Hintergrund auszuführen, fügen Sie einfach ein kaufmännisches Und (&
) am Ende der Kommandozeile hinzu.
Beispiel: Wenn Sie das Verzeichnis /usr/src/linux
nach /tmp
kopieren möchten, ohne die Konsole zu blockieren:
# cp -r /usr/src/linux /tmp &
Wenn das Programm beendet ist, meldet das System dies mit einer Nachricht wie:
# [1] Done cp -r /usr/src/linux /tmp
Programme nachträglich in den Hintergrund verschieben
Wenn Sie ein Programm gestartet haben, ohne es direkt in den Hintergrund zu schicken, können Sie es nachträglich in den Hintergrund verschieben:
- Anhalten: Unterbrechen Sie die Ausführung des Programms durch Drücken von
Strg + Z
. - In den Hintergrund verschieben: Führen Sie den Befehl
bg
aus.
Ausführung von Befehlen im Hintergrund und die Nutzung von 'jobs', 'fg' und 'bg'
Wenn wir einen Befehl in der Konsole ausführen, wartet die Konsole normalerweise auf das Ende des Prozesses. Wir können die Ausführung starten und sofort die Kontrolle über die Konsole zurückerhalten, indem wir den &
-Operator am Ende des Befehls verwenden.
Beispiel:
[user@host ~]$ firefox &
Die Konsole zeigt die Job-ID und PID an, z.B.:
[1] 23710
Beachten Sie, dass die Konsole nicht geschlossen werden kann, solange Firefox im Hintergrund läuft und noch mit dem Terminal verbunden ist. Um laufende Hintergrundprozesse anzuzeigen, verwenden Sie den Befehl jobs
.
Beispiel:
[user@host ~]$ jobs
[1] + Running firefox &
Sie können eine im Hintergrund laufende Anwendung mit dem Befehl fg
in den Vordergrund holen, indem Sie die Job-Nummer angeben, die von jobs
angezeigt wird.
Beispiel:
[user@host ~]$ fg 1
firefox
Wenn Sie einen Prozess, der im Vordergrund läuft, wieder in den Hintergrund verschieben möchten, drücken Sie Strg + Z
(um ihn anzuhalten) und dann bg
(um ihn in den Hintergrund zu verschieben).
Beispiel:
[user@host ~]$ Strg + Z
[1] + Stopped firefox
[user@host ~]$ bg 1
[1] + firefox &
Alternativ können Sie einen Prozess in der Konsole mit Strg + Z
anhalten oder von einer anderen Konsole aus mit dem Befehl kill
beenden. Ein angehaltener Prozess kann dann mit bg
in den Hintergrund verschoben werden.
Wichtig: Wenn ein Hintergrundprozess versucht, mit dem Benutzer über die Konsole zu interagieren (z.B. Eingaben erwartet), wird dieser Prozess angehalten.
4. Ordner und Inhalte löschen mit 'rm -r'
Um einen Ordner und dessen gesamten Inhalt rekursiv zu löschen, verwenden Sie den Befehl rm -r
.
Beispiel:
# rm -r mein_ordner
5. Prozesspriorität mit 'nice' und 'renice' steuern
Die Befehle nice
und renice
ermöglichen es, die Priorität von Prozessen zu steuern. nice
wird verwendet, um einen Prozess mit einer bestimmten Priorität zu starten, während renice
die Priorität eines bereits laufenden Prozesses ändert.
Der 'nice'-Befehl
- Startet ein Programm mit einer geänderten Priorität.
- Der Name 'nice' (nett) kommt daher, dass Prozesse mit höherem 'nice'-Wert (niedrigere Priorität) 'netter' zu anderen Prozessen sind, da sie weniger CPU-Zeit beanspruchen.
- Der 'nice'-Wert reicht von 19 (sehr niedrige Priorität, 'sehr nett') bis -20 (sehr hohe Priorität, 'nicht sehr nett').
- Normale Benutzer können den 'nice'-Wert nur von 0 bis 19 erhöhen (Priorität senken). Der Root-Benutzer kann den gesamten Bereich von -20 bis 19 nutzen.
- Der Standard-'nice'-Wert ist 0.
- Um einen Befehl mit erhöhtem 'nice'-Wert (niedrigere Priorität) zu starten:
$ nice -n 10 befehl_mit_langer_ausfuehrung &
- Um einen Befehl mit niedrigem 'nice'-Wert (höchste Priorität) zu starten (nur für Root):
$ nice -n -15 wichtiger_befehl &
Der 'renice'-Befehl
- Der
renice
-Befehl ändert den 'nice'-Wert eines bereits laufenden Prozesses. - Normale Benutzer dürfen den 'nice'-Wert eines Prozesses nur erhöhen (Priorität senken), nicht verringern (Priorität erhöhen).
- Der 'nice'-Wert ist eine Zahl. Bei positiven Werten ist kein
+
erforderlich, aber ein-
ist für negative Werte obligatorisch. - Syntax:
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
pid
: Prozess-IDpgrp
: Prozess-Gruppen-ID
- Optionen:
-g
: Erzwingt, dass die Parameter als Prozessgruppen-IDs interpretiert werden.-u
: Erzwingt, dass die Parameter als Benutzernamen interpretiert werden.-p
: Erzwingt, dass die Parameter als Prozess-IDs interpretiert werden (Standard).
- Beispiele:
- Priorität eines Prozesses mit PID 785 auf den niedrigsten Wert (höchster 'nice'-Wert, niedrigste Priorität) setzen:
$ renice 19 785
- Priorität eines Prozesses mit PID 3598 auf einen höheren Wert (niedrigerer 'nice'-Wert, höhere Priorität) setzen (nur für Root):
$ renice -15 3598
- Den 'nice'-Wert aller Prozesse eines bestimmten Benutzers ändern:
$ renice 15 -u miguel
6. Dateien und Verzeichnisse löschen mit 'rm' und 'rmdir'
Der Befehl rm
wird zum Löschen von Dateien verwendet, während rmdir
für leere Verzeichnisse zuständig ist.
- Zum Löschen einer Datei:
$ rm dateiname
- Zum Löschen eines leeren Ordners:
$ rmdir ordnername
7. Linux-Dateisysteme
Linux unterstützt verschiedene Dateisysteme, darunter:
ext2
ext3
ext4
(häufigster Standard)XFS
Btrfs
Swap
(für Auslagerungsdateien)
8. Hard Links erstellen mit 'ln'
Um einen Hard Link zu erstellen, verwenden Sie den Befehl ln
.
Syntax:
$ ln QUELLE ZIEL
Ein Hard Link ist ein Verweis auf eine Datei, der auf dieselbe Inode wie die Originaldatei zeigt. Er kann nur innerhalb desselben Dateisystems erstellt werden.
9. Benutzer- und Passwortdateien
Benutzerinformationen (wie Benutzername, UID, GID, Home-Verzeichnis und Standard-Shell) werden in der Datei /etc/passwd
gespeichert. Die verschlüsselten Passwörter sind aus Sicherheitsgründen in der Datei /etc/shadow
abgelegt, die nur vom Root-Benutzer gelesen werden kann.
10. UMASK und Dateiberechtigungen
Die umask
(User Mask) ist ein Wert, der die Standardberechtigungen für neu erstellte Dateien und Verzeichnisse festlegt. Die endgültigen Berechtigungen werden berechnet, indem die umask
von den maximalen Standardberechtigungen (666 für Dateien, 777 für Verzeichnisse) subtrahiert wird.
- Beispiel: Wenn die
umask
022
ist, sind die Standard-Dateiberechtigungen666 - 022 = 644
. - Beispiel: Wenn die gewünschten Dateiberechtigungen
444
sein sollen, wäre die entsprechendeumask
222
(666 - 222 = 444
).
11. Prozesse anzeigen mit 'ps aux'
Der Befehl ps aux
wird verwendet, um alle laufenden Prozesse auf dem System anzuzeigen. Er liefert detaillierte Informationen, einschließlich der Prozess-ID (PID), CPU- und Speichernutzung, Startzeit und dem ausführenden Befehl.
12. SSH-Schlüsselpaare generieren
Generierung von SSH-Schlüsseln
Führen Sie den folgenden Befehl aus, um ein RSA-Schlüsselpaar (öffentlich und privat) zu erstellen (standardmäßig mit einer Länge von 2048 Bit):
javier@client:> ssh-keygen -t rsa
Das Programm wird Sie nach dem Dateinamen fragen, in dem der private Schlüssel gespeichert werden soll (Standard: /home/alice/.ssh/id_rsa
). Drücken Sie Enter
, um den Standardwert zu akzeptieren. Anschließend werden Sie aufgefordert, eine Passphrase einzugeben:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Drücken Sie zweimal Enter
, um keine Passphrase zu verwenden. (Es wird jedoch dringend empfohlen, eine Passphrase zu verwenden, um die Sicherheit Ihres privaten Schlüssels zu erhöhen.)
Abschließend wird Ihnen mitgeteilt:
Your identification has been saved in /home/alice/.ssh/id_rsa.
Your public key has been saved in /home/alice/.ssh/id_rsa.pub.
The key fingerprint is:
13:8b:23:74:53:e4:0f:b3:16:49:1b:79:64:60:7c:38 javier@client
13. Konsolen wechseln (TTYs)
Um zwischen verschiedenen virtuellen Konsolen (TTYs) zu wechseln, verwenden Sie die Tastenkombinationen Strg + Alt + F1
bis Strg + Alt + F6
. Die grafische Oberfläche (falls vorhanden) befindet sich typischerweise auf Strg + Alt + F7
.
14. Privilegierte Ports und Standard-Ports
Privilegierte Ports sind Ports mit Nummern unter 1024. Nur Prozesse, die als Root laufen, können diese Ports öffnen. Die Gesamtanzahl der Ports reicht von 0 bis 65535.
Einige gängige Standard-Ports sind:
- HTTPS: 443
- SSH: 22
- Telnet: 23
- NetBIOS: 139
- CUPS (Druckdienst): 631