In diesem Artikel habe ich aus meiner Sicht wichtige und im täglichen Gebrauch nützliche Linux-Kommandos aufgeführt. Da ich selbst noch regelmäßig neue Befehle dazu lerne, wird dieser Beitrag von Zeit zu Zeit aktualisiert und um neue Inhalte ergänzt.

find – Suchen und Finden

Neben locate und whois ist der find-Befehl in Linux wohl die effektivste Methode zum Auffinden von Dateien und Verzeichnissen.

find [Pfad] -type [Option] -name [Name]

Beispiel 1:

sudo find /etc -type f -name pass*

Beispiel 2 – Komplexe Suchfunktion, Fehlermeldungen werden nicht angezeigt:

find / -type f -name *.conf -user root -size +20k -newermt 2020-03-03 -exec ls -al {} \; 2>/dev/null

Beispiel 3 – STDOUT & STDERR umleiten:

find /etc/ -name shadow 2>/dev/null 1>results.txt

Im letzten Beispiel werden Fehlermeldungen (STDERR – FD2) der Suche nicht angezeigt, der Standard-Output (STDOUT -FD 1) in die Datei „results.txt“ geschrieben.

lsusb – Befehl

Der Befehl lsusb ist hilfreich, um sich Informationen über die USB-Busse und daran angeschlossene Geräte anzeigen zu lassen. Das Kommando ist vor allem dann nützlich, wenn man neue USB-Geräte anschließt und prüfen möchte, ob diese vom System erkannt werden. Bei vielen Linuxdistributionen wie Kali ist das USB-Utils Packet bereits installiert. Sollte es nicht vorhanden sein, kann es sehr einfach über die Packetverwaltung installiert werden: sudo apt install usbutils

lsusb [Option]

Optionen:

-v: Anzeige weiterer Details der USB-Devices die am System angeschlossen sind – z. B. Chipsatz (u. u. wichtig bei WLAN-Adaptern)

-t: Anzeige der physikalischen USB-Devices Hierarchie als Baumstruktur

-s: Option zum Anzeigen von bestimmten Geräten nach Bus und/oder Device-Nummer z. B.: lsusb -s 2:4

setxkbmap

Befehl zum einstellen/verwalten des Tastatur-Layouts.

setxkbmap [Argumente] [Layout [Variante [Option...]]]

free / df – Systeminformationen über Arbeitsspeicher und Festplatte

Mit dem Befehl free kann man Informationen zum Arbeitsspeicher anzeigen, disk free (df) gibt einen Bericht über den verfügbaren Speicherplatz von jeder dem System angehänten Festplatten aus.

free -g

Die Option -m/-g für free zeigen die Dateien entweder in Mega- oder Gigabyte an.

Shebang für ausführbare Python-Scripte:

#!/usr/bin/env python3

Das Python-Skript muss anschließend noch mit chmod +x ausführbar gemacht werden!

Allgemeine Befehle:

  • pwd – aktuelles Arbeitsverzeichnis anzeigen
  • cd – „Change directory“ Verzeichnis ändern
  • ls – „List“ Datei- und Verzeichnisinhalte auflisten
  • tree – listet das aktuelle Verzeichnis in Baumstruktur
  • lsblk – Anzeige der Festplattenpartitionen
  • lsof – Liste (von) geöffneten Dateien
  • clear – Inhalt des Terminalfenster „aufräumen“
  • mkdir – „Make directory“ Verzeichnis erstellen
  • rmdir – Verzeichnis löschen
  • mv – Datei oder Verzeichnis verschieben
  • rm – „Remove“ Datei löschen
  • rm -r [Ordnername] – löscht den kompletten Ordner inkl. aller Dateien!
  • cp – „Copy“ Datei/Verzeichnis kopieren
  • cat – Verketten oder Anzeigen von Dateien
  • touch – eine leere Datei erstellen: $ touch datei.txt
  • whoami – zeigt den aktuellen User an
  • netstat – Anzeige des Netzwerkstatus
  • ip addr – Netzwerkadapter mit den zugeordneten IP-Adressen
  • ip -6 addr – Anzeige der Netzwerkadapter mit den zugeordneten IP6-Adressen
  • iwconfig – Anzeige der Netzwerkschnittstellen
  • lsb_release -a – Anzeige der Linux-Distribution
  • shutdown – Herunterfahren des Systems z. B. shutdown -h 30, shutdown -h now
  • reboot – Neustart des Systems
  • exit – aktuelle SSH-Sitzung wird beenden
  • uname – Betriebssystem anzeigen (uname -r für Linux Distribution)
  • python3 -m http.server – Startet einen HTTP-Server auf TCP-Port 8000

