Linux-Befehle: Ein umfassender Spickzettel

Befehle zur Benutzerverwaltung

Die Benutzerverwaltung ist ein wesentlicher Aspekt der Systemsicherheit und -verwaltung. Über die Kommandozeile kannst du Benutzer erstellen, verwalten und löschen sowie Gruppen zuweisen und Berechtigungen festlegen.

Benutzerverwaltung

Benutzer erstellen

  • useradd <Benutzername>: Erstellt einen neuen Benutzer mit dem angegebenen Benutzernamen.
  • adduser <Benutzername>: Erstellt einen neuen Benutzer mit Home-Verzeichnis und anderen Standardkonfigurationen.

Benutzer löschen

  • userdel <Benutzername>: Löscht den angegebenen Benutzer.
  • deluser <Benutzername>: Löscht den angegebenen Benutzer und dessen Home-Verzeichnis.

Benutzerinformationen anzeigen

  • finger <Benutzername>: Zeigt Informationen über den angegebenen Benutzer an, wie z. B. Name, E-Mail-Adresse und Anmeldedatum.
  • id <Benutzername>: Zeigt die Benutzer-ID (UID), Gruppen-ID (GID) und andere Informationen für den angegebenen Benutzer an.

Gruppenverwaltung

Gruppen erstellen

  • groupadd <Gruppenname>: Erstellt eine neue Gruppe mit dem angegebenen Gruppennamen.

Gruppen löschen

  • groupdel <Gruppenname>: Löscht die angegebene Gruppe.

Benutzer zu Gruppen hinzufügen

  • usermod -aG <Gruppenname> <Benutzername>: Fügt den angegebenen Benutzer der angegebenen Gruppe hinzu.
  • addgroup <Benutzername> <Gruppenname>: Führt dieselbe Aktion wie usermod -aG aus.

Berechtigungsverwaltung

Berechtigungen festlegen

  • chown <Benutzername>:<Gruppenname> <Datei/Verzeichnis>: Ändert den Besitzer und die Gruppe einer Datei oder eines Verzeichnisses.
  • chmod <Berechtigungen> <Datei/Verzeichnis>: Ändert die Zugriffsrechte für eine Datei oder ein Verzeichnis.

Berechtigungen anzeigen

  • ls -l <Datei/Verzeichnis>: Zeigt detaillierte Informationen über Berechtigungen für Dateien oder Verzeichnisse an.
  • stat <Datei/Verzeichnis>: Zeigt umfassende Informationen über Berechtigungen sowie andere Metadaten an.

Befehle zur Textverarbeitung

Textverarbeitung ist eine häufige Aufgabe in Linux. Hier sind einige Befehle, die dir dabei helfen können:

h3 Textbearbeitung

  • cat: zeigt den Inhalt einer Datei an
  • tac: zeigt den Inhalt einer Datei in umgekehrter Reihenfolge an
  • column: formatiert Text in Spalten
  • more: zeigt den Inhalt einer Datei seitenweise an
  • less: wie more, aber mit mehr Funktionen

h3 Textsuche

  • grep: sucht nach einem Muster in einer Datei
  • awk: durchsucht Text nach einem Muster und führt eine Aktion aus
  • sed: durchsucht Text nach einem Muster und ersetzt oder löscht ihn

h3 Textverarbeitung

  • cut: schneidet Spalten aus einer Datei aus
  • join: fügt Dateien anhand gemeinsamer Felder zusammen
  • sort: sortiert Textzeilen
  • uniq: entfernt doppelte Zeilen aus einer Datei
  • wc: zählt Zeilen, Wörter und Zeichen in einer Datei

h3 Texteditoren

Neben der Kommandozeile kannst du auch Texteditoren wie nano, vim oder emacs verwenden. Diese Editoren bieten erweiterte Funktionen wie Syntaxhervorhebung und Makros.

h3 Tipps zur Verwendung

  • Verwende Pipes (|), um die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu verwenden.
  • Verwende Umleitungen (>, >>, <), um die Ausgabe oder Eingabe von Befehlen in eine Datei zu speichern oder daraus zu lesen.
  • Regelmäßige Ausdrücke (regex) sind ein leistungsstarkes Werkzeug zum Suchen und Bearbeiten von Text. Erfahre mehr über regex unter reguläre-ausdrücke.info.

