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') o cat < 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 o kill %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 usuario root, 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)

  1. Comprobación de todos los componentes de hardware (POST - Power-On Self-Test).
  2. Lectura del sector de arranque principal (MBR - Master Boot Record) del primer disco duro.
  3. El cargador de arranque (ej. GRUB) carga en memoria el núcleo (kernel) del sistema operativo.
  4. El núcleo se descomprime a sí mismo en memoria.
  5. El núcleo inicia en modo vídeo y detecta los dispositivos instalados.
  6. El núcleo monta el sistema de ficheros raíz en modo lectura.
  7. El proceso init (o systemd) 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 pulsa Ctrl+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 o bzip2 (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).

Entradas relacionadas: