[REPRODUCCIÓ DE MÚSICA] 

DOUG LLOYD: OK. Així que anem a parlar de com utilitzar la línia d'ordres de Linux. Ara, el CS50 IDE, o en De fet, fins i tot un aparell de CS50, si està familiaritzat amb això, o vostè està prenent una versió antiga del CS50, és una màquina basada en el núvol que corre Ubuntu, que és un dels molts sabors del sistema operatiu Linux. Sistema operatiu Linux és afavorida pels programadors, perquè és només més fresc, no? 

Moltes distribucions modernes de Linux tenir interfícies gràfiques d'usuari, que també anomenem interfícies gràfiques d'usuari, G-U-I, a permetre la navegació basat en el ratolí fàcil, que probablement estigui familiaritzat amb, si vostè és un usuari de Windows o Mac, movent el punter del ratolí, fer doble clic a les icones, i així successivament. Encara però, com a programador, i encara que l'IDE conté la capacitat de fer alguna cosa d'usuari gràfica coses, clic, i arrossegant, i tot això, vostè encara va a utilitzar el seu finestra de terminal bastant freqüència. I vostè pot fer moltes de les mateixes tasques que pot fer amb un ratolí amb comandaments de teclat. I anem a parlar una mica sobre el que algunes de les ordres són ara. 

Ara, aquestes comandes es poden utilitzar en qualsevol operatiu basat en Unix sistema, que inclou Linux, però també inclou Mac OS. Si vostè obre Terminal al teu Mac, pot utilitzar aquestes comandes exactes. Windows també té Comando Prompt, però algunes de les ordres són lleugerament diferents, per la qual no funciona en realitat, perquè Windows no és un sistema basat en Unix. 

Així que donem una ullada a alguns d'aquests comandaments de Linux. El primer que et vaig a probablement faci servir molt és ls. Aquesta és una l minúscula, seguida d'una minúscula s, que és l'abreviatura de la llista. I el que la comanda list fa és que li dóna una lectura de tots els arxius i carpetes en el directori actual. Així es pot veure tot el que pugui arribar des d'on es troba actualment. 

Així que m'he obert aquí l'IDE CS50. I jo faré un zoom-in en un segon per donar-li un cop d'ull més de prop, però aquí està el panorama general del que l'IDE es sembla. A l'esquerra, es pot veure que tenim un arbre d'arxius, que és probable que estiguis familiaritzat amb, doble clic, i arxius i carpetes, i totes aquestes coses. Així que això és encara allà en l'aparell CS50. Al centre de la part superior és on estàs va escriure el seu codi, un cop fer clic en un arxiu. I a la part inferior, es tenir una finestra de terminal, que és on podem executar aquests comandaments de terminal. 

Vaig a fer un zoom-in i el cap aquí, només per demostrar que, de fet, no puc feu clic als arxius i carpetes. Així que està clar, on actualment sóc, tinc dues carpetes, anomenades pset0 i pset1, i tres arxius, un anomenat hola, un anomenat hello.c, I l'un hello.txt. 

Així que anem a moure cap avall a la terminal finestra i aconseguir una mirada més propera. Així que acabem de parlar, un cop més, sobre la fet que tenim tres arxius i dos carpetes en el directori actual. Si escric ls, que de nou és la comanda per llistar el contingut de l'actual directori, i després em va colpejar Enter, mira el que veig, hola, hello.c, hello.txt, pset0 i pset1. 

pset0 i pset1 són de color blau, per indicar a vostè que aquests són els directoris que podríem navegar en. I anem a aprendre una mica poc sobre com navegar en directoris en un minut. I tota la resta és de color negre, si es tracta d'un arxiu de text o un codi font presentar, i verd, si que és un arxiu executable. Així que està clar, això vol dir que jo podria executar un programa anomenat, hola. Això és el que significa la verda allà. Però, bàsicament, escrivint el comanda ls ha permès jo miro tot el que existeix en el meu directori actual, que coincideix amb el que veiem aquí, al visualització gràfica de la mateixa. El següent comanda podràs probablement utilitzar una mica és cd, minúscules c, d minúscula, que és l'abreviatura de canvi de directori. Això ens permet fer el que era parlant d'un segon darrere, que és per navegar entre directoris en la comanda línia, en contraposició a fer doble clic a les carpetes. Així que si escrivim cd i després el nom d'un directori, podem entrar en aquest directori. 

