[REPRODUCCIÓN DE MÚSICA] DOUG LLOYD: OK. Así que vamos a hablar de cómo utilizar la línea de comandos de Linux. Ahora, el CS50 IDE, o en De hecho, incluso un aparato de CS50, si está familiarizado con eso, o usted está tomando una versión antigua del CS50, es una máquina basada en la nube que corre Ubuntu, que es uno de los muchos sabores del sistema operativo Linux. Sistema operativo Linux es favorecida por los programadores, porque es sólo más fresco, ¿no? Muchas distribuciones modernas de Linux tener interfaces gráficas de usuario, que también llamamos interfaces gráficas de usuario, G-U-I, a permitir la navegación basado en el ratón fácil, que probablemente esté familiarizado con, si usted es un usuario de Windows o Mac, moviendo el puntero del ratón, hacer doble clic en los iconos, y así sucesivamente. Aún sin embargo, como programador, y aunque el IDE contiene la capacidad de hacer algo de usuario gráfica cosas, clic, y arrastrando, y todo eso, usted todavía va a utilizar su ventana de terminal bastante frecuencia. Y usted puede hacer muchas de las mismas tareas que puede hacer con un ratón con comandos de teclado. Y vamos a hablar un poco acerca de lo que algunos de los comandos son ahora. Ahora, estos comandos se pueden utilizar en cualquier operativo basado en Unix sistema, que incluye Linux, pero también incluye Mac OS. Si usted abre Terminal en tu Mac, puede utilizar estos comandos exactos. Windows también tiene Comando Prompt, pero algunos de los comandos son ligeramente diferentes, por lo no funciona en realidad, porque Windows no es un sistema basado en Unix. Así que echemos un vistazo a algunos de estos comandos de Linux. El primero que te voy a probablemente use mucho es ls. Esa es una l minúscula, seguida de una minúscula s, que es la abreviatura de la lista. Y lo que el comando list hace es que le da una lectura de todos los archivos y carpetas en el directorio actual. Así se puede ver todo lo que pueda llegar desde donde se encuentra actualmente. Así que me he abierto aquí el IDE CS50. Y yo voy a hacer un zoom-in en un segundo para darle un vistazo más de cerca, pero aquí está el panorama general de lo que el IDE se parece. A la izquierda, se puede ver que tenemos un árbol de archivos, que es probable que estés familiarizado con, doble clic, y archivos y carpetas, y todas esas cosas. Así que eso es todavía allí en el aparato CS50. En el centro de la parte superior es donde estás va a escribir su código, una vez hacer clic en un archivo. Y en la parte inferior, se tener una ventana de terminal, que es donde podemos ejecutar estos comandos de terminal. Voy a hacer un zoom-in y la cabeza aquí, sólo para demostrar que, de hecho, no puedo haga clic en los archivos y carpetas. Así que está claro, en donde actualmente soy, tengo dos carpetas, llamadas pset0 y pset1, y tres archivos, uno llamado hola, uno llamado hello.c, Y el uno hello.txt. Así que vamos a mover hacia abajo a la terminal ventana y conseguir una mirada más cercana. Así que acabamos de hablar, una vez más, sobre la hecho de que tenemos tres archivos y dos carpetas en el directorio actual. Si escribo ls, que de nuevo es el comando para listar el contenido de la actual directorio, y luego me golpeó Enter, mira lo que veo, hola, hello.c, hello.txt, pset0 y pset1. pset0 y pset1 son de color azul, para indicar a usted que esos son los directorios que podríamos navegar en. Y vamos a aprender un poco poco acerca de cómo navegar en directorios en un minuto. Y todo lo demás es de color negro, si se trata de un archivo de texto o un código fuente presentar, y verde, si que es un archivo ejecutable. Así que está claro, eso significa que yo podría ejecutar un programa llamado, hola. Eso es lo que significa la verde allí. Pero, básicamente, escribiendo el comando ls ha permitido yo miro todo lo que existe en mi directorio actual, que coincide con lo que vemos aquí, en el visualización gráfica de la misma. El siguiente comando podrás probablemente utilizar un poco es cd, minúsculas c, d minúscula, que es la abreviatura de cambio de directorio. Esto nos permite hacer lo que era hablando de un segundo atrás, que es para navegar entre directorios en el comando línea, en contraposición a hacer doble clic en las carpetas. Así que si escribimos cd y después el nombre de un directorio, podemos entrar en ese directorio. Dicho sea de paso, saber que el nombre del directorio actual es siempre punto, y el nombre del directorio un nivel por encima de donde estamos ahora, que es el nombre de la carpeta en que nuestra carpeta es, punto, dot-- o en los que nuestra carpeta es, es punto, punto. Y si alguna vez curiosidad por el nombre de su directorio, puede escribir pwd, que destaca para el directorio de trabajo actual. Vamos a echar un vistazo a todos ellos Ahora, en la partida de vuelta a la IDE CS50. Así que estoy de vuelta en mi espacio de trabajo ahora. Y voy a zoom-in de nuevo en el terminal, por lo que podemos echar un vistazo al moverse dentro del IDE. Así que voy a enumerar la contenido de mi directorio de nuevo, sólo para remolido nosotros en donde estamos. Así que si escribo ls, que es para la lista de nuevo, Veo que puedo llegar a pset0 y pset1. Esos son los directorios Yo puedo llegar desde aquí. Lo sé, porque el IDE da yo ni idea de por colorearlos azul. Digamos que quiero entrar en mi directorio pset1, porque estoy trabajando en el problema de ajuste 1. Puedo escribir cd-- de nuevo, la abreviatura de cambiar directory-- espacio, pset1. Y si pulsa enter, observe lo que sucede. No se ve como han pasado muchas cosas. Pero si nos fijamos en el indicador, ahora me dice que estoy en ~ / espacio de trabajo / pset1. He navegado en el pset1 carpeta que estaba dentro de mi área de trabajo. Y si escribo ls, veo a algunos cosas diferentes aquí, ¿verdad? Este no es el mismo lista que vi antes. He navegado en pset1. Y ahora, cuando escribo ls, estoy conseguir el contexto de lo que puedo ver desde dentro de la carpeta pset1. Ahora, voy a escribir de control l, lo que simplemente borra la pantalla. Y yo voy a enumerar la contenido del directorio de nuevo, sólo para que pueda ver. Sólo quería hacerle eso a despejar algunas de las cosas que vio abajo y para evitar que esto de ir demasiado lejos fuera de rango. Ahora, he dicho antes que, si quiero para navegar hasta el directorio actual, Puedo escribir cd espacio de puntos. Hit Intro. No hace nada, ¿verdad? Estoy cambiando directorios en el directorio actual. No siempre vas a encontrar una necesidad de un solo punto, pero de vez en cuando. Digamos que quiero para subir un nivel. Quiero volver a mi directorio espacio de trabajo. No puedo introducir espacio de trabajo de cd, no hay tal archivo o directorio. Y la razón de que- si escribo ls de un tiempo-- más es que no hay ningún directorio llamado espacio de trabajo en el interior de mi directorio pset1. Voy a limpiar mi pantalla de nuevo con el control de l. Recuerde lo que dije antes, sin embargo, que nos puede navegar de vuelta con el punto, punto. Ese es el nombre del directorio padre. Así que si escribo cd, espacio, punto, punto, y luego pulse Enter, ahora mira lo que pasó. Mi símbolo del sistema me dice que soy de vuelta en mi directorio ~ / espacio de trabajo. Me mudé a un nivel, gracias a punto, punto. Ahora, digamos que estoy usando un sistema operativo que está basado en Linux, pero no necesariamente dime donde estoy. Éste pasa a decirnos que Estoy en ~ / espacio de trabajo en este momento, derecha en el indicador. Pero podría ser completamente perdida en un lío de las carpetas, y no tengo ni idea de dónde estoy y ni idea de donde quiero volver a. Hay dos cosas que puedo hacer. En primer lugar, yo puedo entender dónde estoy, escribiendo pwd. Esa es mi directorio de trabajo actual. Y si pulsa enter, se me dice exactamente dónde estoy. Ahora / home / ubuntu es el muy lejos de decir, tilde, que es su directorio personal. Pero me dice que estoy en casa / ubuntu / área de trabajo, o ~ / espacio de trabajo. Voy a navegar hasta mi directorio pset1 de nuevo, y yo voy a mostrar el contenido. Y veo que tengo otro directorio de allí, llamó extras. Así que voy a cd en extras, y entonces yo voy a limpiar mi pantalla. Así que ahora, estoy bastante lejos, ¿verdad? ¿Y si quiero hacer una copia al espacio de trabajo de inmediato? Hay un par de cosas que podría hacer. Yo podría escribir cd, punto, punto, raya vertical, de punto, de punto, para subir un nivel y luego otro nivel. Pero eso es un poco molesto. Así que si alguna vez quiero volver a sólo mi directorio home, tilde, Puedo escribir cd sin nada después de ella. Cd, Intro. Y ahora, estoy en tilde. Y si quiero llegar al área de trabajo, Solo puedo escribir espacio de trabajo cd. Y así es como se trabaja directorios cambiantes dentro del IDE CS50 o cualquier Linux sistema operativo en la línea de comandos. Correcto. El próximo que podría muy útil es mkdir, que es corto para hacer un directorio, si tengo que crear una nueva carpeta. Si usted está familiarizado con el sistema operativo GUI, es posible que haga clic derecho. Y entonces, cuando el menú contextual aparece, seleccione Nueva carpeta. Esa es probablemente la forma lo has hecho antes. Pero también podemos crear directorios en la línea de comandos. Así que estamos de vuelta en el IDE. Voy zoom-in en la terminal y listar el contenido de mi directorio de nuevo, sólo para darnos un marco de referencia. Digamos que, ahora, no tengo Terminó de trabajar en conjunto de problemas 0 y el problema de conjunto 1. Así que quiero crear un nuevo directorio para trabajar en un problema para el conjunto 2. ¿Cómo puedo hacer eso? Bueno, de nuevo, pude hacer clic derecho en el lado izquierdo allí y elija Nueva carpeta y crear un directorio PSet2. Eso funcionaría también. Pero entonces yo también lo hago en el línea de comandos con bastante rapidez, escribiendo mkdir, me espacio-- escrito en n, pero- espacio PSet2. Si me golpeó Enter y luego enumero la contenido de mi directorio nuevo, Veo que, mira, ahora Tengo una carpeta PSet2. Y puedo navegar en que el uso de cd y hacer todo el trabajo que tiene que hacer para PSet2. Por cierto, voy a estallar sobre aquí realmente rápidamente al árbol de archivos. Y se puede ver que, también, en el Explorador de archivos gráficos, podemos ver que el directorio PSet2 También se ha creado allí. Y puedo navegar a la misma, mediante la GUI también. La próxima vez y eso es probablemente va a venir muy bien es cp, que es la abreviatura para la copia. Copie, a diferencia de todos los demás comandos que hemos visto antes, toma dos argumentos, una fuente, la nombre del archivo que desea copiar, y un destino, donde quiere copiar el archivo. Es bastante fácil de copiar un archivo, por lo que vamos a hacer eso. Así que estamos de vuelta en el IDE. Voy a enumerar los contenidos de mi directorio actual con ls. Ahora, digamos que quiero para hacer una copia de hello.txt. Una vez más, desde el árbol de archivos en el a la izquierda, la interfaz gráfica, Podía hacer clic derecho sobre hello.txt, hacer una copia, pega la copia. Pero puedo hacerlo bastante rápido en la línea de comandos también. Digamos que quiero copiar hello.txt a hi.txt. Puedo cp, espacio, hello.txt. Esa es mi archivo de origen, así que por eso Voy a elegir que uno primero. Y luego tengo que nombrar el archivo de destino, hi.txt. Golpeé Intro. Y si enumero el contenido de mi directorio nuevo, no está hi.txt. Hice una copia de la misma. Y de hecho, si me fui en hi.txt, pude ver que sería una exacta duplicados de todo lo que existido en mi archivo hello.txt. Así que así es como se copia un archivo. Pero lo que si quieres copiar un directorio completo? Así que por un segundo, vamos a echar un vistazo a lo que hay en mi directorio pset0. Si yo pset0 cd y la lista de los contenidos, Tengo un directorio llamado, muestra, y un archivo de cero, scratch.sb2. Así que eso es bueno saberlo. Así que vamos a aclarar la pantalla, y voy a volver a mi directorio de espacio de trabajo durante un segundo. Digamos que, ahora, quiero hacer una copia de mi directorio pset0. No puedo decir pset0 cp pset3, por ejemplo. Usted recibe este mensaje extraño, omitiendo directorio pset0. ¿Por qué aparece el mensaje? Bueno, resulta que, cuando usted tiene un directorio que tiene otras cosas en el interior de la misma, el comando cp en realidad no necesariamente saber qué hacer con ella. Tenemos que explícitamente decirle a Linux, la terminal, Quiero que copiar el directorio pset0 y copia cada carpeta que existe dentro de la misma y todos los archivos que existe dentro de ella. En otras palabras, te necesito recursivamente bucear en pset0 y hacer una copia de todo lo que existe. Si yo quiero hacer eso, lo que yo puedo hacer es cp-r, por recursiva, pset3 pset0. Hit Intro. Ahora, si enumero la contenido de mi directorio, Veo ahí está el pset3 directorio que puedo trabajar. Y si cd I en pset3 ahora y a continuación, una lista del contenido, mira, no hay muestra y scratch.sb2 de nuevo. Así que eso es muy bueno. Así que así es como se puede copiar una entera directorio, y no sólo un único archivo. Así que si usted desea copiar un directorio, sólo recuerda a colocar la bandera -r cuando estás trabajando con el comando cp. Correcto. Así que me he copiado un archivo, pero Lo he hecho por error. Y ahora, quiero deshacerme de él. ¿Cómo puedo hacer eso? De nuevo, si usted está familiarizado con una interfaz gráfica de usuario, usted puede hacer clic derecho y simplemente elija Eliminar. Y que va a enviar a la basura o la Papelera de reciclaje. Pero en la línea de comandos, que Sólo puede escribir rm, para eliminar, y luego el nombre de la archivamos queremos eliminar. Ahora, rm es muy cuidadoso. Hace un montón de de doble control, para asegurarse de que en realidad quiere eliminar el archivo. No quiere cometer ningún error, porque no hay papelera de reciclaje aquí. Una vez borramos un archivo, se ha ido. Y realmente no hay manera de recuperarlo. Así que tenemos que ser muy cuidado, y así rm va a ser muy cuidadoso para nosotros. Así que vamos a volver al IDE y deshacerse de ese archivo hi.txt que creé hace un minuto con la copia. Así que estamos en el IDE. Y enumero el contenido de mi directorio de nuevo, sólo para darnos un poco de contexto. Quiero decir, se puede ver que hay hi.txt, que creé hace un rato. Ahora, quiero deshacerme de él. ¿Cómo lo hago? Una vez más, al igual rm. Así que puedo escribir hi.txt rm y pulsa Enter. Y no ser rm mucho cuidado para nosotros y asegurarse de que en realidad querer eliminar este archivo. ¿Realmente desea eliminar hi.txt archivo vacío regular? Eso es igual que un operativo sistema, como Windows o Mac, que podría ser familiarizados con apareciendo esa caja dice son realmente Seguro que quieres hacer esto. Estoy bastante seguro de que quiero esto, así que voy a escribir, sí-- O podría también acaba escriba Y- y pulsa Enter. Y si enumero el contenido de mi Directorio de nuevo, hi.txt se ha ido. No está mal, ¿no? Vamos pulse Control L, justo para deshacerse de todas estas cosas y hacernos volver al la parte superior de la pantalla. Ahora, hay una manera de rm cortocircuito, por lo que no nos pide esa pregunta. Realmente sabemos que queremos para deshacerse de ese archivo, y ni siquiera queremos que se hizo la pregunta. ¿Cómo lo hacemos? Bueno, podemos especificar un indicador adicional, al igual que hizo con cp donde podría añadir la bandera -r, copiar de forma recursiva en un directorio. Hay otra bandera para rm, que es -f, que es a la fuerza rm para hacer exactamente lo que estamos diciendo es que hacer. Así que digamos que, ahora, quiero para deshacerse de mi archivo hello.txt. No quiero que uno tampoco. ¿Que puedo hacer? Bueno, puedo rm hello.txt -f. ¿Qué crees que es va a pasar aquí? Se fue. Ni siquiera me haga la pregunta. Y de hecho, si enumero los contenidos de mi directorio de nuevo, se ha ido. No hay deshacer aquí. hello.txt se ha ido, y yo no era incluso se le preguntó si quería eliminarlo. ¿Y si quiero deshacerme de un directorio completo? La forma de hacerlo que es muy similar a copiar. Si desea eliminar un directorio, no lo hace solo quiere eliminar el directorio, que desea para borrar todo el interior de la misma. Y por lo que utilizar -r, a recursiva eliminar un directorio. Así que vamos a rm PSet2 -r. No estoy realmente trabajando en PSet2, para que pueda deshacerse de ese directorio. Golpeé Intro. ¿Quiero quitar el directorio, PSet2? Sí. Y si enumero los contenidos de mi directorio nuevo, se ha ido. ¿Correcto? Una variación más sobre este tema. Así que voy a limpiar la pantalla de nuevo, poner todo en la parte superior. Hit ls. Ahora, quiero deshacerme de mi directorio pset3, y yo realmente sé que quiero deshacerse de mi directorio pset3. Puedo recursiva y la fuerza quitar mi directorio pset3. Ahora, usted va a ser realmente cuidado cuando usted está utilizando rm -rf. Como programar más, va a ser algo que usted acaba de hacer muy rápidamente. Y de hecho, lo hago todo el tiempo. Pero puede conducir a una cierta consecuencias desastrosas, si accidentalmente eliminar las cosas mal. Así que quiero que seas consciente de que esta es una opción disponible para usted, pero utilizarlo con moderación, y usarlo con precaución. Sé que es un hecho, no estoy trabajando en mi conjunto de problemas 3 más, así que estoy va a deshacerse de todos esos archivos. Y sé que no quiero que se le pregunte cada vez si quiero eliminar un archivo, así que voy a rm -rf pset3. Ni siquiera preguntarme si yo quería deshacerse de él. Golpeé ls. pset3 se ha ido. Así que eso es todas las variaciones que puede utilizar para deshacerse de los archivos con rm. El comando de línea de comandos que es la última ir a bastante útil para usted es mv, que es la abreviatura de movimiento. Move es básicamente equivalente a cambiar el nombre. Se mueve un archivo de un lugar a otra, el origen al destino. Vamos a ver, donde el uso de un poder movimiento ser útil en la ventana de terminal. Así que estoy en mi pset1 directorio, y me he dado cuenta algo ha ido un poco mal. Yo estaba trabajando en mi problema codicioso, pero accidentalmente lo nombré GReddy. Así que cuando trato de ejecutar a través de check50, en realidad no funciona. Tengo un par de opciones. Podríamos hacer lo que hemos hecho antes, que es hacer una copia del archivo. Pude copiar greddy.c a greedy.c, ¿verdad? Hit Intro. Veo que ambos archivos están ahí. Y entonces yo podría RM, para eliminar, greddy.c. Que se deshace de él. Así que quiere trabajar, después de que confirmo que quiero deshacerme de él. Y efectivamente tengo greddy.c renombrado a greedy.c. Lo copié, y luego eliminado el original. Pero eso es un proceso de múltiples pasos. Y, ciertamente, no hay una mejor manera. De hecho, no existe. Así que vamos a golpear Control de L, sólo para llevar esta copia de seguridad, y mostrar el contenido de mi directorio de nuevo. Así que digamos que, oh, he cometido un error. De hecho, me quería llamar a ese archivo greddy.c. De un solo golpe, puedo escribir mover greedy.c a greddy.c. Hit Intro. Y ahora, yo no tenía copiar y eliminarlo, Yo sólo era capaz de cambiar su nombre. Uno para de comprar. Ahora, hay un montón de otros servicios básicos de línea de comandos que se puede utilizar con la línea de comandos de Linux. Y vamos a estar discutiendo mucho de ellos en el futuro en el CS50. Pero por ahora, sólo conseguir sus pies húmeda con el trabajo con este terminal ambiente, estos cinco comandos debe conseguirle bastante lejos en la navegación de la vuelta y trabajar con archivos en su IDE o en lo que sea basado en Linux sistema operativo que esté utilizando. Si tienes curiosidad y quieres mirar hacia adelante un poco en algún de los comandos de la línea de comandos que va a utilizar en el futuro, aquí tienes una lista de una pareja de los más comunes. Soy Doug Lloyd. Esto es CS50.