[MUSIC JOC] 

DOUG LLOYD: OK. Deci, hai sa vorbim despre cum să utilizați linia de comandă Linux. Acum, IDE CS50, sau în De fapt, chiar și un aparat CS50, Dacă sunteți familiarizat cu asta, sau sunteți luați o versiune mai veche a CS50, este o mașină pe baza de cloud care se desfășoară Ubuntu, care este unul dintre multele arome a sistemului de operare Linux. Sistem de operare Linux este favorizat de programatori, pentru ca este doar rece, nu? 

Multe distribuții Linux moderne au interfețe grafice de utilizator, pe care o numim, de asemenea, GUI, G-U-I, pentru a permite navigarea ușoară pe bază de șoarece, care esti, probabil, familiarizat cu, dacă sunteți un utilizator Windows sau Mac, se deplasează în jurul valorii de mouse-ul, dublu-clic pe icoane, și așa mai departe. Încă, deși, ca un programator, și chiar dacă IDE conține capacitatea de a face unele grafică cu utilizatorul chestii, clic, și glisarea, și tot ce, veți fi în continuare cu ajutorul dvs. fereastră de terminal destul de frecvent. Și tu poți face multe din aceleași sarcini pe care le puteți a face cu un mouse cu comenzile de la tastatură. Și vom vorbi un pic despre ceea ce unele dintre aceste comenzi sunt acum. 

Acum, aceste comenzi pot fi utilizate cu privire la orice operare bazate pe UNIX sistem, care include Linux, dar include, de asemenea Mac OS. Dacă vă deschideți Terminal pe Mac, puteți utiliza aceste comenzi exacte. Windows are, de asemenea, de comandă Prompt, dar unele dintre comenzile sunt ușor diferite, astfel încât aceasta nu funcționează de fapt, deoarece Windows nu este un sistem bazat pe Unix. 

Deci, haideți să aruncăm o privire la unele din aceste comenzi Linux. Primul pe care le veți probabil folosesc destul de mult este ls. Asta e un L litere mici, urmată de o litere mici s, ceea ce este prescurtarea de la lista. Și ce comanda lista nu este vă oferă o citire a tuturor fișierelor și folderele din directorul curent. Astfel încât să puteți vedea tot ce se poate ajunge la locul de unde ai în prezent. 

Așa că am deschis aici IDE CS50. Și am de gând pentru a mări-in într-un în al doilea rând pentru a vă oferi o privire mai atentă, dar aici e imaginea larg a ceea ce arata ca IDE. În partea stângă, puteți vedea avem un copac fișier, care esti, probabil, familiar cu, dublu-click, și fișiere și foldere, și toate chestiile astea. Așa că e încă acolo în aparatul CS50. La centrul din partea de sus este în cazul în care sunteți va fi scris codul, o dată faceți clic pe un fișier. Și în partea de jos, am au o fereastră terminal, care este în cazul în care putem executa aceste comenzi terminale. 

Mă duc în zoom pentru și peste cap de aici, doar pentru a vă arăta că, de fapt, nu pot click pe aceste fișiere și foldere. Deci clar, în cazul în care eu sunt în prezent, am două dosare, numite pset0 și pset1, și trei fișiere, unul numit salut, unul numit hello.c, și unul numit hello.txt. 

Așa că haideți să vă deplasa în jos la terminalul fereastră și a obține o privire mai atentă. Deci, ne-am vorbit, din nou, despre Faptul că avem trei fișiere și doi foldere din directorul curent. Dacă aș tip LS, care din nou este comanda pentru a lista conținutul curent director, și apoi am lovit Enter, uite ce vad, salut, hello.c, hello.txt, pset0 și pset1. 

pset0 și pset1 sunt colorate albastru, pentru a indica pentru a vă că acestea sunt directoare că am putea naviga în. Și vom afla un pic pic despre cum să navigați în directoare într-un minut. Și orice alt lucru este de culoare neagră, dacă este un fișier text sau un cod sursă dosar, și verde, în cazul în care este un fișier executabil. Atât de clar, asta înseamnă că am ar putea rula un program numit, salut. Asta e ceea ce înseamnă cel verde de acolo. Dar, practic, tastând comandă ls a permis mi să se uite la tot ceea ce există în directorul meu curent, care Meciuri ceea ce vedem aici, în afișare grafică a fel. Urmatoarea comanda veți probabil folosesc destul de un pic este cd, litere mici c, d litere mici, care este prescurtarea de la directorul schimbare. Acest lucru ne permite să facem ceea ce am fost vorbim despre un al doilea în urmă, care este de a naviga între directoare la comanda linie, spre deosebire de dublu-clic pe foldere. Deci, dacă am de tip CD și apoi numele unui director, putem ajunge în acel director. 

