claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 03/2007   »   Ausgabe bestellen

Know-how für die Kommandozeile

Shell-Tipps

Heike Jurzik


Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilen-Tools, mit denen sich manche Aufgabe schneller bewältigen lässt als in grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug auf die Shell zu ermutigen.

Tipp: Schneller navigieren mit "cd"

Mit dem Kommando cd (englisch "change directory" = "Verzeichnis wechseln") navigieren Sie durch die Ordner auf Ihrer Festplatte. So wandern Sie beispielsweise über

cd /etc/X11

in das Verzeichnis, das unter anderem die Konfigurationsdateien des X-Servers beherbergt. Ein Verzeichnis zurück geht's über

cd ..

und durch die reine Eingabe von cd (ohne Aufrufoptionen oder Ortsangaben) kommen Sie ins eigene Home-Verzeichnis zurück.

Neben dieser effizienten Möglichkeit, schnell nach Hause zu gelangen, bringt Sie

cd -

ins zuletzt besuchte Verzeichnis. Wiederholen Sie das Kommando, kehren Sie wieder zum ursprünglichen Verzeichnis zurück. Da sich die Shell immer nur den letzten Aufenthalt "merkt", springen Sie also in den Verzeichnissen vor und zurück (Abbildung 1).

Abb. 1: Das Kommando "cd" bietet einige praktische Features, mit denen Sie besser navigieren.

Tipp: Orientierung verloren?

Wer sich mit cd einmal im Verzeichnisdschungel verirrt und über den Prompt nicht den aktuellen Aufenthaltsort erfährt, erhält über den Befehl pwd die Orientierung zurück.

$ pwd
/usr/share/doc/bash

Tipp: Wörter, Zeilen oder Bytes lesen

Wie viele Worte hat mein Text? Wie viele Zeichen gibt es, und wie viele Zeilen habe ich insgesamt geschrieben? Für diese Informationen müssen Sie keinen Texteditor bemühen, denn wc (englisch "word count" = "Wortzähler") gibt Auskunft auf der Kommandozeile. Ohne weitere Parameter gestartet, zeigt wc drei Werte:

$ wc datei.txt
  36  228 1468 datei.txt

Dabei steht der erste Wert für die Zeilen, der zweite für die Worte und der dritte für die Zeichen. Alle drei Angaben können Sie auch einzeln betrachten: So zeigt wc -l nur die Zeilenanzahl (englisch "line"), -w die Worte und -c die Zeichen (englisch "characters").

Definieren Sie nach dem Kommando mehr als eine Datei, gibt wc zusätzlich die Anzahl der Gesamtzeilen aus. So verrät

$ wc -l datei1.txt\
 datei2.txt datei3.txt
    8 datei1.txt
   36 datei2.txt
  341 datei3.txt
  385 insgesamt

zunächst die Zeilenanzahl der drei Dateien und ergänzt die Summe am Ende.

Tipp: Dateien mit find und wc zählen

Wer schnell die Zahl von Dateien in einem Ordner ermitteln möchte, kann tricksen und die Programme find ([1], sucht nach Dateien) und wc geschickt kombinieren: Dazu lassen Sie find über die Option -type f (englisch "file") nur normale Dateien -- und nicht auch die Verzeichnisse -- auflisten und leiten die Ausgabe ohne Umweg über das Pipe-Zeichen | an wc weiter. Letzterem Befehl teilen Sie über die Option -l mit, dass Sie die Zeilenzahl suchen:

$ find /home/huhn\
/digikam/ -type f | wc -l
2010

Als Ergebnis sehen Sie die Anzahl der Dateien im Ordner digikam und dessen Unterverzeichnissen.

Mit dem Parameter -name schränken Sie die Suche weiter ein und fahnden beispielsweise nur nach bestimmten Dateiendungen, zum Beispiel:

$ find /scratch3/mp3/\
 -type f -name "*.ogg" | wc -l
91

Das Kommando zählt alle Dateien aus dem Verzeichnis /scratch3/mp3/, deren Dateinamen auf .ogg enden. Verwenden Sie ein Wildcard-Zeichen wie hier das Sternchen, achten Sie darauf, den Ausdruck in Anführungszeichen zu setzen. Andernfalls wertet die Shell ihn aus und gibt ihn nicht unverändert an find weiter.

Tipp: Terminalfenster aufräumen: "clear" und "reset"

Der Befehl clear räumt gründlich auf und löscht den gesamten Bildschirminhalt im Terminal. Anschließend sehen Sie wieder die Eingabeaufforderung (Prompt) in einem ansonsten leeren Fenster. Während dies bei den grafischen Terminalprogrammen unter KDE und Gnome eher selten zum Einsatz kommt (schließlich lässt sich hier übersichtlich in mehreren Reitern arbeiten), kann ein solcher Terminalputz auf den virtuellen Konsolen (Tastenkombination [Strg-Alt-F1], [Strg-Alt-F2] usw.) durchaus für mehr Durchblick sorgen. Statt clear am Befehls-Prompt einzugeben, können Sie auch [Strg-L] drücken.

Noch gründlicher räumt der Befehl reset auf. Dieses Kommando leert nicht nur das Fenster, sondern setzt auch diverse andere Einstellungen zurück, wenn Sie versehentlich eine Binärdatei ins Terminal umgeleitet haben und nur noch wirre Sonderzeichen sehen (Abbildung 2). Um diesen Zeichensalat aufzuräumen, tippen Sie (notfalls "blind") reset und bestätigen mit [Eingabe].

