Introducción

Trabajar en Linux sin aprovechar las herramientas de línea de comandos es como usar un auto sin cambiarle el aceite: podés moverte, pero a la larga vas a tener problemas. Este artículo te guía en la instalación y configuración de 10 herramientas CLI que todo profesional de infraestructura, DevOps o desarrollo debería tener en su sistema. Cada una aborda un caso de uso específico: desde edición de texto hasta manejo de sesiones remotas, pasando por cálculo interactivo y gestión de feeds.

Estas herramientas no son «bonitos extras»: son componentes críticos para flujos de trabajo repetitivos, automatización y resolución de problemas en entornos productivos. Incluyen desde lo básico (como wc para contar palabras) hasta lo avanzado (como tmux para multiplexación de terminales o ipython para cálculo científico).

Qué es y para qué sirve

A continuación, presentamos cada herramienta: qué problema resuelve, por qué es útil en entornos profesionales y cómo integrarla al flujo de trabajo diario.

HerramientaTipoProblema que resuelveCaso de uso profesional
BLOCK23Editor de textoEditar archivos de configuración, scripts y documentación sin salir del terminalModificar archivos de sistema (BLOCK24), scripts de despliegue, logs en tiempo real
BLOCK25Shell interactivo de PythonFalta de historial de comandos y autocompletado en el intérprete estándar de PythonAnálisis exploratorio de datos, prototipado rápido de scripts, pruebas de APIs
BLOCK26Multiplexor de terminalesPérdida de contexto al desconectarse de sesiones SSH, necesidad de múltiples panelesMantenimiento de servidores remotos, monitoreo en tiempo real, ejecución de tareas largas que requieren reanudación
BLOCK27 + Oh My ZshShell mejoradoLimitaciones de Bash (autocompletado pobre, sintaxis compleja)Automatización con autocompletado inteligente, personalización del prompt para entornos productivos
BLOCK28Transferencia de archivosDescarga de scripts, datasets o logs desde servidores remotos sin GUIAutomatización de descargas en pipelines CI/CD, recuperación de logs de aplicaciones en producción
BLOCK29Visor de archivosVisualización deficiente de manuales (BLOCK30) y logs con el pager estándar (BLOCK31)Lectura de documentación técnica (BLOCK32), revisión de logs de aplicaciones (BLOCK33)
BLOCK34Lector de feeds RSSSeguimiento de noticias técnicas, blogs de proyectos y documentaciónMonitoreo de releases de software, seguimiento de CVEs relevantes para tu stack tecnológico
BLOCK35Cliente IRCFalta de conectividad 24/7 a canales de soporte de proyectos open sourceParticipación en canales de soporte de Kubernetes, Prometheus o distribuciones Linux
BLOCK36/BLOCK37Navegadores web en textoNecesidad de acceder a recursos web sin interfaz gráfica (ej.: validar cómo se ve un sitio para screen readers)Depuración de sitios web accesibles, scraping básico de contenido textual sin headless Chrome
BLOCK38/BLOCK39Generadores de ASCII artPersonalización de prompts, headers de scripts o logs con arte ASCIICrear headers en scripts de despliegue, personalizar mensajes de logs en producción
## Prerequisitos

Antes de instalar, asegurate de tener:

  • Sistema operativo: Cualquier distribución Linux moderna (Ubuntu 22.04+, Debian 12+, RHEL 9+, Arch Linux).
  • Permisos: Acceso a sudo o root para instalar paquetes del sistema.
  • Entorno de shell: Bash (predeterminado en la mayoría de distros) o Zsh (recomendado).
  • Python: Si instalás ipython, asegurate de tener Python 3.8+ (recomendado 3.10+).
  • Red: Acceso a repositorios oficiales de paquetes (apt, dnf, pacman) o permisos para instalar desde PyPI (pip).
  • Espacio en disco: Las herramientas ocupan menos de 50MB combinadas, pero tmux y ipython pueden requerir dependencias adicionales (ej.: libevent para tmux).

Guía paso a paso

1. Instalar y configurar vim

Problema: Editar archivos de configuración, scripts o logs sin salir del terminal. Solución: Instalar vim (o neovim si preferís un fork moderno).
# Instalar vim en Ubuntu/Debian
sudo apt update && sudo apt install -y vim

# Instalar vim en RHEL/CentOS
sudo dnf install -y vim-enhanced

# Instalar vim en Arch Linux
sudo pacman -Syu --noconfirm vim
Configuración básica para productividad:

Editar ~/.vimrc con:

" Habilitar números de línea
set number

" Resaltar sintaxis
syntax on

