क्या हर जगह / देव / {udp, tcp} मानकीकृत या उपलब्ध हैं?


17

मैं हाल ही में के बारे में सीखा है /dev/udpऔर /dev/tcpछद्म उपकरणों यहाँ । क्या वे कुछ जीएनयू / लिनक्स वितरण के लिए विशिष्ट हैं या क्या मैं उन्हें अन्य यूनिक्स प्रणालियों पर पा सकता हूं?

क्या वे किसी तरह से मानकीकृत हैं?

अब तक, मैं उन्हें ओएस एक्स, आर्क लिनक्स और सेंटोस पर सफल उपयोग करने में सक्षम रहा हूं।

जवाबों:


26

यह शेल की एक विशेषता है न कि ऑपरेटिंग सिस्टम।

इसलिए, उदाहरण के लिए, ksh88शेल के रूप में सोलारिस 10 पर :

% cat < /dev/tcp/localhost/22
ksh: /dev/tcp/localhost/22: cannot open

हालाँकि अगर हम स्विच करते हैं bash:

% bash
bash-3.2$ cat < /dev/tcp/localhost/22
SSH-2.0-Sun_SSH_1.1.5

तो bashव्याख्या करता है, /dev/tcpलेकिन ksh88 नहीं था।

ksh93शेल के रूप में सोलारिस 11 पर :

% cat < /dev/tcp/localhost/22
SSH-2.0-Sun_SSH_2.2

इसलिए हम देख सकते हैं कि यह उपयोग में शेल पर बहुत निर्भर है।


4
संकलन-समय विकल्पों पर भी निर्भर करता है - सभी बैश बिल्ड में यह सक्षम नहीं होगा।
चार्ल्स डफी

@CharlesDuffy काफी सच्चा; ksh का सच (ksh-88 ने भी ऑटोडेटेक्ट की कोशिश की, लेकिन मुझे यकीन नहीं है कि यह ठीक से काम कर रहा है)।
स्टीफन हैरिस

1
पहले वाक्य के बारे में, POSIX कुछ मूल शेल विशेषताओं का मानकीकरण करता है (हालाँकि /dev/tcp/...यह उनमें से एक नहीं है)।
तंज87

3

बैश इन्फो नोड से जोड़ने के लिए :

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

'/ dev / fd / FD' यदि एफडी एक वैध पूर्णांक है, तो फाइल डिस्क्रिप्टर एफडी डुप्लिकेट है।

'/ dev / stdin' फ़ाइल डिस्क्रिप्टर 0 डुप्लिकेट है।

'/ dev / stdout' फ़ाइल विवरणक 1 डुप्लिकेट है।

'/ dev / stderr' फ़ाइल डिस्क्रिप्टर 2 डुप्लिकेट है।

'/ dev / tcp / HOST / PORT' यदि HOST एक मान्य होस्टनाम या इंटरनेट पता है, और PORT एक पूर्णांक पोर्ट नंबर या सेवा का नाम है, तो Bash संबंधित TCP सॉकेट खोलने का प्रयास करता है।

'/ dev / udp / HOST / PORT' यदि HOST एक मान्य होस्टनाम या इंटरनेट पता है, और PORT एक पूर्णांक पोर्ट नंबर या सेवा का नाम है, तो बैश संबंधित UDP सॉकेट को खोलने का प्रयास करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.