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.