Den Pager Less im Alltag effektiv nutzen

Aus LinuxUser 07/2008

Den Pager Less im Alltag effektiv nutzen

Seitenweise Informationen

Der Pager Less zeigt schnell und zuverlässig Textdateien an. Wir zeigen, welche Features den Alltag noch ein Stückchen einfacher machen.

Als Anwender kommen Sie mit Less am ehesten in Kontakt, wenn Sie schnell und unkompliziert eine Textdatei ansehen möchten. So zeigt Ihnen das Kommando less ~/.bashrc die lokale Konfigurationsdatei Ihrer Shell an. Angenommen, Sie möchten die in Less geöffnete Datei nun mit einem Texteditor bearbeiten, so braucht es nur einen Tastendruck. Less zu beenden und anschließend die Datei im Editor zu öffnen, wäre ein viel zu umständlicher Weg. Drücken Sie einfach [V], um den Editor der Wahl über Less mit dessen aktuellen Inhalt zu starten.

Der Pager wertet zwei Umgebungsvariablen der Shell aus, um den von Ihnen gewünschten Editor ausfindig zu machen: Zuerst die Variable VISUAL. Sollte diese nicht von Ihnen definiert sein, schaut Less in der Variable EDITOR nach. Findet sich dort ebenfalls nichts, nimmt der Pager kurzerhand den Texteditor Vi. Damit startet also zumeist Vim, Elvis, Nvi oder ein anderer Klon, den die jeweilige Distribution einsetzt.

Umgebungsvariablen

Haben Sie also einen Lieblingseditor, zum Beispiel Gedit, machen Sie ihn über die Konfigurationsdatei der Shell, zum Beispiel .bashrc im Home-Verzeichnis, mit folgendem Eintrag dem System bekannt:

export VISUAL=gedit
export EDITOR=gedit

Mit LESS gibt es eine weitere Shell-Variable, die Less beim Aufruf auswertet. Über sie geben Sie die Parameter mit auf den Weg, die der Pager bei jede Start zusätzlich zu denen auf der Kommandozeile verwendet. Um den Dateibetrachter zu einer umfangreicheren Statusanzeige zu überreden, nutzen Sie die Option -M als Wert für die Variable:

export LESS="-M"

Nun verrät das Programm in Zukunft den Namen der geöffneten Datei, den angezeigten Zeilenbereich, die Gesamtsumme der Zeilen und den prozentual dargestellten Inhalt (Abbildung 1).

Abbildung 1: Mit der Option     <code srcset=

-M verrät Less, wieviele Zeile das Dokument hat und welche Sie davon gerade sehen.” width=”300″ height=”216″ /> Abbildung 1: Mit der Option -M verrät Less, wieviele Zeile das Dokument hat und welche Sie davon gerade sehen.

Manpages

Natürlich wartet Less noch mit weiteren Parametern auf, die sich für den Einsatz in der Variable eignen. Wollen Sie tiefer in die Materie mit den Optionen einsteigen, hilft die Manpage weiter, die Sie mit folgendem Befehl starten:

$ man -P"less +'/^[ ]*OPTIONS'" less

Diese Befehl sieht zugegebenermaßen etwas anders aus, als ein schlichter Aufruf von man less in einer Textkonsole. Folgen Sie aber dem Beispiel, landen Sie sofort nach Eingabe des Befehls im Abschnitt Options der Manpage von Less, um sich dort umzusehen. Mit dem Parameter -P geben Sie explizit an, welchen Pager Sie zusammen mit dem Programm Man verwenden möchten.

Meistens nutzt Man ohnehin Less zum Anzeigen der Hilfsseiten. Aber in diesem Falle geben Sie dem Pager eine weitere Option mit auf den Weg, und zwar +'/^[ ]*OPTIONS'. Zum besseren Verständnis lohnt es sich, die Zeichenkette aufzuschlüsseln. Das Pluszeichen + leitet ein Kommando ein, das Less nach dem Start ausführt. Das Kommando beginnt mit dem Slash (Schrägstrich), also sucht das Programm vorwärts im Dokument nach dem Muster, das auf den Schrägstrich folgt.

