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


19

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

Я не можу просто «повторити команду», оскільки в моїй конкретній ситуації джерело команд змінюється; Мені часто потрібно озирнутися на результат попередньої зміни.

Ласкаво просимо.

Спасибі!

Редагувати 2010:

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

Найближче наближення, яке я можу придумати, - це використовувати щось на кшталт screen(byobu / tmux), яке записує файл у файл, і записувати (і в'язати клавіші) користувацьку команду для сторінки / пошуку через цей журнал файлів (розміщення сторінки lessпідказки підказки, а не екрану). Дякую всім.

Редагувати 2012:

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

Відповіді:


4

Ви згадуєте про використання byobu ...

Це, безумовно, один із способів зробити це. Byobu зберігає 10 К рядків історії прокрутки за вікном або за розділ (панель).

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


Де зберігається історія прокрутки, і чи можна зберегти її між сеансами? Тобто: відкрийте термінал з Byobu, запустіть кілька команд, зателефонуйте exit, закрийте термінал, відкрийте новий термінал з Byobu та ще пройдіть попередній сеанс.
Даррель Холт


8

Ви можете використовувати scriptдля реєстрації свого термінального сеансу у файл. Якщо ви завжди хочете, щоб це сталося, тоді додайте до себе відповідну scriptкоманду .login.

$ man script


5

використання screen -L

після виходу із сеансу оболонки ( exitкоманди) ви отримуєте лог-файл у тому самому каталозі, який ви запустилиscreen

тоді ви можете переглянути вихід за допомогою moreабоless -R


5

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.

@SQB: Я розширив свою відповідь.
Призупинено до подальшого повідомлення.

3

bash зберігає історію того, що ви робили, але не вихід з команд. Це може бути величезним і часто не корисним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.