-
Notifications
You must be signed in to change notification settings - Fork 0
01 Definicion y Estructura de un Shell
El shell es un programa que provee una interfaz de usuario que permite, a través de una terminal, interactuar con el SO para la realización de tareas.
El shell es la encargada de traducir los comandos introducidos, a través de la terminal, en instrucciones que el SO pueda realizar. Si un comando produce un resultado (output), entonces se mostrará en la terminal. Por otra parte, si ocurre algún error en el comando, entonces se mostrará un mensaje de error en la terminal.
En un entorno de Linux, existen una variedad de shells, siendo Bash (del proyecto GNU) la más común y la predeterminada en la mayoría de las distribuciones de Linux. Bash provee muchas funciones avanzadas, tales como:
-
Historial de comandos: historial guardado en el archivo
.bash_history. Permite ejecutar comandos guardados en el historial. -
Edición en línea: al visualizar los comandos previamente ejecutados, permite editarlos para ejecutarlos.
-
Scripting: permite crear un programa (script) haciendo uso de comandos, flujos de control (condicionales y ciclos), colecciones (e.g., arreglos, y diccionarios), funciones (AKA subroutines), etc.
-
Aliases: permite crear un alias corto para los comandos, especialmente aquellos que son largos.
-
Variables: permite crear y utilizar variables locales y de entorno dentro de los scripts y la sesiones de shell. Estas variables pueden modificar el cómo los comandos y las funciones funcionan; también pueden proveer información al sistema.
El prompt es el texto que muestra la terminal para indicar que está lista para recibir comandos. Además de solicitar entrada, puede proporcionar información útil al usuario. El prompt puede ser personalizado y su estructura varía según la shell y la distribución de Linux. Por lo general, el prompt de Bash tiene una estructura como la siguiente:
admin@server:~$Donde:
-
admines el user (nombre de usuario). -
serveres el hostname (nombre del host, la máquina). -
~es el current directory (directorio actual).El
~indica que estamos ubicados en el directorio del usuarioadmin. Por lo lo general, el directorio de un usuario está ubicado dentro del directorio/home, y tiene el nombre del usuario (user), por ejemplo/home/admin.[!NOTE]
El directorio del usuario
rootse encuentra normalmente ubicado en el directorio/root. -
$es el nivel de privilegios. El$significa que tenemos privilegios de usuario normal y#significa que tenemos privilegios de usuario root.
- Shotts, W. (2019). What is the Shell?. The Linux Command Line (2nd ed., pp. 3-6). No Starch Press.
- Definición y Estructura de un Shell
- Los Diferentes Tipos de Shell
- Definición y Sintaxis de un Comando
- Variables, Alias y Funciones
- Comandos de Utilidad y Consulta
- Linux como Sistema Multiusuario
- Introducción a los Usuarios y Grupos
- Gestión de Usuarios
- Gestión de Grupos
- Gestión de Contraseñas
- Búsqueda de Información de Usuarios y Grupos con
getent
- Atributos de Archivos: Propiedad y Permisos de los Archivos
- Cambio de Propiedad y Permisos
umask: Permisos Predeterminados de Archivos- Cambio de Identidad y Privilegios
- Gestión de Paquetes (Package Management)
- Compresión y Archivado de Archivos
- Optimización y Conversion de Archivos