1 00:00:00,000 --> 00:00:02,320 >> [სემინარი - Unix ჭურვი, გარემოში] 2 00:00:02,320 --> 00:00:04,180 [Douglas Kline - ჰარვარდის უნივერსიტეტის] 3 00:00:04,180 --> 00:00:07,160 [ეს არის CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> დღევანდელი თემა არის Unix shell. 5 00:00:12,770 --> 00:00:20,600 მე Douglas Kline, ექსპერტი, ან თუნდაც გონივრული კომპეტენტური შესახებ, რომ ჭურვი. 6 00:00:20,600 --> 00:00:25,280 Shell ინტერფეისი მომხმარებელს კომპიუტერის ოპერაციული სისტემა. 7 00:00:25,280 --> 00:00:29,580 სახელი შეცდომაში შეჰყავს, განსხვავებით ცხოველის shell, 8 00:00:29,580 --> 00:00:34,890 რომელიც რთულია და დამცავი, კომპიუტერული shell საშუალებას კომუნიკაცია. 9 00:00:34,890 --> 00:00:39,120 ასე რომ, ფოროვანი გარსის, ალბათ, უკეთესი მეტაფორა. 10 00:00:39,120 --> 00:00:44,500 >> ორიგინალური შელი Unix არის Bourne shell. 11 00:00:44,500 --> 00:00:46,450 Bourne წერია B-O-U-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Bourne იყო ერთი ორიგინალური ავტორები Unix, 13 00:00:49,770 --> 00:00:51,700 და ასე ჭურვი მის სახელს ატარებს. 14 00:00:51,700 --> 00:00:54,850 სახელით რომ shell როგორც ბრძანება უბრალოდ შ. 15 00:00:54,850 --> 00:00:57,400 , რომ ბრძანება თქვენ შეგიძლიათ შეასრულოს. 16 00:00:57,400 --> 00:01:00,810 Shell იწყება შესვლა. 17 00:01:00,810 --> 00:01:04,459 როდესაც თქვენ შეხვიდე კომპიუტერი, shell მხოლოდ იწყება გაშვებული თქვენ, 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 გარდა ამისა, თუ შორეულ login, 24 00:01:26,670 --> 00:01:30,250 მაშინ დავიწყოთ shell დისტანციური კომპიუტერი. 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 >> Shell parses ბრძანებები. 41 00:02:34,030 --> 00:02:40,900 დამუშავების ნიშნავს საიდენტიფიკაციო სხვადასხვა ელემენტები და კლასიფიცირების მათ. 42 00:02:40,900 --> 00:02:43,470 ფარგლებში ბრძანება, სრული string რომ თქვენ ტიპის, 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 Parsing მოიცავს გამოვლენის და წერით იმ რამ. 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 >> ვთქვი ადრე, რომ Bourne shell არის საწყისი ჭურვი. 54 00:03:29,170 --> 00:03:31,550 არსებობს სხვები. 55 00:03:31,550 --> 00:03:34,520 ერთი არის C-shell. ბრძანება csh. 56 00:03:34,520 --> 00:03:36,830 სახელი C-shell არის მხოლოდ თამაში სიტყვები. 57 00:03:36,830 --> 00:03:41,260 ეს ჭურვი იყო გაეცნენ Berkeley Unix შუა რიცხვებში 1970. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix იყო seminal მოვლენა განვითარების Unix. 59 00:03:44,830 --> 00:03:48,770 ეს იყო დიდი რევოლუცია და შედის დანერგვა ამ ჭურვი. 60 00:03:48,770 --> 00:03:50,790 მიზეზი თამაში სიტყვებით, C-shell, 61 00:03:50,790 --> 00:03:56,490 ის არის, რომ C-shell აქვს გარკვეული თავისებურებები, რაც ჰგავს C ენაზე 62 00:03:56,490 --> 00:03:59,740 რომელიც Bourne shell ამჯამად არ აქვს - 63 00:03:59,740 --> 00:04:02,140 ან მას არ აქვს იმ დროს. 64 00:04:02,140 --> 00:04:05,190 არსებობს ასევე TC-shell. 65 00:04:05,190 --> 00:04:07,360 ეს არის superset C-shell. 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 თუმცა, C-shell არ არის ხშირად გამოიყენება shell პროგრამირების. 74 00:04:37,020 --> 00:04:39,080 Shell პროგრამები, თუ თქვენ არ იცით, 75 00:04:39,080 --> 00:04:41,690 არის პროგრამა, რომელიც შედგება shell მახასიათებლები. 76 00:04:41,690 --> 00:04:43,220 თქვენ შეიძლება აწარმოებს ეს როგორც პროგრამებს. 77 00:04:43,220 --> 00:04:46,760 წერთ bunch of ჭურვი ბრძანებები შევიდა ფაილი და შეასრულოს ფაილი. 78 00:04:46,760 --> 00:04:49,760 თქვენ არ გჭირდებათ მისი კომპილირება. ეს არის interpretive ენაზე. 79 00:04:49,760 --> 00:04:57,320 ფრაზა C-shell არის ორაზროვანი, რადგან ეს შეიძლება ეხება მხოლოდ ორიგინალური C-shell, csh, 80 00:04:57,320 --> 00:05:01,200 ან ყველა C-ჭურვები, მათ შორის tcsh. ეს ცოტა ბუნდოვანია. 81 00:05:01,200 --> 00:05:08,250 >> მოგვიანებით shell არის Korn shell, ksh სახელობის პროგრამისტი, Korn. 82 00:05:08,250 --> 00:05:14,160 ეს ჭურვი შეეცადა ითვალისწინებდეს 1 ჭურვი 83 00:05:14,160 --> 00:05:16,960 უპირატესობა C-shell ინტერაქტიული გამოყენება 84 00:05:16,960 --> 00:05:19,230 და Bourne shell პროგრამირების. 85 00:05:19,230 --> 00:05:25,440 ეს უკვე გამოიყენება როგორც ინტერაქტიული ჭურვი ზოგიერთი ადამიანი - უმცირესობა. 86 00:05:25,440 --> 00:05:32,050 მოგვიანებით, თუმცა, იყო კიდევ ერთი შესავალი, Bash shell, Bash, 87 00:05:32,050 --> 00:05:35,290 ერთხელ თამაში სიტყვებით, Bourne კვლავ ჭურვი. 88 00:05:35,290 --> 00:05:43,830 ეს არის გაგრძელება Bourne shell. Korn shell ასევე. ორივე მათგანი. 89 00:05:43,830 --> 00:05:48,100 მას აქვს იგივე მიზნები Korn shell of amalgamating C-shell-ს 90 00:05:48,100 --> 00:05:50,980 და Bourne shell-ის უპირატესობა 1 ჭურვი. 91 00:05:50,980 --> 00:05:56,810 ბევრი დამატებები საქართველოს Korn shell ასევე შედის Bash. 92 00:05:56,810 --> 00:06:00,710 Bash, თუმცა, სულ უფრო და ამიტომ სასურველია. 93 00:06:00,710 --> 00:06:05,180 The Bourne კვლავ ჭურვი და Korn shell უწოდებენ Bourne ტიპის ჭურვები 94 00:06:05,180 --> 00:06:07,730 რადგან ისინი მოიცავს Bourne shell-ის მახასიათებლები, 95 00:06:07,730 --> 00:06:11,180 რომელიც შეუთავსებელია გარკვეული თვალსაზრისით დავუკავშირდეთ C-ჭურვები. 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 >> Okay. შემდეგი საქონლის აქ. 99 00:06:31,300 --> 00:06:38,970 Bash shell გახდა ასოცირდება სხვადასხვა სახის Linux. 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 ასე რომ, რამდენადაც ვიცი, არ არსებობს არაფერი Bash 104 00:06:49,670 --> 00:06:52,210 რაც რაიმე უფრო თავსებადი Linux 105 00:06:52,210 --> 00:06:55,020 ვიდრე ნებისმიერი სხვა კომბინაცია shell და ოპერაციული სისტემა. 106 00:06:55,020 --> 00:06:59,690 ვფიქრობ, ეს ალბათ მხოლოდ ასახავს მიდრეკილებები, რომ პროგრამისტები. 107 00:06:59,690 --> 00:07:07,500 რომ იგი გახდა უკავშირდება Linux არის კიდევ ერთი მიზეზი, ერჩივნა Bash to 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 Bourne shell სკრიპტები უნდა აწარმოებს ქვეშ Korn shell ან Bash. 111 00:07:21,330 --> 00:07:22,650 თუ წერთ რაღაც Bourne shell, 112 00:07:22,650 --> 00:07:26,180 თქვენ ალბათ შეუძლია შეასრულოს ის ფარგლებში ksh ან bash. 113 00:07:26,180 --> 00:07:30,610 Korn shell scripts ალბათ აწარმოებს ქვეშ Bash, მაგრამ მე ვერ მოგცემთ იმის გარანტიას, რომ. 114 00:07:30,610 --> 00:07:36,040 მოგვიანებით აქ, C-shell სკრიპტები უნდა აწარმოებს ქვეშ TC-shell. 115 00:07:38,850 --> 00:07:41,690 C-shell რეალურად არასდროს ფართოდ გამოიყენება სკრიპტირების 116 00:07:41,690 --> 00:07:48,110 მას შემდეგ, რაც Bourne shell და შემდეგ Bourne ტიპის ჭურვები იყო სასურველია ამ მიზნით. 117 00:07:48,110 --> 00:07:50,620 ასე რომ ნამდვილად არ არის, რომ მნიშვნელოვანია. 118 00:07:50,620 --> 00:07:53,480 არსებობს საკმაოდ ბევრი Bourne shell სკრიპტები რომელიც დაიწერა დიდი ხნის წინ, 119 00:07:53,480 --> 00:07:56,860 ადრე Korn shell ან Bourne კვლავ shell გაეცნენ. 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 >> Bash არის გარკვეულწილად გახდეს ერთგვარი ლინგვა franca ოპერაციული სისტემები. 124 00:08:12,840 --> 00:08:17,580 ეს უკვე გავრცელდა Windows და VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, იმ შემთხვევაში თუ თქვენ არ იცით, არის საკუთრების ოპერაციული სისტემა 126 00:08:20,440 --> 00:08:25,480 of Digital Equipment Corporation, რომელიც დღემდე გამოიყენება, ძირითადად კულისებში. 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 ეს მხოლოდ დასაწყისია, ასე რომ მე არ შემიძლია პროგნოზირება, თუ ამ აღმოჩნდება მართლაც იყოს, რომ სახის ლინგვა franca. 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 თქვენ შეიძლება ვერ დაწერა Bash script ერთი ოპერაციული სისტემა 134 00:08:50,250 --> 00:08:51,840 და შემდეგ აწარმოებს კიდევ ერთი. 135 00:08:51,840 --> 00:08:54,440 თქვენ უნდა შეეძლოს მისი გადატანა სხვადასხვა Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Mac OS ოპერაციული სისტემების მაგრამ არ არის აუცილებელი Windows ან VMS. 137 00:08:59,020 --> 00:09:01,390 თქვენ შეიძლება უნდა შეიცვალოს ფაილის pathname აღწერით, 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 რომ ყველა სხვადასხვა ჭურვი მე აღნიშნული - Bourne shell, C-shell, 143 00:09:23,570 --> 00:09:29,880 TC-shell, Korn shell, Bourne კვლავ ჭურვი - ხელმისაწვდომი იქნება ნებისმიერი Unix 144 00:09:29,880 --> 00:09:33,750 ან Linux ან Mac OS კომპიუტერი. 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 >> Okay. შემდეგი აქ. 150 00:09:50,280 --> 00:09:54,370 ვთქვათ, რომ გსურთ დაწეროთ shell სკრიპტი, 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 იმ შემთხვევაში, თუ shell ოპერაციების, არგუმენტები უწოდებენ პარამეტრების ან თანამდებობრივი პარამეტრები 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 და შიგნით ჩემი script თუ მინდა ეხება ეს ყველაფერი - 159 00:10:34,110 --> 00:10:36,810 მოდით წაშლას, რადგან მე ნამდვილად არ აპირებს, რომ - 160 00:10:36,810 --> 00:10:42,160 შიგნით ჩემი script მე შეიძლება $ 1 ეხება ARG1, 161 00:10:42,160 --> 00:10:45,890 $ 2, რომელიც გამოვა, რომ გზა, Arg2. 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 >> Shell specifier ონლაინ. რა არის ეს? 171 00:11:20,460 --> 00:11:27,760 ვთქვათ თქვენ წერილობითი სცენარი და ის კონკრეტული shell და გსურთ გაუშვით. 172 00:11:27,760 --> 00:11:33,500 იცით, რა ჭურვი თქვენი ოპერაციული სისტემა გამოიყენებს აწარმოებს თქვენი სცენარი? 173 00:11:33,500 --> 00:11:37,230 ერთ მომენტში თქვენ შეიძლება ვივარაუდოთ, რომ აწარმოებს წლის Bourne shell 174 00:11:37,230 --> 00:11:39,440 თუ არ უთქვამს, წინააღმდეგ შემთხვევაში, 175 00:11:39,440 --> 00:11:41,730 მაგრამ ხალხი არ წერა სკრიპტები Bourne shell, რომ ბევრი აღარ 176 00:11:41,730 --> 00:11:43,750 და თქვენ კი ვერ დაეყრდნონ, რომ აღარ. 177 00:11:43,750 --> 00:11:48,740 ასე რომ აქ გვაქვს ჭურვი specifier ონლაინ უფლება აქ. 178 00:11:48,740 --> 00:11:52,450 რომელიც განსაზღვრავს Bash. 179 00:11:52,450 --> 00:11:56,750 გაითვალისწინეთ, რომ ეს განსაზღვრავს ის pathname, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 თუ კომპიუტერი აქვს Bash shell მაგრამ არა bin დირექტორია, / bin, ეს არ იმუშავებს. 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 როგორც მე ამბობდა, ეს არ უნდა იყოს და იგივე ადგილზე / bin. 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 რომ უნდა მიუთითოს C-shell. 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 თუ გსურთ C-shell, უკეთესი იქნება იმის თქმა, რომ ასეა. 193 00:12:52,220 --> 00:12:58,450 შემდეგ იქ რაღაც საკმაოდ დამაბნეველი აქ. 194 00:12:58,450 --> 00:13:03,940 თუ თქვენ იყენებთ shell specifier ხაზი როგორიცაა / bin / bash 195 00:13:03,940 --> 00:13:07,070 და რომ ჭურვი არ არის შესაძლებელი იქ, 196 00:13:07,070 --> 00:13:10,680 არ არსებობს ასეთი რამ, როგორც / bin / bash ამ კონკრეტულ კომპიუტერს, 197 00:13:10,680 --> 00:13:14,330 ან იმიტომ, რომ მას არ გააჩნია Bash ან იმიტომ, რომ სხვადასხვა ადგილას, 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 ეს ბრძანება ეფექტურად მოუწოდა shell სახელით სცენარი. 204 00:13:36,920 --> 00:13:39,330 სწორედ იქ, სადაც თქვენ, რომ გაუგებარია შეცდომა. 205 00:13:39,330 --> 00:13:42,980 სხვა გზა მოვუწოდებთ shell სკრიპტი 206 00:13:42,980 --> 00:13:45,910 არის სასურველი shell ბრძანების სტრიქონში, რადგან აქ. 207 00:13:45,910 --> 00:13:52,510 ეს არის ბრძანება. ეს ამბობს აწარმოებს Bash და შემდეგ აწარმოებს ჩემი სცენარი Bash. 208 00:13:52,510 --> 00:13:55,680 რომ მიიღებს უპირატესი specifier ხაზი, 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 კომპიუტერული ნახავთ Bash, სადაც ის მდებარეობს და აწარმოებს, 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 მობილური Bash, რაც შესაძლებელია, თუმცა ნაკლებად სავარაუდოა. 217 00:14:20,830 --> 00:14:23,540 ასე რომ სხვა გზა გაუმკლავდეთ ეს ყველაფერი. 218 00:14:23,540 --> 00:14:30,480 Specifier ხაზები შეიძლება მოვუწოდებთ ნებისმიერი ჭურვი. 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 awk, რომელიც არის ნიმუში დამუშავების ენა; 222 00:14:39,900 --> 00:14:43,680 და perl, ძალიან მაღალგანვითარებულ სკრიფტინგის ენა. 223 00:14:43,680 --> 00:14:47,570 თუ თქვენ დააყენა specifier ონლაინ მითითებით ერთ იმ პროგრამების დასაწყისში, 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 Perl ძალიან შეუძლია. Sed არის რედაქტორი. მას შეუძლია გააკეთოს ყველაფერი მიღმა უბრალოდ რედაქტირება. 227 00:14:58,790 --> 00:15:03,300 მაგრამ ეს შეიძლება იყოს რთული პროგრამა, რომელიც. 228 00:15:03,300 --> 00:15:09,670 გარდა ამისა, გავლით არგუმენტები და პერსონალის script ან შეუძლებელია ან გაუგებარია. 229 00:15:09,670 --> 00:15:15,030 ასე რომ, იმ შემთხვევაში, awk ან sed, ის მაინც, ჩემი გამოცდილება, 230 00:15:15,030 --> 00:15:18,910 სასურველია დაწერა shell სკრიპტი და ზარის awk ან sed საწყისი shell სკრიპტი 231 00:15:18,910 --> 00:15:24,660 ვიდრე დარეკვით awk ან sed როგორც script specifier ონლაინ. 232 00:15:24,660 --> 00:15:26,980 Perl არის უაღრესად მრავალფეროვანი ენის, როგორც ვთქვი. 233 00:15:26,980 --> 00:15:30,050 შეგიძლიათ არ აწარმოებს ინტერაქტიული ბრძანებები perl, 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 რომ უბრალოდ ცოტა ჩართული შენიშვნა specifier ხაზები. 239 00:15:45,720 --> 00:15:50,610 >> ყველა ან უმეტესი ფორმები Linux - ისევ და ისევ, მე არ შეიძლება იყოს დარწმუნებული, რომ ყველაფერი - 240 00:15:50,610 --> 00:15:57,900 და Mac OS, თუ ჩაწერეთ csh თქვენ მიიღებთ tcsh, 241 00:15:57,900 --> 00:16:00,570 და თუ ჩაწერეთ შ თქვენ გაქვთ bash. 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 ან Bash მახასიათებლები მოსაუბრისთვის csh ან sh 245 00:16:16,720 --> 00:16:22,230 და შემდეგ ცდილობენ აწარმოებს კომპიუტერი, რომელსაც არ გააჩნია tcsh ან Bash, 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 უწოდა, როგორც sh ან csh და შემდეგ მიღების მოწინავე ჭურვები. 250 00:16:37,700 --> 00:16:41,440 თქვენ შეიძლება არც კი ვფიქრობ, რომ თქვენ იყენებთ უფრო მოწინავე ჭურვი. 251 00:16:41,440 --> 00:16:45,670 ასე რომ, ეს არის პოტენციური pitfall. 252 00:16:45,670 --> 00:16:50,290 როგორ არის ეს დადგენილია, რომ თუ აკრიფოთ შ თქვენ გაქვთ Bash, 253 00:16:50,290 --> 00:16:55,580 თუ აკრიფოთ csh თქვენ მიიღებთ 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 ფაილი sh 1 ფაილი Bash - 259 00:17:21,619 --> 00:17:23,880 მაგრამ ორივე აწარმოებს Bash. 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 ან მიიღწევა shell ცვლადები. 271 00:18:17,310 --> 00:18:22,170 უწოდა, როგორც sh ან bash შეიძლება რეალურად გამოიწვიოს სხვადასხვა აღსრულება 272 00:18:22,170 --> 00:18:25,300 მაშინაც კი, თუ ეს იგივე ფაილი, რომელიც თქვენ შესრულებაში. 273 00:18:25,300 --> 00:18:31,800 სხვა რამ განიხილოს ის არის, რომ თუნდაც ერთი კომპიუტერი tcsh ან Bash, 274 00:18:31,800 --> 00:18:35,310 თუ ისინი არ უკავშირდება, რადგან ისინი თქვენს კომპიუტერში 275 00:18:35,310 --> 00:18:37,990 თუ თქვენ გაქვთ Linux ან Mac OS კომპიუტერში, 276 00:18:37,990 --> 00:18:45,630 მერე ისევ თქვენ მიიღებთ shell, რომ თქვენ მოვუწოდებთ sh ან csh, არა ერთი, რომ თქვენ შეიძლება ურჩევნია. 277 00:18:50,430 --> 00:19:01,130 მიმდინარე Bourne shell აქვს გაუმჯობესებებს ნაკლები ვიდრე Bash 278 00:19:01,130 --> 00:19:06,100 მაგრამ წარსული იმ ორიგინალური Bourne shell. 279 00:19:06,100 --> 00:19:09,690 შედეგად, რომ, მიუხედავად არსებული Bourne shell, sh, 280 00:19:09,690 --> 00:19:14,560 მაშინაც კი, როდესაც ეს არ Bash, ჰგავს C ენის მეტია, ვიდრე C-shell აკეთებს. 281 00:19:14,560 --> 00:19:20,460 ეს არ იყო მართალი, როდესაც C-shell პირველად შეიქმნა, მაგრამ მას შეიმუშავა, რომ გზა. 282 00:19:20,460 --> 00:19:26,560 თქვენ ალბათ შეამჩნევთ, რომ ყველა ეს ჭურვი სახელები გარდა Bourne shell 283 00:19:26,560 --> 00:19:30,640 რაღაც მიუთითებს, რომელიც shell ისინი - csh, bash - 284 00:19:30,640 --> 00:19:32,550 მაგრამ Bourne shell მხოლოდ sh. 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 სფეროებში აქ გამოყოფილია colons. 295 00:20:23,970 --> 00:20:28,210 ბოლო სფეროში, როგორც ხედავთ, არის bin / tcsh, ჭურვი. 296 00:20:28,210 --> 00:20:30,230 ეს არის ის, shell specifier. 297 00:20:30,230 --> 00:20:33,240 არსებობს რაღაც საინტერესო აქ. 298 00:20:33,240 --> 00:20:36,950 როდესაც Unix პირველად შემუშავდა, იქ იყო მხოლოდ 1 ჭურვი, 299 00:20:36,950 --> 00:20:38,350 ასე არ იყო არჩევანი არსებობს. 300 00:20:38,350 --> 00:20:45,570 ასე რომ, რატომ დაუშვებს სფეროში დაგავიწყდათ ბაზაში მიუთითოთ shell? 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 ის felicitous ან fortuitous განვითარებას, მათ შორის ამ სფეროში. 306 00:21:04,130 --> 00:21:12,780 ასეთი სახის დაგავიწყდათ ფაილი ხაზის გამოიყენება ყველა Unix და Linux კომპიუტერები იმდენად, რამდენადაც მე ვიცი. 307 00:21:12,780 --> 00:21:14,650 Mac აქვს საკუთარი სისტემა. 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 >> თუ თქვენ მოუწოდებდა shell, შეგიძლიათ დარეკოთ, როგორც sub-shell თქვენი არსებული ჭურვები. 312 00:21:46,020 --> 00:21:50,480 ასე რომ, თუ მე აქ, მოდით დავაღწიოთ ეს ყველაფერი. 313 00:21:50,480 --> 00:21:53,350 აქ ვარ C-shell. 314 00:21:56,830 --> 00:22:01,200 რომ ცვლადი, რომელიც ზუსტად განსაზღვრავს ჩემი shell, 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 ახლა მე Bash. 319 00:22:12,470 --> 00:22:19,540 ზოგიერთი რამ იქნება იგივე. ls მეუბნება ჩემი ბრძანებები. 320 00:22:19,540 --> 00:22:24,500 თუ მე შეჩერება თავში ჩემი C-shell, ls, იგივე. უფლება? 321 00:22:24,500 --> 00:22:28,890 fg, წინა პლანზე, უკან ჩემი Bash ჭურვი. 322 00:22:28,890 --> 00:22:38,290 შეზღუდული შესაძლებლობის მქონე პირთა, მიმდინარე დირექტორია, უკან C-shell. 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 ის მეუბნება, სადაც ls ბრძანება, 328 00:22:53,670 --> 00:22:56,670 ერთი, რომ მაძლევს დირექტორია ჩამონათვალი, მდებარეობს ls. 329 00:22:56,670 --> 00:23:01,460 მოდით დავუბრუნდეთ Bash ჭურვი. მოდით ცდილობენ იგივე. 330 00:23:01,460 --> 00:23:05,830 Hmm, საინტერესო იქ, სადაც: ბრძანება არ არის ნაპოვნი. 331 00:23:05,830 --> 00:23:07,400 რატომ არის, რომ? 332 00:23:07,400 --> 00:23:11,570 სადაც ბრძანება აგებული, რომ C-shell. 333 00:23:11,570 --> 00:23:15,630 ეს არ არის ბრძანება, რომელიც უნდა წაიკითხო, მეხსიერების სხვაგან და დასაჯეს. 334 00:23:15,630 --> 00:23:20,310 C-shell გადის ის გადაცემის აღსრულება ნაწილი საკუთარი კოდი 335 00:23:20,310 --> 00:23:22,790 და ეს არ არის Bash ჭურვი. 336 00:23:22,790 --> 00:23:25,710 ასე რომ, Bash, არ ასეთი ჩაშენებული ბრძანება, ჩანს, რომ ეს არ ის, 337 00:23:25,710 --> 00:23:27,720 და მივიღებთ შეცდომა. 338 00:23:27,720 --> 00:23:32,290 ასე რომ არ გვაქვს Bash shell გაშვებული ქვეშ C-shell, და მოვუწოდებთ, რომ sub-shell. 339 00:23:32,290 --> 00:23:38,480 და მხოლოდ იმ შემთხვევაში თუ თქვენ საინტერესო, Bash ჭურვი აქვს თავისი გზა განთავსებით ბრძანებები. 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 >> Bourne ტიპის ჭურვები ამჯობინა პროგრამირების. 344 00:23:54,200 --> 00:23:57,300 მათ აქვთ კონტროლის სტრუქტურები, როგორიცაა მარყუჟების, პირობითი განცხადებები, 345 00:23:57,300 --> 00:24:00,240 სახის ბრძანებები, რომ თქვენ შეიძლება გამოიყენოთ პროგრამირების ენებს, როგორიცაა C 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 The Bourne ტიპის ჭურვები, კერძოდ, Bash, უფრო მეტი 349 00:24:11,790 --> 00:24:15,730 და ისინი განკუთვნილია დიდი მოქნილობა. 350 00:24:15,730 --> 00:24:20,700 Bash ჭურვი აქვს მასივები. ორიგინალური Bourne shell არ. 351 00:24:20,700 --> 00:24:26,130 ასე რომ, შეიძლება მნიშვნელოვნად მომგებიანი პროგრამირების. 352 00:24:26,130 --> 00:24:29,810 C-shell რეალურად აქვს კოლექტორები, მაგრამ არ აქვს ბევრი ეს სხვა ფუნქციები. 353 00:24:29,810 --> 00:24:33,450 The Bourne ტიპის ჭურვები განახორციელებს სწრაფად 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 შესაძლებელია გამოიყენოთ ინტერაქტიული sub-shell, ისევე, როგორც ერთი, დავიწყე იქ 360 00:24:52,160 --> 00:24:57,780 შესამოწმებლად out ბრძანებები, რომლის გამოყენება გსურთ ამ სკრიპტის. 361 00:24:57,780 --> 00:25:01,180 რომ ის, რაც თქვენ ვერ ერთად perl. თქვენ შეგიძლიათ ეს გააკეთოთ ერთად ჭურვები. 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 ეს იქნება დაახლოებით C-shell. 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 ერთხელ, დაახლოებით C-shell, Bourne shell და Korn shell აქვს ეს ყველაფერი, 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 ნაცვლად აკრეფით ls - ის საერთო ბრძანება - 373 00:25:44,880 --> 00:25:47,620 მხოლოდ ჩაწერეთ ლ და გადარჩენა თავის 1 სიმბოლოს. 374 00:25:47,620 --> 00:25:50,600 ls სხვადასხვა ფუნქციები, ყველა იმ სამუშაოს. 375 00:25:50,600 --> 00:25:54,460 გაითვალისწინეთ, რომ იმ განმარტებები აქვს quotes მათ გარშემო. 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 "Ls g * 389 00:26:35,470 --> 00:26:37,640 g *, როგორც თქვენ ალბათ იცით, არის wildcard გამოხატვის 390 00:26:37,640 --> 00:26:40,290 ყველა სახელები დაწყებული გ. 391 00:26:40,290 --> 00:26:46,410 თუ უბრალოდ დაწერე ბრძანება ls g *, მე კიდევ სიაში ყველა იმ სახელების ჩემი მიმდინარე დირექტორიაში. 392 00:26:46,410 --> 00:26:50,870 თუ მე განმარტავენ, რომ იგივე, როგორც ეს აქ quotes, 393 00:26:50,870 --> 00:26:56,990 იგი აწარმოებს, რომ ბრძანება თქვენი მიმდინარე დირექტორია, სადაც თქვენ გაშვებული ეს. 394 00:26:56,990 --> 00:27:01,250 მაგრამ თუ თქვენ აწარმოებს იგივე განმარტება გარეშე quotes, 395 00:27:01,250 --> 00:27:09,620 ის შეაფასებს wildcard g * როდესაც ის გადის ამ განმსაზღვრელი ბრძანება. 396 00:27:09,620 --> 00:27:14,400 ასე რომ, განმარტება alias იქნება ls მოჰყვა სიაში ფაილი დირექტორია 397 00:27:14,400 --> 00:27:16,310 რომელშიც alias ბრძანება შესრულებული, 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 ასე, რომ თქვენ უბრალოდ განმარტება ყოფნა ls g *. 401 00:27:30,780 --> 00:27:35,510 მაშინ, როდესაც თქვენ აწარმოებს alias, LGS, მაშინ აყენებს, რომ. 402 00:27:35,510 --> 00:27:40,490 ახლა არ არის ციტატებით, და ის შეაფასებს ვარსკვლავი როდესაც თქვენ აწარმოებს alias ბრძანება. 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 მოდით წავიდეთ აქ და მე გასვლა, ჩემი Bourne shell. 410 00:28:23,570 --> 00:28:25,450 Okay. აი ფაილი. 411 00:28:25,450 --> 00:28:31,490 ვთქვათ ეს grep abc strings. არსებობს ეს. 412 00:28:31,490 --> 00:28:37,930 თუ გავაკეთო grep zddd, მივიღებ არაფერი. Okay. 413 00:28:37,930 --> 00:28:40,960 ასე რომ, იგი აღმოაჩენს სიმებიანი, ის იუწყება, ეს არ იპოვოს, ეს არ ანგარიშს იგი. 414 00:28:40,960 --> 00:28:44,930 ეს შედეგები ნებისმიერი ხაზი, რომელსაც აქვს რომ სიმებიანი იგი. 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 "grep abc '? 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 ახლა alias ზე მეტი მარტივი ბრძანება. მას ასევე აქვს არგუმენტი. 421 00:29:30,620 --> 00:29:32,190 აქამდე, რომ მუშაობს. 422 00:29:32,190 --> 00:29:38,590 მაქვს კიდევ ერთი ბრძანება, აქ, ამ ერთი, ისე იმ სხვადასხვა strings იქ 423 00:29:38,590 --> 00:29:46,790 და დავანახოთ, რომ ეს არ არაფერი არ არსებობს, რადგან ეს არ შეესაბამება. 424 00:29:46,790 --> 00:29:56,180 >> რა თუ მინდა მოიცავს alias განმარტება ფაილი, რომ მე ვაპირებ ძიება 425 00:29:56,180 --> 00:30:02,970 და მე მინდა, როგორც არგუმენტი alias სიმებიანი რომ მე ეძებს? 426 00:30:02,970 --> 00:30:08,040 მე შეიძლება მინდა ვთქვა abc როგორც არგუმენტი ჩემს alias, 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 ყურადღება მიაქციეთ, რომ აქ გვაქვს grep, ისევე, როგორც ადრე. 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 ძახილის წერტილი არის ნაწილი C-shell history მექანიზმი. 433 00:30:39,920 --> 00:30:45,220 ეს შეიძლება გავიხსენოთ ადრე ბრძანებები, შეიძლება გავიხსენოთ არგუმენტები იმ ბრძანებები და სხვ. 434 00:30:46,760 --> 00:31:01,570 ისტორია მექანიზმი გამოყენებული, როგორც ნაწილი aliasing. 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 ასე რომ, 3:2 იქნებოდა მეორე არგუმენტი ბრძანების ნომერი 3. 439 00:31:22,950 --> 00:31:30,430 Caret აქ ამ გამოხატვის დგას პირველი არგუმენტი. 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 და caret არის სიმბოლო პირველი არგუმენტი. 443 00:31:41,990 --> 00:31:46,820 რადგან ეს caret და არა რაოდენობის, თქვენ არ უნდა გამოვიყენოთ მძიმე, 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 ისტორია ბმული დაბრუნება ბრძანებები რომელშიც alias გამოიყენება. 448 00:32:04,650 --> 00:32:08,470 ასე რომ, ეს ხდება უკან 1 ბრძანება, როგორც history ოპერაცია, 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 ჩვენ გვაქვს შეთავაზებები აქ იგი. რა backslash ამისთვის? 452 00:32:20,240 --> 00:32:30,810 ამ შემთხვევაში, როგორც სხვაგან, ჩვენ არ გვინდა, რათა შესრულდეს history მექანიზმი 453 00:32:30,810 --> 00:32:33,680 ხოლო განსაზღვრის alias. 454 00:32:33,680 --> 00:32:37,900 თუ ჩვენ არ გვაქვს backslash იქ, shell, რომ გაიყვანოს პირველი არგუმენტი 455 00:32:37,900 --> 00:32:41,870 ბრძანება უფლება სანამ იგი გაიქცა ამ alias ბრძანება, რომელიც ჩვენ არ გვინდა. 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 შეთავაზებები არ გაგვაჩნია; backslash აკეთებს. 463 00:33:08,080 --> 00:33:11,900 ასე რომ ჩვენ რეალურად გამოყენებით 2 დონეზე აფარებს აქ. 464 00:33:23,500 --> 00:33:29,620 მე ვაპირებ გადაადგილება ამ ბრძანების შევიდა სხვა window გარეშე აკრეფით ის 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 ეს არის bunch of მაგალითი მე უკვე აქ 469 00:33:48,640 --> 00:33:53,400 გარდა ამისა, ის, რომ მე არ იყენებს დღეს აქ. 470 00:33:53,400 --> 00:34:00,220 მაგრამ თუ მე აკრიფოთ სახელით alias, ის მეუბნება, რას ნიშნავს. 471 00:34:00,220 --> 00:34:03,390 გაითვალისწინეთ, რომ quotes წავიდა და backslash გაქრა. 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 ეს აპირებს გამოიყურებოდეს ფაილი strings არაფერი. 475 00:34:19,150 --> 00:34:34,900 ასე რომ, თუ grstrings_file სიმები, მე არ მისცეს მას არაფერი უნდა ვეძებოთ იქ, 476 00:34:34,900 --> 00:34:37,429 მაგრამ ეძებს strings. 477 00:34:37,429 --> 00:34:42,330 ეს არ იპოვოს სიტყვა strings ფაილი strings, მაგრამ ეს იმას იპოვოს abc. 478 00:34:42,330 --> 00:34:46,770 და ეს არ იპოვოს, რომ. 479 00:34:46,770 --> 00:34:52,330 ასე რომ, აქ ჩვენ ვაძლევთ არგუმენტი, რომ ჰიტები შევიდა განმარტება alias, 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 Caret არის სიმბოლო პირველი არგუმენტი. 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 და ისევ, შეგიძლიათ გამომრჩეს colon იმიტომ, რომ ეს არ არის ციფრების. 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 თუ თქვენ გაქვთ იგივე განმარტება, რომელიც არ იყენებს history ტიპის მინიშნება, 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 ასე რომ, თუ თქვენ იყენებთ history მინიშნება ყველა, მაშინ თქვენ უნდა გამოვიყენოთ რომ მიიღოს ნებისმიერი არგუმენტი. 516 00:37:04,630 --> 00:37:11,310 >> არსებობს კიდევ ერთი რამ აქ მინდა აღვნიშნო, ნაწილობრივ parenthetically, 517 00:37:11,310 --> 00:37:15,250 კერძოდ, რომ ამ ისტორიის მექანიზმი ძახილის წერტილი 518 00:37:15,250 --> 00:37:18,010 მიდის უკან ორიგინალური C-shell. 519 00:37:18,010 --> 00:37:27,060 Tcsh გააცნო history ოპერაციების 520 00:37:27,060 --> 00:37:30,910 რომლებიც იყენებენ სახის ბრძანებები და strings საწყისი რედაქტორები, 521 00:37:30,910 --> 00:37:33,650 ან Emacs ან vi. 522 00:37:33,650 --> 00:37:36,430 ჩემი პირადი აზრი Emacs ბევრად უფრო ადვილია გამოყენება ამ მიზნით 523 00:37:36,430 --> 00:37:39,390 მაშინაც კი, თუ თქვენ იყენებთ vi თქვენი რეგულარული რედაქტირება. 524 00:37:39,390 --> 00:37:43,900 არსებობს სხვადასხვა Emacs ბრძანებები რომლებიც ახლა ადაპტირებული ისტორია. 525 00:37:43,900 --> 00:37:46,410 კონტროლის P იღებს წინა ხაზზე ისტორიაში სიაში. 526 00:37:46,410 --> 00:37:48,840 სხვა Control P მიიღებს თქვენ ერთი მანამდე. 527 00:37:48,840 --> 00:37:50,540 ისარი აკეთებს იმავეს. 528 00:37:50,540 --> 00:37:54,190 კონტროლის N იღებს მომდევნო ბრძანება თუ თქვენ უკვე scrolled უკან გარკვეულწილად. 529 00:37:54,190 --> 00:37:55,880 Down arrow აკეთებს, რომ ძალიან. 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 C-shell იყენებს ბრძანება მითითებული დაავალოს ცვლადები, 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 და მოდით კიდევ მეტი ჩემი სხვა shell აქ და ვნახოთ რა მივიღებთ, თუ ჩვენ გაგვაჩნია. 548 00:39:34,220 --> 00:39:37,110 საკმაოდ გრძელი სია არსებობს, არა? 549 00:39:37,110 --> 00:39:40,990 Scroll up ცოტა. შეხედეთ ყველა, რომ. 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 ზოგიერთი მათგანი განისაზღვრება shell მაგრამ შემდეგ შეცვალა მომხმარებლის მიერ 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 ეს იქნება მითითებული ცვლადი null ღირებულება. 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 ასე რომ, ამ ბრძანების აქ აქვს ეფექტი განსაზღვრავს ორივე A და B NULL მნიშვნელობას. 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 რადგან = b არ არის მართებული გამოსახულება. 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 Colons იყო გამოყენებული, რათა აირჩიოთ არგუმენტები ისტორია ხაზები, 574 00:41:36,820 --> 00:41:41,210 და ისინი შეიძლება გამოყენებულ იქნას - და მე არ წასვლას ადრე - ცვლილებები იმ რამ. 575 00:41:41,210 --> 00:41:44,480 ისინი ასევე შეიძლება გამოყენებული იქნას ცვლილებები shell ცვლადები. 576 00:41:44,480 --> 00:41:49,050 ამ ერთი აქ, $ აქვს მნიშვნელობა. 577 00:41:49,050 --> 00:41:55,040 : R მიიღებს off გაფართოება. 578 00:41:55,040 --> 00:41:57,200 გაგრძელება იქნება არაფერი შემდეგ dot, 579 00:41:57,200 --> 00:41:59,200 dot და არაფერი შემდეგ იგი დასასრულს ფაილი, 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 ის არის, რომ. ეს იქნება ვარდნა. O. 583 00:42:10,730 --> 00:42:16,510 თუ არ არსებობს გაფართოება, მხოლოდ pathnames შემდეგ ბოლო ხაზი, რომ ეს არ მოახდენს. 584 00:42:16,510 --> 00:42:27,480 : h, რომ ცვლადი გამოხატვის, მიიღებს off ბოლო ელემენტს დირექტორია ჩამონათვალი, 585 00:42:27,480 --> 00:42:29,660 ერთხელ, მხოლოდ მას შემდეგ, ბოლო ხაზი. 586 00:42:29,660 --> 00:42:33,160 ასე რომ, / a / b / c ხდება / a / b, 587 00:42:33,160 --> 00:42:38,870 მაგრამ ეს ერთი შეიცვალა, რადგან ელემენტის შემდეგ სიაში null. 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 მაგრამ ისინი შეიძლება გამოყენებული იქნას ნებისმიერი string მაშინაც კი, თუ ეს არ არის ფაილის სახელი. 593 00:42:57,520 --> 00:42:58,920 და ისინი არ ვეძებთ არსებობა, 594 00:42:58,920 --> 00:43:03,550 ასე რომ, თუ არ არსებობს ასეთი ფაილი, / a / b / c, ეს დღესაც მუშაობს. 595 00:43:03,550 --> 00:43:06,930 თუ არა ის ნებისმიერი გამოყენება სხვა საკითხია, მაგრამ ის მაინც იმუშავებს. 596 00:43:06,930 --> 00:43:12,850 ცვლადები სხვადასხვა Bourne ჭურვები. ჩვენ კიდევ, რომ მოგვიანებით. 597 00:43:12,850 --> 00:43:18,240 დოლარის ნიშანი შეიძლება გაიქცა ისევე ძახილის წერტილი და ვარსკვლავი. 598 00:43:18,240 --> 00:43:21,760 დოლარის ნიშანი შეიძლება გაიქცა backslash ან ერთჯერადი შეთავაზებები. 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 გარემოს ცვლადები, შეკრული C-shell ცვლადები. 610 00:44:05,600 --> 00:44:08,340 გარემოს ცვლადები ასევე ცვლადები C-shell, 611 00:44:08,340 --> 00:44:11,250 და ისინი ასევე ცვლადები სხვა ჭურვები ძალიან. 612 00:44:11,250 --> 00:44:15,230 In C-shell, ისინი განსხვავდება კომპლექტი. 613 00:44:15,230 --> 00:44:18,130 რაც მე ამბობდა, სანამ დაახლოებით shell ცვლადები. 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 როგორ ხდება ეს ცვლადები გადაეცემა sub-shell? 645 00:46:42,680 --> 00:46:48,210 როდესაც sub-shell წერია, ის არ დაწეროთ შევიდა, რომ ფართობი. 646 00:46:48,210 --> 00:46:53,260 ფართობი sub-ჭურვი, რომელიც ეძღვნება გარემოს ცვლადები 647 00:46:53,260 --> 00:46:56,450 არ არის დაწერილი sub-shell, ის დაწერილი გადაწერა. 648 00:46:56,450 --> 00:47:00,530 როდესაც თქვენ აწარმოებს ჩვეულებრივი ბრძანება, როგორიცაა ეს ბრძანებები ბეჭდვა ან რასაც, 649 00:47:00,530 --> 00:47:03,840 ისინი დაიწყოს off შექმნის ახალ ჭურვი. 650 00:47:03,840 --> 00:47:06,190 ჭურვი ქმნის ჭურვი და შემდეგ overwrites ნაწილი 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 ეს არის ის, თუ როგორ განსაზღვრავს მას. ეს არის 3 ელემენტები: setenv, ცვლადი, ღირებულება. 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 რომელიც ასევე ბეჭდავს out გარემოს. 663 00:48:10,340 --> 00:48:15,240 ყურადღება მიაქციეთ ამ ბოლო რამ აქ, რედაქტორისაგან = vi. 664 00:48:15,240 --> 00:48:21,120 რომელიც ამბობს, რომ თუ მე გამოყენებით რაღაც რომ უწოდებს რედაქტორი 665 00:48:21,120 --> 00:48:25,530 და მე არ დააკონკრეტა, რედაქტორი და ეს საშუალებას მაძლევს არჩევანი, ეს შეიძლება მომეცი vi. 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 დამახსოვრება იყო მოდიფიკატორები განთავსების ჭურვი ცვლადი, როგორიცაა: h, 674 00:49:11,010 --> 00:49:14,350 რომელიც უარს იტყვის ბოლო ელემენტს pathname, 675 00:49:14,350 --> 00:49:17,950 ან: r, რომელიც უარს იტყვის გაფართოება. 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 და შელი ცვლადები C-shell არიან, ზოგიერთი გამონაკლისის გარდა, მკაფიო კომპლექტი. 681 00:49:43,040 --> 00:49:46,790 თქვენ შეუძლია შექმნას გარემოს ცვლადი და shell ცვლადი იგივე სახელი. 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 ჩემი ტესტების მე მივიღე shell ცვლადი, 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 იგივე სახელები კარგი იდეა? პოსტები Okay. 690 00:50:13,490 --> 00:50:17,460 რა არის ის ძირითადი გამონაკლისი, რომელიც გარემოს დაცვისა და shell ცვლადები 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 Capital წერილი ტერმინის ცვლად გარემოცვას, 694 00:50:35,510 --> 00:50:41,540 ჭურვი ცვლადი ვადა პატარა ასოები, ტიპის ტერმინალის ემულაციის. 695 00:50:41,540 --> 00:50:47,430 მე უბრალოდ აპირებს წასვლა აქ და მე ვაპირებ ამის გაკეთებას echo, სასარგებლო ბრძანება აქ, 696 00:50:47,430 --> 00:50:52,560 $ პერიოდი $ ვადით. და იქ. 697 00:50:52,560 --> 00:51:00,570 xterm არის ტერმინალის ტიპის ფანჯრები ნაჩვენები X Window სისტემის. 698 00:51:00,570 --> 00:51:04,330 xterm ფერი არის ვარიაციით, რომ, რომელიც საშუალებას აძლევს სხვადასხვა ფერის. 699 00:51:04,330 --> 00:51:06,580 რატომ ჩვენ განვსაზღვროთ ეს? რა არის ეს კარგი? 700 00:51:06,580 --> 00:51:09,740 ბრძანებები, rearrange ეკრანზე, როგორც რედაქტორი 701 00:51:09,740 --> 00:51:13,680 გაუგზავნე კერძოდ sequences, ე.წ. გაქცევის sequences, 702 00:51:13,680 --> 00:51:18,160 to ტერმინალი ან ფანჯრის განსამტკიცებლად და სხვ. 703 00:51:18,160 --> 00:51:20,990 იმ sequences სხვადასხვა სხვადასხვა ტიპის ტერმინალები. 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 ყოველთვის არ შეცვლის shell ცვლადი ვადა პატარა წერილები. 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 თუ თქვენი სახელი არის ვინმე, მას შეუძლია ჩააგდოს ყველა სახის რამ off. 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 გარემოს ცვლადი ასოებით და შეკრული shell ცვლადი პატარა წერილები. 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 და სავალდებულოა ამ ცვლადებს არ შეიძლება undone, 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 თქვენ შეიძლება მიიღოს shell ცვლადი ვადა პატარა ასოები 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 დაყრდნობით, რომ სახელს, თქვენ არ იცით, თუ, რომ ცვლადი არის shell ცვლადი 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 მოდით კიდევ მეტი ეს ფანჯარა აქ და ჩვენ ყველაფერს გავაკეთებთ echo $ PATH, ასოებით - 750 00:54:12,320 --> 00:54:20,230 გარემოს ცვლადი - echo $ გზა, პატარა ასო - ჭურვი ცვლადი. 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 გარემოს ცვლადი ელემენტები გამოყოფილია colons. გაითვალისწინეთ, რომ. 754 00:54:32,970 --> 00:54:35,130 ჭურვი ცვლადების მაქს. 755 00:54:35,130 --> 00:54:38,760 ეს გარემოს ცვლადი ერთი string. 756 00:54:38,760 --> 00:54:41,480 ჭურვი ცვლადი მასივი. 757 00:54:41,480 --> 00:54:43,490 The Bourne shell არ აქვს მასივები. 758 00:54:43,490 --> 00:54:46,600 Bash აკეთებს, მაგრამ ეს უკვე ფიქსირებული ნაწილი ჭურვი. 759 00:54:46,600 --> 00:54:48,660 ეს არის ერთ სიმებიანი და არა მასივი. 760 00:54:48,660 --> 00:54:50,420 C-shell ყოველთვის ჰქონდა მასივები. 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 ასე რომ echo $ გზა [1] და მე / usr / bin, პირველ ელემენტს. 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 მე გაქცევა ეს. Oops. იგი არ მიიღებს, რომ არც. 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 ფაქტობრივად, თუ თქვენ უნდა აკეთებს ამ წელს Bash shell შესაძლოა, 784 00:56:44,080 --> 00:56:47,110 ერთგვარი სცენარი, რომ ეს იქნება ალბათ, თუ როგორ გავაკეთოთ. 785 00:56:47,110 --> 00:56:50,350 მაგრამ C-shell ეს ბევრად უფრო ადვილია გამოყენება მასივი. 786 00:56:50,350 --> 00:56:58,250 ამ Bourne shell, ცვლადების მიერ დანიშნული ერთი გამოხატულება მოსწონს, 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 string. 790 00:57:09,110 --> 00:57:14,980 ამ Bourne ტიპის ჭურვები, ყველა ცვლადები shell ცვლადები. 791 00:57:14,980 --> 00:57:19,250 გარემოს ცვლადები არის subset of the shell ცვლადები. 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 ეს გამოთქმა, ექსპორტი გარემოს, გამომდინარეობს ამ Bourne shell კონცეფცია, 799 00:57:50,430 --> 00:57:54,520 და კიდევ რომ გამოხატვის გამოიყენება აღწერილობები C-shell, 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 Okay, იქ ჩვენ წავიდეთ. 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 In Bash ან Korn Shell, შეგიძლიათ გაუშვათ ბრძანება მოსწონს, 809 00:58:36,880 --> 00:58:42,000 რომელიც ორივე მისცეს ცვლადი ღირებულება და ექსპორტის 1 ბრძანება. 810 00:58:42,000 --> 00:58:46,150 ამ Bourne shell ისინი უნდა იყოს ცალკე ბრძანებები, როგორიცაა ექსპორტი. 811 00:58:46,150 --> 00:58:48,410 აქ არის კიდევ ერთი ასპექტი, რომ გაუგებარია. 812 00:58:48,410 --> 00:58:52,220 კომპლექტი ბრძანება C-shell განსაზღვრავს ცვლადის 813 00:58:52,220 --> 00:58:55,550 და არანაირი არგუმენტი ეუბნება, თუ რა ცვლადები 'ღირებულებები. 814 00:58:55,550 --> 00:59:01,140 ამ Bash shell, კომპლექტი ბრძანება არგუმენტები არ აკეთებს იმავეს, 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 ზოგიერთი მათგანი გარემოს ცვლადები, ზოგიერთი მათგანი shell ცვლადები. 818 00:59:10,460 --> 00:59:13,200 ყველა მათგანი shell ცვლადები ნამდვილად. ზოგიერთი იმ გარემოს ცვლადები. 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 იგი ასევე შეიძლება გამოყენებული იქნას შეცვალოს shell საქციელისათვის. 824 00:59:39,580 --> 00:59:46,700 განსაკუთრებით Bash არის ცვლადი, რომელიც განსაზღვრავს, თუ როგორ shell იქცევა. 825 00:59:46,700 --> 00:59:51,310 შემდეგ ასევე მხოლოდ ამ ერთი ბრძანება, რომ თქვენ შეიძლება ნახოთ ეს ბრძანება. 826 00:59:51,310 --> 00:59:59,050 Typeset მოჰყვა ცვლადები და ცვლადი ტიპები გამოიყენება Korn და Bash ჭურვები. 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 დამახსოვრება ვთქვი ადრე, სადაც ბრძანების C-shell, 832 01:00:22,490 --> 01:00:28,750 რომელიც შემიძლია გითხრათ მდებარეობა ბრძანება pathname. 833 01:00:28,750 --> 01:00:32,580 აქ არის command-ის რიგებში. 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 აქ ჩემს Mac კლავიატურის ის ზედა მარცხენა კუთხეში. 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 კეთილი მოსახერხებელი, huh? 854 01:02:11,120 --> 01:02:14,860 ასე რომ, ერთ neat რამ. ასე 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 Okay. 859 01:02:36,900 --> 01:02:39,630 ახლა ვნახოთ, როგორ იმ განმარტებები გამოვიდა. 860 01:02:39,630 --> 01:02:44,930 alias lwh მეუბნებოდა, როგორ განისაზღვრება. 861 01:02:44,930 --> 01:02:51,210 ყურადღება მიაქციეთ, უბრალოდ, მაგრამ გარე შეთავაზებები უკვე წაიყვანეს 862 01:02:51,210 --> 01:02:53,750 და ძახილის წერტილი აღებული off. 863 01:02:53,750 --> 01:02:58,940 * სრული სია არგუმენტები. 864 01:02:58,940 --> 01:03:03,580 In იგივე განმარტება იგი გამოიყენებს დაბრუნდა, სადაც მე გამოიყენოს ეს. 865 01:03:03,580 --> 01:03:10,620 lwh ksh bash. Okay. 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 Csh აქვს 2 მეტი აქ და ასე აკეთებს / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 ჩვენ შეიძლება შეიქმნას სხვა საშუალებებით, რომ ეს რეალურად იგივე ფაილი. 871 01:03:39,870 --> 01:03:43,150 დამახსოვრება მე ამბობდა თუ აკრიფოთ შ თქვენ გაქვთ bash. 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 ასე რომ იმ ცალკე ფაილი, C-shell პირობა იგივე ფაილი. 876 01:03:59,460 --> 01:04:03,640 უკან ქვემოთ აქ, მეორე აქ, ამ alias, 877 01:04:03,640 --> 01:04:09,090 გაითვალისწინოთ, რომ გაშვებული ამ ბრძანების ფაილი. 878 01:04:09,090 --> 01:04:13,810 რომ alias თანახმად. ფაილი გიჩვენებთ ტიპის ფაილი. 879 01:04:13,810 --> 01:04:20,330 ასე fwh ksh bash. Okay. 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 Mach-O უნივერსალური ორობითი 2 არქიტექტორები. 883 01:04:26,750 --> 01:04:30,470 არსებობს 2 შესაძლო პროცესორი ტიპის Mac, 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 ასე რომ, ჩვენ ვხედავთ, თუ როგორ alias მუშაობს, ჩვენ ვხედავთ, თუ როგორ backquote სამუშაოები, 888 01:04:43,760 --> 01:04:48,640 ჩვენ ვხედავთ, თუ როგორ ფაქტობრივი ფაილი ls ან ფაილის მუშაობს. 889 01:04:52,050 --> 01:04:57,000 ეს შეიძლება არ იმუშაოს. ცდილობენ ", სადაც, სადაც" და "lwh სადაც". Okay, მოდით ვცდილობთ რომ. 890 01:04:57,000 --> 01:05:01,040 სადაც სადაც. 891 01:05:01,040 --> 01:05:03,500 სად არის shell ჩამონტაჟებული. 892 01:05:03,500 --> 01:05:06,970 დამახსოვრება ადრე ჩვენ აჩვენა, რომ Bash არ აქვს, სადაც. 893 01:05:06,970 --> 01:05:10,080 თუ თქვენ ტიპის სადაც Bash shell, თქვენ მიიღებთ შეცდომა. 894 01:05:10,080 --> 01:05:12,540 ეს არის მხოლოდ ნაწილი shell ვიდრე ცალკე ბრძანება. 895 01:05:12,540 --> 01:05:20,000 რა მოხდება, თუ მე აკრიფოთ lwh ეძებს სად? ვნახოთ, რა მოხდება იქ. 896 01:05:20,000 --> 01:05:22,850 გაიქცა, სადაც, სადაც მივიღე ამ output, და შემდეგ შევეცადე აწარმოებს ls 897 01:05:22,850 --> 01:05:25,600 როგორც ლ, სადაც არის shell ჩამონტაჟებული. 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 ეს აქ არის Bash. ესეც ბრძანება ცვლილება, როგორიცაა 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 Single ფრჩხილებში აქ ბრძანება ცვლილება, ისევე, როგორც backquotes. 911 01:06:29,500 --> 01:06:32,720 Double ფრჩხილებში რეალურად არითმეტიკული ოპერაცია. 912 01:06:32,720 --> 01:06:35,380 არსებობს სხვა syntaxes, სხვა ოპერაციებში. 913 01:06:35,380 --> 01:06:41,520 Backquote სინტაქსი არის შესაძლებელი Bash. 914 01:06:41,520 --> 01:06:46,780 თუმცა, ამ ერთი სასურველია. ეს ბევრად უფრო ადვილი წასაკითხი და ის საშუალებას nesting. 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 თქვენ ალბათ არ გავაკეთოთ ეს, თქვენ უბრალოდ გაკეთება echo ან ls, 925 01:08:24,479 --> 01:08:29,450 მაგრამ ეს გვიჩვენებს, თუ როგორ nesting ბრძანებები მუშაობს. 926 01:08:29,450 --> 01:08:34,380 ასე რომ მხოლოდ ერთი თვისება აქ. 927 01:08:34,380 --> 01:08:37,450  ვთქვი, ეს ადრე, რომ როდესაც თქვენ გაქვთ სადაც C-shell, 928 01:08:37,450 --> 01:08:42,770 ჩაწერეთ სამუშაოები Bourne ტიპის ჭურვებს განთავსებით ბრძანებები. 929 01:08:48,939 --> 01:08:52,270 ჩაშენებული ბრძანებები, მხოლოდ ის, რაც მე ამბობდა არსებობს. 930 01:08:52,270 --> 01:08:54,640 ბრძანებები ნაწილი shell, ისევე, როგორც, სადაც. 931 01:08:54,640 --> 01:08:59,880 როდესაც ჭურვი ახორციელებს ბრძანება, როგორიცაა ls, ეს მოსაძებნად ის მეშვეობით გზა, 932 01:08:59,880 --> 01:09:03,029 უჭირს ზოგიერთ დირექტორია სადღაც, 933 01:09:03,029 --> 01:09:05,800 ნათქვამია, რომ მეხსიერებაში, ქმნის ახალ shell, 934 01:09:05,800 --> 01:09:08,960 ნათქვამია ბრძანება ls ან რასაც შევიდა ჭურვი 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 ამიტომ shell მხოლოდ იწყებს შესრულებაში ნაწილი საკუთარი კოდი. 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 თქვენ შეიძლება აკრიფოთ / bin / სად და ნეტავ მიიღოს იგი. 950 01:09:58,440 --> 01:10:01,800 თუ თქვენ არ გსურთ შეიტანოთ მთელი pathname, შეგიძლიათ განსაზღვრავს alias. 951 01:10:01,800 --> 01:10:06,310 ფაქტობრივად, თუ მისცა alias იგივე სახელი ჩაშენებული ბრძანება, რომ მუშაობა 952 01:10:06,310 --> 01:10:08,790 იმიტომ, რომ იგივე განმარტება ფასდება 953 01:10:08,790 --> 01:10:13,220 ადრე shell დაადგენს, რომ ეს არის ჩაშენებული ბრძანება რომელიც უნდა განხორციელდეს. 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 ერთი მათგანი არის echo, ბრძანება უბრალოდ გამოიყენება ცოტა ხნის წინ იმ მაგალითები. 957 01:10:34,140 --> 01:10:37,410 Echo ბრძანება გზა და ეს ყველა ჭურვი. 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 არსებობს ასევე ვარიანტი განისაზღვრება ცვლადი tcsh მოუწოდა echo_style. 969 01:11:23,060 --> 01:11:27,700 ეს არის ერთ ერთი ეს ცვლადები, რომ შეიძლება შეიცვალოს ისე, რომ echo სამუშაოები. 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 მას შემდეგ, რაც სხვა ბრძანებები არ გაქვთ shell ცვლადები, 974 01:11:40,640 --> 01:11:42,090 მხოლოდ გარემოს ცვლადები. 975 01:11:42,090 --> 01:11:45,360 მაგრამ shell ოპერაციების წაიკითხოს shell ცვლადები. 976 01:11:45,360 --> 01:11:50,710 ეს არ იმუშავებს csh. ეს მხოლოდ tcsh. ეს არის ერთ ერთი გაუმჯობესებებს. 977 01:11:58,540 --> 01:12:04,620 დამუშავების აქვს sequences, როდესაც იგი აფასებს metacharacters, 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 რომ parsing თანმიმდევრობა, ოპერაციის C-shell, 990 01:12:50,460 --> 01:12:56,490 არ არის იგივე ჩაშენებული ბრძანებები, როგორც ეს არის არასამთავრობო ჩაშენებული ბრძანებები. 991 01:12:56,490 --> 01:12:58,890 მე არ ვარ დარწმუნებული Bash არსებობს. 992 01:12:58,890 --> 01:13:02,450 მაგალითად, თუ ჭურვი ცვლადი წარმოებული history მინიშნება, 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 ოჰ, დაველოდოთ. უკაცრავად. მე ამ წელს Bash. მინდოდა აქ. 998 01:13:53,470 --> 01:13:56,080 ვხედავ, ასე რომ არ აფასებენ, რომ ისტორია მითითება 999 01:13:56,080 --> 01:14:00,520 იმიტომ, რომ ეს უკვე იყო წარსულში წერტილი შეფასებისას history გამონათქვამები 1000 01:14:00,520 --> 01:14:02,720 როდესაც იგი შეაფასა ცვლადი. 1001 01:14:02,720 --> 01:14:05,550 ასე რომ 1 ეფექტი parsing. 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 თქვენ შეიძლება გავიხსენოთ, რომ ჩვენ შეგვიძლია შევაფასოთ asterisks როგორც სახელებში მიღებული შაბლონები, 1007 01:14:28,640 --> 01:14:33,890 და არსებობს სხვა სახელებში მიღებული შაბლონები, როგორც კითხვის ნიშნის და bracket გამონათქვამები. 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 გაითვალისწინეთ, რომ საჯარიმო glob არ აქვს, რომ ეფექტი. 1012 01:14:56,440 --> 01:15:00,800 ჩვეულებრივი ენა, მითითებული glob ან ამორთულია 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 და თუ რამე მოდიოდა მეტი Ethernet ან ქსელში, 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 თუ თქვენ უბრალოდ dialup - შეამჩნია, რომ? ეს მიდის უკან გზა, huh? 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 Okay. 1026 01:15:51,480 --> 01:15:53,350 setenv TERM xterm ფერი. 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 გახსოვთ ბრძანება, რომ ფაილი უბრალოდ აჩვენა თქვენ ჰქონდა Q იგი. 1033 01:16:16,360 --> 01:16:18,910 მოდით გავაკეთოთ ეს. 1034 01:16:18,910 --> 01:16:23,750 Q თრგუნავს ზოგიერთი გამომუშავება, არამედ ის, რომ არ აქვს მნიშვნელობა, აქ, როგორც ხედავთ. 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 მე omitting ეს ყველაფერი აქ. 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 Ethernet, ქსელის, dialup, რა. 1042 01:16:45,400 --> 01:16:48,050 არ აქვს მნიშვნელობა, აქ იმიტომ, რომ ჩვენ რეალურად არ აკეთებს ნებისმიერი ამ საკითხზე. 1043 01:16:48,050 --> 01:16:49,720 მე უბრალოდ ამსახველ ბრძანება. 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 Okay, მითითებული: Command არ არის ნაპოვნი. რომ სახის უცნაური, არა? 1051 01:17:18,040 --> 01:17:20,570 კომპლექტი არის ცნობილი ბრძანება. ეს ნაწილი ჭურვი. 1052 01:17:20,570 --> 01:17:24,040 მითითებული: Command არ მოიძებნება? რატომ არის, რომ? 1053 01:17:24,040 --> 01:17:26,790 Hmm. ისე, მოდით ვიფიქროთ ამ. 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 კარგად. არსებობს მაგალითი parsing თანმიმდევრობით. 1062 01:17:59,300 --> 01:18:01,460 და რა ვქნათ ამაზე? 1063 01:18:01,460 --> 01:18:04,800 შეამჩნია ეს ძალიან საინტერესო ბრძანება აქ პოსტების რაოდენობისა. 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 აქ ჩვენ გადასვლა, პოსტების 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 ან ცვლადი ცვლილება, რადგან parsing მოხდა სანამ ამ substitutions. 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 მოდით კიდევ მეტი აქ და ჩვენ დავინახავთ, რომ პოსტების გამოიყენება მხოლოდ მანამდე. 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 Okay, ასე რომ მუშაობს. 1082 01:19:22,850 --> 01:19:26,440 როდესაც თქვენ პოსტების, ის, თუ რა უძღოდა მას და ხდის ბრძანება. 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 ასე რომ, ჩვენ წასვლა პოსტების, პოსტების მწვერვალებით, რომ, იწყება მთელი რამ თავიდან, და მუშაობს. 1091 01:20:06,440 --> 01:20:18,460 მაგალითად, ორივე backquoting, პოსტების, parsing, შედეგების დამუშავება, 1092 01:20:18,460 --> 01:20:21,910 და ბრძანება, რომელიც, ალბათ, ძალიან ცოტა გამოყენება თქვენ დღეს. 1093 01:20:21,910 --> 01:20:25,540 Okay. ყველა უფლება umask. 1094 01:20:25,540 --> 01:20:32,160 მოდით შევხედოთ ამ ბრძანების აქ, umask 022. მაინტერესებს, რა რომ აკეთებს. 1095 01:20:32,160 --> 01:20:38,420 მოდით უბრალოდ აკრიფოთ umask არაფერი მას შემდეგ. 22. Okay. 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 R დგას წაკითხული, w რომ დავწეროთ, 1104 01:21:21,390 --> 01:21:25,500 და x, რომელიც არ არის იქ, დგას შეასრულოს. 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 თუ არსებობს r ან aw ან x, ეს ნიშნავს, რომ დაცვის მინიჭება. 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 თუ ფიქრობთ, რომ თითოეული ეს როგორც octal ნომერი, ან, 1124 01:22:33,240 --> 01:22:42,120 ეს არის 1s bit, ეს არის 2s, ეს არის 4S. 1125 01:22:42,120 --> 01:22:45,840 ასე რომ, 0 მეშვეობით 7 1126 01:22:45,840 --> 01:22:51,770 აღწერს რა კომბინაცია r ს, w, და x-ის გაქვთ ამ 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 გაითვალისწინეთ, რომ ამ კონკრეტულ შემთხვევაში x ნებადართული არ არის. 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 რადგან ეს არ არის შესრულებადი ფაილი, ეს არ დააყენოთ x. 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 ასევე, x ნებადართულია, მაგრამ ეს არ არის აქ იმიტომ, რომ ეს არ არის შესრულებადი 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 Okay. ასე რომ, აქ, ეს არის ჭურვები. 1150 01:24:30,210 --> 01:24:36,020 Bash, მფლობელი, რომელიც არის სისტემის ანგარიშზე, შეგვიძლია გავაკეთოთ ყველაფერი. 1151 01:24:36,020 --> 01:24:41,210 Group და ყველას შეუძლია გააკეთოს, წაიკითხა ან შეასრულოს, მაგრამ არ წერენ. 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 ადგენს ნაგულისხმევი მიერ masking ის, 1156 01:24:53,940 --> 01:24:57,160 მითითებით ბიტი, რომ არ იქნება მითითებული. 1157 01:24:57,160 --> 01:25:04,380 ეს არის, როგორც წესი, ერთი თქვენი ინიციალიზაციისას ფაილი, რომელიც არის. Cshrc, რომ C-shell 1158 01:25:04,380 --> 01:25:07,500 ან. პროფილი Bourne ტიპის ჭურვები. 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 მიზეზი ის არის, ეს მხოლოდ მიდის უკან წარმოშობის Unix. 1166 01:25:34,560 --> 01:25:41,050 Unix იყო მხოლოდ რამდენიმე პროგრამირების პროექტის Bell Labs 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 თუ როგორ მიდიოდნენ უნდა იქნას გამოყენებული - საკმაოდ sketchy. 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 Okay. შემდეგი აქ. 1174 01:26:08,170 --> 01:26:11,000 როგორც მე დავწერე ადრე, C-shell არ არის ნამდვილად გამოიყენება ძალიან ბევრი პროგრამირება, 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 დამატებითი ფუნქციები დაემატა Bourne shell მიერ Korn და Bourne კვლავ ჭურვი 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 თქვენ ალბათ არ ამას shell სკრიპტი. 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 გაშვებული ის Bourne shell არ იქნება უფრო სწრაფად, ვიდრე გაშვებული ის C-shell, 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 მნიშვნელოვანი მიზეზი, რის გამოც თქვენ უნდა გამოიყენოთ Bourne ტიპის ჭურვები. 1195 01:27:17,920 --> 01:27:21,390 C-shell აქვს უცნაური თვისებები მას - 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 მე ვფიქრობ, თქვენ შეიძლება აღმოაჩინოთ Bourne ტიპის ჭურვები უფრო შეესაბამება თქვენი გამოცდილება. 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 $ () გამოხატვის გათვლებით Bash shell, 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 ეს არ არის იქაც. Okay. ვფიქრობ, არასდროს არ განმარტა, რომ. 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 დამახსოვრება ეს არის C-shell. 1228 01:29:50,370 --> 01:29:54,850 ასე printenv რედაქტორებისათვის მოგვცემს ღირებულება რედაქტორი. ეს vi. 1229 01:29:54,850 --> 01:29:59,790 და მაშინ მითითებული, რომ ღირებულების ცვლადი, კომპლექტი ბრძანება. 1230 01:29:59,790 --> 01:30:02,860 ახლა, თუ echo $ a, მივიღებ vi. 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 ასე რომ, თუ იყო shell ცვლადი რედაქტორი, ამ შემთხვევაში არ აქვს მიღებული იგი. 1237 01:30:22,550 --> 01:30:25,640 ეს მუშაობს მხოლოდ გარემოს ცვლადი. 1238 01:30:25,640 --> 01:30:28,370 თუ იყო shell ცვლადი და მინდოდა მისი ღირებულება, 1239 01:30:28,370 --> 01:30:29,980 მინდა რაღაც სხვა გზა ამის გაკეთება. 1240 01:30:29,980 --> 01:30:33,530 ერთი გზა უნდა გააკეთოს, რომ იქნება ამით კომპლექტი და piping. 1241 01:30:33,530 --> 01:30:36,130 ეს არის ერთ ერთი metacharacters, სპეციალური სიმბოლოები. 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 არაფერი. Okay. მოდით უბრალოდ ვნახოთ რა იქ ყველა ერთად. 1245 01:30:49,340 --> 01:30:53,580 ეს იყო echo_style, ერთი ვთქვი ადრე. Okay, მოდით, რომ. 1246 01:31:02,460 --> 01:31:06,230 დამახსოვრება ვთქვი ადრე, echo_style 1247 01:31:06,230 --> 01:31:08,410 განსაზღვრავს გზა echo ბრძანება მიიღებს. 1248 01:31:08,410 --> 01:31:10,940 bsd დგას Berkeley სტანდარტული განაწილება. 1249 01:31:10,940 --> 01:31:13,200 ეს არის Berkeley Unix 1970. 1250 01:31:13,200 --> 01:31:16,630 ეს არის ერთ ერთი გზა, რომ echo შეიძლება აწარმოებს. 1251 01:31:16,630 --> 01:31:22,310 შექმნის echo_style რომ ღირებულების TC-shell გამოიწვევს echo მოიქცევა, რომ გზა. 1252 01:31:22,310 --> 01:31:27,670 ასე რომ მითითებული აქვს, მაგრამ მითითებული მხოლოდ იღებს shell ცვლადები. 1253 01:31:27,670 --> 01:31:35,430 ის არ იპოვოს რედაქტორი, რომელიც არ არის shell ცვლადი. 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 განასხვავოს shell ცვლადები ან გარემოს ცვლადები 1258 01:31:45,500 --> 01:31:49,970 გვიჩვენებს სახის impractical ბუნების C-shell გარკვეული მიზნებისათვის. 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 თქვენ შეიძლება არ იცით, თუ ამ მიზნით არის shell ცვლადი ან რაღაც, 1265 01:32:20,050 --> 01:32:21,630 ასე რომ თქვენ შეიძლება არ ვიცი სად უნდა ვეძებოთ იგი. 1266 01:32:21,630 --> 01:32:25,030 თქვენ შეგიძლიათ შეხედოთ სხვადასხვა strings, მაგრამ სიმები ხშირად მეორდება. 1267 01:32:25,030 --> 01:32:27,640 ასე რომ ზოგადად მძიმე წასაკითხი. 1268 01:32:27,640 --> 01:32:33,810 ჩვენ უბრალოდ შევხედე TC-shell man გვერდი ცოტა ადრე იპოვოს პოსტების ბრძანება. 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 პეიჯერი აქვს slash ვეძებოთ ბრძანება ან სიმებიანი შიგნით მასალა ოპერაცია. 1273 01:32:49,080 --> 01:32:52,830 Man by default გამოიყენებს pagers, იყოს მეტი ან ნაკლები. 1274 01:32:52,830 --> 01:32:56,560 მე არ ვიცი, თუ თქვენ იცნობს მათ, მაგრამ იმ შეგიძლიათ ნახოთ ფაილი ნელ bit. 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 თქვენ შეგიძლიათ სცადოთ სხვადასხვა ძიება strings. 1278 01:33:04,880 --> 01:33:08,420 ასევე man გვერდების სხვადასხვა ოპერაციული სისტემები არ შეიძლება იყოს ერთი და იგივე. 1279 01:33:08,420 --> 01:33:11,130 ეს შეიძლება იყოს ცალკე გვერდებზე csh და tcsh. 1280 01:33:11,130 --> 01:33:14,500 ისინი არ არიან Mac, მაგრამ შეიძლება იყოს, თუ აღნიშნული ინფორმაცია ცალკე ბრძანებები. 1281 01:33:14,500 --> 01:33:19,000 იმ შემთხვევაში, თუ sh ნამდვილად არ მოვუწოდებთ Bash, იქ ალბათ იქნება ცალკე man გვერდზე. 1282 01:33:19,000 --> 01:33:25,820 ზოგიერთ სისტემები აქვს ცალკე კაცი გვერდებზე მხოლოდ C-shell ჩაშენებული ბრძანებები. 1283 01:33:25,820 --> 01:33:30,250 ზოგჯერ თუ გსურთ წაკითხული აღწერა ჩაშენებული ბრძანება 1284 01:33:30,250 --> 01:33:35,350 რომ ასევე გზას, როგორიცაა echo, თქვენ უნდა წაიკითხოთ კაცი გვერდზე რომ ბრძანება echo 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 Okay. არსებობს თუ არა რაიმე კითხვა? ნებისმიერი თემა გსურთ, რათა up? 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]