logoOL.gif
user_gelb_schwarz_or.gif
logoUL.gif
logoUR.gif claim.gif
LinuxUser LinuxCommunity EasyLinux Linux-Magazin International
      Anzeige
      Anzeige

Erschienen in LinuxUser 03/2000

Zu Befehl

Mehr oder weniger

von Heike Jurzik
 [ Titelbild ]


Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen -- wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

In der letzten "Zu Befehl"-Folge wurden sie kurz erwähnt -- die Pager. Um größere Dateien anzuschauen, braucht man ein Programm, das gerade soviele Zeilen anzeigt, wie auf einen Bildschirm (oder in ein Fenster) passen. Den Standard-Unix-Pager more gibt es schon ziemlich lange, er stammt ursprünglich vom BSD-Unix. Seine erweiterte GNU-Version namens less bietet ein paar nützliche Features mehr. Zudem gibt es noch zless oder zmore für komprimierte Dateien -- gut zu wissen, was da "hinter den Kulissen" des Systems abläuft.


GNU: Das GNU-Projekt setzte sich zum Ziel, ein freies Unix-artiges Betriebssystem zu schaffen und begann damit, die ganzen Kommandozeilenbefehle zu implementieren, die man zum sinnvollen Arbeiten braucht. Zusammen mit dem Linux-Betriebssystemkern (dem "Kernel") bilden diese GNU-Utilities die Grundlage aller Linux-Distributionen, man setzt sie aber auch gern mit anderen Betriebssystemen ein. Das rekursive ("selbstbezügliche") Akronym GNU steht übrigens für "GNU is not UNIX" und distanziert sich damit vom Ur-UNIX von AT&T.
BSD: Die "Berkeley System Distribution" bezeichnet die neben dem ursprünglichen, von AT&T stammenden UNIX (TM) wichtigste Unix-Entwicklungsrichtung in den Anfangsjahren der Betriebssystemfamilie. Sie entstand an der University of California in Berkeley und war wegweisend für viele andere Unixbetriebssysteme. Mittlerweile existiert eine ganze Anzahl von Unixderivaten, die das BSD-Erbe im Namen tragen, darunter auch FreeBSD, ein besonders als Internetserverbetriebssystem beliebtes Open-Source-Unix.

Seiten- oder zeilenweise?

Mit more dateiname geht's los, und schon ist man mittendrin. Möchte man nicht den ganzen Bildschirm zum Betrachten nutzen, startet man das Programm einfach mit der Zeilenanzahl als Parameter, z.B. more -10 datei.

Nicht genug damit, man kann more auch noch andere Optionen mitgeben. more -d steht für eine Art "leise Fehlerklingel". Statt des Gepiepses bei falschen Tastatureingaben erscheint nur der Hinweis, dass man h für Hilfe drücken kann. Enthält die Datei viele Leerzeilen? Auch kein Problem, dafür gibt es die Option -s -- leere aufeinanderfolgende Zeilen schrumpfen zu einer zusammen, es wird übersichtlicher!

Wenn man möchte, dass more immer mit den gleichen Parametern startet, steht die Umgebungsvariable MORE zu Diensten. Sie kann auf die entsprechenden Optionen gesetzt werden, in der bash-Shell beispielsweise durch die Zeile

 
huhn@huehnerstall ~ > export MORE="-d -s"


Umgebungsvariable: Die Shell stellt dem Benutzer mit den Umgebungsvariablen Speicher bereit, um bestimmte Informationen aufzubewahren und Programmen zugänglich zu machen. Diese "Environment Variables" bestehen jeweils aus dem Namen und einem zugeordneten Wert.
bash: Die "Bourne Again Shell" ist eine GNU-Weiterentwicklung der klassischen Bourne Shell, die die besten Eigenschaften verschiedener Kommandozeileninterpreter übernommen und ausgebaut hat.

Wie man sieht, kann man gleich mehrere Parameter in doppelte Anführungszeichen ("") eingeschlossen übergeben, beim nächsten Start von more werden die entsprechenden Erweiterungen berücksichtigt. Mit

 
huhn@huehnerstall ~ > echo $MORE
-d -s
lässt sich leicht überprüfen, welchen Inhalt MORE hat.

Auch das gleichzeitige Betrachten mehrerer Dateien ist möglich. Dazu hängt man einfach die Dateinamen beim Aufruf hintereinander:

huhn@huehnerstall ~ > more datei1 datei2
::::::::::::::
datei1
::::::::::::::
Dies ist Datei 1.

::::::::::::::
datei2
::::::::::::::
Dies ist Datei 2.

Bei längeren Texten möchte man natürlich zwischen den beiden Dateien "springen" können. Dazu gibt es die Kommandos :n (für "next") und :p (für "previous"), wobei :p zunächst an den Anfang der aktuellen Datei geht und dann erst in die vorige springt.

Intuitiv interaktiv