Ca o paranteza, știu că numele din directorul curent este întotdeauna punct, iar numele directorului un nivel mai sus în cazul în care ne aflăm acum, că este numele folderului în care dosar noastră este, dot, dot-- sau în care dosarul noastră este, este punct, punct. Și dacă ești vreodată curiosi numele directorul, aveți posibilitatea să tastați cu handicap, care se afla pentru directorul de lucru de față. Vom arunca o privire la toate aceste acum, de la poziția înapoi la IDE CS50. Deci, m-am întors în spațiul de lucru meu acum. Și voi mări în nou pe terminale, astfel încât să putem lua o privire la mutarea în jurul în IDE. Deci, am de gând să lista conținutul directorul meu din nou, doar pentru a reascuțite ne în cazul în care ne aflăm. Deci, dacă am de tip LS, care este pentru lista din nou, Văd că pot ajunge la pset0 și pset1. Acestea sunt directoarele Pot ajunge la de aici. Știu asta, pentru că IDE dă mi un indiciu prin colorarea lor albastru. 

Să spunem că vreau să intra în directorul meu pset1, pentru că eu sunt de lucru pe probleme set 1. Am posibilitatea să tastați cd-- nou, prescurtarea de la schimba directory-- spațiu, pset1. Și dacă am lovit Enter, observa ceea ce se întâmplă. Nu arata ca o mulțime sa întâmplat. Dar dacă te uiți la prompt, acum îmi spune că eu sunt în ~ / Spațiul de lucru / pset1. Am navigat în pset1 folder care a fost în spațiul de lucru meu. 

Și dacă de tip LS, am vedea unele diferite lucruri aici, nu? Aceasta nu este același lucru Lista pe care am văzut-înainte. Am navigat în pset1. Și așa acum, când am tip LS, eu sunt obtinerea contextul ceea ce pot vezi din interiorul folderul pset1. 

Acum, am de gând să tastați de control L, care șterge doar ecranul. Și am de gând să lista conținutul directorului din nou, doar astfel încât să puteți vedea. Am vrut doar să fac asta la clar unele din lucrurile că ai văzut jos și pentru a preveni acest de la a merge prea departe în jos în afara intervalului. 

Acum, am spus mai devreme că, dacă vreau pentru a naviga la directorul curent, Am posibilitatea să tastați spațiu cd punct. A lovi Enter. Ea nu face nimic, nu? Sunt schimbarea directoare la directorul curent. Nu te întotdeauna o să găsi o necesitate pentru un singur punct, dar va ocazional. 

Să spunem că vreau pentru a vă deplasa în sus cu un nivel. Vreau să mă întorc la directorul meu spațiu de lucru. Nu pot introduce CD-ul spațiu de lucru, nu exista nici un astfel de fișier sau director. Și motivul pentru that-- dacă am de tip LS mai mult de un time-- este că nu există nici un director numit spațiu de lucru în interiorul directorul meu pset1. Am de gând să-mi șterge ecran din nou cu un control l. Amintiți-vă ce am spus mai devreme, totuși, că am pot naviga înapoi cu punct, punct. Asta e numele directorului părinte. Deci, dacă am de tip CD, spațiu, punct, punct, și apoi a lovit Enter, acum uita-te la ceea ce sa întâmplat. Prompt de comandă meu îmi spune că eu sunt înapoi în directorul meu ~ / spațiu de lucru. M-am mutat la un nivel, Datorită dot, dot. 

Acum, să spunem că eu sunt, folosind un sistem de operare, care este bazat pe Linux, dar nu în mod necesar nu spune-mi unde sunt. Acest lucru se întâmplă să ne spună că Sunt în ~ / spațiu de lucru, chiar acum, chiar la prompt. Dar am putea fi complet a pierdut într-o mizerie de dosare, și nu am nici o idee unde mă aflu și nici o idee în cazul în care vreau să mă întorc la. Există două lucruri pe care le pot face. 

Mai întâi de toate, eu pot da seama de unde sunt, prin tastarea handicap. Asta e director de lucru meu prezent. Și dacă am lovit Enter, se mi-a spus exact unde sunt. Acum / home / ubuntu este drum lung de a spune, tilda, care este directorul home. Dar îmi spune că eu sunt în home / ubuntu / spațiu de lucru, sau ~ / spațiu de lucru. 

