1 00:00:00,000 --> 00:00:02,320 >> [Seminarium - Powłoki Unix, Środowiska] 2 00:00:02,320 --> 00:00:04,180 [Douglas Kline - Harvard University] 3 00:00:04,180 --> 00:00:07,160 [To jest CS50. - CS50.TV] 4 00:00:07,160 --> 00:00:12,770 >> Dzisiejszy temat to powłoki Unix. 5 00:00:12,770 --> 00:00:20,600 Jestem Douglas Kline, ekspert, lub przynajmniej racjonalnie właściwy użytkownik, skorupy. 6 00:00:20,600 --> 00:00:25,280 Shell jest interfejs użytkownika do systemu operacyjnego komputera. 7 00:00:25,280 --> 00:00:29,580 Nazwa jest myląca, gdyż w odróżnieniu powłoki zwierzęcia, 8 00:00:29,580 --> 00:00:34,890 który jest twardy i ochronne, powłoki komputer umożliwia komunikację. 9 00:00:34,890 --> 00:00:39,120 Tak porowata membrana będzie prawdopodobnie lepsza metafora. 10 00:00:39,120 --> 00:00:44,500 >> Oryginalna powłoka dla systemów Unix jest powłoka Bourne. 11 00:00:44,500 --> 00:00:46,450 Bourne jest wpisany B-O-U-R-N-E. 12 00:00:46,450 --> 00:00:49,770 Bourne był jednym z pierwszych autorów Unix, 13 00:00:49,770 --> 00:00:51,700 a więc powłoka jest nazwana jego imieniem. 14 00:00:51,700 --> 00:00:54,850 Nazwa tej powłoki jako polecenia jest po prostu sh. 15 00:00:54,850 --> 00:00:57,400 To polecenie można wykonać. 16 00:00:57,400 --> 00:01:00,810 Shell rozpoczyna się logowanie. 17 00:01:00,810 --> 00:01:04,459 Po zalogowaniu się do komputera, zaczyna biec tylko powłoka dla ciebie, 18 00:01:04,459 --> 00:01:06,820 i to, co ma swoje polecenia. 19 00:01:06,820 --> 00:01:09,790 Można go uruchomić również w innych terminach. 20 00:01:09,790 --> 00:01:16,780 Jeśli wprowadzą się okno z żadnym innym wskazanie, rozpocznie powłoki dla Ciebie. 21 00:01:16,780 --> 00:01:20,450 To jak to jest, że można przejść do okna i rozpocząć wpisywanie poleceń 22 00:01:20,450 --> 00:01:23,960 i tak dalej, tam, nawet jeśli nie udało się zalogować do tego okna. 23 00:01:23,960 --> 00:01:26,670 Ponadto, jeśli nie jest zdalne logowanie, 24 00:01:26,670 --> 00:01:30,250 następnie rozpocznie powłoki na komputerze zdalnym. 25 00:01:30,250 --> 00:01:44,310 I to jest możliwe do wykonywania poleceń bez interaktywnej powłoki. 26 00:01:44,310 --> 00:01:48,990 Może oznaczać, że w ramach swojej bieżącej działalności, 27 00:01:48,990 --> 00:01:50,700 a to może oznaczać także zdalne sterowanie. 28 00:01:50,700 --> 00:01:52,900 Można wysłać polecenie do innego komputera, 29 00:01:52,900 --> 00:01:55,460 która obejmuje uruchomienie powłoki tam. 30 00:01:55,460 --> 00:01:57,760 W istocie, musi ona zawierać uruchomienie powłoki tam 31 00:01:57,760 --> 00:02:01,740 nawet jeśli nie jest to twój ostateczny cel. 32 00:02:05,310 --> 00:02:12,350 Kiedy coś zaczyna się tak, że nie musi rozpocząć nową powłokę. 33 00:02:12,350 --> 00:02:17,430 Jeśli wprowadzą się nowe okno, jest to możliwe, aby poinformować go, aby otworzyć edytor 34 00:02:17,430 --> 00:02:18,940 lub inne polecenie. 35 00:02:18,940 --> 00:02:20,560 W tym przypadku, edytor rozpocznie się od nowa. 36 00:02:20,560 --> 00:02:22,930 Gdy edytor kończy okno końca. 37 00:02:22,930 --> 00:02:24,620 To jest trochę nietypowa, ale można to zrobić. 38 00:02:24,620 --> 00:02:27,140 W tych przypadkach nie będzie powłoki. 39 00:02:27,140 --> 00:02:31,890 Więc nie jest to regułą, że przyniesie okno lub niektóre takie zastosowanie się powłokę. 40 00:02:31,890 --> 00:02:34,030 >> Shell przetwarza polecenia. 41 00:02:34,030 --> 00:02:40,900 Parsowanie oznacza identyfikację poszczególnych elementów i ich klasyfikacji. 42 00:02:40,900 --> 00:02:43,470 W poleceniu, kompletny ciąg, który należy wpisać, 43 00:02:43,470 --> 00:02:47,310 będzie się wykonywane 1 lub więcej pojedynczych polecenia. 44 00:02:47,310 --> 00:02:50,050 Inne elementy mogą być argumenty. 45 00:02:50,050 --> 00:02:55,020 Nie mogą być również znaki specjalne, które mają wpływ na wykonanie polecenia. 46 00:02:55,020 --> 00:02:59,710 Mogą wysyłać wyjście gdzieś inny niż ekran 47 00:02:59,710 --> 00:03:01,750 jeśli komenda normalnie wysłać go do ekranu. 48 00:03:01,750 --> 00:03:04,390 To może przekierować wejście i może robić inne rzeczy też. 49 00:03:04,390 --> 00:03:08,120 Istnieją różne inne symbole, znaki, i tak dalej. 50 00:03:08,120 --> 00:03:13,600 Parsowanie wykrywania i interpretacji tych rzeczy. 51 00:03:13,600 --> 00:03:19,560 >> Teraz, jeśli nie ma więcej pytań, co jest dość prawdopodobne, ponieważ nie ma więcej osób, 52 00:03:19,560 --> 00:03:24,620 pójdziemy na kolejnej stronie tutaj. 53 00:03:24,620 --> 00:03:29,170 >> Powiedziałem wcześniej, że powłoka Bourne'a jest uruchamiana powłoka. 54 00:03:29,170 --> 00:03:31,550 Są inni. 55 00:03:31,550 --> 00:03:34,520 Jednym z nich jest C-shell. Polecenie to jest csh. 56 00:03:34,520 --> 00:03:36,830 Nazwa C-shell to tylko gra słów. 57 00:03:36,830 --> 00:03:41,260 Powłoka ta została wprowadzona z Berkeley Unix w połowie 1970 roku. 58 00:03:41,260 --> 00:03:44,830 Berkeley Unix było przełomowe wydarzenie w rozwoju systemów Unix. 59 00:03:44,830 --> 00:03:48,770 To była ogromna rewolucja i obejmowały wprowadzenie tej powłoki. 60 00:03:48,770 --> 00:03:50,790 Powodem tej grze słów, C-shell, 61 00:03:50,790 --> 00:03:56,490 jest to, że C-shell ma pewne cechy, które przypominają w nim języka C, 62 00:03:56,490 --> 00:03:59,740 który nie posiada Bourne shell - 63 00:03:59,740 --> 00:04:02,140 lub że nie ma w tym czasie. 64 00:04:02,140 --> 00:04:05,190 Istnieje również TC-shell. 65 00:04:05,190 --> 00:04:07,360 To jest rozszerzeniem C-shell. 66 00:04:07,360 --> 00:04:11,470 Posiada dodatkowe funkcje, z których wiele jest przydatne do użytku interaktywnego, 67 00:04:11,470 --> 00:04:16,050 takich jak odwołania polecenia w mechanizmie historii, 68 00:04:16,050 --> 00:04:18,459 które opiszę nieco później - 69 00:04:18,459 --> 00:04:23,120 w prosty sposób, wzorowany edytorze. 70 00:04:23,120 --> 00:04:29,170 Ma też powiązania, które pozwalają powiązać krótkiego klucza ciąg dłuższy polecenia. 71 00:04:29,170 --> 00:04:31,440 Nie zamierzamy być miejsce, które dzisiaj. 72 00:04:31,440 --> 00:04:33,650 Ma kilka funkcji, które są przydatne do programowania. 73 00:04:33,650 --> 00:04:37,020 Jednakże, C-powłoka nie jest często stosowany do programowania powłoki. 74 00:04:37,020 --> 00:04:39,080 Programy powłoki, jeśli nie już wiem, 75 00:04:39,080 --> 00:04:41,690 programy, które składają się właściwości powłoki. 76 00:04:41,690 --> 00:04:43,220 Można uruchomić je jako programy. 77 00:04:43,220 --> 00:04:46,760 Napisać kilka poleceń powłoki w pliku i uruchomić plik. 78 00:04:46,760 --> 00:04:49,760 Nie trzeba go skompilować. To jest język interpretacyjny. 79 00:04:49,760 --> 00:04:57,320 Zwrot C-shell jest niejednoznaczna, ponieważ to może odnosić się tylko do oryginalnego C-shell, csh, 80 00:04:57,320 --> 00:05:01,200 lub do wszystkich C-muszli, włączając tcsh. To trochę dwuznaczne. 81 00:05:01,200 --> 00:05:08,250 >> Później powłoka jest Korn, ksh, nazwany po programisty, Korn. 82 00:05:08,250 --> 00:05:14,160 Powłoka ta próbowała wprowadzić do 1 Shell 83 00:05:14,160 --> 00:05:16,960 zalety C-shell do użytku interaktywnego 84 00:05:16,960 --> 00:05:19,230 i Bourne Shell programowania. 85 00:05:19,230 --> 00:05:25,440 Jest on używany jako powłoka interaktywna przez niektórych ludzi - mniejszości. 86 00:05:25,440 --> 00:05:32,050 Później jednak nie było innego wprowadzenie, powłoki Bash, bash, 87 00:05:32,050 --> 00:05:35,290 znowu gra słów, Bourne-again shell. 88 00:05:35,290 --> 00:05:43,830 To rozszerzenie powłoki Bourne. Korn jest. Obie z nich są. 89 00:05:43,830 --> 00:05:48,100 Ma te same cele Korn z połączyła C-shell jest 90 00:05:48,100 --> 00:05:50,980 i zalety Bourne Shell w 1 Shell. 91 00:05:50,980 --> 00:05:56,810 Wiele ulepszeń płaszcza Korn są również zawarte w Basha. 92 00:05:56,810 --> 00:06:00,710 Powłoki, jednak nie więcej, a zatem jest korzystne. 93 00:06:00,710 --> 00:06:05,180 Bourne-again shell i powłoki Korn nazywane są pociski typu Bourne'a 94 00:06:05,180 --> 00:06:07,730 ponieważ zawierają cechy powłoki Bourne'a, 95 00:06:07,730 --> 00:06:11,180 które są niezgodne w niektórych aspektach z C-muszli. 96 00:06:11,180 --> 00:06:15,520 Istnieją inne muszle oprócz tych, niektóre przeznaczone dla ograniczonego użytkowania, 97 00:06:15,520 --> 00:06:20,670 może być ograniczone do niektórych poleceń, może dla celów specjalistycznych, nie często używane. 98 00:06:20,670 --> 00:06:24,240 >> Ok. Następny artykuł tutaj. 99 00:06:31,300 --> 00:06:38,970 Bash Shell stał związane z różnymi formami Linux. 100 00:06:38,970 --> 00:06:41,550 Nie jestem pewien, czy to prawda każdej postaci. 101 00:06:41,550 --> 00:06:43,280 Istnieje wiele form i tam nie mam je wszystkie używane, 102 00:06:43,280 --> 00:06:46,870 ale w tym, że użyłem stało się z nią związanych. 103 00:06:46,870 --> 00:06:49,670 O ile wiem, nie ma nic o Bash 104 00:06:49,670 --> 00:06:52,210 co sprawia, że ​​bardziej kompatybilny z Linuksem 105 00:06:52,210 --> 00:06:55,020 od innych kombinacji powłoki i systemu operacyjnego. 106 00:06:55,020 --> 00:06:59,690 Myślę, że to prawdopodobnie tylko odzwierciedla skłonności programistów. 107 00:06:59,690 --> 00:07:07,500 Że ma się związane z Linuksem, to kolejny powód, aby preferować Bash ksh 108 00:07:07,500 --> 00:07:11,820 od rzeczy mogą być w nim napisane, a to może się rozprzestrzeniać. 109 00:07:11,820 --> 00:07:15,410 Dam ci inne powody, że później. 110 00:07:15,410 --> 00:07:21,330 Bourne skrypty powłoki powinny działać pod powłoki Korn lub Bash. 111 00:07:21,330 --> 00:07:22,650 Jeśli piszesz coś dla powłoki Bourne, 112 00:07:22,650 --> 00:07:26,180 prawdopodobnie można wykonać go pod ksh lub bash. 113 00:07:26,180 --> 00:07:30,610 Skrypty powłoki Korn będzie prawdopodobnie pracował w Bash, ale nie mogę zagwarantować, że. 114 00:07:30,610 --> 00:07:36,040 Później tutaj, skrypty powłoki C powinny działać pod TC-shell. 115 00:07:38,850 --> 00:07:41,690 C-shell faktycznie nigdy nie szeroko stosowane w skryptach 116 00:07:41,690 --> 00:07:48,110 od Bourne Shell, a później pociski typu Bourne'a były korzystne dla tego celu. 117 00:07:48,110 --> 00:07:50,620 Tak, że naprawdę nie jest wszystko, co ważne. 118 00:07:50,620 --> 00:07:53,480 Istnieje bardzo wiele skryptów powłoki Bourne'a, które zostały napisane dawno temu, 119 00:07:53,480 --> 00:07:56,860 przed powłoki Korna i powłoki Bourne'a ponownie wprowadzono. 120 00:07:56,860 --> 00:07:59,300 Te są nadal w użyciu, część systemów operacyjnych 121 00:07:59,300 --> 00:08:01,590 i tak można je znaleźć, jeśli spojrzeć w system operacyjny 122 00:08:01,590 --> 00:08:03,760 lub niektóre stare pakiety programowe. 123 00:08:03,760 --> 00:08:12,840 >> Bash jest w pewnym stopniu staje się lingua franca rodzaju systemów operacyjnych. 124 00:08:12,840 --> 00:08:17,580 To już rozszerzony do systemu Windows i VMS. 125 00:08:17,580 --> 00:08:20,440 VMS, w przypadku której nie znasz, jest zastrzeżony system operacyjny 126 00:08:20,440 --> 00:08:25,480 Digital Equipment Corporation, który jest nadal w użyciu, w dużej mierze za kulisami. 127 00:08:25,480 --> 00:08:29,250 A jeśli to będzie działać na kilku różnych systemach operacyjnych, 128 00:08:29,250 --> 00:08:31,110 prawdopodobne, że ludzie mają tendencję do zmiany na niej. 129 00:08:31,110 --> 00:08:33,840 Ale ten rozwój jest stosunkowo nowe. 130 00:08:33,840 --> 00:08:39,490 To dopiero początek, więc nie można przewidzieć, czy to okaże się, że naprawdę lingua franca rodzaj. 131 00:08:39,490 --> 00:08:43,539 Ponadto, ponieważ ścieżki: plików i biblioteki różnią 132 00:08:43,539 --> 00:08:46,210 między tymi różnymi systemami operacyjnymi 133 00:08:46,210 --> 00:08:50,250 może nie być w stanie napisać skrypt bash na jednym systemie operacyjnym 134 00:08:50,250 --> 00:08:51,840 a następnie uruchomić go na innym. 135 00:08:51,840 --> 00:08:54,440 Powinieneś być w stanie przenieść go między innym Unix, Linux 136 00:08:54,440 --> 00:08:59,020 Systemy operacyjne Mac OS, ale niekoniecznie do systemu Windows lub VMS. 137 00:08:59,020 --> 00:09:01,390 Być może trzeba zmienić opis pliku ścieżkę dostępu, 138 00:09:01,390 --> 00:09:03,180 i niektóre biblioteki mogą być różne, 139 00:09:03,180 --> 00:09:05,230 które mogą mieć wpływ na sposób, w jaki niektóre polecenia pracy 140 00:09:05,230 --> 00:09:09,730 lub w jaki sposób przetwarzać argumenty i jak. 141 00:09:09,730 --> 00:09:19,230 Poza tym, drugi ostrożnie jest to, że nie ma gwarancji 142 00:09:19,230 --> 00:09:23,570 że wszystkie różne muszle już wspomniałem - Bourne Shell, C-shell, 143 00:09:23,570 --> 00:09:29,880 TC-shell, Korn, Bourne-again shell - będzie dostępna w każdym systemie Unix 144 00:09:29,880 --> 00:09:33,750 Komputer lub Linux lub Mac OS. 145 00:09:33,750 --> 00:09:35,620 Po prostu może nie być. 146 00:09:35,620 --> 00:09:38,300 To jeden z tutejszych ostrożności. 147 00:09:38,300 --> 00:09:41,490 To niefortunne ograniczenie tutaj od chcesz rzeczy do pracy wszędzie, 148 00:09:41,490 --> 00:09:44,380 ale niestety, nie można powoływać się na to. 149 00:09:44,380 --> 00:09:47,230 >> Ok. Następny tutaj. 150 00:09:50,280 --> 00:09:54,370 Powiedzmy, że chcesz napisać skrypt powłoki, 151 00:09:54,370 --> 00:09:57,170 Program składa się z poleceń powłoki. 152 00:09:57,170 --> 00:10:01,200 Możesz napisać swoje polecenia, umieść je w pliku i uruchomić plik. 153 00:10:01,200 --> 00:10:04,230 Co zrobić, jeśli chcesz dołączyć argumenty? 154 00:10:04,230 --> 00:10:09,650 W przypadku operacji powłoki, argumenty są nazywane parametry lub parametry pozycyjne 155 00:10:09,650 --> 00:10:15,940 i zostaną one nazywane przez dolara i numeru, $ 1, $ 2. 156 00:10:15,940 --> 00:10:27,000 Więc jeśli skrypt ma tę nazwę, mój pierwszy argument może być argumentem 1 157 00:10:27,000 --> 00:10:30,540 i moja druga może być argument, 2, 158 00:10:30,540 --> 00:10:34,110 i w moim skrypcie, jeśli chcę odnieść się do tych rzeczy - 159 00:10:34,110 --> 00:10:36,810 niech wymazać tego, ponieważ nie jestem naprawdę będzie go uruchomić - 160 00:10:36,810 --> 00:10:42,160 w moim skrypcie mógłbym $ 1 odnosi się do arg1, 161 00:10:42,160 --> 00:10:45,890 $ 2, która ukaże się w ten sposób, Arg2. 162 00:10:45,890 --> 00:10:50,080 Więc te symbole dostępne w odniesieniu do argumentów są, 163 00:10:50,080 --> 00:10:52,390 i te stosuje się do wszystkich powłok. 164 00:10:52,390 --> 00:10:56,520 Ponadto, istnieją inne postacie. 165 00:10:56,520 --> 00:11:01,700 $ * Odnosi się do całej listy argumentów, wszystkie z nich. 166 00:11:01,700 --> 00:11:05,390 $ # Oznacza liczbę argumentów. 167 00:11:05,390 --> 00:11:07,910 Ponownie, stosuje się to do wszystkich powłok. 168 00:11:07,910 --> 00:11:15,540 Te symbole * i #, można stosować te znaczenia, także w innych miejscach. 169 00:11:15,540 --> 00:11:17,940 Nie będziemy się w to. 170 00:11:17,940 --> 00:11:20,460 >> Shell linia Specifier. Co to? 171 00:11:20,460 --> 00:11:27,760 Powiedzmy, że napisałem skrypt, i to dla konkretnej powłoki i chcesz go uruchomić. 172 00:11:27,760 --> 00:11:33,500 Skąd wiesz, co powłoki systemu operacyjnego będą używać, aby uruchomić skrypt? 173 00:11:33,500 --> 00:11:37,230 W pewnym momencie można było zakładać, że będzie go uruchomić w powłoce Bourne 174 00:11:37,230 --> 00:11:39,440 jeśli nie mówią inaczej, 175 00:11:39,440 --> 00:11:41,730 ale ludzie nie są pisanie skryptów w Bourne Shell, że dużo więcej 176 00:11:41,730 --> 00:11:43,750 i nie można nawet liczyć na, że ​​już. 177 00:11:43,750 --> 00:11:48,740 Więc tutaj mamy linię specyfikatora powłoki tutaj. 178 00:11:48,740 --> 00:11:52,450 Określająca Bash. 179 00:11:52,450 --> 00:11:56,750 Należy zauważyć, że określa ją w ścieżkę, / bin / bash. 180 00:11:56,750 --> 00:12:02,870 Jeśli komputer jest wyposażony w powłokę bash, ale nie w katalogu bin, / bin, to nie będzie działać. 181 00:12:02,870 --> 00:12:06,870 To kolejna kwalifikator, inny ostrożność tutaj. 182 00:12:06,870 --> 00:12:09,500 Znak funta jest charakter komentarz linia. 183 00:12:09,500 --> 00:12:12,300 Odnosi się to do wszystkich powłok. 184 00:12:12,300 --> 00:12:18,610 Szczególny przypadek tutaj, #! Na początku skryptu jest odmienny. 185 00:12:18,610 --> 00:12:23,410 , Który określa, w którym powłoki, aby uruchomić skrypt. 186 00:12:23,410 --> 00:12:30,230 Jak już mówiłem, to nie może być to samo miejsce / bin. 187 00:12:30,230 --> 00:12:34,880 Ponadto, istnieje jeszcze coś tutaj. 188 00:12:34,880 --> 00:12:41,250 Jeśli po prostu należy użyć znaku bez wykrzyknika i ścieżki, 189 00:12:41,250 --> 00:12:44,640 Należy wskazać, że C-powłoka. 190 00:12:44,640 --> 00:12:48,300 Jednak nie polecam robić, bo nie jestem w stanie zagwarantować, 191 00:12:48,300 --> 00:12:49,750 że zawsze będzie działać. 192 00:12:49,750 --> 00:12:52,220 Jeśli chcesz C-shell, lepiej byłoby powiedzieć tak. 193 00:12:52,220 --> 00:12:58,450 Potem coś mylące tutaj. 194 00:12:58,450 --> 00:13:03,940 W przypadku korzystania z linii specyfikator takich jak powłoki / bin / bash 195 00:13:03,940 --> 00:13:07,070 i że powłoka nie jest dostępna tam, 196 00:13:07,070 --> 00:13:10,680 nie ma czegoś takiego jak / bin / bash na danym komputerze, 197 00:13:10,680 --> 00:13:14,330 albo dlatego, że nie ma Bash albo dlatego, że jest w innym miejscu, 198 00:13:14,330 --> 00:13:17,450 dostaniesz błąd informacją, że skrypt został uruchomiony nie istnieje. 199 00:13:17,450 --> 00:13:21,510 I oczywiście skrypt istnieje, tak, że komunikat o błędzie jest mylące. 200 00:13:21,510 --> 00:13:24,810 Dlatego, że system operacyjny daje ten błąd 201 00:13:24,810 --> 00:13:28,370 lub, bardziej precyzyjnie, że interaktywna powłoka, w której używasz to daje ten błąd, 202 00:13:28,370 --> 00:13:33,510 jest to, że informuje, że polecenia użyty, co jest nazwą skryptu. 203 00:13:33,510 --> 00:13:36,920 Że polecenie wywoływane powłoki o nazwie skryptu. 204 00:13:36,920 --> 00:13:39,330 To gdzie masz ten mylący komunikat o błędzie. 205 00:13:39,330 --> 00:13:42,980 Innym sposobem, aby wywołać skrypt 206 00:13:42,980 --> 00:13:45,910 jest poprzez określenie powłoki w wierszu poleceń, jak tutaj. 207 00:13:45,910 --> 00:13:52,510 To jest polecenie. Ten mówi, uruchom bash i następnie uruchomić mój skrypt w bash. 208 00:13:52,510 --> 00:13:55,680 , Że ma pierwszeństwo przed linią specyfikującego, 209 00:13:55,680 --> 00:14:02,090 i ten posiada funkcję pozwalając na zapewnienie różnych ścieżek. 210 00:14:02,090 --> 00:14:04,840 Jeśli po prostu wydać polecenie, że system operacyjny będzie szukać tego polecenia 211 00:14:04,840 --> 00:14:06,410 w różnych miejscach. 212 00:14:06,410 --> 00:14:08,820 Jeśli jest to możliwe, powinno to znaleźć. 213 00:14:08,820 --> 00:14:12,290 Komputer znajdzie Bash, gdzie jest położony i uruchomić go, 214 00:14:12,290 --> 00:14:15,470 więc nie trzeba wtedy się martwić o to, gdzie znajdzie. 215 00:14:15,470 --> 00:14:17,360 Istnieją inne obawy o potencjalnie, 216 00:14:17,360 --> 00:14:20,830 a jeśli jest więcej niż 1 wersja Bash, co jest możliwe, choć mało prawdopodobne. 217 00:14:20,830 --> 00:14:23,540 Więc to jest inny sposób na radzenie sobie z tych rzeczy. 218 00:14:23,540 --> 00:14:30,480 Linie specifier mogą dzwonić żadnej powłoki. 219 00:14:30,480 --> 00:14:34,480 Mogą również nazywać rzeczy inne niż muszle. 220 00:14:34,480 --> 00:14:37,940 Mam tu przykłady są sed, który jest edytorem strumieni; 221 00:14:37,940 --> 00:14:39,900 awk, który jest językiem przetwarzania wzór; 222 00:14:39,900 --> 00:14:43,680 i Perl, bardzo wysoko rozwinięty język skryptowy. 223 00:14:43,680 --> 00:14:47,570 Jeśli umieścisz linię specyfikatora wskazujący jeden z tych programów na początku, 224 00:14:47,570 --> 00:14:51,270 będzie przejść bezpośrednio do tego programu, a nie zaczynając powłokę. 225 00:14:51,270 --> 00:14:54,030 Programy te mają granice swoich możliwości. 226 00:14:54,030 --> 00:14:58,790 Perl jest bardzo zdolny. Sed jest edytorem. To może robić rzeczy poza zwykłe edycji. 227 00:14:58,790 --> 00:15:03,300 Ale to może być trudne do zaprogramowania to. 228 00:15:03,300 --> 00:15:09,670 Ponadto, przekazując argumenty i rzeczy do skryptu jest niemożliwe lub mylące. 229 00:15:09,670 --> 00:15:15,030 Tak więc w tych przypadkach, w awk i sed, to, przynajmniej w moim doświadczeniu, 230 00:15:15,030 --> 00:15:18,910 korzystne, aby napisać skrypt powłoki i połączeń awk lub sed ze skryptu powłoki 231 00:15:18,910 --> 00:15:24,660 a nie wywołanie awk lub sed jako linii skrypt specyfikującego. 232 00:15:24,660 --> 00:15:26,980 Perl jest bardzo zróżnicowany język, jak powiedziałem. 233 00:15:26,980 --> 00:15:30,050 Nie można uruchomić interaktywne polecenia w Perl, 234 00:15:30,050 --> 00:15:32,660 co oznacza, że ​​nie można przetestować fragmenty skryptów, że jesteś rozwijających się 235 00:15:32,660 --> 00:15:33,970 uruchamiając je interaktywnie. 236 00:15:33,970 --> 00:15:36,160 Jednakże, jest to język bardzo zdolny 237 00:15:36,160 --> 00:15:40,960 i stał się bardzo szeroko stosowane narzędzia. 238 00:15:40,960 --> 00:15:45,720 To tylko trochę w nawiasie uwagi o liniach specifier. 239 00:15:45,720 --> 00:15:50,610 >> W całości lub większości form Linux - ponownie, nie mogę być pewien, że wszystko - 240 00:15:50,610 --> 00:15:57,900 w systemie Mac OS, jeśli CSH masz tcsh, 241 00:15:57,900 --> 00:16:00,570 i po wpisaniu sh masz bash. 242 00:16:00,570 --> 00:16:05,020 Chcieli tam dać bardziej zaawansowane wersje tych pocisków, 243 00:16:05,020 --> 00:16:07,940 ale to może być mylące. 244 00:16:07,940 --> 00:16:16,720 Jeśli napisać skrypt przy użyciu tcsh lub Bash oferuje wzywając csh i sh 245 00:16:16,720 --> 00:16:22,230 a następnie spróbuj uruchomić go na komputerze, który nie ma tcsh lub bash, 246 00:16:22,230 --> 00:16:25,050 Może masz jakieś błędy, czy są tam komendy 247 00:16:25,050 --> 00:16:27,970 Powłoki te, które nie uznają. 248 00:16:27,970 --> 00:16:34,120 Ponadto, może być powołany powłokę na Twoim komputerze 249 00:16:34,120 --> 00:16:37,700 nazywając ją jako sh lub csh, a następnie coraz bardziej zaawansowanych pocisków. 250 00:16:37,700 --> 00:16:41,440 Nie możesz nawet myśleć o tym, że jesteś z wykorzystaniem bardziej zaawansowanych powłokę. 251 00:16:41,440 --> 00:16:45,670 Więc to jest potencjał pułapki. 252 00:16:45,670 --> 00:16:50,290 Jak zostało ustalone, że jeśli wpiszesz sh masz Bash, 253 00:16:50,290 --> 00:16:55,580 jeśli CSH masz TSCH? 254 00:16:55,580 --> 00:16:59,940 Są rzeczy w tych komputerach zwane linki 255 00:16:59,940 --> 00:17:06,460 które można połączyć do nazw plików w odniesieniu do tej samej rzeczy. 256 00:17:06,460 --> 00:17:12,180 To może być albo 2 nazwy tego samego pliku lub pliku, którego celem jest, aby odnosić się do innego pliku. 257 00:17:12,180 --> 00:17:17,550 Nazywają się twarde i symboliczne linki. Nie będzie już, że dzieje się dzisiaj. 258 00:17:17,550 --> 00:17:21,619 Nie mogą być również oddzielne pliki - 1 plik sh, 1 plik Bash - 259 00:17:21,619 --> 00:17:23,880 ale oboje uruchomić Bash. 260 00:17:23,880 --> 00:17:29,350 Jest jeszcze inny kwalifikator tutaj. 261 00:17:29,350 --> 00:17:42,640 Jeśli wywołanie jednej z tych muszli przez jedną nazwą, 262 00:17:42,640 --> 00:17:46,640 Może myślisz, że masz taką samą funkcjonalność jak nazywając go pod inną nazwą. 263 00:17:46,640 --> 00:17:49,700 Dobrze, że w rzeczywistości nie jest to prawdą. 264 00:17:49,700 --> 00:17:55,020 Polecenia te można zbadać nazwy przez które nazwali 265 00:17:55,020 --> 00:18:00,020 i mogą, na podstawie tej nazwy, zachowują się inaczej. 266 00:18:00,020 --> 00:18:02,740 Mogą wystąpić problemy z próby zgodne ze standardem. 267 00:18:02,740 --> 00:18:06,060 Niektórzy z was słyszeli o standardzie POSIX lub innego, 268 00:18:06,060 --> 00:18:08,730 być może inne cechy. 269 00:18:08,730 --> 00:18:14,520 To czasem może być wybrany przez argumentów wiersza poleceń 270 00:18:14,520 --> 00:18:17,310 lub poprzez ustawienie zmiennych powłoki. 271 00:18:17,310 --> 00:18:22,170 Nazywając ją jako sh lub bash może rzeczywiście doprowadzić do innego wykonania 272 00:18:22,170 --> 00:18:25,300 nawet jeśli jest to ten sam plik, że jesteś wykonywania. 273 00:18:25,300 --> 00:18:31,800 Kolejną rzeczą do rozważenia jest to, że nawet jeśli inny komputer ma tcsh lub bash, 274 00:18:31,800 --> 00:18:35,310 jeżeli nie są one związane są one na Twoim komputerze 275 00:18:35,310 --> 00:18:37,990 jeśli masz komputer lokalny Linux lub Mac OS, 276 00:18:37,990 --> 00:18:45,630 potem znowu dostaniesz powłokę, którą nazywamy sh lub csh, a nie jeden, że może wolisz. 277 00:18:50,430 --> 00:19:01,130 Bourne Shell ma prądu ulepszenia mniej niż w Bash 278 00:19:01,130 --> 00:19:06,100 ale przeszłość tych, w oryginalnej powłoki Bourne'a. 279 00:19:06,100 --> 00:19:09,690 W rezultacie tego, nawet, obecny powłoki Bourne sh 280 00:19:09,690 --> 00:19:14,560 nawet wtedy, gdy nie jest Bash, przypomina język C więcej niż C-shell robi. 281 00:19:14,560 --> 00:19:20,460 To nie była prawda, kiedy C-shell został stworzony, ale rozwinął w ten sposób. 282 00:19:20,460 --> 00:19:26,560 Można zauważyć tutaj, że wszystkie te nazwy powłoki z wyjątkiem powłoki Bourne 283 00:19:26,560 --> 00:19:30,640 mieć coś do wskazania, które powłoki są - csh, bash - 284 00:19:30,640 --> 00:19:32,550 ale to tylko powłoki Bourne'a sh. 285 00:19:32,550 --> 00:19:34,910 Dlaczego? To było przy muszli. 286 00:19:34,910 --> 00:19:37,770 To było powłoki następnie, nie powłoki, 287 00:19:37,770 --> 00:19:41,090 a ponieważ było powłoki, nie było powodu, aby odróżnić ją od innej powłoki. 288 00:19:41,090 --> 00:19:45,030 To dlatego, że ma to imię i nadal robi. 289 00:19:50,630 --> 00:19:58,990 >> To tu jest górna linia z bazy danych hasło do konta nie mam 290 00:19:58,990 --> 00:20:01,680 w innym komputerze. 291 00:20:01,680 --> 00:20:08,300 Zamierzam spróbować dostać tę nazwę, dzięki czemu można zobaczyć, że część na końcu, muszlę. 292 00:20:09,720 --> 00:20:15,450 Hasło bazy danych posiada właściwości logowania dla wszystkich użytkowników. 293 00:20:15,450 --> 00:20:20,330 Na początku jest nazwa użytkownika, który można zobaczyć ostatnie 2 litery kopalni teraz. 294 00:20:20,330 --> 00:20:23,970 Tutejsze pola oddzielone są średnikami. 295 00:20:23,970 --> 00:20:28,210 Ostatnie pole, jak widać, jest bin / tcsh, Shell. 296 00:20:28,210 --> 00:20:30,230 To Specifier powłoki. 297 00:20:30,230 --> 00:20:33,240 Jest tu coś ciekawego. 298 00:20:33,240 --> 00:20:36,950 Kiedy Unix został opracowany, był tylko 1 powłoki, 299 00:20:36,950 --> 00:20:38,350 więc nie było żadnego wyboru. 300 00:20:38,350 --> 00:20:45,570 Więc dlaczego pozwalają pole w bazie haseł określić powłokę? 301 00:20:45,570 --> 00:20:47,920 Nie wiem, ale to szczęście, że to zrobili. 302 00:20:47,920 --> 00:20:52,030 Jest to raczej trudne do wykonania zmian w formacie bazy danych hasło 303 00:20:52,030 --> 00:20:54,420 ponieważ wiele programów można znaleźć w pliku PDF 304 00:20:54,420 --> 00:20:57,720 i musiałby być przepisany. 305 00:20:57,720 --> 00:21:04,130 To trafny lub przypadkowy rozwój, że zawarte to pole. 306 00:21:04,130 --> 00:21:12,780 Ten rodzaj linii pliku hasło jest używane na wszystkich komputerach Unix i Linux, o ile wiem. 307 00:21:12,780 --> 00:21:14,650 Mac ma swój własny system. 308 00:21:14,650 --> 00:21:17,810 To faktycznie ma plik haseł z linii w tym formacie, 309 00:21:17,810 --> 00:21:21,060 jednak nie jest to w przypadku gdy cechy są określone przez użytkownika. 310 00:21:21,060 --> 00:21:24,200 Innym nawias uwaga tam. 311 00:21:36,470 --> 00:21:46,020 >> Jeśli dzwonisz powłokę, można nazwać to jako sub-shell z istniejących powłok. 312 00:21:46,020 --> 00:21:50,480 Więc jeśli pójdę tutaj, niech pozbyć się tych rzeczy. 313 00:21:50,480 --> 00:21:53,350 Oto jestem w C-shell. 314 00:21:56,830 --> 00:22:01,200 Że zmienne, które dokładnie określa moją skorupę, 315 00:22:01,200 --> 00:22:04,300 w rzeczywistości nie zawsze jest niezawodny sposób określenia tego, co powłoki używasz, 316 00:22:04,300 --> 00:22:06,220 ale w tym przypadku jest to. 317 00:22:06,220 --> 00:22:08,040 Co zrobić, jeśli po prostu wpisz - 318 00:22:09,970 --> 00:22:12,470 Teraz jestem w Bash. 319 00:22:12,470 --> 00:22:19,540 Niektóre rzeczy będą takie same. Czy mówi mi moje polecenia. 320 00:22:19,540 --> 00:22:24,500 Jeśli mam zawiesić z powrotem do mojego C-shell, LS, sam. Prawda? 321 00:22:24,500 --> 00:22:28,890 fg, na pierwszym planie, z powrotem do mojego basha. 322 00:22:28,890 --> 00:22:38,290 pwd, katalog bieżący, z powrotem do C-shell. 323 00:22:38,290 --> 00:22:43,180 pwd, inny katalog - właściwie nie różni się w tym przypadku katalog. 324 00:22:43,180 --> 00:22:45,110 To jest ten sam katalog. 325 00:22:45,110 --> 00:22:50,000 Powiedzmy, że chcę zadzwonić polecenie tutaj: Gdzie ls. 326 00:22:50,000 --> 00:22:52,140 Co to robić? 327 00:22:52,140 --> 00:22:53,670 Mówi mi, gdzie komendę ls, 328 00:22:53,670 --> 00:22:56,670 jeden, który daje mi listę katalogów, znajduje się w ls. 329 00:22:56,670 --> 00:23:01,460 Wróćmy do basha. Spróbujmy to samo. 330 00:23:01,460 --> 00:23:05,830 Hmm, ciekawe jest, w przypadku gdy: nie znaleziono polecenia. 331 00:23:05,830 --> 00:23:07,400 Dlaczego tak jest? 332 00:23:07,400 --> 00:23:11,570 Gdzie polecenie jest wbudowane w C-shell. 333 00:23:11,570 --> 00:23:15,630 To nie jest polecenie, które ma być odczytywane z pamięci z innego miejsca i wykonywane. 334 00:23:15,630 --> 00:23:20,310 C-shell prowadzi go przez przeniesienie egzekucji do części własnego kodu 335 00:23:20,310 --> 00:23:22,790 i to nie jest w basha. 336 00:23:22,790 --> 00:23:25,710 Więc Bash, nie mając takiego wbudowanego polecenia, wygląda na to, nie ma go znaleźć, 337 00:23:25,710 --> 00:23:27,720 i pojawia się błąd. 338 00:23:27,720 --> 00:23:32,290 Więc nie mamy powłoki bash uruchomiony pod C-shell, a my nazywamy to sub-shell. 339 00:23:32,290 --> 00:23:38,480 I tylko w przypadku, jesteś ciekawy, powłoka Bash ma swój własny sposób na odnalezienie poleceń. 340 00:23:38,480 --> 00:23:42,590 przerywane odnosi się do faktu, że może być wykonane szybciej, 341 00:23:42,590 --> 00:23:44,960 znaleźć się szybciej. 342 00:23:44,960 --> 00:23:48,610 To jedno z ulepszeń wbudowanych w niektóre z tych pocisków. 343 00:23:50,220 --> 00:23:54,200 >> Bourne typu skorupy są korzystne dla programowania. 344 00:23:54,200 --> 00:23:57,300 Mają struktur kontrolnych, takich jak pętle, instrukcje warunkowe, 345 00:23:57,300 --> 00:24:00,240 rodzaj poleceń, które można używać w językach programowania takich jak C 346 00:24:00,240 --> 00:24:04,190 lub niezależnie od języka. Może jesteś programowania w Javie lub cokolwiek. 347 00:24:04,190 --> 00:24:06,460 Pociski te mają zbyt. 348 00:24:06,460 --> 00:24:11,790 Pociski typu Bourne'a, szczególnie Bash, mają więcej 349 00:24:11,790 --> 00:24:15,730 i mają większą elastyczność. 350 00:24:15,730 --> 00:24:20,700 Powłoka Bash ma tablic. Powłoka Bourne'a oryginału nie. 351 00:24:20,700 --> 00:24:26,130 Tak, że może być szczególnie korzystny do programowania. 352 00:24:26,130 --> 00:24:29,810 C-shell faktycznie ma tablic, ale nie ma wiele innych funkcji. 353 00:24:29,810 --> 00:24:33,450 Pociski typu Bourne'a wykona szybciej 354 00:24:33,450 --> 00:24:36,520 jeśli nie mają one funkcje są przeznaczone do użytku interaktywnego. 355 00:24:36,520 --> 00:24:39,340 Załadować rzeczy na dół do jednego celu, to ładuje je do innych celów. 356 00:24:39,340 --> 00:24:41,520 Nie ma, że ​​istnieje kompromis. 357 00:24:41,520 --> 00:24:44,510 Te cechy, które są przeznaczone do użytku interaktywnego 358 00:24:44,510 --> 00:24:46,920 naprawdę mają niewiele lub nie stosowania skryptów. 359 00:24:46,920 --> 00:24:52,160 Jest to możliwe do wykorzystania pod-interaktywną powłokę, tak jak ten, zacząłem tam 360 00:24:52,160 --> 00:24:57,780 przetestować poleceń, które ma być używane w skrypcie. 361 00:24:57,780 --> 00:25:01,180 To jest to, czego nie można zrobić z Perl. Możesz to zrobić z muszli. 362 00:25:01,180 --> 00:25:04,850 Nawet konstrukcje, takie jak pętle i tak dalej można uruchomić interaktywnie. 363 00:25:04,850 --> 00:25:07,000 Są czasami przydatne do uruchomienia interaktywnie, 364 00:25:07,000 --> 00:25:10,180 ale bardziej prawdopodobne, że używasz ich do opracowania scenariusza. 365 00:25:15,690 --> 00:25:17,400 >> Aliasy. 366 00:25:17,400 --> 00:25:21,630 To będzie o C powłoki. 367 00:25:23,270 --> 00:25:27,570 Historia, w którym mechanizm wrócić do wcześniejszych poleceń 368 00:25:27,570 --> 00:25:30,340 lub ich części, które już uruchomić. 369 00:25:30,340 --> 00:25:33,680 Ponownie o C-shell, powłoki Bourne i Korn mieć te rzeczy, 370 00:25:33,680 --> 00:25:35,620 ale ja nie zamierzam dostać się do nich. 371 00:25:35,620 --> 00:25:40,340 Więc oto kilka przydatnych aliasów, które mam. 372 00:25:43,100 --> 00:25:44,880 Zamiast wpisywać ls - to wspólne polecenie - 373 00:25:44,880 --> 00:25:47,620 wpisz l i zapisać się 1 znak. 374 00:25:47,620 --> 00:25:50,600 Czy z różnych opcji, wszystkie te prace. 375 00:25:50,600 --> 00:25:54,460 Należy pamiętać, że definicje te mają cudzysłowy wokół nich. 376 00:25:54,460 --> 00:25:57,520 W tych przypadkach, cytaty nie są konieczne. 377 00:25:57,520 --> 00:26:00,100 Jeśli można określić te aliasy bez cudzysłowów, to nadal działa. 378 00:26:00,100 --> 00:26:02,910 Oni są zalecane. 379 00:26:02,910 --> 00:26:04,900 Istnieją sytuacje, w których nie można używać cytat 380 00:26:04,900 --> 00:26:08,050 bo chcesz coś się wydarzy, który cytuję uniemożliwiłoby. 381 00:26:08,050 --> 00:26:11,210 Czasami można zacytować część definicji, ale nie wszystkie. 382 00:26:11,210 --> 00:26:17,010 Jest także zazwyczaj zaleca się stosowanie apostrofów zamiast cudzysłowów. 383 00:26:17,010 --> 00:26:19,750 Cudzysłowy mają wpływ na zmienne definicje, 384 00:26:19,750 --> 00:26:22,950 Szczególnie powodując ich do oceny niż zatrzymania. 385 00:26:22,950 --> 00:26:25,910 Dlatego chcielibyśmy, aby zatrzymać ocenę? 386 00:26:25,910 --> 00:26:28,710 I jak cytaty to dla nas zrobić? 387 00:26:28,710 --> 00:26:32,600 >> Oto polecenie, które może się okazać interesujące. 388 00:26:32,600 --> 00:26:35,470 'Ls g *' 389 00:26:35,470 --> 00:26:37,640 g *, jak zapewne wiesz, jest wieloznaczny wyraz 390 00:26:37,640 --> 00:26:40,290 dla wszystkich nazw plików rozpoczynających się od g. 391 00:26:40,290 --> 00:26:46,410 Jeśli po prostu napisać w poleceniu ls g *, dostanę listę wszystkich tych nazw w moim bieżącym katalogu. 392 00:26:46,410 --> 00:26:50,870 Jeśli zdefiniować ten alias, jak to jest tutaj z cytatami, 393 00:26:50,870 --> 00:26:56,990 to będzie działać, że polecenie w bieżącym katalogu, w którym właśnie pracujesz. 394 00:26:56,990 --> 00:27:01,250 Ale po uruchomieniu definicję aliasu bez cudzysłowów, 395 00:27:01,250 --> 00:27:09,620 będzie oceniać wieloznaczny g *, gdy prowadzi to polecenie określające. 396 00:27:09,620 --> 00:27:14,400 Tak więc definicja aliasu zostanie ls następnie listę plików w katalogu 397 00:27:14,400 --> 00:27:16,310 , w którym polecenia alias jest wykonywana 398 00:27:16,310 --> 00:27:19,180 niezależnie od tego, gdzie faktycznie zamierza uruchomić polecenie. 399 00:27:19,180 --> 00:27:26,360 To nie jest zbyt użyteczne, a pojedyncze cudzysłowy uniemożliwiają ocenę gwiazdką. 400 00:27:26,360 --> 00:27:30,780 Więc po prostu definiowanie istoty ls g *. 401 00:27:30,780 --> 00:27:35,510 Następnie po uruchomieniu alias, LGS, to wtedy kładzie to. 402 00:27:35,510 --> 00:27:40,490 Teraz nie ma żadnych ofert, i oceni gwiazdkę po uruchomieniu polecenia alias. 403 00:27:40,490 --> 00:27:43,900 Więc to jest jedna rzecz. 404 00:27:43,900 --> 00:27:46,590 Cudzysłowy miałoby ten sam efekt tutaj, 405 00:27:46,590 --> 00:27:50,580 ale są inne przypadki, w których podwójne cudzysłowy nie działa tak dobrze. 406 00:27:50,580 --> 00:27:52,450 >> Tu jest jeszcze jeden. 407 00:27:52,450 --> 00:27:54,270 Może wiesz polecenia grep. 408 00:27:54,270 --> 00:28:02,110 Polecenie grep może być używany do skanowania pliku do linii, które mają pewne ciągi. 409 00:28:02,110 --> 00:28:10,350 Więc chodźmy tutaj i będę wyjść z mojego powłoki Bourne. 410 00:28:23,570 --> 00:28:25,450 Ok. Oto plik. 411 00:28:25,450 --> 00:28:31,490 Powiedzmy, że to grep ciągi abc. Jest. 412 00:28:31,490 --> 00:28:37,930 Jeśli zrobić grep zddd, ja nic. Ok. 413 00:28:37,930 --> 00:28:40,960 Więc znajdzie ciąg, podlega, nie znajdzie, to nie to zgłosić. 414 00:28:40,960 --> 00:28:44,930 Wyprowadza dowolną linię, która ma ten ciąg na nim. 415 00:28:44,930 --> 00:28:49,080 Istnieje wiele opcji tutaj które można znaleźć w dokumentacji. 416 00:28:49,080 --> 00:28:52,160 Oto jeden ze sposobów, aby to zrobić. 417 00:28:52,160 --> 00:29:03,290 Co o tym jednym, alias grabc 'grep abc "? 418 00:29:03,290 --> 00:29:09,000 Że będzie zawierać 1 argumentu gdy alias jest określony. 419 00:29:09,000 --> 00:29:26,300 Więc jeśli ja, że ​​tu, teraz, jeśli ja grabc, 420 00:29:26,300 --> 00:29:30,620 teraz alias zawiera więcej niż prostego polecenia. Posiada również argument. 421 00:29:30,620 --> 00:29:32,190 Tak daleko, że działa. 422 00:29:32,190 --> 00:29:38,590 Mam jeszcze jedno polecenie tutaj, to jedno, więc to są tam różne ciągi 423 00:29:38,590 --> 00:29:46,790 i pokazać, że nie znaleźć coś tam, ponieważ nie zgadza. 424 00:29:46,790 --> 00:29:56,180 >> Co zrobić, jeśli chcesz dołączyć do definicji aliasu plik, który mam zamiar sprawdzić 425 00:29:56,180 --> 00:30:02,970 i chcę dać jako argument do aliasu smyczkowy, że szukam? 426 00:30:02,970 --> 00:30:08,040 Może chcę powiedzieć, abc jako argument do mojego pseudonimu, 427 00:30:08,040 --> 00:30:10,870 ale alias już ustalona plik. 428 00:30:10,870 --> 00:30:15,710 I tam jest cala to wyrażenie 429 00:30:20,430 --> 00:30:25,270 Zauważ, tutaj mamy grep jak wcześniej. 430 00:30:25,270 --> 00:30:28,130 Mamy plik tutaj, sznurki. 431 00:30:28,130 --> 00:30:35,610 \! ^, Trochę dziwne wypowiedzi, przypuszczam, jeśli nie widziałeś tego wcześniej. 432 00:30:35,610 --> 00:30:39,920 Wykrzyknik jest częścią C-shell mechanizmu historii. 433 00:30:39,920 --> 00:30:45,220 To może wywołać wcześniejsze polecenia, może przywołać argumenty do tych poleceń i tak dalej. 434 00:30:46,760 --> 00:31:01,570 Mechanizmu historii jest stosowany jako część krawędzi. 435 00:31:01,570 --> 00:31:07,390 W przypadku określenia linii po wykrzyknikiem, będzie odnosić się do tej linii na liście historii, 436 00:31:07,390 --> 00:31:11,910 które nie będą się do teraz, ponieważ jest to zupełnie inny temat. 437 00:31:11,910 --> 00:31:16,280 Jest możliwe określenie część linii. 438 00:31:16,280 --> 00:31:22,950 Tak! 03:02 będzie drugi argument numer 3 polecenia. 439 00:31:22,950 --> 00:31:30,430 Daszek tutaj w tym wyrażeniu oznacza pierwszy argument. 440 00:31:30,430 --> 00:31:34,410 Jeśli nie dać wskazanie, którego polecenia masz na myśli, 441 00:31:34,410 --> 00:31:37,300 odnosi się do poprzedniego polecenia, 442 00:31:37,300 --> 00:31:41,990 i daszek jest symbolem pierwszego argumentu. 443 00:31:41,990 --> 00:31:46,820 Bo to jest daszek, a nie ilość, nie trzeba używać dwukropek, 444 00:31:46,820 --> 00:31:52,660 tak! ^ oznacza pierwszy argument poprzedniego polecenia. 445 00:31:52,660 --> 00:31:55,020 Trochę miesza się tutaj. 446 00:31:55,020 --> 00:31:58,450 W tym przypadku, gdy używasz to jako definicja aliasu, 447 00:31:58,450 --> 00:32:04,650 odniesienia historia nawiązuje do poleceń, w których wykorzystywany jest alias. 448 00:32:04,650 --> 00:32:08,470 Więc to wraca 1 polecenie jako działania historii, 449 00:32:08,470 --> 00:32:11,810 ale jako działania alias odnosi się do polecenia, w którym należy wpisać, 450 00:32:11,810 --> 00:32:14,780 powiedzieć, grstrings_file. 451 00:32:17,440 --> 00:32:20,240 Mamy tu w nim cytaty. Co jest odwrotny ukośnik na? 452 00:32:20,240 --> 00:32:30,810 W tym przypadku, podobnie jak w innych, nie chcemy, aby uruchomić mechanizm Historia 453 00:32:30,810 --> 00:32:33,680 podczas definicji aliasu. 454 00:32:33,680 --> 00:32:37,900 Jeśli nie mamy tam backslash, powłoka będzie ciągnąć w pierwszym argumencie 455 00:32:37,900 --> 00:32:41,870 polecenia tuż przed prowadził tego polecenia alias, który nie chcemy. 456 00:32:41,870 --> 00:32:47,520 Chcemy, aby było to wbudowane w poleceniem alias zadzwonić argument później. 457 00:32:47,520 --> 00:32:53,550 Pojedyncze cudzysłowy nie uciec wykrzyknik, odniesienie historii. 458 00:32:53,550 --> 00:32:57,450 Może wiesz ucieczka wyrażenie oznacza zmienić znaczenie czegoś. 459 00:32:57,450 --> 00:33:00,260 W tym przypadku oznacza to, że aby zatrzymać coś z posiadania specjalnego znaczenia. 460 00:33:00,260 --> 00:33:03,030 Wykrzyknik na szczególne znaczenie ma historia. 461 00:33:03,030 --> 00:33:05,790 Uciec i nie ma to znaczenie. 462 00:33:05,790 --> 00:33:08,080 Cytaty nie rób tego, odwrotny ukośnik nie. 463 00:33:08,080 --> 00:33:11,900 Więc jesteśmy rzeczywiście przy 2 poziomy ucieczki tutaj. 464 00:33:23,500 --> 00:33:29,620 Zamierzam przenieść tego polecenia do innego okna bez wpisywania go 465 00:33:29,620 --> 00:33:35,210 za pomocą tych operacji edycyjnych, które mogą okazać się przydatne. 466 00:33:40,620 --> 00:33:42,460 Coś jeszcze tutaj pokażę ci. 467 00:33:42,460 --> 00:33:46,730 Jeśli po prostu wpisz alias bez żadnych argumentów, to mówi ci wszystkie swoje argumenty. 468 00:33:46,730 --> 00:33:48,640 To jest kilka aliasów Miałem już tutaj 469 00:33:48,640 --> 00:33:53,400 oprócz tych, które używam tu dzisiaj. 470 00:33:53,400 --> 00:34:00,220 Ale jeśli po prostu wpisz z nazwą aliasu, to mówi mi, co to znaczy. 471 00:34:00,220 --> 00:34:03,390 Zauważ, że cytaty są już i odwrotny ukośnik nie ma. 472 00:34:03,390 --> 00:34:08,620 Ciąg ten tutaj jest wynikiem tej definicji aliasu, 473 00:34:08,620 --> 00:34:12,199 i teraz ma tylko! ^ w nim. 474 00:34:12,199 --> 00:34:19,150 To będzie wyglądać w struny plików na wszystko. 475 00:34:19,150 --> 00:34:34,900 Więc jeśli ja grstrings_file sznurki, nie dać mu nic do szukania tam, 476 00:34:34,900 --> 00:34:37,429 ale patrzy w ciągi. 477 00:34:37,429 --> 00:34:42,330 To nie znaleźliśmy ciągi słów w ciągi plików, ale nie znaleźliśmy abc. 478 00:34:42,330 --> 00:34:46,770 I nie okaże się, że. 479 00:34:46,770 --> 00:34:52,330 Więc dajemy argument, że uderza w definicji aliasu, 480 00:34:52,330 --> 00:34:55,530 które dodaje się do niego. 481 00:34:55,530 --> 00:34:58,540 To gdzie to wyrażenie pochodzi. 482 00:34:58,540 --> 00:35:00,240 Możesz użyć więcej niż 1. 483 00:35:00,240 --> 00:35:03,170 Daszek jest symbolem pierwszego argumentu. 484 00:35:03,170 --> 00:35:07,510 Jeśli chcesz użyć drugiego argumentu, by następnie powiedzieć: 2. 485 00:35:07,510 --> 00:35:11,250 Nie ma specjalnego symbolu dla drugiego argumentu. 486 00:35:11,250 --> 00:35:14,790 A ponieważ używasz cyfrę trzeba by użyć dwukropka. 487 00:35:14,790 --> 00:35:17,220 Nie jest jednak inny wybór tutaj. 488 00:35:17,220 --> 00:35:21,220 Znak dolara oznacza ostatni argument. 489 00:35:21,220 --> 00:35:23,320 A ponieważ jest to symbol, można pominąć dwukropek. 490 00:35:23,320 --> 00:35:25,870 Więc będzie to ostatni argument na liście. 491 00:35:25,870 --> 00:35:27,900 I tam też, że jeden. 492 00:35:27,900 --> 00:35:31,380 Gwiazdka oznacza wszystko, więc jest to pełna lista argumentów, 493 00:35:31,380 --> 00:35:35,150 i znowu, można pominąć dwukropek bo to nie jest cyfra. 494 00:35:36,970 --> 00:35:39,950 Mam nadzieję, że wszystko obserwując to wszystko. 495 00:35:39,950 --> 00:35:54,100 Historia >> mechanizm można wrócić do wcześniejszych linii na liście historii. 496 00:35:54,100 --> 00:36:01,370 Można to zrobić w definicji aliasu. 497 00:36:01,370 --> 00:36:02,950 Nigdy nie widziałem tego zrobić. 498 00:36:02,950 --> 00:36:05,840 To skutkuje wyciągnięciem wcześniejszych poleceń z listy historii 499 00:36:05,840 --> 00:36:08,130 podczas wykonywania alias, które mogą być różne polecenia 500 00:36:08,130 --> 00:36:11,240 w zależności od czasu i miejsca jej wykonywania. 501 00:36:11,240 --> 00:36:14,020 Niewykluczone możesz wyciągnąć takiego odniesienia 502 00:36:14,020 --> 00:36:15,900 po prostu wiedzieć, co było wcześniej poleceń. 503 00:36:15,900 --> 00:36:17,280 Nigdy nie widziałem tak się stało. 504 00:36:17,280 --> 00:36:19,970 Przypuszczam, że ktoś może chcieć, ale jest to bardzo mało prawdopodobne. 505 00:36:19,970 --> 00:36:26,480 Jest jeszcze jedna rzecz tutaj. 506 00:36:26,480 --> 00:36:33,060 Jeśli używasz tego typu historia odniesienia, 507 00:36:33,060 --> 00:36:38,190 następnie są wykorzystywane tylko argumenty, do których istnieje takie odniesienia. 508 00:36:38,190 --> 00:36:42,180 Jeśli masz definicję aliasu, który nie korzysta z historii odniesienia typu, 509 00:36:42,180 --> 00:36:44,060 jeśli tak się początkiem rozkazu 510 00:36:44,060 --> 00:36:46,520 i masz więcej argumentów, to nic, że wpiszesz po 511 00:36:46,520 --> 00:36:48,450 zostaną dodane do polecenia. 512 00:36:48,450 --> 00:36:52,040 W tym przypadku, po prostu dał przykład tam, kiedyś pierwszy argument; 513 00:36:52,040 --> 00:36:54,610 nie używać żadnych innych. 514 00:36:54,610 --> 00:36:57,960 Jeśli inne argumenty zostały podane w linii poleceń, nie będą wykorzystywane. 515 00:36:57,960 --> 00:37:04,630 Więc jeśli używasz odwołanie Historia w ogóle, to musisz użyć, aby uzyskać żadnego argumentu. 516 00:37:04,630 --> 00:37:11,310 >> Jest jeszcze jedna rzecz, tutaj chcę tylko wspomnieć, częściowo na marginesie, 517 00:37:11,310 --> 00:37:15,250 a mianowicie, że ten mechanizm historia z wykrzyknikiem 518 00:37:15,250 --> 00:37:18,010 wraca do pierwotnego C-shell. 519 00:37:18,010 --> 00:37:27,060 Historia operacji wprowadzono tcsh 520 00:37:27,060 --> 00:37:30,910 których korzystanie z różnego rodzaju poleceń i smyczki z redaktorów, 521 00:37:30,910 --> 00:37:33,650 zarówno Emacs czy vi. 522 00:37:33,650 --> 00:37:36,430 Moja osobista opinia jest Emacs jest o wiele łatwiejsze w użyciu w tym celu 523 00:37:36,430 --> 00:37:39,390 nawet jeśli używasz vi do regularnej edycji. 524 00:37:39,390 --> 00:37:43,900 Istnieją różne Emacs poleceń, które są obecnie przystosowane do historii. 525 00:37:43,900 --> 00:37:46,410 Kontrola P dostaje poprzednią linię na liście historii. 526 00:37:46,410 --> 00:37:48,840 Kolejna kontrola P będzie Ci jeden przed tym. 527 00:37:48,840 --> 00:37:50,540 Strzałka w górę robi to samo. 528 00:37:50,540 --> 00:37:54,190 Kontrola dotyczy dostaje następnego polecenia jeśli już przewijany do tyłu kilka sposobów. 529 00:37:54,190 --> 00:37:55,880 Strzałka w dół robi zbyt. 530 00:37:55,880 --> 00:38:00,480 Możesz przejść w lewo w prawo za pomocą strzałek i różnych innych rzeczy. 531 00:38:00,480 --> 00:38:02,390 To może skorzystać z mechanizmu historii 532 00:38:02,390 --> 00:38:05,070 znacznie łatwiejsze niż przy użyciu składni wykrzyknikiem, 533 00:38:05,070 --> 00:38:07,930 ale nie będzie używać, że w definicji aliasu. 534 00:38:17,780 --> 00:38:20,020 Pójdziemy nad tym innym razem. 535 00:38:24,300 --> 00:38:25,810 >> Zmienne. 536 00:38:26,880 --> 00:38:29,510 Wiesz, co zmienne są w językach programowania. 537 00:38:29,510 --> 00:38:31,680 Muszle mają je również. 538 00:38:31,680 --> 00:38:37,350 C-shell używa komendy set przypisać zmienne, 539 00:38:37,350 --> 00:38:41,360 tak, że ustawia zmienną A do wartości b - 540 00:38:41,360 --> 00:38:46,390 jak powiedziałem, bezużyteczną definicję ale ilustrację, jak to jest używane. 541 00:38:48,790 --> 00:38:52,410 Polecenie set będzie utworzyć zmienną, jeśli jeszcze nie istnieje. 542 00:38:55,270 --> 00:39:02,490 Parametry pozycyjne dla skryptów powłoki można uznać za zmienne, 543 00:39:02,490 --> 00:39:10,750 ale korzystanie z nich i dla nich zasady są nieco inne. 544 00:39:10,750 --> 00:39:14,320 Nie można przypisać wartości do $ 1 w trakcie scenariusza. 545 00:39:14,320 --> 00:39:18,340 Trzeba by zdefiniować nową zmienną do tego celu, jeśli niektórzy z was chciał. 546 00:39:23,000 --> 00:39:28,470 Wpisz set bez argumentów, a otrzymasz listę wszystkich aktualnie zdefiniowanych zmiennych. 547 00:39:28,470 --> 00:39:34,220 I przejdźmy do mojego drugiej powłoki tu i zobaczyć, co możemy uzyskać, jeśli robimy to. 548 00:39:34,220 --> 00:39:37,110 Dość długa lista, prawda? 549 00:39:37,110 --> 00:39:40,990 Przewiń w górę trochę. Spójrz na to wszystko. 550 00:39:40,990 --> 00:39:44,330 Niektóre z tych rzeczy są określone automatycznie przez powłokę. 551 00:39:44,330 --> 00:39:49,320 Powłoka tworzy zmienną i nadaje mu wartość. 552 00:39:49,320 --> 00:39:52,730 Niektóre z nich są określone przez powłokę, ale potem na nowo przez użytkownika 553 00:39:52,730 --> 00:39:54,820 według swoich preferencji. 554 00:39:54,820 --> 00:39:59,110 A niektóre z nich są tworzone przez użytkownika w zależności od tego, co on robi, że dzień. 555 00:39:59,110 --> 00:40:01,880 To się po prostu ustawić bez argumentów. 556 00:40:06,920 --> 00:40:10,050 Jest dziwne cechą tutaj tej rzeczy. 557 00:40:10,050 --> 00:40:17,980 Nie muszą być albo bez spacji między znakiem równości i nazwy zmiennej 558 00:40:17,980 --> 00:40:23,700 i wartość lub przestrzenie po obu stronach znaku równości, 559 00:40:23,700 --> 00:40:28,940 tak jak w tym drugim. 560 00:40:35,620 --> 00:40:41,340 To nie będzie działać, i to rzeczywiście jest ważne polecenie 561 00:40:41,340 --> 00:40:43,390 ale nie będzie to, co zamierzasz. 562 00:40:43,390 --> 00:40:50,070 Że polecenie będzie działać, bo jeśli tylko powiedzieć ustawić i nazwy zmiennej 563 00:40:50,070 --> 00:40:54,890 ze nie ma znaku równości lub ustaw, a nazwa zmiennej ze znakiem równości i nie ma wartości, 564 00:40:54,890 --> 00:40:57,770 będzie ustawić zmienną na wartość null. 565 00:40:57,770 --> 00:41:00,120 Tak ustawione A = oznacza ważne polecenia. 566 00:41:00,120 --> 00:41:04,370 Polecenie set można określić więcej niż 1 zmiennej na tej samej linii. 567 00:41:04,370 --> 00:41:11,240 Tak, to polecenie ma tu wpływ definiowania A i B jako wartość null. 568 00:41:11,240 --> 00:41:13,470 Pewnie nie to, co chcesz. 569 00:41:13,470 --> 00:41:17,940 Ten tutaj, wspomniałem wcześniej, będzie prowadzić do błędu 570 00:41:17,940 --> 00:41:21,270 bo = b nie jest poprawnym wyrażeniem. 571 00:41:21,270 --> 00:41:23,680 Nazwa zmiennej nie może zaczynać się znakiem równa się. 572 00:41:26,760 --> 00:41:29,080 I tam są te dalsze rzeczy tutaj. 573 00:41:29,080 --> 00:41:36,820 Dwukropki były używane do wyboru argumentów z linii historii, 574 00:41:36,820 --> 00:41:41,210 i mogą być stosowane - i nie iść do przed - w celu zmiany tych rzeczy. 575 00:41:41,210 --> 00:41:44,480 Mogą one być również stosowane do modyfikowania zmiennych powłoki. 576 00:41:44,480 --> 00:41:49,050 Ten tutaj, $, ma wartość. 577 00:41:49,050 --> 00:41:55,040 : R odbędzie się rozszerzenie. 578 00:41:55,040 --> 00:41:57,200 Rozszerzenie będzie coś po kropce, 579 00:41:57,200 --> 00:41:59,200 kropka i nic po nim na końcu pliku, 580 00:41:59,200 --> 00:42:03,230 tylko na końcu listy po ostatnim ukośnikiem. 581 00:42:03,230 --> 00:42:05,480 Więc mam go tutaj. 582 00:42:05,480 --> 00:42:10,730 jest to, że. Będzie spadać. O.. 583 00:42:10,730 --> 00:42:16,510 Jeśli nie ma rozszerzenia, tylko ścieżki: po ostatnim ukośniku, to nie mają żadnego wpływu. 584 00:42:16,510 --> 00:42:27,480 : h, że zmienna ekspresja, odbędzie się ostatni element listy katalogów, 585 00:42:27,480 --> 00:42:29,660 ponownie dopiero po ostatnim ukośnikiem. 586 00:42:29,660 --> 00:42:33,160 So / / b / c się / / b 587 00:42:33,160 --> 00:42:38,870 ale ten zmienia się, ponieważ element po liście jest null. 588 00:42:38,870 --> 00:42:43,070 Tutaj jest coś, co również chcę podkreślić. 589 00:42:43,070 --> 00:42:46,770 Te eliminacje nie sprawdzić istnienie tych plików. 590 00:42:46,770 --> 00:42:48,910 Oni po prostu patrzeć na smyczki. 591 00:42:48,910 --> 00:42:54,520 Są one przeznaczone do manipulowania nazw plików, ścieżek, 592 00:42:54,520 --> 00:42:57,520 ale mogą być wykorzystane na dowolny ciąg, nawet jeśli to nie jest nazwa pliku. 593 00:42:57,520 --> 00:42:58,920 I nie patrzeć na istnienie, 594 00:42:58,920 --> 00:43:03,550 więc jeśli nie ma takiego pliku, / a / b / c, to będzie nadal działać. 595 00:43:03,550 --> 00:43:06,930 Czy to w jakikolwiek sposób użyteczne, to inna kwestia, ale nadal będzie ona działać. 596 00:43:06,930 --> 00:43:12,850 Zmienne są różne w powłokach Bourne'a. Dojdziemy do tego później. 597 00:43:12,850 --> 00:43:18,240 Znak dolara można uciec tak jak wykrzyknik i gwiazdką. 598 00:43:18,240 --> 00:43:21,760 Znak dolara można uciec z ukośnikiem lub apostrofach. 599 00:43:21,760 --> 00:43:24,790 Cudzysłowy mają wpływ na wszystkich muszli dziwny 600 00:43:24,790 --> 00:43:28,690 wymuszania ocenę znak dolara zmiennej ekspresji. 601 00:43:28,690 --> 00:43:31,960 Więc jeśli to jest uciekł w jedną stronę, to cudzysłowy mogą mieć wpływ 602 00:43:31,960 --> 00:43:34,380 z co jest on tak oceny. 603 00:43:34,380 --> 00:43:37,090 To jest trochę mylące. 604 00:43:37,090 --> 00:43:43,740 Jeśli istnieje wiele poziomów ucieczki, takich jak apostrofy wewnątrz podwójnych cudzysłowów 605 00:43:43,740 --> 00:43:46,770 lub podwójne cudzysłowy wewnątrz pojedynczych cudzysłowów, należy przetestować, aby zobaczyć, co się stanie, 606 00:43:46,770 --> 00:43:49,520 do zmiennej, jeśli używasz jednego. 607 00:43:49,520 --> 00:43:53,410 Te 2 sytuacje - podwójne wewnątrz jednej, pojedynczej wewnętrznej podwójna - 608 00:43:53,410 --> 00:43:55,980 nie zawsze daje ten sam wynik. 609 00:44:02,520 --> 00:44:05,600 Zmienne środowiskowe, związane zmienne C-shell. 610 00:44:05,600 --> 00:44:08,340 Zmienne środowiskowe są również zmienne w C-shell, 611 00:44:08,340 --> 00:44:11,250 i są również zmienne w innych skorup też. 612 00:44:11,250 --> 00:44:15,230 W C-skorupy, są różne zestawy. 613 00:44:15,230 --> 00:44:18,130 Rzeczy mówiłem wcześniej są o zmiennych powłoki. 614 00:44:18,130 --> 00:44:21,300 Zmienne środowiskowe są odrębny zestaw zmiennych 615 00:44:21,300 --> 00:44:28,650 z wyjątkiem kilku zmiennych, które nazywamy zmienne związane, 616 00:44:28,650 --> 00:44:30,640 które są bardzo ważne, a my się tym później. 617 00:44:30,640 --> 00:44:34,950 Zmienne środowiskowe są automatycznie przekazywane 618 00:44:34,950 --> 00:44:41,800 do muszli lub poleceń, które są uruchamiane z powłoki. 619 00:44:41,800 --> 00:44:46,220 Inne rzeczy nie są. Zmienne powłoki, aliasy nie są. Zmienne środowiskowe są. 620 00:44:46,220 --> 00:44:48,630 Dlatego nazywamy je zmienne środowiskowe, 621 00:44:48,630 --> 00:44:55,030 Pomysł jest, że środowisko rozciąga się tylko bieżącej powłoki. 622 00:44:55,030 --> 00:45:00,510 Mogą one być używane do określania co poleceń. 623 00:45:00,510 --> 00:45:05,470 Oto przykład. DRUKARKA, LPDEST. 624 00:45:05,470 --> 00:45:12,270 Oba z tych zmiennych można zdefiniować drukarkę, polecenie używane do drukowania rzeczy. 625 00:45:12,270 --> 00:45:16,500 Jeśli masz kilka drukarek wokół, można umieścić jeden chcesz. 626 00:45:16,500 --> 00:45:21,320 Powodem mamy 2 zmienne jest, że różne zestawy poleceń zostały napisane 627 00:45:21,320 --> 00:45:23,870 za pomocą tych różnych zmiennych. 628 00:45:23,870 --> 00:45:25,910 Możecie dać im różne wartości. 629 00:45:25,910 --> 00:45:28,860 Najprawdopodobniej będziesz im zarówno samą wartość. 630 00:45:28,860 --> 00:45:35,840 Te rzeczy działają, ponieważ polecenia, które drukować 631 00:45:35,840 --> 00:45:40,740 zaprogramowano zbadanie wartości tych zmiennych. 632 00:45:42,200 --> 00:45:46,150 Jeśli program nie zostały napisane w taki sposób, jakby były napisane zrobić coś innego, 633 00:45:46,150 --> 00:45:48,280 Zmienna będzie bez znaczenia. 634 00:45:48,280 --> 00:45:52,530 Więc system operacyjny nie szuka tych zmiennych 635 00:45:52,530 --> 00:45:55,210 każdym razem, gdy odnoszą się do drukarki. 636 00:45:55,210 --> 00:45:59,090 Polecenie, które ma drukowanie poszukuje tych zmiennych, jeśli jest zaprogramowany w ten sposób. 637 00:46:11,030 --> 00:46:15,240 Zmienne te są często definiowane w plikach inicjalizacji 638 00:46:15,240 --> 00:46:19,440 lecz niekoniecznie. 639 00:46:19,440 --> 00:46:21,050 Można je zdefiniować w linii poleceń. 640 00:46:21,050 --> 00:46:24,090 Mogą one być określone w polecenia. 641 00:46:24,090 --> 00:46:28,740 Polecenia, które uruchamia coś może mieć własny wybór zmiennych - 642 00:46:28,740 --> 00:46:32,390 zmienne, które są unikalne dla danego pakietu oprogramowania, na przykład. 643 00:46:32,390 --> 00:46:36,740 Będą określone po uruchomieniu tego pakietu. 644 00:46:39,690 --> 00:46:42,680 Jak zmienne te przekazywane do podpowłoce? 645 00:46:42,680 --> 00:46:48,210 Kiedy pod-powłoka jest napisane, że nie pisze w tym obszarze. 646 00:46:48,210 --> 00:46:53,260 Powierzchnia podpowłoce, który jest poświęcony zmienne środowiska 647 00:46:53,260 --> 00:46:56,450 nie jest napisane przez sub-shell, jest napisane przez kopiowanie. 648 00:46:56,450 --> 00:47:00,530 Po uruchomieniu zwykłego polecenia, takie jak te polecenia, aby wydrukować lub cokolwiek, 649 00:47:00,530 --> 00:47:03,840 zaczynają się tworząc nową powłokę. 650 00:47:03,840 --> 00:47:06,190 Powłoka tworzy powłokę, a następnie zastępuje część, 651 00:47:06,190 --> 00:47:08,800 z poleceniem, że jesteś z systemem, który jest trochę mylące, 652 00:47:08,800 --> 00:47:10,740 ale to jak te polecenia uzyskać zmienne środowiskowe 653 00:47:10,740 --> 00:47:14,890 że to odnosi się do przyszłości. 654 00:47:21,920 --> 00:47:28,010 Komenda tutaj definiowania zmiennej setenv. 655 00:47:28,010 --> 00:47:36,470 To, w jaki sposób zdefiniować. Jest to 3 elementy: setenv, zmienne, wartości. 656 00:47:36,470 --> 00:47:44,710 Jeśli tylko nie setenv bez argumentów, co masz? 657 00:47:47,220 --> 00:47:48,810 Lista wszystkich tych zmiennych. 658 00:47:48,810 --> 00:47:53,190 Ponownie, jest to długa lista, w tym przypadku, podobnie jak w innych, 659 00:47:53,190 --> 00:47:57,320 te zmienne są definiowane głównie przez mojego działania logowania przez samego zbiornika 660 00:47:57,320 --> 00:47:59,740 a nie przez cokolwiek zrobiłem. 661 00:47:59,740 --> 00:48:03,580 Jest inna komenda tutaj, printenv. 662 00:48:07,520 --> 00:48:10,340 Który drukuje również środowiska. 663 00:48:10,340 --> 00:48:15,240 Zauważ, to ostatnia rzecz, o, editor = vi. 664 00:48:15,240 --> 00:48:21,120 Które mówi, że jeśli używam czegoś, co wywołuje edytor 665 00:48:21,120 --> 00:48:25,530 a ja nie określają edytora i umożliwia mi wybór, to może dać mi vi. 666 00:48:25,530 --> 00:48:37,280 Co zrobić, jeśli mam printenv edytorze? Mówi mi, co to jest. 667 00:48:37,280 --> 00:48:41,340 Tuż przed tym, nie było zmienne, MNIEJ. 668 00:48:41,340 --> 00:48:46,040 Są to opcje domyślne podczas uruchomić mniej polecenia, 669 00:48:46,040 --> 00:48:49,360 który wyświetla pliki. 670 00:48:49,360 --> 00:48:55,910 Więc jeśli to zrobię, printenv może wziąć 1 lub 0 argumentów argumentu, 671 00:48:55,910 --> 00:48:58,070 nie więcej niż 1. 672 00:49:01,800 --> 00:49:05,690 Istnieją też inne polecenia, ale nie będziemy się dostać do wszystkich, że dzisiaj. 673 00:49:05,690 --> 00:49:11,010 Zapamiętaj było modyfikatory dla zmiennych powłoki, takich jak: H, 674 00:49:11,010 --> 00:49:14,350 która spadnie na ostatni element ścieżki, 675 00:49:14,350 --> 00:49:17,950 lub: R, który spadnie na przedłużenie. 676 00:49:17,950 --> 00:49:23,110 Ci, teraz stosuje się do zmiennych środowiskowych też. Nie przyzwyczajony. 677 00:49:23,110 --> 00:49:24,960 Kiedyś było tak, że nie mogą być zmienione. Teraz mogą one być. 678 00:49:24,960 --> 00:49:29,190 To jeden z zaliczek z wydarzeń z muszli na przestrzeni lat. 679 00:49:29,190 --> 00:49:35,620 Mówiłem, że muszle jako część środowisk 680 00:49:35,620 --> 00:49:43,040 i zmienne powłoki w powłoce C są, z pewnymi wyjątkami, różnych zestawów. 681 00:49:43,040 --> 00:49:46,790 Można ustalić zmienną środowiskową i zmienną powłoki o tej samej nazwie. 682 00:49:46,790 --> 00:49:49,220 Będą one inne zmienne, mogą mieć różne wartości. 683 00:49:49,220 --> 00:49:53,090 Zmieniając wartość jeden, nie zmieni wartości drugiego. 684 00:49:53,090 --> 00:49:58,070 Wszystkie te zmienne są oceniane ze znakiem dolara - $, $ cokolwiek. 685 00:49:58,070 --> 00:50:02,340 Więc co, jeśli masz to? Czy wiesz, który z nich masz? 686 00:50:02,340 --> 00:50:04,520 W moich testach mam zmienną powłoki, 687 00:50:04,520 --> 00:50:07,240 ale to nie jest udokumentowane i nie można powoływać się na to. 688 00:50:07,240 --> 00:50:10,270 Więc pytam, tworzy powłoki i zmiennych środowiskowych 689 00:50:10,270 --> 00:50:13,490 o takich samych nazwach to dobry pomysł? No dobrze. 690 00:50:13,490 --> 00:50:17,460 Jakie są te główne wyjątki, w których zmienne środowiskowe i powłoki 691 00:50:17,460 --> 00:50:19,860 są połączone ze sobą? 692 00:50:19,860 --> 00:50:27,470 Są to 4. 693 00:50:32,030 --> 00:50:35,510 Zmienna środowiskowa TERM litera, 694 00:50:35,510 --> 00:50:41,540 określenie zmiennej powłoki małymi literami typu emulacji terminala. 695 00:50:41,540 --> 00:50:47,430 Mam zamiar iść na tutaj i mam zamiar zrobić echo, przydatne polecenia tutaj, 696 00:50:47,430 --> 00:50:52,560 $ TERM $ termin. I tam. 697 00:50:52,560 --> 00:51:00,570 xterm jest typ terminala dla okien wyświetlanych w systemie X Window. 698 00:51:00,570 --> 00:51:04,330 xterm kolor jest odmianą, że pozwala na różne kolory. 699 00:51:04,330 --> 00:51:06,580 Dlaczego zdefiniować te? Co to jest dobre dla? 700 00:51:06,580 --> 00:51:09,740 Polecenia zmienić układ ekranu, jak w edytorze 701 00:51:09,740 --> 00:51:13,680 wysłać poszczególne sekwencje, zwane sekwencje specjalne, 702 00:51:13,680 --> 00:51:18,160 do terminala lub okna, aby zmienić jej i tak dalej. 703 00:51:18,160 --> 00:51:20,990 Sekwencje te są różne dla różnych typów końcówek. 704 00:51:20,990 --> 00:51:23,100 Mówi to, które z nich korzystać. 705 00:51:23,100 --> 00:51:25,900 Czasami są problemy istnieją. 706 00:51:25,900 --> 00:51:28,600 Możesz to zmienić. 707 00:51:28,600 --> 00:51:30,780 Jeśli coś nie działa, czasem typ terminala jest ustawiony tak, 708 00:51:30,780 --> 00:51:36,440 być może uda się go naprawić poprzez ponowne zdefiniowanie zmiennej TERM. 709 00:51:36,440 --> 00:51:43,420 W tych przypadkach, zmieniając jedną zmienną, zmienną środowiskową lub zmiennej powłoki, 710 00:51:43,420 --> 00:51:45,970 należy zmienić drugą. 711 00:51:45,970 --> 00:51:50,970 Odkryłam, poprzez doświadczenie, że zmiana terminu w literami 712 00:51:50,970 --> 00:51:54,060 nie zawsze zmienić zmienną powłoki termin małymi literami. 713 00:51:54,060 --> 00:51:55,550 To jest błąd. 714 00:51:55,550 --> 00:51:59,400 Nie wiem, czy to jest zawsze prawdziwe. Większość czasu to nie jest prawda, ale może być. 715 00:51:59,400 --> 00:52:02,490 Więc jeśli coś zmienić, po prostu sprawdzić, czy na zewnątrz. 716 00:52:02,490 --> 00:52:05,830 To nie jest często, że trzeba zmienić tę wartość, ale raz na jakiś czas zrobić. 717 00:52:05,830 --> 00:52:08,260 Zmienna środowiskowa USER. 718 00:52:08,260 --> 00:52:12,070 Ponownie, zmienna literami, shell zmienną małymi literami. 719 00:52:12,070 --> 00:52:13,710 To jest Twoja nazwa użytkownika. 720 00:52:13,710 --> 00:52:16,730 To tylko w bardzo wyjątkowych okolicznościach 721 00:52:16,730 --> 00:52:18,420 , który chcesz zmienić. 722 00:52:18,420 --> 00:52:22,350 Jeśli Twoja nazwa użytkownika jest ktoś inny, może rzucać różne rzeczy off. 723 00:52:22,350 --> 00:52:26,040 Katalog domowy, katalog domowy użytkownika. 724 00:52:26,040 --> 00:52:28,060 Znowu, nie chcesz, by to zmienić. 725 00:52:28,060 --> 00:52:32,260 Zawiadomienia w tych wszystkich przypadkach, i ten, który mamy zamiar pokryć, zmiennej PATH, 726 00:52:32,260 --> 00:52:37,070 zmienna jest wielkimi literami, a związana jest zmienna powłoki z małych liter. 727 00:52:37,070 --> 00:52:39,240 Jeśli zmienisz jeden, należy zmienić innych. 728 00:52:39,240 --> 00:52:45,960 Ten rodzaj wiązania nie można ustalić, ponieważ nie można wiązać 2 zmienne, 729 00:52:45,960 --> 00:52:50,570 inne niż te 4 i wiązania w tych zmiennych nie można cofnąć 730 00:52:50,570 --> 00:52:52,090 nie można ich rozdzielić. 731 00:52:52,090 --> 00:52:55,820 Więc te 4 pary zmiennych są związane. 732 00:52:55,820 --> 00:52:59,020 Oni zawsze będą. Żadne inne będą. 733 00:52:59,020 --> 00:53:05,720 Ponadto byłoby możliwe, aby utworzyć zmienne o tej samej nazwie 734 00:53:05,720 --> 00:53:07,780 przeciwległych typów. 735 00:53:07,780 --> 00:53:11,600 Można zrobić powłoki zmienna termin małymi literami 736 00:53:11,600 --> 00:53:14,990 lub zmienną środowiskową TERM literami. 737 00:53:14,990 --> 00:53:19,040 Zmienne te będą niezależne od tych zmiennych sparowanych 738 00:53:19,040 --> 00:53:20,780 i będą one niezależne od siebie. 739 00:53:20,780 --> 00:53:23,780 Nie mogę sobie wyobrazić, dlaczego miałbyś to robić, jeśli nie chcesz, by zmylić ludzi. 740 00:53:24,600 --> 00:53:29,730 Ten tutaj, zmienna ścieżka, to jest naprawdę ważne. 741 00:53:29,730 --> 00:53:35,550 Inną rzeczą jest to, że nie może być przypadki 742 00:53:35,550 --> 00:53:40,430 zmiennych o podobnej nazwie sparowanych, które nie są związane ze sobą. 743 00:53:40,430 --> 00:53:45,000 Nie może być zmienne, powłoki i powłoki, w duże i małe litery. 744 00:53:45,000 --> 00:53:48,300 Na podstawie tej nazwy, nie wiem, czy zmienna jest zmienną powłoki 745 00:53:48,300 --> 00:53:51,580 lub zmienna, a nie są one połączone ze sobą nawzajem. 746 00:53:51,580 --> 00:53:55,300 Tak więc tego rodzaju powiązanych nazw nie oznacza, zmienne związane. 747 00:53:55,300 --> 00:53:58,830 Zmienna ścieżka, którą pokazywał wcześniej, 748 00:53:58,830 --> 00:54:01,880 jest lista ścieżek, w których powłoka szuka poleceń. 749 00:54:01,880 --> 00:54:12,320 Zabierzmy się do tego okna tutaj i zrobimy echo $ PATH, litery - 750 00:54:12,320 --> 00:54:20,230 zmienna - echo $ path, małe litery - shell zmienną. 751 00:54:20,230 --> 00:54:24,980 Zauważ, że lista katalogów jest taka sama. Są one związane. 752 00:54:24,980 --> 00:54:26,590 Zmienić jeden, można zmienić innych. 753 00:54:26,590 --> 00:54:32,970 W zmiennej środowiskowej elementy są oddzielone dwukropkami. Zauważ, że. 754 00:54:32,970 --> 00:54:35,130 Zmienne powłoki są oddzielone spacjami. 755 00:54:35,130 --> 00:54:38,760 Ta zmienna jest pojedynczy łańcuch. 756 00:54:38,760 --> 00:54:41,480 Zmienna powłoki jest tablicą. 757 00:54:41,480 --> 00:54:43,490 Bourne Shell nie miał tablic. 758 00:54:43,490 --> 00:54:46,600 Atakujących nie, ale to już ustalona część powłoki. 759 00:54:46,600 --> 00:54:48,660 To jest jeden ciąg znaków, a nie tablicą. 760 00:54:48,660 --> 00:54:50,420 C-shell zawsze miał tablic. 761 00:54:50,420 --> 00:54:52,630 Tablice są znacznie łatwiejsze w użyciu. 762 00:54:52,630 --> 00:54:54,400 Można odwołać się do części. 763 00:54:54,400 --> 00:55:02,350 Więc echo $ path [1] i mam / usr / bin, pierwszy element. 764 00:55:02,350 --> 00:55:09,950 Ponownie, pamiętaj znak dolara oznacza ostatni element na liście historii. 765 00:55:09,950 --> 00:55:16,850 Co tam się dzieje? Próbował znaleźć dolara jako symbol zmienny. 766 00:55:16,850 --> 00:55:20,850 I uciec. Ups. To nie zajmie, że albo. 767 00:55:20,850 --> 00:55:23,690 Niektóre z tych rzeczy nie tak dobrze. 768 00:55:23,690 --> 00:55:28,140 Może po prostu zostaw to. 769 00:55:28,140 --> 00:55:36,980 Gwiazdka odnosi się do całej sprawy, ale to jest to, co masz, jeśli nie określić element. 770 00:55:36,980 --> 00:55:46,170 Inny sposób, że zmienne tablicowe mogą być manipulowane, 771 00:55:46,170 --> 00:55:49,500 Liczba elementów tam, 7 elementów. 772 00:55:49,500 --> 00:55:53,410 Tutaj stawiamy znak funta przed nazwą zmiennej. 773 00:55:53,410 --> 00:55:58,280 Tutaj jest jeszcze jeden. Stawiają pod znakiem zapytania nie. 774 00:55:58,280 --> 00:56:03,170 To jest wartość logiczna. , Które wskazuje, że zmienna istnieje. 775 00:56:03,170 --> 00:56:05,160 To kolejny sposób pracy ze zmiennymi. 776 00:56:05,160 --> 00:56:06,660 , Które, nawiasem mówiąc, nie musi być zmienną tablicową. 777 00:56:06,660 --> 00:56:08,210 To może być dowolna zmienna. 778 00:56:08,210 --> 00:56:11,840 I jeśli to zrobię, jest zmienna, a ja takich nie otrzymasz 0. 779 00:56:11,840 --> 00:56:14,990 Kolejna mała rzecz nie o zmiennej ocen. 780 00:56:23,670 --> 00:56:32,950 Powrót do tego tutaj, jeśli z jakiegoś powodu chciał pracować z tym 781 00:56:32,950 --> 00:56:37,990 Zamiast pracy z tablicy, zmienna powłoki, 782 00:56:37,990 --> 00:56:41,470 obecne są polecenia, które oddzielają te rzeczy oparta na okrężnicy. 783 00:56:41,470 --> 00:56:44,080 W rzeczywistości, jeśli masz zamiar robić to na basha ewentualnie, 784 00:56:44,080 --> 00:56:47,110 jakiś skrypt, który będzie prawdopodobnie w jaki sposób to zrobić. 785 00:56:47,110 --> 00:56:50,350 Ale w C-shell jest to o wiele łatwiejsze w użyciu tablicę. 786 00:56:50,350 --> 00:56:58,250 W Bourne shell, zmienne są przypisywane przez jednego wyrazu jak ta, 787 00:56:58,250 --> 00:57:01,760 jak sposób można przypisać zmienną w języku programowania, 788 00:57:01,760 --> 00:57:05,110 a tu nie ma spacji. 789 00:57:05,110 --> 00:57:09,110 Jest to konieczne, aby być tylko 1 ciąg. 790 00:57:09,110 --> 00:57:14,980 W muszli typu Bourne'a, wszystkie zmienne są zmienne powłoki. 791 00:57:14,980 --> 00:57:19,250 Zmienne środowiska są podzbiorem zmiennych powłoki. 792 00:57:19,250 --> 00:57:24,060 Wyróżnia się od zmiennych nie-środowiskowych poprzez eksport. 793 00:57:24,060 --> 00:57:28,860 Polecenie, aby to zrobić jest eksport, jak na przykład drukarki eksportu. 794 00:57:28,860 --> 00:57:34,930 Gdybyśmy zdefiniować taką zmienną, 795 00:57:34,930 --> 00:57:38,480 jeśli chcieliśmy polecenie drukowania, aby je znaleźć, to musi być zmienna, 796 00:57:38,480 --> 00:57:40,730 i tak robimy to jedno. 797 00:57:40,730 --> 00:57:42,090 Tutaj jest coś rodzaju mylące. 798 00:57:42,090 --> 00:57:50,430 To wyrażenie, eksport do środowiska, wynika z tej koncepcji powłoki Bourne'a, 799 00:57:50,430 --> 00:57:54,520 a mimo to wyrażenie jest używane w opisach C skorupek 800 00:57:54,520 --> 00:57:57,920 gdzie nie ma takiego polecenia jak eksport. 801 00:57:57,920 --> 00:58:06,200 Jeśli po prostu powiedzieć, eksport przez siebie, można uzyskać listę eksportowane - 802 00:58:06,200 --> 00:58:10,620 Więc jeśli ja po prostu wyeksportować tutaj, nie ma czegoś takiego. 803 00:58:13,620 --> 00:58:15,200 Dobra, idziemy. 804 00:58:15,200 --> 00:58:17,010 Te rzeczy, przy okazji, są również zdefiniowane przez powłokę. 805 00:58:17,010 --> 00:58:19,400 Nie każdy z nich zdefiniować sam. 806 00:58:19,400 --> 00:58:23,550 Shell robi różne rzeczy o sobie. 807 00:58:23,550 --> 00:58:26,650 Powinien automatycznie robić rzeczy. 808 00:58:30,240 --> 00:58:36,880 W bash lub Korn, można uruchomić polecenie tak, 809 00:58:36,880 --> 00:58:42,000 które dadzą zmienną wartość i wyeksportować go w 1 polecenia. 810 00:58:42,000 --> 00:58:46,150 W powłoce Bourne muszą być oddzielne komendy jak wyeksportować. 811 00:58:46,150 --> 00:58:48,410 Tutaj jest jeszcze jeden aspekt, który jest mylące. 812 00:58:48,410 --> 00:58:52,220 Zestaw poleceń w C-shell definiuje zmienne 813 00:58:52,220 --> 00:58:55,550 i bez argumentów mówi, jakie wartości zmiennych 'są. 814 00:58:55,550 --> 00:59:01,140 W basha, zestaw poleceń bez argumentów nie to samo, 815 00:59:01,140 --> 00:59:03,580 ale z argumentami, że robi coś zupełnie innego. 816 00:59:03,580 --> 00:59:06,200 To są różne argumenty tutaj. 817 00:59:06,200 --> 00:59:10,460 Niektóre z nich są zmienne środowiskowe, niektóre z nich są zmienne powłoki. 818 00:59:10,460 --> 00:59:13,200 Wszystkie z nich są zmienne powłoki naprawdę. Niektóre z nich są zmienne środowiskowe. 819 00:59:15,690 --> 00:59:23,920 Zestaw poleceń z argumentów może być używany do obsługi 820 00:59:23,920 --> 00:59:28,220 na parametry pozycyjne do skryptu, 821 00:59:28,220 --> 00:59:33,910 co jest sposobem na uzyskanie je wszystkie na raz. 822 00:59:33,910 --> 00:59:36,150 Nie możemy iść w tym dzisiaj. 823 00:59:36,150 --> 00:59:39,580 Może on być również użyty do zmiany zachowania powłoki. 824 00:59:39,580 --> 00:59:46,700 Szczególnie w Bash są zmienne, które określają, jak powłoka zachowuje. 825 00:59:46,700 --> 00:59:51,310 Wtedy też po prostu to jedno polecenie, które można zobaczyć, to polecenie. 826 00:59:51,310 --> 00:59:59,050 Przygotowana następnie zmiennych i typów zmiennych jest wykorzystywany w Korn i bash. 827 00:59:59,050 --> 01:00:04,970 Nie jest to wymagane, ale mogą być wykorzystywane do ograniczania wartości zmiennych 828 01:00:04,970 --> 01:00:08,400 które mogą być przydatne, aby zapobiec błędom, i to jest dość powszechne. 829 01:00:08,400 --> 01:00:11,640 Więc ja tylko wspomnieć, że w przypadku, widzisz go gdzieś. 830 01:00:17,290 --> 01:00:19,160 Komenda gdzie. 831 01:00:19,160 --> 01:00:22,490 Pamiętam, jak już wcześniej wspomniałem, w których polecenie w C-shell, 832 01:00:22,490 --> 01:00:28,750 co może powiedzieć lokalizację ścieżki poleceń. 833 01:00:28,750 --> 01:00:32,580 Oto podstawienia polecenia. 834 01:00:32,580 --> 01:00:41,900 Należy znaleźć na klawiaturze gdzieś znaków, który wygląda tak. 835 01:00:41,900 --> 01:00:44,910 Lokalizacja na klawiaturze się zmienia. 836 01:00:44,910 --> 01:00:47,050 Mamy nazwał backquote. Chodzi o wielkości cytatem. 837 01:00:47,050 --> 01:00:48,720 To idzie od górnej lewej do prawej dolnej. 838 01:00:48,720 --> 01:00:52,690 Tutaj, na mojej klawiaturze Mac jest w górnym lewym rogu. 839 01:00:52,690 --> 01:00:58,150 Że znak może być użyty do wykonania polecenia w poleceniu. 840 01:00:58,150 --> 01:01:03,400 Jeśli masz wyrażenie wewnątrz małe cudzysłowy, 841 01:01:03,400 --> 01:01:07,080 że wyrażenie to polecenie, to uruchomić. 842 01:01:07,080 --> 01:01:09,010 Wyjście z tego polecenia 843 01:01:09,010 --> 01:01:11,980 Następnie podstawiony przez cały ekspresji backquote 844 01:01:11,980 --> 01:01:16,110 wewnątrz dłuższy polecenia, które następnie prowadzi z tego wyjścia 845 01:01:16,110 --> 01:01:22,010 jako część ciąg argumentów i tak dalej. 846 01:01:22,010 --> 01:01:28,640 Oto polecenia, które używa tego. 847 01:01:28,640 --> 01:01:32,340 Niech demonstrują działanie tutaj. 848 01:01:44,980 --> 01:01:49,090 Chodźmy tutaj, wyjąć małe cudzysłowy. 849 01:01:49,090 --> 01:01:54,410 Kontrola dostaje mnie na początku linii z składni edycji Emacs. 850 01:01:54,410 --> 01:02:00,380 Jak dotąd ścieżki: jest to, co gdzie robi, 851 01:02:00,380 --> 01:02:05,040 ale kiedy robię to tak, że to korki w tej liście ścieżek 852 01:02:05,040 --> 01:02:08,750 zamiast tej całej wypowiedzi backquote i tras ls-l na nich. 853 01:02:08,750 --> 01:02:11,120 Rodzaj wygodne, prawda? 854 01:02:11,120 --> 01:02:14,860 Więc to jest jeden schludny rzeczą. To, jak działają małe cudzysłowy. 855 01:02:14,860 --> 01:02:17,560 Teraz idziemy w dół nieco dalej. 856 01:02:17,560 --> 01:02:22,050 Są to aliasy. I rzeczywiście z nich korzystać. 857 01:02:22,050 --> 01:02:26,410 Postaram się, aby ten się z 1 operacji edycji. 858 01:02:34,900 --> 01:02:36,900 Ok. 859 01:02:36,900 --> 01:02:39,630 Teraz zobaczmy jak te definicje wyszedł. 860 01:02:39,630 --> 01:02:44,930 alias DSW opowiadał mi, jak to określono. 861 01:02:44,930 --> 01:02:51,210 Zauważ, że to właśnie to, ale zewnętrzne cytaty zostały usunięte 862 01:02:51,210 --> 01:02:53,750 i wykrzyknik zdjęty. 863 01:02:53,750 --> 01:02:58,940 ! *, Pełna lista wszystkich argumentów. 864 01:02:58,940 --> 01:03:03,580 W definicji aliasu będzie stosować tam, gdzie tego używać. 865 01:03:03,580 --> 01:03:10,620 DSW ksh bash. Ok. 866 01:03:10,620 --> 01:03:13,960 Zobacz jak to działa? To oszczędza mi pisać. 867 01:03:13,960 --> 01:03:16,440 Chodźmy się trochę tylko wspomnieć coś innego tutaj. 868 01:03:19,150 --> 01:03:23,120 Zawiadomienia o tych różnych pocisków. Powinienem był o tym wspominałem wcześniej. 869 01:03:23,120 --> 01:03:36,060 Csh ma 2 tu i tak nie / bin / tcsh. 870 01:03:36,060 --> 01:03:39,870 Możemy ustalić w inny sposób, że są to w rzeczywistości ten sam plik. 871 01:03:39,870 --> 01:03:43,150 Pamiętam, że mówił po wpisaniu sh masz bash. 872 01:03:43,150 --> 01:03:47,390 Wpisz to i to masz. 873 01:03:47,390 --> 01:03:51,730 Ale te, które nie są powiązane. Ci, mają tam jedno z nich. 874 01:03:51,730 --> 01:03:54,910 I nie jest to rodzaj pliku, który może wywołać kolejne. 875 01:03:54,910 --> 01:03:59,460 To są oddzielne pliki; te C-shell są tym samym plikiem. 876 01:03:59,460 --> 01:04:03,640 Wróć tu, drugi tu, to pseudonim, 877 01:04:03,640 --> 01:04:09,090 pamiętać, że jest to polecenie działa plik. 878 01:04:09,090 --> 01:04:13,810 Że alias działa to. Plik określa typ pliku. 879 01:04:13,810 --> 01:04:20,330 Więc FWH bash ksh. Ok. 880 01:04:20,330 --> 01:04:23,230 To wyjście polecenia plików. 881 01:04:23,230 --> 01:04:24,630 Nie wiem, czy wiesz, co to oznacza tutaj, 882 01:04:24,630 --> 01:04:26,750 Mach-O Universal Binary 2 architektur. 883 01:04:26,750 --> 01:04:30,470 Istnieją 2 możliwe typy procesorów w komputerze Mac 884 01:04:30,470 --> 01:04:34,780 i niektóre programy zostały zapisane w stanie działać z obu 885 01:04:34,780 --> 01:04:37,950 i polecenie Plik może ustalić, że tak, że to, co to oznacza. 886 01:04:37,950 --> 01:04:40,660 Oba te pliki zostały napisane w taki sposób. 887 01:04:40,660 --> 01:04:43,760 Widzimy więc, jak działa alias, widzimy, jak działa backquote, 888 01:04:43,760 --> 01:04:48,640 widzimy, jak rzeczywiste ls lub plik działa. 889 01:04:52,050 --> 01:04:57,000 To może nie działać. Try "gdzie gdzie" i "DSW gdzie". Ok, spróbujmy tego. 890 01:04:57,000 --> 01:05:01,040 gdzie gdzie. 891 01:05:01,040 --> 01:05:03,500 gdzie jest wbudowanym poleceniem powłoki. 892 01:05:03,500 --> 01:05:06,970 Zapamiętaj wcześniej pokazaliśmy, że Bash nie ma gdzie. 893 01:05:06,970 --> 01:05:10,080 Jeśli wpiszesz w którym w basha, pojawi się komunikat o błędzie. 894 01:05:10,080 --> 01:05:12,540 To tylko część powłoki, a nie jest osobnym poleceniem. 895 01:05:12,540 --> 01:05:20,000 Co się stanie, jeśli typem DSW szuka gdzie? Zobacz, co się tam dzieje. 896 01:05:20,000 --> 01:05:22,850 Ran, gdzie, gdzie, ma z tego wyjścia, a następnie próbował uruchomić ls 897 01:05:22,850 --> 01:05:25,600 jak l na gdzie jest powłoka wbudowanych. 898 01:05:25,600 --> 01:05:28,790 gdzie tam jest, ale gdy inne nie istnieją. 899 01:05:28,790 --> 01:05:32,090 Żaden z nich nie istnieje, faktycznie. 900 01:05:32,090 --> 01:05:35,560 Tak, że nie zawsze działa, i to pokazuje także, jak pewne rzeczy 901 01:05:35,560 --> 01:05:39,580 Nie dość tego, co może zrobić, ma pomysł. 902 01:05:40,930 --> 01:05:43,010 Chodźmy trochę dalej tutaj. 903 01:05:44,890 --> 01:05:54,760 To tutaj znajduje się w Bash. To jest również zastąpienie polecenia jak backquote. 904 01:05:54,760 --> 01:06:05,280 Ale w przeciwieństwie do backquote, używa tej zmiennej stylu. 905 01:06:05,280 --> 01:06:09,860 Istnieje wiele określeń, które rozpoczynają się od znaku dolara, 906 01:06:09,860 --> 01:06:16,070 i choć nie są to zmienne, pożyczyli użycie znaku dolara 907 01:06:16,070 --> 01:06:19,570 aby wskazać ekspresję pewnego rodzaju. 908 01:06:19,570 --> 01:06:23,550 Które mogą być otoczony nawiasach lub nawiasach lub podwójnych nawiasach, 909 01:06:23,550 --> 01:06:26,320 która ma inny cel. 910 01:06:26,320 --> 01:06:29,500 Pojedyncze nawiasy są tu podstawienia polecenia, podobnie jak małe cudzysłowy. 911 01:06:29,500 --> 01:06:32,720 Podwójne nawiasy jest rzeczywiście operacja arytmetyczna. 912 01:06:32,720 --> 01:06:35,380 Istnieją inne składnie, inne operacje. 913 01:06:35,380 --> 01:06:41,520 Składnia backquote jest dostępny w Bash. 914 01:06:41,520 --> 01:06:46,780 Jednakże ten jest korzystny. Jest to znacznie łatwiejsze do odczytania i pozwala gniazdowania. 915 01:06:46,780 --> 01:06:51,300 Możesz mieć wewnątrz $ (polecenie) innego polecenia, 916 01:06:51,300 --> 01:06:54,590 coś takiego - 917 01:07:14,560 --> 01:07:18,210 Uzyskać listę tam. 918 01:07:18,210 --> 01:07:21,670 Że będzie działać, jeśli miałem backquote również. 919 01:07:32,050 --> 01:07:38,470 Co zrobić, jeśli chcę zrobić coś takiego - 920 01:08:03,390 --> 01:08:06,430 Prawdopodobnie nie będzie właściwie użyć tego polecenia, 921 01:08:06,430 --> 01:08:14,160 ale ten wewnętrzny podstawienia polecenia echo nazwy wszystkich plików zaczynających się, 922 01:08:14,160 --> 01:08:18,229 to ten jeden działa ls-l na tych plikach, 923 01:08:18,229 --> 01:08:20,500 i wtedy to, po prostu echa wyjście. 924 01:08:21,729 --> 01:08:24,479 Prawdopodobnie nie będzie to zrobić, musisz po prostu zrobić echo lub ls, 925 01:08:24,479 --> 01:08:29,450 ale to pokazuje, jak zagnieżdżanie poleceń działa. 926 01:08:29,450 --> 01:08:34,380 Więc po prostu kolejnym elementem tutaj. 927 01:08:34,380 --> 01:08:37,450  Wspomniałem o tym wcześniej, że gdy masz gdzie w C-shell, 928 01:08:37,450 --> 01:08:42,770 typu prace w muszli typu Bourne'a do lokalizowania poleceń. 929 01:08:48,939 --> 01:08:52,270 Wbudowane komendy, tylko to, co mówię nie. 930 01:08:52,270 --> 01:08:54,640 Polecenia są częścią powłoki, jak w którym. 931 01:08:54,640 --> 01:08:59,880 Gdy powłoka wykonuje polecenia takie jak ls, lokalizuje go przez ścieżkę, 932 01:08:59,880 --> 01:09:03,029 znajdzie go gdzieś w jakimś katalogu, 933 01:09:03,029 --> 01:09:05,800 czytamy, że do pamięci, tworzy nową skorupę, 934 01:09:05,800 --> 01:09:08,960 czyta komendy ls lub co do płaszcza 935 01:09:08,960 --> 01:09:11,450 gdzie zmienne środowiskowe są już położone, 936 01:09:11,450 --> 01:09:14,000 , a następnie przenosi się do realizacji tego. 937 01:09:14,000 --> 01:09:18,319 Wbudowane polecenia, kod dla tego polecenia jest wewnątrz skorupy, 938 01:09:18,319 --> 01:09:21,460 tak rozpoczyna się wykonywanie powłoki tylko część własnego kodu. 939 01:09:21,460 --> 01:09:24,569 gdzie jest takie polecenie. To faktycznie jest szybsze. 940 01:09:24,569 --> 01:09:28,380 Nie trzeba czytać coś w pamięci, to już w pamięci. 941 01:09:28,380 --> 01:09:32,460 Polecenia wbudowane zawsze mają pierwszeństwo przed poleceniami o tej samej nazwie. 942 01:09:32,460 --> 01:09:36,050 Polecenia, które są w katalogach na drodze może mieć tę samą nazwę, 943 01:09:36,050 --> 01:09:39,090 polecenia w różnych katalogach, plików w różnych katalogach. 944 01:09:39,090 --> 01:09:41,740 Jeden, który występuje wcześniej w ścieżce jest jeden dostaniesz. 945 01:09:41,740 --> 01:09:43,770 Jeśli jest wbudowane polecenie, zawsze masz go. 946 01:09:43,770 --> 01:09:47,890 Nie ma sposobu, aby nadać mu niższy priorytet niż polecenia na drodze. 947 01:09:47,890 --> 01:09:54,140 Jeśli chcesz, aby ta ścieżka polecenia, należy wpisać pełną ścieżkę dostępu. 948 01:09:54,140 --> 01:09:55,850 Gdyby nie było polecenie, gdzie w drodze gdzieś, 949 01:09:55,850 --> 01:09:58,440 można wpisać / bin /, gdzie i można by go dostać. 950 01:09:58,440 --> 01:10:01,800 Jeśli nie chcesz wpisywać całą ścieżkę, można zdefiniować alias. 951 01:10:01,800 --> 01:10:06,310 W rzeczywistości, jeśli dał alias taką samą nazwę, co wbudowane polecenie, że to działa 952 01:10:06,310 --> 01:10:08,790 ponieważ definicja aliasu jest oceniany 953 01:10:08,790 --> 01:10:13,220 Przed powłoki określa, że ​​jest wbudowana w którym polecenie powinno zostać wykonane. 954 01:10:18,810 --> 01:10:23,440 Wtedy to robi się trochę bardziej skomplikowana ze tutaj niektórych poleceń. 955 01:10:23,440 --> 01:10:29,880 Przypadku niektórych poleceń są rzeczywiście wbudowanych komend i na ścieżce. 956 01:10:29,880 --> 01:10:34,140 Jednym z nich jest echo, polecenie używałem jakiś czas temu w tych przykładach. 957 01:10:34,140 --> 01:10:37,410 Polecenie echo jest w drodze i to w każdej powłoki. 958 01:10:37,410 --> 01:10:40,580 Oni nie muszą wszyscy zachowują się tak samo. 959 01:10:40,580 --> 01:10:42,970 To był pierwotnie polecenia tylko w ścieżce. 960 01:10:42,970 --> 01:10:45,280 Został zbudowany w celu skorup później. 961 01:10:45,280 --> 01:10:48,080 Bo nie ma opcji, które są zależne od środowiska 962 01:10:48,080 --> 01:10:52,970 i opcje linii poleceń, wbudowane komendy 963 01:10:52,970 --> 01:10:57,030 powstały funkcjonować samo jako polecenia, które zostały w ścieżce 964 01:10:57,030 --> 01:10:59,670 jest mało prawdopodobne, że zostały one napisane w ten sposób 965 01:10:59,670 --> 01:11:01,720 Jeśli polecenie nie zostało już napisane na ścieżce. 966 01:11:01,720 --> 01:11:06,180 Tak więc to nie ma skutków ubocznych. Jego historia ma wpływ tutaj. 967 01:11:06,180 --> 01:11:08,380 Istnieją opcje tam. 968 01:11:14,280 --> 01:11:23,060 Istnieje również opcja zdefiniowana przez zmienną w tcsh nazwie echo_style. 969 01:11:23,060 --> 01:11:27,700 To jedna z tych zmiennych, które mogą zmienić sposób, w jaki ECHO współpracuje. 970 01:11:27,700 --> 01:11:30,910 Są też inne przypadki, w których można przypisać zmienną 971 01:11:30,910 --> 01:11:36,290 , które zmienia sposób, że działanie powłoki, w tym wbudowany polecenia, działa. 972 01:11:36,290 --> 01:11:38,130 To nie wpłynie na nic innego 973 01:11:38,130 --> 01:11:40,640 od innych poleceń nie mają dostępu do zmiennych powłoki, 974 01:11:40,640 --> 01:11:42,090 tylko zmienne środowiskowe. 975 01:11:42,090 --> 01:11:45,360 Ale operacje powłoki może odczytać zmienne powłoki. 976 01:11:45,360 --> 01:11:50,710 , Że nie będą pracować dla csh. To tylko tcsh. To jedno z akcesoriów. 977 01:11:58,540 --> 01:12:04,620 Parsowanie ma sekwencje, kiedy ocenia metaznaki, 978 01:12:04,620 --> 01:12:08,140 gdy ocenia zmienne, aliasy, referencje historia. 979 01:12:08,140 --> 01:12:11,830 Jest konkretna sekwencja dla tych rzeczy. 980 01:12:11,830 --> 01:12:13,730 Jeśli tak, co w określonej kolejności 981 01:12:13,730 --> 01:12:16,080 i dostaje się do czegoś, co jest wyrazem swego 982 01:12:16,080 --> 01:12:20,650 które już badano nie ocenia ponownie. 983 01:12:20,650 --> 01:12:24,520 Jeśli robi się to, to będzie po prostu przejść na bohaterów. 984 01:12:24,520 --> 01:12:29,920 Więc jeśli ocena niektórych wyrażeń, takich jak podstawienie poleceń 985 01:12:29,920 --> 01:12:36,850 lub zmienną, lub co daje podstawę do wyrażenia 986 01:12:36,850 --> 01:12:39,240 które chcesz ocenić, 987 01:12:39,240 --> 01:12:42,510 że będzie działać tylko wtedy, gdy ocena występuje później w sekwencji. 988 01:12:42,510 --> 01:12:45,010 Mam nadzieję, że jest jasne, jestem tam. 989 01:12:45,010 --> 01:12:50,460 Że kolejność analizowania, praca w C-shell, 990 01:12:50,460 --> 01:12:56,490 nie jest taki sam dla wbudowanych poleceń, jak to jest tylko dla wbudowanych poleceń. 991 01:12:56,490 --> 01:12:58,890 Nie jestem pewien o Bash tam. 992 01:12:58,890 --> 01:13:02,450 Na przykład, jeśli zmienna powłoki wytwarzane odniesienie historii, 993 01:13:02,450 --> 01:13:04,230 to prawdopodobnie nie wrócę w historii. 994 01:13:04,230 --> 01:13:06,010 To po prostu się wykrzyknik. 995 01:13:06,010 --> 01:13:08,840 W rzeczywistości, możemy po prostu spróbować się teraz. 996 01:13:09,720 --> 01:13:18,240 set a = i będziemy musieli umieścić to tam. 997 01:13:30,690 --> 01:13:34,580 Oh, wait. Przepraszam. Zrobiłem to w Bash. Chciałem to zrobić tutaj. 998 01:13:53,470 --> 01:13:56,080 Zobacz, więc nie ocenia, że ​​odwołanie Historia 999 01:13:56,080 --> 01:14:00,520 bo to było już po punkcie oceny wyrażeń historii 1000 01:14:00,520 --> 01:14:02,720 gdy oceniano zmienną. 1001 01:14:02,720 --> 01:14:05,550 Więc to jest 1 efekt parsowania. 1002 01:14:05,550 --> 01:14:08,760 I znowu, wbudowane komendy nie są wykonywane w ten sam sposób. 1003 01:14:08,760 --> 01:14:11,230 Dobrze. Chodźmy do następnego tutaj. 1004 01:14:11,230 --> 01:14:16,060 To ma być 1 linia, ale to co ułatwia czytanie. 1005 01:14:19,130 --> 01:14:21,530 Co to robić? 1006 01:14:21,530 --> 01:14:28,640 Można przypomnieć, że możemy ocenić gwiazdki jako symbole wieloznaczne nazw plików, 1007 01:14:28,640 --> 01:14:33,890 i są jeszcze inne symbole wieloznaczne nazw plików jak znaku zapytania i wyrażeń wspornika. 1008 01:14:33,890 --> 01:14:39,000 Tego rodzaju oceny jest nazywany Obsługa masek. 1009 01:14:39,000 --> 01:14:46,290 ustawić noglob na początku tego polecenia mówi nie rób tego. 1010 01:14:46,290 --> 01:14:53,370 unset noglob mówi wrócić do robienia tego. 1011 01:14:53,370 --> 01:14:56,440 Należy pamiętać, że zestaw nie miałby glob ten efekt. 1012 01:14:56,440 --> 01:15:00,800 W języku potocznym, ustawić glob lub wyłączony noglob wydaje się być równoważne, 1013 01:15:00,800 --> 01:15:03,290 ale tutaj to nie jest. To jest wyłączony noglob. 1014 01:15:05,120 --> 01:15:07,910 Teraz tset. tset stanął na zestaw terminala. 1015 01:15:07,910 --> 01:15:11,840 To nie jest często używany, że teraz, ale zanim stały się dostępne z oknami systemy 1016 01:15:11,840 --> 01:15:15,760 i trzeba było jeden terminal, może trzeba określić typ. 1017 01:15:15,760 --> 01:15:18,700 A jeśli coś nadchodzi nad Ethernet lub sieci, 1018 01:15:18,700 --> 01:15:21,120 możesz powiedzieć, że to VT100. 1019 01:15:21,120 --> 01:15:26,630 VT100 jest swego rodzaju standardem w branży terminali. Pochodzi z terminala z rozkładem. 1020 01:15:26,630 --> 01:15:35,270 Jeśli po prostu zrobić dialup - zauważył? To idzie z powrotem drogi, co? 1021 01:15:35,270 --> 01:15:39,520 Więc jeśli tylko nie tset tutaj, 1022 01:15:39,520 --> 01:15:45,250 jeśli tylko zrobić tset, to resetowanie mój terminal, ale nic nie widział. 1023 01:15:45,250 --> 01:15:47,340 To tak naprawdę nie zmienia niczego. 1024 01:15:47,340 --> 01:15:48,620 -S 1025 01:15:49,900 --> 01:15:51,480 Ok. 1026 01:15:51,480 --> 01:15:53,350 setenv TERM xterm-color. 1027 01:15:53,350 --> 01:15:57,080 Wiemy już, że termin został ustalony w ten sposób, tak aby nie uległ zmianie. 1028 01:15:57,080 --> 01:15:58,860 To jest sposób, że chcemy to zrobić. 1029 01:15:58,860 --> 01:16:07,080 Ale zauważ, że to polecenie, tset-y, tylko wyjściowe polecenia te. To nie ich uruchomienia. 1030 01:16:07,080 --> 01:16:09,770 To nie te komendy, to wyjście im. 1031 01:16:09,770 --> 01:16:13,650 Tak to jest przeznaczone do wytwarzania polecenia, które zostaną uruchomione. 1032 01:16:13,650 --> 01:16:16,360 Pamiętacie komendy w tym pliku po prostu pokazał, że masz Q w nim. 1033 01:16:16,360 --> 01:16:18,910 Więc zróbmy to. 1034 01:16:18,910 --> 01:16:23,750 Q tłumi pewne wyjście, ale to nie ma znaczenia tutaj, jak widać. 1035 01:16:23,750 --> 01:16:27,980 Robię tylko to, że aby pokazać, że to nie miało znaczenia. 1036 01:16:27,980 --> 01:16:31,870 To jest w składni backquote. 1037 01:16:31,870 --> 01:16:35,340 Uwaga na backquote tutaj, backquote tutaj. 1038 01:16:35,340 --> 01:16:37,680 Jestem pomijając te rzeczy tutaj. 1039 01:16:37,680 --> 01:16:39,570 Są to przypadki mówi, co robić 1040 01:16:39,570 --> 01:16:42,050 w przypadku poszczególnych typów terminali - 1041 01:16:42,050 --> 01:16:45,400 Ethernet, sieć, dial-up, coś ty. 1042 01:16:45,400 --> 01:16:48,050 Nie ma znaczenia tutaj, ponieważ nie jesteśmy rzeczywiście robi żadnej z tych rzeczy. 1043 01:16:48,050 --> 01:16:49,720 Ja tylko ilustrujący komendy. 1044 01:16:49,720 --> 01:16:55,170 Jeśli zrobię to z backquote, co ja mam dostać? 1045 01:16:55,170 --> 01:17:00,210 Również zauważyć tutaj, że są wliczone w zestaw noglob i unset noglob, 1046 01:17:00,210 --> 01:17:02,630 tak te są obecnie zbędne w definicji. 1047 01:17:02,630 --> 01:17:05,380 Że nie zawsze była prawda, ale teraz są one zawarte w tym poleceniu. 1048 01:17:05,380 --> 01:17:08,890 Ale zobaczymy, co się stanie, jeśli to zrobić 1049 01:17:08,890 --> 01:17:12,570 i przejść do początku linii w urządzenia i to zrobić. 1050 01:17:14,380 --> 01:17:18,040 Ok, ustaw: Polecenie nie znalezione. To trochę dziwne, nie? 1051 01:17:18,040 --> 01:17:20,570 Zestaw jest dobrze znana komenda. To część skorupy. 1052 01:17:20,570 --> 01:17:24,040 ustaw: Polecenie nie znalezione? Dlaczego tak jest? 1053 01:17:24,040 --> 01:17:26,790 Hmm. Cóż, pomyślmy o tym. 1054 01:17:26,790 --> 01:17:31,100 To prowadzenie podstawienia polecenia backquote, 1055 01:17:31,100 --> 01:17:37,430 i że występuje w pewnej części sekwencji analizowania polecenia. 1056 01:17:37,430 --> 01:17:40,360 Zestaw jest wbudowane polecenie. 1057 01:17:40,360 --> 01:17:43,900 Tak do czasu, gdy robi to podstawienia polecenia, 1058 01:17:43,900 --> 01:17:48,280 to już dostał piłkę do punktu identyfikacji wbudowanych poleceń. 1059 01:17:48,280 --> 01:17:51,900 Tak więc zestaw traktuje jak gdyby polecenia w ścieżce. 1060 01:17:51,900 --> 01:17:55,440 Nie trzeba dodawać, że nie znajdzie go i pojawi się błąd. 1061 01:17:55,440 --> 01:17:59,300 Dobrze. Jest to przykład sekwencji analizowania. 1062 01:17:59,300 --> 01:18:01,460 A co zrobimy z tym? 1063 01:18:01,460 --> 01:18:04,800 Zauważ, to bardzo ciekawe komendy tutaj, eval. 1064 01:18:04,800 --> 01:18:06,530 Zastanawiam się, co to jest. 1065 01:18:06,530 --> 01:18:08,760 Jeśli spojrzeć na instrukcji - i niech tak zrobić 1066 01:18:08,760 --> 01:18:12,000 pokazać, jak skomplikowane są te podręczniki - 1067 01:18:12,000 --> 01:18:19,400 tcsh człowiek, zdezorientowany ręczny, znalezienie rzeczy tutaj nie jest łatwe ani. 1068 01:18:19,400 --> 01:18:31,850 Zaczynamy, eval Arg, więc możemy mieć 1 lub więcej argumentów 1069 01:18:31,850 --> 01:18:34,090 i tam jest lista rzeczy tam. 1070 01:18:34,090 --> 01:18:37,730 Traktuje argumenty, jak wejść do powłoki 1071 01:18:37,730 --> 01:18:43,600 i wykonuje polecenia, wynikające w kontekście obecnego powłoki. 1072 01:18:43,600 --> 01:18:46,900 To jest zwykle stosowany do wykonywania poleceń generowanych w wyniku komendy 1073 01:18:46,900 --> 01:18:51,310 lub zmienna podstawienie ponieważ parsowanie występuje przed tymi substytucji. 1074 01:18:51,310 --> 01:18:52,580 Bardzo dobrze. 1075 01:18:52,580 --> 01:18:54,740 A tu nawet odnoszą się do polecenia tset do użycia próbki 1076 01:18:54,740 --> 01:18:57,700 jak ten właśnie pokazałem. 1077 01:18:57,700 --> 01:19:00,440 Teraz muszę się okno z powrotem do użytecznego miejsca. 1078 01:19:03,150 --> 01:19:07,800 Chodźmy tutaj i zobaczymy, że eval służy tylko wcześniej. 1079 01:19:07,800 --> 01:19:14,010 Zobaczmy więc, co się stanie, jeśli założymy - zaczynamy się strzałkami do tego polecenia 1080 01:19:14,010 --> 01:19:20,940 i sterowania do początku, eval. 1081 01:19:20,940 --> 01:19:22,850 Ok, więc to działa. 1082 01:19:22,850 --> 01:19:26,440 Gdy to zrobisz eval, trwa to, co przychodzi po niego i sprawia, że ​​polecenie. 1083 01:19:26,440 --> 01:19:29,460 Pozwala to zasadniczo przetworzyć je dwukrotnie. 1084 01:19:29,460 --> 01:19:33,710 Sekcja tutaj działa to polecenie wewnątrz małe cudzysłowy, 1085 01:19:33,710 --> 01:19:36,210 dostaje wyjście. 1086 01:19:36,210 --> 01:19:42,850 Wyjście ma być uruchamiane jako tych poleceń tu jak te 1087 01:19:42,850 --> 01:19:45,890 w tym jednego i tego. 1088 01:19:45,890 --> 01:19:50,100 Więc te polecenia są teraz tutaj, w tej kolejności, 1089 01:19:50,100 --> 01:19:58,950 ale te są wbudowane polecenia i nie może uzyskać je od razu. 1090 01:19:58,950 --> 01:20:06,440 Więc idziemy do eval, eval typów, które się, na nowo rozpoczyna całą sprawę, i to działa. 1091 01:20:06,440 --> 01:20:18,460 Przykładem obu backquoting, eval, analizowania, konsekwencje analizowania, 1092 01:20:18,460 --> 01:20:21,910 i polecenia, które jest chyba bardzo mało przydatne dla Ciebie w dzisiejszych czasach. 1093 01:20:21,910 --> 01:20:25,540 Ok. Dobrze, umask. 1094 01:20:25,540 --> 01:20:32,160 Przyjrzyjmy się tej komendy tutaj, umask 022. Zastanawiam się, co to jest. 1095 01:20:32,160 --> 01:20:38,420 Po prostu wpisz umask nic po nim. 22. Ok. 1096 01:20:38,420 --> 01:20:44,350 022 i zrobić to ponownie. 1097 01:20:44,350 --> 01:20:48,580 Jak można się domyślić, umask bez argumentów mówi, aktualną maskę; 1098 01:20:48,580 --> 01:20:51,760 umask z argumentów sprawia, że ​​to, ale to był jeden już miałem. 1099 01:20:51,760 --> 01:20:53,800 Co oznacza 022 oznacza? 1100 01:21:01,650 --> 01:21:07,080 Są tutaj Zabezpieczenia dla pliku. 1101 01:21:07,080 --> 01:21:11,440 Określają, kto może czytać i pisać lub uruchomić plik. 1102 01:21:11,440 --> 01:21:16,560 Ogrodzenia są nazywane również uprawnienia. 1103 01:21:16,560 --> 01:21:21,390 R oznacza odczytu, W dla zapisu, 1104 01:21:21,390 --> 01:21:25,500 i x, który jest w nim obecna, oznacza wykonania. 1105 01:21:25,500 --> 01:21:27,260 Istnieją 3 kategorie tam. 1106 01:21:27,260 --> 01:21:33,540 Ostatnie 3 elementy w kategorii użytkowników. Te odnoszą się do mnie, użytkownika. 1107 01:21:33,540 --> 01:21:36,870 Te 3 tutaj odnoszą się do grupy. 1108 01:21:36,870 --> 01:21:41,590 1 plik należy do grupy, użytkownik może należeć do wielu grup, 1109 01:21:41,590 --> 01:21:47,150 a jeżeli użytkownik jest z grupy, do której należy ten pliku 1110 01:21:47,150 --> 01:21:51,090 to te zabezpieczenia będą się do niego stosować, jeśli on nie jest łatwy. 1111 01:21:51,090 --> 01:21:54,230 A ten jest każdy inny. 1112 01:21:55,540 --> 01:21:57,690 Kategorie te wzajemnie się wykluczają. 1113 01:21:57,690 --> 01:21:59,750 Zabezpieczenia użytkowników się do niego stosować, 1114 01:21:59,750 --> 01:22:03,780 Zabezpieczenia Grupa stosuje się do członków grupy innych niż użytkownik, 1115 01:22:03,780 --> 01:22:08,110 i inne zabezpieczenia stosuje się tylko do osób innych niż użytkownik i członków grupy. 1116 01:22:08,110 --> 01:22:12,320 Jeśli istnieje r lub AW lub x, oznacza to, że ochrona jest przyznawana. 1117 01:22:12,320 --> 01:22:13,950 Jeśli jest myślnik, oznacza to, że nie jest. 1118 01:22:13,950 --> 01:22:16,690 Tam faktycznie są inne rzeczy, które mogą być umieszczone w tutaj oprócz tych, 1119 01:22:16,690 --> 01:22:18,350 którym nie będę się do teraz. 1120 01:22:18,350 --> 01:22:24,450 Umask określa domyślny dla plików utworzonych. 1121 01:22:24,450 --> 01:22:28,580 I jako maska, w zasadzie mówi, że bity nie ustawione. 1122 01:22:28,580 --> 01:22:30,450 W jaki sposób to się bity? 1123 01:22:30,450 --> 01:22:33,240 Jeśli uważasz, że każdy z nich jako liczba ósemkowa, 1124 01:22:33,240 --> 01:22:42,120 to 1s bit jest 2s, to 4S. 1125 01:22:42,120 --> 01:22:45,840 Od 0 do 7, tak 1126 01:22:45,840 --> 01:22:51,770 opisze co jest kombinacja r., W, a x jest masz do tych 3 1127 01:22:51,770 --> 01:22:53,710 i podobna liczba dla nich i dla nich. 1128 01:22:53,710 --> 01:23:12,030 Więc 022 dla innych oznacza 0, 2 dla grupy, 2 dla użytkownika. 1129 01:23:12,030 --> 01:23:15,870 Ale to jest maska. Maska jest to, czego nie mam. 1130 01:23:19,380 --> 01:23:20,610 Przykro mi. Właśnie dałem ci rzeczy w niewłaściwej kolejności. 1131 01:23:20,610 --> 01:23:25,620 To pierwsze 3. Te 3 to użytkownik, to 3 są grupy, te 3 są inne. 1132 01:23:25,620 --> 01:23:27,970 Przepraszam, że dałem ci to w złej kolejności. 1133 01:23:27,970 --> 01:23:31,910 0, co jest pierwszym z nich, nie wyświetla wartość 1134 01:23:31,910 --> 01:23:35,430 ale jeśli numer nie istnieje, to jest 0. 1135 01:23:35,430 --> 01:23:38,370 Oznacza to, że wszystkie 3 z nich będą mogły. 1136 01:23:38,370 --> 01:23:41,550 Zauważ, że w tym konkretnym jednym x nie jest dozwolone. 1137 01:23:41,550 --> 01:23:44,090 Powodem jest to, że powłoka jest w stanie określić 1138 01:23:44,090 --> 01:23:46,260 czy plik powinien być wykonany, czy nie. 1139 01:23:46,260 --> 01:23:49,800 Ponieważ nie jest to plik wykonywalny, nie ustawić X. 1140 01:23:49,800 --> 01:23:54,000 W 2 oznacza, że ​​pozwolenie na pisanie, drugą kategorię tutaj, 1141 01:23:54,000 --> 01:23:56,500 jeden w środku, jest zabroniony. 1142 01:23:56,500 --> 01:23:58,500 Więc jeszcze raz, to są rzeczy, że odmówiono. 1143 01:23:58,500 --> 01:24:02,080 Cóż, x jest dozwolone, ale to nie jest tutaj, bo to nie jest wykonywalny 1144 01:24:02,080 --> 01:24:04,260 podobnie dla innych. 1145 01:24:04,260 --> 01:24:08,880 Więc to jest wspólne umask. 1146 01:24:08,880 --> 01:24:14,630 Innym popularnym jest 700 - dać sobie wszystko i nikt inny nic. 1147 01:24:14,630 --> 01:24:17,040 A są jeszcze inne możliwości. 1148 01:24:21,340 --> 01:24:27,110 Wrócę do tego. Korzystanie z historii można przeszukiwać powrotem do tego, DSW tam. 1149 01:24:27,110 --> 01:24:30,210 Ok. Więc, to są muszle. 1150 01:24:30,210 --> 01:24:36,020 Bash, właściciel, który jest konto systemowe, może zrobić wszystko. 1151 01:24:36,020 --> 01:24:41,210 Grupa i wszyscy mogą czytać lub nie, ale nie pisać wykonać. 1152 01:24:41,210 --> 01:24:44,570 Ten nawet nie pozwolić właściciel napisać do niego. 1153 01:24:44,570 --> 01:24:46,460 Jeśli właściciel chciał napisać do niego, konta systemowego, 1154 01:24:46,460 --> 01:24:48,020 musiałby najpierw zmienić ochronę. 1155 01:24:48,020 --> 01:24:53,940 Ale znowu, umask ustawia domyślne poprzez ukrywanie go, 1156 01:24:53,940 --> 01:24:57,160 wskazując bity, które nie zostaną wymienione. 1157 01:24:57,160 --> 01:25:04,380 Jest to zazwyczaj w jednym z plików inicjowania, co jest. Cshrc dla powłoki C 1158 01:25:04,380 --> 01:25:07,500 lub. Profil muszli typu Bourne'a. 1159 01:25:07,500 --> 01:25:12,520 Może to być w innym miejscu również wtedy, gdy istnieją inne formaty inicjalizacji systemu. 1160 01:25:12,520 --> 01:25:14,610 W każdym razie, to jest umask. 1161 01:25:14,610 --> 01:25:18,180 Jest coś, co trochę dziwne tutaj, 1162 01:25:18,180 --> 01:25:22,800 i to jest, dlaczego jest jedno polecenie do tego? 1163 01:25:22,800 --> 01:25:28,690 Jeśli ja piszę to, chciałbym zrobić to zmienna, umask = jakaś wartość. 1164 01:25:28,690 --> 01:25:31,100 Dlaczego jest cała komenda tylko do tego celu? 1165 01:25:31,100 --> 01:25:34,560 Powodem jest to po prostu wraca do początków Uniksa. 1166 01:25:34,560 --> 01:25:41,050 Unix był jakiś projekt programistyczny w Bell Labs w roku 1970. 1167 01:25:41,050 --> 01:25:42,610 Ludzie po prostu się razem z programem. 1168 01:25:42,610 --> 01:25:45,290 Oni nigdy nie zamierzał, aby stało się na całym świecie system operacyjny. 1169 01:25:45,290 --> 01:25:47,250 Różni ludzie pisali różne części bez myślenia bardzo 1170 01:25:47,250 --> 01:25:49,790 w jaki sposób mają zamiar być stosowane - raczej pobieżnie. 1171 01:25:49,790 --> 01:25:53,290 I przyszedł razem tak, i to jeszcze jak, że w niektórych aspektach. 1172 01:25:53,290 --> 01:25:57,930 Tak, że odzwierciedla historię, i nadal istnieją te niespójności i dziwne elementy niego. 1173 01:25:57,930 --> 01:26:00,750 Ok. Następny tutaj. 1174 01:26:08,170 --> 01:26:11,000 Jak pisałem wcześniej, C-shell nie jest używana bardzo do programowania, 1175 01:26:11,000 --> 01:26:12,420 mimo to tylko możliwe. 1176 01:26:12,420 --> 01:26:15,080 To wykonuje się wolniej, ponownie kompromis pomiędzy interaktywnym użyciem 1177 01:26:15,080 --> 01:26:17,820 który ma więcej niż prędkość przetwarzania zaangażowany, 1178 01:26:17,820 --> 01:26:20,710 które można zrobić bez przetwarzania. 1179 01:26:20,710 --> 01:26:28,320 Dodatkowe cechy dodane do powłoki Bourne przez Korna i powłoki Bourne-again 1180 01:26:28,320 --> 01:26:32,120 nie wydaje się ich spowolnić, a ja nie wiem, dlaczego tak jest. 1181 01:26:32,120 --> 01:26:36,310 To może być tylko lepiej, programowanie, ale nie jestem w stanie wiedzieć. 1182 01:26:36,310 --> 01:26:40,420 Przyspieszyć tutaj rzeczywiście nie jest taka wielka sprawa, choć nie są one wymienione. 1183 01:26:40,420 --> 01:26:43,690 Powodem jest to, że skrypty powłoki rzeczywiście się dość szybko. 1184 01:26:43,690 --> 01:26:46,450 Jeśli istnieje wiele poleceń, jak w programie kalkulacyjnym, 1185 01:26:46,450 --> 01:26:49,110 prawdopodobnie nie będzie to zrobić w skrypcie powłoki. 1186 01:26:49,110 --> 01:26:51,450 Operacje są dość proste i jednoznaczne. 1187 01:26:51,450 --> 01:26:53,960 Te, które mam doświadczenie, które są zbyt powolne 1188 01:26:53,960 --> 01:26:57,110 obejmować wielokrotne zastosowania wolnych poleceń. 1189 01:26:57,110 --> 01:27:00,480 Wcześniej wspomniałem edytora strumienia sed. Że polecenie jest powolny. 1190 01:27:00,480 --> 01:27:03,760 Jeśli wykonasz seda wiele razy, dostaniesz powolne skrypt, ale nie jest to powłoka to powoli. 1191 01:27:03,760 --> 01:27:07,920 Działa to w powłoki Bourne'a nie będzie się znacznie szybciej niż uruchomienie go w C-shell, 1192 01:27:07,920 --> 01:27:10,070 choć to być może niektóre zalety tam. 1193 01:27:10,070 --> 01:27:12,760 Dodatkowe funkcje programowania, z drugiej strony, 1194 01:27:12,760 --> 01:27:17,920 są istotne powody, by użyć pocisków typu Bourne'a. 1195 01:27:17,920 --> 01:27:21,390 C-shell ma dziwne funkcje do niego - 1196 01:27:21,390 --> 01:27:25,250 Fakt, że nie wiem, czy zmienna jest zmienną powłoki lub zmienna. 1197 01:27:25,250 --> 01:27:27,440 To może być bardzo mylące. 1198 01:27:27,440 --> 01:27:32,170 To nie jest tak łatwo pisać 1199 01:27:32,170 --> 01:27:35,930 tylko w oparciu o doświadczenia z programowaniem w innych językach. 1200 01:27:35,930 --> 01:27:41,350 Myślę, że może się okazać, pociski typu Bourne'a bardziej zgodne z doświadczeniem. 1201 01:27:43,730 --> 01:27:49,270 Niektóre skrypty, chociaż, może być tysiące linii długości. 1202 01:27:49,270 --> 01:27:52,450 Te, które widziałem są używane do łatania systemów operacyjnych. 1203 01:27:52,450 --> 01:27:55,450 Te mogą wykonywać bardzo powoli, ale nie zabrakło tych, bardzo często. 1204 01:27:55,450 --> 01:27:57,180 To tylko wtedy, gdy robisz łatanie, 1205 01:27:57,180 --> 01:27:59,450 i to tylko administrator systemu, który robi te rzeczy, 1206 01:27:59,450 --> 01:28:01,840 tak, to naprawdę nie jest wiele kwestii. 1207 01:28:01,840 --> 01:28:06,980 Te, które są setki linii długo faktycznie wykonać dość szybko. 1208 01:28:06,980 --> 01:28:10,540 Wspominając to tutaj, co to są te ulepszenia? 1209 01:28:10,540 --> 01:28:13,170 Już wspomniałem kilka z nich - macierze, obliczenia, 1210 01:28:13,170 --> 01:28:20,540 z $ () wyrażenie dla obliczeń w basha, 1211 01:28:20,540 --> 01:28:23,050 inny rodzaj podstawienia polecenia. 1212 01:28:23,050 --> 01:28:25,360 Istnieją różne rodzaje poleceń testowych 1213 01:28:25,360 --> 01:28:29,350 przez które można zrobić testy warunkowe na istnieniu pliku lub innych rzeczy. 1214 01:28:29,350 --> 01:28:34,790 Trwać tutaj, to polecenie tutaj. 1215 01:28:34,790 --> 01:28:38,480 Co to zrobić i dlaczego ktoś go używać? 1216 01:28:51,170 --> 01:28:52,990 printenv nazwazmiennej. 1217 01:28:52,990 --> 01:28:56,130 Wiemy, co printenv robi. Opowiada nam wartość zmiennej. 1218 01:28:56,130 --> 01:29:00,850 I printenv nazwazmiennej nie powie nam bardzo wiele, ponieważ jest zmienna taka nie. 1219 01:29:03,550 --> 01:29:05,120 Puste. 1220 01:29:05,120 --> 01:29:08,440 Ale dajmy mu coś znaczącego. 1221 01:29:13,420 --> 01:29:16,800 Że tam nie ma albo. Ok. Chyba nigdy zdefiniowane. 1222 01:29:16,800 --> 01:29:18,020 Po prostu sprawdź mój środowiska. 1223 01:29:18,020 --> 01:29:20,900 Jest to kolejne polecenie, w którym można sprawdzić swoje środowisko. 1224 01:29:20,900 --> 01:29:24,470 Jest stary, dobry redaktor, jeden widzieliśmy wcześniej. 1225 01:29:42,360 --> 01:29:44,120 Co to robić? 1226 01:29:44,120 --> 01:29:48,050 Tutaj mamy wyraz backquote. 1227 01:29:48,050 --> 01:29:50,370 Pamiętaj, to jest C-shell. 1228 01:29:50,370 --> 01:29:54,850 Więc printenv REDAKTOR da nam wartość REDAKCJI. To vi. 1229 01:29:54,850 --> 01:29:59,790 I to będzie ustawić tę wartość do zmiennej A, polecenia set. 1230 01:29:59,790 --> 01:30:02,860 Więc teraz, jeśli mam zrobić echo $ a, rozumiem vi. 1231 01:30:02,860 --> 01:30:05,850 Nie wydaje się to strasznie przydatne. 1232 01:30:05,850 --> 01:30:08,080 Jednak faktycznie ma jakiś cel. 1233 01:30:08,080 --> 01:30:12,260 Ponieważ nie wiemy, czy zmienna jest zmienną powłoki lub zmienna 1234 01:30:12,260 --> 01:30:16,280 za pomocą składni oceny znak dolara, możemy użyć printenv 1235 01:30:16,280 --> 01:30:19,460 aby upewnić się, że jest to zmienna. 1236 01:30:19,460 --> 01:30:22,550 Więc jeśli nie było powłoki zmienna edytora, by nie dostał go. 1237 01:30:22,550 --> 01:30:25,640 To działa tylko z zmiennej środowiskowej. 1238 01:30:25,640 --> 01:30:28,370 Jeżeli były zmienne powłoki i chciałem jej wartości, 1239 01:30:28,370 --> 01:30:29,980 Będę musiał znaleźć inny sposób, aby to zrobić. 1240 01:30:29,980 --> 01:30:33,530 Jednym sposobem na to będzie w ten zestaw i rur. 1241 01:30:33,530 --> 01:30:36,130 Jest to jeden z metaznakami znaków specjalnych. 1242 01:30:36,130 --> 01:30:38,370 Wysyła sygnał wyjściowy zestaw do czegoś innego. 1243 01:30:38,370 --> 01:30:40,650 Zobaczmy, co możemy tam znaleźć. 1244 01:30:40,650 --> 01:30:49,340 Nic. Ok. Zobaczymy, co tam jest wszystko razem. 1245 01:30:49,340 --> 01:30:53,580 To było echo_style, jeden wcześniej wspomniałem. Dobra, zróbmy to. 1246 01:31:02,460 --> 01:31:06,230 Pamiętam, że już wcześniej wspomniano, echo_style 1247 01:31:06,230 --> 01:31:08,410 określa sposób będzie działać polecenie echo. 1248 01:31:08,410 --> 01:31:10,940 BSD oznacza Distribution Berkeley Standard. 1249 01:31:10,940 --> 01:31:13,200 To Berkeley Unix od 1970 roku. 1250 01:31:13,200 --> 01:31:16,630 To jeden ze sposobów, że echo można uruchomić. 1251 01:31:16,630 --> 01:31:22,310 Ustawianie echo_style do tej wartości w TC-shell spowoduje echa zachowywać się w ten sposób. 1252 01:31:22,310 --> 01:31:27,670 Tak ustawione, że nie, ale ustawione dostaje tylko zmiennych powłoki. 1253 01:31:27,670 --> 01:31:35,430 Nie byłoby znaleźć wydawcę, który nie jest zmienną powłoki. 1254 01:31:36,870 --> 01:31:38,050 Nic. 1255 01:31:38,050 --> 01:31:39,660 Więc to jest jeden ze sposobów na ich odróżnienie. 1256 01:31:39,660 --> 01:31:42,000 Ale fakt, że trzeba przejść przez jakiś dziwny poleceniem, że 1257 01:31:42,000 --> 01:31:45,500 odróżnić zmiennych powłoki i zmienne środowiska 1258 01:31:45,500 --> 01:31:49,970 przedstawia rodzaj niepraktyczne charakteru C powłoki dla niektórych zastosowań. 1259 01:31:52,290 --> 01:31:57,960 A teraz, ostatni i być może najmniej, jest to, że strony man. 1260 01:31:57,960 --> 01:32:03,190 Ci, którzy mogą wiedzieć, człowiek jest krótka komenda dla instrukcji. 1261 01:32:03,190 --> 01:32:08,610 Strony man dla powłok są trudne do odczytania. Są bardzo długo. 1262 01:32:08,610 --> 01:32:14,060 Są one organizowane w sposób, który może spowodować, że trudno jest znaleźć to, czego szukasz. 1263 01:32:14,060 --> 01:32:15,980 Więc jeśli szukasz czegoś z celów, 1264 01:32:15,980 --> 01:32:20,050 może nie wiedzieć, jeśli celem jest zmienna powłoki lub coś innego, 1265 01:32:20,050 --> 01:32:21,630 więc może nie wiedzieć, gdzie go szukać. 1266 01:32:21,630 --> 01:32:25,030 Możesz zajrzeć na różnych strunach, ale struny są często powtarzane. 1267 01:32:25,030 --> 01:32:27,640 Więc jest to na ogół trudne do odczytania. 1268 01:32:27,640 --> 01:32:33,810 Po prostu spojrzał na stronie man TC-shell trochę wcześniej, aby znaleźć polecenia eval. 1269 01:32:33,810 --> 01:32:36,610 Niektóre rzeczy szybciej. 1270 01:32:36,610 --> 01:32:38,860 Jednym ze sposobów jest poszukiwanie łańcucha. 1271 01:32:38,860 --> 01:32:40,360 Możesz używać pager. 1272 01:32:40,360 --> 01:32:49,080 Pager ma ukośnik spojrzeć na polecenie lub ciąg wewnątrz działania pagera. 1273 01:32:49,080 --> 01:32:52,830 Człowiek domyślnie użyje pagery, albo być bardziej lub mniej. 1274 01:32:52,830 --> 01:32:56,560 Nie wiem, czy jesteś zaznajomiony z tych, ale te pliki mogą pokazać krok po kroku. 1275 01:32:56,560 --> 01:33:00,550 Używam MNIEJ, aby wyświetlić te konkretne pliki Mamy tutaj. 1276 01:33:00,550 --> 01:33:03,300 Możesz szukać wewnątrz tam. 1277 01:33:03,300 --> 01:33:04,880 Możesz spróbować użyć innych ciągów wyszukiwania. 1278 01:33:04,880 --> 01:33:08,420 Się strony w różnych systemach operacyjnych mogą nie być takie same. 1279 01:33:08,420 --> 01:33:11,130 Mogą być oddzielne strony dla csh i tcsh. 1280 01:33:11,130 --> 01:33:14,500 Oni nie są na komputerach Mac, ale mogą one być, jeśli to są oddzielne komendy. 1281 01:33:14,500 --> 01:33:19,000 Jeśli sh nie nazwać Bash, zapewne byłaby oddzielna strona człowieka. 1282 01:33:19,000 --> 01:33:25,820 Niektóre systemy mają oddzielne strony man tylko dla C-powłoka wbudowanych poleceń. 1283 01:33:25,820 --> 01:33:30,250 Czasami, jeśli chcesz przeczytać opis wbudowanego polecenia 1284 01:33:30,250 --> 01:33:35,350 to również na drodze, jak echo, trzeba przeczytać stronę man w tym poleceniu na echo 1285 01:33:35,350 --> 01:33:37,610 aby ustalić, jak to będzie działać jako wbudowanego polecenia 1286 01:33:37,610 --> 01:33:39,760 nawet jeśli nie dzwonisz wbudowanego polecenia. 1287 01:33:41,630 --> 01:33:46,090 To wadą systemu operacyjnego w ogóle, się nie tylko na powłokach 1288 01:33:46,090 --> 01:33:50,710 choć na muszli w szczególności strony man są dość długie, 1289 01:33:50,710 --> 01:33:56,180 częściowo dlatego, że przydatne funkcje zostały dodane do nich, które mogą być dodatnie. 1290 01:33:56,180 --> 01:34:00,290 Ok. Czy są jakieś pytania? Wszelkie tematy, które chcesz przywołać? 1291 01:34:00,290 --> 01:34:03,390 Wszystko, co istotne tutaj? 1292 01:34:04,540 --> 01:34:07,100 Cóż, to było bardzo miłe rozmowy z wami wszystkimi. 1293 01:34:07,100 --> 01:34:09,690 Mam nadzieję, że coś z tego seminarium 1294 01:34:09,690 --> 01:34:13,080 , które będą przydatne dla Ciebie w przyszłych przedsięwzięciach. 1295 01:34:17,330 --> 01:34:19,000 [CS50.TV]