Sigui dit de passada, saber que el nom del directori actual és sempre punt, i el nom del directori un nivell per sobre d'on estem ara, que és el nom de la carpeta a que la nostra carpeta és, punt, dot-- o en els que la nostra carpeta és, és punt, punt. I si alguna vegada curiositat per el nom del seu directori, pot escriure pwd, que destaca per al directori de treball actual. Anem a fer una ullada a tots ells Ara, en la partida de tornada a la IDE CS50. Així que estic de tornada en el meu espai de treball ara. I vaig a zoom-in de nou en el terminal, de manera que podem fer una ullada en moure 'dins de l'IDE. Així que vaig a enumerar la contingut de la meva directori de nou, només per remolido nosaltres en on som. Així que si escric ls, que és per a la llista de nou, Veig que puc arribar a pset0 i pset1. Aquests són els directoris Jo puc arribar des d'aquí. Ho sé, perquè l'IDE dóna jo ni idea de per acolorir blau. 

Diguem que vull entrar al meu directori pset1, perquè estic treballant en el problema d'ajust 1. Puc escriure cd-- de nou, l'abreviatura de canviar directory-- espai, pset1. I si prem enter, observi el que succeeix. No es veu com han passat moltes coses. Però si ens fixem en l'indicador, ara em diu que estic a ~ / espai de treball / pset1. He navegat en el pset1 carpeta que estava dins de la meva àrea de treball. 

I si escric ls, veig alguns coses diferents aquí, oi? Aquest no és el mateix llista que vaig veure abans. He navegat en pset1. I ara, quan escric ls, estic aconseguir el context del que puc veure des de dins de la carpeta pset1. 

Ara, vaig a escriure de control l, el que simplement esborra la pantalla. I jo vaig a enumerar la contingut del directori de nou, només perquè pugui veure. Només volia fer-li això a aclarir algunes de les coses que va veure a baix i per evitar que això d'anar massa lluny fora de rang. 

Ara, he dit abans que, si vull per navegar fins al directori actual, Puc escriure cd espai de punts. Hit Retorn. No fa res, oi? Estic canviant directoris en el directori actual. No sempre vas a trobar una necessitat d'un sol punt, però de tant en tant. 

Diguem que vull per pujar un nivell. Vull tornar a el meu directori espai de treball. No puc escriure espai de treball de cd, no hi ha tal arxiu o directori. I la raó de que- si escric ls d'un temps-- més és que no hi ha cap directori anomenat espai de treball a l'interior del meu directori pset1. Vaig a netejar el meu pantalla de nou amb el control de l. Recordeu el que vaig dir abans, però, que ens pot navegar de tornada amb el punt, punt. Aquest és el nom del directori pare. Així que si escric cd, espai, punt, punt, i després premeu Enter, ara mira el que va passar. El meu símbol del sistema em diu que sóc de tornada al meu directori ~ / espai de treball. Em vaig mudar a un nivell, gràcies a punt, punt. 

Ara, diguem que estic fent servir un sistema operatiu que està basat en Linux, però no necessàriament digues-me on sóc. Aquest passa a dir-nos que Estic a ~ / espai de treball en aquest moment, dreta en l'indicador. Però podria ser completament perduda en un embolic de les carpetes, i no tinc ni idea d'on estic i ni idea d'on vull tornar a. Hi ha dues coses que puc fer. 

En primer lloc, jo puc entendre on sóc, escrivint pwd. Aquesta és la meva directori de treball actual. I si prem enter, es em diu exactament on sóc. Ara / home / ubuntu és el molt lluny de dir, accent, que és el seu directori personal. Però em diu que estic en casa / ubuntu / àrea de treball, o ~ / espai de treball. 

Vaig a navegar fins el meu directori pset1 de nou, i jo vaig a mostrar el contingut. I veig que tinc un altre directori d'allà, va trucar extres. Així que vaig a cd en extres, i llavors jo vaig a netejar la meva pantalla. 

