एंड्रॉयड

लिनक्स में इतिहास कमांड (बैश इतिहास)

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

विषयसूची:

Anonim

, हम history कमांड के बारे में बात करेंगे, जो आपको पहले निष्पादित कमांड की एक सूची देखने, सूची के माध्यम से खोज करने और इतिहास फ़ाइल में हेरफेर करने की अनुमति देता है।

history कमांड और इतिहास विस्तार का उपयोग करना

history एक शेल बिल्डिन है, और इसका व्यवहार शेल से शेल तक थोड़ा भिन्न हो सकता है। हम history के बैश बिलियन संस्करण को कवर करेंगे।

किसी भी विकल्प या तर्क के बिना आह्वान किए जाने पर यह सबसे सरल रूप है, history कमांड लाइन संख्याओं के साथ पूरे इतिहास की सूची प्रदर्शित करता है।

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

टाइपिंग !n इतिहास सूची से n-th कमांड निष्पादित करता है, और कमांड n लाइनों को वापस करता है। निम्नलिखित उदाहरण में हम पंक्ति 467 पर कमांड निष्पादित कर रहे हैं:

!467

एक कमांड निष्पादित करने का दूसरा तरीका उपयोग करना है !word विस्तार। word 'हाल' से शुरू होने वाले सबसे हालिया कमांड को संदर्भित करता है।

आमतौर पर, history आउटपुट की कई पंक्तियों को प्रदर्शित करता है जो स्क्रीन पर फिट नहीं होती हैं। आउटपुट को एक बार में एक पृष्ठ देखने के लिए, इसे पेजर प्रोग्राम में less या less कमांड की तरह पाइप करें:

history | less

अंतिम n लाइनों को प्रदर्शित करने के लिए, कमांड के तर्क के रूप में संख्या को पास करें। उदाहरण के लिए, आपके द्वारा लिखी गई इतिहास सूची से केवल पिछली पांच पंक्तियों को देखने के लिए:

history -5

सूची में प्रविष्टियों को नेविगेट करने के लिए up और down तीर कुंजियों का उपयोग करें। जब आपके द्वारा खोजा गया कमांड दिखाया जाता है तो उसे निष्पादित करने के लिए Enter दबाएं।

टाइप करें !! पिछली कमांड निष्पादित करने के लिए:

!!

यह विशेष रूप से उपयोगी है जब आप sudo साथ कमांड को लंबित करना भूल जाते हैं, और इसके बजाय आप जो कमांड टाइप कर सकते हैं उसे फिर से टाइप करें:

sudo !!

!-1 जैसा ही है !! और इतिहास सूची से अंतिम कमांड निष्पादित करता है, !-2 सेकंड से अंतिम, और इसी तरह।

^word1^word2^ विस्तार आपको "वर्ड 2" के साथ "वर्ड 1" की जगह अंतिम कमांड को फिर से चलाने की अनुमति देता है। यदि आप गलती से sudo command sduo command बजाय sduo command टाइप करते हैं, तो आप सही शब्द का उपयोग करके कमांड को दोहरा सकते हैं:

^sduo^sudo^

आउटपुट को फ़िल्टर करने के लिए grep कमांड का उपयोग करें। उदाहरण के लिए, "नैनो" सहित सभी कमांड देखने के लिए आप दौड़ेंगे:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

अब, यदि आप nano setup.py कमांड को फिर से चलाना चाहते हैं, तो टाइप करें:

!356

कमांड इतिहास के माध्यम से खोज करने का दूसरा तरीका Ctrl-R दबाकर है। संकेत निम्न में बदल जाएगा, और आप पहले से निष्पादित कमांड के लिए खोज शुरू कर सकते हैं।

