1 00:00:00,000 --> 00:00:05,060 >> [MUSIK SPELA] 2 00:00:05,060 --> 00:00:05,890 >> DOUG LLOYD: OK. 3 00:00:05,890 --> 00:00:08,680 Så låt oss tala om hur man använda Linux kommandorad. 4 00:00:08,680 --> 00:00:11,860 Nu CS50 IDE, eller Faktum är att även en CS50 apparat, 5 00:00:11,860 --> 00:00:15,210 om du är bekant med det, eller du tar en äldre version av CS50, 6 00:00:15,210 --> 00:00:17,420 är en molnbaserad maskin som löper Ubuntu, 7 00:00:17,420 --> 00:00:20,259 som är en av de många smaker av operativsystemet Linux. 8 00:00:20,259 --> 00:00:22,300 Linux operativsystem är gynnas av programmerare, 9 00:00:22,300 --> 00:00:25,690 eftersom det är bara kallare, eller hur? 10 00:00:25,690 --> 00:00:29,170 >> Många moderna Linux-distributioner har grafiska användargränssnitt, 11 00:00:29,170 --> 00:00:33,710 som vi också kallar GUI, G-U-I, gör det lätt mus-baserade navigering, 12 00:00:33,710 --> 00:00:36,920 som du förmodligen bekant med, Om du är en Windows eller Mac-användare, 13 00:00:36,920 --> 00:00:39,961 flytta runt musen, dubbelklicka på ikonen, och så vidare. 14 00:00:39,961 --> 00:00:42,210 Fortfarande dock som programmerare, och även om IDE 15 00:00:42,210 --> 00:00:44,800 innehåller förmågan att göra några grafiskt användargränssnitt 16 00:00:44,800 --> 00:00:47,400 grejer, klicka, och dra, och allt det där, 17 00:00:47,400 --> 00:00:50,197 du fortfarande använda din terminalfönster ganska ofta. 18 00:00:50,197 --> 00:00:52,280 Och du kan göra många av de samma uppgifter som du kan 19 00:00:52,280 --> 00:00:53,905 göra med en mus med tangentbordskommandon. 20 00:00:53,905 --> 00:00:56,821 Och vi kommer att prata lite om vad några av dessa kommandon 21 00:00:56,821 --> 00:00:58,050 är just nu. 22 00:00:58,050 --> 00:01:02,490 >> Nu kan dessa kommandon användas på någon Unix-baserade operativsystem 23 00:01:02,490 --> 00:01:06,790 systemet, som omfattar Linux, men även Mac OS. 24 00:01:06,790 --> 00:01:12,930 Om du öppnar Terminal på din Mac, Du kan använda dessa exakta kommandon. 25 00:01:12,930 --> 00:01:15,705 Windows har också Kommando Snabb, men en del av de kommandon 26 00:01:15,705 --> 00:01:17,871 är något annorlunda, så det faktiskt inte fungerar, 27 00:01:17,871 --> 00:01:20,080 eftersom Windows är inte ett Unix-baserade system. 28 00:01:20,080 --> 00:01:22,620 >> Så låt oss ta en titt på några av dessa Linux kommandon. 29 00:01:22,620 --> 00:01:26,100 Den första som du kommer förmodligen använda en hel del är ls. 30 00:01:26,100 --> 00:01:30,410 Det är ett gement l, följt av en gemener s, vilket är en förkortning av listan. 31 00:01:30,410 --> 00:01:33,720 Och vad kommandot listan gör det ger dig en avläsning av alla filer 32 00:01:33,720 --> 00:01:35,670 och mappar i den aktuella katalogen. 33 00:01:35,670 --> 00:01:39,430 Så du kan se allt du kan komma till från där du befinner dig. 34 00:01:39,430 --> 00:01:41,545 >> Så jag har öppnat upp här CS50 IDE. 35 00:01:41,545 --> 00:01:44,540 Och jag kommer att zooma in i en sekund för att ge dig en närmare titt, 36 00:01:44,540 --> 00:01:47,240 men här är den breda bilden av vad IDE ser ut. 37 00:01:47,240 --> 00:01:49,580 Till vänster kan du se att vi har ett filträd, som du förmodligen 38 00:01:49,580 --> 00:01:52,663 bekant med, dubbelklicka, och filer och mappar och allt det där. 39 00:01:52,663 --> 00:01:54,694 Så det är fortfarande kvar i CS50 apparaten. 40 00:01:54,694 --> 00:01:57,860 I centrum i toppen är där du är kommer att skriva koden, en gång 41 00:01:57,860 --> 00:01:58,960 du klickar på en fil. 42 00:01:58,960 --> 00:02:00,900 Och längst ner, vi har ett terminalfönster, 43 00:02:00,900 --> 00:02:04,040 som är där vi kan utföra dessa terminalkommandon. 44 00:02:04,040 --> 00:02:07,460 >> Jag kommer att zooma in och chef över här, bara 45 00:02:07,460 --> 00:02:12,360 att visa er att, faktiskt, jag kan klicka på dessa filer och mappar. 46 00:02:12,360 --> 00:02:17,010 Så klart, där jag är närvarande, har jag två mappar, så kallade pset0 och pset1, 47 00:02:17,010 --> 00:02:20,520 och tre filer, som kallas Hej, kallade en hej.c, 48 00:02:20,520 --> 00:02:22,870 och en som heter hello.txt. 49 00:02:22,870 --> 00:02:27,100 >> Så låt oss flytta ner till terminalen fönstret och få en närmare titt. 50 00:02:27,100 --> 00:02:31,010 Så vi bara pratade, återigen, om faktum att vi har tre filer och två 51 00:02:31,010 --> 00:02:32,970 mappar i den aktuella katalogen. 52 00:02:32,970 --> 00:02:37,080 Om jag skriver ls, vilket i sin tur är kommandot till listan 53 00:02:37,080 --> 00:02:40,870 innehållet i den nuvarande katalog, och sedan jag slog Enter, 54 00:02:40,870 --> 00:02:47,220 titta vad jag ser, hej, hej.c, hello.txt, pset0 och pset1. 55 00:02:47,220 --> 00:02:49,620 >> pset0 och pset1 är färgade blått, för att indikera 56 00:02:49,620 --> 00:02:52,420 för er att de är kataloger att vi kunde gå in. 57 00:02:52,420 --> 00:02:54,503 Och vi kommer att lära sig lite lite om hur man navigerar 58 00:02:54,503 --> 00:02:56,290 i kataloger i en minut. 59 00:02:56,290 --> 00:03:00,920 Och allt annat är färgad svart, om det är en textfil eller en källkod 60 00:03:00,920 --> 00:03:03,590 fil, och grönt, om Det är en körbar fil. 61 00:03:03,590 --> 00:03:06,367 Så klart, betyder det att jag kunde köra ett program som heter, hej. 62 00:03:06,367 --> 00:03:07,950 Det är vad den gröna där betyder. 63 00:03:07,950 --> 00:03:10,080 Men i grund och botten, skriva ls-kommandot har tillåtit 64 00:03:10,080 --> 00:03:13,470 mig att titta på allt som existerar i min nuvarande katalog, som 65 00:03:13,470 --> 00:03:17,940 matchar vad vi ser här, i grafisk visning av densamma. 66 00:03:17,940 --> 00:03:19,940 Nästa kommando du kommer förmodligen använda en hel del 67 00:03:19,940 --> 00:03:24,792 är cd, gemener c, gemener d, vilket är en förkortning för förändring katalog. 68 00:03:24,792 --> 00:03:27,500 Detta gör det möjligt för oss att göra vad jag var talar om en sekund sedan, som 69 00:03:27,500 --> 00:03:31,150 är att navigera mellan kataloger på kommandot 70 00:03:31,150 --> 00:03:33,700 linje, i motsats till dubbelklicka på mappar. 71 00:03:33,700 --> 00:03:37,250 Så om vi skriver cd och sedan namnet på en katalog, 72 00:03:37,250 --> 00:03:40,890 vi kan få in den katalogen. 73 00:03:40,890 --> 00:03:44,680 >> Som en sidoreplik, vet att namnet av den aktuella katalogen är alltid 74 00:03:44,680 --> 00:03:48,670 punkt, och namnet på katalogen en nivå ovanför där vi är nu, 75 00:03:48,670 --> 00:03:54,820 som är namnet på mappen som vår mappen, pricka, dot-- 76 00:03:54,820 --> 00:03:56,851 eller som vår mappen är prick, pricka. 77 00:03:56,851 --> 00:03:59,350 Och om du någonsin nyfiken namnet på din katalog, 78 00:03:59,350 --> 00:04:03,430 Du kan skriva pwd, som står för närvarande arbetskatalogen. 79 00:04:03,430 --> 00:04:06,827 Vi tar en titt på alla dessa nu, genom att väg tillbaka till CS50 IDE. 80 00:04:06,827 --> 00:04:08,160 Så jag är tillbaka i min arbetsyta nu. 81 00:04:08,160 --> 00:04:11,930 Och jag ska zooma in igen på terminal, så att vi kan ta en titt 82 00:04:11,930 --> 00:04:14,209 på att flytta runt i IDE. 83 00:04:14,209 --> 00:04:16,250 Så jag kommer att lista innehållet i min katalog 84 00:04:16,250 --> 00:04:19,220 igen, bara för att slipas oss där vi är. 85 00:04:19,220 --> 00:04:21,740 Så om jag skriver ls, som är listan igen, 86 00:04:21,740 --> 00:04:24,160 Jag ser att jag kan komma till pset0 och pset1. 87 00:04:24,160 --> 00:04:26,420 De är de kataloger Jag kan komma till härifrån. 88 00:04:26,420 --> 00:04:30,400 Jag vet att eftersom IDE ger mig en ledtråd genom att färga dem blå. 89 00:04:30,400 --> 00:04:33,295 >> Låt oss säga att jag vill komma in i mitt pset1 katalog, 90 00:04:33,295 --> 00:04:35,310 eftersom jag jobbar på problemet set 1. 91 00:04:35,310 --> 00:04:41,380 Jag kan skriva cd-- igen, kort för ändra directory-- utrymme, pset1. 92 00:04:41,380 --> 00:04:43,334 Och om jag slog in, ser vad som sker. 93 00:04:43,334 --> 00:04:45,000 Det ser inte ut som en hel del har hänt. 94 00:04:45,000 --> 00:04:50,510 Men om man tittar på prompten det nu säger mig att jag är i ~ / arbetsyta / pset1. 95 00:04:50,510 --> 00:04:55,510 Jag har navigerat i pset1 mapp som var i min arbetsyta. 96 00:04:55,510 --> 00:05:00,560 >> Och om jag skriver ls, ser jag några olika saker här, eller hur? 97 00:05:00,560 --> 00:05:03,810 Detta är inte samma sak lista som jag såg tidigare. 98 00:05:03,810 --> 00:05:05,350 Jag har navigerat in pset1. 99 00:05:05,350 --> 00:05:08,560 Och så nu när jag skriver ls, jag få inom ramen för vad kan jag 100 00:05:08,560 --> 00:05:12,600 se inifrån pset1 mappen. 101 00:05:12,600 --> 00:05:16,056 >> Nu, jag kommer att skriva kontroll l, vilket bara tömmer skärmen. 102 00:05:16,056 --> 00:05:18,180 Och jag kommer att lista innehållet i katalogen 103 00:05:18,180 --> 00:05:18,880 igen, bara så att du kan se. 104 00:05:18,880 --> 00:05:20,730 Jag ville bara göra det till rensa ut en del av de saker 105 00:05:20,730 --> 00:05:22,521 att du såg nere och för att förhindra detta 106 00:05:22,521 --> 00:05:24,660 från att gå för långt ner utom räckhåll. 107 00:05:24,660 --> 00:05:28,440 >> Nu, sade jag tidigare att, om jag vill för att navigera till den aktuella katalogen, 108 00:05:28,440 --> 00:05:31,580 Jag kan skriva cd utrymme dot. 109 00:05:31,580 --> 00:05:32,080 Hit Enter. 110 00:05:32,080 --> 00:05:33,330 Det gör ingenting, eller hur? 111 00:05:33,330 --> 00:05:35,480 Jag ändrar kataloger till den aktuella katalogen. 112 00:05:35,480 --> 00:05:37,813 Du är inte alltid kommer att hitta ett behov av en enda punkt, 113 00:05:37,813 --> 00:05:39,540 men du kommer ibland. 114 00:05:39,540 --> 00:05:41,950 >> Låt oss säga att jag vill att flytta upp en nivå. 115 00:05:41,950 --> 00:05:44,450 Jag vill komma tillbaka till min arbetsyta katalog. 116 00:05:44,450 --> 00:05:49,800 Jag kan inte skriva cd arbetsyta, det finns ingen sådan fil eller katalog. 117 00:05:49,800 --> 00:05:52,780 Och anledningen till that-- Om jag skriver ls en mer time-- 118 00:05:52,780 --> 00:05:58,060 är att det inte finns någon katalog som heter arbetsyta insidan av min pset1 katalog. 119 00:05:58,060 --> 00:06:00,275 Jag kommer att rensa skärmen igen med kontroll l. 120 00:06:00,275 --> 00:06:02,150 Kom ihåg vad jag sa tidigare, men vi som 121 00:06:02,150 --> 00:06:04,010 kan navigera tillbaka med prick, prick. 122 00:06:04,010 --> 00:06:05,880 Det är namnet på den överordnade katalogen. 123 00:06:05,880 --> 00:06:10,727 Så om jag skriver cd, utrymme, pricka, dot hit, och sedan på Enter, 124 00:06:10,727 --> 00:06:11,810 nu titta på vad som hände. 125 00:06:11,810 --> 00:06:15,250 Min kommandotolk säger mig att jag är tillbaka i min ~ / arbetsyta katalogen. 126 00:06:15,250 --> 00:06:19,360 Jag flyttade upp en nivå, tack till prick, pricka. 127 00:06:19,360 --> 00:06:23,400 >> Nu, låt oss säga att jag använder en operativsystem som är Linux-baserad, 128 00:06:23,400 --> 00:06:25,440 men inte nödvändigtvis berätta var jag är. 129 00:06:25,440 --> 00:06:28,370 Detta händer för att berätta att Jag är i ~ / arbetsyta just nu, 130 00:06:28,370 --> 00:06:29,280 höger vid prompten. 131 00:06:29,280 --> 00:06:31,940 Men jag kunde vara helt vilse i en enda röra av mappar, 132 00:06:31,940 --> 00:06:34,946 och jag har ingen aning om var jag är och ingen aning om var jag vill komma tillbaka till. 133 00:06:34,946 --> 00:06:36,320 Det finns två saker som jag kan göra. 134 00:06:36,320 --> 00:06:40,920 >> Först av allt, kan jag räkna ut där jag är, genom att skriva pwd. 135 00:06:40,920 --> 00:06:42,720 Det är min nuvarande arbetskatalogen. 136 00:06:42,720 --> 00:06:45,830 Och om jag slog in, det berättar exakt var jag befinner mig. 137 00:06:45,830 --> 00:06:49,400 Nu / home / ubuntu är lång väg att säga, tilde, 138 00:06:49,400 --> 00:06:51,290 som är din hemkatalog. 139 00:06:51,290 --> 00:06:56,540 Men det säger mig att jag är i home / ubuntu / arbetsyta, eller ~ / arbetsyta. 140 00:06:56,540 --> 00:07:00,700 >> Jag kommer att gå till min pset1 katalog igen, 141 00:07:00,700 --> 00:07:02,229 och jag kommer att visa innehållet. 142 00:07:02,229 --> 00:07:04,770 Och jag ser att jag har en annan katalog där kallas statister. 143 00:07:04,770 --> 00:07:09,020 Så jag kommer att cd till statister och då kommer jag att rensa skärmen. 144 00:07:09,020 --> 00:07:11,540 >> Så nu är jag ganska långt in, eller hur? 145 00:07:11,540 --> 00:07:13,680 Vad gör jag om jag vill tillbaka att arbetsyta omedelbart? 146 00:07:13,680 --> 00:07:15,138 Det finns ett par saker som jag skulle kunna göra. 147 00:07:15,138 --> 00:07:18,750 Jag kan skriva cd, punkt, punkt, snedstreck, pricka, prick, att flytta upp en nivå och sedan 148 00:07:18,750 --> 00:07:19,640 en annan nivå. 149 00:07:19,640 --> 00:07:21,090 Men det är typ av irriterande. 150 00:07:21,090 --> 00:07:24,990 >> Så om jag någonsin vill komma tillbaka till bara min hemkatalog, tilde, 151 00:07:24,990 --> 00:07:27,690 Jag kan skriva cd med ingenting efter det. 152 00:07:27,690 --> 00:07:29,224 Cd, Enter. 153 00:07:29,224 --> 00:07:30,140 Och nu är jag i tilde. 154 00:07:30,140 --> 00:07:34,310 Och om jag vill komma till arbetsyta, Jag kan bara skriva cd arbetsyta. 155 00:07:34,310 --> 00:07:36,770 Och det är hur du arbetar förändrade kataloger 156 00:07:36,770 --> 00:07:42,080 inom CS50 IDE eller Linux operativsystem på kommandoraden. 157 00:07:42,080 --> 00:07:42,580 Okej. 158 00:07:42,580 --> 00:07:45,610 Den nästa som kanske komma till hands är mkdir, 159 00:07:45,610 --> 00:07:48,709 vilket är en förkortning för att göra en katalog, om jag behöver för att skapa en ny mapp. 160 00:07:48,709 --> 00:07:50,750 Om du är bekant med operativsystemet GUI, 161 00:07:50,750 --> 00:07:51,820 du kanske högerklicka. 162 00:07:51,820 --> 00:07:54,500 Och sedan, när snabbmenyn dyker upp, välj Ny mapp. 163 00:07:54,500 --> 00:07:56,250 Det är förmodligen hur du har gjort det förr. 164 00:07:56,250 --> 00:08:00,979 Men vi kan också skapa kataloger på kommandoraden. 165 00:08:00,979 --> 00:08:02,020 Så vi är tillbaka i IDE. 166 00:08:02,020 --> 00:08:08,020 Jag ska zooma in på terminalen och visa innehållet i min katalog 167 00:08:08,020 --> 00:08:11,882 igen, bara för att ge oss en referensram. 168 00:08:11,882 --> 00:08:14,340 Låt oss säga att nu har jag färdig att arbeta på problemet set 0 169 00:08:14,340 --> 00:08:15,580 och problem set 1. 170 00:08:15,580 --> 00:08:19,390 Så jag vill skapa en ny katalog att arbeta med för problem set 2. 171 00:08:19,390 --> 00:08:20,420 Hur gör jag det? 172 00:08:20,420 --> 00:08:24,132 >> Tja, återigen, jag kunde högerklicka i vänster sida där och välj Ny mapp 173 00:08:24,132 --> 00:08:25,340 och skapa en pset2 katalog. 174 00:08:25,340 --> 00:08:26,240 Det skulle fungera också. 175 00:08:26,240 --> 00:08:28,615 Men då jag också göra det på kommandoraden ganska snabbt, 176 00:08:28,615 --> 00:08:35,049 genom att skriva mkdir, space-- jag skrev i n, men-- rymd pset2. 177 00:08:35,049 --> 00:08:38,659 Om jag trycker på Retur och sedan jag lista innehållet i min katalog igen, 178 00:08:38,659 --> 00:08:40,710 Jag ser att, titta, nu Jag har en pset2 mapp. 179 00:08:40,710 --> 00:08:43,110 Och jag kan navigera in att med hjälp av cd och göra 180 00:08:43,110 --> 00:08:45,614 allt arbete jag behöver göra för pset2. 181 00:08:45,614 --> 00:08:48,530 Förresten, jag ska bara pop över här verkligen snabbt till filträdet. 182 00:08:48,530 --> 00:08:53,494 Och du kan se att, även i den grafiska File Explorer, 183 00:08:53,494 --> 00:08:56,160 Vi kan se att pset2 katalogen har också skapats där. 184 00:08:56,160 --> 00:08:58,537 Och jag kan navigera till den, med hjälp av det grafiska gränssnittet också. 185 00:08:58,537 --> 00:09:00,870 Nästa gång och det är förmodligen kommer att komma till hands 186 00:09:00,870 --> 00:09:03,650 är cp, vilket är en förkortning för kopiering. 187 00:09:03,650 --> 00:09:06,960 Kopiera, till skillnad från alla andra kommandon vi har sett förut, 188 00:09:06,960 --> 00:09:11,800 tar två argument, en källa, det namnet på den fil som du vill kopiera, 189 00:09:11,800 --> 00:09:15,810 och en destination där du vill kopiera filen till. 190 00:09:15,810 --> 00:09:19,490 Det är ganska lätt att kopiera en fil, så låt oss göra det. 191 00:09:19,490 --> 00:09:20,640 >> Så vi är tillbaka i IDE. 192 00:09:20,640 --> 00:09:24,540 Jag kommer att visa innehållet av min nuvarande katalog med ls. 193 00:09:24,540 --> 00:09:28,310 Nu, låt oss säga att jag vill ha att göra en kopia av hello.txt. 194 00:09:28,310 --> 00:09:32,120 Återigen, från filträdet på vänster, det grafiska gränssnittet, 195 00:09:32,120 --> 00:09:35,969 Jag kunde högerklicka på hello.txt, göra en kopia, klistra in kopian. 196 00:09:35,969 --> 00:09:38,260 Men jag kan göra det ganska snabbt på kommandoraden också. 197 00:09:38,260 --> 00:09:42,520 >> Låt oss säga att jag vill kopiera hello.txt att hi.txt. 198 00:09:42,520 --> 00:09:45,850 Jag kan CP, utrymme, hello.txt. 199 00:09:45,850 --> 00:09:48,850 Det är min källfilen, så det är därför Jag kommer att välja att man först. 200 00:09:48,850 --> 00:09:51,058 Och då måste jag namnge målfilen, hi.txt. 201 00:09:51,058 --> 00:09:53,690 202 00:09:53,690 --> 00:09:54,620 Jag trycker på Retur. 203 00:09:54,620 --> 00:09:57,930 Och om jag visa innehållet i min katalog igen, det har hi.txt. 204 00:09:57,930 --> 00:09:59,220 Jag har gjort en kopia av den. 205 00:09:59,220 --> 00:10:01,090 Och faktiskt, om jag gick i hi.txt, jag kunde 206 00:10:01,090 --> 00:10:04,030 se att det skulle vara en exakt kopiera allt som 207 00:10:04,030 --> 00:10:08,330 fanns i mitt hello.txt fil. 208 00:10:08,330 --> 00:10:09,790 >> Så det är hur du kopierar en fil. 209 00:10:09,790 --> 00:10:12,680 Men vad händer om du vill kopiera en hel katalog? 210 00:10:12,680 --> 00:10:16,510 Så för en sekund, låt oss ta en titt på vad som finns i min pset0 katalogen. 211 00:10:16,510 --> 00:10:23,950 Om jag cd pset0 och visa innehållet, Jag har en katalog som heter, prov, 212 00:10:23,950 --> 00:10:26,252 och en skråma fil, scratch.sb2. 213 00:10:26,252 --> 00:10:27,210 Så det är bra att veta. 214 00:10:27,210 --> 00:10:29,800 Så låt oss rensa skärmen, och jag kommer att gå tillbaka 215 00:10:29,800 --> 00:10:32,870 till min arbetsyta katalog för en sekund. 216 00:10:32,870 --> 00:10:36,630 >> Låt oss säga att nu vill jag göra en kopia av min pset0 katalog. 217 00:10:36,630 --> 00:10:42,940 Jag kan inte bara säga cp pset0 pset3, till exempel. 218 00:10:42,940 --> 00:10:46,220 Du får denna konstiga budskap, utelämna katalog pset0. 219 00:10:46,220 --> 00:10:47,439 Varför får man meddelandet? 220 00:10:47,439 --> 00:10:49,730 Tja, visar det sig att, när du har en katalog som 221 00:10:49,730 --> 00:10:53,150 har andra saker inne i det, kommandot cp inte riktigt 222 00:10:53,150 --> 00:10:55,590 nödvändigtvis vet vad de ska göra med det. 223 00:10:55,590 --> 00:10:59,670 >> Vi måste uttryckligen berätta Linux, terminalen, 224 00:10:59,670 --> 00:11:03,720 Jag vill att du ska kopiera pset0 katalog och kopiera 225 00:11:03,720 --> 00:11:07,530 varje mapp som finns inne av det och alla filer som 226 00:11:07,530 --> 00:11:08,750 finns inne i den. 227 00:11:08,750 --> 00:11:13,270 Med andra ord, jag vill att du rekursivt dyka ner i pset0 228 00:11:13,270 --> 00:11:15,660 och göra en kopia av allt i det. 229 00:11:15,660 --> 00:11:25,280 >> Om jag vill göra det, vad jag kan göra är cp-r, för rekursivt pset0 pset3. 230 00:11:25,280 --> 00:11:26,850 Hit Enter. 231 00:11:26,850 --> 00:11:29,290 Nu, om jag lista innehållet i min katalog, 232 00:11:29,290 --> 00:11:32,180 Jag ser att det är pset3 katalog som jag kan arbeta med. 233 00:11:32,180 --> 00:11:36,990 Och om jag cd till pset3 nu och sedan visa innehållet, titta, 234 00:11:36,990 --> 00:11:39,594 det finns prov och scratch.sb2 igen. 235 00:11:39,594 --> 00:11:40,510 Så det är ganska coolt. 236 00:11:40,510 --> 00:11:43,819 Så det är hur du kan kopiera en hel katalog, och inte bara en enda fil. 237 00:11:43,819 --> 00:11:45,860 Så om du vill kopiera en katalog, bara ihåg 238 00:11:45,860 --> 00:11:49,830 att använda -r flaggan när du är arbetar med kommandot cp. 239 00:11:49,830 --> 00:11:50,330 Okej. 240 00:11:50,330 --> 00:11:52,320 Så jag har kopierat en fil, men Jag har gjort det av misstag. 241 00:11:52,320 --> 00:11:53,695 Och nu vill jag bli av med det. 242 00:11:53,695 --> 00:11:54,850 Hur gör jag det? 243 00:11:54,850 --> 00:11:56,830 Återigen, om du är bekant med ett grafiskt gränssnitt, 244 00:11:56,830 --> 00:11:58,310 kan du högerklicka och bara välja bort. 245 00:11:58,310 --> 00:12:00,630 Och det kommer att skicka den till skräp eller papperskorgen. 246 00:12:00,630 --> 00:12:03,320 Men på kommandoraden, vi kan bara skriva rm, för bort, 247 00:12:03,320 --> 00:12:05,580 och sedan namnet på den fil vi vill bli av med. 248 00:12:05,580 --> 00:12:08,614 >> Nu är rm mycket försiktig. 249 00:12:08,614 --> 00:12:11,280 Det gör en hel del dubbelkontroll, att se till att du faktiskt 250 00:12:11,280 --> 00:12:12,377 vill ta bort filen. 251 00:12:12,377 --> 00:12:15,460 Det vill inte göra några misstag, eftersom det finns ingen Papperskorgen här. 252 00:12:15,460 --> 00:12:17,010 När vi tar bort en fil, det är borta. 253 00:12:17,010 --> 00:12:18,710 Och det finns verkligen inget sätt att återställa det. 254 00:12:18,710 --> 00:12:20,730 Så vi måste vara ganska noggrann, och så rm 255 00:12:20,730 --> 00:12:23,110 kommer att bli riktigt försiktig för oss. 256 00:12:23,110 --> 00:12:27,120 >> Så låt oss gå tillbaka till IDE och bli av med det hi.txt fil 257 00:12:27,120 --> 00:12:29,640 att jag skapade en minut sedan med kopia. 258 00:12:29,640 --> 00:12:30,560 Så vi är i IDE. 259 00:12:30,560 --> 00:12:33,180 Och jag listar innehållet i min katalog igen, bara för att ge oss något sammanhang. 260 00:12:33,180 --> 00:12:36,500 Jag menar, kan du se att det finns hi.txt, som jag skapade en liten stund sedan. 261 00:12:36,500 --> 00:12:38,196 Nu vill jag att bli av med det. 262 00:12:38,196 --> 00:12:38,820 Hur gör jag det? 263 00:12:38,820 --> 00:12:39,810 >> Återigen, bara rm. 264 00:12:39,810 --> 00:12:46,220 Så jag kan skriva rm hi.txt och tryck på Retur. 265 00:12:46,220 --> 00:12:47,970 Och det finns rm varelse riktigt försiktig för oss 266 00:12:47,970 --> 00:12:50,178 och se till att vi faktiskt vill ta bort den här filen. 267 00:12:50,178 --> 00:12:52,784 Vill du verkligen vill ta bort regelbunden tom fil hi.txt? 268 00:12:52,784 --> 00:12:55,200 Det är precis som en rörelse system som Windows eller Mac, 269 00:12:55,200 --> 00:12:56,310 att du kan vara bekant med poppar upp 270 00:12:56,310 --> 00:12:58,770 att rutan säger är du verkligen säker på att du vill göra detta. 271 00:12:58,770 --> 00:13:01,228 >> Jag är ganska säker på att jag vill det, så jag kommer att skriva, yes-- 272 00:13:01,228 --> 00:13:04,390 eller jag kunde också bara Skriv y-- och tryck på Retur. 273 00:13:04,390 --> 00:13:08,620 Och om jag visa innehållet i min katalogen igen, hi.txt borta. 274 00:13:08,620 --> 00:13:10,000 Inte illa, eller hur? 275 00:13:10,000 --> 00:13:12,410 Låt oss tryck Control L, bara att bli av med allt det här 276 00:13:12,410 --> 00:13:14,900 och få oss tillbaka på den övre delen av skärmen. 277 00:13:14,900 --> 00:13:18,520 >> Nu finns det ett sätt att kortslutnings RM, så 278 00:13:18,520 --> 00:13:20,090 att det inte fråga oss den frågan. 279 00:13:20,090 --> 00:13:22,060 Vi vet verkligen att vi vill ha att bli av med den filen, 280 00:13:22,060 --> 00:13:23,490 och vi vill inte ens ställas frågan. 281 00:13:23,490 --> 00:13:24,720 Hur gör vi det? 282 00:13:24,720 --> 00:13:27,180 Tja, kan vi ange en extra flagga, precis som vi 283 00:13:27,180 --> 00:13:30,400 gjorde med cp där vi skulle kunna lägga -r flaggan, 284 00:13:30,400 --> 00:13:32,800 att rekursivt kopiera till en katalog. 285 00:13:32,800 --> 00:13:35,630 Det finns en annan flagga för RM, som är -f, 286 00:13:35,630 --> 00:13:39,470 vilket är att tvinga rm att göra exakt vad vi säga till den att göra. 287 00:13:39,470 --> 00:13:44,610 >> Så låt oss säga att nu vill jag att bli av med min hello.txt fil. 288 00:13:44,610 --> 00:13:46,490 Jag vill inte att man heller. 289 00:13:46,490 --> 00:13:47,370 Vad kan jag göra? 290 00:13:47,370 --> 00:13:54,710 Tja, kan jag rm -f hello.txt. 291 00:13:54,710 --> 00:13:57,530 Vad tror du är kommer att hända här? 292 00:13:57,530 --> 00:13:58,030 Den är borta. 293 00:13:58,030 --> 00:13:59,363 Inte ens fråga mig frågan. 294 00:13:59,363 --> 00:14:03,600 Och faktiskt, om jag visa innehållet av min katalog igen, det är borta. 295 00:14:03,600 --> 00:14:05,750 Det finns ingen ångra här. 296 00:14:05,750 --> 00:14:09,554 hello.txt är borta, och jag var inte även frågade om jag ville ta bort den. 297 00:14:09,554 --> 00:14:11,595 Vad gör jag om jag vill bli av en hel katalog? 298 00:14:11,595 --> 00:14:14,180 299 00:14:14,180 --> 00:14:17,039 Det sätt du gör det är mycket lik kopiera. 300 00:14:17,039 --> 00:14:19,080 Om du vill ta bort en katalog, gör du inte bara 301 00:14:19,080 --> 00:14:22,121 vill ta bort katalogen du vill ta bort allt innanför det. 302 00:14:22,121 --> 00:14:26,250 Och så du använder -r, till rekursivt ta bort en katalog. 303 00:14:26,250 --> 00:14:28,600 >> Så låt oss rm -r pset2. 304 00:14:28,600 --> 00:14:31,870 Jag är inte faktiskt arbetar på pset2, så jag kan bli av med den katalogen. 305 00:14:31,870 --> 00:14:33,040 Jag trycker på Retur. 306 00:14:33,040 --> 00:14:35,050 Måste jag vill ta bort katalogen, pset2? 307 00:14:35,050 --> 00:14:37,160 Ja det gör jag. 308 00:14:37,160 --> 00:14:41,150 Och om jag visa innehållet i min katalog igen, det är borta. 309 00:14:41,150 --> 00:14:41,650 Okej? 310 00:14:41,650 --> 00:14:43,739 >> Ytterligare en variant på detta tema. 311 00:14:43,739 --> 00:14:46,280 Så jag ska rensa skärmen igen, att sätta allt på toppen. 312 00:14:46,280 --> 00:14:47,420 Hit ls. 313 00:14:47,420 --> 00:14:49,890 Nu vill jag bli av min pset3 katalog, 314 00:14:49,890 --> 00:14:52,810 och jag vet verkligen att jag vill bli av med min pset3 katalog. 315 00:14:52,810 --> 00:15:00,120 Jag kan rekursivt och våld ta bort min pset3 katalog. 316 00:15:00,120 --> 00:15:03,900 >> Nu, du kommer att bli riktigt försiktig när du använder rm -rf. 317 00:15:03,900 --> 00:15:06,784 När du programmera in mer, det ska vara något du bara göra riktigt snabbt. 318 00:15:06,784 --> 00:15:08,200 Och faktiskt, jag gör det hela tiden. 319 00:15:08,200 --> 00:15:10,380 Men det kan leda till en viss katastrofala följder, 320 00:15:10,380 --> 00:15:12,340 Om du av misstag radera fel sak. 321 00:15:12,340 --> 00:15:15,089 Så jag vill att du ska vara medveten om att detta är ett alternativ tillgängliga för dig, 322 00:15:15,089 --> 00:15:17,220 men använder det sparsamt, och använda den med försiktighet. 323 00:15:17,220 --> 00:15:20,910 >> Jag vet för ett faktum att jag inte arbetar på mitt problem set 3 längre, så jag är 324 00:15:20,910 --> 00:15:22,550 kommer att bli av med alla dessa filer. 325 00:15:22,550 --> 00:15:26,420 Och jag vet att jag inte vill bli tillfrågad varenda gång om jag vill ta bort 326 00:15:26,420 --> 00:15:30,640 en fil, så jag kommer att rm -rf pset3. 327 00:15:30,640 --> 00:15:32,640 Inte ens fråga mig om jag ville bli av med det. 328 00:15:32,640 --> 00:15:33,840 Jag slog ls. 329 00:15:33,840 --> 00:15:35,680 pset3 är borta. 330 00:15:35,680 --> 00:15:39,730 Så det är alla variationer som du kan använda för att bli av filer med rm. 331 00:15:39,730 --> 00:15:43,620 >> Den sista kommandorad kommando som är kommer att ganska användbart för dig 332 00:15:43,620 --> 00:15:46,391 är mv, som är en förkortning för drag. 333 00:15:46,391 --> 00:15:48,960 Move är i princip motsvarar byta namn. 334 00:15:48,960 --> 00:15:53,870 Det flyttar en fil från en plats till annan, källan till destinationen. 335 00:15:53,870 --> 00:15:59,400 Låt oss se var du använder ett drag kanske vara praktiskt vid terminalfönstret. 336 00:15:59,400 --> 00:16:02,070 >> Så jag är i mitt pset1 katalog, och jag har märkt 337 00:16:02,070 --> 00:16:03,860 något har gått lite fel. 338 00:16:03,860 --> 00:16:08,620 Jag arbetade på min giriga problem, men jag av misstag heter det GReddy. 339 00:16:08,620 --> 00:16:11,380 Så när jag försöker köra det genom check50, det inte riktigt fungerar. 340 00:16:11,380 --> 00:16:12,630 Jag har ett par alternativ. 341 00:16:12,630 --> 00:16:16,220 Vi kan göra vad vi har gjort tidigare, vilket är att göra en kopia av filen. 342 00:16:16,220 --> 00:16:23,960 Jag kunde kopiera greddy.c att greedy.c, eller hur? 343 00:16:23,960 --> 00:16:25,580 Hit Enter. 344 00:16:25,580 --> 00:16:28,180 Jag ser att båda filerna finns. 345 00:16:28,180 --> 00:16:36,337 Och då kunde jag rm, att ta bort, greddy.c. 346 00:16:36,337 --> 00:16:37,170 Det gör sig av med det. 347 00:16:37,170 --> 00:16:40,920 Så det skulle fungera, när jag bekräfta som jag vill bli av med det. 348 00:16:40,920 --> 00:16:44,770 Och jag har faktiskt omdöpt greddy.c att greedy.c. 349 00:16:44,770 --> 00:16:48,460 Jag kopierade och sedan bort originalet. 350 00:16:48,460 --> 00:16:50,170 >> Men det är en flerstegsprocess. 351 00:16:50,170 --> 00:16:51,670 Och visst, det finns ett bättre sätt. 352 00:16:51,670 --> 00:16:52,420 I själva verket finns det. 353 00:16:52,420 --> 00:16:55,810 Så låt oss slå Kontroll L, bara för att få den tillbaka upp, 354 00:16:55,810 --> 00:16:58,680 och visa innehållet av min katalog igen. 355 00:16:58,680 --> 00:17:00,350 >> Så låt oss säga, åh, jag gjorde ett misstag. 356 00:17:00,350 --> 00:17:03,470 Jag faktiskt verkligen ville att kalla filen greddy.c. 357 00:17:03,470 --> 00:17:11,369 I ett svep, kan jag skriva flytta greedy.c att greddy.c. 358 00:17:11,369 --> 00:17:12,470 Hit Enter. 359 00:17:12,470 --> 00:17:15,210 Och nu, jag har inte kopiera och ta bort det, 360 00:17:15,210 --> 00:17:16,880 Jag var bara möjlighet att byta namn på den. 361 00:17:16,880 --> 00:17:18,710 One-stop shopping. 362 00:17:18,710 --> 00:17:21,160 >> Nu finns det en hel del andra grundläggande kommandoradsverktyg 363 00:17:21,160 --> 00:17:22,640 som du kan använda med Linux kommandorad. 364 00:17:22,640 --> 00:17:24,990 Och vi kommer att diskutera en hel del av dem i framtiden i CS50. 365 00:17:24,990 --> 00:17:27,948 Men nu, bara få fötterna våt med att arbeta med denna terminal 366 00:17:27,948 --> 00:17:30,540 miljö, dessa fem kommandon borde få dig ganska långt 367 00:17:30,540 --> 00:17:34,990 navigera runt och arbeta med filer i din IDE 368 00:17:34,990 --> 00:17:37,770 eller i vilken Linux-baserad operativsystem du använder. 369 00:17:37,770 --> 00:17:40,580 >> Om du är nyfiken och vill se framåt lite på några 370 00:17:40,580 --> 00:17:43,420 av kommandoraden kommandon vi kommer att använda i framtiden, 371 00:17:43,420 --> 00:17:46,930 Här är en lista över ett par av de vanligare. 372 00:17:46,930 --> 00:17:47,820 Jag är Doug Lloyd. 373 00:17:47,820 --> 00:17:49,860 Detta är CS50. 374 00:17:49,860 --> 00:17:52,598