Comment enregistrer l'historique de défilement dans byobu?

23

J'ai eu une session de terminal intéressante dans byobu , et je voudrais enregistrer la sortie du terminal (commandes et tout) dans un fichier - comment faire?

Selon la page de manuel de byobu :

Ctrl-a ~ - Enregistrer le tampon de défilement de la fenêtre actuelle

Cela peut en effet faire quelque chose, mais je n'ai trouvé aucune indication où et sous quel nom il pourrait être enregistré.

drevicko
la source

Réponses:

21

Ou, vous pouvez simplement utiliser le raccourci clavier de Byobu pour cela:

  • Shift-F7

Cela prendra votre historique et le mettra dans votre éditeur préféré. Maintenant, enregistrez simplement ce tampon dans un fichier. Si vous êtes en vi ou vim, vous pouvez utiliser:wq /tmp/out

Dustin Kirkland
la source
sift-F7 ne semble rien faire et l'écran d'aide de byobu ne le mentionne pas non plus - j'utilise byobu 5.17 avec tmux 1.6 dans ubuntu.
drevicko
C'est génial, ça m'a fait gagner beaucoup de temps!
Ctrl-C
1
J'utilise byobu 5.74 et cette option apparaît pour moi dans l'écran d'aide et fonctionne comme décrit. Je serais surpris si ce n'était pas le cas étant donné que Dustin est le créateur de byobu. :) Il convient de mentionner que la sortie est enregistrée dans $BYOBU_RUN_DIR/printscreen(comme indiqué dans l'écran d'aide).
Chuim
2
Pour moi, il a été enregistré dans /dev/shm/byobu-serg-ucvwj2rJ/printscreen, où serg est évidemment mon nom d'utilisateur
Sergiy Kolodyazhnyy
1
Je sais que c'est une vieille réponse. Quoi qu'il en soit, je rencontre le même problème: le shift-F7 ne semble rien faire (même si le raccourci est présent dans le menu d'aide). Je l'utilise sur un hôte Ubuntu-16.04 avec byobu version 5.106 et tmux 2.1.
Marc
20

Une vieille question n'a toujours pas trouvé de réponse, et j'ai encore frappé le besoin.

Cette fois, j'ai trouvé une solution viable. De 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. J'ai frappé F7pour entrer en mode de défilement,
  2. Space pour commencer la sélection,
  3. gg pour faire défiler vers le haut du tampon (merci @GeorgeMarian)
    • Si cela ne fonctionne pas, essayez ceci: soit avec beaucoup de, Page upsoit :suivi du plus grand numéro de ligne (indiqué en haut à droite) et Page uppour accéder au haut de cette page,
  4. Enter à copier (dans le presse-papiers de byobu, pas un terminal / système),
  5. puis cat > my-byobu-dump.txtdans le terminal,
  6. Alt+ Insertou ctrl+ A+ ]à coller (encore une fois, depuis le presse-papiers de byobu)
  7. Ctrl+ Dpour fermer le fichier.
drevicko
la source
C'était la seule réponse qui fonctionnait bien pour moi.
pjvandehaar
1
Pour l'étape 3, si vous souhaitez utiliser ggau maximum (tout comme vim).
George Marian
@GeorgeMarian Savez-vous s'il s'agit d'un mode d'émulation vim? les gens trouveront-ils d'autres comportements? Semble le comportement par défaut (au moins avec byobu 5.17 sur tmux 1.6)
drevicko
Il n'y a pas de mode d'émulation vim dans byobu à ma connaissance. Il y a des commandes de mouvement de type vi en mode de défilement , et peut-être ailleurs. Il se trouve que je les ai essayés depuis - enfin - Linux. (J'utilise lessbeaucoup ces derniers temps, je cherche et je me déplace.)
George Marian
D'accord. pourrait-il provenir de la technologie de multiplexage sous-jacente (écran ou tmux)? Quoi qu'il en soit, j'ai ajouté votre suggestion. Merci beaucoup :)
drevicko
3

Shift + F7 ne fonctionne comme prévu que si la variable d'environnement EDITOR est définie sur un éditeur dans byobu . Pour une raison quelconque, dans certains cas (par exemple pour moi lors de la connexion via SSH à un autre ordinateur), la définition de cette variable dans ~/.profilen'est pas suffisante. Un endroit pour le régler afin que byobu le lise toujours ~/.bashrc. Copiez quelque chose comme ceci sur votre ~/.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'
scottkosty
la source
Dans mon cas, cela n'a pas aidé (en fait .bashrc est l'endroit où j'ai défini EDITOR). Pour autant que je sache, mon émulateur de terminal (programme Terminal OSX par défaut) ne transmet pas correctement les touches de fonction - probablement résoluble dans les paramètres de Terminal, mais les solutions ctrl-A fonctionnent bien pour moi.
drevicko
1
@drevicko ah je vois, bon à savoir. Eh bien, c'est bien que nous collections plusieurs solutions de contournement de sorte que, espérons-le, l'une d'entre elles fonctionnera pour la prochaine personne qui rencontrera ce problème.
scottkosty
fyi: .profile n'est pas chargé pour les sessions ssh par défaut - explique ce qui s'est passé ici.
drevicko
2

Si vous avez l'habitude de ne pas utiliser les touches F, cela pourrait fonctionner pour vous:

  • Ctrl+ a, [: Entrer dans le mode scrollback
  • Space entrer en mode copie (facultatif)
  • Enter quitter le mode de défilement ou de copie
  • Ctrl+ a, ]: Coller ce qui a été copié
Ikar Pohorský
la source
Aussi si votre programme de terminal intercepte les touches F;)
drevicko
1

