Tôi muốn xem những gì tôi đã gõ trên dòng lệnh bash của tôi vào một ngày nào đó một tuần trước. Có cách nào để lấy lại lịch sử dòng lệnh? Một cái gì đó như dưới đây, có lẽ?
> history --include-date | grep 2012-02-27`
history -E
Tôi muốn xem những gì tôi đã gõ trên dòng lệnh bash của tôi vào một ngày nào đó một tuần trước. Có cách nào để lấy lại lịch sử dòng lệnh? Một cái gì đó như dưới đây, có lẽ?
> history --include-date | grep 2012-02-27`
history -E
Câu trả lời:
Theo mặc định, History
ghi lại thời gian khi bạn chạy một lệnh, nhưng không hiển thị nó. Lý do cho điều này là khi bạn chạy History
lệnh, nó tìm kiếm một biến môi trường được gọi HISTTIMEFORMAT
, nó cho nó biết cách định dạng thời gian. Nếu giá trị được đặt null
hoặc không được đặt, thì theo mặc định, nó không hiển thị bất kỳ lúc nào.
Một ví dụ với thời gian-
[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
....
Nhưng đó không phải là tất cả. Vì các giá trị HISTTIMEFORMAT
lấy strftime
(mà bạn có thể tìm thấy ở đây btw), bạn có thể làm tất cả các loại phép thuật. Nhưng đối với những gì bạn muốn làm, các công việc sau đây.
[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
...
Ngoài ra, nếu bạn muốn HISTTIMEFORMAT của bạn tồn tại, hãy xem xét việc thêm nó vào bashrc
như vậy;
echo 'HISTTIMEFORMAT="variables here"' >> ~/.bashrc
Bạn sẽ thấy những thay đổi khi bạn mở một tab mới trong thiết bị đầu cuối, hoặc đăng xuất và đăng nhập.