Ranger: Gestor de Archivos Terminal para Servidores
Navegación Eficiente de Directorios sin GUI
Diego Saavedra
Jan 30, 2024
Ranger: Navegación de Archivos en Terminal
📚 Introducción a Ranger
Ranger es un gestor de archivos basado en terminal escrito en Python. Proporciona:
- Navegación visual multi-panel (similar a Norton Commander)
- Vista previa de archivos
- Operaciones rápidas de archivo
- Soporte para plugins personalizados
- Integración perfecta con herramientas CLI
Por qué es importante en servidores:
- ✅ No requiere X11/GUI
- ✅ Funciona por SSH sin overhead gráfico
- ✅ Más eficiente que
cd+lsiterativo - ✅ Vista previa de código directamente
- ✅ Operaciones de archivo más intuitivas
Tiempo estimado: 30-45 minutos
🎯 Objetivos de Aprendizaje
Después de este anexo, serás capaz de:
- Instalar y configurar Ranger
- Navegar el sistema de archivos eficientemente
- Usar visor de archivos y miniaturas
- Ejecutar operaciones de archivo (copiar, mover, eliminar)
- Personalizar Ranger con configuración avanzada
- Integrar Ranger con otros comandos CLI
- Usar Ranger en conexiones SSH remotas
📋 Tabla de Contenidos
Instalación
Linux (Debian/Ubuntu)
BASH
- 1
- apt update actualiza la lista de paquetes disponibles
- 2
- apt install ranger instala el gestor de archivos Ranger
- 3
- Dependencias opcionales: highlight (sintaxis), atool (archivos), w3m-img (imágenes)
- 4
- ranger –version verifica la versión instalada
macOS (Homebrew)
BASH
- 1
- brew install ranger instala Ranger desde Homebrew
- 2
- Utilidades adicionales para vista previa mejorada
- 3
- ranger –version muestra la versión instalada
Compilación desde Fuente
BASH
- 1
- git clone descarga el repositorio oficial de Ranger
- 2
- make install compila e instala globalmente
- 3
- python install.py –local instalación en directorio de usuario
Interfaz y Navegación Básica
Arranque Inicial
BASH
- 1
- ranger abre el gestor en el directorio actual ($HOME o PWD)
- 2
- ranger /ruta abre Ranger en una ruta específica
- 3
- ranger –no-mounts carga más rápido sin montar sistemas de archivos remotos
Interfaz de Ranger
┌─────────────────────────────────────────────────────────┐
│ PANEL IZQUIERDO │ PANEL CENTRAL │ PANEL DERECHO │
│ Directorios │ Contenido dir │ Vista previa │
│ padres │ actual │ del archivo │
│ │ │ seleccionado │
│ / │ Documents/ │ (code, images, │
│ home/ │ Downloads/ ◄──│ text files) │
│ usr/ │ Pictures/ │ │
│ var/ │ file.txt ◄─────│ File: file.txt │
│ etc/ │ script.sh │ Size: 1.2K │
│ tmp/ │ image.png │ Mode: -rw-r--r-- │
│ │ README.md │ │
└─────────────────────────────────────────────────────────┘
Componentes:
- Panel izquierdo: Directorio padre (permite navegación rápida hacia arriba)
- Panel central: Contenido del directorio actual (donde operas)
- Panel derecho: Vista previa del archivo seleccionado
- Barra inferior: Información del archivo, marca, estado
Navegación de Directorios
BASH
# Navegar hacia arriba en el árbol de directorios
# Presionar: h (left arrow)
# Entrar en un directorio
# Presionar: j (down) + Enter o l (right arrow)
# Moverse entre archivos
j # Siguiente archivo (↓)
k # Archivo anterior (↑)
# Saltar a inicio/fin de lista
gg # Ir al inicio (first file)
G # Ir al final (last file)BASH
# Ir al home del usuario
~
# Ir a raíz del sistema
/
# Ir al directorio anterior (como 'cd -')
-
# Saltar a marcador
'<letra> # Ir a marcador (ej: 'a, 'b, 'c)
# Ir a ruta específica (comando)
1:cd /var/log- 1
- :cd es el comando interno de Ranger (similar a cd en shell)
BASH
- 1
- / inicia búsqueda (presiona Enter para confirmar)
- 2
- Expresiones regulares completas soportadas
Operaciones de Archivos
Selección de Archivos
BASH
- 1
- Space marca/desmarca el archivo actual para operación
- 2
- sa (select all) marca todos los archivos
- 3
- si (select invert) invierte la selección
- 4
- uv (unselect via) desmarca todos
- 5
- :select_file selecciona por patrón regex
Copiar, Mover, Eliminar
BASH
# Copiar archivo seleccionado
1yy # Copiar a portapapeles
2pp # Pegar en ubicación actual
# Mover/renombrar
3dd # Cortar archivo
pp # Pegar en nueva ubicación
# Eliminar permanentemente
4dD # Eliminar archivo(s) seleccionado(s)
# Cambiar nombre (renombrar)
5cw
# Edita nombre en editor (vim/nano)
# Presiona ESC + :wq para guardar
# Crear archivo/directorio nuevo
touch myfile.txt # Crea archivo
mkdir mydir # Crea directorio- 1
- yy copia archivo(s) al portapapeles interno
- 2
- pp pega en el directorio actual
- 3
- dd corta para mover después
- 4
- dD elimina sin recuperación (cuidado!)
- 5
- cw abre editor para renombrar
Visor de Archivos
Vista Previa Integrada
BASH
- 1
- zi alterna la visualización del panel de vista previa
- 2
- :du (disk usage) muestra tamaño de directorios
- 3
- zh muestra/oculta archivos que comienzan con punto
Formatos Soportados
Ranger puede previsualizar (con dependencias instaladas):
- Texto: .txt, .md, .py, .sh, .log, .csv, .json, etc.
- Código: Resaltado de sintaxis (highlight)
- Imágenes: .jpg, .png, .gif (en terminal capaz de imágenes)
- Archivos: .zip, .tar, .gz (con atool)
- Documentos: .pdf (con pdftotext)
Abrir Archivos
BASH
- 1
- e abre archivo en editor configurado ($EDITOR)
- 2
- ! o S abre shell interactivo en directorio actual
- 3
- x ejecuta archivo si tiene permisos de ejecución
Configuración Avanzada
Ubicación de Archivos de Configuración
BASH
# Configuración de Ranger
~/.config/ranger/
# Archivos principales:
1~/.config/ranger/rc.conf # Configuración principal
2~/.config/ranger/rifle.conf # Asociaciones de archivos
3~/.config/ranger/scope.sh # Script de vista previa
~/.config/ranger/colorscheme/ # Temas de color
# Generar configuración por defecto
4ranger --copy-config=all- 1
- rc.conf contiene atajos, temas, opciones de interfaz
- 2
- rifle.conf define qué programa abre cada tipo de archivo
- 3
- scope.sh personaliza vista previa para tipos específicos
- 4
- –copy-config=all crea todos los archivos en ~/.config/ranger/
Configuración Básica (rc.conf)
Opciones útiles a editar:
CONF
# Mostrar números de línea en vista previa
set preview_script ~/.config/ranger/scope.sh
# Usar vi-style keybindings
set vcsync true
# Colores personalizados
1colorscheme default
# Confirmación antes de eliminar
2set confirm_on_delete move
# Anchos de panel
set column_ratios 1,3,4
# Mostrar archivos ocultos por defecto
3set show_hidden false
# Orden de directorios
set sort directories_first
# Número máximo de líneas de vista previa
set preview_max_size 262144- 1
- colorscheme opciones: default, jungle, snow, solarized
- 2
- confirm_on_delete previene eliminación accidental
- 3
- show_hidden true/false controla visibilidad de archivos ocultos
Rifle.conf - Asociaciones de Archivos
Ejemplo de configuración personalizada:
CONF
# Archivos de código con editor
1ext py|sh|js|rb = vim "$@"
# PDFs con visor
ext pdf = pdfviewer "$@"
# Imágenes con visor de imagen
ext jpg|png|gif|jpeg = feh "$@"
# Videos con reproductor
ext mp4|mkv|avi = mpv "$@"
# Comprimidos con gestor de archivo
ext zip|tar|gz = atool -x "$@"
# Fallback: editor por defecto
2else = $EDITOR "$@"- 1
- ext define extensión(es) de archivo
- 2
- else es el comportamiento por defecto si no coincide nada
Integración con Otros Comandos
Usar Ranger desde Scripts
BASH
- 1
- –choosefile permite que Ranger retorne archivo seleccionado
- 2
- Combinación con pipes para procesar archivos
Alias Útiles en .bashrc
BASH
- 1
- Alias corto para ranger
- 2
- Ranger solo directorios
- 3
- Ranger vista lista solamente
Integración con fzf (Fuzzy Finder)
BASH
Ranger en Servidores Remotos
Conexión SSH Eficiente
BASH
- 1
- ssh usuario@servidor conecta por SSH
- 2
- scp copia archivos de configuración a servidor
Instalación en Servidor Ubuntu
BASH
# En servidor remoto vía SSH
ssh admin@192.168.1.100
# Una vez conectado
1sudo apt update && sudo apt install -y ranger highlight atool
# Crear estructura de configuración
ranger --copy-config=all
# Verificar instalación
ranger --version- 1
- Instalación completa con dependencias
Optimización para Servidores
BASH
# En ~/.config/ranger/rc.conf (servidor)
1set vcs_backend_git disable
set vcs_backend_hg disable
set vcs_backend_bzr disable
# Desactivar vista previa para mejorar velocidad
2set use_preview_script false
# Reducir máximo de líneas de vista previa
set preview_max_size 102400 # 100KB
# Colores básicos (más rápido)
colorscheme default- 1
- vcs_backend disable desactiva control de versiones (lento en SSH)
- 2
- use_preview_script false desactiva vista previa compleja
Atajos de Teclado Esenciales
Navegación
| Tecla | Acción |
|---|---|
h / j / k / l |
← ↓ ↑ → (movimiento estilo vim) |
gg |
Ir al inicio de la lista |
G |
Ir al final de la lista |
J / K |
Scroll página hacia abajo/arriba |
~ |
Ir al directorio home |
/ |
Ir a raíz del sistema |
- |
Ir al directorio anterior |
u |
Ir hacia arriba un directorio |
H / L |
Historial anterior/siguiente |
Selección y Operaciones
| Tecla | Acción |
|---|---|
Space |
Seleccionar/deseleccionar archivo |
sa |
Seleccionar todos |
si |
Invertir selección |
uv |
Deseleccionar todos |
yy |
Copiar |
dd |
Cortar |
pp |
Pegar |
dD |
Eliminar |
cw |
Renombrar |
cO |
Copiar aquí (prompt) |
cR |
Mover aquí (prompt) |
Visualización
| Tecla | Acción |
|---|---|
i |
Ciclar entre 4 modos de vista |
I |
Información detallada del archivo |
zh |
Mostrar/ocultar archivos ocultos |
zf |
Filtrar archivos (por extensión) |
z? |
Ayuda de atajos z |
Archivos
| Tecla | Acción |
|---|---|
e |
Abrir con editor ($EDITOR) |
o |
Menú de programas alternativos |
x |
Ejecutar archivo |
! / S |
Abrir shell en directorio |
/ |
Buscar archivo (regex) |
n / N |
Siguiente/anterior coincidencia |
Configuración
| Tecla | Acción |
|---|---|
: |
Comandos (:set, :cd, :open, etc.) |
m<letra> |
Crear marcador en letra |
'<letra> |
Ir a marcador |
q |
Salir de Ranger |
Laboratorio Práctico
Ejercicio 1: Navegación Básica
Objetivo: Familiarizarse con movimiento en Ranger
BASH
# 1. Abrir Ranger
1ranger
# 2. Navegar a /etc (usando h para subir, j/k para mover)
# - Presiona 'h' hasta llegar a raíz (/)
# - Presiona 'j' para mover a 'etc'
# - Presiona 'l' o Enter para entrar
# 3. Explorar archivos de configuración
# - Buscar 'passwd' (presiona /)
# - Ver preview en panel derecho
# - Presiona 'e' para ver contenido completo
# 4. Ir a /var/log
# - Presiona '/' para ir a raíz
# - Navega a 'var' → 'log'
# - Observa archivos de log- 1
- ranger abre el gestor de archivos en directorio actual
Ejercicio 2: Operaciones de Archivos
Objetivo: Practicar copiar, mover, eliminar
BASH
# 1. Crear estructura de prueba
1mkdir -p ~/ranger-lab/origen ~/ranger-lab/destino
2cd ~/ranger-lab/origen
# 2. Crear archivos de prueba
touch file1.txt file2.txt file3.log script.sh
# 3. Abrir Ranger en origen
ranger
# 4. Operaciones en Ranger:
# - Seleccionar archivo1.txt (Space)
# - Copiar (yy)
# - Navegar a destino
# - Pegar (pp)
# 5. Mover archivo
# - Seleccionar file2.txt
# - Cortar (dd)
# - Navegar a destino
# - Pegar (pp)
# 6. Renombrar
# - Seleccionar file3.log
# - Presionar 'cw'
# - Cambiar nombre a 'renamed.log'- 1
- mkdir -p crea directorios anidados (origen y destino para laboratorio)
- 2
- cd cambia al directorio origen
Ejercicio 3: Vista Previa y Visualización
Objetivo: Usar visor de archivos
BASH
# 1. Crear archivos de ejemplo
cat > test.py << 'EOF'
#!/usr/bin/env python3
# Script de prueba
for i in range(10):
print(f"Line {i}")
EOF
# 2. Abrir Ranger
ranger
# 3. Ver vista previa:
# - Navega a test.py
# - Panel derecho muestra contenido
# - Presiona 'zi' para alternar preview
# - Presiona 'e' para editar
# 4. Ver información extendida
# - Selecciona archivo
# - Presiona 'I' para info detalladaEjercicio 4: Búsqueda y Filtrado
Objetivo: Buscar y filtrar archivos
BASH
# 1. En Ranger, navega a un directorio con muchos archivos
# Ejemplo: /usr/share/doc
# 2. Búsqueda básica:
# - Presiona '/'
# - Escribe 'python'
# - Presiona Enter
# - Usa 'n' para siguiente coincidencia
# 3. Búsqueda avanzada (regex):
# - Presiona '/'
# - Escribe '.*\.py$' (archivos .py)
# - Presiona Enter
# 4. Filtrado:
# - Presiona 'zf'
# - Escribe '.log' (muestra solo .log)Ejercicio 5: Integración con Shell
Objetivo: Usar Ranger desde scripts
BASH
# 1. Crear script que usa Ranger
1cat > ~/choose-file.sh << 'EOF'
#!/bin/bash
# Script que usa Ranger para seleccionar archivo
ranger --choosefile=/tmp/choice /tmp
if [ -f /tmp/choice ]; then
file=$(cat /tmp/choice)
echo "Archivo seleccionado: $file"
file "$file" # Mostrar tipo de archivo
fi
EOF
# 2. Hacer script ejecutable
2chmod +x ~/choose-file.sh
# 3. Ejecutar script
3~/choose-file.sh- 1
- cat > archivo << ‘EOF’ crea un archivo multilinea con contenido de script
- 2
- chmod +x hace el script ejecutable (permisos de ejecución)
- 3
- ~/choose-file.sh ejecuta el script desde la carpeta home
🛠️ Troubleshooting Común
Problema 1: Vista previa no funciona
BASH
Problema 2: Ranger es lento en SSH
BASH
Problema 3: No puede copiar/pegar entre rangery shell
📚 Recursos Adicionales
- Documentación Oficial: https://ranger.github.io/
- GitHub Repository: https://github.com/ranger/ranger
- Wiki: https://github.com/ranger/ranger/wiki
- Cheat Sheet: https://github.com/ranger/ranger/wiki/VCS-Integration
✅ Checklist Final
Después de completar este anexo, deberías poder:
Última actualización: 2024-01-30
Autor: Diego Saavedra (Abacom)
Dificultad: Intermedio
Categoría: Herramientas de Terminal