Befehle zur Netzwerkverwaltung

In diesem Abschnitt werden Befehle zur Verwaltung von Netzwerken in Linux vorgestellt.

Anzeigen von Netzwerkverbindungen

  • ifconfig – Zeigt Informationen zu Netzwerkgeräten und IP-Adressen an.
  • ip addr – Moderner Ersatz für ifconfig, bietet erweiterte Optionen.
  • netstat -i – Liefert Statistiken zu Netzwerkgeräten und deren Datenverkehr.

Konfigurieren von Netzwerkverbindungen

  • nmtui – Grafische Benutzeroberfläche zur Verwaltung von Netzwerkverbindungen.
  • nmcli – CLI-Tool zur Verwaltung von Netzwerkverbindungen.
  • route – Verwaltet Routing-Tabellen und Hinzufügen/Entfernen von Routen.
  • ip – Bietet eine Reihe von Befehlen zur Konfiguration von Netzwerkgeräten und IP-Adressen.

Verwalten von Firewall-Regeln

  • ufw – Einfache Firewall für die Verwaltung von Firewall-Regeln.
  • firewall-cmd – Leistungsstärkeres Firewall-Tool mit erweiterten Funktionen.

Überwachung von Netzwerkverkehr

  • tcpdump – Paket-Sniffer zur Überwachung des Netzwerkverkehrs.
  • wireshark – Grafische Benutzeroberfläche zum Überwachen und Analysieren des Netzwerkverkehrs.
  • nmap – Netzwerk-Scanner zur Erkennung von Hosts und Diensten in einem Netzwerk.

Remote-Verbindungen

  • ssh – Sichere Shell zum Herstellen von Remote-Verbindungen zu Servern.
  • scp – Sichere Kopie zum Übertragen von Dateien zwischen Remote-Servern.
  • sftp – Sichere Dateiübertragung zum Durchsuchen und Übertragen von Dateien über SSH.

Befehle zur Systemverwaltung

Als Systemadministrator oder fortgeschrittener Benutzer musst du möglicherweise bestimmte Befehle ausführen, um das System zu verwalten und zu konfigurieren. Diese Befehle ermöglichen es dir, Hardware, Dienste und Kerneleinstellungen zu steuern.

Systeminformationen abrufen

  • uname: Zeigt Informationen zum Betriebssystem, Kernel und Prozessor an.
  • cat /proc/cpuinfo: Gibt Informationen zu den CPU-Kernen, deren Geschwindigkeit und Funktionen aus.
  • lspci: Listet alle PCI-Geräte auf.
  • lshw: Bietet eine umfassende Liste aller Hardwarekomponenten.

Dienste verwalten

  • service: Starten, stoppen, neu starten und den Status von Diensten verwalten.
  • systemctl: Ein modernerer Befehl zum Verwalten von Systemd-Diensten.
  • /etc/init.d/: Speicherort von Skripten, die Dienste starten und stoppen.

Konfigurationen ändern

  • vi /etc/hostname: Bearbeiten der Hostnamendatei.
  • nano /etc/fstab: Bearbeiten der Dateisystemtabelle, die die Dateisysteme und ihre Attribute auflistet.
  • sed: Ein Editor für das Suchen und Ersetzen, der zum Ändern von Konfigurationsdateien verwendet werden kann.

Systemwartung

  • crontab -e: Bearbeiten von Cron-Jobs, die zu bestimmten Zeiten Aufgaben ausführen.
  • logrotate: Rotieren von Protokolldateien, um deren Größe zu verwalten.
  • pacman -Syu (Arch Linux): Aktualisieren von Paketen.
  • apt-get update (Debian/Ubuntu): Aktualisieren von Paketinformationen.

Sicherheit

  • ufw: Firewall-Verwaltung.
  • ssh: Herstellen einer sicheren Verbindung zu einem Remote-Server.
  • sudo: Ausführen von Befehlen mit Root-Rechten.