Am de gând să mergeți la directorul meu pset1 din nou, și am de gând să lista conținutul. Și văd că am un alt director acolo, numit extra. Deci, am de gând să cd în Extras, și apoi m-am de gând să îndepărteze ecranul meu. 

Deci, acum, eu sunt destul de departe in, nu? Ce se întâmplă dacă vreau să susțină la spațiul de lucru imediat? Există câteva lucruri pe care le putea face. Aș putea de tip CD, punct, punct, slash, dot, dot, pentru a vă deplasa în sus cu un nivel și apoi un alt nivel. Dar asta e un fel de enervant. 

Deci, dacă vreau vreodată să mă întorc la doar mea de start anuar, tilda, Pot tip CD cu nimic după el. Cd, Enter. Și acum, eu sunt în tilda. Și dacă vreau să ajung la spațiul de lucru, Am posibilitatea să tastați doar cd spațiu de lucru. Și așa lucrați schimbare directoare în cadrul IDE CS50 sau orice Linux sistem de operare de la linia de comandă. In regula. Următorul cel care s-ar putea veni la îndemână este mkdir, care este prescurtarea de la a face un director, dacă am nevoie pentru a crea un folder nou. Dacă sunteți familiarizat cu sistemul de operare GUI, s-ar putea clic-dreapta. Și apoi, când meniul contextual apare, alegeți New Folder. Asta e, probabil, cât de l-ați făcut-o înainte. Dar putem crea, de asemenea directoare de la linia de comandă. Deci ne-am întors în IDE. Voi zoom-in pe terminal și lista conținutul directorul meu din nou, doar pentru a ne da un cadru de referință. Să spunem că, acum, am terminat de lucru pe probleme stabilite 0 și problema set 1. Așa că doriți să creați un nou director pentru a lucra la o problema de set 2. Cum să fac asta? 

Ei bine, din nou, am putut click-drept în partea stanga acolo și selectați New Folder și de a crea un director pset2. Care ar lucra prea. Dar apoi m-am, de asemenea, o fac la linie de comandă destul de repede, prin tastarea mkdir, am space-- tastat în n, dar-- spațiu pset2. Dacă am lovit Enter și apoi am listă conținutul directorul meu din nou, Văd că, uite, acum Am un dosar pset2. Și pot naviga în că utilizarea cd și de a face toate lucrările ce trebuie să fac pentru pset2. De altfel, voi pop peste aici foarte repede la copac fișier. Și puteți vedea că, de asemenea, în grafică File Explorer, putem vedea că directorul pset2 a fost de asemenea creat acolo. Și eu pot să-l naviga, folosind GUI, de asemenea. Data viitoare și că este probabil, va veni la îndemână este cp, care este prescurtarea de la copie. Copiați, spre deosebire de toate celelalte comenzi am văzut mai înainte, ia două argumente, o sursă, Numele fișierului pe care doriți să îl copiați, și o destinație, în cazul în care doriți să copiați fișierul. Este destul de ușor de a copia un fișier, Să faci asta. 

Deci ne-am întors în IDE. Am de gând să lista conținutul de directorul meu curent cu LS. Acum, să spunem că vreau pentru a face o copie de hello.txt. Din nou, din copac fișier de pe stânga, interfața grafică, Aș putea click dreapta pe hello.txt, face o copie, lipiți copia. Dar eu pot face destul de repede la linia de comandă prea. 

Să presupunem că vreau să copiați hello.txt la hi.txt. Pot cP, spațiu, hello.txt. Asta e dosarul meu sursă, astfel încât de aceea Am de gând să aleagă mai întâi că unul. Și apoi am nevoie pentru a denumi fișier destinație, hi.txt. Am lovit Enter. Și dacă lista conținutul meu director nou, nu e hi.txt. Am făcut o copie a acestuia. Și de fapt, dacă m-am dus în hi.txt, aș putea vedea că ar fi o exact duplicat de tot ceea ce existat în dosarul meu hello.txt. 

Deci, asta e modul în care copia un fișier. Dar ce se întâmplă dacă doriți să copiați un director întreg? Deci, pentru un al doilea, haideți să aruncăm o privire la ceea ce este în directorul meu pset0. Dacă am cd pset0 și lista conținutul, Am un director numit, proba, și un fișier zero, scratch.sb2. Așa că e bine de știut. Deci, haideți să goli ecranul, și am de gând să mă întorc la directorul meu spațiu de lucru pentru o secundă. 

