Я новичок в bash. Я знаю, что тип
history
может показать все командные строки, а .bash_history сохранить все из них. Но если мне нужна часть командных строк (например, текущий сеанс) и сохранить их в новый файл, что мне делать? Я проверил
history --help
и до сих пор не понимаю, как это сделать. Заранее спасибо за помощь!
Текущий сеанс:
Вы можете сделать это, выполнив следующую команду в терминале:
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
Удачи
Вам необходимо использовать -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
неполноценным ответом, но он работает,
введите history, чтобы получить история. проведите пальцем по экрану, вы хотите скопировать ctrl-shift-c для копирования и ctrl-v для вставки в текстовый редактор.
в моем случае терминал был консолью, а текстовым редактором был kate.
это позволяет копировать и вставлять выбранные части истории.
также позволяет копировать и вставить в терминал из истории, crtl-shift-v для вставки
Вы можете пропустить приведенные выше ответы, поместив историю bash
в отдельную, per- файл сеанса для начала.
См. мой ответ Обработка истории Bash с несколькими терминалами