Fehlerbehebung

  • dmesg: Anzeigen von Kernel-Protokollen.
  • journalctl: Anzeigen von Systemprotokollen.
  • strace: Verfolgen von Systemaufrufen eines Prozesses.
  • gdb: Debuggen von Prozessen.

Befehle zur Problemlösung

Manchmal stoßen wir bei der Verwendung von Linux auf unerwartete Probleme. In diesen Fällen verfügen wir über eine Reihe von Befehlen, die uns helfen können, die Ursachen zu ermitteln und Lösungen zu finden.

Fehlermeldungen interpretieren

  • dmesg zeigt Kernel-Fehlermeldungen an, die beim Booten und während des Systembetriebs auftreten.
  • journalctl verarbeitet Systemprotokolle und ermöglicht dir das Filtern von Meldungen nach Schweregrad und Service.
  • lastlog zeigt die letzten Anmeldezeiten und -adressen von Benutzern an. Dies kann hilfreich sein, um verdächtige Aktivitäten zu ermitteln.

Systemressourcen überwachen

  • top zeigt Echtzeitinformationen zur Systemlast, Prozessauslastung, Speichernutzung und mehr an.
  • htop ist eine interaktive Version von top, die dir eine visuelle Oberfläche bietet, um Prozesse zu verwalten und nach Ressourcennutzung zu sortieren.
  • vmstat bietet ausführliche Informationen zur Speichernutzung, Seitenfehlerrate und anderen Systemstatistiken.

Konnektivitätsprobleme diagnostizieren

  • ping sendet ICMP-Pakete an einen Zielhost und misst die Reaktionszeit, um Netzwerkverbindungen zu testen.
  • traceroute verfolgt den Weg von Paketen zu einem Zielhost und identifiziert mögliche Netzwerkprobleme.
  • netstat zeigt Informationen zu Netzwerkverbindungen, Routing-Tabellen und mehr an.

Hardwareprobleme beheben

  • lshw listet Informationen zu installierter Hardware auf, einschließlich Gerätenamen, Treiber und mehr.
  • lspci zeigt Informationen zu PCI-Geräten an, einschließlich Bus- und Gerätedetails.
  • hdparm kann verwendet werden, um Informationen über Festplattenlaufwerke abzurufen und deren Leistung zu testen.

Skripte und Tools zur Fehlerbehebung

  • Bash-Skripte können geschrieben werden, um benutzerdefinierte Überwachungstools zu erstellen und Fehler automatisch zu beheben.
  • Tools wie chkrootkit und maldet können verwendet werden, um Sicherheitsverstöße zu erkennen und zu beheben.
  • Dienste wie New Relic und Splunk bieten umfassende Überwachungs- und Fehlerbehebungslösungen für Linux-Systeme.

Befehle für fortgeschrittene Nutzer

Als fortgeschrittener Linux-Benutzer benötigst du zusätzliche Werkzeuge, um komplexe Aufgaben effizient zu bewältigen. Dieser Abschnitt stellt Befehle vor, die deine Fähigkeiten erweitern und dir die volle Kontrolle über dein System geben.

Prozessverwaltung

  • top: Überwacht laufende Prozesse und ihre Ressourcennutzung.
  • ps: Listet laufende Prozesse mit detaillierten Informationen auf.
  • kill: Beendet einen laufenden Prozess.

Skripterstellung

  • bash: Befehlszeileninterpretator zum Schreiben und Ausführen von Skripten.
  • awk: Sprachwerkzeug für die Textverarbeitung und Datenmanipulation.
  • sed: Stream-Editor zum Bearbeiten von Textdateien.

Netzwerk-Fehlersuche

  • tcpdump: Erfasst und analysiert Netzwerkverkehr.
  • nmap: Scannt Netzwerke und ermittelt verfügbare Dienste und Hosts.
  • wireshark: Leistungsstarkes Netzwerk-Analysetool mit grafischer Oberfläche.

Kernel-Einstellungen

  • sysctl: Setzt oder zeigt Kernel-Einstellungen an.
  • proc: Dateisystem, das Informationen über den laufenden Kernel bereitstellt.

