बैश चलाने वाले एक लिनक्स टर्मिनल का एक अंतर्निहित इतिहास है जिसका उपयोग आप ट्रैक करने के लिए कर सकते हैं कि आप हाल ही में क्या कर रहे हैं। अपने बैश सत्र का इतिहास देखने के लिए, अंतर्निहित कमांड का उपयोग करें history
:
$ echo "foo"
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
history
कमांड अधिकांश कमांड की तरह आपके फाइल सिस्टम पर एक निष्पादन योग्य फ़ाइल नहीं है, लेकिन बैश का एक फ़ंक्शन है। आप type
. का उपयोग करके इसे सत्यापित कर सकते हैं आदेश:
$ type history
history is a shell builtin
इतिहास नियंत्रण
आपके शेल इतिहास में पंक्तियों की ऊपरी सीमा HISTSIZE
. द्वारा परिभाषित की गई है चर। आप इस वैरिएबल को अपने .bashrc
. में सेट कर सकते हैं फ़ाइल। निम्नलिखित आपके इतिहास को 3,000 पंक्तियों पर सेट करता है, जिसके बाद सूची के निचले भाग में रखी गई नवीनतम कमांड के लिए जगह बनाने के लिए सबसे पुरानी लाइन को हटा दिया जाता है:
export HISTSIZE=3000
इतिहास से संबंधित अन्य चर भी हैं। HISTCONTROL
चर नियंत्रित करता है कि इतिहास क्या संग्रहीत है। आप इसे अपने .bashrc
. में रखकर खाली जगह से शुरू होने वाले आदेशों को बाहर करने के लिए बैश को बाध्य कर सकते हैं फ़ाइल:
export HISTCONTROL=$HISTCONTROL:ignorespace
अब, यदि आप एक स्पेस से शुरू होने वाली कमांड टाइप करते हैं, तो वह कमांड इतिहास में दर्ज नहीं होगी:
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
आप डुप्लिकेट प्रविष्टियों से भी बच सकते हैं:
export HISTCONTROL=$HISTCONTROL:ignoredups
अब, यदि आप एक के बाद एक दो कमांड टाइप करते हैं, तो इतिहास में केवल एक ही दिखाई देता है:
$ ls
$ ls
$ ls
$ history
1 ls
2 history
यदि आप इन दोनों को अनदेखा करना पसंद करते हैं, तो आप बस ignoreboth
. का उपयोग कर सकते हैं :
export HISTCONTROL=$HISTCONTROL:ignoreboth
इतिहास से कोई आदेश हटाएं
कभी-कभी आप गलती करते हैं और अपने शेल में कुछ संवेदनशील टाइप करते हैं, या हो सकता है कि आप अपने इतिहास को साफ करना चाहते हैं ताकि यह उन कदमों का अधिक सटीक रूप से प्रतिनिधित्व कर सके जो आपने कुछ सही तरीके से काम करने के लिए उठाए थे। यदि आप बैश में अपने इतिहास से कोई आदेश हटाना चाहते हैं, तो -d
. का उपयोग करें आप जिस आइटम को हटाना चाहते हैं उसकी लाइन नंबर के साथ विकल्प:
$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535 echo "foo"
536 echo "bar"
537 history | tail
$ history -d 536
$ history | tail
535 echo "foo"
536 history | tail
537 history -d 536
538 history | tail
history
जोड़ना बंद करने के लिए प्रविष्टियाँ, आप एक space
रख सकते हैं कमांड से पहले, जब तक आपके पास ignorespace
. है आपके HISTCONTROL
. में पर्यावरण चर:
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
आप -c
. से अपना पूरा सत्र इतिहास साफ़ कर सकते हैं विकल्प:
$ history -c
$ history
$
इतिहास के पाठ
इतिहास में हेरफेर करना आमतौर पर जितना लगता है उससे कम खतरनाक होता है, खासकर जब आप इसे किसी उद्देश्य को ध्यान में रखकर तैयार कर रहे हों। उदाहरण के लिए, यदि आप एक जटिल समस्या का दस्तावेजीकरण कर रहे हैं, तो अपने आदेशों को रिकॉर्ड करने के लिए अपने सत्र इतिहास का उपयोग करना अक्सर सबसे अच्छा होता है, क्योंकि उन्हें अपने इतिहास में स्लॉट करके, आप उन्हें चला रहे हैं और इस तरह प्रक्रिया का परीक्षण कर रहे हैं। बहुत बार, बिना कुछ किए दस्तावेज़ीकरण करने से छोटे कदमों को नज़रअंदाज़ कर दिया जाता है या मामूली विवरण गलत लिखा जाता है।
आवश्यकतानुसार अपने इतिहास सत्रों का उपयोग करें, और इतिहास पर अपनी शक्ति का बुद्धिमानी से प्रयोग करें। हैप्पी हिस्ट्री हैकिंग!