[Speel van musiek] DOUG LLOYD: OK. So laat ons praat oor hoe om gebruik die Linux command line. Nou, die CS50 IDE, of in Trouens, selfs 'n CS50 toestel, As jy vertroud is met dit, of jy neem 'n ouer weergawe van CS50, is 'n wolk-gebaseerde masjien wat Ubuntu loop, Dit is een van die vele geure van die Linux-bedryfstelsel. Linux bedryfstelsel is bevoordeel deur programmeerders, want dit is net koeler, reg? Baie moderne Linux verspreidings het grafiese gebruikerskoppelvlakke, wat ons GUI, G-U-I, ook 'n beroep op toelaat maklike muis-gebaseerde navigasie, wat jy waarskynlik vertroud is met, as jy 'n Windows of Mac-gebruiker is, rond te beweeg jou muis, dubbel-kliek op die ikone, en so aan. Steeds al is, as 'n programmeerder, en selfs al is die IDE bevat die vermoë om doen 'n paar grafiese gebruikerskoppelvlak dinge, kliek, en sleep en alles wat, Jy kan nog steeds met jou terminale venster mooi gereeld. En jy kan baie van die doen dieselfde take wat jy kan doen met 'n muis met sleutelbord opdragte. En ons gaan 'n bietjie praat oor wat sommige van daardie opdragte nou is. Nou, kan hierdie opdragte word op enige Unix-gebaseerde bedryfstelsel stelsel, wat Linux sluit, maar sluit ook Mac OS. As jy op jou Mac oop Terminal, jy kan hierdie presiese opdragte gebruik. Windows het ook Command Prompt, maar sommige van die opdragte is effens anders, so dit nie eintlik werk, omdat Windows is nie 'n Unix-gebaseerde stelsel. So laat ons neem 'n blik op sommige van hierdie Linux instruksies. Die eerste een wat jy sal gebruik waarskynlik nogal 'n baie is ls. Dit is 'n klein l, gevolg deur 'n klein s, wat is kort vir 'n lys. En wat van die lys opdrag doen, is dit gee jou 'n uitgesoekte van al die lêers en gidse in jou huidige gids. So jy alles kan sien wat jy kan kry van waar jy tans is. So ek het hier die CS50 IDE geopen. En ek gaan Zoom-in 'n tweede tot jy 'n nader kyk te gee, maar hier is die breë prentjie van wat die IDE lyk. Aan die linkerkant, kan jy sien ons het 'n lêer boom, wat jy waarskynlik vertroud is met, dubbel-kliek, en lêers en gidse, en al daardie dinge. So dit is nog steeds daar in die CS50 toestel. By die sentrum in die top is waar jy is gaan skryf jou kode, sodra jy kliek op 'n lêer. En aan die onderkant, ons het 'n terminale venster, en dit is waar ons kan voer hierdie terminale opdragte. Ek gaan Zoom-in en hoof oor hier, net om jou te wys dat, in werklikheid, ek kan Klik op hierdie lêers en dopgehou. So duidelik, waar ek tans is, moet ek twee dopgehou, genoem pset0 en pset1, en drie lêers, een wat geroep is hello, een wat geroep hello.c, en een wat geroep hello.txt. So laat af te skuif na die terminale venster en kry 'n nader kyk. So het ons net gepraat, weer, oor die feit dat ons drie lêers en twee dopgehou in die huidige gids. As ek tik ls weer wat is die opdrag om 'n lys die inhoud van die huidige gids, en dan slaan ek Tik, kyk wat ek sien, hello, hello.c, hello.txt, pset0 en pset1. pset0 en pset1 is gekleurde blou, om aan te dui aan jou dat dit is dopgehou dat ons kan navigeer in. En ons sal 'n bietjie leer bietjie oor hoe om te navigeer in dopgehou in 'n minuut. En elke ander ding is gekleurde swart, As dit is 'n teks lêer of 'n bron-kode lêer, en groen, as dit is 'n uitvoerbare lêer. So duidelik, dit beteken dat ek kon 'n program genaamd hardloop, hallo. Dit is wat die groen een is daar beteken. Maar basies, tik die ls opdrag het toegelaat my om te kyk na alles wat bestaan in my huidige gids, wat wedstryde wat ons hier sien, in die grafiese vertoon van dieselfde. Die volgende opdrag sal jy gebruik waarskynlik nogal 'n bietjie is cd, klein c, klein d, wat is kort vir verandering gids. Dit laat ons doen wat ek was praat oor 'n tweede gelede, wat is om te navigeer tussen dopgehou by die opdrag lyn, in teenstelling met dubbel-kliek op dopgehou. So as ons tik cd en dan die naam van 'n gids, ons kan kry in daardie gids. As 'n eenkant, weet dat die naam van die huidige gids is altyd dot, en die naam van die gids een vlak bo waar ons nou is, wat is die naam van die gids in wat ons gids is, dot, dot-- of waarin ons gids is, is dot, dot. En as jy ooit nuuskierig oor die naam van jou gids, jy kan tik pwd, wat staan vir die huidige werk gids. Ons sal 'n blik op al hierdie nou, deur op pad terug na die CS50 IDE. So ek is nou weer terug in my werkplek. En ek sal zoom-in weer op die terminale, sodat ons kan 'n blik rondbeweeg binne die IO. So ek gaan die lys van die inhoud van my gids weer, net om reground ons waar ons is. So as ek tik ls, wat is vir 'n lys weer Ek sien dat ek aan pset0 en pset1 kan kry. Dit is die dopgehou Ek kan kry om van hier af. Ek weet dat, omdat die IDE gee my 'n idee deur die kleur van hulle blou. Kom ons sê dat ek wil kry in my pset1 gids, want ek werk op die probleem te stel 1. Ek kan cd-- weer tik, kort vir verander directory-- ruimte, pset1. En as ek druk Enter, sien wat gebeur. Dit lyk nie soos 'n baie gebeur. Maar as jy kyk na die vinnige, is dit nou vertel my dat ek in ~ / werkspasie / pset1. Ek het navigator in die pset1 gids wat binne-in my werkplek. En as ek tik ls, sien ek 'n paar verskillende dinge hier, reg? Dit is nie dieselfde lys wat Ek voor gesien. Ek het navigator in pset1. En so nou, wanneer ek tik ls, ek is kry die konteks van wat kan ek sien binne die gids pset1. Nou, ek gaan om beheer te tik l, wat net maak die skerm. En ek gaan na die lys van die inhoud van die gids weer, net sodat jy kan sien. Ek wou net om dit te doen om duidelik uit sommige van die dinge dat jy onder gesien down en om dit te voorkom uit gaan te ver af van die omvang. Nou, ek vroeër gesê het, as ek wil om na die huidige gids, Ek kan cd ruimte dot tik. Druk Enter. Dit hoef nie iets te doen nie, reg? Ek verander gidse om die huidige gids. Jy is nie altyd gaan vind 'n behoefte aan 'n enkele dot, maar jy sal af en toe. Kom ons sê dat ek wil een vlak beweeg. Ek wil om terug te kry om My Workspace gids. Ek kan nie tik cd werkspasie, daar is geen sodanige lêer of gids. En die rede vir that-- as ek tik ls een time-- is dat daar geen gids genoem werkspasie binnekant van my pset1 gids. Ek gaan my duidelik skerm weer met beheer l. Onthou wat ek gesê het vroeër, al is, dat ons terug navigeer met dot, dot. Dit is die naam van die ouer gids. So as ek tik cd, ruimte, dot, dot, en dan druk Enter, nou kyk na wat gebeur het. My opdrag prompt vertel my dat ek terug in my ~ / werkspasie gids. Ek verhuis een vlak, danksy dot, dot. Nou, laat ons sê dat ek met 'n bedryfstelsel wat Linux-gebaseerde, maar nie noodwendig sê vir my waar ek is. Hierdie een gebeur om ons te vertel dat Ek is in ~ / werkspasie nou, reg op die instruksielyn. Maar ek kon heeltemal verlore in 'n gemors van dopgehou, en ek het geen idee waar ek is en geen idee waar ek wil om terug te kry. Daar is twee dinge wat ek kan doen. Eerste van alles, kan ek uitvind waar Ek is, deur te tik pwd. Dit is my huidige werk gids. En as ek druk Enter, is dit vertel my presies waar ek is. Nou / huis / ubuntu is die lang manier om te sê, tilde, wat is jou huis gids. Maar dit sê vir my dat ek in huis / ubuntu / werkspasie, of ~ / werkspasie. Ek gaan om te navigeer om my pset1 gids weer en ek gaan na die lys van die inhoud. En ek sien dat ek het 'n ander directory daar genoem ekstras. So ek gaan cd in ekstras, en dan gaan ek my skerm skoon te maak. So nou, ek is redelik ver in, reg? Wat as ek wil om terug onmiddellik werkspasie? Daar is 'n paar dinge wat ek kon doen nie. Ek kon cd, dot, dot, streep, dot tik, dot, een vlak beweeg en dan 'n ander vlak. Maar dit is soort van irriterende. So as ek ooit wil om terug te kry net my tuisgids, tilde, Ek kan tik cd met niks nadat dit. CD, Enter. En nou, ek is in tilde. En as ek wil werkspasie te kry, Ek kan net tik cd werkspasie. En dit is hoe jy werk verander gidse binne die CS50 IDE of enige Linux bedryfstelsel op die command line. Alles reg. Die volgende een wat kan handig te pas kom, is mkdir, wat is kort vir 'n gids, as ek nodig het om 'n nuwe gids te skep. As jy vertroud is met is die GUI bedryfstelsel, jy dalk regs-kliek. En dan, wanneer die konteks kieslys verskyn, kies nuwe gids. Dit is waarskynlik hoe jy het dit al vantevore gedoen. Maar ons kan ook ' dopgehou op die opdrag lyn. So ons is terug in die IDE. Ek sal zoom in op die terminale en n lys van die inhoud van my gids weer, net om te gee ons 'n verwysingsraamwerk. Kom ons sê dat, nou, ek het klaar besig om op die probleem gestel 0 en die probleem stel 1. So ek wil 'n nuwe gids te skep om te werk vir die probleem te stel 2. Hoe kan ek dit doen? Wel, weer, ek kon regs-kliek in die links kant is daar en kies New Folder en skep 'n pset2 gids. Dit sou te werk. Maar dan doen ek dit ook by die command line redelik vinnig, deur te tik mkdir, space-- ek getik in n, but-- ruimte pset2. As ek druk Enter en dan het ek 'n lys van die inhoud van my gids weer Ek sien dat, kyk, nou Ek het 'n pset2 gids. En ek kan navigeer in dat die gebruik van die CD en doen al die werk wat ek nodig het om te doen vir pset2. Terloops, ek sal net pop oor hier regtig vinnig om die lêer boom. En jy kan sien dat, ook in die grafiese File Explorer, Ons kan sien dat die pset2 gids is ook daar geskep. En ek kan navigeer om dit, die gebruik van die GUI sowel. Die volgende keer en dit is waarskynlik gaan handig te pas kom is CP, wat is kort vir kopie. Kopieer, in teenstelling met al die ander opdragte ons gesien het nie, neem twee argumente, 'n bron, die naam van die lêer wat u wil kopieer, en 'n bestemming, waar jy wil die lêer kopieer. Dit is redelik maklik om te kopieer 'n lêer, so laat dit te doen. So ons is terug in die IDE. Ek gaan 'n lys van die inhoud van my huidige gids met ls. Nou, laat ons sê dat ek wil 'n afskrif van hello.txt te maak. Weereens, uit die lêer boom op die links, die grafiese koppelvlak, Ek kon regs-kliek op hello.txt, 'n afskrif plak die kopie. Maar ek kan dit redelik vinnig te doen op die opdrag lyn te. Kom ons sê ek wil kopieer hello.txt om hi.txt. Ek kan CP, ruimte, hello.txt. Dit is my bron lêer, so dit is waarom Ek gaan daardie een eerste te kies. En dan moet ek die naam bestemming lêer, hi.txt. Ek druk Enter. En as ek 'n lys van die inhoud van my gids weer, daar is hi.txt. Ek het 'n afskrif daarvan. En in die feit, as ek gaan in hi.txt, ek kon sien dat dit 'n presiese sou wees dupliseer van alles wat bestaan ​​in my hello.txt lêer. So dit is hoe jy 'n lêer kopieer. Maar wat as jy wil kopieer 'n hele gids? So vir 'n tweede, laat ons neem 'n blik na wat is in my pset0 gids. As ek cd pset0 en lys die inhoud, Ek het 'n gids genoem, monster, en 'n skrapie lêer, scratch.sb2. So dit is goed om te weet. So laat duidelik op die skerm, en ek gaan om terug te gaan my werkplek gids vir 'n tweede. Kom ons sê dat, nou, ek wil 'n afskrif van my pset0 gids. Ek kan nie net sê CP pset0 pset3, byvoorbeeld. Jy kry die vreemde boodskap weglating directory pset0. Hoekom dink jy dat die boodskap kry? Wel, dit blyk dat, wanneer jy het 'n gids wat het ander dinge binnekant van dit, die CP bevel nie regtig noodwendig weet wat om te doen met dit. Ons moet uitdruklik vertel Linux, die terminale, Ek wil hê jy moet die kopieer pset0 gids en kopie elke gids wat binnekant bestaan dit en elke lêer wat bestaan ​​binnekant van dit. Met ander woorde, ek het jou nodig om rekursief duik af in pset0 en maak 'n afskrif van alles daar in. As ek wil om dit te doen, wat ek kan doen is CP-r, vir rekursiewe, pset0 pset3. Druk Enter. Nou, as ek 'n lys van die inhoud van my gids, Ek sien daar is die pset3 gids wat ek kan werk. En as ek cd in pset3 nou en dan 'n lys van die inhoud, kyk, daar is monster en scratch.sb2 weer. So dit is pretty cool. So dit is hoe jy 'n hele kan kopieer gids, en nie net 'n enkele lêer. So as jy wil 'n afskrif gids, onthou net die r vlag gebruik wanneer jy werk met die CP opdrag. Alles reg. So het 'n lêer Ek gekopieer, maar Ek het dit gedoen deur die fout. En nou, ek wil om ontslae te raak van dit. Hoe kan ek dit doen? Weereens, as jy vertroud is met 'n grafiese koppelvlak, kan jy regs-kliek en net kies Verwyder. En dit sal dit aan die stuur asblik of die Recycle Bin. Maar op die opdrag lyn, ons kan tik net rm, vir verwyder, en dan die naam van die lêer ons wil ontslae te raak van. Nou, rm is baie versigtig. Dit maak 'n baie dubbele kontrole, om seker te maak dat jy eintlik wil die lêer verwyder. Dit wil nie enige foute maak, want daar is geen asblik hier. Sodra ons 'n lêer te verwyder, is dit weg. En daar is regtig geen manier om dit te herstel. So moet ons mooi te wees versigtig, en so rm gaan regtig versigtig vir ons te wees. So laat ons gaan terug na die IDE en ontslae te raak van daardie hi.txt lêer dat ek geskep 'n minuut gelede met kopie. So ons is in die IDE. En ek noem die inhoud van my gids weer, net om te gee ons 'n paar konteks. Ek bedoel, kan jy sien dat daar hi.txt, wat ek het 'n kort rukkie gelede. Nou, ek wil ontslae te raak van dit. Hoe kan ek dit doen? Weereens, net RM. So kan ek rm hi.txt tik en druk Enter. En daar is rm wese regtig versigtig vir ons en om seker te maak ons ​​eintlik wil hierdie lêer verwyder. Wil jy regtig om te verwyder gereelde leë lêer hi.txt? Dit is net soos 'n bedryfstelsel stelsel, soos Windows of Mac, dat jy kan wees vertroud is met knal dat boks sê is jy regtig seker jy wil om dit te doen. Ek is redelik seker ek wil hierdie, so ek gaan om te tik, yes-- of ek kan ook net tik y-- en druk Enter. En as ek 'n lys van die inhoud van my gids weer hi.txt is weg. Nie sleg nie, reg? Laat se pers beheer L, net om ontslae te raak van al hierdie dinge en terug by ons te kry die bokant van die skerm. Nou, daar is 'n manier om kortsluiting rm, so dat dit nie ons vra die vraag. Ons weet regtig wat ons wil om ontslae te raak van die lêer, en ons wil nie eens word die vraag gevra. Hoe kan ons dit doen? Wel, ons kan 'n spesifiseer ekstra vlag, net soos ons gedoen het met CP waar ons kon die r vlag by te voeg, om rekursief kopieer na 'n gids. Daar is 'n ander vlag vir rm, wat is f, wat is om rm dwing om presies te doen wat ons dit nou vertel om te doen. So kom ons sê dat nou, ek wil om ontslae te raak van my hello.txt lêer. Ek het nie dat 'n mens wil nie. Wat kan ek doen? Wel, ek kan f hello.txt RM. Wat dink jy is gaan hier gebeur? Dit is weg. Het nie eens my vra die vraag. En in die feit, as ek 'n lys van die inhoud van my gids weer, is dit weg. Daar is geen ongedaan hier. hello.txt is weg, en ek was nie selfs gevra of ek wou om dit te verwyder. Wat gebeur as ek wil ontslae te raak van 'n hele gids? Die manier waarop jy dit doen is baie soortgelyk aan kopieer. As jy wil 'n te verwyder gids, jy net nie wil die gids verwyder, wat jy wil om alles binnekant van dit te verwyder. En sodat jy r gebruik, rekursief 'n gids verwyder. So laat RM r pset2. Ek is nie eintlik werk op pset2, sodat ek kan ontslae te raak van daardie gids. Ek druk Enter. Wil ek verwyder die gids, pset2? Ja ek doen. En as ek 'n lys van die inhoud van my gids weer, dit is weg. Alles reg? Een variasie op hierdie tema. So sal ek die skerm weer skoon te maak, om alles by die top sit. Getref ls. Nou, ek wil ontslae te raak van my pset3 gids, en ek weet regtig wat ek wil ontslae te raak van my pset3 gids. Ek kan rekursief en geweld verwyder my pset3 gids. Nou, jy gaan om werklik te wees versigtig wanneer jy met rm-rf. As jy meer program, sal dit wees iets wat jy doen net regtig vinnig. En in die feit, ek doen dit al die tyd. Maar dit kan lei tot 'n rampspoedige gevolge, as jy per ongeluk verwyder die verkeerde ding. So ek wil hê jy moet bewus wees dat dit is 'n opsie wat beskikbaar is vir jou, maar gebruik dit spaarsamig, en gebruik dit met omsigtigheid. Ek weet vir 'n feit ek nie werk op my probleem stel 3 nie, so ek is gaan om ontslae te raak van al die lêers te kry. En ek weet ek wil nie gevra word elke keer as ek wil om te verwyder 'n lêer, so ek gaan om rf pset3 RM. Het my nie eens vra of ek wou ontslae raak van dit te kry. Ek getref ls. pset3 is weg. So dit is al die variasies wat jy kan gebruik om ontslae te raak van lêers met rm. Die lyn laaste opdrag opdrag wat gaan baie handig vir jou is mv, wat is kort vir beweeg. Skuif is basies gelykstaande aan hernoem. Dit beweeg 'n lêer van een plek na 'n ander, die bron na die bestemming. Kom ons kyk waar die gebruik van 'n skuif krag wees handig by die terminale venster. So ek is in my pset1 gids, en ek het opgemerk iets weg 'n bietjie verkeerd. Ek was besig om op my gulsig probleem maar ek het per ongeluk vernoem dit greddy. So wanneer ek probeer en hardloop dit deur check50, beteken dit nie regtig werk. Ek het 'n paar van die opsies. Ons kan doen wat ons voorheen gedoen het, wat is 'n afskrif van die lêer te maak. Ek kon greddy.c kopieer om greedy.c, reg? Druk Enter. Ek sien dat beide lêers is daar. En dan kan ek RM, om te verwyder, greddy.c. Dit ontslae raak van dit. Sodat sou werk, nadat ek bevestig wat ek wil om ontslae te raak van dit. En ek het effektief herdoop greddy.c om greedy.c. Ek gekopieer dit, en dan verwyder die oorspronklike. Maar dit is 'n multi-stap proses. En beslis, daar is 'n beter manier. Trouens, daar is. So laat getref beheer L, net om dit terug te bring, en lys die inhoud van my gids weer. So kom ons sê, o, ek het 'n fout. Ek het eintlik regtig wil om te bel die lêer greddy.c. In 'n klap, kan ek tik beweeg greedy.c om greddy.c. Druk Enter. En nou, ek het nie om te kopieer en verwyder, Ek was net in staat om dit te verander. Een-stop shopping. Nou, daar is 'n baie ander basiese command line utilities wat jy kan gebruik met die Linux command line. En ons sal bespreek 'n baie van hulle in die toekoms in CS50. Maar vir nou, net om jou voete nat werk met hierdie terminale omgewing, hierdie vyf opdragte moet jy mooi ver kom in opgevolg rond en werk met lêers in jou IDE of in watter Linux-gebaseerde bedryfstelsel jy gebruik. As jy nuuskierig is en jy wil vorentoe kyk 'n bietjie op 'n sekere van die command line opdragte ons sal gebruik word om in die toekoms, hier is 'n lys van 'n paar van die meer algemene kinders. Ek is Doug Lloyd. Dit is CS50.