Hier gibt es noch mehr zu entdecken! Hat man more erstmal gestartet, kann man mit verschiedenen Befehlen navigieren: Mit der Leertaste blättert man seitenweise nach Unten, mit der Return-Taste hingegen zeilenweise. Wichtig ist auch das Kommando b ("back"), um jeweils eine Seite zurück zu springen. Der Punkt . wiederholt das letzte Kommando, mit /suchbegriff kann man gezielt nach etwas suchen, und natürlich gibt es da noch q (für "quit") zum Verlassen von more.

Raus- und damit reingefallen

Im Gegensatz zu less findet more einen Suchbegriff nicht, wenn er auf der bereits angezeigten Seite (und nur dort!) vorkommt. Das hängt damit zusammen, dass more aus der Datei "heraus fällt", wenn es am Ende der Datei unverrichteter Dinge angekommen ist, während less wieder an den Anfang springt und von da aus weiter sucht.

Manchmal fällt beim Anschauen einer Datei ein Fehler ins Auge. Hier schafft der Befehl v Abhilfe. Damit startet man den Editor vi in der entsprechenden Zeile. Sollte das nicht sofort funktionieren, kann es daran liegen, dass nicht alle Distributionen den vi im Verzeichnis /usr/bin/vi haben. Mit einem Symlink auf das richtige Programm lässt sich das aber schnell reparieren.


Symlink: (ausgeschrieben "symbolic link") Ein Verweis auf eine andere Datei, der von Anwendungsprogrammen wie eben diese Datei behandelt wird. Wenn die Datei, auf die ein Symlink verweist, gelöscht wird, zeigt der Link ins Leere. Symlinks sind das Ergebnis des Kommandos ln -s.

less ist luxuriös

Die (Linux-)Man-Page zu more verrät es schon: less unterscheidet sich nicht nur in den Kommandozeilenoptionen von more, sondern kann in erster Linie einiges mehr. Es gibt neben den bekannten more-Befehlen viel mehr Bewegungskommandos, die sich teilweise an denen des vi orientieren. Wer mehr über die fast unüberschaubaren Möglichkeiten der Navigation in less wissen möchte, wirft am besten einen Blick in die zugehörige ausführliche Man-Page (man less).

Besonders angenehm für das Lesen von Programmquelltexten ist die "Klammer-Funktion". Ist in der obersten Zeile beispielsweise eine geschweifte Klammer zu sehen ({), tippt man eben dieses Zeichen ein, und less springt zur entsprechenden schließenden Klammer. Diese Funktion steht auch für eckige und runde Klammern zur Verfügung.

Sollten anstelle von Umlauten Sequenzen wie z.B. <E4> auftauchen, bringen Sie Ihrem less einfach bei, wie es Umlaute darstellen kann. Dazu setzen Sie die Umgebungsvariable LESSCHARSET auf latin1.

Der Editor der Wahl

Um den vi werden Sie bei der Administration Ihres Systems früher oder später nicht herumkommen, aber jeder hat nun mal seine Vorlieben. Bei less gibt es die Möglichkeit, mit dem Kommando v in den Lieblingseditor zu springen. Dazu muss man in die Umgebungsvariable VISUAL oder EDITOR einfach den gewünschten Editor eintragen.

Komprimiert ist kompliziert?

Nicht nur auf der Suche nach den HOWTOs stößt man immer wieder auf komprimierte Textdateien. Um diese nicht jedes Mal vor dem Lesen entpacken zu müssen, gibt es zless (zmore). Diese Programme sind in der Regel Shellskripte, die mit mehr oder weniger Aufwand die Ausgabe von gunzip in den gewünschten Pager umleiten. Die Datei selbst wird dabei nicht verändert.


HOWTO: Im Gegensatz zu den referenzartigen Man-Pages liefern die HOWTOs "Kochrezepte" für bestimmte Problemgebiete und sind damit für Anfänger wesentlich besser geeignet. Bei gängigen Distributionen liegen sie unter /usr/doc/HOWTO.

Jetzt könnte man zu dem Schluss kommen, das Anzeigen einer Datei am Bildschirm sei eine einfache Aufgabe. Die Man-Page von less überzeugt jedoch an einigen Stellen vom Gegenteil, oder hätten Sie geahnt, dass Sie mit der Eingabe

less -P "?n?f%f .?m(Datei %i von %m) ..?e(ENDE) ?x- Naechste Datei\: %x.:" datei
den Prompt in der untersten Zeile anpassen können? (Falls Sie keine Änderung bemerken, enthält Ihre LESS-Variable vermutlich die Option -m oder -M, und genau diese Variable ist wohl auch der sinnvollste Einsatzort für das Flag -P mit seinem Rattenschwanz.) Wem das jetzt ein wenig zu viel ist, darf sich mit einem Zitat aus der Man-Page trösten: "Der gewöhnliche Benutzer muss die Details der Konstruktion personalisierter Prompts nicht verstehen." (pju)

Copyright © 2000 Linux-Magazin-Verlag

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.

Seite drucken | Feedback zu dieser Seite | Datenschutz | © 2019 COMPUTEC MEDIA GmbH

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [EasyLinux] [Linux-Community]