Come salvare la cronologia di scrollback in byobu?


23

Ho avuto un'interessante sessione terminale in byobu e mi piacerebbe salvare l'output del terminale (comandi e tutto) in un file - come posso farlo?

Secondo la pagina man di byobu :

Ctrl-a ~ - Salva il buffer di scorrimento della finestra corrente

Questo potrebbe effettivamente fare qualcosa, ma non ho trovato alcuna indicazione di dove e sotto quale nome potrebbe essere salvato.

Risposte:


21

Oppure, puoi semplicemente usare il tasto di scelta rapida di Byobu per questo:

  • Shift-F7

Questo prenderà la tua storia e la inserirà nel tuo editor preferito. Ora, salva quel buffer in un file. Se sei in vi o vim, puoi usarlo:wq /tmp/out


sift-F7 non sembra fare nulla e neanche la schermata di aiuto di byobu lo menziona - sto usando byobu 5.17 con tmux 1.6 in Ubuntu.
drevicko,

È fantastico, mi ha fatto risparmiare un sacco di tempo!
Ctrl-C,

1
Sto eseguendoobu 5.74 e quell'opzione appare per me nella schermata di aiuto e funziona come descritto. Sarei sorpreso se non fosse così dato che Dustin è il creatore di Byobu. :) Vale la pena ricordare che l'output viene salvato in $BYOBU_RUN_DIR/printscreen(come indicato nella schermata di aiuto).
Chuim,

2
Per me è stato salvato /dev/shm/byobu-serg-ucvwj2rJ/printscreen, dove serg è ovviamente il mio nome utente
Sergiy Kolodyazhnyy,

1
So che questa è una vecchia risposta. Ad ogni modo, riscontro lo stesso problema: shift-F7 sembra non fare nulla (anche se il collegamento è presente nel menu di aiuto). Lo sto usando su un host Ubuntu-16.04 con byobu versione 5.106 e tmux 2.1.
Marc,

20

Una vecchia domanda non rispondeva ancora in modo soddisfacente, e ho colto di nuovo la necessità.

Questa volta ho trovato una soluzione praticabile. Da man byobu:

SCROLLBACK, COPY, PASTE MODES

   Each  window  in  Byobu  has  up to 10,000 lines of scrollback history,
   which you can enter and navigate using the alt-pgup and alt-pgdn  keys.
   Exit  this  scrollback mode by hitting enter.  You can also easily copy
   and paste text from scrollback mode.  To do so, enter scrollback  using
   alt-pgup  or  alt-pgdn,  press the spacebar to start highlighting text,
   use up/down/left/right/pgup/pgdn to select the text, and press enter to
   copy  the  text.  You can then paste the text using alt-insert or ctrl-
   a-].
  1. Ho premuto F7per accedere alla modalità di scorrimento,
  2. Space per iniziare a selezionare,
  3. gg scorrere fino alla cima del buffer (grazie @GeorgeMarian)
    • Se il problema persiste, prova questo: con molti Page upo :seguiti dal numero di riga più grande (indicato in alto a destra) e Page upper arrivare all'inizio di quella pagina,
  4. Enter copiare (negli appunti di byobu, non in quello terminale / di sistema),
  5. poi cat > my-byobu-dump.txtnel terminal,
  6. Alt+ Inserto ctrl+ A+ ]per incollare (di nuovo, dagli appunti di byobu)
  7. Ctrl+ Dper chiudere il file.

Questa è stata l'unica risposta che ha funzionato bene per me.
pjvandehaar,

1
Per il passaggio 3, se si desidera ottenere il massimo utilizzo gg(proprio come vim).
George Marian,

@GeorgeMarian Sai se proviene da una modalità di emulazione vim? le persone troveranno altri comportamenti? Sembra il comportamento predefinito (almeno con byobu 5.17 su tmux 1.6)
drevicko

Non esiste una modalità di emulazione vim in byobu che io conosca. Ci sono comandi di movimento simili a vi in ​​modalità scrollback , e forse altrove. Mi è capitato di provarli, dato che - beh - Linux. (Ho usato lessmolto ultimamente, cercando e spostandomi.)
George Marian,

ok. potrebbe provenire dalla tecnologia multiplex sottostante (schermo o tmux)? Comunque, ho aggiunto il tuo suggerimento.
Mille

3

