Как видеть время в ~/.bash_history файл

Я добавил время к ~/.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 файл.

8
задан 7 October 2019 в 01:05

2 ответа

Это - Метка времени 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

9
ответ дан 23 November 2019 в 05:37

Синтаксический анализ .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
1
ответ дан 23 November 2019 в 05:37

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

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