1 00:00:00,000 --> 00:00:05,060 >> [MUSIC SPILLE] 2 00:00:05,060 --> 00:00:05,890 >> DOUG LLOYD: OK. 3 00:00:05,890 --> 00:00:08,680 Så la oss snakke om hvordan du bruk Linux kommandolinjen. 4 00:00:08,680 --> 00:00:11,860 Nå, CS50 IDE, eller i Faktisk, selv en CS50 apparatet, 5 00:00:11,860 --> 00:00:15,210 hvis du er kjent med det, eller du tar en eldre versjon av CS50, 6 00:00:15,210 --> 00:00:17,420 er en sky-basert maskin som går Ubuntu, 7 00:00:17,420 --> 00:00:20,259 som er en av de mange varianter av operativsystemet Linux. 8 00:00:20,259 --> 00:00:22,300 Linux operativsystem er favorisert av programmerere, 9 00:00:22,300 --> 00:00:25,690 fordi det er bare kulere, ikke sant? 10 00:00:25,690 --> 00:00:29,170 >> Mange moderne Linux-distribusjoner har grafiske brukergrensesnitt, 11 00:00:29,170 --> 00:00:33,710 som vi også kaller GUI, G-U-I, til tillate enkel mus-basert navigasjon, 12 00:00:33,710 --> 00:00:36,920 som du er sikkert kjent med, hvis du er en Windows- eller Mac-bruker, 13 00:00:36,920 --> 00:00:39,961 flytte rundt på musen, dobbeltklikke på ikoner, og så videre. 14 00:00:39,961 --> 00:00:42,210 Likevel skjønt, som programmerer, og selv om IDE 15 00:00:42,210 --> 00:00:44,800 inneholder evnen til å gjøre noen grafiske bruker 16 00:00:44,800 --> 00:00:47,400 ting, klikke og dra, og alt det der, 17 00:00:47,400 --> 00:00:50,197 du vil fortsatt være å bruke terminalvinduet ganske ofte. 18 00:00:50,197 --> 00:00:52,280 Og du kan gjøre mange av de samme oppgavene som du kan 19 00:00:52,280 --> 00:00:53,905 gjøre med en mus med tastaturkommandoer. 20 00:00:53,905 --> 00:00:56,821 Og vi kommer til å snakke litt om hva noen av disse kommandoene 21 00:00:56,821 --> 00:00:58,050 er akkurat nå. 22 00:00:58,050 --> 00:01:02,490 >> Nå kan disse kommandoene brukes på en Unix-basert operativsystem 23 00:01:02,490 --> 00:01:06,790 Dette systemet omfatter en Linux, men omfatter også Mac OS. 24 00:01:06,790 --> 00:01:12,930 Hvis du åpner opp Terminal på Mac, du kan bruke disse eksakte kommandoer. 25 00:01:12,930 --> 00:01:15,705 Windows har også Command Spør, men noen av kommandoene 26 00:01:15,705 --> 00:01:17,871 er litt forskjellige, så det faktisk ikke fungerer, 27 00:01:17,871 --> 00:01:20,080 fordi Windows er ikke et Unix-basert system. 28 00:01:20,080 --> 00:01:22,620 >> Så la oss ta en titt på noen av disse linux kommandoer. 29 00:01:22,620 --> 00:01:26,100 Den første som du vil sannsynligvis bruke ganske mye er ls. 30 00:01:26,100 --> 00:01:30,410 Det er en liten bokstav l, etterfulgt av en små bokstaver s, som er en forkortelse for listen. 31 00:01:30,410 --> 00:01:33,720 Og hva listen kommandoen gjør er det gir deg en avlesning av alle filer 32 00:01:33,720 --> 00:01:35,670 og mapper i gjeldende mappe. 33 00:01:35,670 --> 00:01:39,430 Så du kan se alt du kan komme til fra der du er nå. 34 00:01:39,430 --> 00:01:41,545 >> Så jeg har åpnet opp her CS50 IDE. 35 00:01:41,545 --> 00:01:44,540 Og jeg kommer til å zoome inn på en andre for å gi deg en nærmere titt, 36 00:01:44,540 --> 00:01:47,240 men her er bredt bilde av hva IDE ser ut. 37 00:01:47,240 --> 00:01:49,580 Til venstre kan du se at vi har en fil treet, som du antakelig 38 00:01:49,580 --> 00:01:52,663 kjent med, dobbeltklikke, og filer og mapper og alt det der. 39 00:01:52,663 --> 00:01:54,694 Så det er der fortsatt i CS50 apparatet. 40 00:01:54,694 --> 00:01:57,860 I sentrum i toppen er der du er skal skrive koden din, en gang 41 00:01:57,860 --> 00:01:58,960 du klikker på en fil. 42 00:01:58,960 --> 00:02:00,900 Og i bunnen, vi har et terminalvindu, 43 00:02:00,900 --> 00:02:04,040 som er der vi kan utføre disse terminal kommandoer. 44 00:02:04,040 --> 00:02:07,460 >> Jeg kommer til å zoome inn og hodet over her, bare 45 00:02:07,460 --> 00:02:12,360 å vise deg at, faktisk, kan jeg klikk på følgende filer og mapper. 46 00:02:12,360 --> 00:02:17,010 Så klart, der jeg er i dag, har jeg to mapper, kalt pset0 og pset1, 47 00:02:17,010 --> 00:02:20,520 og tre filer, en som heter hallo, en som heter hello.c, 48 00:02:20,520 --> 00:02:22,870 og en som heter hello.txt. 49 00:02:22,870 --> 00:02:27,100 >> Så la oss gå ned til terminalen vindu og få en nærmere titt. 50 00:02:27,100 --> 00:02:31,010 Så vi bare snakket, igjen, om At vi har tre filer og to 51 00:02:31,010 --> 00:02:32,970 mapper i gjeldende mappe. 52 00:02:32,970 --> 00:02:37,080 Hvis jeg skriver ls, som igjen er kommandoen for å liste 53 00:02:37,080 --> 00:02:40,870 innholdet av den aktuelle katalog, og da jeg traff Enter, 54 00:02:40,870 --> 00:02:47,220 ser det jeg ser, hallo, hello.c, hello.txt, pset0 og pset1. 55 00:02:47,220 --> 00:02:49,620 >> pset0 og pset1 er farget blå, for å indikere 56 00:02:49,620 --> 00:02:52,420 til deg at de er kataloger at vi kunne navigere i. 57 00:02:52,420 --> 00:02:54,503 Og vi vil lære litt litt om hvordan du navigerer 58 00:02:54,503 --> 00:02:56,290 i kataloger i et minutt. 59 00:02:56,290 --> 00:03:00,920 Og alle andre ting er farget svart, hvis det er en tekstfil eller en kildekode 60 00:03:00,920 --> 00:03:03,590 fil, og grønt, hvis det er en kjørbar fil. 61 00:03:03,590 --> 00:03:06,367 Så klart, det betyr at jeg kunne kjøre et program som heter, hallo. 62 00:03:06,367 --> 00:03:07,950 Det er det den grønne det betyr. 63 00:03:07,950 --> 00:03:10,080 Men i utgangspunktet, å skrive ls kommandoen har tillatt 64 00:03:10,080 --> 00:03:13,470 meg til å se på alt som eksisterer i min nåværende katalogen, som 65 00:03:13,470 --> 00:03:17,940 samsvarer med det vi ser her, i grafisk visning av det samme. 66 00:03:17,940 --> 00:03:19,940 Neste kommando du vil sannsynligvis bruke ganske mye 67 00:03:19,940 --> 00:03:24,792 er cd, små bokstaver c, små bokstaver d, som er en forkortelse for change directory. 68 00:03:24,792 --> 00:03:27,500 Dette gir oss muligheten til å gjøre det jeg var snakker om en andre siden, som 69 00:03:27,500 --> 00:03:31,150 er å navigere mellom kataloger på kommando 70 00:03:31,150 --> 00:03:33,700 linje, i motsetning til dobbeltklikke på mapper. 71 00:03:33,700 --> 00:03:37,250 Så hvis vi skriver cd og deretter navnet på en katalog, 72 00:03:37,250 --> 00:03:40,890 vi kan komme inn i den katalogen. 73 00:03:40,890 --> 00:03:44,680 >> Som en side, vet at navnet av gjeldende katalog er alltid 74 00:03:44,680 --> 00:03:48,670 prikk, og navnet på katalogen ett nivå over der vi er nå, 75 00:03:48,670 --> 00:03:54,820 som er navnet på mappen som vår mappe er, prikk, dot-- 76 00:03:54,820 --> 00:03:56,851 eller hvor vår mappe er, er prikk, prikk. 77 00:03:56,851 --> 00:03:59,350 Og hvis du noen gang nysgjerrig på navnet på katalogen, 78 00:03:59,350 --> 00:04:03,430 du kan skrive pwd, som står for nåværende arbeidskatalog. 79 00:04:03,430 --> 00:04:06,827 Vi vil ta en titt på alle disse nå, ved å gå tilbake til CS50 IDE. 80 00:04:06,827 --> 00:04:08,160 Så jeg er tilbake i min arbeidsplass nå. 81 00:04:08,160 --> 00:04:11,930 Og jeg skal zoome inn igjen på terminal, slik at vi kan ta en titt 82 00:04:11,930 --> 00:04:14,209 ved å bevege seg rundt i IDE. 83 00:04:14,209 --> 00:04:16,250 Så jeg kommer til å liste Innholdet i min katalog 84 00:04:16,250 --> 00:04:19,220 igjen, bare for å slipes oss i der vi er. 85 00:04:19,220 --> 00:04:21,740 Så hvis jeg skriver ls, som er for listen igjen, 86 00:04:21,740 --> 00:04:24,160 Jeg ser at jeg kan få til pset0 og pset1. 87 00:04:24,160 --> 00:04:26,420 De er de kataloger Jeg kan komme til herfra. 88 00:04:26,420 --> 00:04:30,400 Jeg vet det, fordi IDE gir meg et hint ved å fargelegge dem blå. 89 00:04:30,400 --> 00:04:33,295 >> La oss si at jeg ønsker å komme inn på min pset1 katalog, 90 00:04:33,295 --> 00:04:35,310 fordi jeg jobber med oppgavesettet en. 91 00:04:35,310 --> 00:04:41,380 Jeg kan skrive cd-- igjen, kort for endre directory-- plass, pset1. 92 00:04:41,380 --> 00:04:43,334 Og hvis jeg trykker Enter, legge merke til hva som skjer. 93 00:04:43,334 --> 00:04:45,000 Det ser ikke ut som mye har skjedd. 94 00:04:45,000 --> 00:04:50,510 Men hvis du ser på teksten, det nå forteller meg at jeg er i ~ / arbeidsplass / pset1. 95 00:04:50,510 --> 00:04:55,510 Jeg har navigert inn i pset1 mappen som var innenfor mitt arbeidsområde. 96 00:04:55,510 --> 00:05:00,560 >> Og hvis jeg skriver ls, ser jeg noen forskjellige ting her, ikke sant? 97 00:05:00,560 --> 00:05:03,810 Dette er ikke det samme liste som jeg har sett før. 98 00:05:03,810 --> 00:05:05,350 Jeg har navigert til pset1. 99 00:05:05,350 --> 00:05:08,560 Og så nå, når jeg skriver ls, jeg å få sammenheng med hva kan jeg 100 00:05:08,560 --> 00:05:12,600 se innenfra pset1 mappen. 101 00:05:12,600 --> 00:05:16,056 >> Nå kommer jeg til å skrive kontroll l, som går akkurat klar av skjermen. 102 00:05:16,056 --> 00:05:18,180 Og jeg kommer til å liste opp innholdet i katalogen 103 00:05:18,180 --> 00:05:18,880 igjen, bare så du kan se. 104 00:05:18,880 --> 00:05:20,730 Jeg ville bare gjøre det til tømme ut noen av tingene 105 00:05:20,730 --> 00:05:22,521 at du så ned nedenfor og for å hindre at denne 106 00:05:22,521 --> 00:05:24,660 fra å gå for langt ned utenfor rekkevidde. 107 00:05:24,660 --> 00:05:28,440 >> Nå, jeg sa tidligere at, hvis jeg vil ha for å navigere til gjeldende mappe, 108 00:05:28,440 --> 00:05:31,580 Jeg kan skrive cd plass prikk. 109 00:05:31,580 --> 00:05:32,080 Trykk Enter. 110 00:05:32,080 --> 00:05:33,330 Det gjør ikke noe, ikke sant? 111 00:05:33,330 --> 00:05:35,480 Jeg endrer kataloger til gjeldende katalog. 112 00:05:35,480 --> 00:05:37,813 Du er ikke alltid kommer til å finne et behov for et enkelt punkt, 113 00:05:37,813 --> 00:05:39,540 men du vil ved behov. 114 00:05:39,540 --> 00:05:41,950 >> La oss si at jeg vil ha å flytte opp ett nivå. 115 00:05:41,950 --> 00:05:44,450 Jeg ønsker å komme tilbake til min arbeidsplass katalogen. 116 00:05:44,450 --> 00:05:49,800 Jeg kan ikke skrive inn cd arbeidsområde, det er ingen slik fil eller katalog. 117 00:05:49,800 --> 00:05:52,780 Og grunnen til at-- hvis jeg skriver ls ene mer tid-- 118 00:05:52,780 --> 00:05:58,060 er at det er ingen katalog kalt arbeidsområdet innsiden av min pset1 katalogen. 119 00:05:58,060 --> 00:06:00,275 Jeg kommer til å fjerne min skjermen igjen med kontroll l. 120 00:06:00,275 --> 00:06:02,150 Husk hva jeg sa tidligere, men at vi 121 00:06:02,150 --> 00:06:04,010 kan navigere tilbake med prikk, prikk. 122 00:06:04,010 --> 00:06:05,880 Det er navnet på den overordnede katalogen. 123 00:06:05,880 --> 00:06:10,727 Så hvis jeg skriver cd, mellomrom, punktum, prikk, og trykk Enter, 124 00:06:10,727 --> 00:06:11,810 nå se på hva som skjedde. 125 00:06:11,810 --> 00:06:15,250 Min ledeteksten forteller meg at jeg er tilbake i min ~ / arbeidsområdet katalogen. 126 00:06:15,250 --> 00:06:19,360 Jeg flyttet opp ett nivå, takk til prikk, prikk. 127 00:06:19,360 --> 00:06:23,400 >> Nå, la oss si at jeg bruker en operativsystem som er Linux-baserte, 128 00:06:23,400 --> 00:06:25,440 men gjør ikke nødvendigvis fortell meg hvor jeg er. 129 00:06:25,440 --> 00:06:28,370 Dette skjer for å fortelle oss at Jeg er i ~ / arbeidsområde akkurat nå, 130 00:06:28,370 --> 00:06:29,280 rett ved ledeteksten. 131 00:06:29,280 --> 00:06:31,940 Men jeg kunne være helt tapt i et rot av mapper, 132 00:06:31,940 --> 00:06:34,946 og jeg har ingen anelse om hvor jeg er og ingen anelse om hvor jeg ønsker å komme tilbake til. 133 00:06:34,946 --> 00:06:36,320 Det er to ting som jeg kan gjøre. 134 00:06:36,320 --> 00:06:40,920 >> Først av alt, kan jeg regne ut hvor jeg er, ved å skrive pwd. 135 00:06:40,920 --> 00:06:42,720 Det er min nåværende arbeidskatalog. 136 00:06:42,720 --> 00:06:45,830 Og hvis jeg trykker Enter, det forteller meg akkurat der jeg er. 137 00:06:45,830 --> 00:06:49,400 Nå / home / ubuntu er lang måte å si, tilde, 138 00:06:49,400 --> 00:06:51,290 som er hjemmekatalogen. 139 00:06:51,290 --> 00:06:56,540 Men det forteller meg at jeg er i home / ubuntu / arbeidsområde, eller ~ / arbeidsområde. 140 00:06:56,540 --> 00:07:00,700 >> Jeg kommer til å navigere til min pset1 katalogen på nytt, 141 00:07:00,700 --> 00:07:02,229 og jeg kommer til å vise innholdet. 142 00:07:02,229 --> 00:07:04,770 Og jeg ser at jeg har en annen katalog der, kalles statister. 143 00:07:04,770 --> 00:07:09,020 Så jeg kommer til å cd inn statister, og så jeg kommer til å tømme skjermen min. 144 00:07:09,020 --> 00:07:11,540 >> Så nå er jeg ganske langt i, ikke sant? 145 00:07:11,540 --> 00:07:13,680 Hva om jeg ønsker å sikkerhets til arbeidsområdet umiddelbart? 146 00:07:13,680 --> 00:07:15,138 Det er et par ting jeg kunne gjøre. 147 00:07:15,138 --> 00:07:18,750 Jeg kunne skrive cd, prikk, prikk, skråstrek, punktum, prikk, for å gå opp ett nivå og deretter 148 00:07:18,750 --> 00:07:19,640 et annet nivå. 149 00:07:19,640 --> 00:07:21,090 Men det er litt irriterende. 150 00:07:21,090 --> 00:07:24,990 >> Så hvis jeg noen gang vil komme tilbake til bare min hjemmekatalog, tilde, 151 00:07:24,990 --> 00:07:27,690 Jeg kan skrive cd med ingenting etter det. 152 00:07:27,690 --> 00:07:29,224 Cd, Enter. 153 00:07:29,224 --> 00:07:30,140 Og nå er jeg i tilde. 154 00:07:30,140 --> 00:07:34,310 Og hvis jeg ønsker å få til arbeidsområdet, Jeg kan bare skrive cd arbeidsområde. 155 00:07:34,310 --> 00:07:36,770 Og det er hvordan du jobber skiftende kataloger 156 00:07:36,770 --> 00:07:42,080 innenfor CS50 IDE eller Linux operativsystemet på kommandolinjen. 157 00:07:42,080 --> 00:07:42,580 Greit. 158 00:07:42,580 --> 00:07:45,610 Den neste som kanskje komme godt er mkdir, 159 00:07:45,610 --> 00:07:48,709 som er en forkortelse for lage en katalog, hvis jeg trenger for å lage en ny mappe. 160 00:07:48,709 --> 00:07:50,750 Hvis du er kjent med GUI operativsystem, 161 00:07:50,750 --> 00:07:51,820 du kan høyreklikke. 162 00:07:51,820 --> 00:07:54,500 Og så, når kontekstmenyen dukker opp, velger du Ny mappe. 163 00:07:54,500 --> 00:07:56,250 Det er trolig hvordan du har gjort det før. 164 00:07:56,250 --> 00:08:00,979 Men vi kan også opprette kataloger på kommandolinjen. 165 00:08:00,979 --> 00:08:02,020 Så vi er tilbake i IDE. 166 00:08:02,020 --> 00:08:08,020 Jeg skal zoome inn på terminalen og vise innholdet i min katalog 167 00:08:08,020 --> 00:08:11,882 igjen, bare for å gi oss en referanseramme. 168 00:08:11,882 --> 00:08:14,340 La oss si at, nå, har jeg avsluttet arbeidet på oppgavesettet 0 169 00:08:14,340 --> 00:08:15,580 og oppgavesettet en. 170 00:08:15,580 --> 00:08:19,390 Så jeg ønsker å opprette en ny katalog å jobbe på for oppgavesettet to. 171 00:08:19,390 --> 00:08:20,420 Hvordan gjør jeg det? 172 00:08:20,420 --> 00:08:24,132 >> Vel, igjen, kunne jeg høyreklikker på venstre side der og velg Ny mappe 173 00:08:24,132 --> 00:08:25,340 og skape en pset2 katalogen. 174 00:08:25,340 --> 00:08:26,240 Som ville fungere også. 175 00:08:26,240 --> 00:08:28,615 Men da jeg også gjøre det på kommandolinje ganske raskt, 176 00:08:28,615 --> 00:08:35,049 ved å skrive mkdir, space-- jeg skrevet i n, men-- plass pset2. 177 00:08:35,049 --> 00:08:38,659 Hvis jeg trykker på Enter og da jeg liste Innholdet i katalogen min igjen, 178 00:08:38,659 --> 00:08:40,710 Jeg ser det, ser nå Jeg har en pset2 mappe. 179 00:08:40,710 --> 00:08:43,110 Og jeg kan navigere inn at bruk av cd og gjøre 180 00:08:43,110 --> 00:08:45,614 alt arbeidet jeg må gjøre for pset2. 181 00:08:45,614 --> 00:08:48,530 Forresten, jeg vil bare pop over her veldig raskt til filen treet. 182 00:08:48,530 --> 00:08:53,494 Og du kan se det, også, i det grafiske File Explorer, 183 00:08:53,494 --> 00:08:56,160 Vi kan se at pset2 katalog har også blitt opprettet der. 184 00:08:56,160 --> 00:08:58,537 Og jeg kan navigere til det, ved hjelp av GUI i tillegg. 185 00:08:58,537 --> 00:09:00,870 Neste gang, og det er sannsynligvis kommer til å komme godt 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 Kopiere, i motsetning til alle de andre kommandoer vi har sett før, 188 00:09:06,960 --> 00:09:11,800 tar to argumenter, en kilde, den navnet på filen som du ønsker å kopiere, 189 00:09:11,800 --> 00:09:15,810 og et mål, der du ønsker å kopiere filen til. 190 00:09:15,810 --> 00:09:19,490 Det er ganske lett å kopiere en fil, så la oss gjøre det. 191 00:09:19,490 --> 00:09:20,640 >> Så vi er tilbake i IDE. 192 00:09:20,640 --> 00:09:24,540 Jeg kommer til å vise innholdet av min nåværende katalog med ls. 193 00:09:24,540 --> 00:09:28,310 Nå, la oss si at jeg vil ha å lage en kopi av hello.txt. 194 00:09:28,310 --> 00:09:32,120 Igjen, fra filen treet på igjen, det grafiske grensesnittet, 195 00:09:32,120 --> 00:09:35,969 Jeg kunne høyreklikke på hello.txt, lage en kopi, lime inn kopien. 196 00:09:35,969 --> 00:09:38,260 Men jeg kan gjøre det ganske raskt på kommandolinjen også. 197 00:09:38,260 --> 00:09:42,520 >> La oss si at jeg ønsker å kopiere hello.txt til hi.txt. 198 00:09:42,520 --> 00:09:45,850 Jeg kan cp, plass, hello.txt. 199 00:09:45,850 --> 00:09:48,850 Det er min kildefilen, så det er derfor Jeg kommer til å velge denne først. 200 00:09:48,850 --> 00:09:51,058 Og da trenger jeg å nevne den målfilen, hi.txt. 201 00:09:51,058 --> 00:09:53,690 202 00:09:53,690 --> 00:09:54,620 Jeg trykker på Enter. 203 00:09:54,620 --> 00:09:57,930 Og hvis jeg vise innholdet i min katalogen igjen, er det hi.txt. 204 00:09:57,930 --> 00:09:59,220 Jeg laget en kopi av det. 205 00:09:59,220 --> 00:10:01,090 Og faktisk, hvis jeg gikk inn hi.txt, jeg kunne 206 00:10:01,090 --> 00:10:04,030 se at det ville være et eksakt duplikat av alt som 207 00:10:04,030 --> 00:10:08,330 eksisterte i min hello.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 hva hvis du ønsker å kopiere en hel katalog? 210 00:10:12,680 --> 00:10:16,510 Så for en andre, la oss ta en titt på hva som er i min pset0 katalogen. 211 00:10:16,510 --> 00:10:23,950 Hvis jeg cd pset0 og vise innholdet, Jeg har en katalog som heter, prøve, 212 00:10:23,950 --> 00:10:26,252 og en ripe fil, scratch.sb2. 213 00:10:26,252 --> 00:10:27,210 Så det er godt å vite. 214 00:10:27,210 --> 00:10:29,800 Så la oss tømme displayet, og jeg kommer til å gå tilbake 215 00:10:29,800 --> 00:10:32,870 til min arbeidsplass katalog for et sekund. 216 00:10:32,870 --> 00:10:36,630 >> La oss si at, nå ønsker jeg å lage en kopi av min pset0 katalogen. 217 00:10:36,630 --> 00:10:42,940 Jeg kan ikke bare si cp pset0 pset3, for eksempel. 218 00:10:42,940 --> 00:10:46,220 Du får denne rare melding, utelate katalogen pset0. 219 00:10:46,220 --> 00:10:47,439 Hvorfor får du denne meldingen? 220 00:10:47,439 --> 00:10:49,730 Vel, det viser seg at når du har en katalog som 221 00:10:49,730 --> 00:10:53,150 har andre ting på innsiden av det, cp kommandoen gjør egentlig ikke 222 00:10:53,150 --> 00:10:55,590 nødvendigvis vet hva de skal gjøre med det. 223 00:10:55,590 --> 00:10:59,670 >> Vi trenger å eksplisitt si Linux, terminalen, 224 00:10:59,670 --> 00:11:03,720 Jeg vil at du skal kopiere pset0 katalog og kopi 225 00:11:03,720 --> 00:11:07,530 hver mappe som finnes inne av det og hver fil som 226 00:11:07,530 --> 00:11:08,750 finnes på innsiden av det. 227 00:11:08,750 --> 00:11:13,270 Med andre ord, jeg trenger deg til rekursivt dykke ned i pset0 228 00:11:13,270 --> 00:11:15,660 og lage en kopi av alt der inne. 229 00:11:15,660 --> 00:11:25,280 >> Hvis jeg ønsker å gjøre det, hva jeg kan gjøre er cp-r, for rekursiv, pset0 pset3. 230 00:11:25,280 --> 00:11:26,850 Trykk Enter. 231 00:11:26,850 --> 00:11:29,290 Nå, hvis jeg liste innholdet i katalogen min, 232 00:11:29,290 --> 00:11:32,180 Jeg ser det er det pset3 katalog som jeg kan jobbe med. 233 00:11:32,180 --> 00:11:36,990 Og hvis jeg cd til pset3 nå og deretter vise innholdet, utseende, 234 00:11:36,990 --> 00:11:39,594 det er prøven og scratch.sb2 igjen. 235 00:11:39,594 --> 00:11:40,510 Så det er ganske kult. 236 00:11:40,510 --> 00:11:43,819 Så det er hvordan du kan kopiere en hel katalog, og ikke bare en enkelt fil. 237 00:11:43,819 --> 00:11:45,860 Så hvis du ønsker å kopiere en katalog, bare husk 238 00:11:45,860 --> 00:11:49,830 å bruke -r flagget når du er arbeider med cp-kommandoen. 239 00:11:49,830 --> 00:11:50,330 Greit. 240 00:11:50,330 --> 00:11:52,320 Så jeg har kopiert en fil, men Jeg har gjort det ved en feiltakelse. 241 00:11:52,320 --> 00:11:53,695 Og nå, jeg ønsker å bli kvitt det. 242 00:11:53,695 --> 00:11:54,850 Hvordan gjør jeg det? 243 00:11:54,850 --> 00:11:56,830 Igjen, hvis du er kjent med et GUI-grensesnitt, 244 00:11:56,830 --> 00:11:58,310 du kan høyreklikke og bare velge Slett. 245 00:11:58,310 --> 00:12:00,630 Og det vil sende det til søppel 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 deretter navnet på filen vi ønsker å bli kvitt. 248 00:12:05,580 --> 00:12:08,614 >> Nå er rm veldig forsiktig. 249 00:12:08,614 --> 00:12:11,280 Det gjør mye av dobbeltsjekket, å sørge for at du faktisk 250 00:12:11,280 --> 00:12:12,377 ønsker å slette filen. 251 00:12:12,377 --> 00:12:15,460 Det vil ikke gjøre noen feil, fordi det er ingen papirkurven her. 252 00:12:15,460 --> 00:12:17,010 Når vi sletter en fil, er den borte. 253 00:12:17,010 --> 00:12:18,710 Og det er egentlig ikke mulig å gjenopprette den. 254 00:12:18,710 --> 00:12:20,730 Så vi må være ganske forsiktig, og så rm 255 00:12:20,730 --> 00:12:23,110 kommer til å være veldig forsiktig for oss. 256 00:12:23,110 --> 00:12:27,120 >> Så la oss gå tilbake til IDE og bli kvitt det hi.txt fil 257 00:12:27,120 --> 00:12:29,640 som jeg opprettet et minutt 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 innholdet i min katalog igjen, bare for å gi oss noen sammenheng. 260 00:12:33,180 --> 00:12:36,500 Jeg mener, kan du se at det er hi.txt, som jeg laget en liten stund siden. 261 00:12:36,500 --> 00:12:38,196 Nå ønsker jeg å bli kvitt det. 262 00:12:38,196 --> 00:12:38,820 Hvordan gjør jeg det? 263 00:12:38,820 --> 00:12:39,810 >> Igjen, bare rm. 264 00:12:39,810 --> 00:12:46,220 Så jeg kan skrive rm hi.txt og trykk Enter. 265 00:12:46,220 --> 00:12:47,970 Og det er rm velvære veldig forsiktig for oss 266 00:12:47,970 --> 00:12:50,178 og gjør at vi faktisk ønsker å slette denne filen. 267 00:12:50,178 --> 00:12:52,784 Har du virkelig ønsker å fjerne vanlig tom fil hi.txt? 268 00:12:52,784 --> 00:12:55,200 Det er akkurat som en drifts system, som Windows eller Mac, 269 00:12:55,200 --> 00:12:56,310 at du kan være kjent med dukker opp 270 00:12:56,310 --> 00:12:58,770 den boksen sier er du egentlig sikker på at du ønsker å gjøre dette. 271 00:12:58,770 --> 00:13:01,228 >> Jeg er ganske sikker på at jeg vil dette, så jeg kommer til å skrive, yes-- 272 00:13:01,228 --> 00:13:04,390 eller jeg kunne også bare skriver Y- og trykk Enter. 273 00:13:04,390 --> 00:13:08,620 Og hvis jeg vise innholdet i min katalogen igjen, er hi.txt borte. 274 00:13:08,620 --> 00:13:10,000 Ikke dårlig, ikke sant? 275 00:13:10,000 --> 00:13:12,410 La oss trykk Kontroll L, bare å kvitte seg med alt dette 276 00:13:12,410 --> 00:13:14,900 og komme oss tilbake på toppen av skjermen. 277 00:13:14,900 --> 00:13:18,520 >> Nå er det en måte å kortslutning rm, så 278 00:13:18,520 --> 00:13:20,090 at den ikke spør oss det spørsmålet. 279 00:13:20,090 --> 00:13:22,060 Vi vet at vi ønsker å kvitte seg med denne filen, 280 00:13:22,060 --> 00:13:23,490 og vi ikke selv ønsker å bli spurt spørsmålet. 281 00:13:23,490 --> 00:13:24,720 Hvordan gjør vi det? 282 00:13:24,720 --> 00:13:27,180 Vel, vi kan spesifisere en ekstra flagg, akkurat som vi 283 00:13:27,180 --> 00:13:30,400 gjorde med cp hvor vi kunne legge -r flagg, 284 00:13:30,400 --> 00:13:32,800 rekursivt kopiere inn i en katalog. 285 00:13:32,800 --> 00:13:35,630 Det er en annen flagg for rm, som er -f, 286 00:13:35,630 --> 00:13:39,470 som er å tvinge rm å gjøre akkurat hva vi forteller det til å gjøre. 287 00:13:39,470 --> 00:13:44,610 >> Så la oss si at, nå ønsker jeg for å bli kvitt min hello.txt fil. 288 00:13:44,610 --> 00:13:46,490 Jeg ønsker ikke at en heller. 289 00:13:46,490 --> 00:13:47,370 Hva kan jeg gjøre? 290 00:13:47,370 --> 00:13:54,710 Vel, jeg kan rm -f hello.txt. 291 00:13:54,710 --> 00:13:57,530 Hva tror du er kommer til å skje her? 292 00:13:57,530 --> 00:13:58,030 Det er borte. 293 00:13:58,030 --> 00:13:59,363 Ikke engang spørre meg spørsmålet. 294 00:13:59,363 --> 00:14:03,600 Og faktisk, hvis jeg vise innholdet av katalogen min igjen, det er borte. 295 00:14:03,600 --> 00:14:05,750 Det finnes ingen angre her. 296 00:14:05,750 --> 00:14:09,554 hello.txt er borte, og jeg var ikke spurte om jeg ønsket å slette den. 297 00:14:09,554 --> 00:14:11,595 Hva om jeg ønsker å bli kvitt av en hel katalog? 298 00:14:11,595 --> 00:14:14,180 299 00:14:14,180 --> 00:14:17,039 Måten du gjør det er svært lik kopiere. 300 00:14:17,039 --> 00:14:19,080 Hvis du ønsker å slette en katalogen, gjør du ikke bare 301 00:14:19,080 --> 00:14:22,121 ønsker å slette katalogen, du vil slette alt på innsiden av det. 302 00:14:22,121 --> 00:14:26,250 Og så du bruke -r, til rekursivt slette en katalog. 303 00:14:26,250 --> 00:14:28,600 >> Så la oss rm -r pset2. 304 00:14:28,600 --> 00:14:31,870 Jeg er faktisk ikke jobber med pset2, så jeg kan bli kvitt den katalogen. 305 00:14:31,870 --> 00:14:33,040 Jeg trykker på Enter. 306 00:14:33,040 --> 00:14:35,050 Ønsker jeg å fjerne katalogen, pset2? 307 00:14:35,050 --> 00:14:37,160 Ja, det gjør jeg. 308 00:14:37,160 --> 00:14:41,150 Og hvis jeg vise innholdet i katalogen min igjen, det er borte. 309 00:14:41,150 --> 00:14:41,650 Greit? 310 00:14:41,650 --> 00:14:43,739 >> Én variant av dette temaet. 311 00:14:43,739 --> 00:14:46,280 Så jeg skal tømme skjermen igjen, å sette alt på toppen. 312 00:14:46,280 --> 00:14:47,420 Hit ls. 313 00:14:47,420 --> 00:14:49,890 Nå ønsker jeg å bli kvitt av min pset3 katalog, 314 00:14:49,890 --> 00:14:52,810 og jeg vet jeg vil kvitte seg med min pset3 katalogen. 315 00:14:52,810 --> 00:15:00,120 Jeg kan rekursivt og tvangsflyttet fjerne min pset3 katalogen. 316 00:15:00,120 --> 00:15:03,900 >> Nå, du kommer til å bli virkelig forsiktig når du bruker rm -rf. 317 00:15:03,900 --> 00:15:06,784 Som du programmere mer, vil det være noe du bare gjøre veldig raskt. 318 00:15:06,784 --> 00:15:08,200 Og faktisk, jeg gjør det hele tiden. 319 00:15:08,200 --> 00:15:10,380 Men det kan føre til en viss katastrofale konsekvenser, 320 00:15:10,380 --> 00:15:12,340 Hvis du ved et uhell slette feil ting. 321 00:15:12,340 --> 00:15:15,089 Så jeg vil at du skal være oppmerksom på at dette er et alternativ tilgjengelig for deg, 322 00:15:15,089 --> 00:15:17,220 men bruk den med måte, og bruke det med forsiktighet. 323 00:15:17,220 --> 00:15:20,910 >> Jeg vet for et faktum at jeg ikke jobber på mitt problem satt tre lenger, så jeg er 324 00:15:20,910 --> 00:15:22,550 kommer til å bli kvitt alle disse filene. 325 00:15:22,550 --> 00:15:26,420 Og jeg vet at jeg ikke ønsker å bli spurt hver eneste gang om jeg ønsker å slette 326 00:15:26,420 --> 00:15:30,640 en fil, så jeg kommer til rm -rf pset3. 327 00:15:30,640 --> 00:15:32,640 Ikke engang spørre meg om jeg ønsket å bli kvitt det. 328 00:15:32,640 --> 00:15:33,840 Jeg traff ls. 329 00:15:33,840 --> 00:15:35,680 pset3 er borte. 330 00:15:35,680 --> 00:15:39,730 Så det er alle varianter som du kan bruke for å bli kvitt filer med rm. 331 00:15:39,730 --> 00:15:43,620 >> Den siste kommandolinje kommando som er kommer til å ganske nyttig for deg 332 00:15:43,620 --> 00:15:46,391 er mv, som er en forkortelse for trekk. 333 00:15:46,391 --> 00:15:48,960 Move er i utgangspunktet tilsvarer endre navn. 334 00:15:48,960 --> 00:15:53,870 Den beveger seg en fil fra ett sted til en annen, kilden til bestemmelsesstedet. 335 00:15:53,870 --> 00:15:59,400 La oss se hvor du bruker en flytte makt være nyttig i terminalvinduet. 336 00:15:59,400 --> 00:16:02,070 >> Så jeg er i min pset1 katalog, og jeg har lagt merke til 337 00:16:02,070 --> 00:16:03,860 noe har gått litt galt. 338 00:16:03,860 --> 00:16:08,620 Jeg jobbet på min grådig problem, men jeg tilfeldigvis heter det greddy. 339 00:16:08,620 --> 00:16:11,380 Så når jeg prøver og kjøre det gjennom check50, betyr det ikke egentlig fungerer. 340 00:16:11,380 --> 00:16:12,630 Jeg har et par alternativer. 341 00:16:12,630 --> 00:16:16,220 Vi kunne gjøre hva vi har gjort før, som er å lage en kopi av filen. 342 00:16:16,220 --> 00:16:23,960 Jeg kunne kopiere greddy.c til greedy.c, ikke sant? 343 00:16:23,960 --> 00:16:25,580 Trykk Enter. 344 00:16:25,580 --> 00:16:28,180 Jeg ser at begge filene er der. 345 00:16:28,180 --> 00:16:36,337 Og så kunne jeg rm, å fjerne, greddy.c. 346 00:16:36,337 --> 00:16:37,170 Det blir kvitt det. 347 00:16:37,170 --> 00:16:40,920 Så det ville fungere, etter at jeg bekrefte at jeg ønsker å bli kvitt det. 348 00:16:40,920 --> 00:16:44,770 Og jeg effektivt har omdøpt greddy.c til greedy.c. 349 00:16:44,770 --> 00:16:48,460 Jeg kopierte det, og deretter fjernet det opprinnelige. 350 00:16:48,460 --> 00:16:50,170 >> Men det er en multi-trinns prosess. 351 00:16:50,170 --> 00:16:51,670 Og sikkert, det er en bedre måte. 352 00:16:51,670 --> 00:16:52,420 Faktisk er det. 353 00:16:52,420 --> 00:16:55,810 Så la oss treffe Kontroll L, bare for å bringe dette opp igjen, 354 00:16:55,810 --> 00:16:58,680 og vise innholdet av katalogen min igjen. 355 00:16:58,680 --> 00:17:00,350 >> Så la oss si, oh, jeg gjorde en feil. 356 00:17:00,350 --> 00:17:03,470 Jeg faktisk gjorde virkelig ønsker å kalle den filen greddy.c. 357 00:17:03,470 --> 00:17:11,369 Med ett slag, kan jeg skrive flytte greedy.c til greddy.c. 358 00:17:11,369 --> 00:17:12,470 Trykk Enter. 359 00:17:12,470 --> 00:17:15,210 Og nå, har jeg ikke å kopiere og fjerne det, 360 00:17:15,210 --> 00:17:16,880 Jeg var bare i stand til å endre det. 361 00:17:16,880 --> 00:17:18,710 One-stop shopping. 362 00:17:18,710 --> 00:17:21,160 >> Nå er det en rekke andre grunnleggende kommandolinje-verktøy 363 00:17:21,160 --> 00:17:22,640 som du kan bruke med Linux kommandolinjen. 364 00:17:22,640 --> 00:17:24,990 Og vi skal diskutere mye av dem i fremtiden i CS50. 365 00:17:24,990 --> 00:17:27,948 Men for nå, bare å få føttene våt med å jobbe med denne terminalen 366 00:17:27,948 --> 00:17:30,540 miljø, disse fem kommandoer bør få deg ganske langt 367 00:17:30,540 --> 00:17:34,990 navigere rundt og arbeide med filer i IDE 368 00:17:34,990 --> 00:17:37,770 eller i hvilken Linux-baserte operativsystem du bruker. 369 00:17:37,770 --> 00:17:40,580 >> Hvis du er nysgjerrig og ønsker å se fremover litt på noen 370 00:17:40,580 --> 00:17:43,420 kommandolinjekommandoer vi skal bruke i fremtiden, 371 00:17:43,420 --> 00:17:46,930 her er en liste over et par av de mer vanlige de. 372 00:17:46,930 --> 00:17:47,820 Jeg er Doug Lloyd. 373 00:17:47,820 --> 00:17:49,860 Dette er CS50. 374 00:17:49,860 --> 00:17:52,598