कमांड लाइन के माध्यम से `.bash_history` फ़ाइल कैसे देखें?


72

मैं अपनी .bash_historyफ़ाइल की सामग्री देखना चाहता हूं, लेकिन कमांड लाइन के माध्यम से वहां जाना नहीं जानता।


7
कैसे के बारे मेंhistory | less
MadMike

2
क्या आपने जाँच की है /home/username/.bash_history ?
मिच

2
NB: .bash_historyकेवल एक टर्मिनल बंद होने पर जोड़ा जाता है।
निकोलस VERHELST

जवाबों:


56

आप वास्तविक फ़ाइल ही उपयोग करना चाहते हैं, तो बस अपने पसंदीदा पाठ संपादक का उपयोग (मैं का उपयोग करें emacs, लेकिन आप उपयोग कर सकते हैं plumaकी geditया vimया जो कुछ भी):

emacs ~/.bash_history

यदि आपका इतिहास फ़ाइल डिफ़ॉल्ट स्थान है। यदि आपको वहाँ कुछ भी नहीं मिलता है, तो आपने इतिहास फ़ाइल का नाम बदल दिया होगा। यह $HISTFILEचर में संग्रहीत है , इसलिए इसका वर्तमान मूल्य जांचने के लिए इसे प्रिंट करें:

echo $HISTFILE

यदि, फ़ाइल के बजाय, आप केवल अपना इतिहास देखना चाहते हैं, तो आप historyसुझाए गए @ minerz029 के रूप में चला सकते हैं । आदेश कोई विकल्प के साथ सिर्फ अपने की सामग्री को प्रिंट आदेशों वर्तमान खोल में मार डाला है कि अभी तक उस फ़ाइल के लिए लिखा नहीं किया गया है, लाइन नंबर के साथ किया गया।history$HISTFILE


49

यदि आपको वास्तव में फ़ाइल के आउटपुट की आवश्यकता है .bash_history, तो नीचे दिए गए सभी आदेशों के historyसाथ बदलें
cat ~/.bash_history

यदि आप वास्तव में सामने की संख्या के बिना कमांड चाहते हैं, तो इस कमांड का उपयोग करें history:

history | cut -d' ' -f 4-

अन्यथा, कोई अंतर नहीं होगा (सिवाय अगर आप एक अलग शेल का उपयोग कर रहे हैं)।


अंतिम 15 आदेश

आप उपयोग कर सकते हैं

history | tail -n 15

अपने इतिहास की केवल अंतिम 15 पंक्तियाँ प्राप्त करने के लिए अंतिम अंतिम मुद्रित (सबसे नीचे) के साथ।


एक आदेश के लिए खोज

वैकल्पिक रूप से, उपयोग करें

history | grep "apt-get" | tail -n 15

पिछले 15 आदेशों को प्राप्त करने के लिए जो apt-getअंतिम निष्पादित अंतिम (निचले तल पर) के साथ सम्‍मिलित हैं । आप apt-getजिस भी कमांड (या कमांड तर्क) को बदलना चाहते हैं, उसे खोज सकते हैं (यह एक नियमित अभिव्यक्ति हो सकती है)।


इतिहास के माध्यम से स्क्रॉल करना

आप उपयोग कर सकते हैं

history | tac | less

शीर्ष पर सबसे हाल ही में शुरू किए गए सभी आदेशों को स्क्रॉल करने के लिए। qबाहर निकलने के लिए दबाएँ ।

इसी तरह, उपयोग करें

history | grep "apt-get" | tac | less

शीर्ष पर सबसे हाल ही में शुरू होने वाले उनमें (तर्कों सहित) " " के साथ निष्पादित सभी आदेशों को स्क्रॉल apt-getकरने के लिए। qबाहर निकलने के लिए दबाएँ ।


15

Minerz029 के उत्कृष्ट जवाब के अलावा।

पुनरावृत्ति करने के लिए - 'इतिहास' कमांड इतिहास के साथ-साथ उसके आगे एक नंबर प्रिंट करता है।

आप इतिहास के आउटपुट को grep, कम आदि में पाइप कर सकते हैं।

इतिहास का ouput आउटपुट के बगल में बाईं ओर एक संख्या दिखाता है। जैसे

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

इस नंबर से आप कमांड को फिर से चला सकते हैं।

473 को फिर से चलाने के लिए मैं टर्मिनल में टाइप करना चाहता हूँ

 admin@xen1~$ !473

इतिहास आउटपुट में 473 के बगल में कमांड दोहराने के लिए एंटर कुंजी के बाद।

आप कमांड की हिस्ट्री में इंटरेक्टिवली पीछे की ओर भी टाइप कर ctrl + rसकते हैं और फिर कमांड के कुछ कंटेंट टाइप करना शुरू कर देंगे और यह सर्च करके भर जाएगा। जब आपको यह मिल जाए तो आप इसे दोहराने के लिए दर्ज कर सकते हैं, या [tab]इसे कमांड को संपादित करने के लिए कमांड लाइन पर कॉपी करने के लिए कुंजी को दबाएं ।

बेशक, वे आखिरी दो विकल्प बैश शेल में काम करते हैं। मुझे यकीन नहीं है कि अगर ये सुविधाएँ अन्य गोले में काम करती हैं। लेकिन चूंकि बैश उबंटू डिफ़ॉल्ट शेल है, इसलिए आपको उन्हें वहां ढूंढना चाहिए।


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