Как сохранить историю прокрутки в бёбу?

23

У меня был интересный сеанс терминала в byobu , и я хотел бы сохранить вывод терминала (команды и все) в файл - как я могу это сделать?

Согласно справочной странице byobu :

Ctrl-a ~ - сохранить буфер прокрутки текущего окна

Это может действительно что-то делать, но я не нашел указаний на то, где и под каким именем это может быть сохранено.

drevicko
источник

Ответы:

21

Или, вы можете просто использовать горячую клавишу Byobu для этого:

  • Shift-F7

Это возьмет вашу историю и поместит ее в ваш любимый редактор. Теперь просто сохраните этот буфер в файл. Если вы находитесь в vi или vim, вы можете использовать:wq /tmp/out

Дастин Киркланд
источник
sift-F7, похоже, ничего не делает, и на экране справки byobu об этом тоже не упоминается - я использую byobu 5.17 с tmux 1.6 в Ubuntu.
drevicko
Это круто, сэкономило мне много времени!
Ctrl-C
1
Я использую byobu 5.74, и эта опция отображается для меня на экране справки и работает, как описано. Я был бы удивлен, если бы это было не так, учитывая, что Дастин является создателем byobu. :) Стоит упомянуть, что выход сохранен в $BYOBU_RUN_DIR/printscreen(как отмечено на экране справки).
Чуим
2
Для меня это было сохранено /dev/shm/byobu-serg-ucvwj2rJ/printscreen, где serg - это, очевидно, мое имя пользователя
Сергей Колодяжный,
1
Я знаю, что это старый ответ. Во всяком случае, у меня возникла та же проблема: shift-F7, похоже, ничего не делает (хотя ярлык присутствует в меню справки). Я использую его на хосте Ubuntu-16.04 с byobu версии 5.106 и tmux 2.1.
Marc
20

На старый вопрос до сих пор не получен ответ, и я снова столкнулся с необходимостью.

На этот раз я нашел работоспособное решение. От 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. Я нажал, F7чтобы войти в режим прокрутки,
  2. Space начать выбор,
  3. gg прокрутить до верхней части буфера (спасибо @GeorgeMarian)
    • Если это не сработает, попробуйте следующее: либо с большим количеством, Page upлибо с :последующим наибольшим номером строки (указывается в правом верхнем углу), Page upчтобы перейти к началу этой страницы,
  4. Enter скопировать (в буфер обмена byobu, а не в терминал / систему),
  5. затем cat > my-byobu-dump.txtв терминале,
  6. Alt+ Insertили ctrl+ A+ ]для вставки (опять же, из буфера обмена Бёбу)
  7. Ctrl+ Dзакрыть файл.
drevicko
источник
Это был единственный ответ, который хорошо сработал для меня.
pjvandehaar
1
Для шага 3, если вы хотите добраться до самого верха, используйте gg(так же, как vim).
Джордж Мариан
@ GeorgeMarian Знаете ли вы, что это из режима эмуляции vim? люди найдут другое поведение? Кажется, поведение по умолчанию (по крайней мере, с Byobu 5.17 над Tmux 1.6)
drevicko
Там нет режима vim-эмуляции в бёбу, о которой я знаю. В режиме прокрутки и, возможно, в другом месте есть команды перемещения в стиле vi . Я просто случайно попробовал их, так как - ну - Linux. (Я много использовал lessв последнее время, искал и перемещался.)
Джордж Мариан
хорошо. это может происходить от базовой мультиплексной технологии (экран или tmux)? Во всяком случае, я добавил ваше предложение. Большое спасибо :)
drevicko
3

Shift + F7 работает, как и ожидалось, только если у вас есть переменная среды EDITOR, установленная для редактора в byobu . По некоторым причинам, в некоторых случаях (например, для меня при подключении через SSH к другому компьютеру), установка этой переменной в ~/.profileнедостаточно. Одно место, чтобы установить это так, чтобы byobu всегда читал это в ~/.bashrc. Скопируйте что-то вроде следующего ~/.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
источник
В моем случае это не помогло (на самом деле .bashrc - это то, где я установил РЕДАКТОР). Насколько я могу судить, мой эмулятор терминала (программа терминала osx по умолчанию) не передает функциональные клавиши правильно - возможно, это можно решить в настройках терминала, но решения ctrl-A работают нормально для меня.
drevicko
1
@ Drevicko ах, понятно, приятно знать. Что ж, это хорошо, что мы собираем несколько обходных путей, так что, надеюсь, один из них будет работать для следующего человека, который сталкивается с этой проблемой.
scottkosty
fyi: .profile по умолчанию не загружается для сессий ssh - объясняет, что здесь произошло.
drevicko
2