Així que ara, estic bastant lluny, oi? I si vull fer una còpia a l'espai de treball immediatament? Hi ha un parell de coses que podria fer. Jo podria escriure cd, punt, punt, ratlla vertical, de punt, de punt, per pujar un nivell i després un altre nivell. Però això és una mica molest. 

Així que si mai vull tornar a només el meu directori home, accent, Puc escriure cd sense res després d'ella. Cd, Retorn. I ara, estic en accent. I si vull arribar a l'àrea de treball, Només puc escriure espai de treball cd. I així és com es treballa directoris canviants dins de l'IDE CS50 o qualsevol Linux sistema operatiu a la línia d'ordres. Tot bé. El proper que podria molt útil és mkdir, que és curt per fer un directori, si he de crear una nova carpeta. Si vostè està familiaritzat amb el sistema operatiu GUI, és possible que feu clic dret. I llavors, quan el menú de context apareix, seleccioneu Carpeta nova. Aquesta és probablement la forma ho has fet abans. Però també podem crear directoris a la línia d'ordres. Així que estem de tornada a l'IDE. Vaig zoom-in a la terminal i llistar el contingut del meu directori de nou, només per donar-nos un marc de referència. Diguem que, ara, no tinc Va acabar de treballar en conjunt de problemes 0 i el problema de conjunt 1. Així que vull crear un nou directori per treballar en un problema per al conjunt 2. Com puc fer això? 

Bé, de nou, vaig poder fer clic dret a l' costat esquerre allà i triï Nova carpeta i crear un directori PSet2. Això funcionaria també. Però llavors jo també ho faig al línia d'ordres amb força rapidesa, escrivint mkdir, em espai-- escrit en n, però- espai PSet2. Si em va colpejar Enter i després enumero la contingut del meu directori nou, Veig que, mira, ara Tinc una carpeta PSet2. I puc navegar en que l'ús de cd i fer tota la feina que ha de fer per PSet2. Per cert, vaig a esclatar sobre aquí realment ràpidament a l'arbre de fitxers. I es pot veure que, també, en l'Explorador d'arxius gràfics, podem veure que el directori PSet2 També s'ha creat allà. I puc navegar a la mateixa, mitjançant la GUI també. La propera vegada i això és probablement vindrà molt bé és cp, que és l'abreviatura per a la còpia. Copieu, a diferència de tots els altres comandes que hem vist abans, pren dos arguments, una font, la nom del fitxer que voleu copiar, i un destí, on vol copiar el fitxer. És bastant fàcil de copiar un arxiu, de manera que farem això. 

Així que estem de tornada a l'IDE. Vaig a enumerar els continguts de la meva directori actual amb ls. Ara, diguem que vull per fer una còpia de hello.txt. Un cop més, des de l'arbre d'arxius en el a l'esquerra, la interfície gràfica, Podia fer clic dret sobre hello.txt, fer una còpia, enganxa la còpia. Però puc fer-ho bastant ràpid en la línia d'ordres també. 

Diguem que vull copiar hello.txt a hi.txt. Puc cp, espai, hello.txt. Aquesta és la meva arxiu d'origen, així que per això Vaig a triar que un primer. I després he de nomenar el arxiu de destinació, hi.txt. Vaig colpejar Retorn. I si enumero el contingut del meu directori nou, no està hi.txt. Vaig fer una còpia de la mateixa. I de fet, si em vaig anar en hi.txt, vaig poder veure que seria una exacta duplicats de tot el que existit en el meu arxiu hello.txt. 

Així que així és com es copia un arxiu. Però el que si vols copiar un directori complet? Així que per un segon, anem a fer una ullada al que hi ha a la directori pset0. Si jo pset0 cd i la llista dels continguts, Tinc un directori anomenat, mostra, i un arxiu de zero, scratch.sb2. Així que això és bo saber-ho. Així que anem a aclarir la pantalla, i vaig a tornar al meu directori d'espai de treball durant un segon. 

