# Resumen video (Qué es una Shell, uso de Bash y Variables de entorno)
**Programa académico:** Ing. de Sistemas
**Nombre del curso:** Sistemas Operativos II
**Temática:** Shell, uso de bash y variables de entorno
**Nombre Completo:** Santiago Esteban Nieto Morales
**Código:** S6B2024
**Fecha:** 27/09/2023
## 1. Qué es la shell
Una shell es un interprete de comandos.
En palabras sencillas es una interfaz donde podemos iniciar los programas del sistema y acceder a los archivos del mismo.
existen diferentes tipos de shell:
* **CLI:** *Command-Line Interface;* interfaz de línea de comandos
* **GUI:** *Graphical User Interface;* interfaz gráfica de usuario
* **NUI:** *Natural User Interface;* interfaz de lenguaje natural
## 2. Bash
Como en la mayoria de las distribuciones linux se encuentra que la shell por defecto es bash durante el video va a usar esta shell
```bash
echo "Hola mundo"
```
Despues explican los atajos de teclado que nos podran ser utiles al usar bash. En el video no se explican de está manera. Lo voy a hacer de forma un poco más completa.
### Atajos de Archivo
Los atajos predeterminados para opciones en esta sección son:
<table>
<thead>
<tr>
<td>
<p>Acción</p>
</td>
<td>
<p>Atajo del teclado</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>Pestaña nueva</p>
</td>
<td>
<p><kbd>Mayús</kbd></span>+<span><kbd>T</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Ventana nueva</p>
</td>
<td>
<p><kbd>Mayús</kbd></span>+<span><kbd>N</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cerrar pestaña</p>
</td>
<td>
<p><kbd>Mayús</kbd></span>+<span><kbd>W</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cerrar la ventana</p>
</td>
<td>
<p><kbd>Mayús</kbd></span>+<span><kbd>Q</kbd></span></span></p>
</td>
</tr>
</tbody>
</table>
### Atajos de editar
Los atajos predeterminados para opciones en esta sección son:
<table>
<thead>
<tr>
<td>
<p>Acción</p>
</td>
<td>
<p>Atajo del teclado</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td style="border-top-style: solid;">
<p>Copiar</p>
</td>
<td style="border-top-style: solid;">
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>C</kbd></span></span></p>
</td>
</tr>
<tr>
<td style="border-top-style: solid;">
<p>Pegar</p>
</td>
<td style="border-top-style: solid;">
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>V</kbd></span></span></p>
</td>
</tr>
</tbody>
</table>
### Atajos de ver
Los atajos predeterminados para opciones en esta sección son:
<table>
<thead>
<tr>
<td>
<p>Acción</p>
</td>
<td>
<p>Atajo del teclado</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>Pantalla completa</p>
</td>
<td>
<p><span><kbd>F11</kbd></span></p>
</td>
</tr>
<tr>
<td>
<p>Ampliar</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>+</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Reducir</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>-</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Tamaño normal</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>0</kbd></span></span></p>
</td>
</tr>
</tbody>
</table>
### Atajos de buscar
Los atajos predeterminados para opciones en esta sección son:
<table>
<thead>
<tr>
<td>
<p>Acción</p>
</td>
<td>
<p>Atajo del teclado</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>Buscar</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>F</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Buscar siguiente</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>G</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Buscar anterior</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>H</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Limpiar resaltado</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>J</kbd></span></span></p>
</td>
</tr>
</tbody>
</table>
### Atajos para pestañas
<table>
<thead>
<tr>
<td>
<p>Acción</p>
</td>
<td>
<p>Atajo del teclado</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>Cambiar a la pestaña anterior</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>Re Pág</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña siguiente</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>Av Pág</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Mover la pestaña de la izquierda</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>Re
Pág</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Mover la pestaña de la derecha</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>Av
Pág</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 1</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>1</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 2</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>2</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 3</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>3</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 4</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>4</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 5</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>5</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 6</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>6</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 7</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>7</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 8</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>8</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 9</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>9</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Cambiar a la pestaña 10</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>0</kbd></span></span></p>
</td>
</tr>
</tbody>
</table>
### Otros
También hay algunos atajos que no se pueden editar
<table>
<thead>
<tr>
<td>
<p>Acción</p>
</td>
<td>
<p>Atajo del teclado</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>Desplazarse una línea hacia arriba</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>Arriba</kbd></span></span>
</p>
</td>
</tr>
<tr>
<td>
<p>Desplazarse una línea hacia abajo</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Ctrl</kbd></span>+<span><kbd>Abajo</kbd></span></span>
</p>
</td>
</tr>
<tr>
<td>
<p>Subir una página</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Re Pág</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Bajar una página</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Av Pág</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Desplazar hasta arriba</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Inicio</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Desplazar hasta abajo</p>
</td>
<td>
<p><span><span><kbd>Mayús</kbd></span>+<span><kbd>Fin</kbd></span></span></p>
</td>
</tr>
</tbody>
</table>
### Atajos de bash
Estos son los atajos de Bash. Bash es, generalmente, la shell predeterminada.
Los atajos de teclado específicos de Bash son:
<table>
<thead>
<tr>
<td>
<p>Acción</p>
</td>
<td>
<p>Atajo del teclado</p>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<p>Borrar una palabra</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>W</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Borrar una línea</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>U</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Mover el cursor al principio de la línea</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>A</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Mover el cursor al final de la línea</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>E</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Retrocede un carácter</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>B</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Retroceder una palabra</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>B</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Avanzar un carácter</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>F</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Avanzar una palabra</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>F</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Borrar desde el cursor hasta el principio de la línea</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>u</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Borrar desde el cursor al final de la línea</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>K</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Borrar desde el cursor al principio de la palabra</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>W</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Eliminar la palabra anterior</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>Retrocese</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Pegar texto desde el portapapeles</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>Y</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Limpiar la pantalla dejando la línea actual en la parte superior de la pantalla</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>L</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Búsqueda incremental inversa del histórico</p>
</td>
<td>
<p><span><span><kbd>Ctrl</kbd></span>+<span><kbd>R</kbd></span></span></p>
</td>
</tr>
<tr>
<td>
<p>Búsqueda inversa no incremental en el histórico</p>
</td>
<td>
<p><span><span><kbd>Alt</kbd></span>+<span><kbd>P</kbd></span></span></p>
</td>
</tr>
</tbody>
</table>
## 3. Variables de entorno
Después, el video explica las variables de entorno, que son variables que almacenan información importante del sistema. Algunas variables de entorno importantes son:
* **$PATH:** Contiene una lista de rutas donde el sistema busca los ejecutables.
* **$HOME:** Contiene la ruta al directorio personal del usuario.
* **$USER:** Contiene el nombre del usuario actual.
* **$SHELL:** Contiene la ruta al binario de la shell que se está utilizando.
## 4. Comandos más usados
En esta parte el autor muestra algunos de los comandos más usados. Yo ya escribi todo un articulo sobre ellos por lo que no profundizare.
[Comparacion de comandos Windows y Linux](https://hackmd.io/@zwSW-tVbQ-KziWMn1cXEGg/rkJgRITTh)
* **Alias:** Crea un nombre alternativo para un comando.
* **Exec:** Ejecuta un programa especificado.
* **Echo:** Repite un texto o muestra el contenido de una variable.
* **Export:** Define una variable de entorno de tipo global.
* **Pwd:** Muestra el directorio actual.
* **Set:** Muestra las variables de entorno del sistema.
* **Unset:** Elimina una variable de entorno.
**Explicación adicional:**
El comando ***alias*** es útil para simplificar la entrada de comandos complejos. Por ejemplo, podemos crear un alias para el comando rm para que nos pida confirmación antes de borrar un archivo.
El comando ***exec*** es útil para ejecutar un programa sin crear un nuevo proceso. Esto puede ser útil para aplicaciones que requieren un acceso exclusivo a un recurso.
El comando ***echo*** es útil para mostrar texto o el contenido de una variable.
El comando ***export*** es útil para definir una variable de entorno de tipo global. Esto significa que la variable estará disponible para todos los procesos que se ejecuten en el sistema.
El comando ***pwd*** es útil para mostrar el directorio actual.
El comando ***set*** muestra las variables de entorno del sistema, incluidas las variables de entorno personalizadas.
El comando unset elimina una variable de entorno.
## 5. Puntos clave
* La shell de Linux es el entorno que permite a los usuarios interactuar con los recursos del sistema.
* La shell de Linux más utilizada es Bash.
* La shell de Linux se compone de un encabezado, un cursor y un historial de comandos.
* La shell de Linux tiene varios atajos de teclado útiles.
* Las variables de entorno almacenan información importante del sistema.