GNU/Linux >> Linux Esercitazione >  >> Linux

Uso avanzato del visualizzatore di file con meno testo in Linux

Di recente ho letto l'articolo di Scott Nesbitt "Usare meno per visualizzare i file di testo sulla riga di comando di Linux" e sono stato ispirato a condividere suggerimenti e trucchi aggiuntivi che uso con less .

LESS env var

Se hai una variabile d'ambiente LESS definito (ad esempio, nel tuo .bashrc ), less lo considera come un elenco di opzioni, come se fosse passato sulla riga di comando.

Io uso questo:

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

Questi significano:

  • -C – Rendi più veloci le ristampe a schermo intero non scorrendo dal basso.
  • -M – Mostra più informazioni dall'ultima riga (di stato). Puoi personalizzare le informazioni mostrate con -PM , ma di solito non mi preoccupo.
  • -I – Ignora maiuscolo/minuscolo (superiore/inferiore) nelle ricerche.
  • -j 10 – Mostra i risultati della ricerca nella riga 10 del terminale, invece della prima riga. In questo modo hai 10 righe di contesto ogni volta che premi n (o N ) per passare alla corrispondenza successiva (o precedente).
  • -# 4 – Salta quattro caratteri a destra o a sinistra quando premi il tasto freccia destra o sinistra. L'impostazione predefinita è saltare metà dello schermo, che di solito trovo troppo. In generale, less sembra essere (almeno in parte) ottimizzato per l'ambiente in cui è stato inizialmente sviluppato, con modem lenti e connessioni Internet a bassa larghezza di banda, quando aveva senso saltare mezzo schermo.

Var. ambiente PAGER

Molti programmi mostrano le informazioni usando il comando impostato nel PAGER variabile di ambiente (se impostata). Quindi puoi impostare PAGER=less nel tuo .bashrc e fai in modo che il tuo programma venga eseguito less . Controlla la pagina man environ(7) (man 7 environ ) per altre variabili simili.

-S

Programmazione e sviluppo

  • Blog degli sviluppatori Red Hat
  • Programmazione cheat sheet
  • Prova gratuitamente:Red Hat Learning Subscription
  • eBook:un'introduzione alla programmazione con Bash
  • Cheat sheet per gli script di Bash Shell
  • eBook:modernizzare Enterprise Java

L'opzione della riga di comando -S dice less per tagliare lunghe code invece di avvolgerle. Raramente ne trovo la necessità a meno che (e fino a quando) non ho iniziato a visualizzare un file. Fortunatamente, puoi digitare tutte le opzioni della riga di comando all'interno di less come se fossero comandi da tastiera. Quindi, se voglio tagliare lunghe righe mentre sono già in un file, posso semplicemente digitare -S .

Ecco un esempio che uso molto:

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

A volte, quando in seguito visualizzo l'output di un SELECT comando con un output molto ampio, digito -S quindi sarà formattato bene. Se salta troppo lontano quando premo la freccia destra per vedere di più (perché non ho impostato -# ), posso digitare -#8 , quindi ogni pressione della freccia destra sposterà otto caratteri a destra.

A volte dopo aver digitato -S troppe volte, esco da psql e lo eseguo di nuovo dopo aver inserito:

export LESS=-S

V

Il comando F rende less funziona come tail -f —in attesa che vengano aggiunti altri dati al file prima di mostrarlo. Un vantaggio rispetto a tail -f è che l'evidenziazione delle corrispondenze di ricerca funziona ancora. Quindi puoi inserire less /var/log/logfile , cerca qualcosa, che evidenzierà tutte le sue occorrenze (a meno che tu non abbia usato -g )—e quindi premere F . Quando più dati vengono scritti nel registro, less lo mostrerà ed evidenzierà le nuove corrispondenze.

Dopo aver premuto F , puoi premere Ctrl+C per impedirgli di cercare nuovi dati (questo non lo ucciderà); torna nel file per vedere cose più vecchie, cercare altre cose, ecc.; e quindi premere F di nuovo per esaminare più nuovi dati.

Ricerca