Если вы привыкли не использовать F-клавиши, то это может работать для вас:

  • Ctrl+ a, [Войдите в режиме скроллинга
  • Space войти в режим копирования (необязательно)
  • Enter выйти из режима прокрутки или копирования
  • Ctrl+ a, ]: Вставить то , что было скопировано
Икар Похорски
источник
Также, если ваша терминальная программа перехватывает F-клавиши;)
drevicko
1

Используйте Ctrl+ A+, ~чтобы скопировать буфер прокрутки в буфер обмена Byobu.

Вставьте текст в редактор, используя Alt+ insert или Ctrl+ A+ ].

(Настройте Ctrl+, Aесли вы изменили свою клавишу выхода.)

chupchik
источник
На данный момент у меня есть только Mac для работы, и ctrl-a ~ затем ctrl-a] ничего не делают - я подозреваю, что ctrl-a не доходит до Бёбу (который находится на другом конце туннель ssh) .. есть идеи?
drevicko
0

Выберите текст, который вы хотите сохранить, затем нажмите Control+ Shift + C Далее, откройте ваш любимый текстовый редактор. Затем вставьте содержимое здесь, используя Control+ V . Наконец сохраните файл в нужном месте.

ТЕРМИНАЛЬНАЯ СОВЕТ ДНЯ: Когда вы пытаетесь скопировать что-либо в терминале, сделайте это как обычно, ожидайте использовать Control+ Shift + Cвместо Control+ Cи вставьте как обычно Для вставки чего-то, что находится в буфере обмена, в терминал используйте Control+ Shift + V.

Cammy_the_block
источник
это просто простая схема копирования-вставки, которая будет тратить время на копирование и вставку. Drevicko хочет сделать это через терминал или автоматически сохраняет его где-нибудь.
Sukupa91
Разве он не сказал, что я хотел бы сохранить все в файл? Вот как он это делает.
Cammy_the_block
1
Нет, я полагаю, что вы просто получите на экране ценность - не всю (возможно, 10000 строк) историю прокрутки byobu ... Обратите внимание, что byobu хранит историю терминала, которая не зависит от используемого вами приложения терминала.
drevicko
Если вы удерживаете мышь над окном, оно прокручивается вверх, так что вы можете выделить всю вещь.
Cammy_the_block
2
@Cammy_the_block вам не хватает бита "byobu", посмотрите его (ОЧЕНЬ удобно, если вы работаете на удаленных серверах). Он хранит сеансы терминала, от которых вы можете отключиться, а затем снова подключиться. У меня есть 10000 строк истории терминала, которые НЕ доступны для локального приложения терминала. Byobu (и бэкэнд, который он использует: tmux или screen) имеют свой собственный набор команд, управляемых клавиатурой, для доступа к этой истории.
drevicko
0

Ctrl+ A+ ]сработает, если вы наберете от 1 до 20 раз или более с абракодаброй. Но единственная команда будет работать без головной боли. Вставить текст из буфера в терминал или файл. И победитель Alt+ Ins. Скажи привет Byobu - это программное обеспечение GPLv3, созданное и поддерживаемое Дастином Кирклендом.

bemonolit
источник
0

Если вам нужно сохранить историю, используйте Shift + F7ярлык. Как говорит @ dustin-kirkland .

Если вы предпочитаете прокручивать вверх и вниз в своем терминале, это зависит от того, используете ли вы tmux или screen. Примеры:

  1. Полноэкранный:

    • CTRL + a: Если вы используете [тогда, вы вводите в режиме прокрутки, как говорит @ ikar-pohorský .
  2. Tmux:

    • ALT + PageUpВы прокручиваете вверх.
    • ALT + PageDownВы прокручиваете вниз.

Бёбу F1, помогите

mrroot5
источник