" Buscar mientras se escribe
set incsearch

" Deshacer infinito
set undofile

" Tabs de 4 espacios
set tabstop=4
set shiftwidth=4
set expandtab
Resultado esperado:
  • Podés editar cualquier archivo con vim /etc/nginx/nginx.conf y ver números de línea.
  • La búsqueda resalta coincidencias en tiempo real.
  • Los tabs se convierten automáticamente a espacios (evita conflictos en repositorios).
Error común:

Si abris un archivo y no podés salir, recordá:

  • Presionar Esc para entrar en modo comando.
  • Escribir :q! y presionar Enter para salir sin guardar.

2. Instalar ipython para cálculo interactivo

Problema: El intérprete estándar de Python no guarda historial de comandos ni permite autocompletado. Solución: Instalar ipython y librerías científicas.
# Instalar ipython y dependencias comunes
python3 -m pip install --user ipython numpy scipy sympy statsmodels pandas matplotlib

# Ejecutar ipython
ipython
Uso básico:
# Ejemplo de cálculo interactivo
In [1]: import numpy as np

In [2]: arr = np.array([1, 2, 3, 4])

In [3]: np.mean(arr)
Out[3]: 2.5

In [4]: np.std(arr)
Out[4]: 1.2909944487358056
Resultado esperado:
  • Tenés autocompletado con Tab y historial con flechas /.
  • Podés usar librerías como numpy o pandas sin configurar entornos virtuales.
Alternativa:

Si preferís un entorno más completo, usá jupyterlab con:

python3 -m pip install --user jupyterlab
jupyter lab --no-browser

3. Configurar tmux para sesiones persistentes

Problema: Perder el contexto de una sesión SSH al desconectarse o que un proceso largo se cancele. Solución: Usar tmux para multiplexar terminales y persistir sesiones.
# Instalar tmux en Ubuntu/Debian
sudo apt update && sudo apt install -y tmux

# Instalar tmux en RHEL/CentOS
sudo dnf install -y tmux

# Instalar tmux en Arch Linux
sudo pacman -Syu --noconfirm tmux
Comandos básicos:
# Iniciar una sesión llamada "devops"
tmux new -s devops

# Dividir la ventana en paneles (horizontal/vertical)
Ctrl+b %   # Vertical
Ctrl+b "   # Horizontal

# Cambiar de panel
Ctrl+b Arrow

# Desconectarse sin matar la sesión (detach)
Ctrl+b d

# Reconectarse a una sesión existente
tmux attach -t devops

# Listar sesiones activas
tmux ls
Resultado esperado:
  • Si te desconectás por SSH, podés reconectarte con tmux attach -t devops y continuar donde lo dejaste.
  • Podés dividir la pantalla en múltiples paneles para monitorear logs en tiempo real.
Error común:

Si tmux no se reconecta, asegurate de que el socket esté activo:

tmux -S /tmp/tmux-$(id -u) ls

4. Cambiar de bash a zsh con Oh My Zsh

Problema: Bash tiene autocompletado limitado y sintaxis compleja para operaciones avanzadas. Solución: Usar zsh con Oh My Zsh para autocompletado inteligente y temas personalizables.
# Instalar zsh
sudo apt update && sudo apt install -y zsh  # Ubuntu/Debian
sudo dnf install -y zsh      # RHEL/CentOS
sudo pacman -Syu --noconfirm zsh  # Arch Linux

# Hacer zsh el shell predeterminado
sudo chsh -s $(which zsh) $USER

# Reiniciar sesión (o cerrar/abrir terminal)
exec zsh
Instalar Oh My Zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Configuración básica:

Editar ~/.zshrc para personalizar el prompt. Ejemplo con tema «agnoster»:

# Usar tema agnoster
ZSH_THEME="agnoster"

# Habilitar plugins útiles
plugins=(git docker kubectl systemd)

# Cargar configuración
source ~/.zshrc
Resultado esperado:
  • El prompt muestra información útil: rama de Git, estado de Docker, usuario, hostname.
  • Autocompletado inteligente para comandos como kubectl, docker o git.
Error común:

Si el prompt no se renderiza bien, instalá una fuente «Nerd Font» (recomendado: Cascadia Code).

5. Usar curl para descargas automatizadas

Problema: Necesidad de descargar scripts, datasets o logs desde servidores remotos sin interfaz gráfica. Solución: curl para transferencia de archivos.
# Instalar curl (ya viene en casi todas las distros)
sudo apt install -y curl  # Ubuntu/Debian
sudo dnf install -y curl  # RHEL/CentOS
sudo pacman -Syu --noconfirm curl  # Arch Linux

