Computer >> कंप्यूटर >  >> प्रणाली >> Linux

लिनक्स में टी कमांड का उपयोग कैसे करें

लिनक्स में टी कमांड का उपयोग कैसे करें

यदि आप कभी भी अपने लिनक्स शेल के तहत पाइप और पुनर्निर्देशन का उपयोग करते हैं, तो संभावना है कि आपको कभी-कभी tee का उपयोग करने की भी आवश्यकता होगी। उपयोगिता।

टी क्या करती है?

एक कमांड जैसे

ls

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

एक कमांड जैसे

ls > file123

आपकी स्क्रीन पर कुछ भी प्रदर्शित नहीं करेगा। ऐसा इसलिए है क्योंकि > साइन सभी आउटपुट को स्टडआउट पर प्रदर्शित करने के बजाय फ़ाइल में रीडायरेक्ट करता है। file123 अब आपकी स्क्रीन पर पहले प्रदर्शित की गई सामग्री से भर जाएगा।

अपनी निर्देशिका की सामग्री को स्क्रीन पर प्रदर्शित करने और इसे एक फ़ाइल में लिखने के लिए, आप दो आदेशों का उपयोग करते हैं। tee के साथ आप ये दोनों काम एक साथ कर सकते हैं।

ls | tee file123

टी का उपयोग क्यों करें यदि आप एक समान कमांड को दो बार चला सकते हैं?

ऊपर के उदाहरण में, यदि आप ls . निष्पादित कर सकते हैं तो आपको स्पष्ट रूप से टी की आवश्यकता नहीं है सामान्य रूप से और फिर इसे फिर से निष्पादित करें और आउटपुट को फ़ाइल में रीडायरेक्ट करें। हालाँकि, आप उन स्थितियों का सामना करेंगे जहाँ आउटपुट अद्वितीय होगा। एक ऐसे परिदृश्य की कल्पना करें जहां आप किसी समस्या का निदान करने का प्रयास करते हैं। आप diagnose | tee error.log . आपको मिलने वाली त्रुटियां अद्वितीय हो सकती हैं। आप उन्हें स्क्रीन पर प्रदर्शित करना चाहते हैं ताकि आप देख सकें कि चीजों का परीक्षण करते समय क्या हो रहा है। लेकिन आप उन त्रुटियों को एक फ़ाइल में सहेजना भी चाहते हैं, ताकि आप बाद में उनकी समीक्षा कर सकें या आउटपुट को चर्चा मंच पर पेस्ट कर सकें और लोगों से इसके बारे में पूछ सकें।

एक और स्थिति, जिसका अक्सर सामना करना पड़ता है, जब आपको टी की आवश्यकता हो सकती है, यह है:आप किसी कमांड के आउटपुट को उस स्थान पर लिखना चाहते हैं जहां केवल रूट उपयोगकर्ता ही पढ़ या लिख ​​सकता है। यह काम नहीं करेगा।

/sbin/blkid > /root/somefile

फिर, आप सोच सकते हैं, "ठीक है, बिल्कुल, बस सूडो का उपयोग करें!" और आपको आश्चर्य होगा कि यह भी काम नहीं करता:

sudo blkid > /root/somefile

ऐसा इसलिए है क्योंकि sudo blkid . के बाद निष्पादित, आप अभी भी अपने नियमित, गैर-रूट उपयोगकर्ता के रूप में लॉग इन हैं। और आपका खोल (आमतौर पर बैश), /root/somefile . पर लिखने का प्रयास करता है अपने नियमित उपयोगकर्ता क्रेडेंशियल के साथ। इसे हल करने के लिए, आप टी का उपयोग कर सकते हैं:

/sbin/blkid | sudo tee /root/somefile

पाठ्य जोड़ना और पुनर्निर्देशन त्रुटियां

टी एक उपयोगी लेकिन सरल कमांड है; एक बुनियादी command | tee somefile अधिकांश समय पर्याप्त होगा। हालांकि, आपको दो स्थितियों का सामना करना पड़ सकता है जिनके लिए इन युक्तियों की आवश्यकता होगी।

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

ls | tee somefile

और फिर

ls /tmp | tee somefile

दूसरा कमांड somefile की सामग्री को अधिलेखित कर देगा, और आप केवल अंतिम कमांड की सामग्री को निष्पादित देखेंगे। इस व्यवहार को बदलने के लिए, आप ओवरराइट के बजाय टी एपेंड टेक्स्ट बना सकते हैं। ऐसा करने के लिए, बस -a . का उपयोग करें कमांड स्विच।

