Manual de Referencia de Comandos Avanzados de Linux

Este manual no es una simple lista de comandos; es una actualización táctica para su flujo de trabajo en la línea de comandos. Concebido como una referencia técnica y exhaustiva para administradores de sistemas experimentados, este documento detalla un arsenal de herramientas avanzadas y modernas que separan a los administradores competentes de los verdaderamente excepcionales. Su propósito es mejorar drásticamente la eficiencia en la gestión, monitorización y análisis de sistemas Linux.

--------------------------------------------------------------------------------

1.0 Gestión de Archivos y Directorios

La gestión eficiente de archivos es una competencia estratégica para cualquier administrador de sistemas. Esta sección aborda herramientas modernas que superan a las utilidades tradicionales como ls, cd y find, ofreciendo mayor velocidad, interactividad y funcionalidades avanzadas para la navegación, búsqueda, manipulación y archivado de datos en la línea de comandos.

1.1 Navegación y Búsqueda Mejoradas

exa

exa es un reemplazo moderno para el comando ls. Su principal ventaja radica en una presentación de la información más rica y legible, facilitando la interpretación rápida del estado de los archivos y directorios.

* Mejor codificación por colores: Diferencia tipos de archivo, permisos y metadatos de forma visual.

* Vista de árbol integrada: Permite visualizar la estructura de directorios de forma nativa.

* Soporte para iconos: Ofrece una representación gráfica de los tipos de archivo directamente en la terminal.

z oxide

z oxide es una alternativa inteligente al comando cd. Aprende de los directorios que más frecuentas y te permite saltar a ellos sin necesidad de escribir la ruta completa, basándose en un sistema de ranking de uso reciente y frecuente.

* Navegación basada en aprendizaje: “Aprende” de tus hábitos de navegación para predecir a dónde quieres ir.

* Interactivo con fzf: Se integra con fzf para ofrecer una selección interactiva de directorios visitados.

* Tolerante a rutas parciales: Permite navegar a un directorio profundo simplemente escribiendo una parte de su nombre.

# Navegar a un directorio aprendido sin la ruta completa

z downloads

ranger

ranger es un gestor de archivos visual para la terminal que emula la experiencia de una interfaz gráfica. Ofrece una navegación intuitiva y potentes capacidades de gestión de archivos sin abandonar la línea de comandos.

* Interfaz de tres paneles: Muestra el directorio padre, el actual y una vista previa del archivo o contenido del subdirectorio.

* Atajos de teclado tipo Vim: Ideal para usuarios familiarizados con el editor Vim.

* Renombrado masivo y previsualización: Simplifica la gestión de múltiples archivos y permite ver su contenido directamente.

# Iniciar el gestor de archivos ranger

ranger

fd

fd es una alternativa más rápida y amigable al comando find. Está diseñado con valores por defecto más intuitivos, como la búsqueda recursiva y la exclusión de archivos ocultos.

* Búsqueda recursiva por defecto: No es necesario especificar la recursividad.

* Ignora archivos ocultos y .gitignore: Ofrece resultados más limpios en proyectos de desarrollo.

* Sintaxis más simple: Usa nombres de patrones en lugar de complejas expresiones regulares por defecto.

* Salida con colores: Mejora la legibilidad de los resultados.

1.2 Inspección y Atributos de Archivos

stat

El comando stat proporciona metadatos detallados sobre un archivo o sistema de archivos, superando con creces la información básica de ls. Es invaluable para diagnósticos a bajo nivel y auditorías de archivos.

# Obtener información detallada de un archivo

stat a_file.txt

# Obtener información del sistema de archivos donde reside el archivo

stat -f a_file.txt

shred

A diferencia de rm, que solo desvincula un archivo del sistema de archivos, shred está diseñado para eliminar datos de forma segura. Sobrescribe el contenido del archivo múltiples veces con patrones aleatorios antes de eliminarlo, dificultando enormemente su recuperación por medios forenses.

# Eliminar un archivo de forma segura sobrescribiendo su contenido

shred sensitive_data.txt

