लिनक्स कमांड लाइन इतिहास को तिथि के अनुसार पुनः प्राप्त करें


20

मैं यह देखना चाहता हूं कि मैंने एक सप्ताह पहले एक निश्चित दिन पर अपनी बैश कमांड लाइन पर क्या लिखा था। क्या कमांड लाइन इतिहास को पुनः प्राप्त करने का एक तरीका है? नीचे जैसा कुछ, शायद?

> history --include-date | grep 2012-02-27`

यदि यह पहले से ही सक्षम नहीं था: cyberciti.biz/faq/unix-linux-bash-history-display-date-time
RobotHumans

अगर आप zsh का उपयोग कर रहे हैं:history -E
Vahid

जवाबों:


32

डिफ़ॉल्ट रूप से, 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

जब आप टर्मिनल में एक नया टैब खोलते हैं, या लॉग आउट और अंदर आप परिवर्तन देखेंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.