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:

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 hilfreich, 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 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
  • lsblk – Anzeige der Festplattenpartitionen
  • clear – Terminal aufräumen
  • mkdir – „Make directory“ Verzeichnis erstellen
  • rmdir – Verzeichnis löschen
  • mv – Datei oder Verzeichnis verschieben
  • rm – „Remove“ Datei löschen
  • cp – „Copy“ Datei/Verzeichnis kopieren
  • cat – Verketten oder Anzeigen von Dateien
  • touch – eine leere Datei erstellen: $ touch datei.txt
  • find – Verzeichnis oder Datei finden
  • whoami – zeigt den aktuellen User an
  • 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 beendet.

Prozesse unter Linux anzeigen/verwalten

  • ps – Anzeige der laufenden Prozesse
  • ps -u [username] – Liste der Prozesse für eine gestimmten User z. B. „root“
  • kill [job-id] – stoppt den Prozess mit der angegebenen Job-ID
  • 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 Linux-System ändern

sudo hostnamectl set-hostname [hostname]

Kategorien: Artikel