GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Fortgeschrittene Verwendung des Less-Text-Dateibetrachters in Linux

Ich habe kürzlich Scott Nesbitts Artikel „Using less to view text files at the Linux command line“ gelesen und war inspiriert, weitere Tipps und Tricks zu teilen, die ich mit less verwende .

LESS-Umgebungsvariable

Wenn Sie eine Umgebungsvariable LESS haben definiert (z. B. in Ihrer .bashrc ), less behandelt es als eine Liste von Optionen, als ob es auf der Kommandozeile übergeben würde.

Ich benutze das:

LESS='-C -M -I -j 10 -# 4'

Diese bedeuten:

  • -C – Erstelle Vollbild-Neudrucke schneller, indem du nicht von unten scrollst.
  • -M – Weitere Informationen aus der letzten (Status-)Zeile anzeigen. Sie können die angezeigten Informationen mit -PM anpassen , aber ich mache mir normalerweise keine Mühe.
  • -I – Groß-/Kleinschreibung bei Suchen ignorieren.
  • -j 10 – Suchergebnisse in Zeile 10 des Terminals anzeigen, anstatt in der ersten Zeile. Auf diese Weise haben Sie jedes Mal, wenn Sie n drücken, 10 Kontextzeilen (oder N ), um zum nächsten (oder vorherigen) Treffer zu springen.
  • -# 4 – Springen Sie vier Zeichen nach rechts oder links, wenn Sie die rechte oder linke Pfeiltaste drücken. Standardmäßig wird die Hälfte des Bildschirms übersprungen, was ich normalerweise als zu viel empfinde. Generell less scheint (zumindest teilweise) für die Umgebung optimiert zu sein, in der es ursprünglich entwickelt wurde, mit langsamen Modems und Internetverbindungen mit geringer Bandbreite, als es sinnvoll war, einen halben Bildschirm zu überspringen.

PAGER-Umgebungsvariable

Viele Programme zeigen Informationen mit dem Befehlssatz im PAGER an Umgebungsvariable (falls gesetzt). Sie können also PAGER=less setzen in Ihrer .bashrc und lassen Sie Ihr Programm less laufen . Überprüfen Sie die Manpage environ(7) (man 7 environ ) für andere solche Variablen.

-S

Programmierung und Entwicklung

  • Red Hat Entwickler-Blog
  • Spickzettel programmieren
  • Kostenlos testen:Red Hat Learning Subscription
  • eBook:Eine Einführung in die Programmierung mit Bash
  • Bash-Shell-Scripting-Spickzettel
  • eBook:Modernisierung von Enterprise Java

Die Befehlszeilenoption -S sagt less lange Leitungen zu hacken, anstatt sie zu wickeln. Ich finde selten eine Notwendigkeit dafür, es sei denn (und bis) ich angefangen habe, eine Datei anzuzeigen. Glücklicherweise können Sie alle Befehlszeilenoptionen innerhalb von less eingeben als wären es Tastaturbefehle. Wenn ich also lange Zeilen abschneiden möchte, während ich mich bereits in einer Datei befinde, kann ich einfach -S eingeben .

Hier ist ein Beispiel, das ich oft verwende:

    su - postgres
    export PAGER=less  # Because I didn't bother editing postgres' .bashrc on all the machines I use it on
    psql

Manchmal, wenn ich mir später die Ausgabe eines SELECT ansehe Befehl mit einer sehr breiten Ausgabe tippe ich -S ein so wird es schön formatiert. Wenn es zu weit springt, wenn ich den Rechtspfeil drücke, um mehr zu sehen (weil ich -# nicht eingestellt habe ), kann ich -#8 eingeben , dann bewegt sich jedes Drücken des Rechtspfeils um acht Zeichen nach rechts.

Manchmal nach Eingabe von -S Zu oft beende ich psql und führe es erneut aus, nachdem ich Folgendes eingegeben habe:

export LESS=-S

F

Der Befehl F macht less funktionieren wie tail -f – Warten, bis der Datei weitere Daten hinzugefügt werden, bevor sie angezeigt wird. Ein Vorteil gegenüber tail -f ist, dass das Hervorheben von Suchübereinstimmungen immer noch funktioniert. Sie können also less /var/log/logfile eingeben , suchen Sie nach etwas – wodurch alle Vorkommen davon hervorgehoben werden (es sei denn, Sie haben -g verwendet ) – und drücken Sie dann F . Wenn mehr Daten in das Protokoll geschrieben werden, less wird es anzeigen und die neuen Übereinstimmungen hervorheben.

Nachdem Sie F gedrückt haben , können Sie Ctrl+C drücken es daran zu hindern, nach neuen Daten zu suchen (das wird es nicht töten); Gehen Sie zurück in die Datei, um ältere Sachen zu sehen, suchen Sie nach anderen Dingen usw.; und drücken Sie dann F erneut, um weitere neue Daten anzuzeigen.

Suche

Suchen verwenden die Regexp-Bibliothek des Systems, und das bedeutet normalerweise, dass Sie erweiterte reguläre Ausdrücke verwenden können. Insbesondere die Suche nach one|two|three findet und markiert alle Vorkommen von eins, zwei oder drei.

Ein weiteres Muster, das ich häufig verwende, insbesondere bei breiten Protokollzeilen (z. B. solchen, die sich über mehr als eine Endzeile erstrecken), ist .*something.* , wodurch die gesamte Zeile hervorgehoben wird. Dieses Muster macht es viel einfacher zu sehen, wo eine Linie beginnt und endet. Ich kombiniere diese auch wie:.*one thing.*|.*another thing.* , oder key: .*|.*marker.* um den Inhalt von key zu sehen (z. B. in einer Protokolldatei mit einem Dump eines Wörterbuchs / Hashs) und markieren Sie relevante Markierungszeilen (damit ich einen Kontext habe) oder sogar, wenn ich weiß, dass der Wert in Anführungszeichen steht:

key: '[^']*'|.*marker.*