# Descargar un archivo y guardarlo con nombre específico
curl -L -o penguins.csv https://raw.githubusercontent.com/mcwha/statisticalRethinking/master/data/penguins.csv

# Descargar y descomprimir un tarball
curl -L https://github.com/kubernetes/kops/archive/refs/tags/v1.27.0.tar.gz | tar xz
Opciones útiles:
OpciónDescripción
BLOCK76Seguir redirecciones (útil para URLs acortadas)
BLOCK77Guardar la salida en un archivo específico
BLOCK78Guardar con el nombre del archivo remoto
BLOCK79Usar headers personalizados (ej.: para APIs)
Resultado esperado:
  • Podés descargar un dataset directamente en tu servidor para análisis.
  • Podés integrar curl en scripts de automatización (ej.: descargar logs de aplicaciones en producción).

6. Reemplazar less con most para visualización mejorada

Problema: Los manuales (man) y logs se ven mal con el pager estándar (less). Solución: Usar most para una visualización más limpia y con soporte para scroll horizontal.
# Instalar most
sudo apt install -y most  # Ubuntu/Debian
sudo dnf install -y most  # RHEL/CentOS
sudo pacman -Syu --noconfirm most  # Arch Linux

# Configurar most como pager predeterminado
echo 'export PAGER="most"' >> ~/.bashrc
echo 'export PAGER="most"' >> ~/.zshrc

# Probar con un manual
man sshd | most
Características de most:
  • Scroll horizontal (/) para líneas largas.
  • Resaltado de sintaxis para logs JSON o YAML.
  • Soporte para múltiples ventanas (F2/F3 para cambiar).
Resultado esperado:
  • Los manuales (man sshd) se ven con colores y scroll horizontal.
  • Los logs de aplicaciones (ej.: journalctl -u nginx) se leen más fácilmente.

7. Configurar newsboat para monitorear feeds técnicos

Problema: Perderte actualizaciones de blogs técnicos, CVEs o releases de software. Solución: Usar newsboat como lector de feeds RSS en línea de comandos.
# Instalar newsboat
sudo apt install -y newsboat  # Ubuntu/Debian
sudo dnf install -y newsboat  # RHEL/CentOS
sudo pacman -Syu --noconfirm newsboat  # Arch Linux

# Configurar feeds (ej.: para Kubernetes)
mkdir -p ~/.newsboat
echo "https://kubernetes.io/feed.xml" > ~/.newsboat/urls
Comandos básicos:
ComandoAcción
BLOCK95Abrir el lector
BLOCK96/BLOCK97Navegar entre feeds
BLOCK98Leer un artículo
BLOCK99Abrir el artículo en el navegador por defecto
BLOCK100Salir
Resultado esperado:
  • Podés seguir releases de Kubernetes, Docker, Linux Kernel, etc. sin abrir un navegador.
  • Útil para equipos de DevOps que necesitan estar al tanto de actualizaciones críticas.

8. Conectarse a IRC con weechat para soporte técnico

Problema: Necesidad de conectarte 24/7 a canales de soporte de proyectos open source. Solución: Usar weechat como cliente IRC persistente.
# Instalar weechat
sudo apt install -y weechat  # Ubuntu/Debian
sudo dnf install -y weechat  # RHEL/CentOS
sudo pacman -Syu --noconfirm weechat  # Arch Linux

# Configurar weechat para conectarse a Libera Chat (canal #kubernetes)
weechat
Comandos básicos en weechat:
ComandoAcción
BLOCK104Conectarse a Libera Chat
BLOCK105Iniciar conexión
BLOCK106Unirse al canal
BLOCK107Ver información de un usuario
Resultado esperado:
  • Podés monitorear canales de soporte de proyectos como Kubernetes o Prometheus desde tu servidor.
  • Útil para equipos que necesitan soporte en tiempo real sin depender de Slack o Discord.

9. Usar lynx o w3m para navegar la web sin GUI

Problema: Necesidad de acceder a recursos web sin interfaz gráfica (ej.: validar accesibilidad o depurar cómo se ve un sitio para screen readers). Solución: Usar navegadores en texto como lynx o w3m.
# Instalar lynx y w3m
sudo apt install -y lynx w3m  # Ubuntu/Debian
sudo dnf install -y lynx w3m  # RHEL/CentOS
sudo pacman -Syu --noconfirm lynx w3m  # Arch Linux

# Navegar con lynx
lynx https://kubernetes.io