Prozesse unter Linux anzeigen/verwalten

  • ps – Anzeige der laufenden Prozesse
  • ps -u [username] – Liste der Prozesse für eine gestimmten User z. B. „root“
  • ps -aux | grep ssh – nach einem bestimmten Prozess suchen (in diesem Fall nach ssh)
  • kill [job-id] – stoppt den Prozess mit der angegebenen Job-ID
  • kill -l – Signale anzeigen
  • htop – startet htop-Tool – grafische Oberfläche für Prozessmanagement in der Konsole

Update des Linux-Systems und Pflege:

  • apt update – aktualisieren der Repositories
  • apt upgrade – System aktualisieren
  • apt dist-upgrade
  • apt autoremove
  • apt autoclean

SSH-Login über das Terminal:

SSH oder Secure Shell ist ein Protokoll, das verwendet wird, um sich sicher bei entfernten Systemen anzumelden. Dies ist die gebräuchlichste Methode, um auf Remote-Linux-Server zuzugreifen.

Die einfachste Variante ist mittels einer Passwort-Authentifikation über den Standart-Port 22:

ssh [user]@[host] – z. B. $ ssh root@127.0.0.1

Für einen erfolgreiches Login ist der Benutzername [user] sowie das entsprechende Passwort notwendig.

Für den Fall das der SSH-Dienst nicht auf dem Standard-Port 22 erreichbar ist, muss der Port mit der Option -p [Portnummer] angegeben werden.

ssh -p [port] [user]@[host] – z. B. $ ssh -p 2200 root@127.0.0.1

Der SSH-Port kann in der SSH-Konfigurationsdatei einfach geändert werden: /etc/ssh/sshd_config

  • Öffnen der Konfigurationsdatei: $ sudo nano /etc/ssh/sshd_config
  • #‚ in der Zeile ‚# Port‚ entfernen
  • nach Port eine beliebige Portnummer eintragen, z. B. 2200
  • Datei anschließend speichern!
  • SSH Service neu starten: $ sudo systemctl restart sshd

Bei der Änderung der Portnummer sollte man beachten, dass kein Standard-Port eines anderen Dienstes verwendet wird. Eine Übersicht über Standard-Ports und die dazugehörigen Dienste findet man hier!

Nach der Änderung der Portnummer und Neustart des SSH-Services, funktioniert das SSH-Login nur noch mit Angabe der Portnummer.

Hostname für das Linux-System ändern

sudo hostnamectl set-hostname [hostname]

File Descriptors und Redirections

  1. Data Stream für Eingabe
    • STDIN – 0
  2. Data Stream für Ausgabe
    • STDOUT – 1
  3. Data Stream für Fehlerausgabe
    • STDERR – 2
find /etc/ -name shadow 2>/dev/null

Die Fehlermeldung (STDERR – 2) wird an das Null-Device übergeben. Die Standardausgabe (STDOUT -1) wird angezeigt

find /etc/ -name shadow 2>/dev/null 1>output.txt
cat output.txt

Fehlermeldung (STDERR – 2) wird an das Null-Device übergeben, die Standardausgabe (STDOUT -1) wird in die Datei „output.txt“ geschrieben. Mit dem „cat“-Befehl wird der Inhalt der Datei angezeigt.

Kategorien: Artikel