Le ricerche utilizzano la libreria regexp del sistema e questo di solito significa che puoi usare espressioni regolari estese. In particolare, cercando one|two|three troverà ed evidenzierà tutte le occorrenze di uno, due o tre.

Un altro modello che uso molto, specialmente con righe di registro larghe (ad esempio, quelle che si estendono su più di una riga di terminale), è .*something.* , che evidenzia l'intera riga. Questo modello rende molto più facile vedere dove inizia e dove finisce una linea. Li combino anche, come:.*one thing.*|.*another thing.* o key: .*|.*marker.* per vedere il contenuto della key (ad esempio, in un file di registro con un dump di un dizionario/hash) ed evidenziare le righe di marker rilevanti (quindi ho un contesto), o anche, se so che il valore è racchiuso tra virgolette:

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

less mantiene una cronologia degli elementi di ricerca e li salva su disco per invocazioni future. Quando premi / (o ? ), puoi scorrere questa cronologia con la freccia su o giù (oltre a modificare le righe di base).

Mi sono imbattuto in quella che sembra essere una funzionalità molto utile quando ho sfogliato il less pagina man durante la stesura di questo articolo:saltare righe poco interessanti con &!pattern . Ad esempio, mentre cerchi qualcosa in /var/log/messages , ero solito scorrere questo elenco di comandi:

    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

Ma ora so come fare la stessa cosa all'interno di less . Ad esempio, posso digitare &!systemd: Started Session , quindi decido che voglio sbarazzarmi di systemd: Starting Session , quindi lo aggiungo digitando &! e usa la freccia su per ottenere la ricerca precedente dalla cronologia. Quindi digito |systemd: Starting Session e premi Enter , continuando ad aggiungere più elementi allo stesso modo finché non ne elimino abbastanza per vedere gli elementi più interessanti.

=

Il comando = mostra più informazioni sul file e sulla posizione, anche più di -M . Se il file è molto lungo e calcola = impiega troppo tempo, puoi premere Ctrl+C e smetterà di provare.

Se il contenuto che stai visualizzando proviene da una pipe anziché da un file, = (e -M ) non mostrerà ciò che non conosce, incluso il numero di righe e byte nel file. Per vedere quei dati, se conosci quel command finirà rapidamente, puoi saltare alla fine con G , quindi less inizierà a mostrare tali informazioni.

Se premi G e la scrittura del comando sulla pipe richiede più tempo del previsto, puoi premere Ctrl+C e il comando verrà ucciso. Premendo Ctrl+C lo ucciderà anche se non hai premuto G , quindi fai attenzione a non premere Ctrl+C accidentalmente se non hai intenzione di ucciderlo. Per questo motivo, se il comando fa qualcosa (ovvero, non mostra solo informazioni), di solito è più sicuro scrivere il suo output in un file e visualizzare il file in un terminale separato, invece di usare una pipe.

Perché hai bisogno di meno

less è un programma molto potente e contrario ai nuovi concorrenti in questo spazio, come most e moar , è probabile che lo trovi su quasi tutti i sistemi che usi, proprio come vi . Quindi, anche se utilizzi visualizzatori o editor della GUI, vale la pena investire un po' di tempo nel less pagina man, almeno per avere un'idea di ciò che è disponibile. In questo modo, quando devi fare qualcosa che potrebbe essere coperto da funzionalità esistenti, saprai di cercare nella pagina di manuale o su Internet per trovare ciò di cui hai bisogno.

Per ulteriori informazioni, visitare la home page di meno. Il sito ha una bella FAQ con più suggerimenti e trucchi.


Linux
  1. 6 metacaratteri Linux che amo usare sulla riga di comando

  2. Impara a usare l'editor di testo Sed

  3. Come utilizzare il comando Tar in Linux

  4. Crea file utilizzando la riga di comando in Linux

  5. less (linux) get/go-to X offset nel file

Come utilizzare Nano, l'editor di testo della riga di comando di Linux

Visualizza il contenuto di un file nella riga di comando di Linux

Come aggiungere testo all'inizio del file in Linux

9 semplici modi per utilizzare in modo efficace meno comandi in Linux

5 comandi per visualizzare il contenuto di un file nella riga di comando di Linux

Come utilizzare il comando Gzip in Linux?