Abb. 2: Zeichensalat im Terminal -- "reset" hilft aus der Misere.

Tipp: Informationen zum System abfragen

Wer nach Informationen zu Kernel, Arbeitsspeicher oder Prozessor des eigenen Systems sucht, muss kein grafisches Programm bemühen und sich durch die Menüstrukturen klicken. Auf der Shell verraten einige Tools mehr zu diesen Interna.

Das Programm uname beispielsweise gibt Auskünfte zum Namen des Kernels (-s) und des Rechners (-n), zur Release-Nummer des Betriebssystems (-r), zur Kernel-Version (-v), zur Rechnerarchitektur und zum Betriebssystem (-o). Alle Informationen auf einen Schlag sehen Sie so:

$ uname -a
Linux transpluto 2.6.18-4-\
k7 #1 SMP Mon Mar 26 17:57:\
15 UTC 2007 i686 GNU/Linux

Viele dieser Informationen und noch mehr offenbart ein Blick ins Verzeichnis /proc -- hier liegen verschiedene Dateien, die der Kernel dynamisch generiert. So enthält meminfo beispielsweise Informationen zum Speicher des Rechners. Zur schnellen und unkomplizierten Präsentation auf der Shell setzen Sie das Programm cat ein, das den Dateiinhalt auf die Konsole schreibt:

$ cat /proc/meminfo
MemTotal:      1036708 kB
MemFree:         19396 kB
...

Wie viel Arbeitsspeicher der Rechner hat, steht direkt in der ersten Zeile (MemTotal). Im Verzeichnis /proc gibt es noch weitere interessante Dateien, zum Beispiel verrät /proc/cpuinfo welchen Prozessor Sie besitzen:

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 8
model name      : AMD Athlon(tm)\
 XP 2200+
cstepping        : 1
cpu MHz         : 1795.047
...

Tipp: Farbe für grep

Das Programm grep [2] sucht in Texten nach bestimmten Mustern; zum Beispiel gibt

grep Heike datei.txt

alle Zeilen der Datei datei.txt aus, die das Suchmuster "Heike" enthalten. Übersichtlicher wird das Ganze, wenn Sie grep die Option --color mit auf den Weg geben (Abbildung 3). Standardmäßig präsentiert grep dann die Treffer in Rot.

Wenn Sie eine andere Farbe bevorzugen, setzen Sie die Umgebungsvariable GREP_COLOR wie in der Abbildung zu sehen neu. Die Angabe des ANSI-Farbcodes 34 (über so genannte Escape-Sequenzen) sorgt dafür, dass die Fundstellen nun blau erscheinen. Andere Werte für die grep-Farbcodes sind zum Beispiel: 30 (schwarz), 31 (rot), 32 (grün), 33 (gelb), 34 (blau), 35 (magenta), 36 (cyan) und 37 (weiß).


Escape-Sequenzen: Damit die Konsole nicht darstellbare Zeichen anzeigt, geben Sie für diese ersatzweise eine bestimmte Zeichensequenz ein.

Damit die Einstellungen einen Neustart des Systems überleben, tragen Sie in die Konfigurationsdatei der Bash (~/.bashrc) die Zeile

export GREP_COLOR=34

ein. Die Änderungen greifen entweder beim nächsten Anmelden oder wenn Sie die neuen Einstellungen mit source in der aktuellen Shell einlesen:

source ~/.bashrc

Abb. 3: Bringen Sie Farbe ins Spiel und färben Sie die "grep"-Ausgabe ein.

Tipp: Noch mehr Tricks mit Farben

Den im vorigen Tipp gezeigten Farben (genau genommen handelt es sich um die Vordergrundfarben) können Sie weitere Attribute, wie zum Beispiel fett, unterstrichen oder blinkend zuordnen. Es sind folgende Attribute möglich: 00 (keine), 01 (fett), 04 (unterstrichen), 05 (blinkend), 07 (invertiert) und 08 (unsichtbar).

Wenn Sie eine solche Eigenschaft mit einer Farbe kombinieren, setzen Sie das Attribut, durch ein Semikolon abgetrennt, vor oder hinter die Farbe, beispielsweise:

export GREP_COLOR="04;34"

Achten Sie darauf, den Ausdruck in Anführungszeichen zu setzen, da sonst die Shell das Semikolon interpretiert.

Auch für die Hintergrundfarbe stehen zweistellige Codes zur Verfügung, die Sie wiederum durch ein Semikolon abtrennen: 40 (schwarz), 41 (rot), 42 (grün), 43 (gelb), 44 (blau), 45 (magenta), 46 (cyan) und 47 (weiß).

Wenn Sie die Umgebungsvariable beispielsweise über

export GREP_COLOR="04;34;41"

setzen, präsentiert grep die Ausgabe in Blau, unterstrichen und auf einem roten Hintergrund. (kki)

Infos
[1] Artikel zu find: Elisabeth Bauer, "Meisterdetektiv", EasyLinux 01/2004, S. 72 ff., http://www.easylinux.de/2004/01/072-find/
[2] Artikel zu grep: Elisabeth Bauer, "Text fischen", EasyLinux 10/2004, S.74 ff., http://www.easylinux.de/2003/10/074-grep/

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2021 COMPUTEC MEDIA GmbH | Last modified: 2008-11-05 17:26

[Linux-Magazin] [LinuxUser] [Linux-Community]