Das Muster folgt im Beispiel den gängigen Regulären Ausdrücken und bedeutet: Erkenne ab dem Zeilenanfang (Symbol: ^) Null oder mehrere Leerzeichen (Symbol: [ ]*) mit der daran anschließenden Zeichenkette OPTIONS. Genau das tut Less mit obigem Kommando für Sie und zeigt nach dem Start die angegebene Stelle. Kommen Ihnen die Regulären Ausdrücke nicht regulär, sondern spanisch vor, bietet das Artikel-Archiv von LinuxUser online [1] weiteres Material und Hilfestellungen zum Thema an.

Etwas weniger kryptisch als obiger Befehl, aber ebenso wirkungsvoll, funktioniert das Weiterleiten der Programmausgabe via Pipe mit man ls | less -p color in der Shell. Auf die Weise gelangen Sie zum ersten Vorkommen der Zeichenfolge color in der Handbuchseite von Ls. Mit der Option -p (engl. pattern, dt. Muster) weisen Sie Less an, wonach Sie Ausschau halten wollen. Durch die Fundstellen, die Less hervorhebt, springen Sie mit [N].

Inhalte und Aliase

Aber nicht nur Man arbeitet mit dem Pager zusammen. Sobald Sie sich aus dem Internet einen Tarball mit dem Quelltext eines Programms herunterladen, bietet sich eine weitere Gelegenheit für den Einsatz des Pagers. So scrollen Sie durch den Inhalt das Tar-Archivs, ohne es zu öffnen, mit dem folgenden Befehl:

$ tar -tf screen-4.0.2.tar.gz | less -N
  1 screen-4.0.2/
  2 screen-4.0.2/FAQ
  3 screen-4.0.2/doc/
[…]
126 screen-4.0.2/socket.c

Die Tar-Option -tf listet den Inhalt des Archive auf. Der landet über eine direkte Verbindung in Less, das bei Bedarf von der Standardeingabe liest. Der Less-Parameter -N nummeriert als kleines Schmankerl die Ausgabe von Tar zeilenweise zur besseren Übersicht.

Als Nutzer der Z-Shell [2] statt der Bash haben Sie es in diesem Falle sogar noch eine Spur leichter: Durch das Definieren eines globalen Aliases alias -g LN='|less -N' in der Datei ~/.zshrc kürzen Sie die Tipparbeit ab. Danach genügt der Befehl tar -tf screen-4.0.2.tar.gz LN, um den Inhalt des Tarballs einzusehen. Die Z-Shell versteht LN nun als Alias für die Kommandokette | less -N und wertet die Eingabe entsprechend aus.

Doch damit sind die Arbeitserleichterungen, die Ihnen die Zsh mit Less bietet, noch nicht am Ende. Die Shell verfügt ebenfalls über Suffix-Aliase. Das heißt, der Anwender legt im Voraus fest, wie die Shell mit einer Datei verfährt, die eine bestimmte Endung trägt. Möchten Sie jede Textdatei automatisch mit dem Pager öffnen, nachdem Sie deren Namen in den Eingabeprompt getippt und mit [Enter] bestätigt haben, legen Sie alias -s txt='less' als Alias an.

Alternativ öffnen Sie Textdateien in einem Editor, zum Beispiel Vim. Der Eintrag alias -s txt='vim' erledigt diese Aufgabe. Da der Alias nun für Less nicht mehr zur Verfügung steht, nutzen Sie einfach eine andere Art, mit der Zsh schnell eine Datei zu lesen. Dazu füllen Sie zunächst die Variable READNULLCMD mit Inhalt. Diese legt fest, wie die Shell mit einem einzelnen Input verfährt.