1.3 Comparación y Visualización de Contenidos

Comando Descripción del Propósito Caso de Uso Principal

diff Compara dos archivos línea por línea y muestra las diferencias entre ellos. Revisar cambios entre versiones de archivos de configuración o código fuente.

head Muestra las primeras líneas de un archivo (10 por defecto). Inspeccionar rápidamente el inicio de un archivo de log o un CSV para ver sus cabeceras.

tail Muestra las últimas líneas de un archivo (10 por defecto). Monitorizar en tiempo real las entradas más recientes en un archivo de log.

more Permite ver el contenido de un archivo largo página por página, avanzando hacia adelante. Visualización básica de archivos que no caben en una sola pantalla.

less Una versión mejorada de more que permite desplazarse hacia adelante y hacia atrás. Navegación y búsqueda precisa dentro de archivos de log o documentación extensos.

vip Inserta un editor de texto (como Vim) en medio de una tubería de comandos. Editar datos sobre la marcha que están siendo canalizados entre dos comandos.

1.4 Compresión y Archivado

zip

Utilidad estándar para crear archivos comprimidos en formato .zip.

# Comprimir tres archivos en un archivo llamado outputfile.zip

zip outputfile.zip file1 file2 file3

unzip

Herramienta para extraer el contenido de un archivo .zip.

# Extraer un archivo zip en una carpeta de destino específica

unzip -d destination_folder yourfile.zip

7z

Utilidad que ofrece una alta tasa de compresión y permite listar el contenido de un archivo comprimido sin extraerlo.

# Listar el contenido de un archivo .zip

7z l yourfile.zip

unp

unp es un script universal que simplifica la descompresión. Analiza el tipo de archivo y “adivina” automáticamente el comando correcto que se debe usar para extraerlo, ya sea unzip, tar, 7z u otro.

# Descomprimir cualquier tipo de archivo de forma inteligente

unp cualquier_archivo.rar

Dominada la gestión de archivos, el enfoque se desplaza hacia el entorno dinámico: la monitorización de los procesos que manipulan estos datos para identificar y neutralizar preventivamente la degradación del rendimiento.

--------------------------------------------------------------------------------

2.0 Monitorización y Gestión de Procesos y Rendimiento

La monitorización proactiva del rendimiento es un pilar fundamental para garantizar la estabilidad, la capacidad de respuesta y la seguridad de cualquier sistema Linux. Esta sección cubre un espectro de herramientas que van desde dashboards de visión general hasta utilidades especializadas diseñadas para diagnosticar cuellos de botella específicos en la CPU, la E/S de disco y la memoria.

2.1 Dashboards de Monitorización del Sistema

Herramienta Descripción y Enfoque Principal Características Notables

top La utilidad de monitorización de procesos fundamental y omnipresente en sistemas Unix. Proporciona métricas esenciales como el uso de CPU y memoria por proceso. Básico pero eficiente.

htop Una versión mejorada de top con un enfoque visual más claro en las métricas de la CPU. Más ligero que otras alternativas modernas, ideal para una visión rápida del uso de los núcleos de la CPU.

btop Descrito como el “Lamborghini de los tops”, es un monitor de recursos moderno y visualmente atractivo. Soporte completo para ratón y menús de navegación tipo videojuego. Su diseño no es solo estético, es funcional: facilita la identificación de sobrecargas de un vistazo.

glances Un “dashboard de estadísticas todo en uno” que ofrece una visión integral del sistema. Puede ejecutarse como un servidor web o una API para monitorización remota. Muestra una amplia gama de métricas en una sola pantalla.

2.2 Herramientas Especializadas de Rendimiento

1. E/S de Disco (iotop): Esta herramienta es esencial para diagnosticar problemas de rendimiento relacionados con el almacenamiento. iotop muestra una lista, actualizada en tiempo real, de los procesos que están utilizando la mayor cantidad de E/S (lectura/escritura) de disco. Ayuda a identificar con precisión qué aplicación o servicio está estresando los discos duros o SSDs.

