[Glazbom] 

Doug LLOYD: U redu. Dakle, pričajmo o tome kako koristite Linux naredbeni redak. Sada je CS50 IDE, ili Činjenica, čak CS50 aparat, Ako ste upoznati s tim, ili ste uzimajući stariju verziju CS50, je oblak-based stroj koji traje Ubuntu, što je jedan od mnogih okusa Linux operativnog sustava. Linux operativni sustav preferiraju programera, jer to je samo hladnije, zar ne? 

Mnogi moderni Linux distribucija ima grafičko korisničko sučelje, koji također nazivamo GUI, G-U-I, na omogućuju jednostavan miš-based navigaciju, što ste vjerojatno upoznati s, ako ste Windows ili Mac korisnik, kretanje miša, dvostrukim klikom na ikone, i tako dalje. Ipak, iako, kao programer, i iako IDE sadrži sposobnost učiniti neke grafičko korisničko stvari, pa i povlačenjem, i sve to, i dalje ćete biti koristeći svoj terminala prozor prilično često. A vi možete učiniti mnoge od iste zadatke koje možete učiniti s mišem s tipkovnice naredbe. A mi ćemo govoriti malo o tome što neke od tih naredbi su sada. 

Sada, ove naredbe mogu se koristiti na bilo Unix-based upravljanje sustav, koji uključuje i Linux, ali također uključuje Mac OS. Ako vam se otvoriti terminal na vašem Mac, možete koristiti ove točne naredbe. Windows ima Command Brz, ali neke od naredbi su malo drugačiji, tako da ne zapravo radi, jer Windows nije Unix baziran sustav. 

Tako ćemo pogledati neke tih Linux naredbi. Prvi koji ćete vjerojatno koristiti dosta je LS. To je mala sam, nakon čega slijedi mala s, što je kratica za popis. A što je popis naredba se je to daje vam čitanje svih datoteka i mape u trenutnoj imenik. Tako možete vidjeti sve što možete doći do odakle ste trenutno. 

Tako sam otvorio ovdje CS50 IDE. I ja ću zoom-u u Drugi da vam se bliži pogled, ali ovdje je široka slika onoga IDE izgleda. S lijeve strane, možete vidjeti imamo file drvo, koje ste vjerojatno upoznati s, dvoklik i datoteke i mape, i sve to. Dakle, to je još uvijek tu u CS50 aparata. U centru u vrhu gdje ste će biti pisanje koda, jednom kliknete na datoteku. I na dnu, ima prozor terminala, koji je mjesto gdje možemo izvršiti ove terminal naredbe. 

Idem zoom-u a nad glavom ovdje, vam pokazati kako, u stvari, ja mogu kliknite na tim datotekama i mapama. Pa jasno, gdje sam trenutno ja imam dvije mape, nazivaju pset0 i pset1, i tri datoteke, jedna se zove Pozdrav, jedan se zove hello.c, a jedna se zove hello.txt. 

Pa krenimo do terminala prozor i dobiti izbliza. Dakle, samo smo razgovarali, opet, o Činjenica da imamo tri datoteke i dva mape u trenutnoj imenik. Ako sam tip ls, što opet je naredba za popis sadržaj struje katalog, a onda sam pritisnite Enter, tražiti ono što vidim, pozdravi, hello.c, hello.txt, pset0 i pset1. 

pset0 i pset1 su plave boje, navesti vama da oni su direktoriji da bismo mogli ploviti u. A mi ćemo naučiti nešto malo o tome kako ploviti u vodi u minutu. I svaka druga stvar je obojena crna, ako je tekstualna datoteka ili izvorni kod podnijeti, i zelena, ako to je izvršna datoteka. Pa jasno, to znači da sam mogao pokrenuti program koji se zove, pozdrav. To je ono što zelena tamo znači. Ali u osnovi, upisivanjem Je li naredba je dopušteno mi da pogledate sve što postoji u mom trenutnom direktoriju, što odgovara onome što smo vidjeli ovdje, u grafički prikaz iste. Sljedeći naredba da ćete vjerojatno koristiti dosta je cd, mala c, d mala slova, što je kratica za promjenu direktorij. To nam omogućuje da učinite ono što sam bio Riječ je o drugoj prije, što je za kretanje imenicima na zapovijed linije, za razliku od dvoklik na mapama. Dakle, ako mi tip CD, a zatim naziv direktorija, možemo ući u taj direktorij. 