Să spunem că, acum, vreau să face o copie de director meu pset0. Nu pot să spun doar cp pset0 pset3, de exemplu. Ai acest mesaj ciudat, omiterea director pset0. De ce ai acest mesaj? Ei bine, se pare că, atunci când aveți un director care are alte chestii în interiorul acestuia, comanda cp nu prea știu neapărat ce să facă cu ea. 

Avem nevoie în mod explicit spune Linux, terminal, Vreau să copiați director pset0 și copie fiecare dosar care există în interiorul de ea și fiecare fișier care există în interiorul acestuia. Cu alte cuvinte, am nevoie de tine să recursiv se arunca cu capul în jos, în pset0 și să facă o copie a tot ceea ce acolo. 

Dacă vreau să fac asta, ce pot face este cp-R, pentru recursiv pset3, pset0. A lovi Enter. Acum, dacă am lista de conținutul directorul meu, Văd că e pset3 director pe care le pot lucra cu. Și dacă CD-ul în pset3 acum și apoi lista conținutul, uite, există probă și scratch.sb2 din nou. Așa că e destul de cool. Deci, asta e modul în care puteți să copiați un întreg director, și nu doar un singur fișier. Deci, dacă doriți să copiați un director, amintiți-vă doar pentru a folosi steagul -r atunci când sunteți de lucru cu comanda cp. In regula. Așa că am copiat un fișier, dar Am făcut din greșeală. Și acum, vreau să scap de ea. Cum să fac asta? Din nou, dacă esti familiarizat cu o interfață GUI, puteți să faceți clic-dreapta și alegeți doar Ștergere. Și-l vom trimite la gunoi sau Recycle Bin. Dar, la linia de comandă, am posibilitatea să tastați doar rm, pentru elimina, și apoi numele fișier vrem să scăpăm de. 

Acum, rm este foarte atent. Ea are o mulțime de dublu control, pentru a vă asigura că sunteți de fapt doriți să ștergeți fișierul. Ea nu vrea să facă orice greșeli, pentru că nu există nici o Recycle Bin aici. După ce vom șterge un fișier, a dispărut. Și nu există cu adevărat nici o modalitate de a recupera. Așa că trebuie să fie destul de atent, și așa rm va fi cu adevărat atent pentru noi. 

Deci, să ne întoarcem la IDE și de a scăpa de acest fișier hi.txt că am creat acum un minut cu copie. Deci suntem în IDE. Și am lista conținutul directorul meu din nou, doar pentru a ne da unele context. Adică, puteți vedea că există hi.txt, pe care am creat acum ceva timp. Acum, vreau să scap de ea. Cum o fac? 

Din nou, doar RM. Deci, eu pot tip rm hi.txt și apăsați pe Enter. Și nu e rm ființă foarte atent pentru noi și de a face sigur că de fapt doriți să ștergeți acest fișier. Sigur doriți să eliminați regulat gol fișier hi.txt? Asta e doar ca un lucru sistem, cum ar fi Windows sau Mac, că ați putea fi familiarizat cu popping sus cutia spune că sunt într-adevăr sigur că vrei să faci asta. 

Sunt destul de sigur că vreau să acest lucru, așa că am de gând să tastați, yes-- Sau aș putea, de asemenea, doar tip y-- și apăsați pe Enter. Și dacă lista conținutul meu director nou, hi.txt este plecat. Nu-i rău, nu? Să apăsați Control L, doar pentru a scăpa de toate aceste lucruri și ne întoarcem la partea de sus a ecranului. 

Acum, există o modalitate de a rm scurt-circuit, astfel încât că nu ne cere această întrebare. Noi știm într-adevăr vrem pentru a scăpa de acest dosar, și nici măcar nu vreau care urmează să fie pus întrebarea. Cum facem asta? Ei bine, putem specifica o pavilion plus, la fel ca noi făcut cu cp unde ne ar putea adăuga steagul -r, pentru a copia recursiv într-un director. Există un alt pavilion pentru rm, care este -f, care este de a forța rm să facă exact ceea ce suntem o spune să facă. 