Maiusc + F7 funziona come previsto se la variabile di ambiente EDITOR è impostata su un editor in byobu . Per qualche motivo, in alcuni casi (ad es. Per me quando mi connetto tramite SSH a un altro computer), l'impostazione di questa variabile ~/.profilenon è sufficiente. Un posto dove posizionarlo in modo che byobu legga sempre che è dentro ~/.bashrc. Copia qualcosa di simile al seguente sul tuo ~/.bashrc:

# Although this is set in ~/.profile, it is set here as well so that in a 
# remote byobu session, Shift+F7 copies the output to a Vim buffer. See:
# /ubuntu/382750/how-to-save-scrollback-history-in-byobu
export EDITOR='vim'

Nel mio caso, questo non ha aiutato (in realtà .bashrc è dove ho impostato EDITOR sempre). Per quanto ne so, il mio emulatore di terminale (programma Terminale predefinito osx) non sta trasmettendo correttamente i tasti funzione - probabilmente risolvibile nelle impostazioni di Terminale, ma le soluzioni ctrl-A funzionano bene per me.
drevicko,

1
@drevicko ah vedo, buono a sapersi. Bene, è un bene che stiamo raccogliendo diverse soluzioni alternative in modo che speriamo che uno di loro funzioni per la prossima persona che incontra questo problema.
scottkosty,


2

Se sei abituato a non usare i tasti F, questo potrebbe funzionare per te:

  • Ctrl+ a, [: Accedere alla modalità scrollback
  • Space entra nella modalità copia (opzionale)
  • Enter esce dalla modalità scrollback o copia
  • Ctrl+ a, ]: Incollare quello che è stato copiato

Anche se il tuo programma terminale sta intercettando i tasti F;)
drevicko

1

Usa Ctrl+ A+ ~per copiare il buffer di scrollback negli appunti di byobu.

Incolla il testo in un editor usando Alt+ insert o Ctrl+ A+ ].

(Regola Ctrl+ Ase hai modificato la chiave di escape.)


Al momento ho solo un Mac su cui lavorare, e ctrl-a ~ quindi ctrl-a] non stanno facendo nulla - sospetto che ctrl-a non stia arrivando a byobu (che si trova all'altra estremità di un ssh tunnel) .. Qualche idea?
drevicko,

0

Seleziona il testo che desideri salvare, quindi premi Control+ Shift + C Avanti, apri il tuo editor di testo preferito. Quindi incolla il contenuto qui utilizzando Control+ V . Infine, salva il file nella posizione desiderata.

SUGGERIMENTO PER I TERMINALI DEL GIORNO: quando provi a copiare qualcosa nel terminale, fallo come al solito, aspettati di usare Control+ Shift + Cinvece di Control+ Ce incollalo come al solito. Per incollare qualcosa che è negli Appunti nel terminale usa Control+ Shift + V.


è solo un semplice schema di copia incolla, perderà tempo a copiare e poi a incollare. drevicko vuole farlo tramite terminale o lo salva automaticamente da qualche parte.
Sukupa91,

Non ha detto che mi piacerebbe salvare tutto in un file? Questo è come lo fa.
Cammy_the_block il

1
No, credo che avresti appena ottenuto il valore dello schermo - non l'intera storia (forse 10000 righe) diobu scrollback ... Nota che byobu memorizza una cronologia del terminale indipendente dall'app del terminale che stai usando.
drevicko,

Se tieni il mouse sopra la finestra, scorrerà verso l'alto in modo da poter evidenziare l'intera cosa.
Cammy_the_block il

2
@Cammy_the_block ti manca il bit "byobu", cercalo (cosa MOLTO utile se lavori su server remoti). Memorizza le sessioni terminali da cui è possibile disconnettersi e in seguito riconnettersi. Ho 10.000 righe di cronologia terminale che NON è accessibile per l'applicazione terminale locale. Byobu (e il backend che sta usando: tmux o screen) hanno il proprio set di comandi guidati da tastiera per accedere a quella cronologia.
drevicko,

0

Ctrl+ A+ ]funzionerà se digiti da 1 a 20 volte o più con abracodabra. Ma l'unico comando funzionerà senza mal di testa. Per incollare il testo dal buffer al terminale o al file. E il vincitore è Alt+ Ins., Saluta Byobu è il software GPLv3, creato e gestito da Dustin Kirkland.


0

Se è necessario salvare la cronologia, utilizzare Shift + F7shorcut. Come dice @ dustin-kirkland .

Se preferisci scorrere su e giù nel tuo terminale, dipende se usi tmux o schermo. Esempi:

  1. screeen:

  2. tmux:

    • ALT + PageUp: scorri verso l'alto.
    • ALT + PageDown: scorri verso il basso.

Guida di Byobu F1

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.