Рейтинг:1

Сохранение даты в фактическом файле истории bash

флаг mx

При добавлении «HISTTIMEFORMAT» в bashrc метки времени выполнения команды становятся доступными при запуске команды «history».

Но сами временные метки не сохраняются в файле bash_history (по крайней мере, не в виде обычного текста).

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

Если временные метки сохраняются в самом файле истории, но просто недоступны для просмотра в редакторе при открытии файла bash_history, и по-прежнему можно просмотреть эти временные метки с помощью самой команды history в мошенническом файле истории bash, то это также будет достаточно.

Спасибо

флаг fo
Простого добавления переменной в bashrc недостаточно: вам нужно создать исходный код bashrc в каждой из ваших открытых оболочек, чтобы «активировать» переменную.
флаг fo
И файл истории записывается/добавляется только при выходе из оболочки.
Рейтинг:1
флаг lb

Это пример истории bash (при использовании HISTTIMEFORMAT)

#1625963751
спать 45 ; ssh-прокси.lan

номер 1625963751 временная метка unix ( https://en.wikipedia.org/wiki/Unix_time ) .

если вы используете linux, date имеет возможность отображать эту дату в человеческом виде.

em444$ дата -d @1625963751
Сб, 10 июля, 20:35:51 по восточному поясному времени 2021 г.
OB7DEV avatar
флаг mx
Как добавить временную метку unix к каждой команде в файле bash? При открытии старых историй bash, которые у меня есть, над каждой командой нет #number, как в вашем примере. Открытие файла bash_history в vim просто дает список команд. Каждая строка представляет собой команду, над каждой строкой нет отметок времени.
EchoMike444 avatar
флаг lb
если вы не используете HISTTIMEFORMAT, у вас не будет метки времени.
Рейтинг:0
флаг vn

экспорт HISTTIMEFORMAT='(%Y-%m-%d) (%H:%M:%S) ' Попробуйте эту линию.

Рейтинг:0
флаг vn

редактировать /etc/bashrc и добавьте эту строку внизу:

PROMPT_COMMAND="echo `date +'%F %H:%M'` `whoami` `history|tail -1` >> ~/history.txt; $PROMPT_COMMAND"

Я не уверен, если вы измените ~ к корень, \корень\история.txt могут быть доступны для всех пользователей.

Gerard H. Pille avatar
флаг in
\root\history.txt ???
George Y avatar
флаг vn
`~/history.txt` означает файл `history.txt` в домашнем каталоге текущего пользователя. `/root/history.txt` означает файл в корневом каталоге. Я предполагаю, что вы хотите сохранить исторические команды в определенный файл, если вам нужна отметка времени для каждой команды.
Gerard H. Pille avatar
флаг in
Просто обратная косая черта имеет другое значение в Unix. Кроме того, «история -1» может быть дешевле, чем прокачка хвоста.
OB7DEV avatar
флаг mx
Кажется, я не могу добавить вывод history|tail -1 в history.txt. Хотя остальные команды работают. Итак, в моем history.txt есть дата, пользователь, но нет команды...

Ответить или комментировать

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