लिनक्स में हर प्रक्रिया तीन डेटा स्ट्रीम, स्टडिन, स्टडआउट और स्टैडर का उत्पादन करती है:
- स्टडिन : कीबोर्ड के माध्यम से उपयोगकर्ता से इनपुट लेता है
- स्टडआउट : स्क्रीन पर आउटपुट प्रदर्शित करता है
- स्टेडर : स्क्रीन पर त्रुटि जानकारी दिखाता है
प्रत्येक डेटा स्ट्रीम में एक संख्यात्मक आईडी होती है:
संख्यात्मक आईडी | नाम |
0 | स्टडिन |
1 | स्टडआउट |
2 | स्टेडर |
आइए पुनर्निर्देशन को विस्तार से थोड़ा और समझाएं:
बैश में मानक आउटपुट और मानक त्रुटि को पुनर्निर्देशित कैसे करें:
कमांड के मानक आउटपुट को पुनर्निर्देशित करने के लिए, हम 1 का उपयोग एक पुनर्निर्देशन ऑपरेटर के साथ करेंगे जो कि > चिह्न से बड़ा है:
$रास 1>stdout.txtउपरोक्त आदेश एक फ़ाइल बनाएगा और ls कमांड के मानक आउटपुट को stdout.txt फ़ाइल में रखेगा।
Stdout.txt फ़ाइल को पढ़ने के लिए, उपयोग करें:
$बिल्लीstdout.txt
हम कमांड का उपयोग करके मानक त्रुटि को फ़ाइल में रीडायरेक्ट कर सकते हैं:
$बिल्लीmyfile.txt2>stderr.txt
Stderr.txt फ़ाइल देखने के लिए, उपयोग करें:
$बिल्लीstderr.txt
सुनिश्चित करें कि उपयोग 2 > चिह्न से बड़ा होगा। चूंकि निर्देशिका में कोई myfile.txt फ़ाइल नहीं है, इसलिए कैट कमांड एक त्रुटि देगा जिसे stderr.txt फ़ाइल में जोड़ा जाएगा।
इन मानक आउटपुट को एक कमांड के साथ भी रीडायरेक्ट किया जा सकता है, इसका उपयोग करें:
$रास 1>stdout.txt2>stderr.txt
Ls कमांड का आउटपुट में लिखा जाएगा stdout.txt फ़ाइल, लेकिन stderr.txt खाली रहेगा क्योंकि कोई त्रुटि नहीं होगी।
अब stderr.txt के लिए करते हैं:
$बिल्लीmyfile.txt1>stdout.txt2>stderr.txt
Stderr.txt पढ़ने के लिए नीचे दिए गए कमांड का उपयोग करें।
$बिल्लीstderr.txt
और निश्चित रूप से, stdout.txt खाली होगा।
निष्कर्ष :
निष्पादित करने पर लिनक्स कमांड मानक आउटपुट देता है जो एक सफल आउटपुट या एक त्रुटि आउटपुट हो सकता है। आम तौर पर, इन आउटपुट को पुनर्निर्देशन ऑपरेटरों का उपयोग करके पुनर्निर्देशित नहीं किया जा सकता है; हमें > चिह्न के साथ विशिष्ट संख्यात्मक आईडी का उपयोग करने की आवश्यकता है। इस गाइड में, हमने सीखा कि इन संख्यात्मक कुंजियों का उपयोग मानक आउटपुट को उदाहरणों के साथ फ़ाइल में पुनर्निर्देशित करने के लिए कैसे किया जाता है।