क्यों बृहदान्त्र को पथ विभाजक के रूप में चुना गया था


22

:पथ विभाजक के रूप में कोलन ( ) को क्यों चुना गया ?

ध्यान दें कि मेरा मतलब "पथ विभाजक" है न कि "निर्देशिका विभाजक"। पथ विभाजक PATHपर्यावरण चर में प्रविष्टियों के बीच रखा गया प्रतीक है ।

PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:..."
                     ^ this symbol

कंप्यूटर और सॉफ्टवेयर में सब कुछ कभी किसी के द्वारा किया गया एक जानबूझकर निर्णय था। उदाहरण के लिए क्यों टिल्ड होम डायर का प्रतिनिधित्व करता है (और vi में दिशा कुंजियों के लिए hjkl क्यों) । मुझे इस निर्णय के लिए पृष्ठभूमि जानना पसंद है।


कुछ यादृच्छिक तथ्य:

पथ विभाजक के रूप में बृहदान्त्र होने का मतलब है कि नाम में एक बृहदान्त्र के साथ निर्देशिका को पथ में जोड़ा नहीं जा सकता है।

POSIX से:

चूंकि <colon>इस संदर्भ में एक विभाजक है, इसलिए PATH में उपयोग किए जाने वाले निर्देशिका नामों में एक <colon>वर्ण शामिल नहीं होना चाहिए ।

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html

ऐसा लगता है कि बृहदान्त्र से बचना संभव नहीं है। स्टैक ओवरफ्लो से @ random832 ने PATH को संभालने वाले सोर्स कोड का निरीक्षण किया और इसमें कोई बच निकलने का तंत्र नहीं पाया गया।

/programming/14661373/how-to-escape-colon-in-path-on-unix


इसके लिए विभाजक भी है /etc/passwd(जिसमें घर और शेल कॉलम में पथ भी शामिल हैं)।
स्टीफन चेजलस


11
मैंने कल लगभग आधा घंटा इस प्रश्न पर शोध में बिताया। मैंने 1971 के यूनिक्स प्रोग्रामर के मैनुअल को पढ़ा, जो एक बृहदान्त्र के उपयोग को निर्दिष्ट करता है, लेकिन इसका कारण नहीं है कि बृहदान्त्र को क्यों चुना गया (जैसे) पाइप प्रतीक। मैंने भी मल्टीिक्स के बारे में जितना पढ़ा था, लेकिन यह, जाहिरा तौर पर, केवल एक निर्देशिका इसकी पैठ में थी (इसलिए अलगाव की कोई आवश्यकता नहीं थी)। मुझे संदेह है कि हमें यहाँ एक अच्छा उत्तर मिलेगा, लेकिन अगर कोई मौका है कि कुछ अनुभवी यूनिक्स उपयोगकर्ता इस प्रश्न का उत्तर दे सकते हैं, तो मैं चाहूंगा कि उनके पास यह अवसर हो, इसलिए मैं फिर से मतदान कर रहा हूं।
एंथनी जी -

