Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt, als mit grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
Know-how für die Kommandozeile
Tipp: Große Dateien aufteilen
Falls eine Datei zu groß ist, um sie beispielsweise per E-Mail zu versenden, hilft das Programm split weiter. Über die Option -b teilen Sie dem Programm mit, wie groß die einzelnen Häppchen sein sollen. Dieser Parameter versteht drei verschiedene Einheiten: b steht für Byte (zum Beispiel 500b, um Teilstücke à 500 Byte zu erstellen), k für KByte (zum Beispiel 1000k) und m für MByte (10m, um Dateien à 10 MByte zu erhalten).
Der vollständige split-Befehl, um eine Datei in 2 MByte große Einzelteile zu zerlegen, lautet also:
split -b 2m film.avi
Die kleinen Stücke tragen anschließend die Namen xaa, xab, xac und so weiter, und die große Datei bleibt in ihrem Ursprungszustand erhalten. Um die Einzelteile anders zu nennen, geben Sie nach dem gezeigten Aufruf die Vorsilbe entsprechend an, zum Beispiel:
split -b 2m film.avi teil_
Die Namen der kleinen Stücke beginnen nun mit teil_ und enden wiederum mit einer eindeutigen Buchstabenfolge (Abbildung 1).
Tipp: Gesplittete Dateien wieder zusammensetzen
Das Zusammensetzen erfolgt ebenso leicht: Sammeln Sie alle Teile in einem Verzeichnis und nehmen Sie dann den Befehl cat zur Hilfe:
cat teil_* > film_komplett.avi
Achtung: Das gezeigte Kommando setzt den Umleitungsoperator > ein, der die Datei film_komplett.avi überschreibt, wenn diese schon existiert [1]. Achten Sie daher darauf, einen noch nicht vorhandenen Namen zu vergeben. Der Aufruf
$ md5sum film.avi ea7cfedffa069d39762125c10806412a film.avi $ md5sum film_komplett.avi&wrap; ea7cfedffa069d39762125c10806412a film_komplett.avi
bestätigt, dass die MD5-Summe des Originals und des aufgeteilten und wieder zusammengesetzten Films identisch ist, es also keinen Unterschied zwischen den beiden Dateien gibt.
Tipp: Sichere Datenübertragung auf der Shell
Wer oft Daten zwischen zwei Linux-Rechnern austauscht, muss diese nicht per Diskette, Memorystick oder ähnlichen Medien hin und her kopieren. Schneller geht es mit scp (“Secure Copy”) auf der Kommandozeile. Um die Datei film.avi aus dem aktuellen Ordner ins eigene Home-Verzeichnis auf einem zweiten Linux-Rechner mit der IP-Adresse 192.168.1.3 zu transportieren, tippen Sie beispielsweise:
scp film.avi 192.168.1.3:
Achten Sie auf den abschließenden Doppelpunkt hinter der IP-Adresse der Gegenstelle. Das Kommando schließen Sie mit [Eingabe] ab und geben dann das Passwort für den Account auf dem entfernten Rechner ein.
Der gezeigte Befehl funktioniert lediglich, wenn der Benutzername auf beiden Seiten gleich lautet. Heißen Sie auf dem entfernten Rechner anders, stellen Sie den entsprechenden Benutzernamen zusammen mit einem Klammeraffen (@) vor die IP-Adresse der Gegenstelle:
scp film.avi huhn2@192.168.1.3:
Um die Datei auf dem entfernten Rechner direkt in ein anderes Verzeichnis zu befördern, hängen Sie den Aufenthaltsort hinter den Doppelpunkt. So kopiert der Befehl
scp film.avi huhn2@192.168.1.3:media/filme/
die Datei film.avi in den Ordner /home/huhn2/media/filme. Beachten Sie, dass hier ebenfalls eine volle Pfadangabe (und nicht nur die Definition relativ zum Home-Verzeichnis) möglich ist. Die Ortsangabe aus dem letzten Listing könnten Sie also auch in der Langform mit dem absoluten Pfad angeben: huhn2@192.168.1.3:/home/huhn2/media/filme/.
Auch in die andere Richtung funktioniert der verschlüsselte Datenaustausch. Dazu müssen Sie nicht erst zum zweiten Computer wandern und dort den entsprechenden Befehl eingeben. Um von der Gegenstelle etwas aus dem Home-Verzeichnis ins aktuelle Verzeichnis zu kopieren, tippen Sie:
scp huhn2@192.168.1.3:gack.mp3 .
Der abschließende Punkt repräsentiert dabei das aktuelle Verzeichnis. Liegt die Datei auf der Gegenseite in einem anderen Ordner, geben Sie das Verzeichnis wiederum über den relativen oder absoluten Pfad an, zum Beispiel:
scp huhn2@192.168.1.3:media/musik/gack.mp3 .
Wollen Sie ganze Verzeichnisse (und nicht nur einzelne Dateien) kopieren, teilen Sie scp dieses über den Parameter -r (“rekursiv”) mit. Das funktioniert wie gehabt in beide Richtungen:
scp -r huhn2@192.168.1.3:media/musik . scp -r media/filme 192.168.1.2:
Tipp: PDF in PostScript konvertieren (und andersherum)
Die beiden Dateiformate lassen sich problemlos hin und her konvertieren – ein Befehl auf der Shell reicht aus. Um ein PDF-Dokument ins PostScript-Format zu bringen, tippen Sie:
pdf2ps datei.pdf
Der Umwandlungskünstler legt die neue Datei datei.ps im selben Verzeichnis ab. In die andere Richtung geht’s entsprechend mit:
ps2pdf datei.ps
Auch hier landet das neue Dokument datei.pdf im selben Ordner.
Tipp: PostScript-Dokumente: Seiten zusammenfassen
Um eine längere PostScript-Datei papiersparend auszudrucken, fassen Sie mit dem Befehl psnup mehrere Seiten zu einer zusammen. Zunächst installieren Sie aber unter Ubuntu und OpenSuse das Paket psutils. Um zwei Seiten auf einer unterzubringen, geben Sie hinter dem Befehl die Option -2, den Namen der Originaldatei und den der neuen Datei an, zum Beispiel:
psnup -2 datei.ps datei2.ps
Das Kommando versteht auch andere Angaben zur Seitenzahl: Zwischen -2 und -8 ist alles möglich – ob die Dokumente dann noch lesbar sind, steht auf einem anderen Blatt. Ragen die geschrumpften Texte über den Rand der Seite hinaus, hilft die Option -m:
psnup -2 -m50 datei.ps datei2.ps
Sie sorgt dafür, dass psnup im Zieldokument etwas Platz für einen Rand lässt und holt so den abgeschnittenen Text zurück in das Zentrum der Seite.
Tipp: Papiergröße einer PostScript-Datei ändern
DIN A4, DIN A5, Letter, Tabloid, Legal – Papiergrößen gibt es wie Sand am Meer. Liegt ein PostScript-Dokument in einem Format vor, das der eigene Drucker nicht versteht, bietet das Programm psresize eine schnelle Größenanpassung auf der Shell. Sie gehört ebenfalls zum Paket psutils. Das Tool erwartet beim Aufruf hinter der Option -P die Angabe zum ursprünglichen Format, und hinter -p die neue Größe, den Namen der Originaldatei und den des neuen Dokuments, zum Beispiel:
psresize -Pa4 -pa5 datei.ps datei_a5.ps
Erhalten Sie ein Dokument, das im Format Letter (21,6 cm x 27,9 cm) vorliegt, bringen Sie es mit dem folgenden Kommando ins A4-Format:
psresize -Pletter -pa4 datei.ps datei_a4.ps
Alternativ teilen Sie dem Programm genaue Angaben zur Höhe und Breite in Zentimetern oder Inches (Zoll) mit. Zum Einsatz kommen die Parameter -w (“width” = “Breite”) und -h (“height” = “Höhe”):
psresize -w6.0cm -h5.0cm datei.ps datei_neu.ps
Tipp: Job-Kontrolle mit “jobs”, “bg” und “fg”
Wenn Sie ein Programm aus einer Konsole heraus starten, kann es sinnvoll sein, direkt ein Kaufmannsund-Zeichen anzuhängen. Das sorgt dafür, dass der Prozess im Hintergrund startet. Dadurch blockiert er das Terminal nicht und bleibt für weitere Eingaben verfügbar. Starten Sie eine Anwendung auf diese Weise, sehen Sie in eckigen Klammern die so genannte Job-ID und direkt dahinter die Prozessnummer:
$ konqueror & [1] 7314
Die ID für den Prozess wird vom System eindeutig vergeben, die Nummer des Jobs hingegen verteilt die jeweilige Shell. Starten Sie aus der gleichen Sitzung heraus ein zweites Programm, erhält dieses also die Job-Nummer [2]:
$ konsole & [2] 8423
Um sich einen Überblick über die aktuell laufenden Jobs zu verschaffen, dient das gleichnamige Kommando jobs. Geben Sie dieses einfach am Shell-Prompt gefolgt von [Eingabe] ein:
$ jobs [1]- Running konqueror & [2]+ Running konsole &
Haben Sie das Kaufmannsund-Zeichen beim Aufruf vergessen, (und ist die Shell somit “blockiert”), verursacht es keine Probleme, Prozesse nachträglich in den Hintergrund zu befördern: Dazu halten Sie den Prozess zunächst mit der Tastenkombination [Strg]+[Z] an und befördern ihn dann mit dem Befehl bg (wie “background” = “Hintergrund”) in den Hintergrund:
$ xterm <[Strg-Z]> [3]+ Stopped xterm $ bg [3]+ xterm &
In diesem Fall hat bg den richtigen Job erwischt. Befinden sich mehrere angehaltene Jobs in dieser Shell, wählt bg den mit der höchsten ID aus. Um einen bestimmten Job anzusprechen, finden Sie daher mit jobs die Jobnummer heraus und geben diese zusammen mit einem vorangestellten Prozentzeichen an bg weiter:
$ jobs [1] Running konqueror & [2]- Stopped konsole [3]+ Stopped xterm $ bg %3 [3]+ xterm &
Ähnlich arbeitet fg: Wie der Name (“foreground” = “Vordergrund”) vermuten lässt, rückt fg Jobs wieder in den Vordergrund. Auch dieser Befehl nimmt auf Wunsch die Job-ID zusammen mit einem Prozentzeichen entgegen:
$ fg %3 xterm
Das Terminal ist anschließend wieder “blockiert” – so lange, bis das Programm anhält oder endet. In einem solchen Fall informiert die Shell Sie ebenfalls über die Vorgänge und meldet:
[1]- Done konqueror
Glossar
-
MD5-Summe
-
Auch Checksumme oder Prüfsumme genannt. Sie dient oft zur Überprüfung der Integrität von Dateien. Mit dem Kommandozeilentool md5sum geben Sie die Prüfsumme einer Datei unter Linux auf der Shell aus. So können Sie diese mit einer bekannten früheren Summe vergleichen und sicherstellen, dass die Datei nicht verändert oder beschädigt wurde.
[1] Umleitungsoperatoren auf der Shell: Heike Jurzik, “Genial gelenkig”, EasyLinux 09/2005, S. 84 ff., http://www.easylinux.de/2005/09/084-umleitungen/


