Guía de Supervivencia en la Linea de Comandos (Terminal)
Published: 2021-10-01 17:15:28


### Atajos del teclado

|  Atajo   |            Descripción                   |
| ---------|:-----------------------------------------------:|
| `ctrl c` | Termina el proceso de un comando en la terminal |
| `ctrl d` | Termina el input de un comando                  |
| `ctrl a` | Ir al inicio de la linea                        |
| `ctrl e` | Ir al final de la linea                         |
| `ctrl l` | Limpia la pantalla |

### Operaciones con Directorios

|Comando|Descripción|
|-------|-----------|
|`pwd`  |Muestra el directorio actual|
|`mkdir name_dir`|Crea un directorio llamado `name_dir`|
|`cd name_dir`|Cambia al directorio con llamado `name_dir`|
|`cd`|Cambia al directorio home del usuario|
|`ls`|Muestra archivos y directorios|

### Operaciones con **`ls`**

|Comando|Descripción|
|-------|-----------|
|`ls -a`|Muestra los archivos y directorios ocultos|
|`ls -l`|Muestra usando el formato largo|
|`ls -R`|Muestra de manera recursiva|
|`ls -r`|Organiza de manera inversa|
|`ls -t`|Organiza por fecha de modificación|
|`ls -S`|Organiza por tamaño|

### Manipulación de Archivos y Directorios

|Comando|Descripción|
|-------|-----------|
|`touch archivo.txt`|Crea un archivo llamado `archivo.txt `|
|`file archivo.txt`|Muestra las características de `archivo.txt`|
|`cp file.txt /ruta/destino/.`|Copia el archivo `file.txt` a la ruta `/ruta/destino`|
|`cp -r directorio copia_directorio`|Copia el directorio llamado `directorio` a uno llamado `copia directorio`|
|`mv file.txt /ruta/destino/. `|Mueve el archivo `file.txt` al directorio `/ruta/destino`|
|`mv file.txt nuevo_nombre.txt `|Cambia el nombre del archivo `file.txt` a `nuevo_nombre.txt`|
|`rm file.txt`| Elimina el archivo con nombre `file.txt`|
|`rm -r dir`| Elimina el directorio `dir` y su contenido de forma directa|
|`rm -ri file.txt`| Elimina el directorio `dir` y su contenido de forma interactiva|

### Manipulación de archivos de texto

|Comando      |Descripción|
|-------------|-----------|
|`head file.txt`| Muestra las primeras 10 líneas de texto del archivo `file.txt`|
|`head -n2 file`| Muestra las primeras 2 líneas de texto del archivo `file.txt`|
|`tail file.txt`| Muestra las últimas 10 líneas de texto del archivo `file.txt`|
|`tail -n2 file`| Muestra las últimas 2 líneas de texto del archivo `file`|
|`less file.txt`| Explora el contenido del archivo `file.txt` con paginación|
|`cat file1 file2`| Concatena el contenido de `file1` y `file2` a la salida de la terminal|

|Comando      |Descripción|
|-------------|-----------|
|`comando < archivo`|Redirige el input de un comando hacia un archivo|
|`comando > output.log`|Redirige la salida de un comando a un archivo llamado `output.log`|
|`comando >> output.log`|Concatena la salida de un comando a un archivo llamado `output.log`, en caso de no existir lo crea |
|`comando 2> error.log`|Redirige la salida de error de un comando al archivo error.log|
|`comando1` &#124; `comando2` |Redirige la salida del comando1 a la entrada del comando2|
|`comando1; comando2`|Ejecuta de manera consecutiva|
|`comando1 & comando2`|Ejecuta de manera asíncrona|
|`comando1 && comando2`|Ejecuta el `comando2` si y solo si el `comando1` se ejecutó de manera exitosa|
|`comando1` &#124; &#124; `comando2` |Ejecuta el `comando1` o el `comando2`|

### Comandos de búsqueda

|Comando      |Descripción|
|-------------|-----------|
|`find <ruta> -name <nombre>`|Busca en una ruta y con un nombre de archivo|
|`find . -name agenda`|Busca el archivo con el nombre agenda en el directorio actual|
|`grep <regex> file`|Busca con expresiones regulares dentro de un archivo o salida de terminal|
|`grep -i hola mensaje.txt`|Busca la palabra hola ignorando minúsculas y mayúsculas|
|`grep -v hola mensaje.txt`|Busca ignorando la palabra hola|