less verwaltet einen Verlauf Ihrer Suchelemente und speichert sie für zukünftige Aufrufe auf der Festplatte. Wenn Sie / drücken (oder ? ), können Sie mit der Aufwärts- oder Abwärtspfeiltaste durch diesen Verlauf gehen (sowie grundlegende Zeilenbearbeitungen vornehmen).

Beim Durchblättern von less bin ich auf ein scheinbar sehr nützliches Feature gestoßen Manpage beim Schreiben dieses Artikels:Überspringen uninteressanter Zeilen mit &!pattern . Beispielsweise bei der Suche nach etwas in /var/log/messages , habe ich diese Liste von Befehlen durchlaufen:

    cat /var/log/messages | egrep -v 'systemd: Started Session' | less
    cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session' | less
    cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice' | less
    cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice|dbus' | less
    cat /var/log/messages | egrep -v 'systemd: Started Session|systemd: Starting Session|User Slice|dbus|PackageKit Daemon' | less

Aber jetzt weiß ich, wie man dasselbe innerhalb von less macht . Beispielsweise kann ich &!systemd: Started Session eingeben , und entscheide dann, dass ich systemd: Starting Session loswerden möchte , also füge ich es hinzu, indem ich &! eingebe und verwenden Sie den Aufwärtspfeil, um die vorherige Suche aus dem Verlauf abzurufen. Dann gebe ich |systemd: Starting Session ein und drücken Sie Enter , und füge auf die gleiche Weise weitere Elemente hinzu, bis ich genug herausgefiltert habe, um die interessanteren Inhalte zu sehen.

=

Der Befehl = zeigt mehr Informationen über die Datei und den Speicherort an, sogar mehr als -M . Wenn die Datei sehr lang ist und = berechnet wird zu lange dauert, können Sie Ctrl+C drücken und es wird aufhören, es zu versuchen.

Wenn der angezeigte Inhalt aus einer Pipe und nicht aus einer Datei stammt, = (und -M ) zeigt nicht, was es nicht weiß, einschließlich der Anzahl der Zeilen und Bytes in der Datei. Um diese Daten zu sehen, wenn Sie diesen command kennen wird schnell fertig, Sie können mit G zum Ende springen , und dann less wird beginnen, diese Informationen anzuzeigen.

Wenn Sie G drücken und das Schreiben des Befehls in die Pipe länger als erwartet dauert, können Sie Ctrl+C drücken , und der Befehl wird getötet. Drücken Sie Ctrl+C wird es beenden, auch wenn Sie G nicht gedrückt haben , achten Sie also darauf, nicht Ctrl+C zu drücken versehentlich, wenn Sie nicht beabsichtigen, es zu töten. Aus diesem Grund ist es normalerweise sicherer, wenn der Befehl etwas tut (dh er zeigt nicht nur Informationen an), seine Ausgabe in eine Datei zu schreiben und die Datei in einem separaten Terminal anzuzeigen, anstatt eine Pipe zu verwenden.

Warum Sie weniger brauchen

less ist ein sehr leistungsfähiges Programm und im Gegensatz zu neueren Konkurrenten in diesem Bereich, wie z. B. most und moar , Sie werden es wahrscheinlich auf fast allen von Ihnen verwendeten Systemen finden, genau wie vi . Selbst wenn Sie GUI-Viewer oder -Editoren verwenden, lohnt es sich also, etwas Zeit zu investieren, um den less durchzugehen Manpage, zumindest um ein Gefühl dafür zu bekommen, was verfügbar ist. Auf diese Weise wissen Sie, wenn Sie etwas tun müssen, das möglicherweise von vorhandener Funktionalität abgedeckt wird, dass Sie die Handbuchseite oder das Internet durchsuchen müssen, um das zu finden, was Sie benötigen.

Weitere Informationen finden Sie auf der Less-Homepage. Die Seite hat eine schöne FAQ mit weiteren Tipps und Tricks.


Linux
  1. 6 Linux-Metazeichen, die ich gerne auf der Kommandozeile verwende

  2. Lernen Sie, den Sed-Texteditor zu verwenden

  3. So verwenden Sie den Tar-Befehl unter Linux

  4. Erstellen Sie Dateien mithilfe der Befehlszeile in Linux

  5. Könnte weniger den angezeigten Anteil der Textdatei anzeigen?

So verwenden Sie Nano, den Linux-Befehlszeilen-Texteditor

Zeigen Sie den Inhalt einer Datei in der Linux-Befehlszeile an

So fügen Sie Text am Anfang einer Datei in Linux hinzu

9 einfache Wege zur effektiven Nutzung von Less Command unter Linux

5 Befehle zum Anzeigen des Inhalts einer Datei in der Linux-Befehlszeile

Wie verwende ich den Gzip-Befehl unter Linux?