Терминал * выход * история?

Я широко использую функции для навигации по истории команд в моем терминале; Интересно, есть ли способ навигации по истории вывода команд? (кроме того, чтобы держать большой histsize и опираясь на ключ pgup)

Я не могу просто «перезапустить команду», так как в моей конкретной ситуации изменяется исходный код команд; Мне часто приходится оглядываться на результат предыдущего изменения.

Приветствия приветствуются.

Спасибо!

Изменить 2010:

Я дал «ти» кредит; среди всех методов регистрации вашего сеанса в другом месте, он наиболее широко применим (т. е. является частью gnu coreutils и не требует использования конкретной оболочки или утилиты). На самом деле это не то, что я искал, но я понимаю, что такого на самом деле не существует.

Ближайшее приближение, о котором я могу думать, это использовать что-то вроде screen (byobu /tmux), который записывается в файл и записывает ( и keybind) пользовательскую команду для поиска /поиска через этот файл журнала (подумайте less пейджинг по приглашению, а не экран). Спасибо всем.

Изменить 2012:

@ Ответ Дастина Киркланда, безусловно, лучше всего, по крайней мере, вообще; буфер прокрутки терминала является наименее навязчивым способом навигации по истории вывода команд. Похоже, что Byobu имеет большое количество сохраненных строк истории по умолчанию (10K; tmux имеет 2K, экран GNU 100), и он позволяет выполнять поиск в регулярном выражении (беглый взгляд показывает, что на экране GNU нет поиска прокрутки, а tmux имеет только открытый поиск).

16 голосов | спросил mikewaters 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 09 Sep 2010 21:54:38 +0400 2010, 21:54:38

6 ответов


3

Вы упомянули использование byobu ...

Это, безусловно, один из способов сделать это. Byobu хранит 10K строк истории прокрутки для каждого окна или для разделения (панель).

Вы можете легко ввести прокрутку, нажав Alt - PageUp , Alt - PageDown или F7 . Когда вы находитесь в режиме прокрутки, вы можете искать вперед и назад с помощью vi-подобных команд. Используйте / regex для поиска вперед, а ? regex для поиска назад.

ответил Dustin Kirkland 2 MaramFri, 02 Mar 2012 08:09:29 +04002012-03-02T08:09:29+04:0008 2012, 08:09:29
10

Вы можете использовать tee для отправки вывода команды в файл и на терминал одновременно.

ответил Carl Norum 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 09 Sep 2010 21:57:10 +0400 2010, 21:57:10
7

Вы можете использовать script для регистрации сеанса терминала в файле. Если вы всегда этого хотите, добавьте подходящую команду script в свой .login.

$ man script

ответил Paul R 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 09 Sep 2010 21:59:54 +0400 2010, 21:59:54
4

используйте screen -L

после выхода из сеанса оболочки (exit) вы получаете файл журнала в том же каталоге, в котором вы начали screen

, то вы можете просмотреть вывод с помощью more или less -R

ответил wieczorek1990 6 J0000006Europe/Moscow 2013, 23:03:47
4

screen может быть установлен для вывода журнала.

Один из способов запустить его в рамках текущей сессии screen - нажать Ctrl - a , затем : , затем введите log.

От man screen:

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n" in the 
window's default directory, where n is the number  of  the  current  window.
This filename can be changed with the `logfile' command. If no parameter is
given, the state of logging is toggled. The session log is appended to the
previous contents of the file if it already  exists.  The current contents and
the contents of the scrollback history are not included in the session log.
Default is `off'.

logfile filename
logfile flush secs

Defines  the  name  the  log files will get. The default is "screenlog.%n". The 
second form changes the number of seconds screen will wait before flushing the
logfile buffer to the file-system. The default value is 10 seconds.
ответил Dennis Williamson 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 09 Sep 2010 23:41:41 +0400 2010, 23:41:41
2

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

ответил Jay 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 09 Sep 2010 21:59:48 +0400 2010, 21:59:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132