Kao na stranu, znam da je ime struje imenik je uvijek točka i naziv imenika jednu razinu iznad gdje smo sada, da je naziv mape u što je naša mapa, točka, dot-- ili u kojima je naša mapa, je točka, točka. A ako ste ikada znatiželjan o naziv svog imenika, možete upisati OSI, koja stoji za sadašnje radno direktorij. Mi ćemo se pogled na sve njih sada, tarifni natrag u CS50 IDE. Zato sam se vratio u moj radni prostor sada. A ja ću zoom-u ponovno na terminala, tako da možemo pogledati na kretanje unutar IDE. Zato ću na popis Sadržaj mog imenika opet, samo da naoštri nas u kojoj smo. Dakle, ako sam tip LS, koji je je za popis ponovno, Vidim da mogu doći do pset0 i pset1. Oni su direktoriji Ja mogu dobiti ovdje. Znam da je, jer IDE daje mi trag bojanje im plave. 

Recimo da želim doći u moj pset1 imenik, jer ja radim na problemu postaviti 1. Ja mogu upisati cd-- opet, za kratko promijeniti directory-- prostor, pset1. I ako sam pogodio Enter, primijetiti što se događa. To ne izgleda kao puno se dogodilo. Ali ako pogledate upit, sada govori mi da sam u ~ / radni prostor / pset1. Ja sam upravljao u pset1 mapu koja je u mom radnom prostoru. 

A ako upišete ls, vidim neke različite stvari ovdje, zar ne? Ovo nije ista popis koji sam vidio prije. Ja sam upravljao u pset1. I tako sada, kada sam tip ls, ja sam uzimajući kontekst što mogu vidi unutar pset1 mape. 

Sada ću upisati kontrolu Ja, koji je upravo briše ekran. A ja ću nabrojati Sadržaj imeniku opet, samo tako da možete vidjeti. Samo sam htio to učiniti rasprodati neke stvari da si vidio ispod a da se to spriječi ide predaleko dolje izvan dometa. 

Sada, rekao sam ranije da, ako želim za navigaciju na trenutni direktorij, Ja mogu upisati cd prostor točku. Hit Enter. To ne čini ništa, zar ne? Ja sam promjenu direktorija na trenutni direktorij. Nećeš uvijek će pronaći potrebu za jednu točku, ali će povremeno. 

Recimo da želim premjestiti na višu razinu. Želim se vratiti na moj radni prostor katalog. Ja ne mogu upisati cd radni prostor, ne postoji takva datoteka ili mapa. A razlog that-- ako sam tip LS još jedan time-- je da ne postoji katalog zove Radni prostor unutar moje pset1 imenik. Idem da razbistrim opet zaslon s kontrolnom l. Sjeti se što sam rekao ranije, međutim, da smo se kretati natrag s točkom, točka. To je naziv matičnog imenik. Dakle, ako sam tip CD, prostor, točka, točka, a zatim pritisnite Enter, Sada pogledajte što se dogodilo. Moj naredbeni redak mi govori da sam natrag u mom ~ / radni prostor imenik. Preselio sam se za jednu razinu, Zahvaljujući dot, točku. 

Sada, recimo da sam uz uporabu operativni sustav koji je zasnovan na Linuxu, ali ne mora nužno reci mi gdje sam ja. Ovaj se događa da nam kažu da je Ja sam u ~ / radni prostor upravo sada, Pravo na redak. Ali mogao sam biti potpuno izgubljen u nered mape, i nemam pojma gdje sam i nema pojma gdje želim se vratiti na. Postoje dvije stvari koje mogu učiniti. 

Prije svega, ja mogu shvatiti gdje sam ja, pokušajte OSI. To je moj sadašnji radni direktorij. I ako sam pogodio, to Upišite govori mi točno gdje sam. Sad / home / ubuntu je daleko govoreći, tilda, koji je tvoj dom katalog. Ali to mi govori da sam u Home / Ubuntu / radni prostor, ili ~ / radni prostor. 

Idem za navigaciju na moj pset1 katalog opet, a ja ću navesti sadržaj. A ja vidim da imam još jedan katalog tamo, zovu dodataka. Tako ću CD na statista, a onda ću razbistriti zaslon. 