Diguem que, ara, vull fer una còpia del meu directori pset0. No puc dir pset0 cp pset3, per exemple. Vostè rep aquest missatge estrany, ometent directori pset0. Per què apareix el missatge? Bé, resulta que, quan vostè té un directori que té altres coses a l'interior de la mateixa, la comanda cp en realitat no necessàriament saber què fer amb ella. 

Hem de explícitament dir-li a Linux, la terminal, Vull que copiar el directori pset0 i còpia cada carpeta que hi ha dins de la mateixa i tots els arxius que existeix dins d'ella. En altres paraules, et necessito recursivament bussejar en pset0 i fer una còpia de tot el que existeix. 

Si jo vull fer això, el que jo puc fer és cp-r, per recursiva, pset3 pset0. Hit Retorn. Ara, si enumero la contingut de la meva directori, Veig aquí està el pset3 directori que puc treballar. I si cd I en pset3 ara i a continuació, una llista del contingut, mira, no hi ha mostra i scratch.sb2 de nou. Així que això és molt bo. Així que així és com es pot copiar una sencera directori, i no només un únic arxiu. Així que si vol copiar un directori, només recorda a col·locar la bandera -r quan estàs treballant amb la comanda cp. Tot bé. Així que m'he copiat un arxiu, però Ho he fet per error. I ara, vull desfer-me d'ell. Com puc fer això? De nou, si vostè està familiaritzat amb una interfície gràfica d'usuari, vostè pot fer clic dret i simplement escolliu Elimina. I que va a enviar a la escombraries o la Paperera de reciclatge. Però en la línia d'ordres, que Només pot escriure rm, per eliminar, i després el nom de la arxivem volem eliminar. 

Ara, rm és molt acurat. Fa un munt de de doble control, per assegurar-se que en realitat vol eliminar el fitxer. No vol cometre cap error, perquè no hi ha paperera de reciclatge aquí. Un cop esborrem un arxiu, s'ha anat. I realment no hi ha manera de recuperar-lo. Així que hem de ser molt cura, i així rm serà molt acurat per a nosaltres. 

Així que anem a tornar a l'IDE i desfer d'aquest arxiu hi.txt que vaig crear fa un minut amb la còpia. Així que estem en l'IDE. I enumero el contingut del meu directori de nou, només per donar-nos una mica de context. Vull dir, es pot veure que hi ha hi.txt, que vaig crear fa una estona. Ara, vull desfer-me d'ell. Com ho faig? 

Un cop més, de la mateixa manera rm. Així que puc escriure hi.txt rm i premeu Enter. I no ser rm molta cura per a nosaltres i assegurar-se que en realitat voler eliminar aquest arxiu. Realment voleu eliminar hi.txt arxiu buit regular? Això és igual que un operatiu sistema, com Windows o Mac, que podria ser familiaritzats amb apareixent aquesta caixa diu són realment Segur que vols fer això. 

Estic bastant segur que vull això, així que vaig a escriure, sí-- O podria també acaba escrigui I- i prem Enter. I si enumero el contingut del meu Directori de nou, hi.txt s'ha anat. No està malament, no? Anem prement Control L, just per desfer-se de totes aquestes coses i fer-nos tornar al la part superior de la pantalla. 

Ara, hi ha una manera de rm curtcircuit, per la qual que no ens demana aquesta pregunta. Realment sabem que volem per desfer d'aquest arxiu, i ni tan sols volem que es va fer la pregunta. Com ho fem? Bé, podem especificar un indicador addicional, igual que va fer amb cp on podria afegir la bandera -r, copiar de forma recursiva en un directori. Hi ha una altra bandera per a RM, que és -f, que és a la força rm per fer exactament el que estem dient és que fer. 

Així que diguem que, ara, vull per desfer del meu arxiu hello.txt. No vull que un tampoc. Què puc fer? Bé, puc rm hello.txt -f. Què creus que és passarà aquí? Ha marxat. Ni tan sols em faci la pregunta. I de fet, si enumero els continguts de la meva directori de nou, s'ha anat. No hi ha desfer aquí. hello.txt s'ha anat, i jo no era fins i tot se li va preguntar si volia eliminar-lo. I si vull desfer-me d'un directori complet? La forma de fer-ho que és molt similar a copiar. Si voleu eliminar un directori, no ho fa només vol eliminar el directori, que desitja per esborrar tot l'interior de la mateixa. I pel que utilitzar -r, a recursiva eliminar un directori. 

