Unentbehrliches Terminal

Trotz kompletter Ausstattung grafischer Werkzeuge bleibt das Terminal unter Linux unentbehrlich. Der Beitrag nennt in aller Kürze wichtige Terminal-Programme, die jeder Nutzer kennen sollte.

Welche die allerwichtigsten Terminal-Kommandos sind, darüber lässt sich sicher kontrovers diskutieren. Ohne die nachfolgend allenfalls am Rande erwähnten cd, mkdir, ls, cat oder find geht es wohl kaum. Die setzen wir hier aber schlicht voraus und konzentrieren uns auf unverzichtbare Befehle, die einen Schritt über die alltägliche Basisnutzung des Terminals hinausführen.

Programme und Prozesse

ps –A zeigt alle laufenden Prozesse. Die Ausgabe ist standardmäßig nach der PID-Nummer sortiert, was bei der Suche nach einem bestimmten Prozess eher unübersichtlich ist. Durch folgende Sortierung der vierten Spalte erhalten Sie eine alphabetische Liste:

ps –A | sort –k4

xprop zeigt zahlreiche interne Eigenschaften grafischer Programme an. Das einfachste und häufigste Motiv, xprop zu verwenden, ist die Frage nach dem Programmnamen eines Fensters. Also etwa die Frage: Wie lautet der Name des Dateimanagers, den ich gerade benutze? Um den xprop-Output gleich daraufhin zu filtern, genügt etwa:

xprop | grep CLASS

Wenn Sie diesen Befehl eingeben, verwandelt sich der Mauszeiger in ein Kreuz, mit dem Sie auf das gewünschte Fenster klicken. Im Terminal erscheint dann der zughörige Programmname.

Vor allem Prozesse, die in mehreren Instanzen laufen wie etwa Web-Browser, sind mit grafischen Hilfsmitteln wie der Systemüberwachung schlecht zu zähmen. Um alles zu beenden, was etwa zu Chrome oder Chromium gehört, hilft pkill:

pkill chrom

Die Eigenschaft von pkill, auch Teilstrings von Programmnamen zu akzeptieren, macht die Sache besonders einfach, allerdings auch riskanter. Achten Sie darauf, dass der String eindeutig bleibt.

Das beste Kommandozeilen-Tool für Prozesse, CPU- und RAM ist htop. Es ist über Taste F2 („Setup“) hervorragend konfigurierbar und erlaubt auch den „Kill“ von Tasks (F9: „Kill“).

CPU, Speicher, Prozesse: htop für die Kommandozeile überzeugt durch Umfang und Konfigurierbarkeit. Sie stellen es mühelos so ein, dass es die für Sie relevanten Infos zeigt.
CPU, Speicher, Prozesse: htop für die Kommandozeile überzeugt durch Umfang und Konfigurierbarkeit. Sie stellen es mühelos so ein, dass es die für Sie relevanten Infos zeigt.

Hardware, Software, Laufwerke

Die spezialisierten Tools lspci und lsusb zeigen sämtliche PCI- und USB-Geräte, wobei Sie die Gesprächigkeit der Ausgabe durch die Parameter „-v“ und „-vv“ erhöhen können. Weitgehend die komplette übrige Hardware kann dmidecode analysieren, wobei Sie die gesuchte Komponente mit dem Schalter „–t“ angeben:

sudo dmidecode –t bios

Mögliche Parameter nach „-t“ sind bios, system, baseboard, chassis, processor, memory, cache , connector und slot.

Im Prinzip finden Sie alle diese Infos (und mehr) in den Dateien unter /proc, die Sie etwa mit cat einsehen können:

cat /proc/cpuinfo

Spezielle Info-Tools tun meist nicht mehr, als die Datenflut der Dateien unter /proc etwas lesbarer zu filtern und aufzubereiten.

Ein schnelles und alphabetisch sortiertes Inventar der installierten Software inklusive Kurzbeschreibung und Versionsangabe des jeweiligen Pakets befördert der Befehl

dpkg-query –l

ins Terminal. Die vollständige Liste zeigt eine vermutlich vierstellige Paketmenge, die Sie etwa mit nachgestelltem „ | grep –i xubuntu“ gezielt filtern.

Der folgende Befehl ist eine wichtige Hilfe bei der Suche nach einer Software oder eines Paketnamens:

apt-cache ftp client

Hier erhalten Sie eine ganze Reihe passender Programme angezeigt und können das gewünschte dann mit dem Paketnamen über apt-get install [name] installieren.

Den schnellsten und übersichtlichsten Weg, sich alle Datenträger-Kennungen anzeigen zu lassen, bietet folgender Befehl:

sudo blkid

Ausführlicher, aber weniger übersichtlich ist sudo fdisk –l. Die richtige Datenträger-Kennung ist fundamental, um etwa einen dd-Befehl oder eine Partitionierung durchzuführen.

Schnelle Anzeige der Partitionskennungen: blkid sagt nicht viel, aber genau das, was Sie zum Auffinden eines Datenträgers brauchen.
Schnelle Anzeige der Partitionskennungen: blkid sagt nicht viel, aber genau das, was Sie zum Auffinden eines Datenträgers brauchen.