Utilisez Ctrl+ A+ ~pour copier le tampon de défilement dans le presse-papiers byobu.

Collez le texte dans un éditeur à l'aide de Alt+ insert ou Ctrl+ A+ ].

(Ajustez Ctrl+ Asi vous avez changé votre touche d'échappement.)

chupchik
la source
Je n'ai qu'un Mac pour travailler en ce moment, et ctrl-a ~ puis ctrl-a] ne font rien - je soupçonne que ctrl-a ne se rend pas à byobu (qui est à l'autre bout d'un ssh tunnel) .. Des idées?
drevicko
0

Sélectionnez le texte que vous souhaitez enregistrer, puis appuyez sur Control+ Shift + C Suivant, ouvrez votre éditeur de texte préféré. Collez ensuite le contenu ici à l'aide de Control+ V . Enfin, enregistrez le fichier à l'emplacement souhaité.

CONSEIL TERMINAL DU JOUR: Lorsque vous essayez de copier quelque chose dans le terminal, faites-le comme d'habitude, utilisez Control+ Shift + Cau lieu de Control+ C, et collez comme d'habitude. Pour coller quelque chose qui se trouve dans le presse-papiers dans le terminal, utilisez Control+ Shift + V.

Cammy_the_block
la source
c'est juste un schéma de copier-coller simple, vous perdrez du temps à copier puis coller. drevicko veut le faire via un terminal ou l'enregistre automatiquement quelque part.
Sukupa91
N'a-t-il pas dit que j'aimerais tout enregistrer dans un fichier? Voilà comment il le fait.
Cammy_the_block
1
Non, je crois que vous obtiendrez simplement la valeur de l'écran - pas l'intégralité (peut-être 10000 lignes) de l'historique de défilement byobu ... Notez que byobu stocke un historique de terminal indépendant de l'application de terminal que vous utilisez.
drevicko
Si vous maintenez la souris au-dessus de la fenêtre, elle défilera vers le haut afin que vous puissiez mettre tout en surbrillance.
Cammy_the_block
2
@Cammy_the_block vous manque le bit "byobu", recherchez-le (chose TRÈS pratique si vous travaillez sur des serveurs distants). Il stocke les sessions de terminal auxquelles vous pouvez vous déconnecter et vous reconnecter ultérieurement. J'ai 10 000 lignes d'historique de terminal qui ne sont PAS accessibles à l'application de terminal locale. Byobu (et le backend qu'il utilise: tmux ou screen) ont leur propre ensemble de commandes pilotées par clavier pour accéder à cet historique.
drevicko
0

Ctrl+ A+ ]fonctionnera si vous tapez de 1 à 20 fois ou plus avec abracodabra. Mais la seule commande fonctionnera sans maux de tête. Pour coller du texte du tampon vers le terminal ou le fichier. Et le gagnant est Alt+ Ins., Dites bonjour à Byobu est le logiciel GPLv3, créé et maintenu par Dustin Kirkland.

bemonolit
la source
0

Si vous devez sauvegarder l'historique, utilisez Shift + F7shorcut. Comme le dit @ dustin-kirkland .

Si vous préférez faire défiler vers le haut et vers le bas dans votre terminal, cela dépend si vous utilisez tmux ou screen. Exemples:

  1. Screeen:

    • CTRL + a: Si vous utilisez [alors, vous entrez en mode défilement comme @ ikar-pohorský dit.
  2. Tmux:

    • ALT + PageUp: vous faites défiler vers le haut.
    • ALT + PageDown: vous faites défiler vers le bas.

Aide Byobu F1

mrroot5
la source