2. Análisis de CPU y Sistema (s-tui, dstat, perf):

* s-tui: Una interfaz de terminal para estresar y monitorizar la CPU. Permite cargar los núcleos del procesador al máximo mientras se visualizan en tiempo real las temperaturas, las frecuencias de reloj y el uso, lo cual es ideal para pruebas de estabilidad y burn-in.

* dstat: Ofrece una vista combinada y en formato de línea de tiempo de múltiples estadísticas del sistema, unificando la salida de herramientas como vmstat, iostat y netstat en una sola pantalla.

* perf: La herramienta definitiva para el análisis de rendimiento a bajo nivel. Cuando top o btop muestran un uso elevado de la CPU pero no está claro el porqué, perf es la herramienta a utilizar. Permite a los administradores diagnosticar cuellos de botella complejos que otras herramientas no pueden explicar.

3. Monitorización de GPU (nvtop): nvtop es un visor de tareas ligero y versátil para unidades de procesamiento gráfico (GPU). Es compatible con una amplia gama de hardware, incluyendo GPUs de AMD, Intel, Nvidia y Apple. Muestra métricas clave como el consumo de energía, el uso de la memoria de la GPU y un desglose detallado del uso por proceso.

2.3 Gestión e Inspección de Procesos

ps

El comando tradicional para obtener una instantánea de los procesos en ejecución. Combinado con grep, es una forma rápida de encontrar un proceso específico.

# Listar todos los procesos en ejecución y filtrar por “nginx”

ps -aux | grep nginx

procs

Una alternativa moderna a ps, diseñada para ser más “bonita y amigable”. Ofrece una salida más clara y organizada. Por ejemplo, para ordenar por CPU y visualizar los procesos en árbol, se podría usar un comando como:

# Ejemplo de uso de procs para ordenar por CPU y mostrar en árbol

procs —sort-cpu —tree

comando:: lsof

comando:: lsof (List Open Files) es una utilidad de diagnóstico indispensable. Muestra qué archivos están actualmente abiertos en el sistema y, lo que es más importante, qué procesos los están utilizando. Es extremadamente útil para depurar problemas de acceso a archivos o para identificar qué servicio está ocupando un puerto de red.

# Ver qué proceso está utilizando el puerto 22 (SSH)

comando:: lsof -i :22

kill

El comando estándar para terminar un proceso. Requiere el ID del proceso (PID) como argumento. La señal -9 fuerza la terminación inmediata del proceso.

# Forzar la terminación de un proceso usando su PID

comando:: sudo kill -9 <PID>

killall

Una alternativa a kill que permite terminar procesos por su nombre en lugar de su PID. Es más conveniente, pero requiere que el nombre coincida exactamente.

# Terminar todos los procesos llamados “nginx”

comando:: sudo killall nginx

strace

Una herramienta de depuración avanzada que intercepta y registra las llamadas al sistema que un proceso realiza y las señales que recibe. Opera a nivel del kernel, revelando cómo un programa interactúa con el sistema operativo. Permite obtener “profundos conocimientos sobre el comportamiento del sistema”, mostrando la comunicación directa entre una aplicación y el kernel.

# Trazar las llamadas al sistema de un proceso existente (Firefox en el ejemplo)

strace -p <PID>

progress

Este comando monitoriza el progreso de comandos básicos de Linux como cp, mv, dd, etc., que se están ejecutando en el sistema. Es capaz de detectar y mostrar el porcentaje de finalización de transferencias de archivos u otras operaciones largas.

# Monitorizar el progreso de los comandos en ejecución

progress

2.4 Ejecución Periódica de Comandos

El comando watch es una utilidad simple pero poderosa que re-ejecuta cualquier comando especificado a intervalos regulares, mostrando la salida en pantalla completa. Es ideal para monitorizar cambios en tiempo real sin tener que ejecutar el mismo comando repetidamente.

# Monitorizar el uso de la GPU cada medio segundo

watch -n 0.5 nvidia-smi

# Monitorizar los cambios en el contenido de un directorio cada 2 segundos (por defecto)

watch ls -l

