comandi bash che non si adattano a una pagina - rendono scorrevole l'output


6

Probabilmente è stata data una risposta da qualche parte, ma è difficile inquadrare la frase di ricerca.

Sto eseguendo una finestra di terminale bash e alcuni comandi sono troppo grandi per adattarsi alla pagina (ad es. ps -A )

Ricordo vagamente un parametro / metodo della riga di comando che mostra l'output del comando pagina per pagina in modo da poter scorrere l'output, ma non riesco a ricordare di cosa si tratta .... eventuali puntatori?


2
ps -A | less o ps -A | more? C'è anche ps -A | vim - o ps | gvim - per i fan di vim.
Cristian Ciupitu

con spostare verso l'alto di solito puoi scorrere il tuo terminale e leggere ...
Hastur

@CristianCiupitu Questo è quello! - Meno / più, grazie :)
code_fodder

@Hastur Normalmente, sì, il terminale utilizzato ha un buffer che puoi scorrere, ma lo sto usando su un terminale veramente di base (sembra essere degli anni '60), non c'è alcun scroll / buffer. :(
code_fodder

Se hai less è in qualche modo migliore di more: puoi scorrere facilmente verso l'alto e verso il basso, è in grado di vedere se il file / stream è binario e di chiedere prima di mostrarlo (In questo caso eviti di incasinare il set di caratteri del tuo schermo con un incontrollato testo binario ) :-).
Hastur

Risposte:


7

Per i comandi che uso spesso, generalmente ho impostato a function nel mio .bashrc per renderli paginati se più lunghi di uno schermo.

Come il tuo esempio: (ps -A)

function ps { command ps "$@" |& less -F; }

Questo sostituisce ps con una funzione, chiamato ps, che chiama l'originale ps comando con qualsiasi argomento dato sulla riga di comando, quindi pipe l'output (stdout e stderr, usando il |& tubo) in less -F, che si interrompe se c'è più di uno schermo pieno, ma si chiude immediatamente se è inferiore a uno schermo pieno.

MOLTO pratico, non interferisce con qualsiasi cosa con cui ho lavorato finora, ed è semplicemente fantastico!

Puoi anche aggiungere opzioni spesso usate nel comando / funzioni:

function nm { command nm --demangle "$@" |& less -F; }

Questo fa nm semina sempre simboli C ++. E impagina l'output. Sìì!

sto correndo Debian , quindi uso il apt-cache comando abbastanza spesso, ricerca e mostrare soprattutto. Questa funzione fa sì che quelle particolari opzioni pagino, ricerca l'output è ordinato e tutto impagina:

function apt-cache { case  "$1" in "search") command apt-cache "$@" | sort | less -F;; *) command apt-cache "$@" | less -F;; esac; }

Se il comando è 'cerca', ordina l'output, quindi impagina con less -F, ma se il comando è qualsiasi altra cosa, basta impaginare, senza selezionare.

Occasionalmente dimentico di avere le funzioni e farò qualcosa del tipo:

apt-cache search gcc | less

La funzione non interferisce, tutto funziona come previsto, nessun danno in alcun modo.

Un altro piccolo ritocco, io uso lo stesso .bashrc su tutti i miei sistemi, quindi a volte un'utilità potrebbe non essere installata, quindi non è necessario per la funzione. Li faccio condizionali in questo modo:

which apt-cache &>/dev/null && function apt-cache { case  "$1" in "search") command apt-cache "$@" |& sort | less -F;; *) command apt-cache "$@" |& less -F;; esac; }

Questo usa solo il which comando per determinare se un programma è disponibile, se non lo è, fallisce silenziosamente e salta l'installazione della funzione. Taa Daa!


1
Grazie per aver dimostrato command, di cui ho sempre avuto bisogno. Ora posso ridefinire il builtin per avere una bella funzione che avvolge il vero builtin!
bgStack15

+1 d'accordo con bgStack ... anche se penso che per il mio problema, meno lo farà :)
code_fodder

6

Il metodo normale consiste nel reindirizzare l'output su "less".

ls -R / | less

q è la chiave per uscire, proprio come una pagina man.

Se il comando può produrre errori o altri output su stderr, potresti volerlo indirizzare anche alla pipe.

ls -R 2>&1 | less

Qualsiasi macchina che ha bash dovrebbe avere anche meno. Il vecchio programma era su vecchie macchine Linux Di Più , ma fa solo una pagina alla volta Di meno ti consentirà di scorrere come desideri.


"q è la chiave per uscire, proprio come una pagina man". Questo perché l'output di uomo il comando viene inviato a cercapersone piace Di meno o Di Più , ma se nessun pager è configurato o diverso se usato, il q la chiave potrebbe non funzionare.
Cristian Ciupitu

0

Esegui il pipe dell'output su "more"

output | more -d


Enter - > Scroll by line
Space - > Scroll by Page
q     - > Quit

Testato su sistema operativo basato su rpm.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.