Cronologia del terminale * output *?


19

Uso ampiamente le funzioni per navigare nella cronologia dei comandi nel mio terminale; Mi chiedo se c'è un modo per navigare anche nella cronologia di output del comando? (oltre a mantenere una grande dimensione e appoggiarsi al tasto pgup)

Non posso semplicemente "eseguire nuovamente il comando", poiché nella mia situazione particolare l'origine dei comandi cambia; Spesso ho bisogno di guardare indietro all'output di una modifica precedente.

Hacks benvenuto.

Grazie!

Modifica 2010:

Ho dato il merito a "tee"; tra tutti i metodi per registrare la sessione altrove, è il più ampiamente applicabile (ovvero fa parte di gnu coreutils e non richiede una shell o un'utilità specifica per funzionare). Non era proprio quello che cercavo, ma mi rendo conto che una cosa del genere non esiste davvero.

L'approssimazione più vicina a cui riesco a pensare è quella di usare qualcosa come screen(byobu / tmux) che accede al file e scrivere (e legare) un comando personalizzato per sfogliare / cercare quel file di registro (pensa al lesspaging dal prompt anziché dallo schermo). Grazie a tutti.

Modifica 2012:

La risposta di @Dustin Kirkland è chiaramente la migliore, almeno in generale; il buffer di scrollback del terminale è il modo meno invadente per navigare nella cronologia dell'output del comando. Byobu sembra avere un gran numero predefinito di righe della cronologia salvate (10K; tmux ha 2K, schermo GNU 100) e consente ricerche regex (uno sguardo in corsivo indica che lo schermo GNU non ha ricerca di scrollback e tmux ha solo una ricerca in chiaro).

Risposte:


4

Hai detto di usare byobu ...

Questo è certamente un modo per farlo. Byobu memorizza 10K righe di cronologia di scorrimento per finestra o per divisione (riquadro).

È possibile accedere facilmente allo scorrimento premendo Alt- PageUp, Alt- PageDowno F7. Una volta che sei in modalità scrollback, puoi cercare avanti e indietro usando i comandi simili a vi. Utilizzare /regexper cercare in avanti e ?regexper cercare all'indietro.


Dove viene archiviata la cronologia di scorrimento e c'è un modo per farla persistere tra le sessioni? Vale a dire: aprire il terminale con Byobu, eseguire alcuni comandi, chiamare exit, chiudere il terminale, aprire un nuovo terminale con Byobu e avere ancora la sessione precedente.
Darrel Holt,

11

È possibile utilizzare teeper inviare l'output del comando a un file e al terminale contemporaneamente.


8

È possibile utilizzare scriptper registrare la sessione del terminale in un file. Se vuoi sempre che ciò accada, aggiungi un scriptcomando adatto al tuo .login.

$ man script


5

uso screen -L

dopo essere usciti dalla sessione di shell ( exitcomando) si ottiene un file di registro nella stessa directory che si è avviatoscreen

quindi è possibile visualizzare l'output con moreoless -R


5

screen può essere impostato per registrare l'output.

Un modo per avviarlo, all'interno di una screensessione in corso, è premere Ctrl- a, quindi :, quindi accedere log.

Da man screen:

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n" in the 
window's default directory, where n is the number  of  the  current  window.
This filename can be changed with the `logfile' command. If no parameter is
given, the state of logging is toggled. The session log is appended to the
previous contents of the file if it already  exists.  The current contents and
the contents of the scrollback history are not included in the session log.
Default is `off'.

logfile filename
logfile flush secs

Defines  the  name  the  log files will get. The default is "screenlog.%n". The 
second form changes the number of seconds screen will wait before flushing the
logfile buffer to the file-system. The default value is 10 seconds.

@SQB: ho ampliato la mia risposta.
In pausa fino a nuovo avviso.

3

bash mantiene la cronologia di ciò che hai fatto, ma non l'output dei comandi. Potrebbe potenzialmente essere enorme e spesso non è utile.

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.