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


23

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

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

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

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

Ответы:


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закрыть файл.

Это был единственный ответ, который хорошо сработал для меня.
— 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'

В моем случае это не помогло (на самом деле .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если вы изменили свою клавишу выхода.)


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

0

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

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


это просто простая схема копирования-вставки, которая будет тратить время на копирование и вставку. 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, созданное и поддерживаемое Дастином Кирклендом.


0

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.