Geräteverwaltung

  • lsblk: Listet Blockgeräte wie Festplatten und Partitionen auf.
  • fdisk: Partitioniert Festplatten und verwaltet Partitionen.
  • dd: Kopiert und konvertiert Daten zwischen Geräten.

Automatisierung

  • crontab: Plant und automatisiert Aufgaben zu bestimmten Zeiten.
  • ansible: Automatisierungs-Framework zur Konfiguration und Verwaltung von Systemen.
  • puppet: Offen-Source-Automatisierungs-Tool für Infrastrukturverwaltung.

Weitere fortgeschrittene Möglichkeiten

  • ssh: Sichere Remote-Zugriffsanmeldung und -verwaltung.
  • sudo: Ermöglicht es Benutzern mit geringen Rechten, Befehle mit erhöhten Rechten auszuführen.
  • man: Umfangreiche Befehlsreferenz mit detaillierten Dokumentationen.

Verwendung von Pipes und Umleitungen

Pipes ermöglichen es dir, die Ausgabe eines Befehls als Eingabe für einen anderen Befehl weiterzuleiten. Die Pipe-Syntax | verbindet die beiden Befehle. Beispiel:

ls | grep text

Dieser Befehl listet alle Dateien und Verzeichnisse im aktuellen Verzeichnis auf (ls) und filtert anschließend die Ausgabe nach Dateien, die das Wort "text" enthalten (grep text).

Auch Umleitungen können zum Umleiten der Ausgabe oder Eingabe verwendet werden.

Umleitung der Ausgabe (>)

Wenn du die Ausgabe eines Befehls in eine Datei umleiten möchtest, kannst du das Größer-als-Zeichen > verwenden. Beispiel:

ls > dateien.txt

Dieser Befehl listet alle Dateien und Verzeichnisse in eine Datei namens dateien.txt auf.

Umleitung der Eingabe (<)

Du kannst auch die Eingabe eines Befehls aus einer Datei umleiten. Verwende dafür das Kleiner-als-Zeichen <. Beispiel:

cut -d: -f1 < /etc/passwd

Dieser Befehl extrahiert die Benutzernamen aus der Datei /etc/passwd und gibt sie aus.

Kombination von Pipes und Umleitungen

Du kannst Pipes und Umleitungen kombinieren, um komplexe Befehlsfolgen zu erstellen. Beispiel:

ls | grep text | wc -l > dateien_mit_text.txt

Dieser Befehl listet alle Dateien und Verzeichnisse auf, filtert die Ausgabe nach Dateien, die das Wort "text" enthalten, zählt die Anzahl der Übereinstimmungen und leitet das Ergebnis in eine Datei namens dateien_mit_text.txt um.

Regelmäßige Ausdrücke in Befehlen

Regelmäßige Ausdrücke sind eine mächtige Werkzeuge, mit denen du Textmuster suchen und ersetzen kannst. Sie werden in vielen Linux-Befehlen eingesetzt, um die Arbeit mit Textdateien zu vereinfachen.

Was sind reguläre Ausdrücke?

Regelmäßige Ausdrücke sind eine formale Sprache, die verwendet wird, um Textmuster zu beschreiben. Sie werden oft verwendet, um Textabschnitte zu finden, die bestimmten Kriterien entsprechen.

Syntax von regulären Ausdrücken