ls | tee -a somefile

दूसरी बात यह जानना है कि सभी आउटपुट समान नहीं होते हैं। त्रुटि संदेशों को अलग तरह से व्यवहार किया जाता है, और हालांकि वे स्क्रीन पर दिखाई देते हैं, उन्हें स्टडआउट नहीं माना जाता है, इसलिए उन्हें टी द्वारा पकड़ा नहीं जाएगा। (उन्हें stderr माना जाता है।) यहाँ grep पर एक उदाहरण दिया गया है।

grep -r L2TP /etc | tee somefile

यह निम्न छवि की तरह कुछ प्रदर्शित करेगा।

लिनक्स में टी कमांड का उपयोग कैसे करें

अनुमति अस्वीकृत संदेश stderr को लिखे जाते हैं। Stdout को लिखी जाने वाली एकमात्र चीज़ हाइलाइट किया गया टेक्स्ट है। इसलिए आप देखेंगे कि "somefile" की सामग्री नीचे दी गई छवि में दिखाई गई है।

लिनक्स में टी कमांड का उपयोग कैसे करें

इस मामले में, जहां पाठ की खोज के लिए grep का उपयोग किया जाता है, यह उपयोगी है कि त्रुटि संदेशों को फ़ाइल पर पुनर्निर्देशित नहीं किया जाता है। वे सिर्फ अनावश्यक कचरे से फाइल भर देंगे। आप केवल पाए गए परिणाम देखना चाहते हैं। लेकिन जब आपको त्रुटि संदेशों की आवश्यकता हो, तो 2>&1 . का उपयोग करें , जो stderr को stdout पर पुनर्निर्देशित करता है।

grep -r L2TP /etc 2>&1 | tee somefile

इस आदेश के साथ आप देखेंगे कि somefile में अब त्रुटि संदेश भी हैं।

निष्कर्ष

उम्मीद है, इस ट्यूटोरियल में टी कमांड से सबसे अधिक उपयोग करने के लिए आपको जो कुछ भी चाहिए, उसे शामिल किया गया है। लेकिन अगर आपको ऐसी स्थिति का सामना करना पड़ता है जहां आप टी के साथ फंस जाते हैं, तो नीचे एक टिप्पणी छोड़ दो, और हम मदद करने में सक्षम हो सकते हैं।


  1. कैलकुलेटर के रूप में लिनक्स टर्मिनल का उपयोग कैसे करें

    क्या आप एक फैंसी जीयूआई पर लिनक्स टर्मिनल की सादगी पसंद करते हैं? यदि आपको जल्दी से कुछ गणित करने की आवश्यकता है, तो आपको कैलकुलेटर ऐप का उपयोग करने की आवश्यकता नहीं है। आप उन टूल का उपयोग करके टर्मिनल का उपयोग करके अपनी गणना कर सकते हैं, जिन्हें आपने (शायद) पहले ही इंस्टॉल कर लिया है। आइए देखें कि

  1. लिनक्स में नेटवर्क कनेक्शन की निगरानी के लिए ss कमांड का उपयोग कैसे करें

    यदि आप Linux का उपयोग करते हैं, तो संभवत:एक समय आएगा जब आपको अपने नेटवर्क के बारे में अधिक जानने की आवश्यकता होगी। कई उपकरण ऐसा करने में आपकी सहायता कर सकते हैं, और कुछ अन्य की तुलना में अधिक जटिल हैं। ss कमांड एक ऐसी चीज है जिस पर आप कई मशीनों पर इंस्टाल होने पर भरोसा कर सकते हैं, इसलिए इसे जानना आ

  1. उदाहरण के साथ, लिनक्स में वॉच कमांड का उपयोग कैसे करें

    लिनक्स में वॉच कमांड एक काम करता है - एक कमांड को दोहराता है और परिणाम को बार-बार आउटपुट करता है, जिससे आप परिवर्तनों को देख सकते हैं। यहां इसका उपयोग करने का तरीका बताया गया है। कमांड सिंटैक्स देखें वॉच कमांड का सिंटैक्स इस प्रकार है: watch OPTIONS COMMAND ध्यान दें कि: विकल्प नीचे दी गई तालिका