FAQ: Shell-Helferlein

Längst lässt sich unter Linux fast alles mit grafischen Tools bewältigen. Doch nicht selten ist der Weg über die Kommandozeile schneller und effizienter.

In Pocket speichern vorlesen Druckansicht 81 Kommentare lesen

(Bild: J0hnTV/Shutterstock.com)

Lesezeit: 8 Min.
Von
  • Keywan Tonekaboni
Inhaltsverzeichnis

Shell bezeichnet eine traditionelle Benutzerschnittstelle. Benutzer können in der Eingabezeile Kommandos eintippen. Wir zeigen Ihnen eine Auswahl an Befehlen auf.

Wie finde ich den Namen der Distribution und die Version des von mir verwendeten Linux-Systems heraus?

Alle gängigen Distributionen wie Arch Linux, Debian, Fedora, openSUSE oder Ubuntu hinterlegen Informationen zu System und Version in einheitlicher Form in der Datei /etc/os-release. Deren Inhalt zeigen Sie mit dem Befehl cat an:

cat /etc/os-release

Die Ausgabe der Datei liefert eine Liste mit Schlüsselwörtern wie NAME, VERSION oder ID. Hinter NAME steht die allgemeine Bezeichnung der Distribution ("Fedora"), VERSION verrät die Nummer und Bezeichnung der Ausgabe. Bei einer Rolling-Release-Distribution wie Arch Linux fehlt prinzipbedingt diese Angabe. Im Zweifel halten Sie nach PRETTY_NAME Ausschau, das alle relevanten Angaben in für Nutzer lesbarer Form enthält.

Grundlegende Angaben wie der Name kommen bei allen Systemen vor, aber alle Einträge sind optional. Außerdem können Distributionen ihre eigenen Wertepaare ergänzen.

Sie können die Datei os-release auch in eigenen Skripten einlesen, um abhängig von Distribution oder Version unterschiedliche Aktionen durchzuführen.


Ich möchte einen Datenträger aushängen, aber irgendetwas verhindert das. Wie finde ich heraus, welcher Prozess noch auf den Datenträger zugreift?

Der Aufruf von lsof /dev/sda1 listet für den Gerätepfad /dev/sda1 alle offenen Dateien auf: Sie können aber auch den Pfad verwenden, in dem der Datenträger eingehängt ist. Im folgenden Beispiel zeigt lsof die auf den Einhängepunkt /media/cttest/STICK zugreifenden Prozesse an:

lsof +f -- /media/cttest/STICK

Die Option +f weist lsof an abzubrechen, wenn der Pfad nicht die Wurzel eines Dateisystems ist. Das vermeidet Fehler, wenn man versehentlich ein Unterverzeichnis angibt. Die doppelten Bindestriche sind nötig, damit der Pfad nicht als Parameter interpretiert wird.

Möchten Sie den oder die Prozesse beenden, die das Aushängen blockieren, geht das ohne Umwege über fuser:

fuser -kivm -TERM /media/cttest/STICK

Die Option -k steht für "kill" und -i für "interactive", wodurch fuser vor dem Abschießen nochmal nachfragt. Zusätzliche Informationen zu den Prozessen zeigt -v an, wohingegen -m fuser mitteilt, dass der Pfad sich auf einen Mountpoint bezieht. Im Regelfall geht fuser von einer einzelnen Datei aus (fuser ~/Datei.txt).


Ich möchte wissen, welche Dateien auf meinem Datenträger viel Platz belegen. Zwar zeigt der Befehl du mir die Dateigrößen an, jedoch immer nur als statische Liste. Gibt es auch ein interaktives Werkzeug für die Kommandozeile?

Installieren Sie das Tool ncdu über das gleichnamige Paket, beispielsweise mit sudo apt install ncdu. Es handelt sich um die Ncurses-Variante von du. Starten Sie ncdu, um die Größe der Dateien im aktuellen Verzeichnis anzuzeigen. Standardmäßig sortiert ncdu die Dateien nach Größe und visualisiert den Speicherverbrauch mit einer Balkengrafik. Eine ausgewählte Datei löschen Sie mit d. Weitere Befehle zeigt die Hilfe mit ? an; mit q beenden Sie ncdu.


Wie kann ich herausfinden, ob meine Desktop-Umgebung im Wayland-Modus oder mit X11 läuft?

Öffnen Sie zunächst ein Terminalprogramm wie Gnome-Terminal oder Konsole und versuchen Sie, die Umgebungsvariable XDG_SESSION_TYPE auszulesen. Wurde die Variable gesetzt, gibt echo $XDG_SESSION_TYPE entweder "x11" oder "wayland" zurück. Wenn als Antwort nur eine leere Zeile kommt, ist die Variable nicht gesetzt. Verwenden Sie in diesem Fall den Befehl loginctl, der alle aktiven Benutzersitzungen auflistet. Suchen Sie dann aus der Spalte "SESSION" Ihre Sitzungsnummer heraus und rufen Sie loginctl erneut mit dem Parameter show-session und der Sitzungsnummer auf:

loginctl show-session 2 | grep Type

Mit grep Type wird die passende Zeile gleich herausgefiltert, sonst müssten Sie diese selbst aus der Ausgabe herausfischen.


Für meine Grafikkarte gibt es einen proprietären und einen freien Treiber. Wie finde ich heraus, welcher Grafikkartentreiber verwendet wird?

Installieren Sie hierzu das Programm inxi, das vorhandene Hardware-Informationen zusammensucht und übersichtlich aufbereitet. Unter Debian und Ubuntu lautet der Befehl dazu sudo apt install inxi. Rufen Sie dann inxi mit dem Schalter -G auf, um nur die Informationen zur Grafikkarte anzeigen zu lassen:

