टर्मिनल में चलाए गए आदेशों का इतिहास देखें


75

क्या मेरे सभी टाइप किए गए टर्मिनल कमांड को सहेजने और लॉग बुक में इतिहास की तरह देखने का कोई तरीका है?

जवाबों:


92

यह स्वचालित रूप से किया जाता है। बैश में अपने आदेश संग्रहीत करता है ~/.bash_history। यदि आप इतिहास को देखना चाहते हैं, तो किसी एक का उपयोग करके इस फ़ाइल का आउटपुट प्रिंट करें

cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...

या आप bash की अंतर्निहित कमांड का उपयोग कर सकते हैं:

history

इतिहास साफ़ करने के लिए, फ़ाइल हटाएं और अस्थायी इतिहास साफ़ करें:

rm ~/.bash_history && history -c

इतिहास का आकार 500 कमांडों तक सीमित है। हालाँकि, आप इसे निम्न पंक्ति में जोड़कर बढ़ा सकते हैं ~./bashrc:

HISTSIZE=<number of entries, -1 for unlimited>

यह तुरंत प्रभावी नहीं होगा, बल्कि केवल नए शुरू किए गए सत्रों के लिए। इसे लागू करने के लिए, संसाधन .bashrc फ़ाइल:

. ~/.bashrc

या HISTSIZE=...अपने वर्तमान सत्र में चलाएं ।


1
डिफ़ॉल्ट रूप से यह केवल नवीनतम 500 कमांड रखता है। आप रखी जाने वाली संख्या को बदल सकते हैं, लेकिन आपको केवल इसे गलती से एक बार डिफ़ॉल्ट सेटिंग्स के साथ शुरू करना होगा, और आपके सभी पुराने इतिहास चले जाएंगे।
कास्परैड

यह मेरे लिए Ubuntu 16 पर काम नहीं कर रहा है
Nam G VU

31

आप historyपिछले सभी निष्पादित कमांड को देखने के लिए एक टर्मिनल पर टाइप कर सकते हैं ।


आप आउटपुट को कुछ पंक्तियों में विभाजित कर सकते हैं (जहां 5 लाइनों की संख्या है):

history 5

यदि आप केवल एक स्ट्रिंग (यानी mv) युक्त कमांड देखना चाहते हैं , तो आप यह कर सकते हैं:

history | grep mv

आप !प्रविष्टि संख्या के बाद लिखकर एक कमांड को याद कर सकते हैं ।

मान लीजिए कि मेरा इतिहास इस तरह है:

1 ls -la
2 mkdir foo
3 mv bar.txt foo
  • चलाने के लिए mkdir foo, आप टाइप कर सकते हैं !2
  • अंतिम कमांड को चलाने के लिए, आप उपयोग !-1या कर सकते हैं!!
  • पेनॉल्ट को चलाने के लिए, आप उपयोग कर सकते हैं !-2

यदि आप एक कमांड चलाते हैं जो विफल हो जाती है क्योंकि इसे रूट विशेषाधिकार (यानी touch /etc/foo) की आवश्यकता होती है , तो आप sudo !!अंतिम कमांड को रूट के रूप में चलाने के लिए उपयोग कर सकते हैं ।


  • यदि आप लिखते हैं, !manतो आप अंतिम कमांड को निष्पादित करेंगे जो इसके साथ शुरू होती हैman
  • यदि आप टाइप करते हैं, तो !?man?इसमें अंतिम कमांड निष्पादित होगी जिसमें man(लाइन शुरू होने पर आमतौर पर नहीं)

यदि आपके पास कमांड में टाइपो है, तो आप इसे इस तरह से ठीक कर सकते हैं। मान लीजिए कि मैं टाइप करते हैं cat .bash_hi, को बदलने के लिए .bash_hiद्वारा .bash_historyमैं केवल टाइप करने की आवश्यकता ^hi^history^


स्रोत: https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps


2
जैसे ही आप टाइप करते हैं, आप होस्टरी में खोज करने के लिए Ctrl-R दबा सकते हैं।
शाम

historyमेरे लिए Ubuntu 16 पर काम करना। धन्यवाद और इसे स्वीकार किया जाना चाहिए!
नाम जी VU

9

बस टाइप करो :

history > print.txt

आपकी वर्तमान में काम कर रही डायरेक्टरी में Print.txt नामक एक नई फाइल बनाई जाएगी।


3
1000 के बाद कमांड काट देता है
एंटोनी

3

मैं अक्सर उन हालिया आदेशों को भी चाहता हूं। मेरे विकास नोटों पर पोस्ट करने के लिए या, अच्छी तरह से, इन जैसे स्टेक्सएक्सचेंज साइटों को ... यह अप्रासंगिक लाइन संख्याओं को हटाने के लिए बहुत उपयोगी साबित हुआ है:

history | cut -c 8- | tail

या, यदि आप इसे एक उपनाम के रूप में पसंद करते हैं, तो लाइन नंबर हटा दिए गए हैं, और तुरंत ही इंडेंट किए गए हैं (बस कोड उद्धरण चिह्नों के लिए आवश्यक है)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\}  /    /gi'"

1
उपयोग करने के लिए आसान fc: askubuntu.com/a/839642/158442
muru

0

आप https://github.com/dvorka/hstr को आज़माना चाहते हैं जो सरल ब्राउज़िंग , नेविगेशन और आपके बैश इतिहास के "बॉक्स स्टाइल" को फ़िल्टर करने की अनुमति देता है :

यहाँ छवि विवरण दर्ज करें

यह आसानी से और / या के लिए बाध्य हो सकता हैCtrl-rCtrl-s

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