Arbeiten im Netzwerk

Obwohl aktuelle Linux-Distributionen Netzwerkfreigaben über den grafischen Dateimanager einbinden können, ist das Kommando mount immer noch unentbehrlich. Damit mounten Sie eine Netzressource nämlich ins lokale Dateisystem und können dann alle Dateikommandos (wie cd, ls, find, tar, rsync…) uneingeschränkt nutzen:

sudo mount -t cifs -o username=ha,password=geheim //192.168.0.200/volume_1 /media/ha/nas

Der Mountpunkt /media/ha/nas in diesem Beispiel ist danach für alle Terminalbefehl wie ein lokaler Pfad zu verwenden.

Die Netzwerk-Tools ifconfig und ping müssen immer zur Hand sein, erstens um die IP- und MAC-Adresse des eigenen Rechners zu ermitteln (ifconfig ohne Parameter), zweitens um die Erreichbarkeit von anderen PCs im LAN oder Servern im Web zu kontrollieren (ping [IP-Adresse]).

Schnörkellosen Fernzugriff auf einen entfernten Rechner bietet ssh:

ssh ha@192.168.0.66

Nach Eingabe des User-Kennworts für das entfernte System, ist man sofort auf dessen Konsole. Im Unterschied zum SSH-Client, der überall bereitsteht, muss auf Rechnern, auf die zugegriffen wird, zusätzlich der SSH-Server installiert sein (Paketname: openssh-server).

Für den automatischen Download und Upload vom und ins Web sind wget und wput erste Wahl. Beide gehören nicht zum Standardumfang des Terminals, jedoch ist wget häufig vorinstalliert, wput schnell nachinstalliert (Paketname: wput). Trotz uferloser Parameterliste sind die Basisbefehle

wget http://meineseite.de/Downloads/Datei.txt
wput Datei.txt ftp://[FTP-User]:[FTP-Kennwort]@meineseite.de/Downloads/

recht einfach.

Mit ssh auf den entfernten Rechner: Der einzige dort abgesetzte Befehl ist hier„exit“, der zurück zum lokalen Rechner führt. Die unterschiedlichen Prompts zeigen den Rechnerwechsel.
Mit ssh auf den entfernten Rechner: Der einzige dort abgesetzte Befehl ist hier„exit“, der zurück zum lokalen Rechner führt. Die unterschiedlichen Prompts zeigen den Rechnerwechsel.

Arbeiten mit Dateien

Zum Sichern von Dateien sind die Dinosaurier tar und rsync immer noch die wichtigsten Tools. Tar speichert alle zu sichernde Dateien in ein einziges, üblicherweise komprimiertes Archiv, während rsync im Ziel eine identische Verzeichnisstruktur anlegt und die Dateien dort ablegt. Tar ist platzsparender, rsync besser für periodisches Sichern geeignet, weil es automatisch nur geänderte Dateien berücksichtigt. Dass die Daten bei der rsync-Sicherung einzeln zugänglich sind, ist ein weiterer Vorteil.

Ein typischer tar-Befehl zum Einpacken beginnt mit einigen Optionen, nennt die Zieldatei und zuletzt den Pfad der zu sichernden Daten:

tar –cvzf Archivname /Quellpfad

Die Parameter bedeuten: c (create: neues Archiv erstellen), v (verbose: Fortschrittsanzeige), z (Zip: Kompressionsart), f (File: Datei als Ziel). Um das Archiv wieder zu entpacken, ersetzen Sie „c“ durch „x“ für Extract:

tar –xvzf Archivname

In diesem Fall wird die Ordnerstruktur mit allen Dateien im aktuellen Pfad entpackt, wohin Sie am einfachsten vorher mit cd navigieren. Die Angabe des Zielordners ist aber auch so möglich:

tar –xvzf Archivname –C /Zielpfad

Rsync kennt zahlreiche Spezialoptionen, aber oft genügt der Sammelschalter „-a“, eventuell noch mit „-v“ (verbose), um ausreichend informiert zu werden:

rsync -av /Quellpfad /Zielpfad

Dies berücksichtigt alle Unterverzeichnisse des Quellpfads. Für periodische Sicherungen zeitsparend ist Schalter „u“, also insgesamt rsync -auv […]. Dieser Update-Schalter spart viel Zeit, indem er bereits bestehende Dateien überspringt. Sollen nur bestimmte Dateien kopiert werden (im Beispiel PDF), gerät die rsync-Syntax alles andere als intuitiv:

rsync -av --include "*/" --include "*.pdf" --exclude "*" /Quellpfad /Zielpfad

Das Werkzeug dd (Diskdump) erledigt Bit-genaue Kopien von einem Gerät auf das andere. Unentbehrlich ist es unter anderem für Hybrid-ISOs, die sowohl von DVD/BD und USB booten können. Hier scheitern nämlich Werkzeuge wie Brasero oder Unetbootin:

sudo dd if=hybrid.iso of=/dev/sd[x]

„if“ steht für „Input File“, danach kann aber ein Gerät wie /dev/sda oder eine Partition folgen. „of“ steht für „Output File“, ist in diesem Beispiel aber ein Laufwerk – etwa eine DVD oder ein USB-Stick.