Come posso visualizzare più della mia cronologia in Screen su Linux?


54

Durante la notte stavo eseguendo script dalla riga di comando (all'interno di Screen su un'istanza di Linux EC2) e si sono verificati alcuni errori che non stavo monitorando. Voglio "scorrere verso l'alto" o visualizzare più della cronologia nella schermata, ma non riesco a trovare alcun comando che funzioni.

Ho bisogno di vedere l'output sullo schermo "più in alto" di quello che posso sulla mia schermata attuale. CTRL + a dovrebbe mettermi in modalità di scorrimento all'interno dello schermo, ma non funziona.


history | less, more? O stai chiedendo come conservare più storia?

historymanterrà solo i comandi che sono stati lanciati nella shell. Sta più chiedendo di registrare una specie di roba

<Shift>+ <PgUp>è l'unica opzione. E ha anche qualche limite (al massimo 500 righe, immagino).
ssapkota,

Ho bisogno di vedere l'output sullo schermo "più in alto" di quello che posso sulla mia schermata attuale. CTRL + a dovrebbe mettermi in modalità di scorrimento all'interno dello schermo, ma non funziona per me.
T. Brian Jones,

1
Basta Ctrl-aè screen's fuga. L'intera sequenza di tasti per entrare in modalità scrollback sarebbe Ctrl-a [, come dice opyate. Ctrl-a ESCfunziona anche per me, non ricordo quale sia standard / comunemente usato.
ninjalj,

Risposte:


32

Quando si avvia la schermata, è possibile specificare la dimensione del buffer di scorrimento con -h, quindi è possibile aumentarla dal valore predefinito di 100 righe. Tuttavia, con una schermata attualmente in esecuzione, una volta che i dati hanno lasciato il buffer, sono spariti.


3
Questo è semplicemente sbagliato. La risposta di @opyate fornisce una soluzione
nirvana-msu,

6
@ nirvana-msu L'uso di ^ a per accedere alla modalità di scorrimento consente di eseguire il paging del buffer di scorrimento. Se i dati sono già andati dal buffer di scorrimento, sono andati. È possibile aumentare le dimensioni di quel bufer all'avvio. Cosa pensi esattamente della mia risposta che ritieni errata? Parlo di aumentare le dimensioni del buffer di scrollback, opyate fornisce dettagli su come usarlo.
William Pursell,

2
Bene, ok, sebbene la domanda non riguardasse davvero l'estensione del buffer di scorrimento. L'autore voleva visualizzare più cronologia di quella normalmente visualizzata nella console e puoi visualizzare più cronologia utilizzando Ctrl+a+[. La tua risposta fa sembrare che non sia possibile, il che è fuorviante.
nirvana-msu,

Questo non funziona su un mac. Le altre risposte non funzionano neanche.
Ben

76

Supponendo di non aver annullato la sequenza di escape, è possibile premere Ctrl-a [per passare alla modalità di scorrimento, quindi utilizzare la solita Pagina-SU / Pagina-GIÙ o Ctrl-b / Ctrl-f per andare su e giù.

Dal wiki di Gentoo sullo schermo


7
ed ESC per uscire dalla modalità scrollback, IIRC
ninjalj,

ora la wiki di gentoo è: wiki.gentoo.org/wiki/Screen
Rmatt

vedi anche questo post per come (tipo di) iniziare a scorrere con il mouse funzionante. Il nome del post dice che è per tmux ma copre anche lo schermo
JonnyRaa,

2
Ctrl+ A, Escentra anche nella modalità copia / scorrimento.
Serge Stroobandt,

7

È inoltre possibile eseguire i comandi nel scriptcomando che registrerà l'output su disco. Oppure puoi: command 2>&1 | tee /tmp/cmd.outregistrare l'output per future indagini in una cronologia di output di dimensioni (praticamente) infinite.


questo è quello che ho finito per usare per il mio compito. Funziona alla grande. Grazie.
T. Brian Jones,

6

Ho bisogno di vedere l'output sullo schermo "più in alto" di quello che posso sulla mia schermata attuale. CTRL + a dovrebbe mettermi in modalità di scorrimento all'interno dello schermo, ma non funziona.

A complemento delle altre risposte, vorrei sottolineare che è possibile aggiungere nel ~/.screenrcfile:

defscrollback 100000
termcapinfo xterm ti@:te@

dove:

  • defscrollback 100000: imposta il numero predefinito di righe di scorrimento su 100000
  • termcapinfo xterm ti@:te@: consente lo scorrimento dei terminali in xterm o PuTTY. ( FAQ schermo ; FAQ PuTTY )

Non funziona su un Mac. Nessuna delle risposte funziona qui. Riesco ancora a vedere le dimensioni della finestra Terminale. Più in alto è solo il screencomando e le cose che ho fatto prima dello schermo. Ho anche provato screen -h, stesso risultato. Qualche idea?
Ben

@Ben scusami non ho idea, ho provato solo su Ubuntu.
Franck Dernoncourt il

1
Ah, funziona con control+ ae poi ESCe poi sono in grado di scorrere all'interno del testo con il cursore. Ciò che non funziona è scorrere con il mouse usando i cursori Terminale Mac sul lato. Grazie!
Ben

5

È inoltre possibile modificare la dimensione della cronologia di scorrimento in una schermata corrente con la sequenza CTRL-a :(accedere alla modalità riga di comando della schermata), quindi scrollback 10000se si desidera 10k righe di buffer della cronologia. La modifica si applica immediatamente.

Fai attenzione all'uso della memoria se usi molte schermate con buffer molto lunghi.

Tuttavia, come ha detto @William Pursell, con una schermata attualmente in esecuzione, una volta che i dati hanno lasciato il buffer, sono spariti.


0

A seconda del programma terminale in uso, in genere è possibile modificare il Buffer di scorrimento in Impostazioni. So che xtermdevi prima abilitare lo scorrimento, quindi puoi impostare il buffer su infinito.

Tuttavia, la soluzione migliore per la registrazione degli script sarebbe quella di reindirizzare l'output standard su un file:

ScriptName >> OutputFile.txt

In questo modo è possibile scorrere e cercare liberamente e tenere un registro (ad esempio in caso di crash del computer).

EDIT: questo è vicino alla soluzione di tubazioni sopra, tuttavia il reindirizzamento dell'input standard può essere utile anche in altri casi:

grep linux stackoverflow.txt > linuxquestions.txt

o

cat linuxquestions.txt | grep buffersize > bufferquestions.txt

Si noti che screen(1)non consente lo scorrimento dei terminali. Questa è sia una delle sue caratteristiche principali sia uno dei suoi principali inconvenienti.
Sarnold,

@sarnold È possibile consentire lo scorrimento dei terminali, vedere superuser.com/a/1336554/116475
Franck Dernoncourt,

0

Utilizzando un terminale macOS non sono stato in grado di utilizzare i cursori a lato per visualizzare la cronologia del testo.

Sono stato in grado di scorrere con il cursore all'interno del testo usando e dopo aver premuto CRTL+ ae quindi ESC.

E ho dovuto aggiungere questo per ~/.screenrcabilitare lo scorrimento del mouse dall'interno della finestra (ancora non con i cursori):

termcapinfo xterm* ti@:te@
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.