Pa sad, ja sam prilično daleko, zar ne? Što ako želim natrag u radni prostor odmah? Postoji par stvari koje sam mogao učiniti. Mogao bih upisati CD, točka, točka, slash, točka, točka, premjestiti na višu razinu, a zatim druga razina. No, to je vrsta neugodno. 

Dakle, ako sam ikada htio vratiti na samo moj dom imenik, tilda, Ja mogu upisati CD s ništa nakon toga. Cd, Enter. I sada, ja sam u tilda. A ako želim doći do radnog prostora, Ja samo mogu upisati cd radni prostor. A to je kako radite mijenja direktorije u CS50 IDE ili bilo Linux operativnog sustava u naredbenom retku. U redu. Sljedeći koji bi mogli doći u ruci je mkdir, što je kratica za napraviti katalog, ako trebam stvoriti novu mapu. Ako ste upoznati s operacijski sustav GUI, možda desni klik. A onda, kad kontekstni izbornik pops gore, odaberite Nova mapa. To je vjerojatno kako ste to učinili prije. Ali, mi također može stvoriti imenicima na naredbenog retka. Dakle, vratili smo se u IDE. Ja ću zoom-u na terminalu i popis sadržaj mog imenika opet, samo da nam se dati referentni okvir. Recimo da je, sada, ja sam završio rad na problemu postavljen 0 i bez problema postaviti 1. Dakle, želim stvoriti novi katalog raditi na problemu za postavljanje 2. Kako ću to učiniti? 

Pa, opet, mogao sam desni klik u lijevoj strani postoji i odaberite Nova mapa i stvoriti pset2 imenik. To će raditi previše. Ali onda sam to učiniti u naredbenog retka prilično brzo, Upisivanjem mkdir, space-- I. upisali u n, but-- prostora pset2. Ako sam pritisnite Enter, a zatim sam se popis Sadržaj mog imenika opet, Vidim da je, izgleda, sada Imam pset2 mapu. I mogu se kretati u da pomoću cd i raditi sav posao moram učiniti za pset2. Usput, ja ću samo pop više Ovdje jako brzo u datoteku stabla. A možete vidjeti da je, također, u grafički File Explorer, možemo vidjeti da je pset2 katalog Također je tamo stvorio. I ja mogu kretati na njega, koristite GUI, kao dobro. Sljedeći put, a to je Vjerojatno će doći u ruci je cp, što je kratica za kopiju. Kopiranje, za razliku od svih ostalih Naredbe koje smo vidjeli, traje dva argumenta, a izvor, naziv datoteke koju želite kopirati, i odredište, gdje se želite kopirati datoteku. To je prilično jednostavan za kopiranje datoteka, tako da ćemo to učiniti. 

Dakle, vratili smo se u IDE. Idem na popis sadržaja moje trenutne imenik sa ls. Sada, recimo da želim napraviti kopiju hello.txt. Opet, iz datoteke stabla na lijevo, grafičko sučelje, Mogao sam desni klik na hello.txt, napraviti kopiju, zalijepite kopiju. Ali ja mogu to učiniti vrlo brzo u naredbenom retku previše. 

Recimo da želite kopirati hello.txt na hi.txt. Mogu CP, prostor, hello.txt. To je moja izvorna datoteka, pa zato Idem odabrati da je jedan prvi. I onda moram imenovati odredište varalica, hi.txt. Ja pritisnite Enter. A ako sam popis sadržaja mom katalog opet, tu je hi.txt. Sam napravio kopiju. A u stvari, ako sam otišao u hi.txt, što sam mogao vidim da bi to bilo točno dvostruke svega što postojao u mom hello.txt datoteke. 

Dakle, to je kako kopirate datoteku. Ali što ako želite kopirajte cijeli direktorij? Tako je za drugi, neka je pogledati na ono što je u mojoj pset0 imenik. Ako sam cd pset0 i popis sadržaja, Imam katalog zove, uzorak, i ogrebotina datoteke, scratch.sb2. Dakle, to je dobro znati. Tako ćemo očistiti ekran, i ja ću se vratiti na moj radni prostor imenik za sekundu. 

