GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation avancée du visualiseur de fichiers avec moins de texte sous Linux

J'ai récemment lu l'article de Scott Nesbitt "Utiliser less pour afficher les fichiers texte sur la ligne de commande Linux" et j'ai été inspiré pour partager des trucs et astuces supplémentaires que j'utilise avec less .

LESS env var

Si vous avez une variable d'environnement LESS défini (par exemple, dans votre .bashrc ), less la traite comme une liste d'options, comme si elle était transmise sur la ligne de commande.

J'utilise ceci :

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

Cela signifie :

  • -C – Accélérez les réimpressions en plein écran en ne faisant pas défiler depuis le bas.
  • -M – Afficher plus d'informations à partir de la dernière ligne (d'état). Vous pouvez personnaliser les informations affichées avec -PM , mais je ne m'en soucie généralement pas.
  • -I – Ignorer la casse (majuscule/minuscule) dans les recherches.
  • -j 10 – Afficher les résultats de la recherche dans la ligne 10 du terminal, au lieu de la première ligne. De cette façon, vous avez 10 lignes de contexte à chaque fois que vous appuyez sur n (ou N ) pour passer à la correspondance suivante (ou précédente).
  • -# 4 – Sautez quatre caractères vers la droite ou la gauche lorsque vous appuyez sur la touche fléchée droite ou gauche. La valeur par défaut est de sauter la moitié de l'écran, ce que je trouve généralement trop. De manière générale, less semble être (au moins partiellement) optimisé pour l'environnement dans lequel il a été initialement développé, avec des modems lents et des connexions Internet à faible bande passante, alors qu'il était logique de sauter d'un demi-écran.

Var d'environnement PAGER

De nombreux programmes affichent des informations à l'aide de la commande définie dans le PAGER variable d'environnement (si elle est définie). Ainsi, vous pouvez définir PAGER=less dans votre .bashrc et que votre programme s'exécute less . Consultez la page de manuel environ(7) (man 7 environ ) pour d'autres variables de ce type.

-S

Programmation et développement

  • Blog des développeurs Red Hat
  • Fiches de triche de programmation
  • Essayez gratuitement :Red Hat Learning Subscription
  • eBook :Une introduction à la programmation avec Bash
  • Aide-mémoire pour les scripts de shell bash
  • eBook :Modernisation de Java d'entreprise

