Übersetzungen dieser Seite:
  • de-informal

Linux Best Practices

Auf dieser Seite findest du eine Reihe von Tipps und Tools rund um den Gebrauch von Linux.

Tipps

Allgemeines

Tutorial und Cheat Sheets

Für blutige Anfänger sind dieses interaktive Linux-Tutorial und dieses Linux Cheat Sheet eine hilfeiche Unterstützung.

Installation

Im Normalfall ist zur Installation zusätzlicher Software immer die Verwendung des Paketmanagers des jeweiligen Betriebssystems zu bevorzugen. Dieser kümmert sich - anders als bei einer Installation aus einem beliebigen Download - immer um die Auflösung eventueller Abhängigkeiten und ermöglicht eine problemlose Entfernung nicht mehr benötigter Pakete.

Bei dem von uns verwendeten Ubuntu-Linux hört der Paketmanager auf den Befehl apt bzw. apt-get.

Beispiele:

  • Lokalen Katalog der verfügbaren Pakete aktualisieren: apt update
  • Installierte Pakete upgraden: apt upgrade
  • Pakete zur Installation von nmap suchen: apt search nmap
  • Paket nmap installieren: apt install nmap
  • Paket nmap wieder entfernen:
    • apt remove nmap (Konfiguration behalten) oder
    • apt purge nmap (Konfiguration auch entfernen)
  • Nicht mehr benötigte Pakete entfernen: apt autoremove

Schreibarbeit auf der Kommandozeile sparen

Tabulatorergänzung

Verwende die Tabulatorergänzung. Viele Befehle und Pfade lassen sich durch das Drücken der Tabulatortaste vervollständigen oder du erhältst zumindest eine Auflistung verschiedener Ergänzungsmöglichkeiten.

Die häufige Verwendung von Tabulatorergänzung hilft auch dabei Tippfehler zu vermeiden.


Pfeiltasten

Verwende die Pfeil-nach-oben- und Pfeil-nach-unten-Tasten um durch bereits verwendete Befehle zu scrollen und spare dadurch Schreibarbeit.


Befehlssuche

Wenn du einen Befehl vor längerer Zeit eingegeben hast und der Weg mit der Pfeil-nach-oben-Taste zu mühsam ist, dann drücke Strg+r. Dadurch öffnet sich der interaktive Suchmodus der Kommandozeile. Wenn du jetzt ein Stück Text eingibst, dass du früher schon mal in einem Befehl verwendet hast, dann wird der ganze Befehl automatisch eingefügt.

Mit Enter kannst du ihn dann verwenden. Mit den Pfeil-nach-links- und Pfeil-nach-rechts-Tasten kannst du den Befehl zuvor noch bearbeiten.

Wenn der gefundene Befehl nicht der richtige ist und der gesuchte noch länger her ist, kannst du durch erneutes Drücken von Strg+r nach und nach alle Fundstellen durchsuchen.


Tools

Screen

Screen ermöglicht es dir mit mehreren virtuellen Fenstern auf der Kommandozeile zu arbeiten und auch bei instabilen Verbindungen Programme zuverlässig weiterlaufen zu lassen.

Nano

Nano ist einer der Standard-Texteditoren unter Linux. Er ist für alle Windows-Umsteiger vermutlich die am einfachsten zu bedienende Variante. Um eine Datei zu bearbeiten braucht man nur nano /pfad/zur/datei.txt eingeben und der Editor öffnet sich. Die Steuerung erfolgt über Tastaturkürzel, welche in Kombination mit der Steuerungstaste eingeleitet werden. Die wichtigsten davon werden am unteren Bildschirmrand angezeigt. Beispielsweise bedeutet die Angabe ^X, dass Strg und X zu drücken sind um den Editor zu beenden.

Wie immer ist es hilfreich, die Ausgaben des Editors zu lesen, bevor man weitere Tastenkombinationen drückt.

VIM

Der Texteditor VIM ist eine mächtige Alternative zu Nano. Er ist am Anfang etwas gewöhnungsbedürftig, weil er ein etwas eigenwilliges Bedienkonzept verfolgt. Hat man sich aber erst einmal daran gewöhnt, arbeitet man mit VIM auf der Kommandozeile extrem schnell und effizient.

Markantestes Merkmal ist die Unterscheidung von Kommandomodus und Einfügemodus. Solange man nicht in den Einfügemodus gewechselt hat, werden alle Tastenanschläge als Kommandos interpretiert.

Hat man als ungeübter Anwender einmal eine Datei beim Bearbeiten beschädigt, kommt man durch

  1. mehrmaliges Drücken der Escape-Taste
  2. Eingabe von :q!
  3. und Abschließendes Drücken der Enter-Taste

wieder aus der Datei heraus ohne die Änderungen zu speichern.

SSH

Der Umgang mit SSH als entfernte interaktive Kommandozeile wird vorausgesetzt.

Bei Bedarf kann diese Anleitung für Root-Login per SSH mit Passwort zu Hilfe genommen werden.


SCP

SSH kann man auch dazu verwenden, um über eine SSH-Verbindungen Dateien zu kopieren. Die Angaben für Quelle oder Ziel folgen dabei einem vorgegebenen Schema.

Möchte man z. B. die Datei /etc/ssh/sshd_config als Nutzer root von dem entfernten Host 10.2.3.4 in das Unterverzeichnis myconf im lokalen Verzeichnis kopieren, dann lautet der Befehl dazu:

scp root@10.2.3.4:/etc/ssh/sshd_config ./myconf/

Um die Datei notizen.txt aus dem lokalen Verzeichnis auf den entfernten Host 10.2.3.4 ins Verzeichnis /var/www/html/ zu kopieren, lautet der Befehl:

scp notizen.txt root@10.2.3.4:/var/www/html/

SSH-Tunnel

SSH kann nicht nur dazu verwendet werden um Kommandozeilenbefehle auf einem entfernten Host anzugeben. Ebenfalls sehr praktisch ist die Verwendung eines SSH-Tunnels, über den Netzwerkverkehr durch eine SSH-Verbindung in andere Netzwerke übertragen werden kann, die ansonsten nicht erreichbar wären. Genauere Ausführungen zum SSH-Tunnel gibt es hier.


Netzwerkkonfiguration

Zur Anzeige der aktuellen Netzwerkeinstellungen sowie zur temporären Veränderung der Netzwerkkonfiguration können Kommandozeilenbefehle direkt eingesetzt werden. Unter Ubuntu ist das ip-Kommando (z. B. ip address bzw. ip ad oder ip route) der aktuelle Standard. Das ältere ifconfig-Kommando gilt als veraltet.

Ebenso gelten /etc/network/interfaces und verwandte Dateien als veraltet. Stattdessen wird unter Ubuntu mittlerweile auf netplan gesetzt.

Netplan

Seit einiger Zeit ist die Netzwerkkonfiguration via Netplan bei Ubuntu zum Standard geworden. Die Konfiguration erfolgt über YAML-Dateien, welche sich im Verzeichnis /etc/netplan/ befinden. Veränderungen an den Konfigurationsdateien werden mit dem Befehl netplan apply angewendet.

Hier findest du ein Beispiel für eine /etc/netplan/config.yaml mit statischer IPv4-Adresse und dynamischer IPv6-Adresskonfiguration.

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 10.0.123.4/16
      routes:
        - to: default
          via: 10.0.0.1
      nameservers:
        addresses:
          - 9.9.9.9
          - 2620:fe::fe
      dhcp6: yes
      accept-ra: yes