[Mūzikas atskaņošanai] Doug LLOYD: OK. Tātad parunāsim par to, kā izmantot Linux komandrindu. Tagad, CS50 IDE, vai Fakts, pat CS50 ierīce, Ja Jūs esat iepazinušies ar to, vai jūs lietojat vecāku versiju CS50, ir mākonis balstītas mašīna kas darbojas Ubuntu, kas ir viens no daudzajiem flavors Linux operētājsistēmu. Linux operētājsistēma ir privileģēts programmētāji, jo tā ir tikai vēsāks, vai ne? Daudzi mūsdienu Linux sadali ir grafisko lietotāja saskarnes, kurā mēs arī saucam GUI, G-U-i, lai varētu viegli peles bāzes navigāciju, ko jūs, iespējams, iepazinies ar, ja esat Windows vai Mac lietotājs, pārvietojas peli, dubultklikšķi uz ikonas, un tā tālāk. Still, lai gan, kā programmētājs, un, pat ja IDE ietver spēju darīt kādu grafisko lietotāju sīkumi, noklikšķinot, un velkot, un visu, kas, jūs joprojām izmantojot savu termināla logu diezgan bieži. Un jūs varat darīt daudzas no paši uzdevumi, ka jūs varat darīt ar peli ar tastatūras komandas. Un mēs ejam runāt mazliet par to, ko daži no šiem komandas ir tiesības tagad. Tagad, šīs komandas var izmantot jebkurā Unix balstīti ekspluatācijas sistēma, kas ietver Linux, bet ietver arī Mac OS. Ja jūs atvērt Terminal uz jūsu Mac, Jūs varat izmantot šos precīzus komandas. Windows ir arī komandu Ātru, bet daži no komandas ir nedaudz atšķirīgs, tāpēc tas nav reāli strādā, jo Windows nav Unix balstītu sistēmu. Tātad, pieņemsim to apskatīt dažus Šo Linux komandas. Pirmais, kas jums iespējams izmantot diezgan daudz ir ls. Tas ir mazo l, kam seko mazie s, kas ir saīsinājums no saraksta. Un kāda komanda saraksts tas ir tas dod jums nolasīšanas visiem failiem un mapes jūsu pašreizējā direktorijā. Tātad jūs varat redzēt visu jūs varat nokļūt no kurienes jūs šobrīd esat. Tāpēc es esmu atvēra šeit CS50 IDE. Un es esmu gatavojas zoom-in Otrs, lai dotu jums tuvāk, bet šeit ir plaša aina no tā, ko IDE izskatās. Kreisajā pusē, jūs varat redzēt, mēs esam failu koks, kas tu esi, iespējams, iepazinušies ar, divreiz noklikšķinot, un failus un mapes, un visu, kas stuff. Tātad tas ir joprojām šajā CS50 ierīces. Pie centra augšpusē ir, ja tu esi gatavojas rakstīt savu kodu, pēc tam, kad jūs noklikšķiniet uz faila. Un apakšā, mēs ir termināla logu, kas ir, ja mēs varam izpildīt šie termināla komandas. Es esmu gatavojas zoom-in un dodies šeit, tāpat lai parādītu jums, ka, patiesībā, es varu noklikšķiniet uz šiem failiem un mapēm. Tik skaidri, kur es šobrīd esmu, man ir divas mapes, ko sauc pset0 un pset1, un trīs faili, viens sauc hello, viens sauc hello.c, un viens sauc hello.txt. Tātad pieņemsim pāriet uz leju, lai termināli logu un saņemt tuvāk apskatīt. Tātad mēs tikko runājām, atkal, Par Tas, ka mums ir trīs failus un divi mapes pašreizējā direktorijā. Ja es tipa Ls, kas atkal ir komanda uzskaitīt saturs strāvas direktoriju, un tad es hit Enter, meklēt to, ko es redzu, hello, hello.c, hello.txt, pset0 un pset1. pset0 un pset1 ir zilā krāsā, lai norādītu jums, ka tie ir katalogi ka mēs varētu orientēties uz. Un mēs mācīties nedaudz bit par to, kā orientēties uz uzziņu minūti. Un katru otro lieta ir melna, ja tas ir teksta fails vai pirmkodu failu, un zaļš, ja tas ir izpildāmais fails. Tik skaidri, tas nozīmē, ka es varētu palaist programmu, ko sauc, sveiki. Tas ir tas, ko zaļā viens tur ir. Bet būtībā, ierakstot ls komanda ļāva man paskatīties uz visu, kas pastāv manā pašreizējā direktorijā, kas sērkociņi, ko mēs redzam šeit, grafiskais displejs no to pašu. Nākamā komandu jūs iespējams izmantot diezgan daudz ir cd, mazie c, d mazie, kas ir īss pārmaiņu direktorijā. Tas ļauj mums darīt to, ko es biju runājam par sekundi pirms, kas ir, lai pārvietotos starp katalogi Komandu līnija, pretstatā dubultklikšķi uz mapes. Tātad, ja mēs tips kompaktdiskā un pēc tam nosaukums direktorijā, mēs varam nokļūt šajā direktorijā. Kā malā, zinu, ka vārds no pašreizējā direktorijā vienmēr dot, un nosaukums katalogs vienu līmeni augstāk, kur mēs esam tagad, ka ir nosaukums mapē kas mūsu mape ir, dot, dot-- vai kurā mūsu mape ir, ir dot, dot. Un, ja jūs esat kādreiz ziņkārīgs par nosaukums jūsu direktorijā, Jūs varat ierakstīt PWD, kas apzīmē par pašreizējo darba direktoriju. Mēs ņemšu apskatīt visus šos Tagad, ar pozīcijā atpakaļ uz CS50 IDE. Tāpēc es esmu atpakaļ savā darbvietā tagad. Un es zoom-in atkal uz termināls, lai mēs varētu to apskatīt at pārvietojas IDE. Tāpēc es esmu gatavojas uzskaitīt saturs mana katalogs atkal, tikai reground mums ir, kur mēs esam. Tātad, ja es tipa ls, kas ir sarakstā atkal, Es redzu, ka es varu nokļūt pset0 un pset1. Tie ir katalogi Es varu nokļūt no šejienes. Es zinu, ka, jo IDE sniedz man atrisinājums, nokrāsojot tos zilā krāsā. Pieņemsim, ka es gribu iekļūt manā pset1 direktorijā, jo es esmu strādā pie problēmu noteikti 1. Es varu rakstīt cd-- atkal, īss mainīt directory-- telpu, pset1. Un, ja es hit Enter, pamanīt to, kas notiek. Tas nav izskatās daudz kas ir noticis. Bet, ja paskatās ātru, tā tagad man saka, ka es esmu ~ / darbvietā / pset1. Esmu navigāciju uz pset1 mape, kas bija manā darbvietā. Un, ja es tipa ls, es redzu dažus dažādi sīkumi šeit, vai ne? Šis nav tas pats saraksts, ka es redzēju pirms tam. Esmu navigāciju uz pset1. Un tāpēc tagad, kad es tipa ls, es esmu iegūt kontekstu ko es varu redzēt no iekšienes pset1 mapē. Tagad, es esmu gatavojas rakstīt kontroli l, kas vienkārši notīra ekrānu. Un es esmu gatavojas uzskaitīt saturs katalogs atkal, tikai, lai jūs varētu redzēt. Es tikai gribēju darīt, ka, lai izputināt daži sīkumi ka redzējāt lejā un, lai novērstu šo no došanās pārāk tālu uz leju ārpus intervāla. Tagad, es teicu iepriekš, ka, ja es gribu lai virzītos uz pašreizējā direktorijā, Es varu rakstīt cd kosmosa dot. Hit Enter. Tas nedara neko, vai ne? Es esmu mainot katalogi uz pašreizējā direktorijā. Jūs esat ne vienmēr būs atrast nepieciešamību vienu punktu, bet jūs reizēm. Pieņemsim, ka es gribu lai pārvietotos par vienu līmeni uz augšu. Es vēlos saņemt atpakaļ mans darbvietas katalogs. Es nevaru rakstīt cd darbvietas, tur nav šādu failu vai direktoriju. Un iemesls that-- ja es tipa Ls vairāk vienu LAIKU_ ir tā, ka nav direktoriju sauc par darbvietas iekšpusē manu pset1 direktorijā. Es esmu gatavojas iztīrītu ekrāns atkal ar kontroles l. Atceries, ko es teicu agrāk, lai gan, ka mēs var pārvietoties atpakaļ ar dot, dot. Tas ir nosaukums mātes direktorijā. Tātad, ja es tipa CD, telpa, dot, dot, un tad hit Enter, Tagad apskatīt to, kas noticis. Mana komandrindas man saka, ka es esmu atpakaļ manā ~ / darbvietā direktorijā. Es pārcēlos vienu līmeni augstāk, Pateicoties dot, dot. Tagad, pieņemsim, ka es esmu, izmantojot operētājsistēma, kas ir Linux bāzes, bet tas ne vienmēr man pateikt, kur es esmu. Tas viens notiek, lai pastāstītu mums, ka Es esmu ~ / darbvietas tieši tagad, labi pie uzvednē. Bet es varētu būt pilnīgi zaudēti haoss mapēm, un man nav ne jausmas, kur es esmu, un ne jausmas, kur es gribu, lai saņemtu atpakaļ uz. Ir divas lietas, ko es varu darīt. Pirmkārt, es varu izdomāt , kur es esmu, ierakstot PWD. Tas ir mans klāt darba direktoriju. Un, ja es hit Enter, tas man saka, tieši tur, kur es esmu. Tagad / home / Ubuntu ir garš veids, kā pateikt, Tilde, kas ir jūsu mājas direktorijā. Bet tas man saka, ka es esmu home / Ubuntu / darbvieta, vai ~ / darbvietas. Es esmu gatavojas, lai virzītos uz mans pset1 katalogs atkal, un es esmu gatavojas uzskaitīt saturu. Un es redzu, ka man ir cits direktoriju tur, ko sauc ekstras. Tāpēc es esmu gatavojas CD uz ekstras, un tad es esmu gatavojas, lai notīrītu manu ekrānu. Tāpēc tagad, es esmu diezgan tālu, vai ne? Ko darīt, ja es gribu atpakaļ darbvietas uzreiz? Ir pāris lietas, es varētu darīt. Es varētu rakstīt CD, dot, dot, slīpsvītra, dot, dot, lai pārvietotos vienu līmeni augstāk, un pēc tam cits līmenis. Bet tas ir sava veida kaitinošas. Tātad, ja es kādreiz vēlos saņemt atpakaļ tikai manā mājas direktorijā, tilde, Es varu rakstīt cd ar neko pēc tā. Cd, Enter. Un tagad, es esmu Tilde. Un, ja es vēlos, lai nokļūtu darbvietā, Es varu vienkārši ierakstiet cd darbvietas. Un tas, kā jūs strādājat mainot katalogi ietvaros CS50 IDE vai jebkuru Linux operētājsistēma pie komandrindas. Viss kārtībā. Nākamais, kas varētu noderēs ir mkdir, kas ir īss veikt direktoriju, ja man ir nepieciešams, lai izveidotu jaunu mapi. Ja Jūs esat iepazinušies ar GUI operētājsistēma, jūs varētu ar peles labo pogu. Un tad, kad konteksta izvēlne NOP augšu, izvēlieties Jauna mape. Tas ir iespējams, kā jūs esat darījuši to pirms tam. Bet mēs varam arī izveidot katalogi pie komandrindas. Tātad mēs esam atpakaļ IDE. Es zoom-in uz terminālu un uzskaitīt saturu mana direktorijā atkal, tikai, lai dotu mums rāmis atsauces. Teiksim, ka tagad, es esmu pabeidzis darbu pie problēmu noteikt 0 un problēma ir noteikts 1. Tāpēc es gribu izveidot jaunu direktoriju strādāt, lai problēmu komplekts 2. Kā es varu darīt? Nu, atkal, es varētu labo pogu noklikšķiniet uz kreisajā pusē un izvēlieties Jauna mape un izveidot pset2 direktoriju. Tas darbosies too. Bet tad es arī darīt to pie komandrindas diezgan ātri, ko rakstāt mkdir, space-- I drukāti n, but-- kosmosa pset2. Ja es hit Enter, un tad es uzskaitīt saturs mana direktorijā atkal, Es redzu, ka, izskatās, tagad Man ir pset2 mapi. Un es varu pārvietoties uz ka, izmantojot CD un darīt viss darbs man jādara, lai pset2. Starp citu, es ņemšu tikai pop vairāk šeit tiešām ātri failu koku. Un jūs varat redzēt, ka, arī, jo grafiskā File Explorer, mēs varam redzēt, ka pset2 katalogs arī ir radīti. Un es varu doties uz turieni, izmantojot GUI, kā arī. Nākamajā reizē, un tas ir droši vien noderēs ir cp, kas ir īss kopiju. Kopēt, atšķirībā no visu citu komandas mēs esam redzējuši iepriekš, aizņem divus argumentus, avotu, tad faila nosaukums, kuru vēlaties kopēt, un galamērķis, kur jums vēlas, lai kopētu failu. Tas ir diezgan viegli kopēt fails, tāpēc pieņemsim darīt. Tātad mēs esam atpakaļ IDE. Es esmu gatavojas uzskaitīt saturu no mana pašreizējā direktorijā ar ls. Tagad, pieņemsim, ka es gribu veikt kopiju hello.txt. Atkal no failu koks kreisi, grafisko interfeisu, Es varētu peles labo pogu noklikšķiniet uz hello.txt, izgatavot kopiju, ielīmēt kopiju. Bet es varu darīt to diezgan ātri pie komandrindas too. Pieņemsim, ka es vēlos, lai kopētu hello.txt uz hi.txt. Es varu KP, telpu, hello.txt. Tas ir mans avota failu, tā, ka tāpēc Es esmu gatavojas izvēlēties šo vienu vispirms. Un tad man ir nepieciešams nosaukt galamērķis failu, hi.txt. Es hit Enter. Un, ja es uzskaitīt saturu Manā direktoriju atkal, tur ir hi.txt. Es tā kopiju. Un patiesībā, ja es devos uz hi.txt, es varētu redzēt, ka tas būtu precīzs dublēt viss, kas pastāvēja manā hello.txt failā. Tātad, tas ir, kā jums kopēt failu. Bet ko tad, ja jūs vēlaties, lai kopēt visu direktoriju? Tātad otrais, pieņemsim to apskatīt par to, kas ir manā pset0 direktorijā. Ja es cd pset0 un uzskaitīt saturu, Man ir direktoriju sauc, paraugu, un scratch failu, scratch.sb2. Tā ka ir labi zināt. Tātad, pieņemsim notīrītu ekrānu, un es esmu gatavojas doties atpakaļ manam darbvietas direktorijā par sekundi. Teiksim, ka tagad, es gribu padarīt kopiju manu pset0 direktorijā. Es nevaru vienkārši pateikt cp pset0 pset3, piemēram. Jūs saņemsiet šo dīvaini ziņu, izlaižot direktoriju pset0. Kāpēc jūs saņemsiet šo ziņu? Nu, izrādās, ka, ja Jums ir direktoriju, kas ir citas lietas iekšā no tā, CP komanda nav īsti vienmēr zina, ko darīt ar to. Mums ir nepieciešams, lai skaidri pateikt Linux, termināla, Es gribu, lai jūs kopēt pset0 direktoriju un kopija katru mapi, kas pastāv iekšpusē no tā un katru failu, kas pastāv iekšpusē no tā. Citiem vārdiem sakot, man ir nepieciešams, lai jūs rekursīvi nirt lejup pset0 un padarīt kopiju visu, kas tur. Ja es gribu darīt, ko es varu darīt ir cp-R, lai rekursīvs pset0 pset3. Hit Enter. Tagad, ja es iepazīstināšu ar saturs mana direktorijā, Es redzu tur ir pset3 direktoriju, ka es varu strādāt. Un ja es cd uz pset3 tagad un pēc tam sarakstā saturu, izskatās, tur ir paraugs un scratch.sb2 vēlreiz. Tātad tas ir diezgan forši. Tātad, tas ir, kā jūs varat kopēt visu direktoriju, un ne tikai vienu failu. Tātad, ja jūs vēlaties, lai kopētu direktoriju, tikai atcerieties izmantot -r karogu, kad esat strādājot ar CP komandu. Viss kārtībā. Tāpēc es esmu kopēts failu, bet Es esmu darījusi to kļūdas dēļ. Un tagad, es gribu, lai atbrīvoties no tā. Kā es varu darīt? Atkal, ja jūs esat iepazinušies ar GUI interfeisu, Jūs varat ar peles labo pogu un tikai izvēlēties Dzēst. Un tas būs to nosūtīt uz trash vai Recycle Bin. Bet pie komandrindas, mēs var vienkārši ierakstiet RM, uz Noņemt, un pēc tam nosaukums no failu mēs vēlamies atbrīvoties. Tagad, RM ir ļoti uzmanīgs. Tas nav daudz dubultās pārbaudes, lai pārliecinātos, ka jūs faktiski gribu izdzēst failu. Tā nevēlas veikt nekādas kļūdas, jo tur nav Atkritne šeit. Kad mēs izdzēst failu, tas ir pagājis. Un tur tiešām nav veids, kā to atgūt. Tāpēc mums ir jābūt diezgan uzmanīgs, un tāpēc RM būs ļoti uzmanīgiem par mums. So iesim atpakaļ uz IDE un atbrīvoties no šī hi.txt failu ka es radīju minūtes pirms kopiju. Tātad mēs esam IDE. Un es uzskaitīt saturu mana direktorijā atkal, tikai, lai dotu mums kādu kontekstu. Es domāju, jūs varat redzēt, ka tur ir hi.txt, kas man radīja pirms laiciņu. Tagad, es vēlos, lai atbrīvoties no tā. Kā es varu darīt? Atkal, tāpat RM. Lai es varētu rakstīt rm hi.txt un hit Enter. Un tur ir RM būtne tiešām uzmanīgs mums un pārliecinoties, mēs faktiski vēlies dzēst šo failu. Vai jūs tiešām vēlaties noņemt regulārs tukšs fails hi.txt? Tas ir tāpat kā darbības sistēma, piemēram, Windows vai Mac, ka Jums varētu būt iepazinušies ar popping up ka box saka tu esi patiešām pārliecināts, ka jūs vēlaties, lai to izdarītu. Es esmu diezgan pārliecināts, ka es vēlos, lai tas, tāpēc es esmu gatavojas rakstīt, yes-- vai es varētu arī vienkārši ierakstiet y-- un hit Enter. Un, ja es uzskaitīt saturu Manā direktoriju atkal, hi.txt ir pagājis. Nav slikti, vai ne? Pieņemsim prese Control L, tikai atbrīvoties no visu šo stuff un mūs atpakaļ pie augšējā ekrāna. Tagad tur ir veids, kā īssavienojums RM, tāpēc ka tas nav uzdot mums šo jautājumu. Mēs tiešām zinām, mēs gribam atbrīvoties no šo failu, un mums nav pat vēlaties kas uzdeva jautājumu. Kā mēs to darām? Nu, mēs varam norādīt extra karogs, tāpat kā mēs darīja ar CP, kur mēs varētu pievienot -r karogu, rekursīvi iekopēt direktorijā. Tur ir cita karoga RM, kas ir -f, kas ir piespiest RM darīt tieši ko mēs esam spēcīgi to darīt. Tātad pieņemsim, ka, tagad, es gribu atbrīvoties no manas hello.txt failu. Es negribu, ka viens vai nu. Ko es varu darīt? Nu, es varu rm-f hello.txt. Ko jūs domājat, ka ir notiks šeit? Tas ir pagājis. Nav pat uzdot man jautājumu. Un patiesībā, ja es uzskaitīt saturu mana direktorijā atkal, tas ir pagājis. Nav undo šeit. hello.txt ir aizgājuši, un es nebiju pat jautāja, vai es gribēju, lai to izdzēstu. Ko darīt, ja es gribu, lai atbrīvotos no visu direktoriju? Kā jūs darīt, ir ļoti līdzīgs kopēt. Ja jūs vēlaties, lai izdzēstu direktoriju, jums nav vienkārši vēlies dzēst direktoriju, jūs vēlaties izdzēst visu iekšpusē no tā. Un tā jūs izmantojat -r, lai rekursīvi izdzēstu direktoriju. Tātad pieņemsim rm -r pset2. Es neesmu faktiski strādā pset2, lai es varētu atbrīvoties no šī kataloga. Es hit Enter. Vai es gribu, lai novērstu direktoriju, pset2? Jā. Un, ja es uzskaitīt saturu mans katalogs atkal, tas ir pagājis. Viss kārtībā? Vēl viena variācija par šo tēmu. Tāpēc es ņemšu notīrītu ekrānu atkal, likt visu augšpusē. Rezultāts ls. Tagad, es vēlos, lai atbrīvotos mana pset3 direktorijā, un es tiešām zinu, es gribu atbrīvoties no manas pset3 direktorijā. Es varu rekursīvi un piespiedu kārtā noņemt manu pset3 direktoriju. Tagad jūs esat būs patiešām uzmanīgs, ja jūs izmantojat rm -rf. Kā jūs programma vairāk, tas būs kaut jūs vienkārši darīt tiešām ātri. Un patiesībā, es to visu laiku. Bet tas var izraisīt dažus postošās sekas, Ja nejauši izdzēst nepareizi lieta. Tāpēc es gribu, lai jūs zināt, ka Šī ir iespēja, lai jūs, bet izmantot taupīgi, un izmantot to ar piesardzību. Es zinu par to es neesmu darba par manu problēmu noteikt 3 vairs, tāpēc es esmu gatavojas atbrīvoties no visiem šiem failiem. Un es zinu, es negribu jāuzdod katru reizi, ja es gribu, lai izdzēstu fails, tāpēc es esmu gatavojas rm -rf pset3. Pat nelūdza mani, ja es vēlējās atbrīvoties no tā. Es hit ls. pset3 ir pagājis. Tātad tas ir visas variācijas, kas jums var izmantot, lai atbrīvoties no failu ar RM. Pēdējā komandrindas komandu, kas ir gatavojas diezgan noderīga jums ir mv, kas ir īss pārvietoties. Pārvietot būtībā līdzvērtīga pārdēvēt. Tas kustas failu no vienas vietas uz cits, avota uz mērķi. Let 's redzēt, kur, izmantojot pārvietoties varenību būt ērts pie termināļa logā. Tāpēc es esmu manā pset1 direktoriju, un es esmu ievērojis kaut kas ir nogājis nedaudz greizi. Es strādāju par manu mantkārīgs problēmu, bet es nejauši nosauca to greddy. Tātad, kad es mēģinātu palaist to caur check50, tas nav īsti strādāt. Man ir pāris iespējas. Mēs varētu darīt to, ko mēs esam darījuši līdz šim, kas ir padarīt kopiju failu. Es varētu kopēt greddy.c līdz greedy.c, vai ne? Hit Enter. Es redzu, ka abi faili ir tur. Un tad es varētu RM, noņemt, greddy.c. Tas izpaužas atbrīvoties no tā. Tā, ka varētu strādāt, kad es apstiprinu ka es vēlos, lai atbrīvoties no tā. Un man faktiski ir pārdēvēta greddy.c uz greedy.c. Es kopēt to, un pēc tam noņem oriģinālu. Bet tas ir daudzpakāpju process. Un, protams, tur ir labāks veids. Patiesībā, tur ir. Tātad pieņemsim hit Control L, tikai, lai panāktu šo atpakaļ uz augšu, un uzskaitīt saturu mana direktorijā vēlreiz. So teiksim, ak, es kļūdījos. Es tiešām tiešām vēlaties aicināt šo failu greddy.c. Vienā samazinājās sagrābt, es varu rakstīt pārvietot greedy.c uz greddy.c. Hit Enter. Un tagad, man nebija kopēt un novērstu to, Es tikko bija iespēja pārdēvēt to. Vienas pieturas iepirkšanās. Tagad tur ir daudz citu Pamata komandrindas komunālie ka jūs varat izmantot ar Linux komandrindas. Un mēs apspriest daudz no viņiem nākotnē CS50. Bet tagad, tikai kļūst jūsu kājām slapjš ar strādā ar šo termināli vide, šie pieci komandas vajadzētu saņemt jūs diezgan tālu kuģojoša apkārt un Darbs ar failiem savā IDE vai kāds Linux bāzes operētājsistēmu jūs izmantojat. Ja jūs esat ziņkārīgs, un jūs vēlaties, lai skatīties uz priekšu mazliet dažus komandrindas komandas mēs būsim, izmantojot nākotnē, Šeit ir saraksts ar pāris no biežāk ones. Es esmu Doug Lloyd. Tas ir CS50.