inxi -G -xxx

Die Ausgabe enthält kompakt Informationen zur Hardware sowie zu verfügbaren und verwendeten Treibern. Mit -xxx weisen Sie inxi an, besonders ausführlich Auskunft zu geben.

Das Perl-Skript inxi sucht Systeminformationen zusammen und bereitet die ansehnlich auf.

Wie zeige ich die IP-Adressen meiner Netzwerk-Interfaces an?

Nutzen Sie dafür das Kommando ip. Eine knappe Übersicht zum Status aller erkannten Netzwerkgeräte und ihrer IP-Adressen bietet

ip -brief address

Den Aufruf können Sie auch mit ip -br a abkürzen. Mit der zusätzlichen Option -c vor address oder a hebt das Tool die unterschiedlichen Daten farblich hervor, was das Ablesen erleichtert.


Mein Computer startet per UEFI, kann aber auch klassisch booten. Wie kann ich überprüfen, mit welcher Methode mein System hochgefahren ist?

Auf modernen Linux-Systemen mit systemd zeigt der folgende Befehl Informationen zum System an:

bootctl status

Hat ein Legacy-BIOS oder das CSM (Compatibility Support Module) der UEFI-Firmware Ihren Computer klassisch gestartet, meldet bootctl "Not booted with EFI". Das Kommandozeilenwerkzeug gehört zu Systemd-Boot, eine Alternative zum verbreiteten Bootloader GRUB.

Ist das System mit UEFI hochgefahren, gibt bootctl Informationen zu den Booteinträgen in der UEFI-Firmware aus und auch, ob Secure Boot angeschaltet ist. Rufen Sie den Befehl mit sudo oder Root-Rechten auf, kann bootctl auf die EFI-Systempartition zugreifen und zusätzliche Informationen anzeigen.


Um das BIOS-Setup zu öffnen, muss ich kurz nach dem Start des Computers eine bestimmte Taste drücken. Wie kann ich aus meinem Linux-System den Computer so neu starten, dass es von alleine das Setup des UEFI-BIOS aufruft?

Dafür stellt Systemd eine praktische Funktion bereit, die aber ohne weitere Rückfrage den Computer neu startet. Speichern Sie daher zunächst alle nicht gesicherten Daten. Rufen Sie dann systemctl wie folgt auf:

systemctl reboot --firmware-setup


Ich habe auf meinem Computer mit UEFI-BIOS mehrere Betriebssysteme. Wenn ich ein anderes System starten möchte, verpasse ich oft das Boot-Menü. Kann ich mein Linux-System anweisen, einmalig in eins der anderen Systeme zu booten?

Geben Sie hierfür zunächst efibootmgr im Terminal ein, das alle Boot-Einträge auflistet. Jeder Eintrag ist mit einer Kennung (Boot0001, Boot0002, …) versehen. Suchen Sie die Kennung des gewünschten Systems heraus, wobei Sie nur die Zahl ohne führende Nullen benötigen. Rufen Sie dann mit sudo oder Root-Rechten efibootmgr erneut auf und übergeben Sie den herausgesuchten Wert. Für Boot0002 sieht der Befehl folgendermaßen aus:

sudo efibootmgr --bootnext 2

Starten Sie dann den Computer neu.

Wollen Sie dauerhaft die Reihenfolge ändern, nutzen Sie die Option --bootorder und geben die Zahlen in der gewünschten Abfolge getrennt durch Kommata ein: efibootmgr --bootorder 4,1,2.


Ich kenne die Dokumentation in den Manpages, doch die ist oft viel zu ausführlich, um schnell die Syntax eines Kommandos nachzuschlagen. Gibt es eine Übersicht, die nur die wichtigsten Aufrufe eines Befehls verständlich erklärt?

Das Projekt "tldr Pages" hat für viele Befehle aus den Manpages eine Art Spickzettel mit alltagstauglichen Beispielen erstellt. Die auf GitHub gespeicherten Seiten ruft man mit einem Kommandozeilen-Client ab, wovon es mehrere Implementierungen gibt. Je nach Distribution installieren Sie das Paket tldr oder tealdeer. Rufen Sie nach der Installation dann tldr auf, gefolgt von dem Befehl, über den Sie mehr wissen wollen:

tldr ls

In der Regel sind die Beispiele in Englisch erklärt; neuere Version der tldr-Clients zeigen die Hilfe soweit verfügbar auch auf Deutsch an. Installieren Sie hierzu den Node.js-Client von tldr über NPM oder laden Sie von GitHub die Binärdatei herunter.

Mehr Infos

Sie können sich sogar die Hilfe für Tools oder deren Varianten auf anderen Unix-Systemen wie Solaris, macOS oder sogar Windows anzeigen lassen. Wie das geht, zeigt tldr tldr.

Statt mit Vollständigkeit zu erschlagen, zeigt tldr zu einem gesuchten Befehl nur eine Handvoll praxistaugliche Beispiele auf.
c’t 23/2021

In c’t 23/21 lernen Sie die Tricks der Hacker kennen. Mit den passenden Tools knacken Sie vergessene Passwörter, finden Sicherheitslücken in Ihrem Netz und entschlüsseln Word-Dokumente. Außerdem analysieren wir, was Wordpress so einzigartig macht und helfen beim Einstieg und der Suche nach geeigneten Themes und Plug-ins. Die c't 23/21 finden Sie ab dem 22. Oktober im Heise-Shop und am gut sortierten Zeitschriftenkiosk.

(ktn)