Con el rendimiento interno bajo control, la atención se dirige al perímetro del sistema: el análisis de la conectividad y el tráfico de red, un campo de batalla clave para el diagnóstico y la seguridad.

--------------------------------------------------------------------------------

3.0 Análisis de Red y Conectividad

Para un administrador de sistemas, las herramientas de red son fundamentales tanto para el diagnóstico de problemas de conectividad como para la realización de auditorías de seguridad. Esta sección detalla un conjunto de comandos esenciales para el análisis de DNS, la captura de paquetes, la gestión de conexiones remotas seguras y la configuración de interfaces de red.

3.1 Resolución de Nombres y DNS

* nslookup

* Descripción: Es la herramienta de consulta de DNS más universal, disponible de forma nativa en prácticamente todos los sistemas operativos Linux, Windows y macOS. Su modo interactivo es útil para realizar consultas rápidas y secuenciales.

* Sintaxis:

* dig

* Descripción: Considerado superior a nslookup, dig es más potente y flexible. Es más fácil de usar en scripts gracias a la opción +short, que devuelve solo la información esencial. Además, puede trazar la jerarquía completa de una consulta DNS con +trace y es una herramienta activamente mantenida.

* Sintaxis:

* dog

* Descripción: Una alternativa moderna a dig y nslookup. Ofrece una salida con colores para una mejor legibilidad, soporte para protocolos seguros como DNS sobre TLS (DoT) y la capacidad de formatear la salida en JSON para una fácil integración con otras herramientas.

* Sintaxis:

3.2 Captura y Análisis de Tráfico

tcpdump

tcpdump es la herramienta fundamental y de línea de comandos para la captura de paquetes de red. Permite a los administradores inspeccionar el tráfico en una interfaz de red en tiempo real. Su uso requiere privilegios de root debido a que opera a bajo nivel en la pila de red.

# Capturar tráfico en la interfaz eth0 que se dirige al puerto 22 (SSH)

tcpdump -i eth0 port 22

termShark

termShark es una interfaz de usuario de terminal (TUI) para T-shark (la versión de línea de comandos de Wireshark). Proporciona una experiencia interactiva para el análisis de paquetes directamente en la terminal, con soporte para el uso del ratón y capacidades de filtrado visual.

mtr

Descrito como si “ping y traceroute tuvieran un bebé”, mtr combina la funcionalidad de ambos comandos en una única herramienta de diagnóstico de red. Realiza un seguimiento continuo de la ruta de los paquetes hacia un destino, mostrando la latencia y la pérdida de paquetes en cada salto en tiempo real.

# Rastrear la ruta de red hacia google.com

mtr google.com

3.3 Conectividad y Transferencia de Archivos

* ssh: El estándar de la industria para establecer una conexión de terminal remota y segura a otros sistemas. Es la base para la mayoría de las tareas de administración remota.

* mosh: Una alternativa a SSH diseñada para conexiones inestables. mosh (Mobile Shell) soporta “roaming”, lo que significa que mantiene la sesión activa incluso si la conexión a internet se interrumpe o si el usuario cambia de red (por ejemplo, de Wi-Fi a datos móviles).

* rsync: El método preferido para transferir y sincronizar directorios o archivos grandes. Su principal ventaja es que es “delta only”, lo que significa que solo transfiere las diferencias entre los archivos de origen y destino. Puede reanudar transferencias interrumpidas y opera de forma segura sobre una conexión SSH.

* wormhole: Una utilidad para la transferencia de archivos peer-to-peer cifrada de extremo a extremo de forma sencilla y segura. Descrita como “casi mágica”, genera un código simple que el receptor utiliza para descargar el archivo directamente desde el emisor, atravesando firewalls con facilidad.

* curl: Una herramienta versátil para interactuar con sitios web y APIs desde la línea de comandos. Es útil para descargar archivos, probar la conectividad o inspeccionar las cabeceras de respuesta de un servidor web (curl -I).

3.4 Gestión de Interfaces y Firewall

Comando Función Principal para la Administración de Red

