Conceptos Esenciales de Shell y Administración de Sistemas Linux
Clasificado en Informática
Escrito el en español con un tamaño de 9,23 KB
Introducción a la Shell y Entorno de Trabajo
- Shell
- Es un programa que se está ejecutando continuamente desde que comienza la sesión hasta que termina. Actúa como interfaz entre el sistema operativo y el usuario, interpretando los comandos.
- Archivos de Inicio
- Son scripts que se ejecutan al iniciar una sesión de usuario, creando el entorno de trabajo y personalizando la sesión (ej.
.bashrc
,.profile
). - Bash
- Es el shell de ingreso por defecto en muchos sistemas Linux (Bourne-Again SHell), conocido por su potencia y flexibilidad.
- Entorno de Trabajo
- Conjunto de datos y configuraciones que especifican el terminal y personalizan el funcionamiento de la sesión del usuario.
- Variables de Entorno
- Zonas de memoria con un nombre donde se guarda información relevante para el entorno de trabajo (ej.
HOME
,MAIL
,PATH
). Se utilizan para configurar el comportamiento de programas y el shell. - Alias
- Son sobrenombres o atajos que se le dan a ciertos comandos o secuencias de comandos. El shell los sustituye por su valor real al ejecutarse, simplificando la escritura de comandos complejos.
Manejo de Comandos y Flujos de Datos
- Redireccionamiento
- Mecanismo que permite redirigir la salida estándar de un comando a un archivo (ej.
comando > archivo
para sobrescribir,comando >> archivo
para añadir) o la entrada estándar desde un archivo (ej.comando < archivo
).
Ejemplo:cat lunes martes > semana
(concatena el contenido de 'lunes' y 'martes' en 'semana') ocat < semana
(muestra el contenido de 'semana'). - Pipes (Tuberías)
- Mecanismo (
|
) que permite enlazar la salida estándar de un programa con la entrada estándar de otro, creando un flujo de datos continuo entre ellos. - Filtros
- Son comandos que reciben datos por la entrada estándar, los procesan (filtrando, ordenando, etc.) y los muestran por la salida estándar (ej.
grep
,sort
,wc
). - Guiones de Comandos (Scripts)
- Archivos de texto que contienen una secuencia de comandos de shell, permitiendo automatizar tareas o construir herramientas complejas. Suelen comenzar con un shebang (ej.
#!/bin/sh
) que indica el intérprete a usar. - Argumentos
- Valores que se pasan a un comando o script al ejecutarlo. Dentro de un script, se acceden mediante variables posicionales como
$1
,$2
, etc., y$0
para el nombre del script.
Gestión de Procesos y Trabajos
- Tarea (Job)
- Cada orden o comando dado al intérprete de comandos al pulsar Intro.
- Proceso
- Un programa en ejecución, con su propio espacio de memoria y recursos asignados.
ps
- Comando para ver los procesos que se están ejecutando en el sistema (ej.
ps aux
para ver todos los procesos de todos los usuarios, incluyendo los que no son propios). sleep
- Comando que pausa la ejecución durante un número especificado de segundos.
- Control de Trabajos en Shell
&
: Operador para ejecutar un comando en segundo plano, liberando la terminal.Ctrl+Z
: Detiene una tarea en primer plano, enviándola al segundo plano (estado "Stopped").Ctrl+C
: Aborta (termina) una tarea en primer plano, enviando una señal de interrupción.
jobs
- Comando para ver los trabajos (tareas) que se están ejecutando o están detenidos en segundo plano en la sesión actual del shell.
cat
- Comando para concatenar archivos y mostrar su contenido por la salida estándar. También se usa para crear archivos pequeños.
fg
- Comando para traer un trabajo que está en segundo plano (detenido o ejecutándose) al primer plano (ej.
fg %número_de_trabajo
). bg
- Comando para reanudar un trabajo detenido en segundo plano (ej.
bg %número_de_trabajo
). kill
- Comando para terminar un proceso o trabajo enviándole una señal (ej.
kill PID
para un proceso específico okill %número_de_trabajo
para un trabajo del shell).
Administración de Usuarios y Archivos del Sistema
/etc/passwd
- Archivo que almacena los datos de los usuarios registrados en el sistema (nombre de usuario, UID, GID, directorio home, shell, etc.).
- UID (User ID)
- Número de identificación único asignado a cada usuario en el sistema, utilizado internamente por el sistema operativo.
- GID (Group ID)
- Número de identificación único asignado a cada grupo en el sistema. Los usuarios pertenecen a uno o más grupos para gestionar permisos.
- PID (Process ID)
- Número de identificación único asignado a cada proceso en ejecución por el sistema operativo.
- Shadow Password
- Mecanismo de seguridad donde las contraseñas cifradas de los usuarios se almacenan en un archivo separado (
/etc/shadow
) al que solo tiene acceso el usuarioroot
, mejorando significativamente la seguridad. /etc/group
- Archivo que almacena la información de los grupos del sistema (nombre del grupo, GID, miembros del grupo).
Arranque del Sistema y Niveles de Ejecución
Proceso de Encendido (Boot)
- Comprobación de todos los componentes de hardware (POST - Power-On Self-Test).
- Lectura del sector de arranque principal (MBR - Master Boot Record) del primer disco duro.
- El cargador de arranque (ej. GRUB) carga en memoria el núcleo (kernel) del sistema operativo.
- El núcleo se descomprime a sí mismo en memoria.
- El núcleo inicia en modo vídeo y detecta los dispositivos instalados.
- El núcleo monta el sistema de ficheros raíz en modo lectura.
- El proceso
init
(osystemd
) toma el control y continúa el arranque.
Niveles de Ejecución (Runlevels)
Modos de operación predefinidos en sistemas Unix/Linux (más comunes en sistemas SysVinit):
- 0: Detener el sistema (apagado).
- 1: Modo monousuario (mantenimiento y recuperación).
- 2-5: Ejecución normal (multiusuario, con o sin entorno gráfico, dependiendo de la configuración de la distribución).
- 6: Reinicio del sistema.
- Identificador
ca
(en/etc/inittab
) - Define la acción que el proceso
init
debe realizar cada vez que se pulsaCtrl+Alt+Supr
en una consola (ej. reiniciar el sistema de forma segura). telinit
- Comando utilizado para cambiar el nivel de ejecución del sistema en tiempo real (ej.
telinit 5
para cambiar al nivel 5). - RC (Runlevel Scripts)
- Son scripts (generalmente ubicados en directorios como
/etc/rcX.d/
, donde X es el nivel de ejecución) encargados de iniciar o detener servicios y establecer la configuración correcta del sistema para un determinado nivel de ejecución. /etc/fstab
- Archivo de configuración que permite la automatización del montaje de sistemas de archivos (particiones, dispositivos de red, etc.) en el arranque del sistema, especificando sus puntos de montaje y opciones.
Gestión de Aplicaciones y Compresión
- Aplicaciones
- Pueden distribuirse en formato de código fuente (requiere compilación antes de su uso) o en formato binario (ejecutable directamente, precompilado para una arquitectura específica).
tar
- Comando para archivar y extraer archivos. Puede combinar múltiples archivos y directorios en un solo archivo (conocido como tarball) y, opcionalmente, comprimirlo o descomprimirlo con herramientas como
gzip
obzip2
(ej.tar -czvf archivo.tar.gz directorio/
para comprimir,tar -xzvf archivo.tar.gz
para descomprimir). gzip
- Comando para comprimir y descomprimir archivos utilizando el algoritmo GZIP, resultando en archivos con extensión
.gz
(ej.gzip archivo
para comprimir,gzip -d archivo.gz
para descomprimir).