(reverse-i-search)`':

शेल एक मिलान रेखा प्रदर्शित करेगा। अगले मिलान किए गए सुझाव पर जाने के लिए, फिर से Ctrl-R दबाएँ।

इतिहास विस्तार, संशोधक और डिज़ाइनर के बारे में अधिक जानकारी के लिए बैश मैनुअल की जाँच करें।

इतिहास सूची सहेजना

डिफ़ॉल्ट रूप से, एक नया सत्र शुरू करते समय, बैश .bash_history फ़ाइल से इतिहास सूची पढ़ता है। वर्तमान सत्र में निष्पादित आदेशों की सूची को स्मृति में रखा जाता है और सत्र बंद होने पर फ़ाइल में सहेजा जाता है।

.bash_history विकल्प आपको वर्तमान सत्र इतिहास सूची को .bash_history फ़ाइल में सहेजने की अनुमति देता है:

history -a

-w विकल्प पूरी इतिहास सूची को इतिहास फ़ाइल में लिखता है।

history -w

समाशोधन इतिहास

history कमांड आपको पूरी इतिहास सूची को साफ़ करने या कुछ हिस्सों को हटाने की अनुमति देता है।

इतिहास सूची को साफ़ करने के लिए, -c विकल्प का उपयोग करें:

history -c

इतिहास सूची से प्रारंभ और अंतिम स्थिति के बीच एक विशिष्ट रेखा या रेखाओं को हटाने के लिए, -d विकल्प का उपयोग करें।

उदाहरण के लिए, 365 और 375 के बीच की पंक्तियों को हटाने के लिए (उन पंक्तियों सहित), आप टाइप करेंगे:

history -d 365 375

जब एक नकारात्मक पूर्णांक का उपयोग किया जाता है, तो पंक्तियों को इतिहास सूची के अंत से वापस गिना जाता है।

ऊपर दिए गए आदेश इतिहास सूची को साफ़ करते हैं, जिसे मेमोरी में रखा जाता है, लेकिन डिस्क पर .bash_history फ़ाइल से प्रविष्टियाँ नहीं निकालता है। फ़ाइल को साफ़ करने के लिए, आपको इतिहास सूची को फ़ाइल में लिखना होगा:

history -c history -w

संशोधित इतिहास व्यवहार

बैश इतिहास के व्यवहार को कई अलग-अलग पर्यावरण चर का उपयोग करके परिभाषित किया जा सकता है। इतिहास व्यवहार को संशोधित करते समय, वैरिएबल को ~/.bashrc या किसी अन्य कॉन्फ़िगरेशन फ़ाइल में सेट करें, जब उपयोगकर्ता लॉग इन करता है।

डिफ़ॉल्ट रूप से बैश कमांड इतिहास सूची में 500 लाइनें रखता है। HISTSIZE चर आपको इस मान को बदलने की अनुमति देता है। इसे 10000 पर सेट करने के लिए अपनी .bashrc फ़ाइल में निम्न पंक्ति जोड़ें:

HISTSIZE=10000

HISTCONTROL चर मानों की एक बृहदान्त्र-पृथक सूची को स्वीकार करता है जो यह परिभाषित करती है कि इतिहास सूची में कमांड कैसे सहेजे जाते हैं:

  • ignorespace - स्पेस से शुरू होने वाली कमांड हिस्ट्री लिस्ट में सेव नहीं होती हैं। ignoredups - डुप्लिकेट आदेश सहेजे नहीं जाते हैं। ignoreboth - एक शॉर्टहैंड है, जिसमें ignorespace और ignoredups दोनों शामिल हैं।

HISTCONTROL=ignoreboth

जब HISTTIMEFORMAT चर सेट किया जाता है, तो बैश प्रत्येक लाइन पर कमांड के लिए निष्पादन का टाइमस्टैम्प प्रस्तुत करता है।

उदाहरण के लिए, यदि आप सेट करते हैं:

HISTTIMEFORMAT="%F %T: "

इतिहास निम्नलिखित प्रारूप में प्रदर्शित किया जाएगा:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

निष्कर्ष

history कमांड पहले निष्पादित कमांड की एक सूची प्रदर्शित करता है। उदाहरण के लिए, आप अपने द्वारा उपयोग किए गए लंबे कमांड को देखने के लिए इतिहास का उपयोग कर सकते हैं जिसे आप याद नहीं कर सकते हैं।

इतिहास टर्मिनल