ifconfig Configurar y visualizar interfaces de red y sus direcciones IP.

netstat Comprobar las conexiones de red abiertas y los puertos que están a la escucha.

ipcalc Una calculadora de subredes rápida para la línea de comandos.

ufw Una interfaz simplificada para la gestión del firewall, facilitando el bloqueo y permiso de puertos.

Asegurada la red, la perspectiva regresa al núcleo del sistema operativo. La gestión de usuarios, servicios y hardware constituye la base administrativa sobre la que se construye un entorno estable y seguro.

--------------------------------------------------------------------------------

4.0 Gestión del Sistema y Administración de Usuarios

La gestión de usuarios, el control de servicios y la supervisión del hardware son los pilares sobre los que se asienta una administración de sistemas robusta y segura. Esta sección cubre los comandos esenciales para llevar a cabo estas tareas críticas, desde la creación de cuentas de usuario hasta el análisis del proceso de arranque del sistema.

4.1 Información del Sistema y Hardware

* uptime: Muestra cuánto tiempo ha estado funcionando el sistema desde el último reinicio, así como la fecha y hora exactas en que se inició.

* last / lastlog / w: Proporcionan un historial de los inicios de sesión de los usuarios. last muestra una lista de los últimos inicios de sesión, lastlog muestra el inicio de sesión más reciente de cada usuario, y w muestra quién está conectado actualmente.

* lshw: Ofrece información extremadamente detallada sobre todos los componentes de hardware del sistema, incluyendo CPU, memoria, interfaces de red y discos.

* lsusb / lscpu: Comandos especializados para listar información específica sobre los dispositivos USB conectados (lsusb) y la arquitectura detallada de la CPU (lscpu).

* systemd-analyze blame: Analiza el último proceso de arranque y muestra qué servicios o unidades tardaron más tiempo en iniciarse, ayudando a identificar cuellos de botella en el arranque.

4.2 Análisis de Uso del Espacio en Disco

* df -h: Es el comando estándar para verificar el espacio libre en todos los sistemas de archivos montados. La opción -h presenta los tamaños en un formato “legible para humanos” (human-readable), como gigabytes (G) y megabytes (M).

* duff: Descrito como una “versión más bonita de DF”, ofrece una visualización mejorada y más clara del uso del disco en comparación con el df tradicional.

* ncdu: Una herramienta de análisis de uso de disco interactiva y basada en texto, considerada superior a df y du. ncdu escanea un directorio y permite navegar visualmente por la estructura de carpetas, identificando rápidamente qué archivos y directorios consumen más espacio. Su característica más potente es que permite eliminar archivos o directorios directamente desde su interfaz para liberar espacio de forma inmediata.

4.3 Administración de Usuarios y Grupos

El ciclo de vida de la gestión de un usuario en Linux se puede resumir en el siguiente flujo lógico de comandos:

1. Creación:

* useradd: Crea una nueva cuenta de usuario en el sistema.

* groupadd: Crea un nuevo grupo de usuarios.

2. Configuración:

* passwd: Establece o cambia la contraseña de un usuario.

3. Modificación:

* usermod -aG: Añade un usuario existente a un grupo secundario. La opción -a (append) es crucial para no eliminar al usuario de sus grupos actuales.

4. Verificación:

* groups: Muestra los grupos a los que pertenece un usuario.

5. Eliminación:

* deluser: Elimina a un usuario de un grupo específico.

* userdel -r: Elimina completamente una cuenta de usuario, incluyendo su directorio personal (home) gracias a la opción -r.

6. Suplantación:

* su: Permite cambiar al contexto de otro usuario, incluyendo el superusuario (root).

4.4 Control de Servicios y Sistema

* systemctl: Es la herramienta principal y centralizada para gestionar servicios (daemons) en sistemas modernos basados en systemd. Permite iniciar (start), detener (stop), verificar el estado (status) y reiniciar (restart) cualquier servicio gestionado por el sistema.

* reboot: Ejecuta un reinicio inmediato y ordenado del sistema.

