Ambil sejarah baris perintah Linux berdasarkan tanggal

20

Saya ingin melihat apa yang saya ketikkan pada bash command line pada hari tertentu seminggu yang lalu. Apakah ada cara untuk mengambil riwayat baris perintah? Sesuatu seperti di bawah ini, mungkin?

> history --include-date | grep 2012-02-27`
aaa
sumber
tidak jika itu belum diaktifkan: cyberciti.biz/faq/unix-linux-bash-history-display-date-time
RobotHumans
jika Anda menggunakan zsh:history -E
Vahid

Jawaban:

32

Secara default, Historymencatat waktu ketika Anda menjalankan perintah, tetapi tidak menampilkannya. Alasan untuk ini adalah ketika Anda menjalankan Historyperintah, ia mencari variabel lingkungan yang dipanggil HISTTIMEFORMAT, yang memberi tahu cara memformat waktu. Jika nilainya nulldiatur atau tidak, maka secara default tidak akan ditampilkan kapan pun.

Contoh dengan beberapa waktu-

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %t '
[qweet@superbox ~]$ history
    1  2012-03-06        su -
    2  2012-03-06        jbach@mobiletribe.net
    3  2012-03-06        mysql
    4  2012-03-06        ll
    5  2012-03-06        cd /opt/
    6  2012-03-06        ll
    7  2012-03-06        exit
    8  2012-03-06        ll
    9  2012-03-06        ls -lsa
   10  2012-03-06        cd ../
   11  2012-03-06        ll
   12  2012-03-06        ll
....

Tapi itu belum semuanya. Karena nilai HISTTIMEFORMATmengambil strftime(yang dapat Anda temukan di sini btw), Anda dapat melakukan segala macam hal ajaib. Tetapi untuk apa yang ingin Anda lakukan, berikut ini berfungsi.

[qweet@superbox ~]$ export HISTTIMEFORMAT='%F %T %t'
[qweet@superbox ~]$ history | grep -e "2012-03-06 14:48"
 1006  2012-03-06 14:48:05      export HISTTIMEFORMAT='%F %T %t'
 1007  2012-03-06 14:48:07      history
 ...

Juga, jika Anda ingin HISTTIMEFORMAT Anda tetap ada, pertimbangkan untuk menambahkannya bashrcseperti Anda ;

echo 'HISTTIMEFORMAT="variables here"' >> ~/.bashrc

Anda akan melihat perubahan saat Anda membuka tab baru di terminal, atau keluar dan masuk.

qweet
sumber