21

I've had an interesting terminal session in byobu, and I'd like to save the terminal output (commands and all) to a file - how can I do that?

According to the byobu man page:

Ctrl-a ~ - Save the current window's scrollback buffer

This may indeed be doing something, but I've found no indication of where and under what name it might be saved.

18

Or, you can simply use Byobu's hotkey for this:

  • Shift-F7

That will take your history and put it into your favorite editor. Now, just save that buffer to a file. If you're in vi or vim, you can using :wq /tmp/out

  • sift-F7 doesn't appear to do anything and the byobu help screen doesn't mention it either - I'm using byobu 5.17 with tmux 1.6 in ubuntu. – drevicko Jan 26 '15 at 0:41
  • This is awesome, saved me a lot of time! – Ctrl-C Feb 25 '15 at 12:59
  • I'm running byobu 5.74 and that option does appear for me in the help screen and works as described. I'd be surprised if that was not the case given that Dustin is the creator of byobu. :) Worth mentioning the output is saved at $BYOBU_RUN_DIR/printscreen (as noted in the help screen). – Chuim Apr 30 '15 at 8:24
  • 2
    For me it was saved to /dev/shm/byobu-serg-ucvwj2rJ/printscreen, where serg is obviously my username – Sergiy Kolodyazhnyy Oct 2 '15 at 4:01
  • 1
    I know this is an old answer. Anyhow, I experience the same issue: the shift-F7 seems not doing anything (even though the shortcut is present in the help menu). I'm using it on a Ubuntu-16.04 host with byobu version 5.106 & tmux 2.1. – Marc Apr 24 '17 at 4:03
16

An old question still not workably answered, and I hit the need again.

This time I found a workable solution. From 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. I hit F7 to enter scrollback mode,
  2. Space to start selecting,
  3. gg to scroll to the top of the buffer (thanks @GeorgeMarian)
    • If that doesn't work, try this: either with lots of Page up or : followed by the largest line number (indicated top right) and Page up to get to the top of that page,
  4. Enter to copy (to byobu's clipboard, not a terminal/system one),
  5. then cat > my-byobu-dump.txt in the terminal,
  6. Alt+Insert or ctrl+A+] to paste (again, from byobu's clipboard)
  7. Ctrl+D to close the file.
  • This was the only answer that worked well for me. – pjvandehaar Oct 1 '15 at 15:57
  • 1
    For step 3, if you want to get to the very top use gg (just like vim). – George Marian Jul 27 '17 at 17:32
  • @GeorgeMarian Do you know if that's from a vim-emulation mode? will people find other behaviours? Seems the default behaviour (at least with byobu 5.17 over tmux 1.6) – drevicko Jul 31 '17 at 10:19
  • There's no vim-emulation mode in byobu that I know of. There's vi-like movement commands in scrollback mode, and maybe elsewhere. I just happened to try them, since -- well -- Linux. (I've been using less a lot lately, searching and moving around.) – George Marian Aug 1 '17 at 15:20
  • ok. could it be coming from the underlying multiplex technology (screen or tmux)? Anyway, I've added your suggestion. Many thanks :) – drevicko Aug 2 '17 at 14:24
3

Shift + F7 only works as expected if you have the EDITOR environment variable set to an editor within byobu. For some reason, in some cases (e.g. for me when connecting through SSH to another computer), setting this variable in ~/.profile is not enough. One place to set it so that byobu always reads it is in ~/.bashrc. Copy something like the following to your ~/.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:
# https://askubuntu.com/questions/382750/how-to-save-scrollback-history-in-byobu
export EDITOR='vim'
  • In my case, this didn't help (actually .bashrc is where I set EDITOR anway). As far as I can tell, my terminal emulator (osx default Terminal program) isn't passing on the function keys correctly - probably solvable in Terminal's settings, but the ctrl-A solutions work ok for me. – drevicko Aug 23 '17 at 9:59
  • 1
    @drevicko ah I see, good to know. Well, that's good that we are collecting several workarounds so that hopefully one of them will work for the next person who comes across this issue. – scottkosty Aug 23 '17 at 22:18
  • fyi: .profile isn't loaded for ssh sessions by default - explains what happened here. – drevicko Aug 24 '17 at 10:48
2

If you're used not to use the F-keys then this might work for you:

  • Ctrl+a, [: enter the scrollback mode
  • Space enter the copy mode (optional)
  • Enter exit the scrollback or copy mode
  • Ctrl+a, ]: paste what was copied
  • Also if your terminal program is intercepting the F-keys ;) – drevicko Jul 31 '17 at 10:25
1

Select the text you wish to save, then press Control + Shift + C Next, open your favorite text editor. Then paste the content here using Control + V . Finally save the file in the desired location.

TERMINAL TIP OF THE DAY: When trying to copy something in terminal do it as usual expect use Control + Shift + C instead of Control +C, and paste as usual. For pasting something that is on the clipboard into the terminal use Control + Shift + V.

  • its just a simple copy paste scheme, will waste time to copy and then paste . drevicko wants to do it via terminal or automatically saves it somewhere . – Sukupa91 Nov 27 '13 at 3:13
  • Didn't he say I'd like to save everything to a file? This how he do it. – Cammy_the_block Nov 27 '13 at 3:17
  • No, I believe you'd just get on screen's worth - not the whole (perhaps 10000 line) byobu scrollback history... Note that byobu stores a terminal history that is independent of the terminal app your using. – drevicko Nov 27 '13 at 3:18
  • If you hold the mouse above the window it will scroll up so that you can highlight the entire thing. – Cammy_the_block Nov 27 '13 at 3:20
  • 1
    @Cammy_the_block you're missing the "byobu" bit, look it up (a VERY handy thing if you're working on remote servers). It stores terminal sessions that you can disconnect from and later reconnect to. I have 10,000 lines of terminal history that is NOT accessible to the local terminal application. Byobu (and the backend it's using: tmux or screen) have their own set of keyboard driven commands to access that history. – drevicko Nov 27 '13 at 4:11
1

Use Ctrl+A+~ to copy the scrollback buffer to the byobu clipboard.

Paste the text into an editor using Alt+insert or Ctrl+A+].

(Adjust Ctrl+A if you've changed your escape key.)

  • I've only a Mac to work from at the moment, and ctrl-a ~ then ctrl-a ] aren't doing anything - I suspect ctrl-a isn't making it to byobu (which is at the other end of an ssh tunnel).. Any ideas? – drevicko Jul 31 '14 at 13:15
0

Ctrl+A+] will work if you type from 1 to 20 times or more with abracodabra. But the only one command will work without headache.To paste text from buffer to terminal or file. And winner is Alt+Ins.,say hello to Byobu is GPLv3 software, authored and maintained by Dustin Kirkland.

0

If you need to save the history use Shift + F7 shorcut. Like @dustin-kirkland says.

If you prefer to scroll up and down in your terminal, It depends if you use tmux or screen. Examples:

  1. Screeen:

    • CTRL + a: If you use [ then, you enter in scroll mode like @ikar-pohorský says.
  2. Tmux:

    • ALT + PageUp: you scroll up.
    • ALT + PageDown: you scroll down.

Byobu F1 help

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.