Я добавил время к ~/.bashrc
файл, поэтому теперь это показывает мне время, когда я выполняюсь history
управляйте как это:
376 04/10/19 20:39:52 sudo cat ~/.bash_history
377 04/10/19 20:40:04 date
378 07/10/19 10:13:29 echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
379 07/10/19 10:13:38 source ~/.bashrc
380 07/10/19 10:13:54 history
381 07/10/19 10:20:08 sudo vim /home/subir/.bash_history
382 07/10/19 10:20:29 sudo nano /home/subir/.bash_history
383 07/10/19 11:34:20 cd ..
384 07/10/19 11:34:34 find | grep .bash_history
385 07/10/19 11:34:48 cat ./subir/.bash_history
386 07/10/19 11:37:32 history
Но когда данные этой сессии добавляются к ~/.bash_history
файл затем это показывает что-то вроде этого:
#1570201804
date
#1570423409
echo 'HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
#1570423418
source ~/.bashrc
#1570423434
history
#1570423808
sudo vim /home/subir/.bash_history
#1570423829
sudo nano /home/subir/.bash_history
Что является значениями после #
?. Может любой помогать мне вывести, это означает, или скажите мне способ вложить метку времени ~/.bash_history
файл.
Это - Метка времени Unix / время Эпохи - число секунд передало с 1-го января 1970.
При преобразовании его в дату и время Вы доберетесь:
$ date -d @1570201804
Fri Oct 4 18:10:04 EAT 2019
В UTC это 10/04/2019 @ 3:10pm (UTC)
но так как я нахожусь в Восточной Африке, мы получаем +3 разницы во времени, прибывающую в 10/04/2019 @ 6:10pm (UTC)
Я предполагаю, что Ваш часовой пояс является +5:30
Синтаксический анализ .bash_history содержащий метку времени (awk).
сначала я сократил поле в новой строке -F \\n
и проверьте на строки, начинающиеся #epoch $0 ~ /^#[0-9]+/
. Затем я урезаю первый символ substr($1,2)
прежде, чем отформатировать строку эпохи strftime("%d/%m/%y %T")
. В последний раз я печатаю первую часть без новой строки printf "%5d %s "
таким образом, я могу выбрать следующую строку getline
это содержит команды, и распечатайте их на той же строке.
awk -F \\n '{ if ($0 ~ /^#[0-9]+/) {printf "%5d %s ", ++i, strftime("%d/%m/%y %T", substr($1,2)); getline; print $0 }}' ~/.bash_history
Вывод:
1 07/10/19 14:46:09 echo a
2 07/10/19 14:46:28 echo b
3 07/10/19 14:46:39 echo c