Recimo da je, sada, želim napraviti kopiju mog pset0 imenik. Ne mogu samo reći CP pset0 pset3, na primjer. Možete dobiti ovaj čudan poruku, izostavljajući imenik pset0. Zašto ste dobili tu poruku? Pa, ispada da, kad imate katalog koji ima i druge stvari unutar nje, CP naredba ne stvarno nužno znati što učiniti s njom. 

Moramo izričito reci Linux, terminal, Želim da kopirati pset0 imenik i kopija svaki mapa koji postoji unutar to i svake datoteke postoji unutar njega. Drugim riječima, trebam se rekurzivno zaroniti u pset0 i napraviti kopiju svega tamo. 

Ako želim raditi, što mogu učiniti je cp-r, za rekurzivni, pset0 pset3. Hit Enter. Sada, ako sam popisati Sadržaj mog imenika, Vidim da je pset3 katalog da mogu raditi. A ako cd sam u pset3 sada i zatim popis sadržaja, izgleda, postoji uzorak i scratch.sb2 opet. Dakle, to je prilično cool. Dakle, to je kako možete kopirati cijelu imenik, a ne samo jednu datoteku. Dakle, ako želite kopirati katalog, samo zapamtite koristiti -r zastavu kad ste rad s CP naredbe. U redu. Tako sam kopirati datoteku, ali Ja sam to učinio greškom. I sada, želim da biste dobili osloboditi od njega. Kako ću to učiniti? Opet, ako ste upoznati sa GUI sučelje, možete desnom tipkom miša i samo odabrati Izbriši. I to će ga poslati na smeće ili koš za smeće. No, u naredbeni redak, mi možete samo upisati RM, za ukloniti, a zatim naziv file želimo riješiti. 

Sada, RM je vrlo oprezni. To čini puno provjerili, kako bi bili sigurni da ste zapravo želite izbrisati datoteku. Ona ne želi napraviti nikakve pogreške, jer nema koša za smeće ovdje. Nakon što smo brisanje datoteke, to je nestalo. I tamo je stvarno nema načina da ga se oporavi. Dakle, moramo biti prilično Pazite, i tako rm će biti jako oprezni i za nas. 

Dakle, vratimo se na IDE i dobili osloboditi od taj hi.txt datoteke koje sam stvorio minute uz primjerak. Tako smo u IDE. I popis sadržaj mog imenika opet, samo da nam dati neki kontekst. Mislim, možete vidjeti da postoji hi.txt, koje sam stvorio malo prije. Sada, želim da biste dobili osloboditi od njega. Kako to učiniti? 

Opet, samo RM. Dakle, ja mogu upisati rm hi.txt i pritisnite Enter. A tu je rm biće jako oprezni za nas i da smo zapravo želite izbrisati ovu datoteku. Želite li zaista ukloniti redovito prazna datoteka hi.txt? To je baš kao i upravljanje sustava, kao što su Windows ili Mac, što bi moglo biti upoznati s iskakanje gore ta kutija kaže se stvarno sigurni da želite to učiniti. 

Prilično sam siguran da želim to, pa ću upisati, yes-- ili sam mogao samo upišite y-- i pritisnite Enter. A ako sam popis sadržaja mom katalog opet, hi.txt je otišao. Nije loše, zar ne? Idemo pritisnite Upravljačka L, samo riješiti sve ove stvari i dobiti nas natrag na vrhu zaslona. 

Sada, postoji način da se kratkog spoja rm, tako da ne pitajte nas to pitanje. Mi stvarno znati što želimo riješiti tu datoteku, a mi ni ne želim da se postavi pitanje. Kako ćemo to učiniti? Pa, možemo specificirati dodatni zastava, baš mi se sviđa učinio s CP gdje smo mogao dodati -r zastavu, da rekurzivno kopirati u imenik. Postoji još jedna zastava za RM, koji je f, što je prisiliti rm učiniti upravo ono što smo to govorim za napraviti. 

Dakle, recimo da je, sada, želim da biste dobili osloboditi od moje hello.txt datoteke. Ne želim da je jedan bilo. Što mogu učiniti? Pa, ja mogu rm -f hello.txt. Što mislite je će se dogoditi ovdje? Nestalo je. Nije ni me pitati pitanje. A u stvari, ako sam popis sadržaja moje imenik opet, to je nestalo. Nema poništiti ovdje. hello.txt je otišao, a ja nisam bio čak i pitao ako sam htjela da ga izbrisati. Što ako želim riješiti od cijelog imenika? Način na koji je to vrlo slično kopirati. Ako želite izbrisali imenik, vi ne samo želite izbrisati imenik, želite izbrisati sve unutar njega. I tako koristite -r, na rekurzivno brisanje direktorija. 

