Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwehrt bleiben

Hardware & Software 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.
Shell bezeichnet eine traditionelle Benutzerschnittstelle. Benutzer können in der Eingabezeile Kommandos eintippen. Wir zeigen Ihnen eine Auswahl an Befehlen auf.

Distribution identifizieren​

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

Alle gängigen Distributionen wie Arch Linux,
Du musst dich Anmelden oder Registrieren um diesen link zusehen!
, 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_NAMEAusschau, 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.



Prozess blockiert Aushängen​

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).

Dateigrößen interaktiv​

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 qbeenden Sie ncdu.


Wayland oder X11​

Wie kann ich herausfinden, ob meine Desktop-Umgebung im
Du musst dich Anmelden oder Registrieren um diesen link zusehen!
-Modus oder mit X11 läuft?

Öffnen Sie zunächst ein Terminalprogramm wie Gnome-Terminal oder Konsole und versuchen Sie, die Umgebungsvariable XDG_SESSION_TYPEauszulesen. Wurde die Variable gesetzt, gibt echo $XDG_SESSION_TYPEentweder "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 loginctlerneut 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.


Grafikkartentreiber​

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.

Du musst dich Anmelden oder Registrieren um diesen link zusehen!



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

IP-Adressen anzeigen​

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.


Boot-Modus überprüfen​

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.


Booten ins BIOS-Setup​

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


Boot-Reihenfolge ändern​

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.


Hilfe​

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.

Du musst dich Anmelden oder Registrieren um diesen link zusehen!



Statt mit Vollständigkeit zu erschlagen, zeigt tldr zu einem gesuchten Befehl nur eine Handvoll praxistaugliche Beispiele auf.
Quelle: c‘t
 
Zurück
Oben