Как я могу сохранить часть командных строк в новый файл с помощью команды history?

Я новичок в bash. Я знаю, что тип

history

может показать все командные строки, а .bash_history сохранить все из них. Но если мне нужна часть командных строк (например, текущий сеанс) и сохранить их в новый файл, что мне делать? Я проверил

history --help

и до сих пор не понимаю, как это сделать. Заранее спасибо за помощь!

4
задан 22 September 2019 в 01:30

4 ответа

Текущий сеанс:

Вы можете сделать это, выполнив следующую команду в терминале:

history -a ~/current_session.txt

История текущего сеанса будет сохранена в файл с именем current_session.txt в вашем домашнем каталоге.


Определенные входные данные:

Вы также можете выполнить поиск по всей истории для определенного входа и сохранить результат в файл. Например, чтобы сохранить все строки, в которых есть install , выполните следующую команду в терминале:

history | grep install > ~/search_results.txt

Результаты поиска будут сохранены в файле с именем search_results.txt в вашем домашний каталог.

Измените install на все, что вы хотите найти.

Для поиска нескольких входных данных поместите их между двумя кавычками "" , разделите их трубкой | и поставьте перед ними -E так:

history | grep -E "install | update | upgrade"> ~ / search_results.txt

Удачи

1
ответ дан 1 December 2019 в 10:14

Вам необходимо использовать -a вместе с имя файла. Как объяснено в история справки :

история: история [-c] [-d смещение] [n] или история -anrw [имя файла] или history -ps arg [arg ...]

(...)

-a добавить строки истории из этого сеанса в файл истории

И далее:

Если задано FILENAME, это используется как файл истории. В противном случае, если $ HISTFILE имеет значение, которое используется, иначе ~ / .bash_history.

Например, запустите новый сеанс и введите это ( $ - это приглашение, скорее всего, в вашей системе оно будет другим ):

$ echo a-new-session started at $(date)
$ history -a /tmp/new-history

В этом случае / tmp / new-history будет:

echo a-new-session started at $(date)
history -a /tmp/new-history
1
ответ дан 1 December 2019 в 10:14

неполноценным ответом, но он работает,

введите history, чтобы получить история. проведите пальцем по экрану, вы хотите скопировать ctrl-shift-c для копирования и ctrl-v для вставки в текстовый редактор.

в моем случае терминал был консолью, а текстовым редактором был kate.

это позволяет копировать и вставлять выбранные части истории.

также позволяет копировать и вставить в терминал из истории, crtl-shift-v для вставки

0
ответ дан 1 December 2019 в 10:14

Вы можете пропустить приведенные выше ответы, поместив историю bash в отдельную, per- файл сеанса для начала.

См. мой ответ Обработка истории Bash с несколькими терминалами

0
ответ дан 1 December 2019 в 10:14

Другие вопросы по тегам:

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