Tako ćemo rm -r pset2. Nisam zapravo radi na pset2, tako da možete dobiti osloboditi od taj direktorij. Ja pritisnite Enter. Da li želite ukloniti imenik, pset2? Da. A ako sam popis sadržaj moj katalog opet, to je nestalo. U redu? 

Još jedna varijacija na ovu temu. Dakle, ja ću opet brisanje zaslona, staviti sve na vrhu. Hit LS. Sada, želim se riješiti moje pset3 imenik, i ja znam želim dobili osloboditi od moje pset3 imenik. Ja mogu rekurzivno i prisilno ukloniti moje pset3 imenik. 

Sada, ti si idući u biti jako oprezni kada koristite rm-rf. Kao što ste programirati više, to će biti nešto što samo učiniti vrlo brzo. A u stvari, ja to radim cijelo vrijeme. Ali, to može dovesti do neke katastrofalne posljedice, Ako slučajno izbrisati krivu stvar. Dakle, želim da budete svjesni da to je opcija dostupna na vas, ali ga koristiti rijetko, i koristiti ga s oprezom. 

Znam za činjenicu Ne radim na moj problem postaviti 3 više, pa sam ide da biste dobili osloboditi od svih tih datoteka. I znam da ne želim biti pitani svaki put ako želim izbrisati datoteka, pa ću rm-rf pset3. Nije ni me pitati ako sam htjela dobili osloboditi od njega. Sam pogodio LS. pset3 je otišao. Dakle, to je sve varijacije koje možete koristiti da biste dobili osloboditi od datoteka s RM. 

Posljednji naredbenog retka naredbe koje je ide prilično korisno za vas je MV, koji je kratko za potez. Potez je zapravo ekvivalent za promjenu naziva. Ona se seli datoteke s jednog mjesta na drugo, izvor na odredište. Da vidimo gdje pomoću potez mogao biti pri ruci u prozor terminala. 

Dakle, ja sam u mojoj pset1 imenik, a ja sam primijetio nešto je krenulo malo krivo. Radio sam na moj pohlepni problema, ali sam slučajno nazvali GReddy. Dakle, kad sam probati i pokrenite ga kroz check50, to zapravo ne rade. Imam nekoliko mogućnosti. Mogli bismo učiniti ono što smo učinili prije, što je napraviti kopiju datoteke. Mogao sam kopirati greddy.c da greedy.c, zar ne? Hit Enter. Vidim da su obje datoteke su tamo. A onda sam mogla RM, ukloniti, greddy.c. To dobiva osloboditi od njega. Tako da će raditi, nakon što sam potvrditi da želim dobili osloboditi od njega. I ja se učinkovito preimenovan greddy.c na greedy.c. Ja ga kopirati, a zatim ukloniti original. 

Ali to je proces od nekoliko koraka. I svakako, postoji bolji način. U stvari, ne postoji. Tako ćemo hit kontrole L, samo dovesti natrag u ovu gore, i popis sadržaja moje imenik ponovno. 

Tako recimo, oh, pogriješio sam. Ja zapravo stvarno htjela nazvati tu datoteku greddy.c. U jednom naletu, ja mogu upisati premjestiti greedy.c na greddy.c. Hit Enter. A sada, nisam imao kopirati i ukloniti ga, Upravo sam bio u mogućnosti da ga preimenovati. Jedan-stop shopping. 

Sada, postoji mnogo drugih Osnovni naredbenog retka komunalije koje možete koristiti s Linux naredbenog retka. A mi ćemo se raspravlja mnogo od njih u budućnosti u CS50. No, za sada, samo dobivanje svoje noge mokri od rada s ovim terminalom okoliš, te pet naredbe trebao dobiti prilično daleko u kretanju oko te rad s datotekama u vašem IDE ili što god Linux-based operacijski sustav koji koristite. 

Ako ste znatiželjni i želite gledati naprijed malo neke naredbenog retka naredbe za ćemo koristiti u budućnosti, Ovdje je popis nekoliko od najčešćih one. Ja sam Doug Lloyd. Ovo je CS50.