Texte mit less untersuchen
Ein Teil meiner Arbeit besteht darin, Texte zu untersuchen um Informationen zu finden. Das geht mit jedem Editor und manchmal verwende ich einen, wenn gerade nichts anderes auf die Schnelle erreichbar ist.
Ein Problem mit Editoren ist jedoch,
dass sie dafür gedacht sind,
Texte zu ändern und nur als Nebenfunktion kommt die Navigation dazu.
Also muss ich jedes Mal aufpassen,
dass ich den Text beim Untersuchen nicht ändere.
Wenn möglich setze ich dazu den Text auf read-only.
Das ist aber umständlich
und die Start-Up-Zeit des Editors ist oft erheblich.
Aus diesem Grund greife ich,
wann immer möglich,
zu einem Pager
und zwar am liebsten zu less
.
Arbeit mit Dateien
Den Text, den ich mit less betrachten will, kann ich über eine Pipe zur Standardeingabe hinein schicken:
grep muster /var/log/syslog | less
Alternativ gebe ich eine oder mehrere Dateien
als Argumente beim Aufruf von less
an.
less datei1 [ datei2 [ ... ] ]
Mit :n
komme ich dann zur nächsten Datei in der Liste,
mit :p
zur vorhergehenden.
Ich kann aber auch mit :e
eine völlig andere Datei angeben,
die ich anschauen will.
Das ist praktisch,
wenn ich in der aktuellen Datei mit einem komplexen Muster gesucht habe
und dieses auch in der anderen Datei verwenden will,
ohne es erneut einzugeben.
In allen Fällen beende ich das Programm mit :q
.
less
selbst ändert keine Dateien.
Durch Eingabe von v
beim Betrachten einer Datei
kann ich jedoch einen Editor aufrufen,
um die Datei mit diesem zu ändern.
Nachdem ich den Editor beendet habe,
lädt less
die Datei neu
und ich bin wieder etwa an derselben Stelle,
je nachdem,
ob und wie viel ich geändert habe.
Navigieren
Der Hauptgrund, less zu benutzen, ist für mich die komfortable und dabei schnelle Bewegung in größeren Texten. Das funktioniert mit einem einzelnen Tastendruck oder einer kurzen Tastenkombination. Die folgende Tabelle zeigt die gängigsten Tastenkombinationen für das Bewegen im Text.
Taste | Bewegung |
---|---|
ENTER | eine Zeile nach unten |
RETURN | " |
Pfeil-runter | " |
j |
" |
SPACE | eine Bildschirmseite nach unten |
f |
" |
> |
zum Ende der Datei |
G |
" |
CTRL-P | eine Zeile nach oben |
Pfeil-rauf | " |
y |
" |
k |
" |
b |
eine Bildschirmseite nach oben |
< |
zum Anfang der Datei |
g |
" |
Pfeil-rechts | eine halbe Bildschirmseite nach rechts |
ESC+) |
" |
Pfeil-links | eine halbe Bildschirmseite nach links |
ESC+( |
" |
Die letzten beiden Bewegungen sind praktisch, wenn less lange Zeilen am
Bildschirmrand abschneidet. Das empfiehlt sich grundsätzlich bei
Logzeilen und kann mit der Option -S
erreicht werden.
Suchen
Mit dem Befehl /Muster
suche ich vorwärts im Text nach dem nächsten
Vorkommen von Muster. Um rückwärts zu suchen verwende ich stattdessen
?Muster
. Mit n
wiederhole ich die letzte Suche und mit N
kehre ich
die Richtung der Suche um.
Mit &Muster
kann ich die Anzeige auf die Zeilen beschränken, die
Muster enthalten.
Mit m
gefolgt von einem Kleinbuchstaben kann ich eine Stelle im Text
markieren und mit dem Apostroph ('
) gefolgt von eben diesem
Kleinbuchstaben kann ich später zu dieser Stelle zurückspringen.
Optionen
Ein paar nützliche Optionen verwende ich regelmäßig bei less
.
Diese kann ich auf der Kommandozeile beim Aufruf angeben
oder interaktiv zusammen mit dem vorangestellten -
.
Bei der interaktiven Eingabe werden die Einstellungen
abwechselnd ein- und ausgeschaltet (toggle).
-i
Groß- und Kleinschreibung bei der Suche ignorieren.
-N
Zeilennummern anzeigen
-S
Lange Zeilen abschneiden.
Das sind die Kommandos und Optionen, die ich am häufigsten verwende.
Less hat noch sehr viel mehr zu bieten.
Bei Bedarf gibt es Hilfe mit man less
.
Noch schneller komme ich
mit der Kommandozeilenoption --help
beziehungsweise -?
an Hilfe oder,
während das Programm schon läuft,
mit dem Buchstaben h
oder H
.
Mit lesskey
könnte ich die Tastaturbelegung an meine Wünsche anpassen,
Details dazu gibt es mit man lesskey
.
Ich rate aber eher davon ab,
weil ich den möglichen Geschwindigkeitsgewinn
durch die Anpassung an einem Rechner wieder verliere,
wenn ich an einem anderen Rechner ohne Anpassungen arbeiten muss.
Umgebungsvariablen
Ein Teil der Funktionalität von less
wird über Umgebungsvariablen gesteuert.
Auch wenn ich sie nicht selbst anpassen will,
ist es nützlich einige davon zu kennen.
Die Variablen VISUAL
oder EDITOR
legen fest,
welcher Editor mit dem Befehl v
aufgerufen wird.
Mit den beiden Variablen LESSOPEN
und LESSCLOSE
kann ich Programme angeben,
die die Datei für die Anzeige aufbereiten
beziehungsweise am Ende aufräumen.
Das ist praktisch,
wenn ich komprimierte und unkomprimierte Dateien betrachten
und nicht für jede einzelne Datei das Kompressionsprogramm angeben will.
Details dazu liefert die Handbuchseite.
Bei einigen Linux-Distributionen
ist das bereits automatisch eingerichtet.
Die Variable LESSCHARSET
legt fest,
welchen Zeichensatz less
für die Datei annimmt.
Werden Sonderzeichen nicht korrekt angezeigt,
kann ich damit die Anzeige der Datei modifizieren.
Ist LESSSECURE
auf den Wert 1 gesetzt,
läuft das Programm im "sicheren" Modus,
das heißt einige Features von less
sind abgeschaltet.
Auch dazu finden sich die Details in der Handbuchseite.
Fazit
Ich hoffe diese kleine Einführung
hat das Interesse an less
geweckt.
Neben der Vielseitigkeit beim Untersuchen von Textdateien
steht für mich vor allem die Geschwindigkeit im Vordergrund
und die Gewissheit,
dass ich die Textdatei nicht aus Versehen ändere,
wenn ich sie eigentlich nur betrachten will.