Deci, haideți să spunem că, acum, vreau pentru a scăpa de dosarul meu hello.txt. Nu vreau ca unul, fie. Ce pot face? Ei bine, eu pot rm -f hello.txt. Ce crezi că este se va întâmpla aici? A disparut. Nici măcar nu-mi pun întrebarea. Și, de fapt, dacă am lista conținutul de directorul meu din nou, a dispărut. Nu e nici un undo aici. hello.txt este plecat, și nu am fost chiar întrebat dacă vreau să-l ștergeți. Ce se întâmplă dacă vreau să scap de un director întreg? Felul în care face acest lucru este foarte similar pentru a copia. Dacă doriți să ștergeți un director, tu nu doar doriți să ștergeți directorul, pe care doriți pentru a șterge totul în interiorul de el. Și astfel încât să utilizați -r, pentru a șterge recursiv un director. 

Așa că haideți să RM pset2 -r. Nu mă fapt de lucru pe pset2, așa că am putea scăpa de acel director. Am lovit Enter. Vreau pentru a elimina director, pset2? Da. Și dacă lista conținutul directorul meu din nou, a dispărut. In regula? 

O variantă mai mult pe această temă. Așa că vom goli ecranul din nou, pentru a pune totul la partea de sus. Lovit ls. Acum, vreau să scap de directorul meu pset3, și eu știu cu adevărat vreau să scăpa de director meu pset3. Pot recursiv și cu forța elimina directorul meu pset3. 

Acum, ai de gând să fie cu adevărat Aveți grijă când utilizați rm -rf. Pe măsură ce programați mai, va fi ceva doar ce faci foarte repede. Și, de fapt, fac asta tot timpul. Dar poate duce la unele consecințe dezastruoase, Daca din greseala șterge un lucru greșit. Deci, vreau să fie conștienți de faptul că Aceasta este o opțiune disponibilă pentru tine, dar l utilizați cu moderație, și-l utilizați cu precauție. 

Știu pentru un fapt nu lucrez pe problema mea mai stabilit 3, așa că eu sunt O să scapi de toate aceste fișiere. Și știu că nu vreau să fiu întrebat de fiecare dată singur dacă vreau să ștergeți un fișier, așa că am de gând să rm -rf pset3. Chiar nu a cerut-mă dacă am a vrut să scape de ea. Am lovit ls. pset3 este plecat. Deci, asta e toate variantele pe care le poate folosi pentru a scapa de fișiere cu rm. 

Comanda linie Ultima comandă care este O să destul de util pentru tine este mv, care este prescurtarea de la mutare. Mutare este de fapt echivalent cu a redenumi. Se mișcă un fișier dintr-o locație la un alt, sursa la destinatie. Să vedem unde s-ar putea muta cu ajutorul unui fie la îndemână la fereastră terminal. 

Așa că eu sunt în pset1 meu director, și am observat ceva a mers un pic greșit. Am fost de lucru pe problema mea lacomi, dar am numit accidental o greddy. Așa că atunci când am încerca și rulați-l prin check50, nu reprezintă cu adevărat funcționează. Am o pereche de opțiuni. Am putea face ceea ce am făcut înainte, care este de a face o copie a fișierului. Aș putea copia greddy.c la greedy.c, nu? A lovi Enter. Văd că ambele fișiere sunt acolo. Și apoi m-am putut RM, pentru a elimina, greddy.c. Că scapa de ea. Așa că ar lucra, după ce am confirma că vreau să scap de ea. Și am în mod eficient greddy.c redenumit greedy.c. Am copiat, și apoi eliminat originalul. 

Dar asta e un proces în mai multe etape. Și, cu siguranță, există o cale mai bună. De fapt, nu există. Deci, haideți să lovit de control L, doar pentru a aduce acest back-up, și lista conținutul de directorul meu din nou. 

Deci, să spunem, oh, am făcut o greșeală. Eu de fapt, într-adevăr am vrut pentru a apela acel fișier greddy.c. Într-o singură lovitură, pot tip muta greedy.c la greddy.c. A lovi Enter. Și acum, nu am avut pentru a copia și scoateți-l, Am fost în stare să-l redenumiți. One-stop shopping. 

Acum, există o mulțime de alte utilitati de baza linie de comandă pe care le puteți utiliza cu linia de comandă Linux. Și vom discuta o mulțime dintre ele în viitor, în CS50. Dar pentru acum, obtinerea doar picioarele tale umed cu care lucrează cu acest terminal Mediu, aceste cinci comenzi ar trebui să te destul de departe în navigarea în jurul valorii de și lucrul cu fișiere în IDE-ul sau în orice bază de Linux sistem de operare pe care îl utilizați. 

Daca esti curios si vrei sa privi înainte un pic la un moment dintre comenzile din linia de comandă Vom folosi în viitor, aici este o listă a unui cuplu din cele mai comune. Sunt Doug Lloyd. Acest lucru este CS50.