# Navegar con w3m (mejor para tablas)
w3m https://kubernetes.io
Usos profesionales:
  • Validar cómo se ve un sitio para screen readers (accesibilidad).
  • Descargar contenido textual de una página con:
  lynx -dump https://kubernetes.io > k8s_homepage.txt
  
  • Depurar problemas de SEO o cómo los crawlers ven tu sitio.
Resultado esperado:
  • Podés acceder a documentación técnica sin abrir un navegador.
  • Útil en servidores donde no hay interfaz gráfica instalada.

10. Personalizar el terminal con figlet y toilet

Problema: Necesidad de headers decorativos en scripts o logs para mejor legibilidad. Solución: Usar figlet o toilet para generar ASCII art.
# Instalar figlet y toilet
sudo apt install -y figlet toilet  # Ubuntu/Debian
sudo dnf install -y figlet toilet  # RHEL/CentOS
sudo pacman -Syu --noconfirm figlet toilet  # Arch Linux

# Generar texto con figlet
echo "DEPLOYMENT STARTED" | figlet

# Generar texto con toilet (con colores)
echo "SUCCESS" | toilet -f term -F gay
Ejemplo en un script de despliegue:
#!/bin/bash
echo "=========================================="
echo "DEPLOYING APPLICATION TO PRODUCTION"
echo "=========================================="
# ... resto del script ...
Resultado esperado:
  • Los scripts de despliegue o logs tienen headers más legibles y profesionales.
  • Podés personalizar el arte ASCII para diferenciar entornos (dev, staging, prod).

Consideraciones y buenas prácticas

Limitaciones conocidas

  • tmux: No es compatible con sesiones persistentes en sistemas donde el usuario se borra al cerrar sesión (ej.: algunos entornos de cloud con containers efímeros). En esos casos, considerá usar screen o configurar tmux para guardar sesiones en /tmp.
  • ipython: Si usás librerías científicas como numpy, asegurate de que el sistema tenga las dependencias de compilación instaladas (ej.: gcc, python3-dev). En entornos minimalistas, usá entornos virtuales con pip install --user.
  • zsh: Algunos plugins de Oh My Zsh pueden ralentizar el inicio del shell. Deshabilitá plugins que no uses con plugins=(git docker) en ~/.zshrc.

Alternativas

HerramientaAlternativaCuándo usarla
BLOCK128BLOCK129Si querés soporte para LSP (Language Server Protocol) o integración con herramientas modernas
BLOCK130BLOCK131Interfaz más simple con autocompletado integrado
BLOCK132BLOCK133Si tu sistema no soporta BLOCK134 o preferís una herramienta más ligera
BLOCK135BLOCK136Si preferís autocompletado predictivo sin configuración manual
BLOCK137BLOCK138BLOCK139 maneja tablas mejor; BLOCK140 es más estándar
BLOCK141BLOCK142BLOCK143 es más ligero pero menos mantenido
### Buenas prácticas
  1. Automatizá la instalación: Creá un script de bootstrap para instalar todas las herramientas automáticamente. Ejemplo:
   #!/bin/bash
   sudo apt update && sudo apt install -y vim ipython tmux zsh curl most newsboat weechat lynx w3m figlet toilet
   
  1. Documentá tu entorno: Guardá tu configuración en un repositorio (ej.: ~/.dotfiles) para replicarla en nuevos sistemas.
  2. Centralizá la configuración de tmux: Creá un archivo ~/.tmux.conf con tus atajos y plugins para personalizarlo.
  3. Usá variables de entorno: Configurá PAGER="most" y EDITOR="vim" en ~/.bashrc o ~/.zshrc para que todas tus herramientas usen las mismas configuraciones.
  4. Monitoreá feeds críticos: Agregá feeds de:
CVE Details

Kubernetes Blog

Docker Blog

Conclusión

Estas 10 herramientas CLI no son solo «nice to have»: son componentes críticos para flujos de trabajo en entornos de infraestructura, DevOps y desarrollo. Desde editar archivos de configuración con vim hasta monitorear feeds técnicos con newsboat, cada una resuelve un problema concreto y mejora tu productividad en el terminal.

La clave está en integrarlas a tu flujo de trabajo diario. Por ejemplo:

  • Usá tmux para mantener sesiones remotas activas.
  • Usá ipython para prototipar scripts de Python sin configurar entornos.
  • Usá newsboat para estar al tanto de actualizaciones críticas sin abrir un navegador.

Con el tiempo, estas herramientas se volverán tan naturales como cd o ls. El terminal dejará de ser un «lugar oscuro» y se convertirá en tu IDE principal.

Fuentes

Por Gustavo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *