diff --git a/src/assets/images/nano_editor.png b/src/assets/images/nano_editor.png new file mode 100644 index 000000000..9d27109e9 Binary files /dev/null and b/src/assets/images/nano_editor.png differ diff --git a/src/content/lesson/the-command-line-the-terminal.es.md b/src/content/lesson/the-command-line-the-terminal.es.md index 890e6b259..e449292f2 100644 --- a/src/content/lesson/the-command-line-the-terminal.es.md +++ b/src/content/lesson/the-command-line-the-terminal.es.md @@ -1,6 +1,6 @@ --- -title: "La Línea de Comando (conocida como: La Terminal) " -subtitle: "Los Desarrolladores gastan horas cada día usando la línea de comandos (conocida como: La Terminal). Acepta la realidad y vuélvete más poderoso que nunca" +title: "La Línea de Comando (conocida como: La Terminal)" +subtitle: "Los Desarrolladores gastan horas cada día usando la línea de comandos (conocida como: La Terminal). Acepta la realidad y vuélvete más poderoso que nunca." cover_local: "../../assets/images/4cc6fa0b-2530-4052-aa7e-8dac03788ac3.png" textColor: "white" date: "2020-10-19T16:36:31+00:00" @@ -18,13 +18,13 @@ Al principio, todos odiaban la línea de comando. Tras años de experiencia, se Pero ¿por qué les gusta a los desarrolladores? Bueno, la lista es infinita, pero aquí hay algunas razones importantes: + Si no dominas la línea de comandos, no podrás usar ninguno de estos: GIT, MySQL, Webpack, Node.js, Grunt, Vagrant, Babel, React, Angular, Apache, etc. -+ Como desarrollador, es lo único que necesitas tener disponible. Las computadoras no vienen con Atom, Sublime text (o cualquier otro IDE de lujo). A veces como los servidores de producción (no puedes instalar nada y **el sistema ni siquiera tiene una interfaz visual**) solo la línea de comandos. -+ Es superpoderosa. Puedes hacer mucho más en mucho menos tiempo, por ejemplo: eliminar de forma masiva, cambiar el nombre, buscar un archivo, editar un archivo, etc. ++ Como desarrollador, es lo único que necesitas tener disponible. Las computadoras no vienen con Atom, Sublime text (o cualquier otro IDE de alta calidad). A veces como los servidores de producción (no puedes instalar nada y **el sistema ni siquiera tiene una interfaz visual**) solo la línea de comandos. ++ Es superpoderosa. Puedes hacer mucho más en mucho menos tiempo, por ejemplo: eliminar de forma masiva, cambiar nombres, buscar archivos, editar archivos, etc. + Te obliga a usar el teclado. Como no puedes usar el mouse, te hace más rápido. Cometes menos errores y el entorno es exactamente el mismo en todas las computadoras. ## ¿Cómo Funciona? -La consola es realmente simple: es una pantalla negra que siempre está esperando un * comando *. Después de escribir el comando deseado y de haber presionado la tecla `enter`, la computadora lo ejecuta y muestra algún feedback con el resultado en la pantalla. Una pregunta simple <> Interfaz de respuesta. +La consola es realmente simple: es una pantalla negra que siempre está esperando un *comando*. Después de escribir el comando deseado y de haber presionado la tecla `enter`, la computadora lo ejecuta y muestra algún feedback con el resultado en la pantalla. Una simple interfaz de **Pregunta** <> **Respuesta**. Pero, ¿qué es un *comando*? @@ -42,20 +42,20 @@ Lo último que tenemos que agregar es el "argumento". En este caso, el "argument ## ¿Qué puedes hacer en la terminal? -Tu computadora tiene archivos, directorios y aplicaciones. Tu línea de comando es capaz de lidiar con los tres. Usa comandos para moverte dentro de los archivos y directorios (como el comando `cd` que es el acrónimo de change directory). Cada aplicación que instales viene con un conjunto de comandos que están disponibles a partir del momento en que instales la aplicación (como el comando GIT). +Tu computadora tiene archivos, directorios y aplicaciones. Tu línea de comando es capaz de lidiar con los tres. Usa comandos para moverte dentro de los archivos y directorios (como el comando `cd` que es el acrónimo de *change directory*). Cada aplicación que instales viene con un conjunto de comandos que están disponibles a partir del momento en que instales la aplicación (como el comando GIT). ## Así es cómo se ve el sistema de archivos en una interfaz visual versus la terminal: -![the command line the terminal](https://github.com/breatheco-de/content/blob/master/src/assets/images/182ea93c-9d7d-4c8d-8153-9c1756d8cd1f.png?raw=true) +![Interfaz Visual vs La Terminal](https://github.com/breatheco-de/content/blob/master/src/assets/images/182ea93c-9d7d-4c8d-8153-9c1756d8cd1f.png?raw=true) Hay 4 cosas importantes que notar aquí: + Puedes usar un punto `.` para referirte a todos los archivos y carpetas en la jerarquía. + También puedes usar dos puntos `..` para referirte al directorio padre. -+ Puedes usar la barra diagonal `/` para navegar más hacia abajo en los directorios jerárquicos. ++ Puedes usar la barra diagonal `/` para navegar más hacia abajo en la jerarquía de directorios. + Archivos ocultos: por lo general, un archivo tiene un nombre y una extensión *(filename.extension)*. Si un archivo no tiene nombre y solo una extensión, estará, por defecto, oculto en la interfaz visual. -## Comandos para trabajar con el sistema de archivos: +## Comandos para trabajar con el sistema de archivos Aquí hay una pequeña selección de los comandos más utilizados por un desarrollador de software. @@ -63,12 +63,12 @@ Aquí hay una pequeña selección de los comandos más utilizados por un desarro **El comando de lista** -El comando ls se usa para listar todos los archivos y directorios que forman la posición actual. +El comando `ls` se usa para listar todos los archivos y directorios que forman la posición actual. ```bash ls -l ./applications -# muestra los archivos y carpetas dentro de "applications". -# el -l es para recibir una información más detallada sobre los archivos. +# Muestra los archivos y carpetas dentro de "applications" +# El -l es para recibir una información más detallada sobre los archivos ``` ### El comando cd @@ -99,38 +99,38 @@ Borra archivos (no directorios). ```bash rm file1.txt file2.txt file3.txt file4.txt -#elimina todos los archivos. +# Elimina estos cuatro archivos rm -r dbstore/ -#elimina todos los archivos y subdirectorios recursivamente dentro del directorio "dbstore". +# Elimina todos los archivos y subdirectorios recursivamente dentro del directorio "dbstore" ``` ### El comando mkdir **El comando crear directorio** -Crea un nuevo directorio. Al igual que para crear un nuevo directorio en un escritorio de PC o Mac, el comando mkdir crea nuevos directorios en un entorno Linux. +Crea un nuevo directorio. Al igual que para crear un nuevo directorio en un escritorio de PC o Mac, el comando `mkdir` crea nuevos directorios en un entorno Linux. ```bash mkdir newdirectoryname -#crear newdirectoryname en el directorio actual. +# Crear newdirectoryname en el directorio actual mkdir path/of/new/newdirectoryname -#crear newdirectoryname dentro de /path/of/new/ +# Crear newdirectoryname dentro de /path/of/new/ ``` ### El comando rmdir **El comando eliminar directorio** - Elimina un directorio (no archivos). +Elimina un directorio (no archivos). ```bash rmdir mydirectory -#eliminar mydirectory si está en el directorio actual. +# Eliminar mydirectory si está en el directorio actual rmdir path/of/targetdirectory/mydirectory -#eliminar mydirectory de "targetdirectory" +# Eliminar mydirectory de "targetdirectory" ``` > ☝ Solo eliminará los directorios vacíos, para vaciar todos los archivos del directorio usa el comando `rm`. Pro-tip: puedes usar `rm *` para borrar todos los archivos dentro de un directorio simultáneamente; utilízalo con precaución. @@ -144,8 +144,8 @@ No confundas este comando con la funcionalidad de copiar del portapapeles, no ti `cp` copiará un archivo completo y creará uno nuevo con el nombre que decidas que deba tener. ```bash -cp path/to/file.ext path/to/new/file.ext -#copia file.ext y crea un nuevo file.ext con el mismo contenido. +cp path/to/file.txt path/to/new/file_copy.txt +# Copia "file.txt" y crea un nuevo "file_copy.txt" con el mismo contenido ``` ### El comando find @@ -156,41 +156,42 @@ Encuentra un archivo en el directorio dado y con las especificaciones dadas. ```bash find / -name game -#encuentra todos los archivos que contengan el nombre exacto "game" que se encuentran dentro de la carpeta raíz. +# Encuentra todos los archivos que contengan el nombre exacto "game" que se encuentran dentro de la carpeta raíz find . -name *.mp3 -#encuentra todos los archivos que contengan la extensión "mp3" dentro del directorio actual y en el de su padre. +# Encuentra todos los archivos que contengan la extensión "mp3" dentro del directorio actual y en el de su padre ``` ## Consejos y Trucos Esto te ayudará a ahorrar tiempo y a cometer menos errores al escribir: -+ Para cancelar un comando que se está ejecutando, presiona `ctrl`+`c` ++ Para cancelar un comando que se está ejecutando, presiona `ctrl + c` + Para completar automáticamente el nombre de un archivo o carpeta, usa la tecla `tab`. -+ Para repetir cualquier comando que hayas usado en el pasado, usa la flecha `up`(arriba) y te mostrará cada comando, uno por uno. ++ Para repetir cualquier comando que hayas usado en el pasado, usa la flecha arriba `↑` y te mostrará cada comando, uno por uno. + Para ir a la carpeta principal del usuario, usa la tecla `~`, así: `cd ~`. + Usa el comando `clear` para "limpiar" la consola actual (es solo un desplazamiento, pero muy útil). -## Editando archivos en la terminal: +## Editando archivos en la terminal -Esta es una de las cosas que no puedes evitar hacer en la terminal. Como desarrollador, tendrás que editar archivos en la terminal con más frecuencia de lo que crees. Por eso es mejor que estés preparado para usar la [Aplicación VIM o la Aplicación Nano.](https://askubuntu.com/questions/726669/difference-between-nano-and-vim) Hablaremos sobre Nano y sus comandos (sí, aquí el editor de texto se abre dentro de la línea de comandos y se ejecuta usando comandos). +Esta es una de las cosas que no puedes evitar hacer en la terminal. Como desarrollador, tendrás que editar archivos en la terminal con más frecuencia de lo que crees. Por eso es mejor que estés preparado para usar la [Aplicación VIM o la Aplicación Nano.](https://askubuntu.com/questions/726669/difference-between-nano-and-vim) Hablaremos sobre Nano y sus comandos (sí, aquí el editor de texto se abre dentro de la línea de comandos y se ejecuta usando comandos). ### El comando nano **No es realmente un comando, sino una aplicación de edición de texto con el nombre de "Nano".** -Cuando trabajes con la línea de comandos, a veces tendrás que abrir un archivo para revisarlo e incluso para cambiarlo. Para eso, usamos el comando "nano". Nano básicamente abre un editor de texto dentro de la línea de comando. +Cuando trabajes con la línea de comandos, a veces tendrás que abrir un archivo para revisarlo e incluso para cambiarlo. Para eso, usamos el comando `nano`. Nano básicamente abre un editor de texto dentro de la línea de comando. ```bash nano path/to/the/textfile.txt -#abre un editor de texto para comenzar a editar el contenido de textfile.txt -#si textfile.txt no existe ¡lo creará! +# Abre un editor de texto para comenzar a editar el contenido de textfile.txt +# Si textfile.txt no existe ¡lo creará! ``` + Cuando nano se abra, verás una barra superior con la versión actual de la aplicación nano, el nombre del archivo que se está editando, y un estado indicándote si los archivos fueron modificados o no. En la parte inferior verás los comandos más utilizados para usar nano, tales como: exit, where is, get help, etc. ![the command line the terminal](https://github.com/breatheco-de/content/blob/master/src/assets/images/6128e9f7-b460-4b10-80e4-34057b7d4df9.png?raw=true) -> ☝ Este sitio web tiene un montón de pequeños mini desafíos para ayudarte a practicar la línea de comandos:
https://cmdchallenge.com/ +> ☝ Este sitio web tiene un montón de pequeños mini desafíos para ayudarte a practicar la línea de comandos: https://cmdchallenge.com/ diff --git a/src/content/lesson/the-command-line-the-terminal.md b/src/content/lesson/the-command-line-the-terminal.md index 8801df72b..9e9ab30fd 100644 --- a/src/content/lesson/the-command-line-the-terminal.md +++ b/src/content/lesson/the-command-line-the-terminal.md @@ -1,5 +1,5 @@ --- -title: "The Command Line (a.k.a: The Terminal) " +title: "The Command Line (a.k.a: The Terminal)" subtitle: "Developers spend hours every day using the command line (a.k.a: The Terminal). Embrace reality and become more powerful than ever before." cover_local: "../../assets/images/4cc6fa0b-2530-4052-aa7e-8dac03788ac3.png" textColor: "white" @@ -17,18 +17,18 @@ At first, everybody hated the command line. After years of experience, it became But why do developers like it? Well, the list is infinite, but here are a few important reasons: -+ If you don’t master the command line you won’t be able to use any of these: GIT, MySQL, Webpack, Node.js, Grunt, Vagrant, Babel, React, Angular, Apache, etc. -+ As a developer, it’s the one thing you need to have available. Computers don’t come with Atom, Sublime Text (or any other fancy IDE). Sometimes, like production servers, you are not allowed to install anything and **the system does not even have a visual interface**, just the command line. -+ It is super powerful, you can do a lot more in a lot less time! For example, bulk delete, rename, find a file, edit a file, etc. -+ It forces you to use the keyboard. Since you cannot use the mouse, it makes you faster. You make fewer mistakes and the environment is exactly the same on every computer. ++ If you don't master the command line, you won't be able to use any of these: GIT, MySQL, Webpack, Node.js, Grunt, Vagrant, Babel, React, Angular, Apache, etc. ++ As a developer, it's the one thing you need to have available. Computers don't come with Atom, Sublime Text, (or any other fancy IDE). Sometimes, like with production servers, you are not allowed to install anything, and **the system does not even have a visual interface**, just the command line. ++ It is super powerful; you can do a lot more in a lot less time! For example, bulk delete, rename, find a file, edit a file, etc. ++ It forces you to use the keyboard. Since you cannot use the mouse, it makes you faster. You make fewer mistakes, and the environment is exactly the same on every computer. ## How does it work? -The console is really simple: it’s a black screen that’s always expecting a *command*. After you type the desired command and press the `return` key, the computer executes it and shows some feedback with the resulting output on the screen. A simple Question <> Answer interface. +The console is really simple: it's a black screen that's always expecting a *command*. After you type the desired command and press the `return` key, the computer executes it and shows some feedback with the resulting output on the screen. A simple **Question** <> **Answer** interface. But, what is a *command*? -It is something like "print", "show", or "delete" but abbreviated. For example, if you want to tell the console to list all the files in a particular directory, you have to use the `ls` command like this: +It is something like "print", "show", or "delete", but abbreviated. For example, if you want to tell the console to list all the files in a particular directory, you have to use the `ls` command like this: ```bash ls -l /path/to/directory @@ -38,42 +38,42 @@ All commands have three parts: the **utility**, the **flags**, and the **argumen In this particular case, we use the `-l` "flag" to specify that we want a "long" version of the list of files (with more details). -The last thing we have to add is the "argument." In this case, the "argument" will be the path of the directory from which we want to list the files. +The last thing we have to add is the "argument". In this case, the "argument" will be the path of the directory from which we want to list the files. ## What can you do in the Terminal? -Your computer has files, directories, and applications. Your command line is able to deal with all three of them. Use commands to move within the files and directories (like the `cd` command). Every application that you install comes with a set of commands that become available the moment you install the app (like the GIT command). +Your computer has files, directories, and applications. Your command line is able to deal with all three of them. Use commands to move within the files and directories (like the `cd` command). Every application that you install comes with a set of commands that become available the moment you install the app (like the GIT command). -## Here is how the File System looks in a Visual Interface vs the Terminal: +## Here is how the File System looks in a Visual Interface vs The Terminal: -![the command line the terminal](https://github.com/breatheco-de/content/blob/master/src/assets/images/182ea93c-9d7d-4c8d-8153-9c1756d8cd1f.png?raw=true) +![Visual Interface vs The Terminal](https://github.com/breatheco-de/content/blob/master/src/assets/images/182ea93c-9d7d-4c8d-8153-9c1756d8cd1f.png?raw=true) There are 4 important things to notice here: + You can use one dot `.` to refer to all the files and folders in the hierarchy. + You can also use two dots `..` to refer to the parent directory. + You can use the forward slash `/` to navigate further down in the hierarchy of directories. -+ Hidden files: Usually, a file has a name and an extension *(filename.extension)*. If a file has no name but only an extension, it will by default be hidden in the visual interface. ++ Hidden files: Usually, a file has a name and an extension *(filename.extension)*. If a file has no name but only an extension, it will by default be hidden in the visual interface. -## Commands to Work with the File System: +## Commands to Work with the File System Here is a small selection of the most used commands by a software developer. ### The ls command -**The list command** +**The list command.** -The ls command is used for listing all the files and directories that form the current position. +The `ls` command is used for listing all the files and directories that form the current position. ```bash ls -l ./applications -#shows the files and folders inside "applications" -#the -l is for asking more detailed output information on the files. +# Shows the files and folders inside "applications" +# The -l is for asking more detailed output information on the files ``` ### The cd command -**The change directory command** +**The change directory command.** Travel between two different directories. @@ -83,9 +83,9 @@ cd /path/to/directory ### The mv command -**The move command** +**The move command.** -Move a file to another folder or directory. Just like dragging a file located on a PC desktop to a folder stored within the "Documents" folder. +Move a file to another folder or directory. Just like dragging a file located on a PC desktop to a folder stored within the "Documents" folder. ```bash mv /path/to/file.txt /path/to/destination/file.txt @@ -93,104 +93,105 @@ mv /path/to/file.txt /path/to/destination/file.txt ### The rm command -**The remove command** +**The remove command.** This deletes files (not directories). ```bash rm file1.txt file2.txt file3.txt file4.txt -#removes these four files +# Removes these four files rm -r dbstore/ -#deletes all the files and sub-directories recursively within the "dbstore" directory. +# Deletes all the files and sub-directories recursively within the "dbstore" directory ``` ### The mkdir command -**The make directory command** +**The make directory command.** -Makes a new directory. Just like making a new directory within a PC or Mac desktop environment, the mkdir command makes new directories in a Linux environment. +Makes a new directory. Just like making a new directory within a PC or Mac desktop environment, the `mkdir` command makes new directories in a Linux environment. ```bash mkdir newdirectoryname -#creates newdirectoryname in the current directory. +# Creates newdirectoryname in the current directory mkdir path/of/new/newdirectoryname -#creates newdirectoryname inside /path/of/new/ +# Creates newdirectoryname inside /path/of/new/ ``` ### The rmdir command -**The remove directory command** +**The remove directory command.** It deletes a directory (not files). ```bash rmdir mydirectory -#removes mydirectory if it's in the current directory. +# Removes mydirectory if it's in the current directory rmdir path/of/targetdirectory/mydirectory -#removes mydirectory from "targetdirectory" +# Removes mydirectory from "targetdirectory" ``` -> ☝ It will only remove empty directories, to empty all directory files use the `rm -r` command (-r flag forces the remove command to delete the directory and all the files within it). Pro-tip: you can use `rm *` to delete all of the files inside a directory simultaneously; use with caution. +> ☝ It will remove only **empty** directories; to empty all directory files use the `rm -r` command (-r flag forces the remove command to delete the directory and all the files within it). Pro-tip: you can use `rm *` to delete all of the files inside a directory simultaneously; use with caution. ### The cp command -**The Copy File command** +**The Copy File command.** -Don’t confuse this command with the clipboard copy functionality – it has nothing to do with it. +Don't confuse this command with the clipboard copy functionality; it has nothing to do with it. `cp` will copy an entire file and create a new one with whatever name you decide it should have. ```bash -cp path/to/file.txt path/to/new/file.txt -#copy file.txt and create a new file.txt with the same content. +cp path/to/file.txt path/to/new/file_copy.txt +# Copy "file.txt" and creates a new "file_copy.txt" with the same content ``` ### The find command -**The find command** +**The find command.** Finds a file in the given directory with the given specifications. ```bash find / -name game -#finds all files containing the exact name "game" that is inside the root folder. +# Finds all files containing the exact name "game" that is inside the root folder find . -name *.mp3 -#finds all files containing the extension "mp3" within the current directory and its parent. +# Finds all files containing the extension "mp3" within the current directory and its parent ``` ## Tips & Tricks These will help you save time and make fewer mistakes when typing: -+ To cancel a command that is being executed, press `ctrl`+`c` ++ To cancel a command that is being executed, press `ctrl + c`. + To autocomplete a file or folder name, use the `tab` key. -+ To repeat any command you have used in the past, use the `up` arrow, and it will show you each command, one by one. ++ To repeat any command you have used in the past, use the `↑` up arrow, and it will show you each command, one by one. + To go to the home user folder, use the `~` key like this: `cd ~` + Use the `clear` command to "clean" the current console (it is just a scroll, but a very useful one). -## Editing Files in the Terminal: +## Editing Files in the Terminal -This is one of the things that you cannot avoid doing in the terminal. As a developer, you will have to edit files in the terminal more often than you think. That’s why you’d better be prepared to use either the [VIM Application or the Nano Application.](https://askubuntu.com/questions/726669/difference-between-nano-and-vim) We will talk about Nano and its commands (yes, here the text editor opens inside the command line and runs using commands). +This is one of the things that you cannot avoid doing in the terminal. As a developer, you will have to edit files in the terminal more often than you think. That's why you'd better be prepared to use either the [VIM Application or the Nano Application.](https://askubuntu.com/questions/726669/difference-between-nano-and-vim) We will talk about Nano and its commands (yes, here the text editor opens inside the command line and runs using commands). ### The nano command -**It’s not really a command, actually the name of "Nano" is a text editor application.** +**It's not really a command; actually, the name of "Nano" is a text editor application.** -When working with the command line, sometimes you will have to open a file to review it and even change it. For that, we use the "nano" command. Nano basically opens a text editor within the command line. +When working with the command line, sometimes you will have to open a file to review it and even change it. For that, we use the `nano` command. Nano basically opens a text editor within the command line. ```bash nano path/to/the/textfile.txt -#opens a text editor to start editing the content of textfile.txt -#if textfile.txt does not exist, it will create it! +# Opens a text editor to start editing the content of textfile.txt +# If textfile.txt does not exist, it will create it! ``` -When nano opens, it will show a top bar with the current version of the nano application; the name of the file being edited; and a status telling you if the files were modified or not. -At the bottom you will see the most often used commands in nano such as: exit, where is, get help, etc. +When nano opens, it will show a top bar with the current version of the nano application, the name of the file being edited, and a status telling you if the files were modified or not. -![the command line the terminal](https://github.com/breatheco-de/content/blob/master/src/assets/images/6128e9f7-b460-4b10-80e4-34057b7d4df9.png?raw=true) +At the bottom, you will see the most often used commands in nano such as: exit, where is, get help, etc. -> ☝ This website has a ton of great mini-challenges to help you practice the command line:
https://cmdchallenge.com/ +![Nano editor](https://github.com/breatheco-de/content/blob/master/src/assets/images/6128e9f7-b460-4b10-80e4-34057b7d4df9.png?raw=true) + +> ☝ This website has a ton of great mini-challenges to help you practice the command line: https://cmdchallenge.com/