Així que anem a rm PSet2 -r. No estic realment treballant en PSet2, perquè pugui desfer-se d'aquest directori. Vaig colpejar Retorn. ¿Vull treure directori, PSet2? Sí, ho faig. I si enumero els continguts de el meu directori nou, s'ha anat. Tot bé? 

Una variació més sobre aquest tema. Així que vaig a netejar la pantalla de nou, posar tot a la part superior. Hit ls. Ara, vull desfer de la meva directori pset3, i jo realment sé que vull desfer del meu directori pset3. Puc recursiva i la força treure el meu directori pset3. 

Ara, vostè va a ser realment compte quan vostè està utilitzant rm -rf. Com programar més, serà una cosa que vostè acaba de fer molt ràpidament. I de fet, ho faig tot el temps. Però pot conduir a una certa conseqüències desastroses, si accidentalment eliminar les coses malament. Així que vull que siguis conscient que aquesta és una opció disponible per a vostè, però utilitzar-lo amb moderació, i usar-lo amb precaució. 

Sé que és un fet, no estic treballant en el meu conjunt de problemes 3 més, així que estic va a desfer-se de tots aquests arxius. I sé que no vull que se li pregunti cada vegada si vull eliminar un arxiu, així que vaig a rm -rf pset3. Ni tan sols preguntar-me si jo volia desfer-se'n. Vaig colpejar ls. pset3 s'ha anat. Així que això és totes les variacions que pot utilitzar per desfer-se dels arxius amb rm. 

La comanda de línia de comandes que és l'última anar a bastant útil per a vostè és mv, que és l'abreviatura de moviment. Move és bàsicament equivalent a canviar el nom. Es mou un arxiu d'un lloc a una altra, l'origen a la destinació. Anem a veure, on l'ús d'un poder moviment ser útil a la finestra de terminal. 

Així que estic en el meu pset1 directori, i m'he adonat alguna cosa ha anat una mica malament. Jo estava treballant en el meu problema cobdiciós, però accidentalment ho vaig nomenar GReddy. Així que quan intento executar a través de check50, en realitat no funciona. Tinc un parell d'opcions. Podríem fer el que hem fet abans, que és fer una còpia de l'arxiu. Vaig poder copiar greddy.c a greedy.c, oi? Hit Retorn. Veig que tots dos arxius hi són. I llavors jo podria RM, per eliminar, greddy.c. Que es desfà d'ell. Així que vol treballar, després que confirmo que vull desfer-me d'ell. I efectivament tinc greddy.c reanomenat a greedy.c. El vaig copiar, i després eliminat l'original. 

Però això és un procés de múltiples passos. I, certament, no hi ha una millor manera. De fet, no existeix. Així que anem a colpejar Control de L, només per portar aquesta còpia de seguretat, i mostrar el contingut de la meva directori de nou. 

Així que diguem que, oh, he comès un error. De fet, em volia trucar a aquest arxiu greddy.c. D'un sol cop, puc escriure moure greedy.c a greddy.c. Hit Retorn. I ara, jo no tenia copiar i eliminar-ho, Jo només era capaç de canviar el seu nom. Una finestreta única. 

Ara, hi ha un munt d'altres serveis bàsics de línia de comandaments que es pot utilitzar amb la línia d'ordres de Linux. I estarem discutint molt d'ells en el futur en el CS50. Però per ara, només aconseguir els seus peus humida amb el treball amb aquest terminal ambient, aquests cinc ordres ha de aconseguir-bastant lluny en la navegació de la volta i treballar amb arxius en el seu IDE o en el que sigui basat en Linux sistema operatiu que utilitzeu. 

Si tens curiositat i vols mirar cap endavant una mica en algun dels comandaments de la línia d'ordres que utilitzarà en el futur, aquí tens una llista d'una parella dels més comuns. Sóc Doug Lloyd. Això és CS50.