3
यूनिक्स संस्करण 7 (1979 में) की शुरुआत से पहले एक शेल / पर्यावरण चर नहीं कहा जा सकता है , लेकिन 1977 की शुरुआत में एक खोज-पथ खोज मार्ग था ।  PWB / Unix (प्रोग्रामर के कार्यक्षेत्र) ने माशे शेल का उपयोग किया था जॉन आर। माशी , जो थॉम्पसन खोल और बॉर्न शेल के बीच कालानुक्रमिक रूप से गिर गया। … (Cont'd)PATH:
G-Man कहते हैं, 'Monica ’

3
(Cont'd) ...  माशी शेल ने 26 शेल वेरिएबल्स का समर्थन किया (अनुमान करें कि उनके नाम क्या थे) - और चर pखोज पथ था (जिसे "कमांड डायरेक्शन के लिए शेल डायरेक्टरी सर्च सीक्वेंस कहा जाता है"), कॉलन द्वारा अलग की गई निर्देशिकाओं के साथ। …………………………………………… मजा तथ्य: जब माशेई शेल ने .profileफाइल को संसाधित किया , तो इसने आपको $pफ़ाइल नामक एक प्रारंभिक मूल्य निर्दिष्ट करने की भी अनुमति दी .path
जी-मैन का कहना है कि 'मोनिका' की बहाली

जवाबों:


3

कुछ खुदाई के बाद मेरे पास कोई वास्तविक उत्तर नहीं है, लेकिन कुछ ऐतिहासिक तथ्यों द्वारा समर्थित इस वार्तालाप को जोड़ने के लिए कम से कम नया informations है।

यहाँ पीटर चुब https://www.youtube.com/watch?v=Sye3mu-EoTI है जो अपने एक भाषण में शेल के बारे में बात कर रहा है, 19:00 के आस-पास आप उसे सुन सकते हैं, जिसका उल्लेख eडिफ़ॉल्ट संपादक के लिए उपनाम क्यों है यूनिक्स के गोले में, यह इसलिए है क्योंकि पुराने टर्मिनल जहां उपयोग करने के लिए इतने सहज या आसान नहीं हैं और उन पर टाइप करना एक अप्रिय अनुभव था।

वह इस मामले में एक सटीक मॉडल, https://en.wikipedia.org/wiki/Teletype_Model_33 का उल्लेख कर रहा है ।

कुछ शोधों के बाद ( http://www.pdp8.net/asr33/asr33.shtml ) मुझे लगता है कि यह मशीन आपको केवल 64 वर्णों का एक पूल चुनने देती है, यहां तक ​​कि पूर्ण US ASCII समर्थन भी नहीं, 2 6 वर्णों की शक्ति , यह एक 6 बिट संयोजन है।

वास्तव में इस मशीन का ASCII से कोई लेना-देना नहीं है, जिसका अर्थ है कि यह ASCII के पहले 64 वर्णों का भी समर्थन नहीं कर रहा है, यह सिर्फ इनपुट के पूरी तरह से असंबंधित सेट के लिए जा रहा है और शायद हमारे आधुनिक युग के लिए मानक नहीं है। ।

ASR 33 टेलेटाइप 64 अक्षरों को प्रिंट कर सकता है जो केवल UPPER CASE LETTERS, संख्या और प्रतीकों के लिए अनुमति देता है।

से http://www.pdp8.net/asr33/asr33.shtml

और यह सिर्फ यह साबित करता है कि यह निश्चित रूप से यूएस ASCII ने यह तथ्य नहीं दिया है कि अपरकेस अक्षरों का समर्थन करने के लिए आपको वास्तव में 6 बिट्स से अधिक की आवश्यकता है, अपरकेस अक्षर 64 वर्ण चिह्न (या दशमलव में मान 63 यदि आप तालिका का पालन करना चाहते हैं) से परे हैं।

    0 NUL    16 DLE    32      48 0    64 @    80 P    96 `   112 p 
    1 SOH    17 DC1    33 !    49 1    65 A    81 Q    97 a   113 q 
    2 STX    18 DC2    34 "    50 2    66 B    82 R    98 b   114 r 
    3 ETX    19 DC3    35 #    51 3    67 C    83 S    99 c   115 s 
    4 EOT    20 DC4    36 $    52 4    68 D    84 T   100 d   116 t 
    5 ENQ    21 NAK    37 %    53 5    69 E    85 U   101 e   117 u 
    6 ACK    22 SYN    38 &    54 6    70 F    86 V   102 f   118 v 
    7 BEL    23 ETB    39 '    55 7    71 G    87 W   103 g   119 w 
    8 BS     24 CAN    40 (    56 8    72 H    88 X   104 h   120 x 
    9 HT     25 EM     41 )    57 9    73 I    89 Y   105 i   121 y 
   10 LF     26 SUB    42 *    58 :    74 J    90 Z   106 j   122 z 
   11 VT     27 ESC    43 +    59 ;    75 K    91 [   107 k   123 { 
   12 FF     28 FS     44 ,    60 <    76 L    92 \   108 l   124 | 
   13 CR     29 GS     45 -    61 =    77 M    93 ]   109 m   125 } 
   14 SO     30 RS     46 .    62 >    78 N    94 ^   110 n   126 ~ 
   15 SI     31 US     47 /    63 ?    79 O    95 _   111 o   127 DEL 

अब हम जानते हैं कि हमें इस चीज़ में से 64 चार्ट मिलते हैं, बिना किसी वास्तविक मानक के, कोडित तालिका में उनका समर्थन करने के लिए और हमारे पास अक्षर भी नहीं हैं, बस अपरकेस प्लस प्रतीक और संख्याएँ हैं।

इस वेबसाइट के लिए धन्यवाद http://keyboards.jargon-file.org/#ASR33 मैं आपको ऐसे कीबोर्ड का इनपुट लेआउट दिखा सकता हूं

यहां छवि विवरण दर्ज करें

और SHIFT दबाकर आप भी प्राप्त करें

यहां छवि विवरण दर्ज करें

कुछ और जानकारी भी है कि पात्रों को उत्पन्न करने वाले भौतिक कनेक्शन कैसे कोडित होते हैं http://jargon-file.org/jargon-html/html/B/bit-paired-keyboard.html (पेज यह भी स्पष्ट करता है कि ASR33 और ASCII चार्ट बिट स्तर से अलग हैं)।

मुझे लगता है कि यह ध्यान रखना दिलचस्प है कि कोई {या नहीं हैं, }लेकिन केवल (और )जिसका अर्थ है कि शायद उप-समूह बनाना ठीक था, लेकिन नई प्रक्रियाओं का निर्माण शायद टर्मिनल द्वारा इतना आसान या अनुमत नहीं था।

अंत में मुझे नहीं लगता है कि एक वास्तविक वैज्ञानिक उत्तर है, यह संभवतः एक "मुक्त" वर्ण था जिसका एक विशेष अर्थ है; एक बात यह है कि थोरो: गोले और टर्मिनल ASCII से पुराने हैं और ASCII या किसी भी कोडित तालिका के बारे में सोच रहे हैं, जैसा कि हम जानते हैं कि आज शायद मिस्टी को हल करने वाला नहीं है।


के बारे में अधिक :संकेत और खोल stackoverflow.com/questions/3224878/...
user31223
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.