Tue, 17 Sep 2024 00:00:00 +0200
schreiben, sysadmin, syslog, troubleshoot

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.

Bewegen mit der Tastatur im Programm Less

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.