* shutdown: Permite apagar el sistema de forma segura. Puede programar un apagado o, con la opción shutdown now, ejecutar un apagado inmediato.

Con los fundamentos de la administración del sistema cubiertos, la última frontera es la optimización del propio flujo de trabajo. La siguiente sección presenta un arsenal de utilidades diseñadas para potenciar la interfaz de línea de comandos, convirtiendo la eficiencia en un arma táctica.

--------------------------------------------------------------------------------

5.0 Utilidades Avanzadas para la Productividad en la CLI

Más allá de la administración directa del sistema, existe un ecosistema de herramientas diseñadas para potenciar la propia interfaz de línea de comandos (CLI). Estas utilidades transforman la terminal en un entorno aún más poderoso, haciendo que las tareas complejas de búsqueda, manipulación de datos y automatización sean más rápidas e intuitivas.

5.1 Búsqueda y Manipulación de Datos

* ripGrap (rg): Descrito como “grep con café, impulsado por Rust”, ripgrep es una herramienta de búsqueda de texto increíblemente rápida. Supera a grep en velocidad y utiliza valores predeterminados inteligentes, como la búsqueda recursiva y el respeto a los archivos .gitignore. Es ideal para encontrar rápidamente fragmentos de código, errores en archivos de log de gran tamaño o claves de API en un proyecto.

* fzf (FuzzyFinder): Es un buscador “difuso” interactivo de línea de comandos que puede usarse como un filtro para cualquier lista o tubería. Permite buscar de forma interactiva en el historial de comandos (history | fzf) o encadenarse con otros comandos para, por ejemplo, seleccionar y terminar un proceso en ejecución de forma visual e intuitiva.

* jq: Presentado como el “sable de luz de JSON”, jq es una herramienta indispensable para procesar datos en formato JSON directamente desde la terminal. Permite filtrar, transformar y consultar estructuras JSON complejas con expresiones concisas, lo que es esencial para trabajar con APIs modernas.

5.2 Automatización y Asistencia por IA

* xargs: Es un comando que lee elementos de la entrada estándar y los convierte en argumentos para otro comando. Su función principal es conectar la salida de un comando con la entrada de otro que no acepta datos por tubería. Por ejemplo, para encontrar todos los scripts de shell, listarlos con detalles y guardar esa lista en un archivo, se puede usar:

* fabric / Olama: Estas herramientas integran la inteligencia artificial directamente en la línea de comandos. fabric puede, por ejemplo, analizar el historial de comandos y resumir los más utilizados. Olama permite ejecutar modelos de lenguaje grandes de forma local, creando agentes de IA que pueden ayudar a construir comandos complejos sobre la marcha, como generar un comando nmap con parámetros específicos o explicar qué hace un script.

5.3 Grabación y Gestión de Tareas

* asciinema: Es una herramienta para grabar sesiones de terminal. A diferencia de una grabación de video, asciinema guarda la sesión en un formato de texto ligero. Estas grabaciones se pueden reproducir en una terminal, pausar, y lo más importante, el texto que aparece en ellas se puede copiar y pegar. La herramienta complementaria asciinema-agg puede convertir estas grabaciones en GIFs animados para compartirlas fácilmente.

* task Warrior: Es un completo sistema de gestión de tareas que se ejecuta íntegramente desde la línea de comandos. Permite añadir nuevas tareas, listarlas, establecer prioridades y marcarlas como completadas, todo ello sin salir de la terminal, lo que lo convierte en una herramienta de productividad ideal para administradores de sistemas.

--------------------------------------------------------------------------------

Conclusión

La verdadera maestría en la administración de Linux no reside en memorizar comandos, sino en saber cuándo y cómo desplegar la herramienta precisa para cada desafío. Las utilidades presentadas en este manual representan una evolución más allá del conjunto tradicional, ofreciendo velocidad, claridad y capacidades superiores. Se anima al lector a integrar este arsenal en su flujo de trabajo diario, no solo para resolver problemas de manera más eficiente, sino para dominar el arte de la administración de sistemas Linux con confianza y precisión.