टर्मिनल एक लिनक्स सिस्टम का दिल है। लिनक्स में चलने वाला प्रत्येक प्रोग्राम टर्मिनल कमांड लाइन के नीचे चल रहा है। इसमें बड़े पैमाने पर प्रोग्राम शामिल हैं, जैसे कि वेब ब्राउज़र और यहां तक कि साधारण प्रोग्राम जैसे टेक्स्ट एडिटर भी। जैसे, यदि आप यह समझना चाहते हैं कि ऑपरेटिंग सिस्टम कैसे काम करता है, तो टर्मिनल का ठीक से उपयोग करने में सक्षम होना एक महत्वपूर्ण कदम है।
इसके साथ, लिनक्स टर्मिनल पर काम करते समय, आप कमांड के टर्मिनल आउटपुट को एक फाइल में सहेजना चाह सकते हैं। इस फ़ाइल का उपयोग किसी अन्य ऑपरेशन के लिए या केवल टर्मिनल गतिविधि को लॉग करने के लिए जानकारी के रूप में किया जा सकता है। यह आलेख टर्मिनल आउटपुट को फ़ाइल में सहेजने के पाँच तरीके सिखाता है।
1. विशिष्ट टर्मिनलों का उपयोग करें
इससे निपटने का पहला तरीका एक टर्मिनल का उपयोग करना है जो आउटपुट को फ़ाइल में सहेजने का समर्थन करता है। उदाहरण के लिए, मानक केडीई स्थापना के साथ आने वाले कंसोल टर्मिनल में फ़ाइल में आउटपुट लिखने का विकल्प शामिल होता है।
ऐसा करने के लिए, मेनू बार में "फ़ाइल" बटन दबाएं और "आउटपुट को इस रूप में सहेजें ..." पर क्लिक करें
यह एक विंडो डायलॉग खोलेगा जहाँ आप टर्मिनल आउटपुट को सेव कर सकते हैं। वहां से, आप चुन सकते हैं कि आप फ़ाइल को कहाँ सहेजना चाहते हैं।
आप गनोम टर्मिनल में कमांड के आउटपुट को भी सेव कर सकते हैं। बस टर्मिनल पर राइट-क्लिक करें और "आउटपुट को HTML के रूप में कॉपी करें" दबाएं। फिर, यह आपके क्लिपबोर्ड में टर्मिनल टेक्स्ट लोड करेगा। वहां से, आप इसे किसी भी टेक्स्ट एडिटर में पेस्ट कर सकते हैं।
2. आउटपुट पुनर्निर्देशन
इससे निपटने का एक अन्य तरीका UNIX शेल के बिल्ट-इन ऑपरेटरों का उपयोग करना है। ये लिनक्स में डिफॉल्ट फंक्शन हैं और प्रोग्राम के टेक्स्ट आउटपुट को फाइल पर रीडायरेक्ट कर सकते हैं। तीन ऑपरेटर हैं जो इसे कर सकते हैं:
- द
>
ऑपरेटर आपके प्रोग्राम के आउटपुट के साथ फ़ाइल की सामग्री को या तो बना देगा या बदल देगा। यह उपयोगी है यदि आप अपने प्रोग्राम के वर्तमान परिणाम को उसी फ़ाइल में डंप करना और देखना चाहते हैं। - द
>>
ऑपरेटर आपके प्रोग्राम के आउटपुट के साथ एक फाइल भी बनाएगा। हालाँकि, यह ऑपरेटर केवल आउटपुट को बदलने के बजाय उसे जोड़ देगा। यह उपयोगी है यदि आप अपने प्रोग्राम के परिणाम को लगातार एक फ़ाइल में डंप करना चाहते हैं। - अंत में,
2>
ऑपरेटर एक विशेष प्रकार का ऑपरेटर है जो त्रुटियों को प्रिंट करेगा जिन्हें वापस रिपोर्ट किया जाएगा। यह डिबगिंग के दौरान बहुत उपयोगी है, क्योंकि यह प्रोग्राम के क्रैश होने से पहले आई समस्या को दिखाता है।
यह जानते हुए कि, जिस तरह से आप इन ऑपरेटरों का उपयोग करते हैं, वह आपके प्रोग्राम के अंत में इसे जोड़कर है। निम्नलिखित उदाहरण पर विचार करें:
echo "maketecheasier" > hello.txt
मैंने echo
. को निर्देश दिया है शब्द "मेकेटेकेसियर" को आउटपुट करने के लिए प्रोग्राम, फिर >
. जोड़ा ऑपरेटर और साथ ही एक फ़ाइल नाम। इसने UNIX शेल को स्क्रीन पर प्रिंट करने के बजाय आउटपुट को "hello.txt" फ़ाइल में लिखने के लिए कहा।
3. टी
आउटपुट पुनर्निर्देशन के अलावा, आप tee
नामक प्रोग्राम का उपयोग करके टर्मिनल कमांड के आउटपुट को भी सहेज सकते हैं। . यह एक GNU प्रोग्राम है जो आपको मानक इनपुट से पढ़ने और लिखने की अनुमति देता है। किसी फ़ाइल में कमांड का आउटपुट लिखने के लिए UNIX पाइप के साथ इस प्रोग्राम का उपयोग करें।
निम्नलिखित उदाहरण पर विचार करें:
echo "maketecheasier" | tee hello.txt
यहाँ, आउटपुट पुनर्निर्देशन का उपयोग करने के बजाय, मैंने पाइप किया (|
) आउटपुट को tee
.
नोट :एक पाइप एक प्रोग्राम का आउटपुट लेता है और दूसरे प्रोग्राम के इनपुट में फीड करता है। यह आपको कई कार्यक्रमों को एक साथ चिपकाने की अनुमति देता है, जब तक कि वे सभी मानक इनपुट और आउटपुट का उपयोग कर रहे हों।
4. स्क्रिप्ट
टर्मिनल से आउटपुट खींचने का दूसरा तरीका है script
, एक अंतर्निर्मित लिनक्स प्रोग्राम जो टर्मिनल में आपके द्वारा टाइप की जाने वाली हर चीज के साथ-साथ उसके आउटपुट को भी रिकॉर्ड करता है।
आप अपने टर्मिनल सत्र के लॉग को एक पार्सेबल टेक्स्ट फॉर्मेट में रिकॉर्ड करने के लिए स्क्रिप्ट का उपयोग कर सकते हैं। यह बहुत उपयोगी है यदि आप अन्य लोगों से समर्थन प्राप्त करने के लिए एक त्रुटि लॉग ऑनलाइन भेजना चाहते हैं।
इसका उपयोग करने के लिए, निम्न कमांड चलाएँ:
script filename.txt
यह एक स्क्रिप्ट वातावरण शुरू करेगा जहां आप केवल कमांड चलाना शुरू कर सकते हैं। हालाँकि, ध्यान देने योग्य एक महत्वपूर्ण बात यह है कि स्क्रिप्ट उस सत्र में आपके द्वारा की जाने वाली हर चीज़ को कैप्चर करती है। निम्नलिखित उदाहरण पर विचार करें:
Script started on 2022-03-27 18:02:29+08:00 [TERM="rxvt-unicode-256color" TTY="/dev/pts/2" COLUMNS="77" LINES="22"] [?2004h[[1;31m balaraw:[1;35m~ [0m]$ ls [?2004l [0m[01;34mDesktop[0m [01;34mDownloads[0m [01;34mmail[0m [01;34mNews[0m [01;34mpods[0m [01;34mdocuments[0m [00;32mhello.txt[0m [01;34mMail[0m [01;34mpics[0m [01;34mtmp[0m [01;34mvids[0m [?2004h[[1;31m balaraw:[1;35m~ [0m]$ exit [?2004l exit Script done on 2022-03-27 18:03:19+08:00 [COMMAND_EXIT_CODE="0"]
स्क्रिप्ट में आपके द्वारा दबाए जाने वाले सभी कीप्रेस और नियंत्रण वर्ण शामिल हैं। मेरे मामले में, इसमें मेरे द्वारा दबाए गए सभी "अदृश्य" कुंजियाँ शामिल थीं, जिनमें Tab शामिल हैं। और बैकस्पेस कुंजी दबाते हैं।
एक बार जब आप सत्र के साथ कर लें, तो टाइप करें exit
. यह स्क्रिप्ट प्रोग्राम को समाप्त कर देगा और आपके द्वारा निर्दिष्ट फ़ाइल में पूरा लॉग लिख देगा।
5. फ़्रेमबफ़र टर्मिनल कैप्चर
अंत में, आप लिनक्स फ्रेमबफर से खींचकर टर्मिनल का आउटपुट भी प्राप्त कर सकते हैं। यह उपयोगी है यदि आप सीधे टेलीटाइप पर काम कर रहे हैं और किसी प्रोग्राम के आउटपुट को कैप्चर करना चाहते हैं।
फ़्रेमबफ़र डिवाइस को कैप्चर करने के लिए, टेलेटाइप में रहते हुए निम्न कमांड चलाएँ:
cat /dev/fb0 > capture.raw
ध्यान देने वाली एक महत्वपूर्ण बात यह है कि फ्रेमबफर डिवाइस को इस तरह से कैप्चर करने का मतलब है कि आप फ्रेमबफर के कच्चे बाइट्स को फाइल में डंप कर रहे हैं। उस फ़ाइल को देखने के लिए, आपको इसे एक छवि संपादक में लोड करना होगा और मैन्युअल रूप से रंग और थोड़ी गहराई को समायोजित करना होगा। इस प्रक्रिया में न केवल समय लगता है, बल्कि इसे गलत करना भी आसान है।
जैसे, इससे निपटने का एक तरीका तीसरे पक्ष के कार्यक्रम का उपयोग करना है, जैसे कि fbgrab। यह फ्रेमबफर डिवाइस से वर्तमान टेलेटाइप स्क्रीन को पकड़ लेगा और इसे या तो पीपीएम या पीएनजी फ़ाइल में डंप कर देगा।
Fbgrab को स्थापित करना भी अपेक्षाकृत सरल है। डेबियन और उबंटू-आधारित वितरण में, आप उपयुक्त का उपयोग कर सकते हैं:
sudo apt install fbgrab
आर्क लिनक्स के लिए, पॅकमैन चलाएँ:
sudo pacman -S fbgrab
टर्मिनल आउटपुट कैप्चर करने के लिए fbgrab का उपयोग करना
एक बार इंस्टाल हो जाने पर, कंट्रोल . दबाकर टेलेटाइप पर ड्रॉप करें + शिफ्ट + Alt + F3 , फिर या तो fbcat
run चलाएं या fbgrab
।
Fbcat एक सरल प्रोग्राम है जो वर्तमान फ्रेमबफर स्क्रीन को पकड़ता है और इसे PPM छवि में सहेजता है। यह एक निम्न-स्तरीय कच्ची छवि प्रारूप है जिसे आप पीएनजी में बदलने के लिए एक छवि संपादक में लोड कर सकते हैं। Fbcat मुख्य रूप से तब उपयोगी होता है जब आप कम बिट-डेप्थ डिस्प्ले को कैप्चर करने का प्रयास कर रहे होते हैं, जिसे ठीक से कैप्चर करने के लिए रॉ इमेज फॉर्मेट की आवश्यकता होती है।
fbcat प्रोग्राम का उपयोग करके कैप्चर करने के लिए, निम्न कमांड चलाएँ:
fbcat > capture.ppm
यह वर्तमान में प्रदर्शित स्क्रीन को पकड़ लेगा और सामग्री को कैप्चर.पीपीएम फ़ाइल में डंप कर देगा।
दूसरी ओर, Fbgrab एक अधिक जटिल प्रोग्राम है जिसे उच्च बिट-डेप्थ डिस्प्ले को कैप्चर करने के लिए डिज़ाइन किया गया है। अधिकांश भाग के लिए, आप इसका उपयोग अपनी टेलेटाइप स्क्रीन को कैप्चर करने के लिए करेंगे। यह डिफ़ॉल्ट रूप से पीएनजी में बचत का समर्थन करता है और इसमें कैप्चर करने के लिए एक अलग टेलेटाइप का चयन करने का विकल्प होता है।
fbgrab प्रोग्राम का उपयोग करके कैप्चर करने के लिए, निम्न कमांड चलाएँ:
sudo fbgrab -c 3 capture.png
यह तीसरी टेलेटाइप स्क्रीन को पकड़ लेगा और इसे कैप्चर.पीएनजी फ़ाइल में सहेज लेगा।
यदि आप लिनक्स टर्मिनल के लिए और अधिक गाइड की तलाश कर रहे हैं, तो देखें कि कमांड लाइन से एक ईमेल भेजने की चर्चा है।
अक्सर पूछे जाने वाले प्रश्न
<एच3>1. मदद! एफबीग्रैब काम नहीं करता है; तस्वीर सिर्फ काली या खाली है।यह शायद इसलिए है क्योंकि fbgrab टर्मिनल आउटपुट को कैप्चर करने के लिए एक अलग फ्रेमबफर डिवाइस का उपयोग कर रहा है। "/ dev" फ़ोल्डर को सूचीबद्ध करके सिस्टम द्वारा उपयोग किए जा रहे वर्तमान फ़्रेमबफ़र डिवाइस की जाँच करें।
ls /dev
वहां से, "/ dev/fbX" डिवाइस देखें। आम तौर पर, लिनक्स अपने फ्रेमबफर के लिए "/ dev/fb0" का उपयोग करता है। हालाँकि, यदि आपका सिस्टम किसी भिन्न फ़्रेमबफ़र का उपयोग कर रहा है, जैसे "/ dev/fb1", तो आप fbgrab को इसके बजाय उस फ़्रेमबफ़र से खींचने के लिए कहने के लिए निम्न आदेश पास कर सकते हैं:
fbgrab -d 1 capture.png<एच3>2. क्या किसी प्रोग्राम में इनपुट के रूप में मेरे द्वारा लिखी गई फ़ाइल की सामग्री को हथियाना संभव है?
हां! ऊपर चर्चा किए गए तीन ऑपरेटरों के अलावा, आप <
. का भी उपयोग कर सकते हैं फ़ाइल से डेटा खींचने के लिए ऑपरेटर। फिर, शेल इसे एक प्रोग्राम के लिए एक इनपुट मानेगा।
इसे इस तरह से करने से आपके लिए टेक्स्ट प्रिंट करने के लिए अन्य प्रोग्रामों पर निर्भर रहने की आवश्यकता भी दूर हो जाती है। निम्नलिखित उदाहरणों पर विचार करें:
[1] cat test.txt | program [2] program < test.txt
- पहला उदाहरण कैट प्रोग्राम को टेक्स्ट लोड करने के लिए कहता है, फिर कैट के आउटपुट के साथ एक पाइप ऑपरेटर को लोड करता है और इसे आपके प्रोग्राम में पाइप करता है।
- दूसरी ओर, दूसरा उदाहरण तुरंत आपके प्रोग्राम को कॉल करता है, फिर
<
. को चुनता है ऑपरेटर, जो इसके लिए अगले तर्क को अपना इनपुट मानता है।
हां, केवल एक कमांड के लिए स्क्रिप्ट करना संभव है। समस्या निवारण के दौरान यह बहुत उपयोगी होता है जब आप केवल एक प्रोग्राम के आउटपुट को कैप्चर करना चाहते हैं। निम्न आदेश चलाकर ऐसा करें:
script -c "your-command" test.txt
-c ध्वज स्क्रिप्ट प्रोग्राम को केवल प्रोग्राम चलाने के लिए कहता है:your-command. वहां से, यह अपना आउटपुट test.txt नामक टेक्स्ट फ़ाइल में लिखेगा।