L'option de ligne de commande -S dit less couper de longues lignes au lieu de les envelopper. J'en trouve rarement le besoin à moins (et jusqu'à ce que) j'aie commencé à visualiser un fichier. Heureusement, vous pouvez taper toutes les options de ligne de commande dans less comme s'il s'agissait de commandes clavier. Donc, si je veux couper de longues lignes alors que je suis déjà dans un fichier, je peux simplement taper -S .

Voici un exemple que j'utilise beaucoup :

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

Parfois, lorsque je visualise plus tard la sortie d'un SELECT commande avec une sortie très large, je tape -S il sera donc bien formaté. S'il saute trop loin lorsque j'appuie sur la flèche droite pour en voir plus (parce que je n'ai pas défini -# ), je peux taper -#8 , puis chaque pression sur la flèche vers la droite déplacera huit caractères vers la droite.

Parfois après avoir tapé -S trop de fois, je quitte psql et le relance après avoir saisi :

export LESS=-S

F

La commande F rend less fonctionne comme tail -f — attend que plus de données soient ajoutées au fichier avant de l'afficher. Un avantage que cela a sur tail -f est que la mise en surbrillance des correspondances de recherche fonctionne toujours. Vous pouvez donc entrer less /var/log/logfile , recherchez quelque chose, ce qui mettra en surbrillance toutes ses occurrences (sauf si vous avez utilisé -g )—puis appuyez sur F . Lorsque plus de données sont écrites dans le journal, less l'affichera et mettra en évidence les nouveaux matchs.

Après avoir appuyé sur F , vous pouvez appuyer sur Ctrl+C pour l'empêcher de rechercher de nouvelles données (cela ne le tuera pas); revenir dans le fichier pour voir des choses plus anciennes, rechercher d'autres choses, etc. ; puis appuyez sur F à nouveau pour examiner plus de nouvelles données.

Recherche

Les recherches utilisent la bibliothèque d'expressions régulières du système, ce qui signifie généralement que vous pouvez utiliser des expressions régulières étendues. En particulier, la recherche de one|two|three trouvera et mettra en surbrillance toutes les occurrences de un, deux ou trois.

Un autre modèle que j'utilise beaucoup, en particulier avec les lignes de journal larges (par exemple, celles qui s'étendent sur plus d'une ligne terminale), est .*something.* , qui met en évidence toute la ligne. Ce modèle permet de voir beaucoup plus facilement où une ligne commence et se termine. Je les combine également, comme :.*one thing.*|.*another thing.* , ou touche key: .*|.*marker.* pour voir le contenu de key (par exemple, dans un fichier journal avec un vidage d'un dictionnaire/hachage) et mettez en surbrillance les lignes de repère pertinentes (pour que j'aie un contexte), ou même, si je sais que la valeur est entourée de guillemets :

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

less conserve un historique de vos éléments de recherche et les enregistre sur le disque pour de futures invocations. Lorsque vous appuyez sur / (ou ? ), vous pouvez parcourir cet historique avec la flèche vers le haut ou vers le bas (ainsi que faire de l'édition de ligne de base).

Je suis tombé sur ce qui semble être une fonctionnalité très utile lors du survol du less page de manuel lors de la rédaction de cet article :sauter les lignes inintéressantes avec &!pattern . Par exemple, en cherchant quelque chose dans /var/log/messages , j'avais l'habitude de parcourir cette liste de commandes :

    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

Mais maintenant je sais comment faire la même chose en less . Par exemple, je peux taper &!systemd: Started Session , puis décidez que je veux me débarrasser de systemd: Starting Session , donc je l'ajoute en tapant &! et utilisez la flèche vers le haut pour obtenir la recherche précédente à partir de l'historique. Ensuite, je tape |systemd: Starting Session et appuyez sur Enter , en continuant d'ajouter d'autres éléments de la même manière jusqu'à ce que je filtre suffisamment pour voir les éléments les plus intéressants.

=

La commande = affiche plus d'informations sur le fichier et l'emplacement, même plus que -M . Si le fichier est très long, et en calculant = prend trop de temps, vous pouvez appuyer sur Ctrl+C et il arrêtera d'essayer.

Si le contenu que vous visualisez provient d'un canal plutôt que d'un fichier, = (et -M ) n'affichera pas ce qu'il ne sait pas, y compris le nombre de lignes et d'octets dans le fichier. Pour voir ces données, si vous connaissez cette command se terminera rapidement, vous pouvez sauter à la fin avec G , puis less commencera à afficher ces informations.

Si vous appuyez sur G et que l'écriture de la commande dans le tube prend plus de temps que prévu, vous pouvez appuyer sur Ctrl+C , et la commande sera tuée. En appuyant sur Ctrl+C le tuera même si vous n'avez pas appuyé sur G , veillez donc à ne pas appuyer sur Ctrl+C accidentellement si vous n'avez pas l'intention de le tuer. Pour cette raison, si la commande fait quelque chose (c'est-à-dire qu'elle n'affiche pas seulement des informations), il est généralement plus sûr d'écrire sa sortie dans un fichier et d'afficher le fichier dans un terminal séparé, au lieu d'utiliser un tube.

Pourquoi vous avez besoin de moins

less est un programme très puissant, et contrairement aux nouveaux concurrents dans cet espace, tels que most et moar , vous le trouverez probablement sur presque tous les systèmes que vous utilisez, tout comme vi . Donc, même si vous utilisez des visualiseurs ou des éditeurs d'interface graphique, cela vaut la peine d'investir un peu de temps à parcourir le less page de manuel, au moins pour avoir une idée de ce qui est disponible. De cette façon, lorsque vous devez faire quelque chose qui pourrait être couvert par une fonctionnalité existante, vous saurez qu'il vous faut chercher dans la page du manuel ou sur Internet pour trouver ce dont vous avez besoin.

Pour plus d'informations, visitez la page d'accueil moins. Le site a une belle FAQ avec plus de trucs et astuces.


Linux
  1. 6 métacaractères Linux que j'aime utiliser en ligne de commande

  2. Apprendre à utiliser l'éditeur de texte Sed

  3. Comment utiliser la commande Tar sous Linux

  4. Créer des fichiers en utilisant la ligne de commande sous Linux

  5. Pourrait moins montrer la proportion vue du fichier texte?

Comment utiliser Nano, l'éditeur de texte en ligne de commande Linux

Afficher le contenu d'un fichier dans la ligne de commande Linux

Comment ajouter du texte au début du fichier sous Linux

9 façons simples d'utiliser efficacement Less Command sous Linux

5 commandes pour afficher le contenu d'un fichier en ligne de commande Linux

Comment utiliser la commande Gzip sous Linux ?