1 00:00:00,000 --> 00:00:02,320 >> [संगोष्ठी - यूनिक्स के गोले, वातावरण] 2 00:00:02,320 --> 00:00:04,180 [डगलस क्लाइन - हार्वर्ड विश्वविद्यालय] 3 00:00:04,180 --> 00:00:07,160 [यह CS50 है. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> आज का विषय यूनिक्स खोल रहा है. 5 00:00:12,770 --> 00:00:20,600 मैं डगलस क्लाइन, विशेषज्ञ, या खोल के कम से कम यथोचित सक्षम उपयोगकर्ता, कर रहा हूँ. 6 00:00:20,600 --> 00:00:25,280 एक खोल कंप्यूटर के ऑपरेटिंग सिस्टम के लिए उपयोगकर्ता के लिए इंटरफ़ेस है. 7 00:00:25,280 --> 00:00:29,580 नाम, एक जानवर के खोल के विपरीत, के रूप में भ्रामक है 8 00:00:29,580 --> 00:00:34,890 कठिन और रक्षात्मक है, जो कंप्यूटर खोल संचार के लिए अनुमति देता है. 9 00:00:34,890 --> 00:00:39,120 तो झरझरा झिल्ली शायद एक बेहतर रूपक होगा. 10 00:00:39,120 --> 00:00:44,500 >> यूनिक्स के लिए मूल खोल बॉर्न खोल रहा है. 11 00:00:44,500 --> 00:00:46,450 बॉर्न बी ओ यू आर एन ई वर्तनी है. 12 00:00:46,450 --> 00:00:49,770 बॉर्न, यूनिक्स के मूल लेखकों में से एक था 13 00:00:49,770 --> 00:00:51,700 और तो खोल उसके नाम पर है. 14 00:00:51,700 --> 00:00:54,850 एक आदेश के रूप में है कि खोल के नाम बस यूँ ही श है. 15 00:00:54,850 --> 00:00:57,400 यही कारण है कि आप लागू कर सकते हैं आदेश है. 16 00:00:57,400 --> 00:01:00,810 खोल लॉगिन में शुरू होता है. 17 00:01:00,810 --> 00:01:04,459 आप कंप्यूटर में प्रवेश करते है, खोल बस, आप के लिए चल रहा शुरू होता है 18 00:01:04,459 --> 00:01:06,820 और कि अपने आदेशों लेता है. 19 00:01:06,820 --> 00:01:09,790 यह भी अन्य समय में शुरू कर सकते हैं. 20 00:01:09,790 --> 00:01:16,780 आप कोई अन्य संकेत के साथ एक खिड़की को लाने के लिए, यह आप के लिए एक खोल शुरू कर देंगे. 21 00:01:16,780 --> 00:01:20,450 यही कारण है कि यह आपको एक खिड़की के पास जाओ और आदेशों टाइपिंग शुरू कर सकते हैं कि कैसे है 22 00:01:20,450 --> 00:01:23,960 और आगे तो वहाँ आप उस खिड़की में लॉग इन नहीं था. 23 00:01:23,960 --> 00:01:26,670 इसके अलावा, आप एक दूरदराज के प्रवेश करते हैं, 24 00:01:26,670 --> 00:01:30,250 तो यह दूरदराज के कंप्यूटर पर एक खोल शुरू कर देंगे. 25 00:01:30,250 --> 00:01:44,310 और यह एक इंटरैक्टिव खोल बिना आदेशों को चलाने के लिए संभव है. 26 00:01:44,310 --> 00:01:48,990 वह अपने मौजूदा अभियान के भीतर मतलब हो सकता है, 27 00:01:48,990 --> 00:01:50,700 और यह भी एक दूरदराज के आपरेशन हो सकता है. 28 00:01:50,700 --> 00:01:52,900 आप किसी अन्य कंप्यूटर के लिए एक आदेश भेज सकते हैं, 29 00:01:52,900 --> 00:01:55,460 जो वहाँ एक खोल शुरू करने में शामिल हैं. 30 00:01:55,460 --> 00:01:57,760 वास्तव में, यह वहाँ एक खोल को शुरू में शामिल करने के लिए है 31 00:01:57,760 --> 00:02:01,740 कि अपने अंतिम उद्देश्य नहीं है, भले ही. 32 00:02:05,310 --> 00:02:12,350 कुछ इस तरह शुरू होता है, यह जरूरी है कि एक नया खोल शुरू नहीं करता है. 33 00:02:12,350 --> 00:02:17,430 आप एक नई विंडो लाने के लिए, यह एक संपादक को लाने के लिए यह बताने के लिए संभव है 34 00:02:17,430 --> 00:02:18,940 या कुछ अन्य आदेश. 35 00:02:18,940 --> 00:02:20,560 उस मामले में, संपादक खरोंच से शुरू होगा. 36 00:02:20,560 --> 00:02:22,930 संपादक समाप्त होता है, खिड़की समाप्त होता है. 37 00:02:22,930 --> 00:02:24,620 यह थोड़ा असामान्य है लेकिन यह किया जा सकता है. 38 00:02:24,620 --> 00:02:27,140 उन मामलों में, यह एक खोल नहीं होगा. 39 00:02:27,140 --> 00:02:31,890 इसलिए यह जरूरी है कि एक खिड़की या कुछ इस तरह के आवेदन एक खोल लाएगा यह मामला नहीं है. 40 00:02:31,890 --> 00:02:34,030 >> शैल कमांड डेसिमल. 41 00:02:34,030 --> 00:02:40,900 पारसिंग विभिन्न तत्वों की पहचान करने और उन्हें वर्गीकृत करने का मतलब है. 42 00:02:40,900 --> 00:02:43,470 एक आदेश के भीतर, आप लिखते हैं कि पूरा स्ट्रिंग, 43 00:02:43,470 --> 00:02:47,310 निष्पादित करने के लिए 1 या अधिक एकल आदेशों की जाएगी. 44 00:02:47,310 --> 00:02:50,050 अन्य तत्वों तर्क हो सकता है. 45 00:02:50,050 --> 00:02:55,020 यह भी एक आदेश के निष्पादन को प्रभावित जो विशेष वर्ण हो सकते हैं. 46 00:02:55,020 --> 00:02:59,710 वे स्क्रीन की तुलना में कहीं अन्य उत्पादन भेज सकते हैं 47 00:02:59,710 --> 00:03:01,750 आदेश आमतौर पर स्क्रीन पर भेज होगा. 48 00:03:01,750 --> 00:03:04,390 यह इनपुट पुनर्निर्देशित कर सकते हैं, यह भी अन्य बातें कर सकते हैं. 49 00:03:04,390 --> 00:03:08,120 इसके आगे विभिन्न अन्य प्रतीक, वर्ण, और कर रहे हैं. 50 00:03:08,120 --> 00:03:13,600 पारसिंग उन चीजों का पता लगाने और व्याख्या शामिल है. 51 00:03:13,600 --> 00:03:19,560 >> अब कोई और अधिक लोगों के बाद से वहाँ बल्कि संभावना है जो कोई और सवाल, वहाँ रहे हैं, 52 00:03:19,560 --> 00:03:24,620 हम यहाँ अपने अगले पृष्ठ पर जाना होगा. 53 00:03:24,620 --> 00:03:29,170 >> मैं बॉर्न खोल प्रारंभिक खोल है कि पहले कहा. 54 00:03:29,170 --> 00:03:31,550 दूसरों रहे हैं. 55 00:03:31,550 --> 00:03:34,520 एक सी खोल रहा है. आदेश सीएसएच है. 56 00:03:34,520 --> 00:03:36,830 नाम सी खोल शब्द पर सिर्फ एक नाटक है. 57 00:03:36,830 --> 00:03:41,260 इस खोल के मध्य 1970 के दशक में बर्कले यूनिक्स के साथ पेश किया गया था. 58 00:03:41,260 --> 00:03:44,830 बर्कले यूनिक्स यूनिक्स के विकास में एक लाभदायक घटना थी. 59 00:03:44,830 --> 00:03:48,770 यह एक बड़ी क्रांति थी और यह शंख की शुरूआत भी शामिल थे. 60 00:03:48,770 --> 00:03:50,790 शब्दों पर कि खेलने के लिए कारण, सी खोल, 61 00:03:50,790 --> 00:03:56,490 , सी खोल सी भाषा के समान है जो उस में कुछ विशेषताएं हैं कि है 62 00:03:56,490 --> 00:03:59,740 जो बॉर्न खोल नहीं है - 63 00:03:59,740 --> 00:04:02,140 या यह है कि समय पर नहीं था. 64 00:04:02,140 --> 00:04:05,190 टीसी खोल भी है. 65 00:04:05,190 --> 00:04:07,360 यह सी खोल के एक superset है. 66 00:04:07,360 --> 00:04:11,470 यह इंटरैक्टिव उपयोग के लिए उपयोगी होते हैं, जिनमें से कई अतिरिक्त सुविधाओं है, 67 00:04:11,470 --> 00:04:16,050 इस तरह, इतिहास तंत्र में आदेशों को वापस बुलाने के रूप में 68 00:04:16,050 --> 00:04:18,459 मैं कुछ बाद में वर्णन करेंगे जो - 69 00:04:18,459 --> 00:04:23,120 एक सरल तरीके से, एक संपादक के बाद मॉडलिंग की. 70 00:04:23,120 --> 00:04:29,170 यह भी आप एक लंबे समय तक आदेश के लिए एक छोटी प्रमुख स्ट्रिंग बाध्य करने के लिए अनुमति देते हैं, जो बंधनों है. 71 00:04:29,170 --> 00:04:31,440 हम आज उस में हो रही हो नहीं जा रहे हैं. 72 00:04:31,440 --> 00:04:33,650 यह प्रोग्रामिंग के लिए उपयोगी होते हैं कि कुछ विशेषताएं है. 73 00:04:33,650 --> 00:04:37,020 हालांकि, सी खोल अक्सर खोल प्रोग्रामिंग के लिए उपयोग नहीं किया है. 74 00:04:37,020 --> 00:04:39,080 शैल कार्यक्रमों, आप पहले से ही पता नहीं था, 75 00:04:39,080 --> 00:04:41,690 खोल विशेषताओं से मिलकर कार्यक्रम कर रहे हैं. 76 00:04:41,690 --> 00:04:43,220 आप कार्यक्रमों के रूप में इन चला सकता है. 77 00:04:43,220 --> 00:04:46,760 आप एक फाइल में खोल आदेशों का एक गुच्छा लिखने और फ़ाइल निष्पादित. 78 00:04:46,760 --> 00:04:49,760 आप यह संकलन करने की जरूरत नहीं है. यह एक व्याख्यात्मक भाषा है. 79 00:04:49,760 --> 00:04:57,320 यह मूल सी खोल, सीएसएच को ही उल्लेख हो सकता है के बाद से वाक्यांश सी खोल, अब अस्पष्ट है 80 00:04:57,320 --> 00:05:01,200 या tcsh सहित सभी सी गोले, करने के लिए. यह थोड़ा अस्पष्ट है. 81 00:05:01,200 --> 00:05:08,250 >> एक बाद में खोल प्रोग्रामर के नाम पर रखा कॉर्न खोल, KSH, कॉर्न है. 82 00:05:08,250 --> 00:05:14,160 इस खोल 1 खोल में शामिल करने का प्रयास किया 83 00:05:14,160 --> 00:05:16,960 इंटरैक्टिव उपयोग के लिए सी खोल के फायदे 84 00:05:16,960 --> 00:05:19,230 और बॉर्न प्रोग्रामिंग के लिए खोल. 85 00:05:19,230 --> 00:05:25,440 एक अल्पसंख्यक - यह कुछ लोगों द्वारा एक इंटरैक्टिव खोल के रूप में इस्तेमाल किया गया है. 86 00:05:25,440 --> 00:05:32,050 बाद में हालांकि, एक और परिचय वहाँ था, पार्टी की योजना बनाई खोल, मार, 87 00:05:32,050 --> 00:05:35,290 फिर शब्दों पर एक नाटक, बॉर्न फिर से खोल. 88 00:05:35,290 --> 00:05:43,830 यह बॉर्न शैल का एक विस्तार है. कॉर्न खोल भी है. उन दोनों हैं. 89 00:05:43,830 --> 00:05:48,100 यह मिलाकर की कॉर्न खोल का एक ही उद्देश्य है सी खोल के 90 00:05:48,100 --> 00:05:50,980 1 खोल में और बॉर्न खोल के फायदे. 91 00:05:50,980 --> 00:05:56,810 कॉर्न खोल के संवर्द्धन के कई लोग भी बैश में शामिल किए गए हैं. 92 00:05:56,810 --> 00:06:00,710 पार्टी की योजना बनाई है, तथापि, अधिक है और इसलिए बेहतर है. 93 00:06:00,710 --> 00:06:05,180 बॉर्न फिर से खोल और कॉर्न खोल बॉर्न प्रकार के गोले कहा जाता है 94 00:06:05,180 --> 00:06:07,730 वे बॉर्न शैल की विशेषताओं में शामिल है क्योंकि, 95 00:06:07,730 --> 00:06:11,180 सी गोले के साथ कुछ मामलों में असंगत हैं जो. 96 00:06:11,180 --> 00:06:15,520 उन, कुछ प्रतिबंधित उपयोग के लिए इरादा अलावा अन्य गोले, कर रहे हैं 97 00:06:15,520 --> 00:06:20,670 शायद कुछ आदेशों तक ही सीमित है, शायद विशेष उद्देश्यों, अक्सर इस्तेमाल नहीं किया. 98 00:06:20,670 --> 00:06:24,240 >> ठीक है. यहाँ अगले आइटम. 99 00:06:31,300 --> 00:06:38,970 पार्टी की योजना बनाई खोल लिनक्स के विभिन्न रूपों के साथ जुड़े बन गया है. 100 00:06:38,970 --> 00:06:41,550 मुझे लगता है कि हर रूप का सच है, तो यकीन नहीं है. 101 00:06:41,550 --> 00:06:43,280 वहाँ कई रूपों वहाँ से बाहर हैं और मैं उन सब का उपयोग नहीं किया 102 00:06:43,280 --> 00:06:46,870 लेकिन मैं का इस्तेमाल किया है कि उन में यह इसके साथ जुड़े बन गया है. 103 00:06:46,870 --> 00:06:49,670 अब तक मुझे पता है, बैश के बारे में कुछ भी नहीं है 104 00:06:49,670 --> 00:06:52,210 लिनक्स के साथ यह किसी भी अधिक संगत जो बनाता है 105 00:06:52,210 --> 00:06:55,020 खोल और ऑपरेटिंग सिस्टम के किसी भी अन्य संयोजन से. 106 00:06:55,020 --> 00:06:59,690 मैं यह शायद सिर्फ प्रोग्रामर के हठ को दर्शाता है लगता है. 107 00:06:59,690 --> 00:07:07,500 यह लिनक्स के साथ जुड़े बन गया है ksh को मार पसंद करते हैं के लिए एक और कारण यह है कि 108 00:07:07,500 --> 00:07:11,820 बातें उस में लिखा होने की संभावना है और यह फैल जाने की संभावना है के बाद से. 109 00:07:11,820 --> 00:07:15,410 मैं आप बाद में उस के लिए अन्य कारणों दे दूँगा. 110 00:07:15,410 --> 00:07:21,330 बॉर्न खोल लिपियों कॉर्न खोल या बैश के अंतर्गत चलाना चाहिए. 111 00:07:21,330 --> 00:07:22,650 आप बॉर्न शैल के लिए कुछ लिखते हैं, 112 00:07:22,650 --> 00:07:26,180 आप शायद KSH या पार्टी की योजना बनाई तहत इसे लागू कर सकते हैं. 113 00:07:26,180 --> 00:07:30,610 कॉर्न खोल स्क्रिप्ट शायद बैश के तहत चलेगा, लेकिन मुझे लगता है कि गारंटी नहीं दे सकता. 114 00:07:30,610 --> 00:07:36,040 बाद में यहाँ, सी खोल स्क्रिप्ट टीसी खोल के अंतर्गत चलाना चाहिए. 115 00:07:38,850 --> 00:07:41,690 सी खोल वास्तव में बड़े पैमाने पर पटकथा के लिए इस्तेमाल कभी नहीं किया गया था 116 00:07:41,690 --> 00:07:48,110 बॉर्न शैल और बाद में बॉर्न प्रकार के गोले उस प्रयोजन के लिए बेहतर थे. 117 00:07:48,110 --> 00:07:50,620 इसलिए कि सच है कि सभी महत्वपूर्ण नहीं है. 118 00:07:50,620 --> 00:07:53,480 कुछ समय पहले लिखा गया था जो बॉर्न खोल लिपियों का काफी नहीं हैं, 119 00:07:53,480 --> 00:07:56,860 कॉर्न खोल या बॉर्न फिर से खोल से पहले शुरू किए गए थे. 120 00:07:56,860 --> 00:07:59,300 वे, अभी भी प्रयोग में ऑपरेटिंग सिस्टम का हिस्सा हैं, 121 00:07:59,300 --> 00:08:01,590 आप ऑपरेटिंग सिस्टम पर गौर और अगर ऐसा है तो आप उन्हें मिल जाएगा 122 00:08:01,590 --> 00:08:03,760 या कुछ पुराने प्रोग्रामिंग संकुल. 123 00:08:03,760 --> 00:08:12,840 >> बैश ऑपरेटिंग सिस्टम के लिए सामान्य भाषा का एक प्रकार बनने के कुछ हद तक है. 124 00:08:12,840 --> 00:08:17,580 यह पहले से ही विंडोज के लिए और वीएमएस के लिए बढ़ा दिया गया है. 125 00:08:17,580 --> 00:08:20,440 वीएमएस, आप नहीं जानते कि मामले में, एक स्वामित्व ऑपरेटिंग सिस्टम है 126 00:08:20,440 --> 00:08:25,480 मोटे तौर पर पर्दे के पीछे, अभी भी प्रयोग में है जो डिजिटल उपकरण निगम की. 127 00:08:25,480 --> 00:08:29,250 और यह कई अलग ऑपरेटिंग सिस्टम पर चल रहे हो जा रहा है, 128 00:08:29,250 --> 00:08:31,110 संभावना लोगों को इसके लिए शिफ्ट करने के लिए करते हैं. 129 00:08:31,110 --> 00:08:33,840 लेकिन इस विकास अपेक्षाकृत हाल है. 130 00:08:33,840 --> 00:08:39,490 यह सिर्फ शुरुआत है, तो यह वास्तव में लोकभाषा के उस तरह होने के लिए बाहर हो जाएगा अगर मैं भविष्यवाणी नहीं कर सकते. 131 00:08:39,490 --> 00:08:43,539 इसके अलावा, फ़ाइल pathnames और पुस्तकालयों अलग है क्योंकि 132 00:08:43,539 --> 00:08:46,210 इन अलग ऑपरेटिंग सिस्टम के बीच, 133 00:08:46,210 --> 00:08:50,250 आप एक ऑपरेटिंग सिस्टम पर एक पार्टी की योजना बनाई स्क्रिप्ट लिखने में सक्षम नहीं हो सकता है 134 00:08:50,250 --> 00:08:51,840 और फिर एक दूसरे पर चला रहे हैं. 135 00:08:51,840 --> 00:08:54,440 आप अलग यूनिक्स, लिनक्स के बीच स्थानांतरित करने के लिए सक्षम होना चाहिए 136 00:08:54,440 --> 00:08:59,020 मैक ओएस ऑपरेटिंग सिस्टम, लेकिन जरूरी नहीं कि विंडोज या वीएमएस के लिए. 137 00:08:59,020 --> 00:09:01,390 आप फ़ाइल पथ वर्णन बदलने के लिए हो सकता है, 138 00:09:01,390 --> 00:09:03,180 और कुछ पुस्तकालयों अलग हो सकता है, 139 00:09:03,180 --> 00:09:05,230 कुछ कमांड का काम है कि जिस तरह से प्रभावित कर सकता है जो 140 00:09:05,230 --> 00:09:09,730 या कैसे वे तर्क और तरह की प्रक्रिया. 141 00:09:09,730 --> 00:09:19,230 इसके अलावा, यहां एक और सावधानी कोई गारंटी नहीं है कि है 142 00:09:19,230 --> 00:09:23,570 कि मैंने उल्लेख किया है सब अलग अलग गोले - बॉर्न शैल, सी खोल, 143 00:09:23,570 --> 00:09:29,880 टीसी खोल, कॉर्न खोल बॉर्न फिर से खोल - किसी भी यूनिक्स के तहत उपलब्ध होगी 144 00:09:29,880 --> 00:09:33,750 या लिनक्स या मैक ओएस कंप्यूटर. 145 00:09:33,750 --> 00:09:35,620 वे सिर्फ वहाँ नहीं हो सकता है. 146 00:09:35,620 --> 00:09:38,300 यही कारण है कि यहां चेताते में से एक है. 147 00:09:38,300 --> 00:09:41,490 आप चीजों को हर जगह काम करना चाहते हैं, क्योंकि यह यहाँ एक दुर्भाग्यपूर्ण सीमा है 148 00:09:41,490 --> 00:09:44,380 लेकिन दुर्भाग्य से, आप उस पर भरोसा नहीं कर सकते. 149 00:09:44,380 --> 00:09:47,230 >> ठीक है. यहाँ अगले एक. 150 00:09:50,280 --> 00:09:54,370 मान लीजिए कि आप एक खोल स्क्रिप्ट लिखने के लिए चाहते हैं कि हम कहते हैं, 151 00:09:54,370 --> 00:09:57,170 खोल आदेशों से मिलकर कार्यक्रम. 152 00:09:57,170 --> 00:10:01,200 आप अपने लेखन के आदेश को एक फाइल में डाल दिया, और फ़ाइल निष्पादित. 153 00:10:01,200 --> 00:10:04,230 क्या आप तर्क शामिल करना चाहते हैं? 154 00:10:04,230 --> 00:10:09,650 खोल के संचालन के मामले में तर्क मापदंडों या स्थितीय पैरामीटर कहा जाता है 155 00:10:09,650 --> 00:10:15,940 और वे एक डॉलर के हस्ताक्षर और अंक, $ 1, $ 2 से बुलाया जाएगा. 156 00:10:15,940 --> 00:10:27,000 स्क्रिप्ट इस नाम है तो, अगर मेरे पहले तर्क तर्क 1 हो सकता है 157 00:10:27,000 --> 00:10:30,540 और मेरा दूसरा, तर्क 2 हो सकता है 158 00:10:30,540 --> 00:10:34,110 और मेरी स्क्रिप्ट के अंदर मैं इन बातों का उल्लेख करना चाहते हैं - 159 00:10:34,110 --> 00:10:36,810 मैं वास्तव में इसे चलाने के लिए नहीं जा रहा हूँ के बाद के इस मिटा देना - 160 00:10:36,810 --> 00:10:42,160 मेरी स्क्रिप्ट के अंदर मैं arg1 का उल्लेख करने के लिए $ 1 हो सकता है, 161 00:10:42,160 --> 00:10:45,890 इस तरह, arg2 बाहर आ जाएगा जो $ 2,. 162 00:10:45,890 --> 00:10:50,080 तो उन प्रतीकों तर्कों का उल्लेख करने के लिए उपलब्ध हैं, 163 00:10:50,080 --> 00:10:52,390 और उन के गोले के सभी पर लागू होते हैं. 164 00:10:52,390 --> 00:10:56,520 इसके अलावा, अन्य अक्षर हैं. 165 00:10:56,520 --> 00:11:01,700 $ * पूरे तर्क सूची, उन सभी को दर्शाता है. 166 00:11:01,700 --> 00:11:05,390 $ # तर्कों की संख्या को दर्शाता है. 167 00:11:05,390 --> 00:11:07,910 फिर, यह सब गोले पर लागू होता है. 168 00:11:07,910 --> 00:11:15,540 उन प्रतीकों, * और #, भी अन्य स्थानों में उन अर्थ के साथ इस्तेमाल किया जा सकता है. 169 00:11:15,540 --> 00:11:17,940 हम उस में नहीं हो रही है. 170 00:11:17,940 --> 00:11:20,460 >> शैल विनिर्देशक लाइन. के लिए वह क्या है? 171 00:11:20,460 --> 00:11:27,760 मान लीजिए कि आप एक पटकथा लिखी है और यह एक विशेष खोल के लिए हम कहते हैं और आप इसे चलाना चाहते हैं. 172 00:11:27,760 --> 00:11:33,500 कैसे आप अपने ऑपरेटिंग सिस्टम अपनी स्क्रिप्ट को चलाने के लिए इस्तेमाल करेगा खोल क्या जानते हो? 173 00:11:33,500 --> 00:11:37,230 एक बिंदु पर आपको यह बॉर्न खोल में यह चला जाएगा कि मान सकता है 174 00:11:37,230 --> 00:11:39,440 तुम नहीं तो नहीं कहा, तो 175 00:11:39,440 --> 00:11:41,730 लेकिन लोगों को अब बॉर्न में लिपियों कि ज्यादा खोल नहीं लिख रहे हैं 176 00:11:41,730 --> 00:11:43,750 और तुम भी अब उस पर भरोसा नहीं कर सकते. 177 00:11:43,750 --> 00:11:48,740 यहाँ तो हम यहीं एक खोल विनिर्देशक लाइन है. 178 00:11:48,740 --> 00:11:52,450 यही बैश निर्दिष्ट करता है. 179 00:11:52,450 --> 00:11:56,750 यह पथ, / बिन / पार्टी की योजना बनाई में यह निर्दिष्ट करता है कि ध्यान दें. 180 00:11:56,750 --> 00:12:02,870 एक कंप्यूटर मार खोल दिया है, लेकिन बिन निर्देशिका में, / बिन, यह काम नहीं करेगा नहीं. 181 00:12:02,870 --> 00:12:06,870 यही कारण है कि यहां एक और पात्रता, एक और सावधानी है. 182 00:12:06,870 --> 00:12:09,500 पाउंड चिह्न टिप्पणी लाइन चरित्र है. 183 00:12:09,500 --> 00:12:12,300 यही सब गोले पर लागू होता है. 184 00:12:12,300 --> 00:12:18,610 यहां विशेष मामले, #! एक स्क्रिप्ट की शुरुआत में, एक विशेष मामला है. 185 00:12:18,610 --> 00:12:23,410 उस स्क्रिप्ट को चलाने के लिए जो में खोल निर्दिष्ट करता है. 186 00:12:23,410 --> 00:12:30,230 मैं कह रहा था, यह वही जगह / बिन नहीं हो सकता है. 187 00:12:30,230 --> 00:12:34,880 इसके अलावा, यहां एक और बात है. 188 00:12:34,880 --> 00:12:41,250 आप अभी कोई विस्मयादिबोधक बिंदु और pathname साथ पाउंड चिह्न का उपयोग करते हैं, 189 00:12:41,250 --> 00:12:44,640 कि एक सी खोल संकेत चाहिए. 190 00:12:44,640 --> 00:12:48,300 मैं गारंटी करने में सक्षम नहीं हूँ क्योंकि हालांकि, मुझे लगता है कि कर की सिफारिश नहीं है 191 00:12:48,300 --> 00:12:49,750 कि हमेशा काम करेंगे. 192 00:12:49,750 --> 00:12:52,220 आप एक सी खोल चाहते हैं, यह तो कहना बेहतर होगा. 193 00:12:52,220 --> 00:12:58,450 यहाँ तो नहीं बल्कि भ्रामक कुछ है. 194 00:12:58,450 --> 00:13:03,940 आप ऐसी / बिन / मार के रूप में एक खोल विनिर्देशक लाइन का उपयोग करते हैं 195 00:13:03,940 --> 00:13:07,070 और उस खोल, वहाँ उपलब्ध नहीं है 196 00:13:07,070 --> 00:13:10,680 उस विशेष कंप्यूटर पर / बिन / मार के रूप में ऐसी कोई बात नहीं, वहाँ है 197 00:13:10,680 --> 00:13:14,330 या तो यह एक अलग स्थान में है क्योंकि यह पार्टी की योजना बनाई है या नहीं है क्योंकि, 198 00:13:14,330 --> 00:13:17,450 क्या आप भागा स्क्रिप्ट मौजूद नहीं है कि आप कह रही त्रुटि मिल जाएगा. 199 00:13:17,450 --> 00:13:21,510 और हां अपनी स्क्रिप्ट मौजूद है, तो त्रुटि संदेश है कि भ्रामक है. 200 00:13:21,510 --> 00:13:24,810 ऑपरेटिंग सिस्टम आप उस त्रुटि देता है कि कारण 201 00:13:24,810 --> 00:13:28,370 या, और अधिक सही, आप इस चला रहे हैं, जिसमें अपने इंटरैक्टिव खोल कि त्रुटि देता है, 202 00:13:28,370 --> 00:13:33,510 यह स्क्रिप्ट का नाम है जो आप कमांड, रिपोर्ट है कि है. 203 00:13:33,510 --> 00:13:36,920 उस आदेश को प्रभावी ढंग से स्क्रिप्ट के नाम से खोल बुलाया. 204 00:13:36,920 --> 00:13:39,330 आपको लगता है कि भ्रामक त्रुटि संदेश मिलता है कि जहां. 205 00:13:39,330 --> 00:13:42,980 खोल स्क्रिप्ट कॉल करने के लिए एक और रास्ता 206 00:13:42,980 --> 00:13:45,910 यहाँ के रूप में, कमांड लाइन पर खोल निर्दिष्ट द्वारा है. 207 00:13:45,910 --> 00:13:52,510 यह एक आदेश है. इस बैश चलाने के लिए और फिर बैश में मेरी स्क्रिप्ट चलाने कहते हैं. 208 00:13:52,510 --> 00:13:55,680 यह एक विनिर्देशक लाइन पर पूर्वता ले जाएगा, 209 00:13:55,680 --> 00:14:02,090 और यह आपको अलग pathnames के लिए उपलब्ध कराने की अनुमति की सुविधा है. 210 00:14:02,090 --> 00:14:04,840 आप सिर्फ एक आदेश देती है तो ऑपरेटिंग सिस्टम है कि आदेश के लिए दिखेगा 211 00:14:04,840 --> 00:14:06,410 विभिन्न स्थानों में. 212 00:14:06,410 --> 00:14:08,820 यह उपलब्ध है, तो यह है कि यह पता लगाना चाहिए. 213 00:14:08,820 --> 00:14:12,290 कंप्यूटर यह स्थित है जहाँ भी मार पाते हैं और यह चलेगा, 214 00:14:12,290 --> 00:14:15,470 तो आप यह पाता है, जहां के बारे में चिंतित होने की तो जरूरत नहीं है. 215 00:14:15,470 --> 00:14:17,360 संभवतः दूसरे की चिंताओं, यहाँ कर रहे हैं 216 00:14:17,360 --> 00:14:20,830 संभावना नहीं है हालांकि संभव है जो पार्टी की योजना बनाई, अधिक से अधिक 1 संस्करण है कि अगर वहाँ के रूप में. 217 00:14:20,830 --> 00:14:23,540 तो यह है कि इन चीजों के साथ सौदा करने के लिए एक और तरीका है. 218 00:14:23,540 --> 00:14:30,480 विनिर्देशक लाइनों किसी भी खोल कॉल कर सकते हैं. 219 00:14:30,480 --> 00:14:34,480 उन्होंने यह भी गोले के अलावा अन्य चीजों कॉल कर सकते हैं. 220 00:14:34,480 --> 00:14:37,940 मैं यहाँ उदाहरण धारा संपादक है, जो sed कर रहे हैं; 221 00:14:37,940 --> 00:14:39,900 ऑक, जो एक पैटर्न प्रसंस्करण भाषा है; 222 00:14:39,900 --> 00:14:43,680 और पर्ल, एक बहुत ही उच्च विकसित स्क्रिप्टिंग भाषा. 223 00:14:43,680 --> 00:14:47,570 आप शुरुआत में उन कार्यक्रमों में से एक का संकेत विनिर्देशक लाइन डाल, 224 00:14:47,570 --> 00:14:51,270 यह है कि कार्यक्रम में सीधे जाने के बजाय एक शेल आरंभ होगा. 225 00:14:51,270 --> 00:14:54,030 उन कार्यक्रमों को उनकी क्षमता के लिए सीमा है. 226 00:14:54,030 --> 00:14:58,790 पर्ल बहुत ही सक्षम है. Sed एक संपादक है. यह बस संपादन परे बातें कर सकते हैं. 227 00:14:58,790 --> 00:15:03,300 लेकिन यह है कि कार्यक्रम के लिए मुश्किल हो सकता है. 228 00:15:03,300 --> 00:15:09,670 इसके अलावा, स्क्रिप्ट के लिए तर्क और सामान गुजर असंभव या भ्रामक या तो है. 229 00:15:09,670 --> 00:15:15,030 तो उन मामलों में, ऑक या sed के साथ, यह, कम से कम मेरे अनुभव में, है 230 00:15:15,030 --> 00:15:18,910 एक खोल स्क्रिप्ट और कॉल ऑक लिखने के लिए बेहतर या खोल स्क्रिप्ट से sed 231 00:15:18,910 --> 00:15:24,660 बल्कि ऑक बुला या स्क्रिप्ट विनिर्देशक लाइन के रूप में sed से. 232 00:15:24,660 --> 00:15:26,980 जैसा कि मैंने कहा पर्ल, एक उच्च विविध भाषा है. 233 00:15:26,980 --> 00:15:30,050 आप पर्ल में इंटरैक्टिव कमांड चलाने नहीं कर सकते हैं, 234 00:15:30,050 --> 00:15:32,660 जो आप आप विकसित कर रहे हैं कि लिपियों के कुछ हिस्सों परीक्षण नहीं कर सकता कि इसका मतलब 235 00:15:32,660 --> 00:15:33,970 अंतःक्रियात्मक उन्हें चलाकर. 236 00:15:33,970 --> 00:15:36,160 हालांकि, यह एक बेहद सक्षम भाषा है 237 00:15:36,160 --> 00:15:40,960 और एक बहुत ही व्यापक रूप से इस्तेमाल उपकरण के रूप में विकसित किया गया है. 238 00:15:40,960 --> 00:15:45,720 वह सिर्फ विनिर्देशक लाइनों के बारे में एक प्रारंभिक टिप्पणी का एक छोटा सा है. 239 00:15:45,720 --> 00:15:50,610 >> सभी या लिनक्स के अधिकांश रूपों में - फिर से, मैं वह सब है कुछ नहीं किया जा सकता है - 240 00:15:50,610 --> 00:15:57,900 आप सीएसएच लिखते हैं और मैक ओएस में, आप, tcsh मिल 241 00:15:57,900 --> 00:16:00,570 और आप लिखते हैं, तो आप पार्टी की योजना बनाई मिल श. 242 00:16:00,570 --> 00:16:05,020 वे तुम्हें इन गोले का अधिक उन्नत संस्करण देने के लिए वहाँ की कोशिश कर रहे थे, 243 00:16:05,020 --> 00:16:07,940 लेकिन यह भ्रमित किया जा सकता है. 244 00:16:07,940 --> 00:16:16,720 आप tcsh उपयोग कर एक स्क्रिप्ट लिखने या बुला जबकि बैश सुविधाएँ हैं सीएसएच या श 245 00:16:16,720 --> 00:16:22,230 और फिर, tcsh या मार नहीं है जो एक कंप्यूटर पर चलाने के लिए प्रयास 246 00:16:22,230 --> 00:16:25,050 आदेशों वहाँ में कर रहे हैं अगर आप कुछ त्रुटियाँ हो सकती है 247 00:16:25,050 --> 00:16:27,970 जो उन गोले पहचान नहीं है. 248 00:16:27,970 --> 00:16:34,120 इसके अलावा, आप अपने स्थानीय कंप्यूटर पर अपने खोल फोन किया हो सकता है 249 00:16:34,120 --> 00:16:37,700 श या सीएसएच के रूप में यह फोन और तो और अधिक उन्नत गोले हो रही है. 250 00:16:37,700 --> 00:16:41,440 तुम भी आप और अधिक उन्नत खोल का उपयोग कर रहे हैं कि इस तथ्य के बारे में सोच नहीं सकता. 251 00:16:41,440 --> 00:16:45,670 तो यह एक संभावित ख़तरा है. 252 00:16:45,670 --> 00:16:50,290 कैसे यह आप श टाइप अगर आप पार्टी की योजना बनाई है कि मिल की स्थापना की है 253 00:16:50,290 --> 00:16:55,580 आप सीएसएच लिखें अगर आप tsch मिलता है? 254 00:16:55,580 --> 00:16:59,940 लिंक कहा जाता है कि इन कंप्यूटरों में बातें कर रहे हैं 255 00:16:59,940 --> 00:17:06,460 जो एक ही बात का उल्लेख करने के नाम दर्ज करने के लिए कनेक्ट कर सकते हैं. 256 00:17:06,460 --> 00:17:12,180 यह या तो एक ही फाइल या जिसका उद्देश्य एक और फाइल का उल्लेख करने के लिए है एक फ़ाइल के लिए 2 के नाम हो सकते हैं. 257 00:17:12,180 --> 00:17:17,550 वे कड़ी मेहनत और प्रतीकात्मक लिंक कर रहे हैं बुलाया. हम आज लगता है कि अब में जा नहीं होगा. 258 00:17:17,550 --> 00:17:21,619 1 फ़ाइल श, 1 फ़ाइल की मार - - भी अलग फ़ाइलें हो सकती हैं 259 00:17:21,619 --> 00:17:23,880 लेकिन वे दोनों बैश चलाते हैं. 260 00:17:23,880 --> 00:17:29,350 फिर एक और क्वालीफायर यहाँ नहीं है. 261 00:17:29,350 --> 00:17:42,640 आप एक नाम से इन गोले से एक बुला रहे हैं, 262 00:17:42,640 --> 00:17:46,640 यदि आप किसी अन्य नाम से यह फोन के रूप में एक ही कार्यक्षमता मिलता था सोच सकते हैं. 263 00:17:46,640 --> 00:17:49,700 वैसे, यह वास्तव में जरूरी है कि सच नहीं है. 264 00:17:49,700 --> 00:17:55,020 इन आदेशों में वे कहते थे जिसके द्वारा नाम की जांच कर सकते हैं 265 00:17:55,020 --> 00:18:00,020 और वे उस नाम के आधार पर अलग ढंग से व्यवहार कर सकते हैं. 266 00:18:00,020 --> 00:18:02,740 एक मानक के अनुरूप करने की कोशिश कर के मुद्दों हो सकता है. 267 00:18:02,740 --> 00:18:06,060 आप में से कुछ POSIX मानक या किसी अन्य के बारे में सुना हो सकता है, 268 00:18:06,060 --> 00:18:08,730 शायद अन्य सुविधाओं. 269 00:18:08,730 --> 00:18:14,520 यह कमांड लाइन तर्क से कभी कभी चुना जा सकता है 270 00:18:14,520 --> 00:18:17,310 या खोल चर सेट करके. 271 00:18:17,310 --> 00:18:22,170 श या बैश के रूप में यह फोन वास्तव में एक अलग निष्पादन करने के लिए नेतृत्व कर सकते हैं 272 00:18:22,170 --> 00:18:25,300 यह आप को क्रियान्वित कर रहे हैं कि एक ही फाइल है, भले ही. 273 00:18:25,300 --> 00:18:31,800 विचार करने के लिए एक और बात है, एक और कंप्यूटर भी अगर tcsh या पार्टी की योजना बनाई है कि है 274 00:18:31,800 --> 00:18:35,310 वे अपने स्थानीय कंप्यूटर पर कर रहे हैं के रूप में वे नहीं जुड़े हुए हैं, तो 275 00:18:35,310 --> 00:18:37,990 आप एक लिनक्स या मैक ओएस स्थानीय कंप्यूटर है, 276 00:18:37,990 --> 00:18:45,630 तो फिर आप आप श या सीएसएच कि कॉल के खोल, नहीं आप पसंद कर सकते हैं कि एक मिल जाएगा. 277 00:18:50,430 --> 00:19:01,130 वर्तमान बॉर्न शैल कम बैश में उन लोगों की तुलना संवर्द्धन है 278 00:19:01,130 --> 00:19:06,100 लेकिन मूल बॉर्न खोल में उन पिछले. 279 00:19:06,100 --> 00:19:09,690 इस बात का एक परिणाम के रूप में, यहां तक ​​कि वर्तमान बॉर्न शैल, श, 280 00:19:09,690 --> 00:19:14,560 यह मार नहीं है, तब भी जब सी खोल करता है सी भाषा अधिक जैसा दिखता है. 281 00:19:14,560 --> 00:19:20,460 कि सी खोल पहले बनाया गया था जब सच नहीं था, लेकिन यह उस तरह से विकसित किया गया है. 282 00:19:20,460 --> 00:19:26,560 आप यहाँ नोटिस सकता है कि बॉर्न खोल के लिए छोड़कर इन सभी खोल के नाम 283 00:19:26,560 --> 00:19:30,640 सीएसएच, मार - - वे कर रहे हैं जो खोल इंगित करने के लिए कुछ है 284 00:19:30,640 --> 00:19:32,550 लेकिन बॉर्न खोल सिर्फ श है. 285 00:19:32,550 --> 00:19:34,910 क्यों? यही मूल खोल था. 286 00:19:34,910 --> 00:19:37,770 यह तो खोल नहीं, एक खोल रहा था 287 00:19:37,770 --> 00:19:41,090 यह खोल रहा था के बाद से और, एक और खोल से अलग करने का कोई कारण नहीं था. 288 00:19:41,090 --> 00:19:45,030 यह है कि नाम है और अभी भी करता है तो इसलिए. 289 00:19:50,630 --> 00:19:58,990 >> यहाँ यह शीर्ष मैं वहाँ है एक खाते के लिए एक पासवर्ड डेटाबेस से एक रेखा है 290 00:19:58,990 --> 00:20:01,680 एक अन्य कंप्यूटर पर. 291 00:20:01,680 --> 00:20:08,300 मैं तुम, अंत में खोल वह हिस्सा देख सकते हैं कि नाम पाने के लिए प्रयास करने के लिए जा रहा हूँ. 292 00:20:09,720 --> 00:20:15,450 पासवर्ड डेटाबेस सभी उपयोगकर्ताओं के लिए लॉगिन विशेषताओं रखती है. 293 00:20:15,450 --> 00:20:20,330 शुरुआत में आप अब मेरा पिछले 2 पत्र देख सकते हैं जो उपयोगकर्ता नाम, है. 294 00:20:20,330 --> 00:20:23,970 यहां के खेतों कॉलन से अलग हो रहे हैं. 295 00:20:23,970 --> 00:20:28,210 पिछले क्षेत्र, आप देख सकते हैं, बिन / tcsh, खोल रहा है. 296 00:20:28,210 --> 00:20:30,230 यही खोल विनिर्देशक है. 297 00:20:30,230 --> 00:20:33,240 यहाँ कुछ दिलचस्प नहीं है. 298 00:20:33,240 --> 00:20:36,950 यूनिक्स पहले विकसित किया गया था, केवल 1 खोल नहीं थी, 299 00:20:36,950 --> 00:20:38,350 तो वहाँ कोई विकल्प नहीं था. 300 00:20:38,350 --> 00:20:45,570 तो क्यों वे पासवर्ड डेटाबेस में एक क्षेत्र एक खोल निर्दिष्ट करने की अनुमति क्यों किया? 301 00:20:45,570 --> 00:20:47,920 मुझे नहीं पता, लेकिन यह है कि वे किया भाग्यशाली है. 302 00:20:47,920 --> 00:20:52,030 यह पासवर्ड डेटाबेस प्रारूप में परिवर्तन करने के लिए नहीं बल्कि मुश्किल है 303 00:20:52,030 --> 00:20:54,420 कई कार्यक्रमों के अपने स्वरूप का संदर्भ लें क्योंकि 304 00:20:54,420 --> 00:20:57,720 और फिर से लिखा जाना होगा. 305 00:20:57,720 --> 00:21:04,130 यह है कि वे उस क्षेत्र शामिल है कि एक परम सुखी या आकस्मिक विकास है. 306 00:21:04,130 --> 00:21:12,780 एक पासवर्ड फ़ाइल रेखा के उस तरह के अब तक मुझे पता है के रूप में सभी यूनिक्स और लिनक्स कंप्यूटर पर प्रयोग किया जाता है. 307 00:21:12,780 --> 00:21:14,650 मैक अपनी प्रणाली है. 308 00:21:14,650 --> 00:21:17,810 यह वास्तव में उस प्रारूप में लाइनों के साथ एक पासवर्ड फ़ाइल है 309 00:21:17,810 --> 00:21:21,060 उपयोगकर्ता विशेषताओं परिभाषित कर रहे हैं लेकिन वह कहाँ नहीं है. 310 00:21:21,060 --> 00:21:24,200 वहाँ एक प्रारंभिक टिप्पणी. 311 00:21:36,470 --> 00:21:46,020 आप एक खोल बुला रहे हैं >>, आप अपने मौजूदा गोले का एक उप खोल के रूप में फोन कर सकते हैं. 312 00:21:46,020 --> 00:21:50,480 इसलिए मैं यहाँ जाना है, की इन बातों से छुटकारा मिलता है. 313 00:21:50,480 --> 00:21:53,350 यहाँ मैं सी खोल में हूँ. 314 00:21:56,830 --> 00:22:01,200 सही मेरे खोल पहचानती है जो कि चर,, 315 00:22:01,200 --> 00:22:04,300 वास्तव में हमेशा के लिए आप चला रहे हैं खोल क्या निर्धारित करने का एक विश्वसनीय तरीका नहीं है, 316 00:22:04,300 --> 00:22:06,220 लेकिन इस मामले में यह है. 317 00:22:06,220 --> 00:22:08,040 क्या मैं बस प्रकार हैं - 318 00:22:09,970 --> 00:22:12,470 अब मैं पार्टी की योजना बनाई में हूँ. 319 00:22:12,470 --> 00:22:19,540 कुछ चीजें एक ही होने जा रहे हैं. लोकसभा मुझे मेरे आदेशों बताता है. 320 00:22:19,540 --> 00:22:24,500 मैं एक वापस अपनी सी खोल, रास, उसी को निलंबित करते हैं. है ना? 321 00:22:24,500 --> 00:22:28,890 FG, अग्रभूमि, वापस मेरी पार्टी की योजना बनाई खोल लिए. 322 00:22:28,890 --> 00:22:38,290 वापस सी खोल करने के लिए लोक निर्माण विभाग, वर्तमान निर्देशिका,. 323 00:22:38,290 --> 00:22:43,180 लोक निर्माण विभाग, अलग निर्देशिका - इस मामले में वास्तव में नहीं एक अलग निर्देशिका. 324 00:22:43,180 --> 00:22:45,110 यह एक ही निर्देशिका है. 325 00:22:45,110 --> 00:22:50,000 कहते हैं कि मैं यहां एक आदेश कॉल करने के लिए कहना चाहते हैं: जहां LS. 326 00:22:50,000 --> 00:22:52,140 कि क्या करता है? 327 00:22:52,140 --> 00:22:53,670 रास कमान जहां यह मुझसे कहता है 328 00:22:53,670 --> 00:22:56,670 मुझे एक निर्देशिका लिस्टिंग देता है कि एक, रास में स्थित है. 329 00:22:56,670 --> 00:23:01,460 चलो वापस बैश शेल के लिए चलते हैं. एक ही बात करने की कोशिश करते हैं. 330 00:23:01,460 --> 00:23:05,830 हम्म, दिलचस्प वहाँ, जहाँ: आदेश नहीं मिला है. 331 00:23:05,830 --> 00:23:07,400 ऐसा क्यों है? 332 00:23:07,400 --> 00:23:11,570 जहां कमान सी खोल करने के लिए बनाया गया है. 333 00:23:11,570 --> 00:23:15,630 यह कहीं और से स्मृति में पढ़ा है और निष्पादित किया जाना है कि कोई आदेश नहीं है. 334 00:23:15,630 --> 00:23:20,310 सी खोल अपनी आचार संहिता के भाग को निष्पादन के हस्तांतरण से यह रन 335 00:23:20,310 --> 00:23:22,790 और यह पार्टी की योजना बनाई खोल में नहीं है. 336 00:23:22,790 --> 00:23:25,710 इसलिए पार्टी की योजना बनाई, इस तरह के एक अंतर्निहित आदेश नहीं होने, यह, यह पता नहीं चलता है के लिए लग रहा है, 337 00:23:25,710 --> 00:23:27,720 और हम एक त्रुटि मिलती है. 338 00:23:27,720 --> 00:23:32,290 इसलिए हम एक सी खोल के तहत चल रहे एक पार्टी की योजना बनाई खोल दिया है, और हम चाहते हैं कि एक उप खोल कहते हैं. 339 00:23:32,290 --> 00:23:38,480 और सिर्फ आप उत्सुक हैं, के मामले में पार्टी की योजना बनाई खोल आदेशों लगाने का अपना तरीका है. 340 00:23:38,480 --> 00:23:42,590 hashed, यह अधिक तेजी से क्रियान्वित किया जा सकता है कि इस तथ्य को संदर्भित करता है 341 00:23:42,590 --> 00:23:44,960 और अधिक तेजी से पाया जा रहा है. 342 00:23:44,960 --> 00:23:48,610 यही कारण है कि इन गोले के कुछ करने के लिए बनाया संवर्द्धन में से एक है. 343 00:23:50,220 --> 00:23:54,200 >> बॉर्न प्रकार के गोले प्रोग्रामिंग के लिए पसंद कर रहे हैं. 344 00:23:54,200 --> 00:23:57,300 वे, छोरों, सशर्त बयान की तरह नियंत्रण संरचनाओं 345 00:23:57,300 --> 00:24:00,240 आप सी की तरह प्रोग्रामिंग भाषा में उपयोग हो सकता है कि आदेशों की तरह 346 00:24:00,240 --> 00:24:04,190 या जो कुछ भी भाषा. शायद तुम जावा में प्रोग्रामिंग या जो कुछ भी कर रहे हैं. 347 00:24:04,190 --> 00:24:06,460 गोले भी उन है. 348 00:24:06,460 --> 00:24:11,790 बॉर्न प्रकार के गोले, विशेष रूप से पार्टी की योजना बनाई, अधिक है 349 00:24:11,790 --> 00:24:15,730 और वे अधिक से अधिक लचीलेपन के साथ डिजाइन किए हैं. 350 00:24:15,730 --> 00:24:20,700 पार्टी की योजना बनाई खोल सरणियों है. मूल बॉर्न खोल नहीं करता है. 351 00:24:20,700 --> 00:24:26,130 तो यह है कि प्रोग्रामिंग के लिए काफी फायदेमंद हो सकता है. 352 00:24:26,130 --> 00:24:29,810 सी खोल वास्तव में सरणियों है लेकिन इन अन्य सुविधाओं का एक बहुत कुछ नहीं है. 353 00:24:29,810 --> 00:24:33,450 बॉर्न प्रकार के गोले तेजी से क्रियान्वित करेगा 354 00:24:33,450 --> 00:24:36,520 वे इंटरैक्टिव उपयोग के लिए इरादा सुविधाओं की जरूरत नहीं है. 355 00:24:36,520 --> 00:24:39,340 आप एक ही उद्देश्य के लिए नीचे बातें लोड, यह एक और उद्देश्य के लिए उन्हें नीचे लोड करता है. 356 00:24:39,340 --> 00:24:41,520 वहाँ कि व्यापार बंद है. 357 00:24:41,520 --> 00:24:44,510 इंटरैक्टिव उपयोग के लिए इरादा कर रहे हैं जो उन सुविधाओं 358 00:24:44,510 --> 00:24:46,920 वास्तव में पटकथा के लिए बहुत कम या कोई उपयोग नहीं कर रहे हैं. 359 00:24:46,920 --> 00:24:52,160 यह सिर्फ मैं वहाँ शुरू कर एक तरह एक इंटरैक्टिव उप खोल का उपयोग करना संभव है 360 00:24:52,160 --> 00:24:57,780 आप एक स्क्रिप्ट में उपयोग करना चाहते हैं जो आदेश का परीक्षण करने के लिए. 361 00:24:57,780 --> 00:25:01,180 यही कारण है कि आप पर्ल के साथ क्या नहीं कर सकता है. आप के गोले के साथ ऐसा कर सकते हैं. 362 00:25:01,180 --> 00:25:04,850 इसके आगे छोरों और के लिए की तरह भी संरचनाओं चलाने सहभागी हो सकते हैं. 363 00:25:04,850 --> 00:25:07,000 वे सहभागी रूप से चलाने के लिए कभी कभी उपयोगी होते हैं 364 00:25:07,000 --> 00:25:10,180 लेकिन अधिक संभावना है कि आप एक स्क्रिप्ट विकसित करने के लिए उन्हें प्रयोग कर रहे हैं. 365 00:25:15,690 --> 00:25:17,400 >> नामः. 366 00:25:17,400 --> 00:25:21,630 यह सी खोल के बारे में होने जा रहा है. 367 00:25:23,270 --> 00:25:27,570 तुम वापस पहले के आदेशों को मिलता है, जहां इतिहास तंत्र 368 00:25:27,570 --> 00:25:30,340 या आप पहले से ही उनमें से भागों चला है कि. 369 00:25:30,340 --> 00:25:33,680 फिर, सी खोल के बारे में, बॉर्न शैल और कॉर्न खोल, इन बातों है 370 00:25:33,680 --> 00:25:35,620 लेकिन मैं उन में शामिल होने नहीं जा रहा हूँ. 371 00:25:35,620 --> 00:25:40,340 यहाँ तो मुझे लगता है कि कुछ उपयोगी फर्जी नाम हैं. 372 00:25:43,100 --> 00:25:44,880 इसके बजाय रास टाइपिंग की - यह एक आम आदेश है - 373 00:25:44,880 --> 00:25:47,620 सिर्फ एल प्रकार और अपने आप को 1 चरित्र बचा. 374 00:25:47,620 --> 00:25:50,600 विभिन्न विकल्पों के साथ रास, उन सभी काम करते हैं. 375 00:25:50,600 --> 00:25:54,460 उन परिभाषाओं उनके आसपास उद्धरण है कि ध्यान दें. 376 00:25:54,460 --> 00:25:57,520 इन मामलों में, उद्धरण आवश्यक नहीं कर रहे हैं. 377 00:25:57,520 --> 00:26:00,100 आप उद्धरण के बिना उन फर्जी नाम को परिभाषित कर सकते हैं, यह अभी भी काम करेगा. 378 00:26:00,100 --> 00:26:02,910 उन्होंने सिफारिश की है. 379 00:26:02,910 --> 00:26:04,900 आप उद्धरण का उपयोग नहीं कर सकते हैं जो ऐसी परिस्थितियाँ होती हैं 380 00:26:04,900 --> 00:26:08,050 आप भाव को रोका जा सके, जो ऐसा करने के लिए कुछ करना चाहते हैं. 381 00:26:08,050 --> 00:26:11,210 कभी कभी आप परिभाषा का हिस्सा बोली लेकिन नहीं यह सब कर सकते हैं. 382 00:26:11,210 --> 00:26:17,010 यह भी आम तौर पर एक उद्धरण के बजाय डबल उद्धरण का उपयोग करने के लिए सिफारिश की है. 383 00:26:17,010 --> 00:26:19,750 डबल उद्धरण चर परिभाषा पर प्रभाव पड़ता है, 384 00:26:19,750 --> 00:26:22,950 विशेष रूप से उन बल्कि यह रोक से मूल्यांकन किया जाना हो सकता है. 385 00:26:22,950 --> 00:26:25,910 क्यों हम मूल्यांकन को रोकने के लिए चाहता है? 386 00:26:25,910 --> 00:26:28,710 और उद्धरण है कि हमारे लिए कैसे करते हैं? 387 00:26:28,710 --> 00:26:32,600 >> यहाँ आपको दिलचस्प लग सकता है, जो एक आदेश है. 388 00:26:32,600 --> 00:26:35,470 'रास ग्राम *' 389 00:26:35,470 --> 00:26:37,640 छ *, आप शायद जानते हैं, एक वाइल्डकार्ड अभिव्यक्ति है 390 00:26:37,640 --> 00:26:40,290 जी के साथ शुरुआत सभी फ़ाइल नाम के लिए. 391 00:26:40,290 --> 00:26:46,410 मैं सिर्फ एक आदेश रास ग्राम * में लिखते हैं, तो मैं अपने मौजूदा निर्देशिका में उन सभी नामों की सूची मिल जाएगा. 392 00:26:46,410 --> 00:26:50,870 यह उद्धरण के साथ यहाँ है के रूप में मुझे लगता है कि उर्फ ​​परिभाषित 393 00:26:50,870 --> 00:26:56,990 यह आप इसे चला रहे हैं जहां अपने मौजूदा निर्देशिका में उस आदेश चलेंगे. 394 00:26:56,990 --> 00:27:01,250 लेकिन अगर आप बिना उद्धरण उर्फ ​​परिभाषा चलाते हैं, 395 00:27:01,250 --> 00:27:09,620 यह इस परिभाषित आदेश चलाता है जब यह वाइल्डकार्ड जी * का मूल्यांकन करेंगे. 396 00:27:09,620 --> 00:27:14,400 तो उर्फ ​​की परिभाषा रास निर्देशिका में फाइलों की सूची के बाद किया जाएगा 397 00:27:14,400 --> 00:27:16,310 उर्फ आदेश मार डाला है, जिसमें 398 00:27:16,310 --> 00:27:19,180 भले ही आप वास्तव में आदेश चलाने का इरादा है, जहां की. 399 00:27:19,180 --> 00:27:26,360 यह बहुत काम का नहीं है, और एक उद्धरण तारांकन के मूल्यांकन को रोकने के. 400 00:27:26,360 --> 00:27:30,780 तो तुम सिर्फ * परिभाषा की जा रही रास जी मिलता है. 401 00:27:30,780 --> 00:27:35,510 आप उर्फ ​​चलाने तब, जब LGS, यह तो है कि बाहर डालता है. 402 00:27:35,510 --> 00:27:40,490 अब वहाँ कोई उद्धरण हैं, और आप उर्फ ​​आदेश चलाएँ जब यह तारांकन का मूल्यांकन करेंगे. 403 00:27:40,490 --> 00:27:43,900 इसलिए कि एक बात है. 404 00:27:43,900 --> 00:27:46,590 डबल उद्धरण, यहाँ है कि एक ही प्रभाव होता है 405 00:27:46,590 --> 00:27:50,580 लेकिन दोहरे उद्धरण इतनी अच्छी तरह से काम नहीं होगा, जिसमें अन्य मामलों रहे हैं. 406 00:27:50,580 --> 00:27:52,450 >> यहाँ एक और एक है. 407 00:27:52,450 --> 00:27:54,270 आप grep कमांड जानते हो सकता है. 408 00:27:54,270 --> 00:28:02,110 grep कमांड कुछ तार है जो लाइनों के लिए एक फ़ाइल को स्कैन करने के लिए इस्तेमाल किया जा सकता है. 409 00:28:02,110 --> 00:28:10,350 तो चलो यहाँ पर चलते हैं और मैं अपने बॉर्न शैल से बाहर निकलें करेंगे. 410 00:28:23,570 --> 00:28:25,450 ठीक है. यहाँ एक फाइल है. 411 00:28:25,450 --> 00:28:31,490 चलो यह ग्रेप एबीसी तार का कहना हैं. वहाँ यह है. 412 00:28:31,490 --> 00:28:37,930 मैं grep zddd करते हैं, मैं कुछ भी नहीं मिलता है. ठीक है. 413 00:28:37,930 --> 00:28:40,960 तो यह है कि यह रिपोर्ट है, एक स्ट्रिंग पाता है, यह पता नहीं चलता है, यह है कि यह रिपोर्ट नहीं है. 414 00:28:40,960 --> 00:28:44,930 यह इस पर है कि स्ट्रिंग है जो किसी भी लाइन outputs. 415 00:28:44,930 --> 00:28:49,080 आप दस्तावेज में पा सकते हैं जो यहाँ विकल्पों में से सभी प्रकार हैं. 416 00:28:49,080 --> 00:28:52,160 यहाँ यह करने के लिए एक ही रास्ता है. 417 00:28:52,160 --> 00:29:03,290 क्या यह एक उर्फ ​​grabc 'ग्रेप एबीसी' के बारे में? 418 00:29:03,290 --> 00:29:09,000 उर्फ परिभाषित किया गया है कि जब 1 तर्क शामिल करने के लिए जा रहा है. 419 00:29:09,000 --> 00:29:26,300 इसलिए मुझे लगता है कि अगर यहां, अब मैं grabc करते हैं, 420 00:29:26,300 --> 00:29:30,620 अब उर्फ ​​सरल कमांड से अधिक शामिल हैं. यह भी तर्क दिया है. 421 00:29:30,620 --> 00:29:32,190 अब तक यह काम करता है. 422 00:29:32,190 --> 00:29:38,590 मैं यहाँ एक और आदेश, यह एक है, इसलिए वहाँ उन में अलग तार कर रहे हैं 423 00:29:38,590 --> 00:29:46,790 और यह मेल नहीं खाता है, क्योंकि यह वहाँ कुछ भी पता नहीं चलता है कि. 424 00:29:46,790 --> 00:29:56,180 >> क्या मैं उर्फ ​​परिभाषा में मैं खोज करने के लिए जा रहा हूँ कि फ़ाइल शामिल करना चाहते हैं 425 00:29:56,180 --> 00:30:02,970 और मैं उर्फ ​​मेरी चाहत है कि स्ट्रिंग के लिए एक तर्क के रूप में देना चाहते हो? 426 00:30:02,970 --> 00:30:08,040 मैं, मेरी उर्फ ​​करने के लिए तर्क के रूप में एबीसी कहना चाहते हो सकता है 427 00:30:08,040 --> 00:30:10,870 लेकिन उर्फ ​​पहले से ही फाइल निर्धारित की. 428 00:30:10,870 --> 00:30:15,710 इस अभिव्यक्ति अंदर आता है और वह है, 429 00:30:20,430 --> 00:30:25,270 हम पहले की तरह ग्रेप है यहाँ ध्यान दें. 430 00:30:25,270 --> 00:30:28,130 हम यहां तार फ़ाइल है. 431 00:30:28,130 --> 00:30:35,610 \! ^, प्रकार की एक अजीब अभिव्यक्ति, मैं तुम से पहले यह नहीं देखा है, तो लगता है. 432 00:30:35,610 --> 00:30:39,920 विस्मयादिबोधक बिंदु सी खोल इतिहास तंत्र का हिस्सा है. 433 00:30:39,920 --> 00:30:45,220 यह पहले के आदेशों को याद कर सकते हैं, यह बहुत आगे है उन आदेशों तक तर्क याद करते हैं और कर सकते हैं. 434 00:30:46,760 --> 00:31:01,570 इतिहास तंत्र अलियासिंग के हिस्से के रूप में प्रयोग किया जाता है. 435 00:31:01,570 --> 00:31:07,390 आप विस्मयादिबोधक बिंदु के बाद एक लाइन का उल्लेख करते हैं, यह इतिहास सूची में उस पंक्ति का उल्लेख होगा 436 00:31:07,390 --> 00:31:11,910 यह एक पूरी अन्य विषय है क्योंकि अब हम में नहीं हो रही है. 437 00:31:11,910 --> 00:31:16,280 यह एक लाइन का हिस्सा निर्दिष्ट करने के लिए संभव है. 438 00:31:16,280 --> 00:31:22,950 तो! 03:02 आदेश संख्या 3 के दूसरे तर्क होगा. 439 00:31:22,950 --> 00:31:30,430 यहाँ इस अभिव्यक्ति में कैरट पहले तर्क के लिए खड़ा है. 440 00:31:30,430 --> 00:31:34,410 आप यह आप की बात कर रहे कमान जिनमें से एक संकेत नहीं देते हैं 441 00:31:34,410 --> 00:31:37,300 यह तुरंत पिछले आदेश को संदर्भित करता है 442 00:31:37,300 --> 00:31:41,990 और कैरट पहले तर्क के लिए एक प्रतीक है. 443 00:31:41,990 --> 00:31:46,820 यह कैरट और न नंबर, क्योंकि आप, पेट के उपयोग करने की आवश्यकता नहीं है 444 00:31:46,820 --> 00:31:52,660 इसलिए! ^ पिछले आदेश को पहला तर्क का मतलब है. 445 00:31:52,660 --> 00:31:55,020 एक छोटी सी यहाँ मिलाया. 446 00:31:55,020 --> 00:31:58,450 इस मामले में, आप एक उपनाम परिभाषा के रूप में उपयोग करते हैं, 447 00:31:58,450 --> 00:32:04,650 इतिहास संदर्भ उर्फ ​​प्रयोग किया जाता है, जिसमें आदेशों को वापस संदर्भित करता है. 448 00:32:04,650 --> 00:32:08,470 तो यह एक इतिहास आपरेशन के रूप में वापस 1 कमांड जा रहा है 449 00:32:08,470 --> 00:32:11,810 लेकिन एक उर्फ ​​आपरेशन के रूप में यह आप टाइप करेंगे जिसमें आदेश को संदर्भित करता है, 450 00:32:11,810 --> 00:32:14,780 grstrings_file, का कहना है. 451 00:32:17,440 --> 00:32:20,240 हम इसे यहाँ में उद्धरण है. के लिए बैकस्लैश क्या है? 452 00:32:20,240 --> 00:32:30,810 इस मामले में, के रूप में कहीं, हम इतिहास तंत्र पर अमल नहीं करना चाहती 453 00:32:30,810 --> 00:32:33,680 उर्फ परिभाषित करते हुए. 454 00:32:33,680 --> 00:32:37,900 हम वहाँ बैकस्लैश नहीं था, खोल पहला तर्क में खींच जाएगा 455 00:32:37,900 --> 00:32:41,870 यह हम नहीं चाहते जो इस उर्फ ​​आदेश, भागा ठीक पहले आदेश की. 456 00:32:41,870 --> 00:32:47,520 हम इस पर बाद में एक बहस में कॉल करने के लिए उर्फ ​​आदेश करने के लिए बनाया जा करना चाहते हैं. 457 00:32:47,520 --> 00:32:53,550 एक उद्धरण एक विस्मयादिबोधक बिंदु, इतिहास संदर्भ बच नहीं है. 458 00:32:53,550 --> 00:32:57,450 हो सकता है कि आप अभिव्यक्ति भागने कुछ के अर्थ बदल का मतलब पता है. 459 00:32:57,450 --> 00:33:00,260 इस मामले में, यह एक विशेष अर्थ होने से कुछ को रोकने के लिए इसका मतलब है. 460 00:33:00,260 --> 00:33:03,030 विस्मयादिबोधक बिंदु के विशेष अर्थ इतिहास है. 461 00:33:03,030 --> 00:33:05,790 बचने के लिए और यह कि अर्थ नहीं है. 462 00:33:05,790 --> 00:33:08,080 उद्धरण है कि ऐसा नहीं है, बैकस्लैश करता है. 463 00:33:08,080 --> 00:33:11,900 तो क्या हम वास्तव में यहाँ भागने की 2 स्तर का उपयोग कर रहे हैं. 464 00:33:23,500 --> 00:33:29,620 मैं यह लिखने के बिना अन्य विंडो में इस आदेश को स्थानांतरित करने के लिए जा रहा हूँ 465 00:33:29,620 --> 00:33:35,210 इन संपादन आपरेशनों का उपयोग करके, जो आप उपयोगी मिल सकता है. 466 00:33:40,620 --> 00:33:42,460 यहाँ कुछ और मैं तुम्हें दिखाता हूँ. 467 00:33:42,460 --> 00:33:46,730 आप बस कोई तर्क के साथ उर्फ ​​लिखते हैं, तो यह आप सभी अपने तर्क कहता है. 468 00:33:46,730 --> 00:33:48,640 यह मैं पहले से ही यहाँ था फर्जी नाम का एक गुच्छा है 469 00:33:48,640 --> 00:33:53,400 मैं आज यहाँ उपयोग किया गया है कि उन लोगों के अलावा. 470 00:33:53,400 --> 00:34:00,220 मैं सिर्फ एक उपनाम के नाम से लिखते हैं लेकिन, यह इसका क्या मतलब है मुझे बताता है. 471 00:34:00,220 --> 00:34:03,390 उद्धरण चले गए हैं और बैकस्लैश चला गया है कि नोटिस. 472 00:34:03,390 --> 00:34:08,620 यहाँ इस स्ट्रिंग कि उर्फ ​​परिभाषा का परिणाम है, 473 00:34:08,620 --> 00:34:12,199 और अब यह बस है! ^ इसमें. 474 00:34:12,199 --> 00:34:19,150 यह कुछ के लिए फ़ाइल तार में देखने के लिए जा रहा है. 475 00:34:19,150 --> 00:34:34,900 मैं grstrings_file तार करते हैं तो, मुझे लगता है कि यह वहाँ के लिए देखने के लिए कुछ भी नहीं दिया 476 00:34:34,900 --> 00:34:37,429 लेकिन यह तार में दिख रही है. 477 00:34:37,429 --> 00:34:42,330 यह फाइल तार में शब्द तार नहीं मिला, लेकिन यह एबीसी खोज करता है. 478 00:34:42,330 --> 00:34:46,770 और यह है कि पता नहीं चलता है. 479 00:34:46,770 --> 00:34:52,330 तो यहाँ हम उर्फ ​​की परिभाषा में हिट है कि एक तर्क दे रहे हैं, 480 00:34:52,330 --> 00:34:55,530 कि यह सम्मिलित किया जाता है. 481 00:34:55,530 --> 00:34:58,540 इस अभिव्यक्ति से आता है जहां यह है. 482 00:34:58,540 --> 00:35:00,240 आप अधिक से अधिक 1 का उपयोग कर सकते हैं. 483 00:35:00,240 --> 00:35:03,170 कैरट पहले तर्क के लिए एक प्रतीक है. 484 00:35:03,170 --> 00:35:07,510 आप एक दूसरा तर्क का उपयोग करना चाहता है, तो आप कहेंगे: 2. 485 00:35:07,510 --> 00:35:11,250 दूसरा तर्क के लिए कोई विशेष प्रतीक है. 486 00:35:11,250 --> 00:35:14,790 आप एक अंक का उपयोग कर रहे हैं और, क्योंकि आप पेट के उपयोग करने के लिए होगा. 487 00:35:14,790 --> 00:35:17,220 यहाँ एक और विकल्प है, हालांकि, वहाँ है. 488 00:35:17,220 --> 00:35:21,220 डॉलर के हस्ताक्षर अंतिम बहस के लिए खड़ा है. 489 00:35:21,220 --> 00:35:23,320 यह एक प्रतीक है और, क्योंकि आप पेट के छोड़ सकते हैं. 490 00:35:23,320 --> 00:35:25,870 तो यह सूची में अंतिम बहस होगी. 491 00:35:25,870 --> 00:35:27,900 और वह एक भी नहीं है. 492 00:35:27,900 --> 00:35:31,380 , Asterisk के सभी साधन, तो यह पूरा तर्क सूची है 493 00:35:31,380 --> 00:35:35,150 यह एक अंक नहीं है क्योंकि और फिर, आप पेट के छोड़ सकते हैं. 494 00:35:36,970 --> 00:35:39,950 मैं आप सभी से यह सब देख रहे हैं उम्मीद है. 495 00:35:39,950 --> 00:35:54,100 >> इतिहास तंत्र इतिहास सूची में वापस पहले लाइनों पर जा सकते हैं. 496 00:35:54,100 --> 00:36:01,370 आप एक उपनाम परिभाषा में यह कर सकता है. 497 00:36:01,370 --> 00:36:02,950 मैं इस किया कभी नहीं देखा है. 498 00:36:02,950 --> 00:36:05,840 यह इतिहास सूची से पहले आदेश खींच के असर होगा 499 00:36:05,840 --> 00:36:08,130 आप अलग अलग आदेशों में हो सकता है जो अन्य नाम, निष्पादित जब 500 00:36:08,130 --> 00:36:11,240 जब और जहां आप इसे लागू पर निर्भर करता है. 501 00:36:11,240 --> 00:36:14,020 अटकल आप इस तरह के एक संदर्भ को बाहर खींचने के लिए चाहते हो सकता है 502 00:36:14,020 --> 00:36:15,900 बस एक पहले आदेश था क्या पता करने के लिए. 503 00:36:15,900 --> 00:36:17,280 मैं ऐसा कभी नहीं देखा. 504 00:36:17,280 --> 00:36:19,970 मैं किसी के लिए चाहते हो सकता है, लेकिन यह बहुत संभावना नहीं है. 505 00:36:19,970 --> 00:36:26,480 यहाँ एक और चीज नहीं है. 506 00:36:26,480 --> 00:36:33,060 आपको लगता है कि इतिहास प्रकार संदर्भ का उपयोग करते हैं, 507 00:36:33,060 --> 00:36:38,190 तो इस तरह के एक संदर्भ है जो करने के लिए केवल तर्क उपयोग किया जाता है. 508 00:36:38,190 --> 00:36:42,180 आप एक इतिहास प्रकार संदर्भ का उपयोग नहीं करता जो एक उर्फ ​​परिभाषा है, 509 00:36:42,180 --> 00:36:44,060 यह सिर्फ आदेश की शुरुआत हो जाता है 510 00:36:44,060 --> 00:36:46,520 और आप आगे तर्क है, तो कुछ भी आप उसके बाद लिखें 511 00:36:46,520 --> 00:36:48,450 आदेश में जोड़ दिया जाएगा. 512 00:36:48,450 --> 00:36:52,040 इस मामले में, मैं बस वहाँ उदाहरण दिया, हम पहले तर्क का इस्तेमाल किया; 513 00:36:52,040 --> 00:36:54,610 हम किसी भी अन्य लोगों का उपयोग नहीं किया. 514 00:36:54,610 --> 00:36:57,960 अन्य तर्कों आदेश पंक्ति पर दिया गया था, तो वे इस्तेमाल नहीं किया जाएगा. 515 00:36:57,960 --> 00:37:04,630 तुम सब पर इतिहास संदर्भ का उपयोग करते हैं, तो आप किसी भी तर्क को पाने के लिए इसका इस्तेमाल करना चाहिए. 516 00:37:04,630 --> 00:37:11,310 >> मैं सिर्फ आंशिक रूप से गर्भित, उल्लेख करना चाहता हूँ यहाँ एक और बात है, 517 00:37:11,310 --> 00:37:15,250 अर्थात् है कि विस्मयादिबोधक बिंदु के साथ इस इतिहास तंत्र 518 00:37:15,250 --> 00:37:18,010 वापस मूल सी खोल करने के लिए चला जाता है. 519 00:37:18,010 --> 00:37:27,060 tcsh इतिहास अभियान की शुरुआत की 520 00:37:27,060 --> 00:37:30,910 संपादकों से आदेश और तार की तरह उपयोग करते हैं, 521 00:37:30,910 --> 00:37:33,650 Emacs या छठी या तो. 522 00:37:33,650 --> 00:37:36,430 मेरी व्यक्तिगत राय है कि Emacs इस उद्देश्य के लिए उपयोग करने के लिए बहुत आसान है 523 00:37:36,430 --> 00:37:39,390 आप अपने नियमित रूप से संपादन के लिए छठी का उपयोग करें. 524 00:37:39,390 --> 00:37:43,900 अब इतिहास के लिए अनुकूलित कर रहे हैं जो विभिन्न Emacs कमानों रहे हैं. 525 00:37:43,900 --> 00:37:46,410 नियंत्रण पी इतिहास सूची में पिछले लाइन हो जाता है. 526 00:37:46,410 --> 00:37:48,840 दूसरे नियंत्रण पी आप उस से पहले एक मिल जाएगा. 527 00:37:48,840 --> 00:37:50,540 ऊपर तीर ही बात करता है. 528 00:37:50,540 --> 00:37:54,190 आप पहले से ही कुछ मायनों वापस scrolled किया है, तो कंट्रोल एन अगले आदेश हो जाता है. 529 00:37:54,190 --> 00:37:55,880 नीचे तीर वह भी करता है. 530 00:37:55,880 --> 00:38:00,480 आप तीर और विभिन्न अन्य बातों के साथ सही करने के लिए छोड़ दिया जा सकते हैं. 531 00:38:00,480 --> 00:38:02,390 यह इतिहास तंत्र का उपयोग कर सकते हैं 532 00:38:02,390 --> 00:38:05,070 विस्मयादिबोधक बिंदु वाक्यविन्यास का उपयोग करने से ज्यादा आसान, 533 00:38:05,070 --> 00:38:07,930 लेकिन आप एक उपनाम परिभाषा में उस का उपयोग नहीं होता. 534 00:38:17,780 --> 00:38:20,020 हम कुछ अन्य समय उस पर जायेंगे. 535 00:38:24,300 --> 00:38:25,810 >> चर. 536 00:38:26,880 --> 00:38:29,510 आप प्रोग्रामिंग भाषा में क्या कर रहे हैं चर पता है. 537 00:38:29,510 --> 00:38:31,680 गोले भी उन्हें दिया है. 538 00:38:31,680 --> 00:38:37,350 सी खोल, चर आवंटित करने के लिए सेट कमांड का उपयोग करता है 539 00:38:37,350 --> 00:38:41,360 इतना कि बी के मूल्य के लिए चर एक सेट - 540 00:38:41,360 --> 00:38:46,390 मैं एक बेकार परिभाषा लेकिन यह कैसे किया जाता है की एक उदाहरण के रूप में कहा. 541 00:38:48,790 --> 00:38:52,410 यह पहले से ही मौजूद नहीं है, तो सेट आदेश एक चर पैदा करेगा. 542 00:38:55,270 --> 00:39:02,490 खोल लिपियों के लिए स्थितीय मापदंडों चर माना जा सकता है, 543 00:39:02,490 --> 00:39:10,750 लेकिन उनमें से इस्तेमाल करते हैं और उनके लिए नियम कुछ अलग हैं. 544 00:39:10,750 --> 00:39:14,320 आप एक स्क्रिप्ट के पाठ्यक्रम में $ 1 के लिए एक मूल्य प्रदान नहीं कर सकते. 545 00:39:14,320 --> 00:39:18,340 आप में से कुछ करना चाहता था, तो उस प्रयोजन के लिए एक नया चर को परिभाषित करना होगा. 546 00:39:23,000 --> 00:39:28,470 तर्क में कोई साथ सेट टाइप और आप सभी वर्तमान में परिभाषित चर की एक सूची मिलता है. 547 00:39:28,470 --> 00:39:34,220 और चलो मेरे यहाँ अन्य खोल करने के लिए खत्म हो और हम करते हैं कि हम क्या मिल देखते हैं. 548 00:39:34,220 --> 00:39:37,110 वहाँ काफी लंबी सूची है, है ना? 549 00:39:37,110 --> 00:39:40,990 थोड़ा सा ऊपर स्क्रॉल. लगता है कि सभी को देखो. 550 00:39:40,990 --> 00:39:44,330 इन चीजों में से कुछ खोल द्वारा स्वचालित रूप से परिभाषित कर रहे हैं. 551 00:39:44,330 --> 00:39:49,320 खोल चर बनाता है और यह एक मूल्य देता है. 552 00:39:49,320 --> 00:39:52,730 उनमें से कुछ खोल से परिभाषित लेकिन तब उपयोगकर्ता द्वारा नए सिरे से परिभाषित कर रहे हैं 553 00:39:52,730 --> 00:39:54,820 अपनी पसन्द के अनुसार. 554 00:39:54,820 --> 00:39:59,110 और उनमें से कुछ को वह उस दिन क्या कर रहा है के आधार पर उपयोगकर्ता द्वारा बनाई गई हैं. 555 00:39:59,110 --> 00:40:01,880 वह सिर्फ तर्क में कोई साथ सेट है. 556 00:40:06,920 --> 00:40:10,050 यहां इस बात का एक अजीब करने की सुविधा नहीं है. 557 00:40:10,050 --> 00:40:17,980 बराबर चिह्न और चर नाम के बीच कोई रिक्त स्थान या तो वहाँ के लिए है 558 00:40:17,980 --> 00:40:23,700 और बराबरी के दोनों किनारों पर मूल्य या रिक्त स्थान के हस्ताक्षर, 559 00:40:23,700 --> 00:40:28,940 इस एक के रूप में. 560 00:40:35,620 --> 00:40:41,340 यह काम नहीं करेगा, और यह वास्तव में एक वैध आदेश है 561 00:40:41,340 --> 00:40:43,390 लेकिन यह आप का इरादा क्या नहीं होगा. 562 00:40:43,390 --> 00:40:50,070 उस आदेश में काम करेंगे, क्योंकि आप सिर्फ एक चर नाम सेट और कहते हैं 563 00:40:50,070 --> 00:40:54,890 कोई बराबर चिह्न या सेट और एक से बराबर के साथ एक चर नाम पर हस्ताक्षर और कोई मूल्य नहीं, साथ 564 00:40:54,890 --> 00:40:57,770 यह एक शून्य मान के लिए चर की स्थापना की जाएगी. 565 00:40:57,770 --> 00:41:00,120 तो एक = सेट एक वैध आदेश है. 566 00:41:00,120 --> 00:41:04,370 सेट कमान एक ही लाइन पर अधिक से अधिक 1 चर परिभाषित कर सकते हैं. 567 00:41:04,370 --> 00:41:11,240 तो यहाँ इस आदेश मूल्यों अशक्त करने के लिए ए और बी दोनों को परिभाषित करने का असर है. 568 00:41:11,240 --> 00:41:13,470 शायद नहीं क्या आप चाहते हैं. 569 00:41:13,470 --> 00:41:17,940 यहाँ यह एक, जैसा कि पहले उल्लेख, कोई त्रुटि को बढ़ावा मिलेगा 570 00:41:17,940 --> 00:41:21,270 = बी एक वैध अभिव्यक्ति नहीं है. 571 00:41:21,270 --> 00:41:23,680 एक चर नाम बराबर चिह्न के साथ शुरू नहीं कर सकते. 572 00:41:26,760 --> 00:41:29,080 और यहाँ इन आगे बातें कर रहे हैं. 573 00:41:29,080 --> 00:41:36,820 कोलन, इतिहास लाइनों से तर्कों का चयन करने के लिए इस्तेमाल किया गया 574 00:41:36,820 --> 00:41:41,210 और वे इस्तेमाल किया जा सकता है - और मैं पहले में नहीं जाना था - उन चीजों को संशोधित करने के लिए. 575 00:41:41,210 --> 00:41:44,480 उन्होंने यह भी खोल चर को संशोधित करने के लिए इस्तेमाल किया जा सकता है. 576 00:41:44,480 --> 00:41:49,050 यहाँ यह एक, एक $ एक मूल्य है. 577 00:41:49,050 --> 00:41:55,040 : R एक विस्तार से दूर ले जाएगा. 578 00:41:55,040 --> 00:41:57,200 एक एक्सटेंशन एक डॉट निम्नलिखित कुछ भी हो सकता है, 579 00:41:57,200 --> 00:41:59,200 एक डॉट और एक फाइल के अंत में यह निम्नलिखित कुछ भी, 580 00:41:59,200 --> 00:42:03,230 केवल पिछले तुरत बाद सूची के अंत में. 581 00:42:03,230 --> 00:42:05,480 इसलिए मैं इसे यहाँ है. 582 00:42:05,480 --> 00:42:10,730 एक कि है. इसे छोड़ देंगे. ओ. 583 00:42:10,730 --> 00:42:16,510 कोई विस्तार, पिछले तुरत बाद ही pathnames है, तो यह कोई प्रभाव नहीं पड़ेगा. 584 00:42:16,510 --> 00:42:27,480 एक: घंटे, चर अभिव्यक्ति, एक निर्देशिका सूची के अंतिम तत्व से दूर ले जाएगा, 585 00:42:27,480 --> 00:42:29,660 फिर, केवल पिछले तुरत बाद. 586 00:42:29,660 --> 00:42:33,160 तो / ए / बी / सी / ए / बी हो जाता है, 587 00:42:33,160 --> 00:42:38,870 सूची के बाद तत्व रिक्त है लेकिन क्योंकि यह एक बदला है. 588 00:42:38,870 --> 00:42:43,070 यहाँ भी मैं जोर देना चाहते हैं जो कुछ न कुछ है. 589 00:42:43,070 --> 00:42:46,770 इन क्वालिफायर इन फ़ाइलों के अस्तित्व के लिए खोज नहीं है. 590 00:42:46,770 --> 00:42:48,910 वे बस तार के लिए देखो. 591 00:42:48,910 --> 00:42:54,520 ये pathnames, फ़ाइल नामों में हेरफेर करने का इरादा कर रहे हैं 592 00:42:54,520 --> 00:42:57,520 लेकिन वे इसे एक फ़ाइल नाम नहीं है, भले ही कोई भी तार पर इस्तेमाल किया जा सकता है. 593 00:42:57,520 --> 00:42:58,920 और वे अस्तित्व के लिए मत देखो 594 00:42:58,920 --> 00:43:03,550 इसलिए ऐसी कोई फाइल नहीं है, तो / ए / बी / सी, यह अभी भी काम करेगा. 595 00:43:03,550 --> 00:43:06,930 यह किसी काम का है कि क्या एक और सवाल है, लेकिन यह अभी भी काम करेगा. 596 00:43:06,930 --> 00:43:12,850 चर बॉर्न गोले में अलग हैं. हम है कि बाद में मिल जाएगा. 597 00:43:12,850 --> 00:43:18,240 डॉलर के हस्ताक्षर सिर्फ विस्मयादिबोधक बिंदु और तारांकन तरह बच निकला जा सकता है. 598 00:43:18,240 --> 00:43:21,760 डॉलर के हस्ताक्षर एक बैकस्लैश या एकल उद्धरण के साथ भाग निकले किया जा सकता है. 599 00:43:21,760 --> 00:43:24,790 डबल उद्धरण सभी के गोले में अजीब प्रभाव है 600 00:43:24,790 --> 00:43:28,690 एक डॉलर के मूल्यांकन के लिए मजबूर कर के चर अभिव्यक्ति पर हस्ताक्षर. 601 00:43:28,690 --> 00:43:31,960 यह एक तरह से बच निकला जा रहा है तो, अगर डबल उद्धरण प्रभाव हो सकता है 602 00:43:31,960 --> 00:43:34,380 की यह वैसे भी मूल्यांकन किया जाना हो सकता है. 603 00:43:34,380 --> 00:43:37,090 यह एक छोटे से भ्रामक है. 604 00:43:37,090 --> 00:43:43,740 ऐसे दोहरे उद्धरण अंदर एक उद्धरण के रूप में भागने की कई स्तरों, वहाँ रहे हैं 605 00:43:43,740 --> 00:43:46,770 या एक उद्धरण के अंदर दोहरे उद्धरण, आप क्या होगा देखने के लिए परीक्षण करना चाहिए 606 00:43:46,770 --> 00:43:49,520 आप एक प्रयोग कर रहे हैं अगर एक चर करने के लिए. 607 00:43:49,520 --> 00:43:53,410 उन 2 स्थितियों - डबल के एकल, एकल अंदर के दोहरे अंदर - 608 00:43:53,410 --> 00:43:55,980 जरूरी है कि आप एक ही परिणाम देना नहीं है. 609 00:44:02,520 --> 00:44:05,600 वातावरण चर को बाध्य सी खोल चर. 610 00:44:05,600 --> 00:44:08,340 वातावरण चर को भी सी खोल में चर रहे हैं 611 00:44:08,340 --> 00:44:11,250 और वे भी अन्य गोले में भी चर रहे हैं. 612 00:44:11,250 --> 00:44:15,230 सी खोल में, वे अलग सेट कर रहे हैं. 613 00:44:15,230 --> 00:44:18,130 मैं पहले कह रहा था बातें खोल चर के बारे में हैं. 614 00:44:18,130 --> 00:44:21,300 पर्यावरण चर चर का एक अलग सेट कर रहे हैं 615 00:44:21,300 --> 00:44:28,650 हम बाध्य चर कॉल जो कई चर के अपवाद के साथ, 616 00:44:28,650 --> 00:44:30,640 बहुत महत्वपूर्ण हैं और हम बाद में उन में मिल जाएगा जो. 617 00:44:30,640 --> 00:44:34,950 पर्यावरण चर स्वचालित रूप से पारित कर रहे हैं 618 00:44:34,950 --> 00:44:41,800 गोले या अपने खोल से चलाए जा रहे हैं कि आदेशों के लिए. 619 00:44:41,800 --> 00:44:46,220 अन्य चीजें नहीं हैं. खोल चर, फर्जी नाम नहीं हैं. पर्यावरण चर रहे हैं. 620 00:44:46,220 --> 00:44:48,630 हम पर्यावरण चर उन्हें फोन यही कारण है कि, 621 00:44:48,630 --> 00:44:55,030 विचार माहौल सिर्फ अपने वर्तमान खोल अतीत फैली कि जा रहा है. 622 00:44:55,030 --> 00:45:00,510 उन्होंने आदेशों के लिए चीजों को परिभाषित करने के लिए इस्तेमाल किया जा सकता है. 623 00:45:00,510 --> 00:45:05,470 यहाँ एक उदाहरण है. प्रिंटर, LPDEST. 624 00:45:05,470 --> 00:45:12,270 उन चर दोनों एक आदेश बातें मुद्रित करने के लिए प्रयोग करेंगे कि एक प्रिंटर परिभाषित कर सकते हैं. 625 00:45:12,270 --> 00:45:16,500 आप के चारों ओर कई प्रिंटर है, तो आप एक तुम्हें पसंद है डाल करने के लिए चाहते हो सकता है. 626 00:45:16,500 --> 00:45:21,320 हम 2 चर कारण आदेशों के विभिन्न सेट लिखा गया है 627 00:45:21,320 --> 00:45:23,870 इन विभिन्न चर का उपयोग कर. 628 00:45:23,870 --> 00:45:25,910 आप उन्हें विभिन्न मूल्यों दे सकता है. 629 00:45:25,910 --> 00:45:28,860 सबसे अधिक संभावना है कि आप उन्हें एक ही मूल्य दोनों देता हूँ. 630 00:45:28,860 --> 00:45:35,840 उन चीजों को काम, क्योंकि छपाई करते हैं कि आदेशों 631 00:45:35,840 --> 00:45:40,740 इन चर के मूल्यों की जांच करने के लिए प्रोग्राम किया गया. 632 00:45:42,200 --> 00:45:46,150 एक प्रोग्राम है कि जिस तरह से नहीं लिखा गया है, तो यह कुछ और करने के लिए लिखा गया है, 633 00:45:46,150 --> 00:45:48,280 चर अप्रासंगिक हो जाएगा. 634 00:45:48,280 --> 00:45:52,530 तो ऑपरेटिंग सिस्टम इन चर के लिए नहीं लग रही है 635 00:45:52,530 --> 00:45:55,210 आप एक प्रिंटर का उल्लेख करने के लिए हर समय. 636 00:45:55,210 --> 00:45:59,090 यह उस तरह से प्रोग्राम है अगर छपाई करता है एक आदेश है कि इन चर के लिए लग रही है. 637 00:46:11,030 --> 00:46:15,240 इन चरों अक्सर अपने आरंभीकरण फ़ाइलों में परिभाषित कर रहे हैं 638 00:46:15,240 --> 00:46:19,440 लेकिन जरूरी नहीं. 639 00:46:19,440 --> 00:46:21,050 आप कमांड लाइन पर उन्हें परिभाषित कर सकते हैं. 640 00:46:21,050 --> 00:46:24,090 वे एक आदेश में परिभाषित किया जा सकता है. 641 00:46:24,090 --> 00:46:28,740 कुछ चलता है कि आदेश चर का अपना ही चयन हो सकता है - 642 00:46:28,740 --> 00:46:32,390 उदाहरण के लिए एक विशेष सॉफ्टवेयर पैकेज के लिए अद्वितीय हैं कि चर,. 643 00:46:32,390 --> 00:46:36,740 आपको लगता है कि पैकेज को चलाने के लिए जब वे परिभाषित किया जाएगा. 644 00:46:39,690 --> 00:46:42,680 कैसे इन चर एक उप खोल करने के लिए पारित कर रहे हैं? 645 00:46:42,680 --> 00:46:48,210 एक उप खोल लिखा जाता है, तो यह उस क्षेत्र में नहीं लिखता है. 646 00:46:48,210 --> 00:46:53,260 पर्यावरण चर के लिए समर्पित है कि उप खोल के क्षेत्र 647 00:46:53,260 --> 00:46:56,450 उप खोल से नहीं लिखा है, यह नकल करके लिखा है. 648 00:46:56,450 --> 00:47:00,530 आप एक साधारण आदेश चलाते हैं, जैसे कि, इन आदेशों को मुद्रित या जो कुछ भी करने के लिए के रूप में 649 00:47:00,530 --> 00:47:03,840 वे एक नया खोल बनाने के द्वारा शुरू. 650 00:47:03,840 --> 00:47:06,190 खोल एक खोल बनाता है और फिर इसे का हिस्सा लिख ​​देगा 651 00:47:06,190 --> 00:47:08,800 थोड़ा भ्रमित है जो आप चला रहे हैं उस आदेश के साथ, 652 00:47:08,800 --> 00:47:10,740 लेकिन यह है कि इन आदेशों का परिवेश चर कैसे मिलता है 653 00:47:10,740 --> 00:47:14,890 वे फिर बाद में करने के लिए देखें कि. 654 00:47:21,920 --> 00:47:28,010 चर setenv परिभाषित करने के लिए यहाँ आदेश. 655 00:47:28,010 --> 00:47:36,470 यही कारण है कि आप इसे कैसे परिभाषित है. Setenv, चर, मूल्य: यह 3 तत्व है. 656 00:47:36,470 --> 00:47:44,710 आप बस कोई तर्क के साथ setenv है, तो आप क्या मिलता है? 657 00:47:47,220 --> 00:47:48,810 उन चर के सभी की एक सूची. 658 00:47:48,810 --> 00:47:53,190 फिर, यह एक अच्छा लंबी सूची है और इस मामले में, दूसरों के रूप में, 659 00:47:53,190 --> 00:47:57,320 इन चर खोल से ही अपना लॉगिन आपरेशन द्वारा मोटे तौर पर परिभाषित कर रहे हैं 660 00:47:57,320 --> 00:47:59,740 बल्कि कुछ भी मैंने किया द्वारा की तुलना में. 661 00:47:59,740 --> 00:48:03,580 यहाँ एक और आदेश, printenv है. 662 00:48:07,520 --> 00:48:10,340 वह भी पर्यावरण बाहर प्रिंट. 663 00:48:10,340 --> 00:48:15,240 , यहाँ संपादक = छठी इस आखिरी बात पर ध्यान दें. 664 00:48:15,240 --> 00:48:21,120 का कहना है कि मैं एक संपादक कहता है कि कुछ का उपयोग कर रहा हूँ अगर 665 00:48:21,120 --> 00:48:25,530 और मैं एक संपादक निर्दिष्ट नहीं है और यह मुझे पसंद अनुमति देता है, यह मुझे छठी दे सकता है. 666 00:48:25,530 --> 00:48:37,280 क्या मैं printenv संपादक तो क्या होगा? यह है क्या मुझे बताता है. 667 00:48:37,280 --> 00:48:41,340 सही है कि इससे पहले, एक चर, कम था. 668 00:48:41,340 --> 00:48:46,040 ये मैं कम आदेश चलाएँ जब अपनी चूक विकल्प हैं, 669 00:48:46,040 --> 00:48:49,360 जो फाइलें प्रदर्शित करता है. 670 00:48:49,360 --> 00:48:55,910 मैं ऐसा इसलिए, अगर printenv, 1 तर्क या 0 तर्क ले सकते हैं 671 00:48:55,910 --> 00:48:58,070 नहीं 1 से अधिक. 672 00:49:01,800 --> 00:49:05,690 वहाँ अन्य आदेश भी कर रहे हैं, लेकिन हम सब कि आज में शामिल होने नहीं जा रहे हैं. 673 00:49:05,690 --> 00:49:11,010 तरह खोल चर के लिए संशोधक वहाँ थे याद रखें: घंटे, 674 00:49:11,010 --> 00:49:14,350 एक पथ के अंतिम तत्व छोड़ देंगे, जो 675 00:49:14,350 --> 00:49:17,950 या: आर, एक विस्तार छोड़ देंगे जो. 676 00:49:17,950 --> 00:49:23,110 वे अब भी पर्यावरण चर के लिए लागू होते हैं. वे करने के लिए इस्तेमाल नहीं किया था. 677 00:49:23,110 --> 00:49:24,960 यह वे संशोधित नहीं किया जा सकता है इस्तेमाल किया. अब वे हो सकता है. 678 00:49:24,960 --> 00:49:29,190 यह साल से अधिक गोले की घटनाओं के साथ अग्रिमों में से एक है. 679 00:49:29,190 --> 00:49:35,620 मैं कह रहा था कि वातावरण के हिस्से के रूप में गोले 680 00:49:35,620 --> 00:49:43,040 और सी खोल में खोल चर कुछ अपवादों को छोड़कर, अलग सेट के साथ, कर रहे हैं. 681 00:49:43,040 --> 00:49:46,790 आप एक ही नाम के साथ एक वातावरण चर और एक खोल चर स्थापित कर सकते हैं. 682 00:49:46,790 --> 00:49:49,220 वे विभिन्न चर हो जाएगा, वे अलग मान हो सकते हैं. 683 00:49:49,220 --> 00:49:53,090 एक की वॅल्यू अन्य के मूल्य में परिवर्तन नहीं होगा. 684 00:49:53,090 --> 00:49:58,070 इन चर सभी डॉलर के हस्ताक्षर के साथ मूल्यांकन कर रहे हैं - $ एक $ जो भी हो. 685 00:49:58,070 --> 00:50:02,340 तो क्या आप इस हों तो? आपको मिल जो एक जानते हो? 686 00:50:02,340 --> 00:50:04,520 अपने परीक्षण में मैं खोल चर मिल गया, 687 00:50:04,520 --> 00:50:07,240 लेकिन इस दर्ज़ नहीं है और आप उस पर भरोसा नहीं कर सकते. 688 00:50:07,240 --> 00:50:10,270 तो मैं खोल और पर्यावरण चर पैदा कर रही है, आप से पूछना 689 00:50:10,270 --> 00:50:13,490 एक ही नाम के एक अच्छे विचार के साथ? ठीक है सं. 690 00:50:13,490 --> 00:50:17,460 जिसमें पर्यावरण और खोल चर उन प्रमुख अपवाद क्या हैं 691 00:50:17,460 --> 00:50:19,860 एक दूसरे से जुड़े हुए हैं? 692 00:50:19,860 --> 00:50:27,470 इन 4 कर रहे हैं. 693 00:50:32,030 --> 00:50:35,510 पूंजी पत्र कार्यकाल वातावरण चर, 694 00:50:35,510 --> 00:50:41,540 छोटे पत्र, टर्मिनल अनुकरण के प्रकार में चर अवधि खोल. 695 00:50:41,540 --> 00:50:47,430 , मैं बस यहाँ पर जाने के लिए जा रहा हूँ और मैं यहाँ गूंज, एक उपयोगी आदेश में क्या करने जा रहा हूँ 696 00:50:47,430 --> 00:50:52,560 $ कार्यकाल $ अवधि. और वहाँ. 697 00:50:52,560 --> 00:51:00,570 टर्म X विंडो सिस्टम में प्रदर्शित खिड़कियों के लिए एक टर्मिनल प्रकार है. 698 00:51:00,570 --> 00:51:04,330 टर्म रंग अलग अलग रंग की अनुमति देता है कि का एक संस्करण है. 699 00:51:04,330 --> 00:51:06,580 हम क्यों इन परिभाषित करते हैं? इस के लिए अच्छा क्या है? 700 00:51:06,580 --> 00:51:09,740 संपादक की तरह स्क्रीन को पुनर्व्यवस्थित आदेश 701 00:51:09,740 --> 00:51:13,680 भागने दृश्यों बुलाया विशेष दृश्यों, भेजने, 702 00:51:13,680 --> 00:51:18,160 एक टर्मिनल या एक खिड़की करने के लिए इसके आगे यह पुनर्व्यवस्थित करने के लिए. 703 00:51:18,160 --> 00:51:20,990 उन दृश्यों टर्मिनलों के विभिन्न प्रकार के लिए अलग अलग हैं. 704 00:51:20,990 --> 00:51:23,100 यह लोगों का उपयोग करने के लिए जो यह बताता है. 705 00:51:23,100 --> 00:51:25,900 कभी कभी वहाँ मुद्दे हैं. 706 00:51:25,900 --> 00:51:28,600 आप को बदलने के लिए चाहते हो सकता है. 707 00:51:28,600 --> 00:51:30,780 चीजें काम नहीं कर रहे हैं, कभी कभी टर्मिनल प्रकार, गलत सेट है 708 00:51:30,780 --> 00:51:36,440 आप अवधि चर पुनर्परिभाषित द्वारा इसे ठीक करने में सक्षम हो सकता है. 709 00:51:36,440 --> 00:51:43,420 इन मामलों में, एक चर, पर्यावरण चर या खोल चर बदल रहा है, 710 00:51:43,420 --> 00:51:45,970 एक दूसरे में परिवर्तन होना चाहिए. 711 00:51:45,970 --> 00:51:50,970 मैं अनुभव के माध्यम से पता चला है कि राजधानी पत्र में कार्यकाल बदलते 712 00:51:50,970 --> 00:51:54,060 हमेशा छोटे अक्षरों में खोल चर अवधि नहीं बदलता है. 713 00:51:54,060 --> 00:51:55,550 यह एक बग है. 714 00:51:55,550 --> 00:51:59,400 कि हमेशा सच है, तो मैं नहीं जानता. यह सच नहीं है कि समय के अधिकांश, लेकिन यह हो सकता है. 715 00:51:59,400 --> 00:52:02,490 आप एक बदलाव करते हैं तो, सिर्फ इतना है कि बाहर की जाँच करें. 716 00:52:02,490 --> 00:52:05,830 यह लेकिन एक बार आप करते हैं एक समय में, आप मान को बदलने की जरूरत है कि अक्सर नहीं है. 717 00:52:05,830 --> 00:52:08,260 वातावरण चर उपयोगकर्ता. 718 00:52:08,260 --> 00:52:12,070 फिर, बड़े अक्षरों में पर्यावरण चर, छोटे अक्षरों में चर खोल. 719 00:52:12,070 --> 00:52:13,710 यह आपका उपयोगकर्ता नाम है. 720 00:52:13,710 --> 00:52:16,730 यह बहुत ही असाधारण परिस्थिति है 721 00:52:16,730 --> 00:52:18,420 आप को बदलने के लिए चाहेगा कि. 722 00:52:18,420 --> 00:52:22,350 अपना उपयोगकर्ता नाम किसी और है, तो उसे हर तरह की चीजों से दूर फेंक कर सकते हैं. 723 00:52:22,350 --> 00:52:26,040 घर निर्देशिका, उपयोगकर्ता के घर निर्देशिका. 724 00:52:26,040 --> 00:52:28,060 फिर, आपको लगता है कि बदलने के लिए नहीं करना चाहती. 725 00:52:28,060 --> 00:52:32,260 हम, पथ चर को कवर करने जा रहे हैं कि इन मामलों और एक के सभी में सूचना, 726 00:52:32,260 --> 00:52:37,070 वातावरण चर में बड़े अक्षरों में है और बाध्य खोल चर छोटे अक्षरों में है. 727 00:52:37,070 --> 00:52:39,240 आप एक बदलते हैं, तो आप अन्य बदलना चाहिए. 728 00:52:39,240 --> 00:52:45,960 आप 2 चर बाध्य नहीं कर सकते हैं के रूप में बाध्यकारी के इस तरह स्थापित नहीं किया जा सकता है, 729 00:52:45,960 --> 00:52:50,570 अन्य की तुलना में इन 4, और इन चर में बाध्यकारी पूर्ववत नहीं किया जा सकता है, 730 00:52:50,570 --> 00:52:52,090 आप उन्हें अलग नहीं कर सकते. 731 00:52:52,090 --> 00:52:55,820 तो चर के इन 4 जोड़े बंधे हुए हैं. 732 00:52:55,820 --> 00:52:59,020 वे हमेशा रहेगा. कोई भी दूसरों के लिए किया जाएगा. 733 00:52:59,020 --> 00:53:05,720 इसके अलावा, यह एक ही नाम के साथ चर बनाने के लिए संभव होगा 734 00:53:05,720 --> 00:53:07,780 विपरीत प्रकार की. 735 00:53:07,780 --> 00:53:11,600 आप छोटे अक्षरों में एक खोल चर अवधि बना सकता है 736 00:53:11,600 --> 00:53:14,990 या बड़े अक्षरों में एक वातावरण चर शब्द. 737 00:53:14,990 --> 00:53:19,040 उन चर इन बनती चर के स्वतंत्र होगा 738 00:53:19,040 --> 00:53:20,780 और वे एक दूसरे से स्वतंत्र होगा. 739 00:53:20,780 --> 00:53:23,780 आप लोगों को भ्रमित करना चाहते हैं जब तक आप ऐसा क्यों करेगा क्यों मैं कल्पना नहीं कर सकते. 740 00:53:24,600 --> 00:53:29,730 यहाँ यह एक, पथ चर, यह एक बहुत महत्वपूर्ण एक है. 741 00:53:29,730 --> 00:53:35,550 यहां एक और बात यह मामले हो सकते हैं 742 00:53:35,550 --> 00:53:40,430 एक दूसरे के लिए बाध्य नहीं कर रहे हैं, जो समान बनती नाम के साथ चर की. 743 00:53:40,430 --> 00:53:45,000 बडे और छोटे अक्षरों में, चर, शेल और खोल हो सकता है. 744 00:53:45,000 --> 00:53:48,300 कि चर एक खोल चर है कि अगर नाम के आधार पर, आप नहीं जानते 745 00:53:48,300 --> 00:53:51,580 या एक वातावरण चर, और वे एक दूसरे के लिए बाध्य नहीं कर रहे हैं. 746 00:53:51,580 --> 00:53:55,300 तो बनती नाम की उस तरह बाध्य चर संकेत नहीं करता है. 747 00:53:55,300 --> 00:53:58,830 मैं पहले दिखा रहा था जो पथ चर,, 748 00:53:58,830 --> 00:54:01,880 शैल कमांड के लिए लग रहा है, जिसमें pathnames की एक सूची है. 749 00:54:01,880 --> 00:54:12,320 चलो यहाँ इस विंडो को अधिक मिलता है और हम गूंज $ पथ, राजधानी पत्र करता हूँ - 750 00:54:12,320 --> 00:54:20,230 पर्यावरण चर - $ पथ गूंज, छोटे पत्र - चर खोल. 751 00:54:20,230 --> 00:54:24,980 निर्देशिका की सूची एक ही है कि नोटिस. ये स्वाभाविक है. 752 00:54:24,980 --> 00:54:26,590 एक परिवर्तन, आप अन्य बदलते हैं. 753 00:54:26,590 --> 00:54:32,970 वातावरण चर में तत्वों कॉलन से अलग हो रहे हैं. सूचना है कि. 754 00:54:32,970 --> 00:54:35,130 खोल चर रिक्त स्थान से अलग होती है. 755 00:54:35,130 --> 00:54:38,760 इस परिवेश चर एक स्ट्रिंग है. 756 00:54:38,760 --> 00:54:41,480 खोल चर एक सरणी है. 757 00:54:41,480 --> 00:54:43,490 बॉर्न खोल सरणियों नहीं था. 758 00:54:43,490 --> 00:54:46,600 पार्टी की योजना बनाई है, लेकिन यह पहले से ही खोल का एक निश्चित हिस्सा है. 759 00:54:46,600 --> 00:54:48,660 यह एक स्ट्रिंग और नहीं एक सरणी है. 760 00:54:48,660 --> 00:54:50,420 सी खोल हमेशा सरणियों था. 761 00:54:50,420 --> 00:54:52,630 सरणियों के साथ काम करने के लिए बहुत आसान कर रहे हैं. 762 00:54:52,630 --> 00:54:54,400 आप इसे के कुछ हिस्सों के लिए उल्लेख कर सकते हैं. 763 00:54:54,400 --> 00:55:02,350 तो गूंज $ पथ [1] और मैं मिल / usr / बिन, पहले तत्व. 764 00:55:02,350 --> 00:55:09,950 फिर, डॉलर याद साइन इतिहास सूची के अंतिम तत्व के लिए खड़ा है. 765 00:55:09,950 --> 00:55:16,850 क्या वहां क्या होता है? यह एक चर प्रतीक के रूप में डॉलर के हस्ताक्षर खोजने की कोशिश की. 766 00:55:16,850 --> 00:55:20,850 मैं यह बच. उफ़. यह है कि या तो नहीं ले जाएगा. 767 00:55:20,850 --> 00:55:23,690 इन चीजों में से कुछ इतनी अच्छी तरह से काम नहीं करते. 768 00:55:23,690 --> 00:55:28,140 शायद हम सिर्फ इतना है कि बाहर छोड़ देंगे. 769 00:55:28,140 --> 00:55:36,980 Asterisk पूरी बात करने के लिए संदर्भित करता है, लेकिन यह है कि आप एक तत्व निर्दिष्ट नहीं करते, तो तुम क्या हो. 770 00:55:36,980 --> 00:55:46,170 सरणी चर हेरफेर किया जा सकता है कि एक और तरीका है, 771 00:55:46,170 --> 00:55:49,500 वहाँ तत्वों, 7 तत्वों की संख्या. 772 00:55:49,500 --> 00:55:53,410 यहाँ हम चर नाम पहले पाउंड चिह्न डाल दिया. 773 00:55:53,410 --> 00:55:58,280 यहाँ एक और एक है. वहाँ एक सवालिया निशान लग. 774 00:55:58,280 --> 00:56:03,170 यह एक तार्किक मान है. उस चर मौजूद है कि इंगित करता है. 775 00:56:03,170 --> 00:56:05,160 यह चर के साथ काम करने का एक और तरीका है. 776 00:56:05,160 --> 00:56:06,660 वैसे, कि, एक सरणी चर होना जरूरी नहीं है. 777 00:56:06,660 --> 00:56:08,210 यही कारण है कि किसी भी चर हो सकता है. 778 00:56:08,210 --> 00:56:11,840 मुझे क्या करना है और अगर वहाँ ऐसी कोई चर है और मैं एक 0 मिलता है. 779 00:56:11,840 --> 00:56:14,990 चर मूल्यांकन के बारे में वहाँ एक और छोटी सी बात. 780 00:56:23,670 --> 00:56:32,950 पीछे यह एक करने के लिए यहाँ, अगर आप इस के साथ काम करना चाहता था किसी कारण के लिए 781 00:56:32,950 --> 00:56:37,990 बल्कि सरणी के साथ काम करने से, खोल चर, 782 00:56:37,990 --> 00:56:41,470 पेट के आधार पर इन चीजों को अलग नहीं कर सकता कि कमानों रहे हैं. 783 00:56:41,470 --> 00:56:44,080 वास्तव में, आप संभवतः मार खोल में यह क्या कर रही हो जा रहे हैं, 784 00:56:44,080 --> 00:56:47,110 एक स्क्रिप्ट के कुछ प्रकार, कि आप इसे कैसे करोगे शायद होगा. 785 00:56:47,110 --> 00:56:50,350 लेकिन सी खोल में यह सरणी का उपयोग करने के लिए बहुत आसान है. 786 00:56:50,350 --> 00:56:58,250 बॉर्न खोल में, चर इस तरह एक ही अभिव्यक्ति द्वारा आवंटित कर रहे हैं, 787 00:56:58,250 --> 00:57:01,760 आप एक प्रोग्रामिंग भाषा में एक चर आवंटित कर सकते हैं जिस तरह से जैसे, 788 00:57:01,760 --> 00:57:05,110 और यहाँ कोई स्थान नहीं होना चाहिए. 789 00:57:05,110 --> 00:57:09,110 यह सिर्फ 1 स्ट्रिंग हो कि आवश्यक है. 790 00:57:09,110 --> 00:57:14,980 बॉर्न प्रकार के गोले में, सभी चर खोल चर रहे हैं. 791 00:57:14,980 --> 00:57:19,250 पर्यावरण चर खोल चर के एक सबसेट हैं. 792 00:57:19,250 --> 00:57:24,060 वे निर्यात से गैर परिवेश चर से विशिष्ट हैं. 793 00:57:24,060 --> 00:57:28,860 ऐसा करने के लिए आदेश निर्यात प्रिंटर की तरह, निर्यात होता है. 794 00:57:28,860 --> 00:57:34,930 हम इस तरह के एक चर को परिभाषित करने के लिए थे, 795 00:57:34,930 --> 00:57:38,480 हम इसे खोजने के लिए एक मुद्रण आदेश चाहता था, यह एक वातावरण चर करना होगा, 796 00:57:38,480 --> 00:57:40,730 और कहा कि हम इसे बनाने कैसे है. 797 00:57:40,730 --> 00:57:42,090 यहाँ तरह की भ्रामक कुछ है. 798 00:57:42,090 --> 00:57:50,430 यह अभिव्यक्ति, पर्यावरण के लिए निर्यात, इस बॉर्न खोल अवधारणा से निकला 799 00:57:50,430 --> 00:57:54,520 और अभी तक कि अभिव्यक्ति, सी खोल के वर्णन में प्रयोग किया जाता है 800 00:57:54,520 --> 00:57:57,920 ऐसा कोई आदेश निर्यात के रूप में है, जहां. 801 00:57:57,920 --> 00:58:06,200 आप अभी से ही निर्यात का कहना है, तो आप निर्यात की एक सूची प्राप्त - 802 00:58:06,200 --> 00:58:10,620 तो मैं बस यहाँ निर्यात करते हैं, तो ऐसी कोई बात नहीं. 803 00:58:13,620 --> 00:58:15,200 ठीक है, हम वहाँ जाते हैं. 804 00:58:15,200 --> 00:58:17,010 ये बातें, वैसे, भी खोल से परिभाषित कर रहे हैं. 805 00:58:17,010 --> 00:58:19,400 मैं अपने आप से इनमें से किसी भी परिभाषित नहीं किया. 806 00:58:19,400 --> 00:58:23,550 खोल से ही हर तरह की बातें करता है. 807 00:58:23,550 --> 00:58:26,650 यह स्वतः ही बातें करना चाहिए. 808 00:58:30,240 --> 00:58:36,880 पार्टी की योजना बनाई या कॉर्न खोल में, अगर आप इस तरह एक आदेश चला सकते हैं 809 00:58:36,880 --> 00:58:42,000 एक चर एक मूल्य देने और 1 आदेश में यह निर्यात करेगा, जो दोनों. 810 00:58:42,000 --> 00:58:46,150 बॉर्न खोल में वे निर्यात एक तरह अलग आदेशों रहना होगा. 811 00:58:46,150 --> 00:58:48,410 यहाँ भ्रमित करने वाला है कि एक और पहलू है. 812 00:58:48,410 --> 00:58:52,220 सी खोल में सेट आदेश चर को परिभाषित करता है 813 00:58:52,220 --> 00:58:55,550 और कोई तर्क के साथ चर 'मूल्यों को क्या कर रहे हैं आपको बताता है. 814 00:58:55,550 --> 00:59:01,140 पार्टी की योजना बनाई खोल में, कोई तर्क के साथ सेट आदेश, एक ही बात करता है 815 00:59:01,140 --> 00:59:03,580 लेकिन तर्क के साथ यह काफी कुछ अलग करता है. 816 00:59:03,580 --> 00:59:06,200 तो ये यहां विभिन्न तर्क हैं. 817 00:59:06,200 --> 00:59:10,460 इनमें से कुछ उनमें से कुछ खोल चर रहे हैं, पर्यावरण चर रहे हैं. 818 00:59:10,460 --> 00:59:13,200 वे सब के सब वास्तव में खोल चर रहे हैं. उन में से कुछ पर्यावरण चर रहे हैं. 819 00:59:15,690 --> 00:59:23,920 तर्क के साथ सेट आदेश संचालित करने के लिए इस्तेमाल किया जा सकता है 820 00:59:23,920 --> 00:59:28,220 एक स्क्रिप्ट के लिए स्थितीय मापदंडों पर, 821 00:59:28,220 --> 00:59:33,910 जो उन्हें एक बार में सभी होने का एक तरीका है. 822 00:59:33,910 --> 00:59:36,150 हम सच है कि आज में नहीं जा सकते. 823 00:59:36,150 --> 00:59:39,580 यह भी खोल व्यवहार बदलने के लिए इस्तेमाल किया जा सकता है. 824 00:59:39,580 --> 00:59:46,700 विशेष रूप बैश में खोल कैसा व्यवहार का निर्धारण करेगा जो चर रहे हैं. 825 00:59:46,700 --> 00:59:51,310 फिर भी आप देख सकते हैं कि सिर्फ इस एक आदेश, इस आदेश. 826 00:59:51,310 --> 00:59:59,050 चर और चर प्रकार के द्वारा पीछा typeset कॉर्न और बैश गोले में प्रयोग किया जाता है. 827 00:59:59,050 --> 01:00:04,970 , यह अनिवार्य नहीं है, लेकिन यह चर के मूल्यों को प्रतिबंधित करने के लिए इस्तेमाल किया जा सकता है 828 01:00:04,970 --> 01:00:08,400 त्रुटियों को रोकने के लिए उपयोगी हो सकता है, और यह काफी आम है जो कर सकते हैं. 829 01:00:08,400 --> 01:00:11,640 तो मैं सिर्फ मामले में आप कहीं यह देखना है कि उल्लेख कर रहा हूँ. 830 01:00:17,290 --> 01:00:19,160 जहां आदेश. 831 01:00:19,160 --> 01:00:22,490 मैंने उल्लेख किया याद रखें कि पहले जहां सी खोल में आदेश, 832 01:00:22,490 --> 01:00:28,750 आप एक आदेश pathname का स्थान बता सकते हैं जो. 833 01:00:28,750 --> 01:00:32,580 यहाँ आदेश प्रतिस्थापन है. 834 01:00:32,580 --> 01:00:41,900 आप कहीं अपने कीबोर्ड इस तरह दिखता है एक चरित्र पर लगाना चाहिए. 835 01:00:41,900 --> 01:00:44,910 कीबोर्ड पर स्थान भिन्न करने के लिए जा रहा है. 836 01:00:44,910 --> 01:00:47,050 हम यह backquote बुलाया है. यह एक बोली के आकार के बारे में है. 837 01:00:47,050 --> 01:00:48,720 यह सही कम करने के लिए ऊपरी बाएँ से चला जाता है. 838 01:00:48,720 --> 01:00:52,690 यहाँ अपने मैक कुंजीपटल पर यह ऊपरी बाएँ हाथ कोने में है. 839 01:00:52,690 --> 01:00:58,150 यही चरित्र एक आदेश के भीतर एक आदेश पर अमल करने के लिए इस्तेमाल किया जा सकता है. 840 01:00:58,150 --> 01:01:03,400 आप backquotes अंदर एक अभिव्यक्ति है, 841 01:01:03,400 --> 01:01:07,080 अभिव्यक्ति है कि इसे चलाने के लिए है, कोई आदेश है. 842 01:01:07,080 --> 01:01:09,010 उस आदेश का उत्पादन 843 01:01:09,010 --> 01:01:11,980 फिर पूरे backquote अभिव्यक्ति के लिए एवजी है 844 01:01:11,980 --> 01:01:16,110 तब कि उत्पादन के साथ चलता है, जो एक लंबे समय तक आदेश अंदर 845 01:01:16,110 --> 01:01:22,010 इसके आगे तर्क और इसकी स्ट्रिंग के हिस्से के रूप में. 846 01:01:22,010 --> 01:01:28,640 यहाँ है कि का उपयोग करता है जो एक आदेश है. 847 01:01:28,640 --> 01:01:32,340 चलो यहाँ ऑपरेशन का प्रदर्शन करते हैं. 848 01:01:44,980 --> 01:01:49,090 Backquotes बाहर ले, चलो यहाँ चलते हैं. 849 01:01:49,090 --> 01:01:54,410 नियंत्रण एक Emacs संपादन वाक्य रचना के साथ लाइन की शुरुआत करने के लिए मुझे मिलता है. 850 01:01:54,410 --> 01:02:00,380 अब तक pathnames, जहां क्या करता है 851 01:02:00,380 --> 01:02:05,040 मैं इसे इस तरह से करते हैं, लेकिन जब यह तो pathnames की उस सूची में प्लग 852 01:02:05,040 --> 01:02:08,750 इस पूरे backquote अभिव्यक्ति और उन पर रन LS-L के स्थान पर. 853 01:02:08,750 --> 01:02:11,120 सुविधाजनक की तरह, है न? 854 01:02:11,120 --> 01:02:14,860 तो है कि एक बात साफ है. यही backquotes कैसे काम करते है. 855 01:02:14,860 --> 01:02:17,560 अब चलो थोड़ा आगे नीचे चलते हैं. 856 01:02:17,560 --> 01:02:22,050 ये फर्जी नाम हैं. मैं वास्तव में इन का उपयोग करें. 857 01:02:22,050 --> 01:02:26,410 मैं 1 संपादन आपरेशन के साथ इस में प्राप्त करने की कोशिश करेंगे. 858 01:02:34,900 --> 01:02:36,900 ठीक है. 859 01:02:36,900 --> 01:02:39,630 अब हम उन परिभाषाओं बाहर आया कैसे देखते हैं. 860 01:02:39,630 --> 01:02:44,930 उर्फ इसे परिभाषित कैसे मुझे बता रहा LWH. 861 01:02:44,930 --> 01:02:51,210 यह सिर्फ यह है, लेकिन बाहरी उद्धरण से दूर ले जाया गया है नोटिस 862 01:02:51,210 --> 01:02:53,750 और विस्मयादिबोधक बिंदु से दूर ले जाया जाता है. 863 01:02:53,750 --> 01:02:58,940 ! *, सभी तर्कों की पूरी सूची. 864 01:02:58,940 --> 01:03:03,580 एक उर्फ ​​परिभाषा में यह मैं इस का उपयोग करने के लिए जहां वापस लागू होगी. 865 01:03:03,580 --> 01:03:10,620 LWH ksh पार्टी की योजना बनाई. ठीक है. 866 01:03:10,620 --> 01:03:13,960 कि कैसे काम करता है? यह मुझे कुछ टाइपिंग बचाता है. 867 01:03:13,960 --> 01:03:16,440 चलो बस यहाँ कुछ और ही उल्लेख करने के लिए एक छोटा सा चलते हैं. 868 01:03:19,150 --> 01:03:23,120 यहाँ इन विभिन्न गोले सूचना है. मैंने पहले यह उल्लेख किया जाना चाहिए. 869 01:03:23,120 --> 01:03:36,060 सीएसएच एक यहाँ पर 2 और ऐसा करता है / बिन / tcsh है. 870 01:03:36,060 --> 01:03:39,870 हम उन वास्तव में एक ही फ़ाइल है कि अन्य तरीकों से स्थापित कर सके. 871 01:03:39,870 --> 01:03:43,150 क्या आप पार्टी की योजना बनाई मिल श टाइप अगर मैं कह रहा था याद है. 872 01:03:43,150 --> 01:03:47,390 इस प्रकार के और आप यह मिलता है. 873 01:03:47,390 --> 01:03:51,730 लेकिन उन से जुड़े नहीं हैं. वहाँ उन एकल वाले हैं. 874 01:03:51,730 --> 01:03:54,910 और यह एक दूसरे को कॉल कर सकते हैं जो फ़ाइल की तरह नहीं है. 875 01:03:54,910 --> 01:03:59,460 तो उन अलग फाइल कर रहे हैं; सी खोल लोगों को एक ही फाइल कर रहे हैं. 876 01:03:59,460 --> 01:04:03,640 वापस नीचे यहाँ, यहाँ एक दूसरे, इस उर्फ, 877 01:04:03,640 --> 01:04:09,090 कि इस आदेश, फाइल चल रहा है ध्यान दें. 878 01:04:09,090 --> 01:04:13,810 यही उर्फ ​​कि चलाता है. फ़ाइल आप एक फ़ाइल के प्रकार बताता है. 879 01:04:13,810 --> 01:04:20,330 तो FWH ksh पार्टी की योजना बनाई. ठीक है. 880 01:04:20,330 --> 01:04:23,230 वह फाइल आदेश का उत्पादन है. 881 01:04:23,230 --> 01:04:24,630 आप इस यहाँ क्या मतलब है पता है, अगर मैं नहीं जानता कि 882 01:04:24,630 --> 01:04:26,750 2 आर्किटेक्चर के साथ मच हे सार्वभौमिक द्विआधारी. 883 01:04:26,750 --> 01:04:30,470 मैक में 2 संभव प्रोसेसर प्रकार के होते हैं 884 01:04:30,470 --> 01:04:34,780 और कुछ कार्यक्रमों दोनों साथ चलाने के लिए सक्षम होने के लिए लिखा गया था, 885 01:04:34,780 --> 01:04:37,950 और फ़ाइल आदेश है कि निर्धारित कर सकते हैं, इसलिए है कि इसका क्या मतलब है. 886 01:04:37,950 --> 01:04:40,660 इन फ़ाइलों की दोनों कि जिस तरह से लिखा गया था. 887 01:04:40,660 --> 01:04:43,760 तो हम, हम backquote कैसे काम करता है, उर्फ ​​कैसे काम करता है 888 01:04:43,760 --> 01:04:48,640 हम वास्तविक जिंदगी में लोकसभा या फ़ाइल कैसे काम करता है. 889 01:04:52,050 --> 01:04:57,000 यह काम नहीं कर सकता. "जहाँ जहाँ" और "LWH जहां" का प्रयास करें. ठीक है, चलो कि कोशिश करते हैं. 890 01:04:57,000 --> 01:05:01,040 जहां जहां. 891 01:05:01,040 --> 01:05:03,500 जहां एक खोल में बनाया है. 892 01:05:03,500 --> 01:05:06,970 इससे पहले हम बैश जहां नहीं था पता चला कि याद रखें. 893 01:05:06,970 --> 01:05:10,080 आप पार्टी की योजना बनाई खोल में जहां लिखते हैं, तो आपको एक त्रुटि संदेश मिलता है. 894 01:05:10,080 --> 01:05:12,540 बल्कि यह एक अलग आदेश किया जा रहा से खोल का सिर्फ एक हिस्सा है. 895 01:05:12,540 --> 01:05:20,000 मैं LWH जहां की तलाश में लिखते हैं, तो क्या होता है? वहाँ देखो क्या होता है. 896 01:05:20,000 --> 01:05:22,850 जहां दौड़ा जहां, इस उत्पादन मिल गया, और फिर लोकसभा चलाने की कोशिश की 897 01:05:22,850 --> 01:05:25,600 एक खोल में बनाया है जहां पर एल के रूप में. 898 01:05:25,600 --> 01:05:28,790 जहां नहीं है, लेकिन अन्य लोगों को मौजूद नहीं है. 899 01:05:28,790 --> 01:05:32,090 इनमें से कोई भी वास्तव में, मौजूद हैं. 900 01:05:32,090 --> 01:05:35,560 तो यह है कि हमेशा काम नहीं करता है, और यह भी कि कैसे कुछ चीजें दिखाता है 901 01:05:35,560 --> 01:05:39,580 आप सोचा कि हो सकता है काफी क्या नहीं करते. 902 01:05:40,930 --> 01:05:43,010 के आगे एक छोटे से यहाँ नीचे चलते हैं. 903 01:05:44,890 --> 01:05:54,760 यहाँ यह बैश में है. वह भी backquote तरह आदेश प्रतिस्थापन है. 904 01:05:54,760 --> 01:06:05,280 लेकिन backquote के विपरीत, यह इस चर शैली का उपयोग करता है. 905 01:06:05,280 --> 01:06:09,860 एक डॉलर के हस्ताक्षर के साथ शुरू जो अभिव्यक्ति का एक नंबर रहे हैं 906 01:06:09,860 --> 01:06:16,070 इन चर नहीं कर रहे हैं, वे डॉलर के हस्ताक्षर का उपयोग उधार 907 01:06:16,070 --> 01:06:19,570 किसी तरह की अभिव्यक्ति से संकेत मिलता है. 908 01:06:19,570 --> 01:06:23,550 यही कोष्ठकों या कोष्ठक या डबल कोष्ठकों से घिरे किया जा सकता है, 909 01:06:23,550 --> 01:06:26,320 जो एक अलग उद्देश्य है. 910 01:06:26,320 --> 01:06:29,500 यहां सिंगल कोष्ठकों सिर्फ backquotes की तरह एक आदेश प्रतिस्थापन कर रहे हैं. 911 01:06:29,500 --> 01:06:32,720 डबल कोष्ठकों वास्तव में एक अंकगणितीय ऑपरेशन है. 912 01:06:32,720 --> 01:06:35,380 अन्य syntaxes, अन्य संचालन कर रहे हैं. 913 01:06:35,380 --> 01:06:41,520 Backquote वाक्यविन्यास बैश में उपलब्ध है. 914 01:06:41,520 --> 01:06:46,780 बहरहाल, यह एक बेहतर है. यह पढ़ने के लिए बहुत आसान है और यह घोंसले के शिकार की अनुमति देता है. 915 01:06:46,780 --> 01:06:51,300 आप $ (आदेश) के अंदर एक और आदेश हो सकता है 916 01:06:51,300 --> 01:06:54,590 की तरह कुछ - 917 01:07:14,560 --> 01:07:18,210 मैं वहाँ एक सूची मिलता है. 918 01:07:18,210 --> 01:07:21,670 मैं भी backquote था कि अगर काम करेगा. 919 01:07:32,050 --> 01:07:38,470 क्या मैं ऐसा कुछ करना चाहते हैं - 920 01:08:03,390 --> 01:08:06,430 आप शायद वास्तव में इस आदेश का उपयोग नहीं होगा, 921 01:08:06,430 --> 01:08:14,160 लेकिन इस आंतरिक आदेश प्रतिस्थापन एक साथ शुरुआत सभी फ़ाइलों के नाम गूंजता है, 922 01:08:14,160 --> 01:08:18,229 तो यह एक, उन फ़ाइलों पर LS-L चलाता 923 01:08:18,229 --> 01:08:20,500 और फिर यह सिर्फ उत्पादन गूँज. 924 01:08:21,729 --> 01:08:24,479 तुम्हें शायद ऐसा नहीं होगा, तुम सिर्फ गूंज या लोकसभा करना चाहते हैं, 925 01:08:24,479 --> 01:08:29,450 लेकिन इस आदेशों की नेस्टिंग कैसे काम करता है दिखाता है. 926 01:08:29,450 --> 01:08:34,380 तो बस एक और विशेषता यहां. 927 01:08:34,380 --> 01:08:37,450  मैं यह पहले उल्लेख किया है, कि जब तुम जहां सी खोल में, 928 01:08:37,450 --> 01:08:42,770 आदेशों लगाने के लिए बॉर्न प्रकार के गोले में काम करता है लिखें. 929 01:08:48,939 --> 01:08:52,270 मैं वहाँ कह रही थी बस क्या निर्मित आदेश,. 930 01:08:52,270 --> 01:08:54,640 कमानों जहां तरह खोल, का हिस्सा हैं. 931 01:08:54,640 --> 01:08:59,880 खोल लोकसभा की तरह एक कमांड निष्पादित करता है, यह मार्ग के माध्यम से यह रेखांकित 932 01:08:59,880 --> 01:09:03,029 कहीं न कहीं, कुछ निर्देशिका में यह पाता है 933 01:09:03,029 --> 01:09:05,800 स्मृति में, एक नया खोल बनाता है कि पढ़ता है, 934 01:09:05,800 --> 01:09:08,960 खोल में आदेश रास या जो भी पढ़ता 935 01:09:08,960 --> 01:09:11,450 पर्यावरण चर पहले से ही स्थित हैं जहां, 936 01:09:11,450 --> 01:09:14,000 और फिर यह करने के लिए निष्पादन स्थानांतरित. 937 01:09:14,000 --> 01:09:18,319 अंतर्निहित आदेश, उस आदेश के लिए कोड खोल के अंदर है, 938 01:09:18,319 --> 01:09:21,460 तो खोल बस अपनी आचार संहिता के भाग को क्रियान्वित करने से शुरू होता है. 939 01:09:21,460 --> 01:09:24,569 जहां इस तरह के एक आदेश है. यह वास्तव में तेजी से हो जाता है. 940 01:09:24,569 --> 01:09:28,380 यह स्मृति में कुछ भी पढ़ने के लिए नहीं है, यह स्मृति में पहले से ही है. 941 01:09:28,380 --> 01:09:32,460 निर्मित आदेशों हमेशा एक ही नाम के साथ आदेशों पर पूर्वता ले. 942 01:09:32,460 --> 01:09:36,050 पथ में निर्देशिका में हैं कि कमानों ही नाम हो सकता है, 943 01:09:36,050 --> 01:09:39,090 अलग निर्देशिका में आदेश, अलग निर्देशिका में फाइल. 944 01:09:39,090 --> 01:09:41,740 पहले मार्ग में ही होता है कि एक आपको मिलेगा एक है. 945 01:09:41,740 --> 01:09:43,770 एक अंतर्निहित आदेश नहीं है, तो आप हमेशा यह मिलता है. 946 01:09:43,770 --> 01:09:47,890 यह पथ में एक आदेश से कम वरीयता देने के लिए कोई रास्ता नहीं है. 947 01:09:47,890 --> 01:09:54,140 आप रास्ता है कि आदेश प्राप्त करना चाहते हैं, तो आप पूर्ण pathname टाइप कर सकते हैं. 948 01:09:54,140 --> 01:09:55,850 वहाँ एक आदेश कहीं जहां रास्ते में थे, तो 949 01:09:55,850 --> 01:09:58,440 आप / बिन / जहां टाइप कर सकते हैं और आप यह मिलता था. 950 01:09:58,440 --> 01:10:01,800 आप पूरे पथ टाइप नहीं करना चाहते हैं, तो आप एक उपनाम परिभाषित कर सकता है. 951 01:10:01,800 --> 01:10:06,310 आप उर्फ ​​अंतर्निहित आदेश के रूप में एक ही नाम दिया है अगर वास्तव में, यह काम करेगा 952 01:10:06,310 --> 01:10:08,790 उर्फ परिभाषा मूल्यांकन किया जाता है क्योंकि 953 01:10:08,790 --> 01:10:13,220 खोल इसे निष्पादित किया जाना चाहिए जो एक अंतर्निहित आदेश है कि निर्धारित करता है पहले. 954 01:10:18,810 --> 01:10:23,440 तो फिर इस यहाँ कुछ कमांड के साथ एक छोटे से अधिक जटिल हो जाता है. 955 01:10:23,440 --> 01:10:29,880 कुछ कमांड का मामला वास्तव में निर्मित कर रहे हैं आदेश और मार्ग में. 956 01:10:29,880 --> 01:10:34,140 उनमें से एक आदेश मैं सिर्फ उन उदाहरणों में थोड़ी देर पहले इस्तेमाल किया, गूंज है. 957 01:10:34,140 --> 01:10:37,410 इको पथ में कोई आदेश है और यह हर खोल में है. 958 01:10:37,410 --> 01:10:40,580 वे आवश्यक रूप से सभी एक ही तरह से व्यवहार नहीं करते. 959 01:10:40,580 --> 01:10:42,970 यह केवल पथ में मूल रूप से एक आदेश था. 960 01:10:42,970 --> 01:10:45,280 यह बाद में गोले करने के लिए बनाया गया था. 961 01:10:45,280 --> 01:10:48,080 पर्यावरण पर निर्भर है, जो विकल्प हैं क्योंकि 962 01:10:48,080 --> 01:10:52,970 और कमांड लाइन विकल्प, निर्मित आदेशों 963 01:10:52,970 --> 01:10:57,030 पथ में किया गया था कि आदेश के रूप में ही कार्य करने के लिए लिखा गया था, 964 01:10:57,030 --> 01:10:59,670 यह वे कहते हैं कि जिस तरह से लिखा गया होता संभावना नहीं है 965 01:10:59,670 --> 01:11:01,720 आदेश पहले से ही पथ के लिए नहीं लिखा गया था. 966 01:11:01,720 --> 01:11:06,180 तो इस साइड इफेक्ट है. इसका इतिहास यहाँ असर पड़ता है. 967 01:11:06,180 --> 01:11:08,380 वहाँ विकल्प मौजूद हैं. 968 01:11:14,280 --> 01:11:23,060 Echo_style बुलाया tcsh में एक चर द्वारा परिभाषित एक विकल्प भी नहीं है. 969 01:11:23,060 --> 01:11:27,700 वह काम करता गूंज कि ​​जिस तरह से बदल सकते हैं कि इन चर में से एक है. 970 01:11:27,700 --> 01:11:30,910 आप एक चर असाइन कर सकते हैं, जिसमें अन्य मामलों रहे हैं 971 01:11:30,910 --> 01:11:36,290 कि एक अंतर्निहित आदेश सहित खोल आपरेशन, काम करता है, उस तरह से बदल जाता है. 972 01:11:36,290 --> 01:11:38,130 यह और कुछ को प्रभावित नहीं करेगा 973 01:11:38,130 --> 01:11:40,640 अन्य आदेशों खोल चर के लिए उपयोग नहीं करते हैं क्योंकि, 974 01:11:40,640 --> 01:11:42,090 केवल वातावरण चर. 975 01:11:42,090 --> 01:11:45,360 लेकिन शेल आपरेशन खोल चर पढ़ सकते हैं. 976 01:11:45,360 --> 01:11:50,710 यही सीएसएच के लिए काम नहीं करेगा. यह केवल tcsh है. संवर्द्धन कि में से एक है. 977 01:11:58,540 --> 01:12:04,620 यह अक्षरों से परे का मूल्यांकन करता है जब पार्सिंग, दृश्यों है 978 01:12:04,620 --> 01:12:08,140 यह चर, उपनाम, इतिहास के संदर्भ का मूल्यांकन करता है. 979 01:12:08,140 --> 01:12:11,830 इन बातों के लिए एक विशेष अनुक्रम है. 980 01:12:11,830 --> 01:12:13,730 यह एक विशेष क्रम में बातें करता है, तो 981 01:12:13,730 --> 01:12:16,080 और एक तरह की एक अभिव्यक्ति है कि कुछ करने के लिए हो जाता है 982 01:12:16,080 --> 01:12:20,650 पहले से ही मूल्यांकन किया गया है, जो इसे फिर से मूल्यांकन नहीं किया जाएगा. 983 01:12:20,650 --> 01:12:24,520 यह यह हो जाता है, तो यह सिर्फ पात्रों पर समाप्त हो जाएगी. 984 01:12:24,520 --> 01:12:29,920 तो अगर आदेश प्रतिस्थापन की तरह कुछ भाव का मूल्यांकन 985 01:12:29,920 --> 01:12:36,850 या चर या जो कुछ भी एक अभिव्यक्ति को जन्म देता है 986 01:12:36,850 --> 01:12:39,240 आप मूल्यांकन किया जाना चाहेगा, जो 987 01:12:39,240 --> 01:12:42,510 कि मूल्यांकन के क्रम में बाद में होता ही है कि अगर काम करेंगे. 988 01:12:42,510 --> 01:12:45,010 मुझे लगता है मैं स्पष्ट वहाँ जा रहा हूँ उम्मीद है. 989 01:12:45,010 --> 01:12:50,460 यही पार्स अनुक्रम, सी खोल में एक ऑपरेशन, 990 01:12:50,460 --> 01:12:56,490 यह गैर निर्मित में आदेश के लिए है के रूप में बनाया आदेशों के लिए ही नहीं है. 991 01:12:56,490 --> 01:12:58,890 मैं वहाँ बैश के बारे में यकीन नहीं है. 992 01:12:58,890 --> 01:13:02,450 उदाहरण के लिए, एक खोल चर, तो एक इतिहास संदर्भ उत्पादित 993 01:13:02,450 --> 01:13:04,230 यह शायद इतिहास में वापस नहीं जाना होगा. 994 01:13:04,230 --> 01:13:06,010 यह सिर्फ विस्मयादिबोधक बिंदु मिल जाएगा. 995 01:13:06,010 --> 01:13:08,840 वास्तव में, हम सिर्फ सही है कि अब बाहर की कोशिश कर सकते हैं. 996 01:13:09,720 --> 01:13:18,240 एक = सेट और हम वहाँ में डाल करने के लिए होगा. 997 01:13:30,690 --> 01:13:34,580 ओह, रुको. माफ़ कीजिए. मैं पार्टी की योजना बनाई में ऐसा किया. मैं यहां यह करना चाहता था. 998 01:13:53,470 --> 01:13:56,080 देखना है, तो यह है कि इतिहास संदर्भ का मूल्यांकन नहीं किया 999 01:13:56,080 --> 01:14:00,520 यह इतिहास का भाव के मूल्यांकन की बात पिछले पहले से ही था, क्योंकि 1000 01:14:00,520 --> 01:14:02,720 यह चर का मूल्यांकन किया जाता है. 1001 01:14:02,720 --> 01:14:05,550 इसलिए कि पार्स की 1 प्रभाव है. 1002 01:14:05,550 --> 01:14:08,760 और फिर, निर्मित आदेशों उसी तरह से नहीं किया जाता है. 1003 01:14:08,760 --> 01:14:11,230 ठीक है. चलो यहाँ अगले एक में चलते हैं. 1004 01:14:11,230 --> 01:14:16,060 इस 1 लाइन होने का इरादा है, लेकिन यह आसान को पढ़ने के लिए कर रही है. 1005 01:14:19,130 --> 01:14:21,530 कि क्या करता है? 1006 01:14:21,530 --> 01:14:28,640 आप हम फ़ाइल नाम वाइल्डकार्ड के रूप में तारक मूल्यांकन कर सकते हैं कि याद कर सकते हैं, 1007 01:14:28,640 --> 01:14:33,890 और प्रश्न चिह्न और ब्रैकेट अभिव्यक्ति की तरह अन्य फ़ाइल नाम वाइल्डकार्ड कर रहे हैं. 1008 01:14:33,890 --> 01:14:39,000 मूल्यांकन के उस तरह globbing कहा जाता है. 1009 01:14:39,000 --> 01:14:46,290 इस आदेश की शुरुआत में noglob सेट ऐसा नहीं करते कहते हैं. 1010 01:14:46,290 --> 01:14:53,370 सेट किए बिना noglob वापस कर रही है कि करने के लिए जाना कहते हैं. 1011 01:14:53,370 --> 01:14:56,440 उस सेट ग्लोब कि प्रभाव नहीं होगा ध्यान दें. 1012 01:14:56,440 --> 01:15:00,800 साधारण भाषा में, सेट ग्लोब या सेट किए बिना noglob, बराबर होना प्रतीत होता है 1013 01:15:00,800 --> 01:15:03,290 लेकिन यहां ऐसा नहीं है. यह सेट किए बिना noglob है. 1014 01:15:05,120 --> 01:15:07,910 अब TSET. TSET टर्मिनल सेट के लिए खड़े थे. 1015 01:15:07,910 --> 01:15:11,840 Windowing सिस्टम उपलब्ध हो गया इससे पहले कि यह है कि अक्सर अब इस्तेमाल किया, लेकिन नहीं है 1016 01:15:11,840 --> 01:15:15,760 और आप एक ही टर्मिनल था, तुम प्रकार का निर्धारण करने के लिए हो सकता है. 1017 01:15:15,760 --> 01:15:18,700 और कुछ एक ईथरनेट पर या नेटवर्क से आ रहा था, तो 1018 01:15:18,700 --> 01:15:21,120 आप इसे एक VT100 है कहने के लिए चाहते हो सकता है. 1019 01:15:21,120 --> 01:15:26,630 VT100 टर्मिनल के कारोबार में एक मानक की तरह है. यह दिसम्बर टर्मिनल से आता है. 1020 01:15:26,630 --> 01:15:35,270 तुम सिर्फ डायलअप करते हैं - कि नोटिस? इस हुह वापस एक तरीके से चला जाता है? 1021 01:15:35,270 --> 01:15:39,520 तो हम बस यहाँ पर TSET करते हैं, 1022 01:15:39,520 --> 01:15:45,250 मैं सिर्फ TSET करते हैं, यह मेरे टर्मिनल रीसेट करने की है, लेकिन आप कुछ भी नहीं देखा था. 1023 01:15:45,250 --> 01:15:47,340 यह वास्तव में कुछ भी नहीं बदला. 1024 01:15:47,340 --> 01:15:48,620 -S 1025 01:15:49,900 --> 01:15:51,480 ठीक है. 1026 01:15:51,480 --> 01:15:53,350 setenv कार्यकाल टर्म रंग. 1027 01:15:53,350 --> 01:15:57,080 उस बदलाव नहीं किया तो हम पहले से ही अवधि कि जिस तरह से सेट किया गया था कि पता है. 1028 01:15:57,080 --> 01:15:58,860 यही कारण है कि हम यह करना चाहते हैं जिस तरह से है. 1029 01:15:58,860 --> 01:16:07,080 लेकिन यह है कि इस आदेश, TSET-S, सिर्फ उत्पादन इन आदेशों का नोटिस. यह उन्हें नहीं चला था. 1030 01:16:07,080 --> 01:16:09,770 यह इन आदेशों का नहीं चला था, उन्हें यह उत्पादन. 1031 01:16:09,770 --> 01:16:13,650 तो यह तो चला जाएगा जो आदेशों का उत्पादन करने का इरादा है. 1032 01:16:13,650 --> 01:16:16,360 आप उस फ़ाइल में कमांड याद मैं सिर्फ तुम उस में एक क्यू पता चला था. 1033 01:16:16,360 --> 01:16:18,910 तो चलो करते हैं. 1034 01:16:18,910 --> 01:16:23,750 क्यू कुछ उत्पादन को दबा, लेकिन आप देख सकते हैं कि, यहां कोई फर्क नहीं पड़ता. 1035 01:16:23,750 --> 01:16:27,980 मैं सिर्फ यह मामला नहीं था कि आप को दिखाने के लिए कर रहा हूँ कि. 1036 01:16:27,980 --> 01:16:31,870 इस backquote वाक्यविन्यास में है. 1037 01:16:31,870 --> 01:16:35,340 Backquote यहाँ, यहाँ backquote नोट. 1038 01:16:35,340 --> 01:16:37,680 मैं यहाँ इन बातों को छोड़ते हुए हूँ. 1039 01:16:37,680 --> 01:16:39,570 ये क्या करने के लिए यह कह के मामलों रहे हैं 1040 01:16:39,570 --> 01:16:42,050 टर्मिनलों के विशेष प्रकार के मामले में - 1041 01:16:42,050 --> 01:16:45,400 ईथरनेट, नेटवर्क, डायलअप, तुम क्या है. 1042 01:16:45,400 --> 01:16:48,050 हम वास्तव में इन बातों का कोई भी नहीं कर रहे हैं क्योंकि यह यहाँ कोई फर्क नहीं पड़ता. 1043 01:16:48,050 --> 01:16:49,720 मैं सिर्फ आदेश illustrating हूँ. 1044 01:16:49,720 --> 01:16:55,170 मैं backquote के साथ ऐसा करते हैं, क्या मैं करने जा रहा हूँ? 1045 01:16:55,170 --> 01:17:00,210 इसके अलावा इस सेट noglob और सेट किए बिना noglob शामिल है कि यहां नोटिस, 1046 01:17:00,210 --> 01:17:02,630 इसलिए उन अब परिभाषा में बेमानी हैं. 1047 01:17:02,630 --> 01:17:05,380 वह हमेशा सच नहीं था, लेकिन अब वे इस आदेश में शामिल रहे हैं. 1048 01:17:05,380 --> 01:17:08,890 लेकिन अगर मैं ऐसा देखते हैं क्या होता 1049 01:17:08,890 --> 01:17:12,570 और नियंत्रण एक साथ लाइन की शुरुआत करने के लिए जाना है और मैं ऐसा. 1050 01:17:14,380 --> 01:17:18,040 ठीक है, सेट: आदेश नहीं मिला है. उस तरह की अजीब, है ना? 1051 01:17:18,040 --> 01:17:20,570 सेट एक प्रसिद्ध आदेश है. यह खोल का हिस्सा है. 1052 01:17:20,570 --> 01:17:24,040 सेट: आदेश नहीं मिला है? ऐसा क्यों है? 1053 01:17:24,040 --> 01:17:26,790 हम्म. ठीक है, चलो इस बारे में सोचते हैं. 1054 01:17:26,790 --> 01:17:31,100 यह एक backquote आदेश प्रतिस्थापन चल रहा है, 1055 01:17:31,100 --> 01:17:37,430 और उस आदेश को पार्स करने के अनुक्रम के एक खास हिस्से में होता है. 1056 01:17:37,430 --> 01:17:40,360 सेट एक अंतर्निहित आदेश है. 1057 01:17:40,360 --> 01:17:43,900 तो यह है कि आदेश प्रतिस्थापन करता है समय से, 1058 01:17:43,900 --> 01:17:48,280 यह पहले से ही में बनाया आदेशों की पहचान करने की बात पिछले मिल गया है. 1059 01:17:48,280 --> 01:17:51,900 तो यह पथ में एक आदेश के रूप में अगर सेट मानते हैं. 1060 01:17:51,900 --> 01:17:55,440 कहने की जरूरत नहीं, यह पता नहीं होता है और आपको कोई त्रुटि मिलती है. 1061 01:17:55,440 --> 01:17:59,300 खैर. पार्स अनुक्रम का एक उदाहरण है. 1062 01:17:59,300 --> 01:18:01,460 और हम उस बारे में क्या करते हैं? 1063 01:18:01,460 --> 01:18:04,800 EVAL, यहां यह बहुत दिलचस्प आदेश सूचना है. 1064 01:18:04,800 --> 01:18:06,530 मुझे लगता है कि क्या करता है आश्चर्य है. 1065 01:18:06,530 --> 01:18:08,760 आप इस मैनुअल को देखें तो - और चलो कि बस 1066 01:18:08,760 --> 01:18:12,000 इन पुस्तिकाओं हैं कैसे भ्रमित दिखाने के लिए - 1067 01:18:12,000 --> 01:18:19,400 आदमी tcsh, उलझन पुस्तिका, यहाँ चीजें पाने के लिए या तो आसान नहीं है. 1068 01:18:19,400 --> 01:18:31,850 यहाँ हम eval ARG, जाओ, तो हम 1 या अधिक तर्क हो सकता है 1069 01:18:31,850 --> 01:18:34,090 और चीजों की एक सूची नहीं है. 1070 01:18:34,090 --> 01:18:37,730 खोल के लिए सामग्री के रूप में तर्क को मानते हैं 1071 01:18:37,730 --> 01:18:43,600 और वर्तमान खोल के संदर्भ में जिसके परिणामस्वरूप आदेशों कार्यान्वित. 1072 01:18:43,600 --> 01:18:46,900 यह आमतौर पर आदेश के परिणाम के रूप में उत्पन्न आदेश पर अमल करने के लिए प्रयोग किया जाता है 1073 01:18:46,900 --> 01:18:51,310 या चर प्रतिस्थापन पार्स इन प्रतिस्थापन से पहले होता है. 1074 01:18:51,310 --> 01:18:52,580 बहुत अच्छा. 1075 01:18:52,580 --> 01:18:54,740 और यहाँ वे भी एक नमूना उपयोग के लिए TSET आदेश का संदर्भ लें 1076 01:18:54,740 --> 01:18:57,700 एक तरह मैं सिर्फ तुम्हें पता चला. 1077 01:18:57,700 --> 01:19:00,440 अब मैं वापस एक उपयोगी जगह पर खिड़की पाने के लिए है. 1078 01:19:03,150 --> 01:19:07,800 चलो यहाँ से अधिक प्राप्त करते हैं और हम चाहते हैं कि eval कि बस से पहले किया जाता है देखेंगे. 1079 01:19:07,800 --> 01:19:14,010 यहां हम उस आदेश को तीर के साथ ऊपर जाना - तो चलो अगर हम चाहते हैं कि क्या होता है देखते हैं 1080 01:19:14,010 --> 01:19:20,940 और शुरुआत करने के लिए नियंत्रण एक, eval. 1081 01:19:20,940 --> 01:19:22,850 ठीक है, तो यह काम करता है. 1082 01:19:22,850 --> 01:19:26,440 आप eval करते हैं, यह इसके बाद आता है क्या लेता है और यह एक आदेश में आता है. 1083 01:19:26,440 --> 01:19:29,460 यह आप अनिवार्य रूप से दो बार यह पार्स करने के लिए सक्षम बनाता है. 1084 01:19:29,460 --> 01:19:33,710 यहां अनुभाग, backquotes अंदर इस आदेश चलाता 1085 01:19:33,710 --> 01:19:36,210 उत्पादन हो जाता है. 1086 01:19:36,210 --> 01:19:42,850 आउटपुट इन की तरह यहाँ उन आदेशों के रूप में चलाने के लिए माना जाता है 1087 01:19:42,850 --> 01:19:45,890 यह एक और इस एक पर. 1088 01:19:45,890 --> 01:19:50,100 तो उन आदेशों अब यहाँ इस क्रम में हैं, 1089 01:19:50,100 --> 01:19:58,950 लेकिन इन आदेशों में निर्मित कर रहे हैं और यह अभी उन्हें प्राप्त नहीं कर सकते. 1090 01:19:58,950 --> 01:20:06,440 इसलिए हम eval करने के लिए जाना, EVAL, कि ऊपर उठाता है सब फिर से पूरी बात शुरू होता है, और यह काम करता है. 1091 01:20:06,440 --> 01:20:18,460 एक उदाहरण backquoting दोनों eval, पार्स, पार्स के परिणामों, 1092 01:20:18,460 --> 01:20:21,910 और शायद आजकल आप के लिए बहुत कम काम का है जो एक आदेश. 1093 01:20:21,910 --> 01:20:25,540 ठीक है. सब ठीक है, umask. 1094 01:20:25,540 --> 01:20:32,160 , चलो यहाँ इस आदेश पर देखें 022 umask. मुझे लगता है कि क्या करता है आश्चर्य है. 1095 01:20:32,160 --> 01:20:38,420 बस इसके बाद कुछ नहीं के साथ umask टाइप करते. 22. ठीक है. 1096 01:20:38,420 --> 01:20:44,350 022 और इसे फिर से करना. 1097 01:20:44,350 --> 01:20:48,580 आप अंदाज़ा लगा सकते है, कोई तर्क के साथ umask आप वर्तमान मुखौटा बताता है; 1098 01:20:48,580 --> 01:20:51,760 तर्क के साथ umask यह है कि बनाता है, लेकिन लगता है कि मैं पहले से ही था एक था. 1099 01:20:51,760 --> 01:20:53,800 022 का क्या मतलब है? 1100 01:21:01,650 --> 01:21:07,080 ये यहाँ एक फ़ाइल के लिए सुरक्षा कर रहे हैं. 1101 01:21:07,080 --> 01:21:11,440 वे फ़ाइल को पढ़ने या लिखने या निष्पादित करने के लिए अनुमति दी गई है, जो निर्धारित करते हैं. 1102 01:21:11,440 --> 01:21:16,560 सुरक्षा के भी अनुमतियों कहा जाता है. 1103 01:21:16,560 --> 01:21:21,390 आर, पढ़ने, लिखने के लिए डब्ल्यू के लिए खड़ा है 1104 01:21:21,390 --> 01:21:25,500 और वहाँ मौजूद नहीं है जो एक्स,, पर अमल के लिए खड़ा है. 1105 01:21:25,500 --> 01:21:27,260 वहाँ 3 श्रेणियां हैं. 1106 01:21:27,260 --> 01:21:33,540 पिछले 3 तत्वों उपयोगकर्ता की श्रेणी में हैं. वे, मेरे लिए उपयोगकर्ता लागू होते हैं. 1107 01:21:33,540 --> 01:21:36,870 यहाँ ये 3 समूह के लिए लागू होते हैं. 1108 01:21:36,870 --> 01:21:41,590 फ़ाइल 1 समूह के अंतर्गत आता है, उपयोगकर्ता कई समूहों से संबंधित हो सकता है, 1109 01:21:41,590 --> 01:21:47,150 लेकिन उपयोगकर्ता इस फाइल अंतर्गत आता है जो करने के लिए समूह में है, 1110 01:21:47,150 --> 01:21:51,090 वह उपयोगकर्ता नहीं है तो इन सुरक्षा उसे लागू होंगे. 1111 01:21:51,090 --> 01:21:54,230 और यह एक और हर कोई है. 1112 01:21:55,540 --> 01:21:57,690 इन श्रेणियों परस्पर अनन्य हैं. 1113 01:21:57,690 --> 01:21:59,750 उपयोगकर्ता सुरक्षा के लिए उसे लागू होते हैं, 1114 01:21:59,750 --> 01:22:03,780 समूह सुरक्षा, उपयोगकर्ता अलावा अन्य समूह के सदस्यों को लागू 1115 01:22:03,780 --> 01:22:08,110 और अन्य सुरक्षा केवल उपयोगकर्ता और समूह के सदस्यों के अलावा अन्य लोगों के लिए लागू होते हैं. 1116 01:22:08,110 --> 01:22:12,320 एक अनुसंधान या ऐडवर्ड्स या एक एक्स है, तो यह सुरक्षा दी जाती है कि इसका मतलब है. 1117 01:22:12,320 --> 01:22:13,950 कोई हाइफ़न वहाँ है, यह ऐसा नहीं है इसका मतलब है. 1118 01:22:13,950 --> 01:22:16,690 वास्तव में इन के अलावा यहां रखा जा सकता है कि अन्य बातें कर रहे हैं 1119 01:22:16,690 --> 01:22:18,350 जो मैं अब में नहीं मिलेगा. 1120 01:22:18,350 --> 01:22:24,450 umask आपके द्वारा बनाई गई फ़ाइलों के लिए एक डिफ़ॉल्ट को परिभाषित करता है. 1121 01:22:24,450 --> 01:22:28,580 और एक मुखौटा के रूप में, मूल रूप से यह आप सेट नहीं है कि बिट्स कहते हैं. 1122 01:22:28,580 --> 01:22:30,450 कैसे इस बिट्स बन गया है? 1123 01:22:30,450 --> 01:22:33,240 आप एक यथार्थ संख्या के रूप में इनमें से प्रत्येक के बारे में सोचो, अगर 1124 01:22:33,240 --> 01:22:42,120 यह 1s सा है इस 2s है, इस 4S है. 1125 01:22:42,120 --> 01:22:45,840 तो 0 से 7 तक 1126 01:22:45,840 --> 01:22:51,770 इन 3 के लिए आपके पास आर के किस संयोजन, डब्ल्यू, और एक्स का वर्णन करेंगे 1127 01:22:51,770 --> 01:22:53,710 और फिर इन और तब इन के लिए के लिए एक समान संख्या. 1128 01:22:53,710 --> 01:23:12,030 तो 022 अन्य के लिए 0, समूह के लिए 2, उपयोगकर्ता के लिए 2 का मतलब है. 1129 01:23:12,030 --> 01:23:15,870 लेकिन यह एक मुखौटा है. मुखौटा तुम नहीं है क्या है. 1130 01:23:19,380 --> 01:23:20,610 मैं माफी चाहता हूँ. मैं सिर्फ गलत क्रम में आप चीजों को दे दी है. 1131 01:23:20,610 --> 01:23:25,620 यह पहली बार 3 है. ये 3 उपयोगकर्ता हैं, इन 3 समूह हैं, इन 3 अन्य हैं. 1132 01:23:25,620 --> 01:23:27,970 खेद है कि मैं गलत क्रम में आप इन दे दी है. 1133 01:23:27,970 --> 01:23:31,910 उन का पहला है जो 0,,, मान प्रदर्शित नहीं करता है 1134 01:23:31,910 --> 01:23:35,430 एक नंबर वहाँ नहीं है, लेकिन अगर यह एक 0 है. 1135 01:23:35,430 --> 01:23:38,370 यही कारण है कि इन सभी का 3 की अनुमति दी जाएगी इसका मतलब है. 1136 01:23:38,370 --> 01:23:41,550 यह विशेष रूप से एक में एक्स की अनुमति नहीं है कि सूचना. 1137 01:23:41,550 --> 01:23:44,090 कारण खोल निर्धारण करने में सक्षम है 1138 01:23:44,090 --> 01:23:46,260 चाहे एक फ़ाइल को मार डाला जाना है या नहीं. 1139 01:23:46,260 --> 01:23:49,800 इस एक निष्पादन योग्य फ़ाइल नहीं है, यह एक्स सेट नहीं किया. 1140 01:23:49,800 --> 01:23:54,000 यहाँ अनुमति, दूसरी श्रेणी लिखना कि 2 का मतलब है, 1141 01:23:54,000 --> 01:23:56,500 बीच में एक, इनकार कर दिया है. 1142 01:23:56,500 --> 01:23:58,500 तो फिर, इन इसका खंडन किया है कि बातें कर रहे हैं. 1143 01:23:58,500 --> 01:24:02,080 खैर, एक्स की अनुमति दी है, लेकिन यह निष्पादन योग्य नहीं है, क्योंकि यह यहाँ नहीं है 1144 01:24:02,080 --> 01:24:04,260 और इसी प्रकार अन्य लोगों के लिए. 1145 01:24:04,260 --> 01:24:08,880 तो यह है कि एक आम umask है. 1146 01:24:08,880 --> 01:24:14,630 एक अन्य आम एक 700 है - अपने आप को सब कुछ है और कोई किसी और को कुछ दे. 1147 01:24:14,630 --> 01:24:17,040 और अन्य संभावनाएं हैं. 1148 01:24:21,340 --> 01:24:27,110 मैं वापस करने के लिए जाना होगा. मैं वहाँ के लिए LWH, उस के लिए वापस खोज कर सकते हैं इतिहास का उपयोग करना. 1149 01:24:27,110 --> 01:24:30,210 ठीक है. यहाँ तो, इन गोले हैं. 1150 01:24:30,210 --> 01:24:36,020 पार्टी की योजना बनाई, सिस्टम खाते है जो मालिक, सब कुछ कर सकते हैं. 1151 01:24:36,020 --> 01:24:41,210 समूह और हर किसी को पढ़ने या निष्पादित लेकिन लिख नहीं कर सकते हैं. 1152 01:24:41,210 --> 01:24:44,570 यह एक भी मालिक यह करने के लिए लिखने की अनुमति नहीं है. 1153 01:24:44,570 --> 01:24:46,460 मालिक, यह करने के लिए सिस्टम खाते लिखना चाहता था 1154 01:24:46,460 --> 01:24:48,020 वह पहले सुरक्षा को बदलना होगा. 1155 01:24:48,020 --> 01:24:53,940 लेकिन फिर, umask यह मास्किंग द्वारा डिफ़ॉल्ट सेट, 1156 01:24:53,940 --> 01:24:57,160 सेट नहीं किया जाएगा कि बिट्स संकेत द्वारा. 1157 01:24:57,160 --> 01:25:04,380 यह सी खोल लिए. Cshrc है, जो अपने आरंभीकरण फ़ाइलों में से एक में आम तौर पर है 1158 01:25:04,380 --> 01:25:07,500 या बॉर्न प्रकार के गोले के लिए. प्रोफाइल. 1159 01:25:07,500 --> 01:25:12,520 सिस्टम पर अन्य आरंभीकरण फ़ाइलें हैं, तो यह भी कहीं हो सकता है. 1160 01:25:12,520 --> 01:25:14,610 वैसे भी, कि umask है. 1161 01:25:14,610 --> 01:25:18,180 यहाँ अजीब के कुछ प्रकार, वहाँ 1162 01:25:18,180 --> 01:25:22,800 और यही कारण है कि एक ही आदेश में इस के लिए वहाँ है, है ना? 1163 01:25:22,800 --> 01:25:28,690 मैं यह लिख रहे थे, तो मैं इसे एक चर, umask = कुछ मूल्य होगा. 1164 01:25:28,690 --> 01:25:31,100 क्यों एक पूरे के आदेश सिर्फ इस उद्देश्य के लिए है? 1165 01:25:31,100 --> 01:25:34,560 कारण यह बस वापस यूनिक्स के मूल को जाता है. 1166 01:25:34,560 --> 01:25:41,050 यूनिक्स 1970 में बेल लेबोरेटरीज में सिर्फ कुछ प्रोग्रामिंग परियोजना था. 1167 01:25:41,050 --> 01:25:42,610 लोग सिर्फ कार्यक्रम के लिए एक साथ मिल गया. 1168 01:25:42,610 --> 01:25:45,290 वे यह दुनिया भर में एक ऑपरेटिंग सिस्टम बनने का इरादा कभी नहीं. 1169 01:25:45,290 --> 01:25:47,250 अलग अलग लोगों को बहुत ज्यादा सोच के बिना विभिन्न भागों लिखा 1170 01:25:47,250 --> 01:25:49,790 बल्कि अधूरा - कैसे की वे इस्तेमाल किया जा करने के लिए जा रहे थे. 1171 01:25:49,790 --> 01:25:53,290 और यह उस तरह एक साथ आए थे, और यह कुछ मामलों में ऐसा अभी भी है. 1172 01:25:53,290 --> 01:25:57,930 तो यह है कि इतिहास को दर्शाता है, और इन विसंगतियों और यह अजीब तत्व अभी भी कर रहे हैं. 1173 01:25:57,930 --> 01:26:00,750 ठीक है. यहाँ अगले एक. 1174 01:26:08,170 --> 01:26:11,000 जैसा कि मैंने पहले लिखा था, सी खोल वास्तव में, प्रोग्रामिंग के लिए बहुत ज्यादा इस्तेमाल नहीं किया है 1175 01:26:11,000 --> 01:26:12,420 यह हो सकता है. 1176 01:26:12,420 --> 01:26:15,080 यह और अधिक धीरे धीरे, फिर इंटरैक्टिव उपयोग के बीच व्यापार बंद कार्यान्वित 1177 01:26:15,080 --> 01:26:17,820 जो गति से शामिल अधिक संसाधन है, 1178 01:26:17,820 --> 01:26:20,710 जो प्रसंस्करण बिना कर सकते हैं. 1179 01:26:20,710 --> 01:26:28,320 कॉर्न और बॉर्न फिर गोले द्वारा बॉर्न शैल से जुड़े अतिरिक्त सुविधाओं 1180 01:26:28,320 --> 01:26:32,120 उन्हें धीमा करने के लिए नहीं लगता है, और यही वजह है कि मैं नहीं जानता. 1181 01:26:32,120 --> 01:26:36,310 यह सिर्फ बेहतर प्रोग्रामिंग हो सकता है, लेकिन मुझे पता करने की स्थिति में नहीं हूँ. 1182 01:26:36,310 --> 01:26:40,420 यह उल्लेख किया है, हालांकि यहां गति वास्तव में, इस तरह के एक बड़ा सौदा नहीं है. 1183 01:26:40,420 --> 01:26:43,690 कारण खोल लिपियों वास्तव में काफी तेजी से हो रहा है. 1184 01:26:43,690 --> 01:26:46,450 जैसे आदेशों का एक बहुत कुछ है, एक calculational कार्यक्रम में अगर वहाँ 1185 01:26:46,450 --> 01:26:49,110 आप शायद एक खोल स्क्रिप्ट में ऐसा नहीं होता. 1186 01:26:49,110 --> 01:26:51,450 आपरेशन काफी सरल और सीधा कर रहे हैं. 1187 01:26:51,450 --> 01:26:53,960 बहुत धीमी गति से कर रहे हैं कि मैंने अनुभव किया है कि लोगों को 1188 01:26:53,960 --> 01:26:57,110 धीमी आदेशों के दोहराया अनुप्रयोगों शामिल है. 1189 01:26:57,110 --> 01:27:00,480 इससे पहले मैं sed धारा संपादक उल्लेख किया है. उस आदेश धीमी है. 1190 01:27:00,480 --> 01:27:03,760 आप SED कई बार चलाते हैं, आप एक धीमी स्क्रिप्ट मिल जाएगा, लेकिन यह धीमी है कि खोल नहीं है. 1191 01:27:03,760 --> 01:27:07,920 बॉर्न खोल में यह चल रहा है, सी खोल में यह चल रहा है की तुलना में ज्यादा तेजी नहीं होगा 1192 01:27:07,920 --> 01:27:10,070 वहाँ कुछ लाभ हो सकता है, यद्यपि वहाँ. 1193 01:27:10,070 --> 01:27:12,760 अतिरिक्त प्रोग्रामिंग क्षमताओं, दूसरे हाथ पर, 1194 01:27:12,760 --> 01:27:17,920 आप बॉर्न प्रकार के गोले प्रयोग करेंगे क्यों महत्वपूर्ण कारण हैं. 1195 01:27:17,920 --> 01:27:21,390 सी खोल यह अजीब विशेषताएं हैं - 1196 01:27:21,390 --> 01:27:25,250 एक चर एक खोल चर या एक वातावरण चर है अगर आप नहीं जानते कि तथ्य. 1197 01:27:25,250 --> 01:27:27,440 यह बहुत भ्रमित किया जा सकता है. 1198 01:27:27,440 --> 01:27:32,170 इसे लिखने के लिए इतना आसान नहीं है 1199 01:27:32,170 --> 01:27:35,930 सिर्फ अन्य भाषाओं में प्रोग्रामिंग के अपने अनुभव पर आधारित है. 1200 01:27:35,930 --> 01:27:41,350 मैं आप अपने अनुभव के साथ बॉर्न प्रकार के गोले अधिक संगत मिल सकता है. 1201 01:27:43,730 --> 01:27:49,270 कुछ स्क्रिप्ट, हालांकि, लंबाई में लाइनों के हजारों किया जा सकता है. 1202 01:27:49,270 --> 01:27:52,450 मैंने देखा है कि उन ऑपरेटिंग सिस्टम पट्टी के लिए किया जाता. 1203 01:27:52,450 --> 01:27:55,450 उन बहुत धीरे धीरे अमल कर सकते हैं, लेकिन आप बहुत बार उन नहीं चला है. 1204 01:27:55,450 --> 01:27:57,180 यह आप पट्टी कर रहे हैं केवल जब, 1205 01:27:57,180 --> 01:27:59,450 और यह उन बातें करता है, जो केवल सिस्टम मैनेजर है, 1206 01:27:59,450 --> 01:28:01,840 तो यह एक मुद्दे के वास्तव में ज्यादा नहीं है. 1207 01:28:01,840 --> 01:28:06,980 लाइनों के सैकड़ों रहे हैं कि वे लंबे समय वास्तव में काफी तेजी से निष्पादित. 1208 01:28:06,980 --> 01:28:10,540 यहां यह उल्लेख कर, उन संवर्द्धन क्या हैं? 1209 01:28:10,540 --> 01:28:13,170 सरणियों, गणित, - मैं पहले से ही उनमें से कुछ का उल्लेख किया है 1210 01:28:13,170 --> 01:28:20,540 $ (बैश शेल में गणना के लिए) अभिव्यक्ति, 1211 01:28:20,540 --> 01:28:23,050 आदेश प्रतिस्थापन के अन्य प्रकार के. 1212 01:28:23,050 --> 01:28:25,360 परीक्षण के आदेशों के विभिन्न प्रकार होते हैं 1213 01:28:25,360 --> 01:28:29,350 जिसके द्वारा आप एक फ़ाइल या अन्य चीजों के अस्तित्व पर सशर्त परीक्षण कर सकता है. 1214 01:28:29,350 --> 01:28:34,790 यहां पिछले है, यहाँ इस आदेश. 1215 01:28:34,790 --> 01:28:38,480 यह क्या करता है, और क्यों किसी को भी इसका इस्तेमाल होता है? 1216 01:28:51,170 --> 01:28:52,990 printenv VariableName. 1217 01:28:52,990 --> 01:28:56,130 हम printenv क्या है पता है. यह हमें एक चर के मूल्य बताता है. 1218 01:28:56,130 --> 01:29:00,850 ऐसी कोई चर क्योंकि वहाँ और printenv VariableName हमें बहुत ज्यादा नहीं बता देंगे. 1219 01:29:03,550 --> 01:29:05,120 खाली. 1220 01:29:05,120 --> 01:29:08,440 लेकिन यह कुछ सार्थक दे. 1221 01:29:13,420 --> 01:29:16,800 यही कारण है कि वहाँ या तो नहीं है. ठीक है. मैं मुझे लगता है कि परिभाषित कभी नहीं लगता है. 1222 01:29:16,800 --> 01:29:18,020 चलो बस अपने पर्यावरण की जांच करते हैं. 1223 01:29:18,020 --> 01:29:20,900 इससे आप अपने पर्यावरण का निरीक्षण कर सकते हैं जिसके द्वारा एक अन्य आदेश है. 1224 01:29:20,900 --> 01:29:24,470 अच्छा पुराने संपादक, हम पहले देखा नहीं है. 1225 01:29:42,360 --> 01:29:44,120 कि क्या करता है? 1226 01:29:44,120 --> 01:29:48,050 यहाँ हम एक backquote अभिव्यक्ति है. 1227 01:29:48,050 --> 01:29:50,370 इस सी खोल रहा है याद रखें. 1228 01:29:50,370 --> 01:29:54,850 तो printenv संपादक हमें संपादक का मूल्य देना होगा. यह छठे है. 1229 01:29:54,850 --> 01:29:59,790 और फिर यह चर एक, सेट कमांड के लिए कि मूल्य की स्थापना की जाएगी. 1230 01:29:59,790 --> 01:30:02,860 मैं $ गूंज एक करते हैं तो अब, मैं छठी मिलता है. 1231 01:30:02,860 --> 01:30:05,850 यही कारण है कि बहुत उपयोगी प्रतीत नहीं होता है. 1232 01:30:05,850 --> 01:30:08,080 हालांकि, यह वास्तव में एक उद्देश्य है. 1233 01:30:08,080 --> 01:30:12,260 हम एक चर एक खोल चर या एक वातावरण चर है कि क्या पता नहीं है 1234 01:30:12,260 --> 01:30:16,280 डॉलर के हस्ताक्षर मूल्यांकन वाक्यविन्यास का उपयोग करके, हम printenv उपयोग कर सकते हैं 1235 01:30:16,280 --> 01:30:19,460 यह एक वातावरण चर है कि बनाना. 1236 01:30:19,460 --> 01:30:22,550 एक खोल चर संपादक अगर वहाँ थे तो, यह यह कमाई नहीं होती. 1237 01:30:22,550 --> 01:30:25,640 यह केवल पर्यावरण चर के साथ काम करता है. 1238 01:30:25,640 --> 01:30:28,370 वहाँ एक खोल चर रहे थे और मैं अपने मूल्य चाहता था, 1239 01:30:28,370 --> 01:30:29,980 मैं यह करने के लिए किसी अन्य तरीके खोजने के लिए होगा. 1240 01:30:29,980 --> 01:30:33,530 ऐसा करने के लिए एक तरह से सेट और गरमा रही द्वारा किया जाएगा. 1241 01:30:33,530 --> 01:30:36,130 इस अक्षरों से परे, विशेष पात्रों में से एक है. 1242 01:30:36,130 --> 01:30:38,370 यह कुछ और करने के लिए सेट के उत्पादन में भेजता है. 1243 01:30:38,370 --> 01:30:40,650 हम वहाँ मिल सकता है देखते हैं क्या. 1244 01:30:40,650 --> 01:30:49,340 कुछ भी नहीं. ठीक है. चलो बस सब एक साथ वहाँ में क्या देखते हैं. 1245 01:30:49,340 --> 01:30:53,580 यह echo_style, मैंने पहले उल्लेख किया गया था. ठीक है, चलो करते हैं. 1246 01:31:02,460 --> 01:31:06,230 मैं echo_style, पहले उल्लेख किया है याद रखें 1247 01:31:06,230 --> 01:31:08,410 गूंज आदेश चलेंगे तरीका निर्धारित करता है. 1248 01:31:08,410 --> 01:31:10,940 बीएसडी बर्कले मानक वितरण के लिए खड़ा है. 1249 01:31:10,940 --> 01:31:13,200 यह 1970 के दशक से बर्कले यूनिक्स है. 1250 01:31:13,200 --> 01:31:16,630 यही चला सकते गूंज कि ​​तरीकों में से एक है. 1251 01:31:16,630 --> 01:31:22,310 टीसी खोल में है कि मूल्य को echo_style स्थापना गूंज उस तरह से व्यवहार करने के लिए प्रेरित करेगा. 1252 01:31:22,310 --> 01:31:27,670 इसलिए नहीं है कि, लेकिन सेट सेट ही खोल चर हो जाता है. 1253 01:31:27,670 --> 01:31:35,430 यह एक खोल चर नहीं है जो संपादक, नहीं मिल जाता. 1254 01:31:36,870 --> 01:31:38,050 कुछ भी नहीं. 1255 01:31:38,050 --> 01:31:39,660 इसलिए कि उन्हें अलग करने का एक तरीका है. 1256 01:31:39,660 --> 01:31:42,000 लेकिन आप इस तथ्य है कि ऐसा कुछ अजीब आदेश के माध्यम से जाने के लिए 1257 01:31:42,000 --> 01:31:45,500 खोल चर या वातावरण चर के बीच अंतर करने के लिए 1258 01:31:45,500 --> 01:31:49,970 कुछ प्रयोजनों के लिए सी खोल के अव्यावहारिक प्रकृति की तरह से पता चलता है. 1259 01:31:52,290 --> 01:31:57,960 और अब, पिछले और शायद कम से कम, इस आदमी पृष्ठों है. 1260 01:31:57,960 --> 01:32:03,190 तुम जानते हो सकता है उन लोगों, आदमी का मार्गदर्शन करने के लिए आदेश कम है. 1261 01:32:03,190 --> 01:32:08,610 गोले के लिए मैन पेज पढ़ने के लिए मेहनत कर रहे हैं. वे बहुत लंबे समय से कर रहे हैं. 1262 01:32:08,610 --> 01:32:14,060 वे यह मुश्किल के लिए आप क्या देख रहे हो खोजने के लिए कर सकते हैं कि एक तरह का आयोजन कर रहे हैं. 1263 01:32:14,060 --> 01:32:15,980 तो तुम एक उद्देश्य के साथ कुछ के लिए देख रहे हैं, 1264 01:32:15,980 --> 01:32:20,050 उस प्रयोजन के लिए एक खोल चर या कुछ और है, यदि आप जानते नहीं हो सकता 1265 01:32:20,050 --> 01:32:21,630 इसलिए आप जहां यह देखने के लिए पता नहीं हो सकता है. 1266 01:32:21,630 --> 01:32:25,030 आप विभिन्न तार के लिए देख सकते हैं, लेकिन तार अक्सर दोहराया जाता है. 1267 01:32:25,030 --> 01:32:27,640 तो यह आम तौर पर पढ़ने के लिए मुश्किल है. 1268 01:32:27,640 --> 01:32:33,810 हम सिर्फ eval आदेश को खोजने के लिए एक छोटे से पहले टीसी खोल मैन पेज को देखा. 1269 01:32:33,810 --> 01:32:36,610 कुछ चीजें तेजी से चलते हैं. 1270 01:32:36,610 --> 01:32:38,860 एक दृष्टिकोण के एक स्ट्रिंग के लिए खोज करने के लिए है. 1271 01:32:38,860 --> 01:32:40,360 आप पेजर का उपयोग कर सकते हैं. 1272 01:32:40,360 --> 01:32:49,080 पेजर एक पेजर आपरेशन के अंदर एक आदेश या एक स्ट्रिंग के लिए देखने के लिए कड़ी आलोचना की है. 1273 01:32:49,080 --> 01:32:52,830 डिफ़ॉल्ट रूप से मैन कम या ज्यादा हो सकता है, या तो पेजर का उपयोग करेगा. 1274 01:32:52,830 --> 01:32:56,560 आप उन लोगों के साथ परिचित हैं, तो मैं नहीं जानता, लेकिन उन बिट द्वारा फाइलें सा दिखा सकते हैं. 1275 01:32:56,560 --> 01:33:00,550 मुझे लगता है हम यहाँ मिल गया है विशेष रूप से इन फ़ाइलों को प्रदर्शित करने के लिए कम उपयोग किया गया है. 1276 01:33:00,550 --> 01:33:03,300 तुम वहाँ के अंदर खोज सकते हैं. 1277 01:33:03,300 --> 01:33:04,880 आप अलग अलग खोज तार उपयोग करने की कोशिश कर सकते हैं. 1278 01:33:04,880 --> 01:33:08,420 इसके अलावा अलग ऑपरेटिंग सिस्टम में मैन पेज ही नहीं हो सकता. 1279 01:33:08,420 --> 01:33:11,130 वे सीएसएच और tcsh के लिए अलग पृष्ठों हो सकता है. 1280 01:33:11,130 --> 01:33:14,500 वे कर रहे हैं मैक पर नहीं कर रहे हैं, लेकिन उन अलग कमानों रहे हैं यदि वे हो सकता है. 1281 01:33:14,500 --> 01:33:19,000 श वास्तव बैश फोन नहीं करता, तो शायद एक अलग आदमी पेज होगा. 1282 01:33:19,000 --> 01:33:25,820 कुछ सिस्टम सिर्फ सी खोल में निर्मित आदेशों के लिए अलग आदमी पृष्ठों है. 1283 01:33:25,820 --> 01:33:30,250 कभी कभी तुम एक अंतर्निहित आदेश का वर्णन पढ़ने के लिए चाहते हैं 1284 01:33:30,250 --> 01:33:35,350 कि रास्ते में भी है, गूंज की तरह, आप गूंज पर उस आदेश पर आदमी पृष्ठ पढ़ने की जरूरत है 1285 01:33:35,350 --> 01:33:37,610 यह एक अंतर्निहित आदेश के रूप में काम करेंगे कि कैसे निर्धारित करने के लिए 1286 01:33:37,610 --> 01:33:39,760 आप अंतर्निहित आदेश नहीं बुला रहे हैं, भले ही. 1287 01:33:41,630 --> 01:33:46,090 यही कारण है कि सामान्य रूप में ऑपरेटिंग सिस्टम की एक खामी है, गोले के लिए ही नहीं, 1288 01:33:46,090 --> 01:33:50,710 गोले के लिए विशेष रूप से मैन पेज, काफी लंबे समय से कर रहे हैं, हालांकि 1289 01:33:50,710 --> 01:33:56,180 आंशिक रूप क्योंकि वे एक सकारात्मक हो सकता है, जो उनके लिए उपयोगी सुविधाओं को जोड़ दिया है. 1290 01:33:56,180 --> 01:34:00,290 ठीक है. किसी भी सवाल कर रहे हैं? आप ऊपर लाना चाहते हैं किसी भी विषय? 1291 01:34:00,290 --> 01:34:03,390 यहाँ कुछ भी प्रासंगिक? 1292 01:34:04,540 --> 01:34:07,100 खैर, यह आप सभी से बात कर बहुत अच्छा हो गया है. 1293 01:34:07,100 --> 01:34:09,690 मैं आपको इस संगोष्ठी के बाहर कुछ मिल आशा 1294 01:34:09,690 --> 01:34:13,080 कि अपने भविष्य के प्रयासों में आप के लिए उपयोगी हो जाएगा. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]