ฉันต้องการที่จะเห็นสิ่งที่ฉันพิมพ์บนบรรทัดคำสั่ง bash ของฉันในวันหนึ่งสัปดาห์ที่ผ่านมา มีวิธีการดึงประวัติบรรทัดคำสั่งหรือไม่? บางอย่างเช่นด้านล่างอาจ?
> history --include-date | grep 2012-02-27`
history -E
ฉันต้องการที่จะเห็นสิ่งที่ฉันพิมพ์บนบรรทัดคำสั่ง bash ของฉันในวันหนึ่งสัปดาห์ที่ผ่านมา มีวิธีการดึงประวัติบรรทัดคำสั่งหรือไม่? บางอย่างเช่นด้านล่างอาจ?
> history --include-date | grep 2012-02-27`
history -E
คำตอบ:
ตามค่าเริ่มต้นHistory
บันทึกเวลาที่คุณรันคำสั่ง แต่ไม่แสดง เหตุผลนี้คือเมื่อคุณเรียกใช้History
คำสั่งมันจะมองหาตัวแปรสภาพแวดล้อมที่เรียกว่าHISTTIMEFORMAT
ซึ่งจะบอกวิธีการจัดรูปแบบเวลา หากค่าถูกnull
ตั้งค่าหรือไม่แสดงเป็นค่าเริ่มต้นแล้วมันจะไม่แสดงเวลาใด ๆ
ตัวอย่างที่มีเวลา -
[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
....
แต่นั่นไม่ใช่ทั้งหมด ตั้งแต่ค่าHISTTIMEFORMAT
ใช้เวลาstrftime
(ซึ่งคุณสามารถหาได้ที่นี่ btw) คุณสามารถทำสิ่งมหัศจรรย์ทุกประเภท แต่สำหรับสิ่งที่คุณต้องการจะทำผลงานต่อไปนี้
[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
...
นอกจากนี้หากคุณต้องการให้ HISTTIMEFORMAT ของคุณยังคงอยู่ให้ลองต่อท้ายรายการนั้นตามที่คุณbashrc
ต้องการ
echo 'HISTTIMEFORMAT="variables here"' >> ~/.bashrc
คุณจะเห็นการเปลี่ยนแปลงเมื่อคุณเปิดแท็บใหม่ในเทอร์มินัลหรือออกจากระบบและเข้า