Den Wert von READNULLCMD definieren Sie mit export READNULLCMD=less entweder in der Konfigurationsdatei der Z-Shell oder geben das Kommando direkt in der Shell ein. Dann bleibt es allerdings nur bis zum Schließen des Terminals gültig. Statt des Befehls less ~/Datei gibt sich die Z-Shell nun mit einem wesentlich kürzeren Kommando < ~/Datei zufrieden, um eine Datei mit Less zu öffnen.

Innendienst

Ob in Zsh oder Bash – der Pager hat einige Features eingebaut, mit denen Sie im Alltag Zeit und Nerven sparen. Suchen Sie beispielsweise in einem Logfile nach den Meldungen zu einer problematischen USB-Hardware, dann hilft die oben beschriebene Suchfunktion. Reichen die Einträge nicht aus, erzeugen Sie neue indem Sie das Gerät abstecken und wieder anschließen.

Statt nun den Pager zu beenden, um die Datei neu zu lesen oder mit Tail die fortlaufenden Einträge zu verfolgen, nutzen Sie [Umschalt]+[F], um einfach in Less neue Zeilen mitzulesen. Mit [Strg]+[C] beenden Sie diesen Modus und fallen wieder in die statische Ansicht zurück. Mit [Q] schließen Sie auch diese.

Außeneinsatz

Der Bereich von Less beschränkt sich jedoch nicht nur auf die Arbeit am Prompt. Auch ein Mailer wie Mutt [3] bindet den Pager auf Wunsch ein und nutzt ihn zum Darstellen von Nachrichten (Abbildung 2). Dazu benötigt das Programm lediglich die Variable set pager=less in der Datei .muttrc oder .mutt/muttrc im Home-Verzeichnis.

Abbildung 2: Auch der Mailer Mutt versteht es, mit Less umzugehen.

Abbildung 2: Auch der Mailer Mutt versteht es, mit Less umzugehen.

Beim Lesen der Mails schreibt Mutt sogar den Mailordner, in dem Sie sich gerade befinden, in die Kopfzeile der Ausgabe. Das einzige Manko liegt darin, dass Sie Less per Hand über [Q] nach dem Lesen jeder Nachricht beenden müssen, um zurück in die Übersicht der einzelnen Mails im Ordner zu gelangen.

Fazit

Die Einsatzbereiche von Less sind breit gefächert. Viele Tools und besonders die Z-Shell binden den Pager ein und ermöglichen dem Anwender einen effizienten Umgang mit Dateiinhalten und Ausgaben von externen Programmen.

Glossar

Pager

Programm zum zeilen- oder seitenweisen Betrachten von Inhalten oder Programmausgaben. Zu den bekannten Pagern gehören Less, More und W3m, wobei letzterer zugleich als Webbrowser arbeitet.

Infos

[1] Reguläre Ausdrücke: “Strukturierte Sprache”, Martin Möller, LinuxUser 08/2005, S. 90 http://www.linux-user.de/ausgabe/2005/08/090-regex/

[2] Zsh: “Shell++”, Simon Kölsch, LinuxUser 09/2005, S. 86 http://www.linux-user.de/ausgabe/2005/09/086-zsh/

[3] Mutt mit allen Raffinessen: “Handgestrickt”, Karl Deutsch, LinuxUser 05/2007, S. 62 http://www.linux-user.de/ausgabe/2007/05/062-mutt/

LinuxUser 07/2008 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

2 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
norman
4 Jahre her

Entschuldigung, wenn die Frage “dumm” ist aber, wenn ich less ~/.bashrc in den Terminal eingebe dann bekomme ich eine Menge Text zur Bash angezeigt. Problem ist, wie beende ich dann den Prozess wieder?
STRG+Z hält ja nur den Prozess an, beendet ihn aber nicht. Mit dem Befehl kill klappt es auch nicht da die PID fehlt. Wenn ich ps -C ~/.bashrc eingebe wird keine PID angezeigt.
In den “normalen Modus” komme ich nicht ohne den Terminal zu schließen und neuzustarten. Aber das ist ja nicht der Sinn der Sache.

Kai
4 Jahre her
Reply to  norman

Normalerweise geht das, indem man die Taste q drückt.

Nach oben