1 00:00:00,000 --> 00:00:05,060 >> [Musik spiller] 2 00:00:05,060 --> 00:00:05,890 >> DOUG LLOYD: OK. 3 00:00:05,890 --> 00:00:08,680 Så lad os tale om, hvordan man bruge Linux kommandolinjen. 4 00:00:08,680 --> 00:00:11,860 Nu CS50 IDE eller i Faktisk, selv en CS50 apparat, 5 00:00:11,860 --> 00:00:15,210 Hvis du er fortrolig med det, eller du tager en ældre version af CS50, 6 00:00:15,210 --> 00:00:17,420 er en cloud-baseret maskine som kører Ubuntu, 7 00:00:17,420 --> 00:00:20,259 som er en af ​​de mange varianter af Linux-styresystemet. 8 00:00:20,259 --> 00:00:22,300 Linux operativsystem er begunstiget af programmører, 9 00:00:22,300 --> 00:00:25,690 fordi det er bare køligere, ikke? 10 00:00:25,690 --> 00:00:29,170 >> Mange moderne Linux-distributioner have grafiske brugergrænseflader, 11 00:00:29,170 --> 00:00:33,710 som vi også kalder GUIs, G-U-I, til gøre det let mus-navigation, 12 00:00:33,710 --> 00:00:36,920 som du er sikkert bekendt med, hvis du er en Windows eller Mac-bruger, 13 00:00:36,920 --> 00:00:39,961 flytte rundt med musen, dobbeltklikke på ikoner, og så videre. 14 00:00:39,961 --> 00:00:42,210 Stadig dog, som en programmør, og selvom IDE 15 00:00:42,210 --> 00:00:44,800 indeholder evnen til at gøre nogle grafiske bruger 16 00:00:44,800 --> 00:00:47,400 ting, klikke, og trække, og alt det, 17 00:00:47,400 --> 00:00:50,197 vil du stadig skal bruge din terminalvindue temmelig ofte. 18 00:00:50,197 --> 00:00:52,280 Og du kan gøre mange af de samme opgaver, som du kan 19 00:00:52,280 --> 00:00:53,905 gøre med en mus med tastaturkommandoer. 20 00:00:53,905 --> 00:00:56,821 Og vi kommer til at snakke lidt om, hvad nogle af disse kommandoer 21 00:00:56,821 --> 00:00:58,050 er lige nu. 22 00:00:58,050 --> 00:01:02,490 >> Nu kan bruges disse kommandoer på enhver Unix-baseret operativsystem 23 00:01:02,490 --> 00:01:06,790 system, som omfatter Linux, men omfatter også Mac OS. 24 00:01:06,790 --> 00:01:12,930 Hvis du åbner op Terminal på din Mac, du kan bruge disse nøjagtige kommandoer. 25 00:01:12,930 --> 00:01:15,705 Windows har også Kommando Hurtig, men nogle af kommandoerne 26 00:01:15,705 --> 00:01:17,871 er lidt anderledes, så det gør faktisk ikke virker, 27 00:01:17,871 --> 00:01:20,080 fordi Windows er ikke en Unix-baseret system. 28 00:01:20,080 --> 00:01:22,620 >> Så lad os tage et kig på nogle af disse Linux kommandoer. 29 00:01:22,620 --> 00:01:26,100 Den første, som du vil sandsynligvis bruge en hel del er ls. 30 00:01:26,100 --> 00:01:30,410 Det er et lille l, efterfulgt af en små bogstaver s, som er en forkortelse for listen. 31 00:01:30,410 --> 00:01:33,720 Og hvad kommandoen listen gør, er det giver dig en udlæsning af alle de filer 32 00:01:33,720 --> 00:01:35,670 og mapper i din nuværende mappe. 33 00:01:35,670 --> 00:01:39,430 Så du kan se alt du kan komme til fra hvor du i øjeblikket er. 34 00:01:39,430 --> 00:01:41,545 >> Så jeg har åbnet op her CS50 IDE. 35 00:01:41,545 --> 00:01:44,540 Og jeg har tænkt mig at zoome ind i et sekund for at give dig et nærmere kig, 36 00:01:44,540 --> 00:01:47,240 men her er den brede billede af, hvad IDE ser ud. 37 00:01:47,240 --> 00:01:49,580 Til venstre kan du se, vi har en fil træ, som du sandsynligvis 38 00:01:49,580 --> 00:01:52,663 bekendt med, dobbeltklik, og filer og mapper og alt det der. 39 00:01:52,663 --> 00:01:54,694 Så det er der stadig i CS50 apparatet. 40 00:01:54,694 --> 00:01:57,860 I centrum i toppen er, hvor du er kommer til at skrive din kode, når 41 00:01:57,860 --> 00:01:58,960 du klikker på en fil. 42 00:01:58,960 --> 00:02:00,900 Og forneden, vi har et terminalvindue, 43 00:02:00,900 --> 00:02:04,040 der hvor vi kan udføre disse terminal kommandoer. 44 00:02:04,040 --> 00:02:07,460 >> Jeg har tænkt mig at zoome ind og hovedet over her, bare 45 00:02:07,460 --> 00:02:12,360 til at vise dig, at i virkeligheden, kan jeg klikke på disse filer og mapper. 46 00:02:12,360 --> 00:02:17,010 Så tydeligt, hvor jeg i øjeblikket er, jeg har to mapper, kaldet pset0 og pset1, 47 00:02:17,010 --> 00:02:20,520 og tre filer, der hedder hej, en kaldet hello.c, 48 00:02:20,520 --> 00:02:22,870 og en kaldet hej.txt. 49 00:02:22,870 --> 00:02:27,100 >> Så lad os gå ned til terminalen vindue og få et nærmere kig. 50 00:02:27,100 --> 00:02:31,010 Så vi netop talt, igen, om faktum, at vi har tre filer og to 51 00:02:31,010 --> 00:02:32,970 mapper i den aktuelle mappe. 52 00:02:32,970 --> 00:02:37,080 Hvis jeg skriver ls, hvilket igen er kommandoen til listen 53 00:02:37,080 --> 00:02:40,870 indholdet af den aktuelle mappe, og så jeg ramte Enter, 54 00:02:40,870 --> 00:02:47,220 se, hvad jeg ser, hej, hello.c, hej.txt, pset0 og pset1. 55 00:02:47,220 --> 00:02:49,620 >> pset0 og pset1 er farvet blå, for at indikere 56 00:02:49,620 --> 00:02:52,420 for dig, at de er biblioteker at vi kunne navigere ind. 57 00:02:52,420 --> 00:02:54,503 Og vi vil lære lidt lidt om, hvordan du navigerer 58 00:02:54,503 --> 00:02:56,290 i mapper i et minut. 59 00:02:56,290 --> 00:03:00,920 Og hver anden ting er farvet sort, hvis det er en tekstfil eller en kildekode 60 00:03:00,920 --> 00:03:03,590 fil, og grøn, hvis det er en eksekverbar fil. 61 00:03:03,590 --> 00:03:06,367 Så klart, det betyder, at jeg kunne køre et program kaldet, hej. 62 00:03:06,367 --> 00:03:07,950 Det er, hvad den grønne en der betyder. 63 00:03:07,950 --> 00:03:10,080 Men dybest set, at skrive ls kommandoen har tilladt 64 00:03:10,080 --> 00:03:13,470 mig til at se på alt, der eksisterer i min nuværende mappe, som 65 00:03:13,470 --> 00:03:17,940 matcher det, vi ser her, i grafisk visning af det samme. 66 00:03:17,940 --> 00:03:19,940 Den næste kommando, du vil sandsynligvis bruge ganske lidt 67 00:03:19,940 --> 00:03:24,792 er cd, små bogstaver C, små bogstaver d, som er en forkortelse for forandring mappe. 68 00:03:24,792 --> 00:03:27,500 Dette giver os mulighed for at gøre, hvad jeg var taler om en anden siden, som 69 00:03:27,500 --> 00:03:31,150 er at navigere mellem mapper på kommando 70 00:03:31,150 --> 00:03:33,700 line, i modsætning til dobbeltklikke på mapper. 71 00:03:33,700 --> 00:03:37,250 Så hvis vi skriver cd og derefter navnet på en mappe, 72 00:03:37,250 --> 00:03:40,890 vi kan komme ind i denne mappe. 73 00:03:40,890 --> 00:03:44,680 >> Som en sidebemærkning, at navnet af den aktuelle mappe er altid 74 00:03:44,680 --> 00:03:48,670 prik, og navnet på den mappe ét niveau over hvor vi er nu, 75 00:03:48,670 --> 00:03:54,820 der er navnet på den mappe, som vores mappe, prik, dot-- 76 00:03:54,820 --> 00:03:56,851 eller hvor vores mappe, er dot, prik. 77 00:03:56,851 --> 00:03:59,350 Og hvis du nogensinde nysgerrig navnet på din mappe, 78 00:03:59,350 --> 00:04:03,430 du kan skrive pwd, som står om aktuel arbejdsmappe. 79 00:04:03,430 --> 00:04:06,827 Vi vil tage et kig på alle disse nu, ved på vej tilbage til CS50 IDE. 80 00:04:06,827 --> 00:04:08,160 Så jeg er tilbage i min arbejdsplads nu. 81 00:04:08,160 --> 00:04:11,930 Og jeg vil zoome ind igen på terminal, så vi kan tage et kig 82 00:04:11,930 --> 00:04:14,209 ved at bevæge sig rundt i IDE. 83 00:04:14,209 --> 00:04:16,250 Så jeg har tænkt mig at nævne det indholdet af min mappe 84 00:04:16,250 --> 00:04:19,220 igen, bare for at efterslibes os i, hvor vi er. 85 00:04:19,220 --> 00:04:21,740 Så hvis jeg skriver ls, som er for listen igen, 86 00:04:21,740 --> 00:04:24,160 Jeg kan se, at jeg kan komme til pset0 og pset1. 87 00:04:24,160 --> 00:04:26,420 Det er de mapper Jeg kan komme til herfra. 88 00:04:26,420 --> 00:04:30,400 Jeg ved det, fordi IDE giver mig et fingerpeg ved at farve dem blå. 89 00:04:30,400 --> 00:04:33,295 >> Lad os sige, at jeg ønsker at komme ind i mit pset1 mappe, 90 00:04:33,295 --> 00:04:35,310 fordi jeg arbejder på problemet set 1. 91 00:04:35,310 --> 00:04:41,380 Jeg kan skrive cd-- igen, kort for ændre directory-- plads, pset1. 92 00:04:41,380 --> 00:04:43,334 Og hvis jeg ramte Enter, mærke, hvad der sker. 93 00:04:43,334 --> 00:04:45,000 Det ser ikke ud som en masse, der er sket. 94 00:04:45,000 --> 00:04:50,510 Men hvis man ser på den hurtige, det nu fortæller mig, at jeg er i ~ / arbejdsområde / pset1. 95 00:04:50,510 --> 00:04:55,510 Jeg har navigeret ind i pset1 mappe, der var inden for mit arbejdsområde. 96 00:04:55,510 --> 00:05:00,560 >> Og hvis jeg skriver ls, ser jeg nogle forskellige ting her, ikke? 97 00:05:00,560 --> 00:05:03,810 Dette er ikke det samme liste, som jeg så før. 98 00:05:03,810 --> 00:05:05,350 Jeg har navigeret ind pset1. 99 00:05:05,350 --> 00:05:08,560 Og så nu, når jeg skriver ls, jeg er få forbindelse med hvad kan jeg 100 00:05:08,560 --> 00:05:12,600 se fra inden for pset1 mappe. 101 00:05:12,600 --> 00:05:16,056 >> Nu, jeg har tænkt mig at skrive kontrol l, som netop rydder skærmen. 102 00:05:16,056 --> 00:05:18,180 Og jeg har tænkt mig at opføre indholdet af mappen 103 00:05:18,180 --> 00:05:18,880 igen, bare så du kan se. 104 00:05:18,880 --> 00:05:20,730 Jeg ville bare gøre det til rydde nogle af de ting 105 00:05:20,730 --> 00:05:22,521 at du har set dernede og for at forhindre dette 106 00:05:22,521 --> 00:05:24,660 fra at gå for langt ned uden for rækkevidde. 107 00:05:24,660 --> 00:05:28,440 >> Nu, jeg sagde tidligere, at, hvis jeg vil for at navigere til det aktuelle bibliotek, 108 00:05:28,440 --> 00:05:31,580 Jeg kan skrive cd plads prik. 109 00:05:31,580 --> 00:05:32,080 Hit Enter. 110 00:05:32,080 --> 00:05:33,330 Det gør ikke noget, vel? 111 00:05:33,330 --> 00:05:35,480 Jeg ændre mapper til den aktuelle mappe. 112 00:05:35,480 --> 00:05:37,813 Du er ikke altid vil finde et behov for et enkelt punkt, 113 00:05:37,813 --> 00:05:39,540 men du vil lejlighedsvis. 114 00:05:39,540 --> 00:05:41,950 >> Lad os sige, at jeg vil have at gå et niveau op. 115 00:05:41,950 --> 00:05:44,450 Jeg ønsker at komme tilbage til min arbejdsplads mappe. 116 00:05:44,450 --> 00:05:49,800 Jeg kan ikke indtaste cd arbejdsområde, der er ingen sådan fil eller mappe. 117 00:05:49,800 --> 00:05:52,780 Og grunden til at-- hvis jeg skriver ls endnu time-- 118 00:05:52,780 --> 00:05:58,060 er, at der ikke er nogen mappe kaldet arbejdsområde inde i min pset1 mappe. 119 00:05:58,060 --> 00:06:00,275 Jeg har tænkt mig at rydde min skærmen igen med kontrol l. 120 00:06:00,275 --> 00:06:02,150 Husk, hvad jeg sagde tidligere, selv om, at vi 121 00:06:02,150 --> 00:06:04,010 kan navigere tilbage med prik, prik. 122 00:06:04,010 --> 00:06:05,880 Det er navnet på den overordnede mappe. 123 00:06:05,880 --> 00:06:10,727 Så hvis jeg skriver cd, rum, punktum, prik, og derefter trykke Enter, 124 00:06:10,727 --> 00:06:11,810 nu se på, hvad der skete. 125 00:06:11,810 --> 00:06:15,250 Min kommandoprompt fortæller mig, at jeg er tilbage i min ~ / arbejdsområde mappe. 126 00:06:15,250 --> 00:06:19,360 Jeg flyttede et niveau op, takket til prik, prik. 127 00:06:19,360 --> 00:06:23,400 >> Lad os nu sige, at jeg bruger en operativsystem, der er Linux-baseret, 128 00:06:23,400 --> 00:06:25,440 men ikke nødvendigvis fortælle mig, hvor jeg er. 129 00:06:25,440 --> 00:06:28,370 Denne ene sker for at fortælle os, at Jeg er i ~ / arbejdsområde lige nu, 130 00:06:28,370 --> 00:06:29,280 lige ved prompten. 131 00:06:29,280 --> 00:06:31,940 Men jeg kunne være helt tabt i et rod af mapper, 132 00:06:31,940 --> 00:06:34,946 og jeg har ingen idé om, hvor jeg er, og ingen idé om, hvor jeg ønsker at komme tilbage til. 133 00:06:34,946 --> 00:06:36,320 Der er to ting, jeg kan gøre. 134 00:06:36,320 --> 00:06:40,920 >> Først og fremmest kan jeg regne ud af, hvor jeg er, ved at skrive pwd. 135 00:06:40,920 --> 00:06:42,720 Det er min nuværende arbejdsmappe. 136 00:06:42,720 --> 00:06:45,830 Og hvis jeg ramte Enter, det fortæller mig præcis, hvor jeg er. 137 00:06:45,830 --> 00:06:49,400 Nu / home / Ubuntu er den lang måde at sige, tilde, 138 00:06:49,400 --> 00:06:51,290 hvilket er din hjemmemappe. 139 00:06:51,290 --> 00:06:56,540 Men det fortæller mig, at jeg er i hjem / ubuntu / arbejdsområde, eller ~ / arbejdsområde. 140 00:06:56,540 --> 00:07:00,700 >> Jeg har tænkt mig at navigere til min pset1 mappe igen, 141 00:07:00,700 --> 00:07:02,229 og jeg har tænkt mig at liste indholdet. 142 00:07:02,229 --> 00:07:04,770 Og jeg kan se, at jeg har en anden mappe der, kaldet ekstramateriale. 143 00:07:04,770 --> 00:07:09,020 Så jeg har tænkt mig at cd til statister, og så jeg har tænkt mig at rydde min skærm. 144 00:07:09,020 --> 00:07:11,540 >> Så nu er jeg temmelig langt i, ikke? 145 00:07:11,540 --> 00:07:13,680 Hvad hvis jeg ønsker at sikkerhedskopiere at arbejdsområde det samme? 146 00:07:13,680 --> 00:07:15,138 Der er et par ting, jeg kunne gøre. 147 00:07:15,138 --> 00:07:18,750 Jeg kunne skrive cd, prik, prik, skråstreg, prik, dot, at gå et niveau op og derefter 148 00:07:18,750 --> 00:07:19,640 et andet niveau. 149 00:07:19,640 --> 00:07:21,090 Men det er slags irriterende. 150 00:07:21,090 --> 00:07:24,990 >> Så hvis jeg nogensinde ønsker at komme tilbage til bare min hjemmemappe, tilde, 151 00:07:24,990 --> 00:07:27,690 Jeg kan skrive 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 Og nu er jeg i tilde. 154 00:07:30,140 --> 00:07:34,310 Og hvis jeg ønsker at komme til arbejdsområde, Jeg kan bare skrive cd arbejdsområde. 155 00:07:34,310 --> 00:07:36,770 Og det er, hvordan du arbejder skiftende mapper 156 00:07:36,770 --> 00:07:42,080 i CS50 IDE eller Linux operativsystem på kommandolinjen. 157 00:07:42,080 --> 00:07:42,580 Okay. 158 00:07:42,580 --> 00:07:45,610 Det næste, der måske komme i handy er mkdir, 159 00:07:45,610 --> 00:07:48,709 som er en forkortelse for lave en mappe, hvis jeg har brug for at oprette en ny mappe. 160 00:07:48,709 --> 00:07:50,750 Hvis du er fortrolig med GUI operativsystemet, 161 00:07:50,750 --> 00:07:51,820 du måske højreklikke. 162 00:07:51,820 --> 00:07:54,500 Og så, når genvejsmenuen popper op, skal du vælge Ny mappe. 163 00:07:54,500 --> 00:07:56,250 Det er sandsynligvis hvordan du har gjort det før. 164 00:07:56,250 --> 00:08:00,979 Men vi kan også oprette mapper på kommandolinjen. 165 00:08:00,979 --> 00:08:02,020 Så vi er tilbage i IDE. 166 00:08:02,020 --> 00:08:08,020 Jeg vil zoome ind på terminalen og vise indholdet af min mappe 167 00:08:08,020 --> 00:08:11,882 igen, bare for at give os en referenceramme. 168 00:08:11,882 --> 00:08:14,340 Lad os sige, at nu, jeg har færdig med at arbejde på problemet sæt 0 169 00:08:14,340 --> 00:08:15,580 og problemet set 1. 170 00:08:15,580 --> 00:08:19,390 Så jeg ønsker at oprette en ny mappe at arbejde på til problemet sæt 2. 171 00:08:19,390 --> 00:08:20,420 Hvordan gør jeg det? 172 00:08:20,420 --> 00:08:24,132 >> Nå, igen, kunne jeg højreklikke på venstre side er der, og vælg Ny mappe 173 00:08:24,132 --> 00:08:25,340 og oprette en pset2 mappe. 174 00:08:25,340 --> 00:08:26,240 Det ville arbejde for. 175 00:08:26,240 --> 00:08:28,615 Men så gør jeg det også på kommandolinjen temmelig hurtigt, 176 00:08:28,615 --> 00:08:35,049 ved at skrive mkdir, space-- jeg skrevet i n, men-- plads pset2. 177 00:08:35,049 --> 00:08:38,659 Hvis jeg ramte Enter og derefter jeg liste de indholdet af min mappe igen, 178 00:08:38,659 --> 00:08:40,710 Jeg kan se, at, se, nu Jeg har en pset2 mappe. 179 00:08:40,710 --> 00:08:43,110 Og jeg kan navigere ind at bruge cd og gøre 180 00:08:43,110 --> 00:08:45,614 alt det arbejde, jeg har brug for at gøre for pset2. 181 00:08:45,614 --> 00:08:48,530 I øvrigt vil jeg bare pop over her virkelig hurtigt til filen træet. 182 00:08:48,530 --> 00:08:53,494 Og du kan se, at også i den grafiske Stifinder, 183 00:08:53,494 --> 00:08:56,160 Vi kan se, at pset2 biblioteket Der er også skabt der. 184 00:08:56,160 --> 00:08:58,537 Og jeg kan navigere til det, ved hjælp af GUI samt. 185 00:08:58,537 --> 00:09:00,870 Næste gang, og det er sandsynligvis vil komme i handy 186 00:09:00,870 --> 00:09:03,650 er cp, som er en forkortelse for kopi. 187 00:09:03,650 --> 00:09:06,960 Kopier, i modsætning til alle de andre kommandoer, vi har set før, 188 00:09:06,960 --> 00:09:11,800 tager to argumenter, en kilde, den navn på den fil, du vil kopiere, 189 00:09:11,800 --> 00:09:15,810 og en destination, hvor du ønsker at kopiere filen til. 190 00:09:15,810 --> 00:09:19,490 Det er ret nemt at kopiere en fil, så lad os gøre det. 191 00:09:19,490 --> 00:09:20,640 >> Så vi er tilbage i IDE. 192 00:09:20,640 --> 00:09:24,540 Jeg har tænkt mig at liste indholdet af min nuværende mappe med ls. 193 00:09:24,540 --> 00:09:28,310 Lad os nu sige, at jeg vil have at lave en kopi af hej.txt. 194 00:09:28,310 --> 00:09:32,120 Igen, fra filen træ på venstre, den grafiske brugerflade, 195 00:09:32,120 --> 00:09:35,969 Jeg kunne højreklikke på hej.txt, lave en kopi, indsætte kopien. 196 00:09:35,969 --> 00:09:38,260 Men jeg kan gøre det temmelig hurtigt på kommandolinjen også. 197 00:09:38,260 --> 00:09:42,520 >> Lad os sige, at jeg ønsker at kopiere hej.txt at hi.txt. 198 00:09:42,520 --> 00:09:45,850 Jeg kan CP plads, hej.txt. 199 00:09:45,850 --> 00:09:48,850 Det er min kildefil, så det er derfor Jeg har tænkt mig at vælge, at man først. 200 00:09:48,850 --> 00:09:51,058 Og så er jeg nødt til at nævne den destination fil, hi.txt. 201 00:09:51,058 --> 00:09:53,690 202 00:09:53,690 --> 00:09:54,620 Jeg ramte Enter. 203 00:09:54,620 --> 00:09:57,930 Og hvis jeg vise indholdet af min mappe igen, har der hi.txt. 204 00:09:57,930 --> 00:09:59,220 Jeg lavede en kopi af den. 205 00:09:59,220 --> 00:10:01,090 Og i virkeligheden, hvis jeg gik ind hi.txt, kunne jeg 206 00:10:01,090 --> 00:10:04,030 se, at det ville være en nøjagtig duplikere af alt det, 207 00:10:04,030 --> 00:10:08,330 eksisterede i min hej.txt fil. 208 00:10:08,330 --> 00:10:09,790 >> Så det er hvordan du kopierer en fil. 209 00:10:09,790 --> 00:10:12,680 Men hvad nu hvis du ønsker at kopiere en hel mappe? 210 00:10:12,680 --> 00:10:16,510 Så for en anden, lad os tage et kig på hvad der er i min pset0 mappe. 211 00:10:16,510 --> 00:10:23,950 Hvis jeg cd pset0 og en liste over indholdet, Jeg har en mappe kaldet, prøve, 212 00:10:23,950 --> 00:10:26,252 og en ridse-fil, scratch.sb2. 213 00:10:26,252 --> 00:10:27,210 Så det er godt at vide. 214 00:10:27,210 --> 00:10:29,800 Så lad os rydde skærmen, og jeg har tænkt mig at gå tilbage 215 00:10:29,800 --> 00:10:32,870 til min arbejdsplads mappe til en anden. 216 00:10:32,870 --> 00:10:36,630 >> Lad os sige, at nu vil jeg lave en kopi af min pset0 mappe. 217 00:10:36,630 --> 00:10:42,940 Jeg kan ikke bare sige cp pset0 pset3, f.eks. 218 00:10:42,940 --> 00:10:46,220 Du får denne mærkelige budskab, udelade mappe pset0. 219 00:10:46,220 --> 00:10:47,439 Hvorfor får man den besked? 220 00:10:47,439 --> 00:10:49,730 Tja, det viser sig, at når har du en mappe, 221 00:10:49,730 --> 00:10:53,150 har andre ting inde i det, cp kommandoen ikke rigtig 222 00:10:53,150 --> 00:10:55,590 nødvendigvis ved, hvad de skal gøre med det. 223 00:10:55,590 --> 00:10:59,670 >> Vi er nødt til eksplicit fortælle Linux, terminalen, 224 00:10:59,670 --> 00:11:03,720 Jeg vil have dig til at kopiere pset0 mappe og kopi 225 00:11:03,720 --> 00:11:07,530 hver mappe, der eksisterer inde af det og hver fil, 226 00:11:07,530 --> 00:11:08,750 findes inde i den. 227 00:11:08,750 --> 00:11:13,270 Med andre ord, jeg har brug for dig til rekursivt dykke ned i pset0 228 00:11:13,270 --> 00:11:15,660 og lave en kopi af alt derinde. 229 00:11:15,660 --> 00:11:25,280 >> Hvis jeg ønsker at gøre det, hvad jeg kan gøre er cp-r, for rekursive, pset0 pset3. 230 00:11:25,280 --> 00:11:26,850 Hit Enter. 231 00:11:26,850 --> 00:11:29,290 Nu, hvis jeg liste de indholdet af min mappe, 232 00:11:29,290 --> 00:11:32,180 Jeg ser der er den pset3 mappe, som jeg kan arbejde med. 233 00:11:32,180 --> 00:11:36,990 Og hvis jeg cd i pset3 nu og derefter en liste over indholdet, se, 234 00:11:36,990 --> 00:11:39,594 der er prøven og scratch.sb2 igen. 235 00:11:39,594 --> 00:11:40,510 Så det er ret cool. 236 00:11:40,510 --> 00:11:43,819 Så det er, hvordan du kan kopiere en hel bibliotek, og ikke bare en enkelt fil. 237 00:11:43,819 --> 00:11:45,860 Så hvis du ønsker at kopiere en mappe, bare husk 238 00:11:45,860 --> 00:11:49,830 at bruge -r flag, når du er arbejder med cp kommandoen. 239 00:11:49,830 --> 00:11:50,330 Okay. 240 00:11:50,330 --> 00:11:52,320 Så jeg har kopieret en fil, men Jeg har gjort det ved en fejltagelse. 241 00:11:52,320 --> 00:11:53,695 Og nu, jeg ønsker at slippe af med det. 242 00:11:53,695 --> 00:11:54,850 Hvordan gør jeg det? 243 00:11:54,850 --> 00:11:56,830 Igen, hvis du er fortrolig med en GUI interface, 244 00:11:56,830 --> 00:11:58,310 du kan højreklikke og bare vælge Slet. 245 00:11:58,310 --> 00:12:00,630 Og det vil sende det til skraldespanden eller papirkurven. 246 00:12:00,630 --> 00:12:03,320 Men på kommandolinjen, vi kan bare skrive rm, for fjerne, 247 00:12:03,320 --> 00:12:05,580 og derefter navnet på den fil vi ønsker at slippe af med. 248 00:12:05,580 --> 00:12:08,614 >> Nu rm er meget forsigtig. 249 00:12:08,614 --> 00:12:11,280 Det gør en masse dobbeltkontrol, at sikre, at du rent faktisk 250 00:12:11,280 --> 00:12:12,377 ønsker at slette filen. 251 00:12:12,377 --> 00:12:15,460 Det vil ikke gøre nogen fejl, fordi der er ingen papirkurven her. 252 00:12:15,460 --> 00:12:17,010 Når vi sletter en fil, er det gået. 253 00:12:17,010 --> 00:12:18,710 Og der er virkelig ingen måde at gendanne det. 254 00:12:18,710 --> 00:12:20,730 Så vi er nødt til at være temmelig omhyggelig, og så rm 255 00:12:20,730 --> 00:12:23,110 kommer til at være virkelig forsigtig for os. 256 00:12:23,110 --> 00:12:27,120 >> Så lad os gå tilbage til IDE og slippe af med denne hi.txt fil 257 00:12:27,120 --> 00:12:29,640 at jeg skabte et minut siden med kopi. 258 00:12:29,640 --> 00:12:30,560 Så vi er i IDE. 259 00:12:30,560 --> 00:12:33,180 Og jeg vise indholdet af min mappe igen, bare for at give os nogle sammenhæng. 260 00:12:33,180 --> 00:12:36,500 Jeg mener, kan du se, at der er hi.txt, som jeg skabte for lidt siden. 261 00:12:36,500 --> 00:12:38,196 Nu, jeg ønsker at slippe af med det. 262 00:12:38,196 --> 00:12:38,820 Hvordan gør jeg det? 263 00:12:38,820 --> 00:12:39,810 >> Igen, bare Rm. 264 00:12:39,810 --> 00:12:46,220 Så jeg kan skrive rm hi.txt og tryk på Enter. 265 00:12:46,220 --> 00:12:47,970 Og der er rm væsen virkelig passe for os 266 00:12:47,970 --> 00:12:50,178 og sikre, at vi faktisk ønsker at slette denne fil. 267 00:12:50,178 --> 00:12:52,784 Vil du virkelig ønsker at fjerne regelmæssig tom fil hi.txt? 268 00:12:52,784 --> 00:12:55,200 Det er ligesom et operativsystem systemet, som Windows eller Mac, 269 00:12:55,200 --> 00:12:56,310 at du kan være fortrolig med dukker op 270 00:12:56,310 --> 00:12:58,770 at boksen siger er du virkelig sikker på at du ønsker at gøre dette. 271 00:12:58,770 --> 00:13:01,228 >> Jeg er temmelig sikker på at jeg vil det, så jeg har tænkt mig at skrive, yes-- 272 00:13:01,228 --> 00:13:04,390 eller jeg kunne også bare skriv y-- og tryk på Enter. 273 00:13:04,390 --> 00:13:08,620 Og hvis jeg vise indholdet af min mappe igen, hi.txt væk. 274 00:13:08,620 --> 00:13:10,000 Ikke dårligt, ikke sandt? 275 00:13:10,000 --> 00:13:12,410 Lad os presse Kontrol L, bare at slippe af med alle disse ting 276 00:13:12,410 --> 00:13:14,900 og få os tilbage på toppen af ​​skærmen. 277 00:13:14,900 --> 00:13:18,520 >> Nu er der en måde at kortslutning rm, så 278 00:13:18,520 --> 00:13:20,090 at det ikke spørge os det spørgsmål. 279 00:13:20,090 --> 00:13:22,060 Vi har virkelig ved, at vi ønsker at slippe af med den pågældende fil, 280 00:13:22,060 --> 00:13:23,490 og vi ønsker ikke engang at blive spurgt spørgsmålet. 281 00:13:23,490 --> 00:13:24,720 Hvordan gør vi det? 282 00:13:24,720 --> 00:13:27,180 Nå, kan vi angive en ekstra flag, ligesom vi 283 00:13:27,180 --> 00:13:30,400 gjorde med cp, hvor vi kunne tilføje -r flag, 284 00:13:30,400 --> 00:13:32,800 til rekursivt kopiere ind i en mappe. 285 00:13:32,800 --> 00:13:35,630 Der er et andet flag for rm, som er -F, 286 00:13:35,630 --> 00:13:39,470 som er at tvinge rm at gøre præcis hvad vi fortæller det at gøre. 287 00:13:39,470 --> 00:13:44,610 >> Så lad os sige, at nu vil jeg at slippe af med min hej.txt fil. 288 00:13:44,610 --> 00:13:46,490 Jeg vil ikke have, at man enten. 289 00:13:46,490 --> 00:13:47,370 Hvad kan jeg gøre? 290 00:13:47,370 --> 00:13:54,710 Tja, jeg kan rm -f hej.txt. 291 00:13:54,710 --> 00:13:57,530 Hvad tror du er kommer til at ske her? 292 00:13:57,530 --> 00:13:58,030 Det er gået. 293 00:13:58,030 --> 00:13:59,363 Ikke selv beder mig spørgsmålet. 294 00:13:59,363 --> 00:14:03,600 Og i virkeligheden, hvis jeg liste indholdet af min mappe igen, er det gået. 295 00:14:03,600 --> 00:14:05,750 Der er ingen fortryd her. 296 00:14:05,750 --> 00:14:09,554 hej.txt er væk, og jeg var ikke spurgte selv hvis jeg ønskede at slette den. 297 00:14:09,554 --> 00:14:11,595 Hvad hvis jeg ønsker at slippe af en hel mappe? 298 00:14:11,595 --> 00:14:14,180 299 00:14:14,180 --> 00:14:17,039 Den måde du gør det er meget lig kopiere. 300 00:14:17,039 --> 00:14:19,080 Hvis du vil slette en mappe, du ikke bare 301 00:14:19,080 --> 00:14:22,121 ønsker at slette den mappe, du ønsker at slette alt inde i den. 302 00:14:22,121 --> 00:14:26,250 Og så du bruger-r, til rekursivt slette en mappe. 303 00:14:26,250 --> 00:14:28,600 >> Så lad os rm -r pset2. 304 00:14:28,600 --> 00:14:31,870 Jeg er faktisk ikke arbejder på pset2, så jeg kan slippe af denne mappe. 305 00:14:31,870 --> 00:14:33,040 Jeg ramte Enter. 306 00:14:33,040 --> 00:14:35,050 Skal jeg vil fjerne den mappe, pset2? 307 00:14:35,050 --> 00:14:37,160 Ja jeg gør. 308 00:14:37,160 --> 00:14:41,150 Og hvis jeg vise indholdet af min mappe igen, er det gået. 309 00:14:41,150 --> 00:14:41,650 Okay? 310 00:14:41,650 --> 00:14:43,739 >> Endnu variation af dette tema. 311 00:14:43,739 --> 00:14:46,280 Så jeg vil rydde skærmen igen, at sætte alt på toppen. 312 00:14:46,280 --> 00:14:47,420 Hit ls. 313 00:14:47,420 --> 00:14:49,890 Nu, jeg ønsker at slippe af min pset3 mappe, 314 00:14:49,890 --> 00:14:52,810 og jeg virkelig ved, at jeg ønsker at slippe af med min pset3 mappe. 315 00:14:52,810 --> 00:15:00,120 Jeg kan rekursivt og magt fjerne min pset3 mappe. 316 00:15:00,120 --> 00:15:03,900 >> Nu, du kommer til at være virkelig forsigtig, når du bruger rm -rf. 317 00:15:03,900 --> 00:15:06,784 Som du programmere mere, vil det være noget du bare gør virkelig hurtigt. 318 00:15:06,784 --> 00:15:08,200 Og i virkeligheden, jeg gør det hele tiden. 319 00:15:08,200 --> 00:15:10,380 Men det kan føre til en vis katastrofale følger, 320 00:15:10,380 --> 00:15:12,340 Hvis du ved et uheld slette de forkerte ting. 321 00:15:12,340 --> 00:15:15,089 Så jeg vil have dig til at være opmærksom på, at dette er en mulighed til rådighed for dig, 322 00:15:15,089 --> 00:15:17,220 men bruger det sparsomt, og bruge det med forsigtighed. 323 00:15:17,220 --> 00:15:20,910 >> Jeg kender til en kendsgerning jeg ikke arbejder på mit problem sæt 3 længere, så jeg er 324 00:15:20,910 --> 00:15:22,550 kommer til at slippe af med alle disse filer. 325 00:15:22,550 --> 00:15:26,420 Og jeg ved, jeg ønsker ikke at blive spurgt hver eneste gang, hvis jeg ønsker at slette 326 00:15:26,420 --> 00:15:30,640 en fil, så jeg har tænkt mig at rm -rf pset3. 327 00:15:30,640 --> 00:15:32,640 Ikke selv spørge mig, om jeg ønskede at slippe af med det. 328 00:15:32,640 --> 00:15:33,840 Jeg ramte ls. 329 00:15:33,840 --> 00:15:35,680 pset3 er væk. 330 00:15:35,680 --> 00:15:39,730 Så det er alle de variationer, som du kan bruge til at slippe af filer med rm. 331 00:15:39,730 --> 00:15:43,620 >> Den sidste kommandolinje kommando, der er gå til temmelig nyttigt for dig 332 00:15:43,620 --> 00:15:46,391 er mv, som er en forkortelse for træk. 333 00:15:46,391 --> 00:15:48,960 Flyt er dybest set svarer til at omdøbe. 334 00:15:48,960 --> 00:15:53,870 Den bevæger en fil fra et sted til et en anden, kilden til destinationen. 335 00:15:53,870 --> 00:15:59,400 Lad os se, hvor brug af et træk måske være praktisk ved terminalen vinduet. 336 00:15:59,400 --> 00:16:02,070 >> Så jeg er i min pset1 bibliotek, og jeg har bemærket 337 00:16:02,070 --> 00:16:03,860 noget er gået lidt galt. 338 00:16:03,860 --> 00:16:08,620 Jeg arbejdede på min grådige problem, men jeg ved et uheld kaldte det GReddy. 339 00:16:08,620 --> 00:16:11,380 Så når jeg prøver og køre det igennem check50, betyder det ikke rigtig fungere. 340 00:16:11,380 --> 00:16:12,630 Jeg har et par muligheder. 341 00:16:12,630 --> 00:16:16,220 Vi kunne gøre, hvad vi har gjort før, som er at lave en kopi af filen. 342 00:16:16,220 --> 00:16:23,960 Jeg kunne kopiere greddy.c at greedy.c, ikke? 343 00:16:23,960 --> 00:16:25,580 Hit Enter. 344 00:16:25,580 --> 00:16:28,180 Jeg kan se, at begge filer er der. 345 00:16:28,180 --> 00:16:36,337 Og så kunne jeg RM, at fjerne, greddy.c. 346 00:16:36,337 --> 00:16:37,170 Det slipper af det. 347 00:16:37,170 --> 00:16:40,920 Så det ville arbejde, efter jeg bekræfte at jeg ønsker at slippe af med det. 348 00:16:40,920 --> 00:16:44,770 Og jeg faktisk har omdøbt greddy.c at greedy.c. 349 00:16:44,770 --> 00:16:48,460 Jeg kopierede det, og derefter fjernet originalen. 350 00:16:48,460 --> 00:16:50,170 >> Men det er en multi-trins proces. 351 00:16:50,170 --> 00:16:51,670 Og helt sikkert, der er en bedre måde. 352 00:16:51,670 --> 00:16:52,420 I virkeligheden er der. 353 00:16:52,420 --> 00:16:55,810 Så lad os ramte Kontrol L, bare at bringe denne op igen, 354 00:16:55,810 --> 00:16:58,680 og en liste over indholdet af min mappe igen. 355 00:16:58,680 --> 00:17:00,350 >> Så lad os sige, åh, jeg har lavet en fejl. 356 00:17:00,350 --> 00:17:03,470 Jeg faktisk virkelig ønskede at kalde filen greddy.c. 357 00:17:03,470 --> 00:17:11,369 Med ét slag, kan jeg skrive flytte greedy.c at greddy.c. 358 00:17:11,369 --> 00:17:12,470 Hit Enter. 359 00:17:12,470 --> 00:17:15,210 Og nu, har jeg ikke at kopiere og fjerne det, 360 00:17:15,210 --> 00:17:16,880 Jeg var bare i stand til at omdøbe den. 361 00:17:16,880 --> 00:17:18,710 One-stop-shopping. 362 00:17:18,710 --> 00:17:21,160 >> Nu er der en masse andre grundlæggende kommandolinje hjælpeprogrammer 363 00:17:21,160 --> 00:17:22,640 som du kan bruge med Linux kommandolinjen. 364 00:17:22,640 --> 00:17:24,990 Og vi vil diskutere en masse af dem i fremtiden i CS50. 365 00:17:24,990 --> 00:17:27,948 Men for nu, bare at få dine fødder våd med at arbejde med denne terminal 366 00:17:27,948 --> 00:17:30,540 miljø, disse fem kommandoer bør få dig temmelig langt 367 00:17:30,540 --> 00:17:34,990 navigere rundt og arbejde med filer i din IDE 368 00:17:34,990 --> 00:17:37,770 eller uanset Linux-baseret operativsystem, du bruger. 369 00:17:37,770 --> 00:17:40,580 >> Hvis du er nysgerrig og du ønsker at se fremad lidt på nogle 370 00:17:40,580 --> 00:17:43,420 af kommandolinje-kommandoer vi skal bruge i fremtiden, 371 00:17:43,420 --> 00:17:46,930 her er en liste over et par af de mere almindelige. 372 00:17:46,930 --> 00:17:47,820 Jeg er Doug Lloyd. 373 00:17:47,820 --> 00:17:49,860 Det er CS50. 374 00:17:49,860 --> 00:17:52,598