Regelmäßige Ausdrücke bestehen aus einer Sequenz von Zeichen, die Textmuster darstellen. Dabei gibt es verschiedene Sonderzeichen, die für bestimmte Funktionen stehen:

  • .` (Punkt): Beliebiges einzelnes Zeichen
  • * (Stern): Übereinstimmung mit null oder mehr Vorkommnissen des vorherigen Zeichens
  • + (Plus): Übereinstimmung mit einem oder mehr Vorkommnissen des vorherigen Zeichens
  • ? (Fragezeichen): Übereinstimmung mit null oder einem Vorkommnis des vorherigen Zeichens
  • [] (Eckige Klammern): Übereinstimmung mit einem der in den Klammern angegebenen Zeichen
  • [^] (Negierte eckige Klammern): Übereinstimmung mit einem beliebigen Zeichen, das nicht in den Klammern angegeben ist
  • \ (Backslash): Maskiert das Sonderzeichen, das ihm folgt

Verwendung von regulären Ausdrücken in Befehlen

Um reguläre Ausdrücke in Befehlen zu verwenden, musst du sie in Anführungszeichen setzen:

grep "suchmuster" datei.txt

Dieser Befehl sucht in der Datei datei.txt nach der Zeichenfolge "suchmuster". Du kannst die folgenden Befehle verwenden, um reguläre Ausdrücke in deinen Befehlen einzusetzen:

  • grep: Sucht nach Textmustern in Dateien
  • sed: Ersetzt Textmuster in Dateien
  • awk: Verarbeitet Textdaten nach Mustern

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von regulären Ausdrücken in Befehlen:

  • Finde alle E-Mail-Adressen in einer Datei:
grep -E '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}' datei.txt
  • Ersetze alle Leerzeichen durch Unterstriche:
sed 's/ /\ /g' datei.txt
  • Extrahiere die zweite Spalte aus einer CSV-Datei:
awk -F',' '{print $2}' datei.csv

Fazit

Regelmäßige Ausdrücke sind ein leistungsstarkes Werkzeug, das die Arbeit mit Textdateien in Linux vereinfachen kann. Durch das Verständnis ihrer Syntax kannst du diese Befehle nutzen, um Textmuster effizient zu suchen, zu ersetzen und zu verarbeiten.

Häufig verwendete Flags und Optionen

Flags und Optionen sind Modifikatoren, die es dir ermöglichen, das Verhalten von Befehlen an deine spezifischen Bedürfnisse anzupassen. Sie werden in der Regel durch ein Minuszeichen (-) gefolgt von einem oder mehreren Buchstaben gefolgt.

Allgemeine Flags

  • -h, –help: Zeigt die Hilfeseite des Befehls an.
  • -v, –verbose: Gibt ausführlichere Ausgabeinformationen aus.
  • -q, –quiet: Unterdrückt die Ausgabe des Befehls.
  • –no-COLOR Deaktiviert die Farbausgabe (sofern verfügbar).

Flags zur Dateiverwaltung

  • -a, –all: Zeigt versteckte Dateien und Ordner an.
  • -R, –recursive: Wendet einen Befehl rekursiv auf Unterverzeichnisse an.
  • -f, –force: Erzwingt die Ausführung eines Befehls, auch wenn Fehler auftreten.

Flags zur Benutzerverwaltung

  • -u, –user: Gibt den Benutzer an, für den der Befehl ausgeführt werden soll.
  • -g, –group: Gibt die Gruppe an, für die der Befehl ausgeführt werden soll.
  • -a, –all: Zeigt alle Benutzer oder Gruppen an.

Flags zur Textverarbeitung

  • -i, –ignore-case: Ignoriert die Groß- und Kleinschreibung bei Textvergleichen.
  • -n, –number: Nummeriert die Zeilen des Textes.
  • -w, –word-wrap: Wickelt Zeilen am Zeilenumbruch um.

Flags zur Netzwerkverwaltung

  • -i, –interface: Gibt die zu verwendende Netzwerkschnittstelle an.
  • -p, –port: Gibt den Port an, auf den zugegriffen werden soll.
  • -s, –silent: Unterdrückt die Ausgabe des Netzwerkverkehrs.

Flags zur Systemverwaltung

  • -d, –debug: Aktiviert den Debug-Modus.
  • -L, –log-file: Gibt die Protokolldatei an, in die Protokolle geschrieben werden sollen.
  • –no-daemon: Verhindert, dass der Dienst als Daemon ausgeführt wird.

Hinweise

  • Flags können in beliebiger Reihenfolge verwendet werden.
  • Einige Flags akzeptieren Argumente, die nach einem Gleichheitszeichen (=) angegeben werden.
  • Flags werden in der Regel mit einem Minuszeichen (-) gefolgt von einem oder mehreren Buchstaben geschrieben, können aber auch mit zwei Minuszeichen (–) geschrieben werden.

Schreibe einen Kommentar