¿Qué es fish?
fish es un shell de línea de comandos inteligente y fácil de usar. Sugiere comandos mientras escribes a partir de tu historial y de las completaciones, resalta la sintaxis sobre la marcha, genera completaciones con Tab a partir de las páginas de manual instaladas y prescinde de las arcanas reglas de comillas que heredaron otros shells. Todo funciona de inmediato: no hay que configurar nada para que fish resulte cómodo.
⚡ Características principales de fish
💡 Autosugerencias
Mientras escribes, fish sugiere el resto del comando a partir de tu historial y de las completaciones. Pulsa → para aceptarla.
🎨 Resaltado de sintaxis
Los comandos se colorean mientras los escribes, así una errata o una comilla sin cerrar se ve antes de pulsar Enter.
⌨️ Completaciones desde las páginas de manual
fish analiza tus páginas de manual instaladas para generar completaciones, de modo que hasta las herramientas más oscuras completan sus opciones.
🧠 Scripting sensato
Sin sorpresas por división de palabras, sin [[ ]] frente a [ ], y con listas de verdad. Los scripts se leen como se comportan.
🔍 Historial buscable
Escribe un prefijo y pulsa ↑ para recorrer solo los comandos que coinciden, con búsqueda por subcadena incluida.
🛠️ Configurable en el navegador
fish_config abre una interfaz para prompts, colores, funciones y atajos, sin arqueología de dotfiles.
apt upgrade te mantiene en la última versión.
📦 Instalación desde deb.griffo.io
Paso 1: Agregar repositorio
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatePaso 2: Instalar fish
# Instalar la última versión de fish
sudo apt install fish
# Verificar la instalación
fish --version# Instalar la última versión de fish
apt install fish
# Verificar la instalación
fish --versionPaso 3: Usar fish como tu shell
# Usa fish como shell de inicio de sesión: el paquete ya lo registró en /etc/shells
chsh -s /usr/bin/fish
# O simplemente iníciala en esta sesión
exec fish
# Ajusta el prompt, los colores y los atajos de teclado
fish_config🎯 Ejemplos de uso básico
Uso interactivo del día a día:
# Aceptar la autosugerencia en gris
→ # o Ctrl-F
# Buscar en el historial los comandos que empiezan por git
git↑
# Ir a un directorio sin escribir cd
/etc/apt
# Abrir la configuración en el navegador
fish_configScripting sin trampas:
# Las listas son listas de verdad, sin división de palabras
set files *.txt; echo (count $files) archivos
# La sustitución de comandos no necesita comillas invertidas
echo "hoy es "(date +%A)
# Los condicionales se leen con naturalidad
if test -f /etc/os-release; echo encontrado; end
# Recorrer una lista
for f in *.md; echo procesando $f; endPersonalizarlo:
# Definir una función y guardarla para la próxima vez
function ll; ls -lh $argv; end; funcsave ll
# Las abreviaturas se expanden al escribir, a diferencia de los alias
abbr -a gco git checkout
# Añadir al PATH de forma permanente, sin editar un dotfile
fish_add_path ~/.local/bin
# Definir una variable universal, compartida por todas las sesiones
set -U EDITOR nvim🔧 Combina bien con
fish es ciudadano de primera clase en el conjunto de herramientas moderno:
- starship: prompt multi-shell con soporte nativo para fish
- zoxide:
zoxide init fishy salta a directorios por frecuencia - fzf: incluye atajos de fish para historial y búsqueda de archivos
- atuin: sustituye el historial de fish por una base de datos buscable y sincronizada
- Oh My Posh: otro motor de prompts con inicializador para fish
🚀 ¿Por qué elegir deb.griffo.io?
- Debian oficial: disponible, pero congelado en la versión con la que se publicó la release
- Instalación manual: requiere una cadena de herramientas de Rust y CMake, o gestionar el binario a mano
- deb.griffo.io: última versión con actualizaciones automáticas
- ✅ Últimas funciones: las mejoras interactivas y de rendimiento más recientes
- ✅ Sin configuración manual: binarios precompilados, sin necesidad de compilar con cargo
- ✅ Actualizaciones automáticas: paquetes actualizados pocas horas después de cada versión upstream
- ✅ Paquete completo:
fish,fish_indent,fish_key_readery las páginas de manual - ✅ Sin dependencias: compilación musl estática; las funciones y completaciones van embebidas, así que no hay que instalar fish-common
- ✅ Multidistribución: funciona en Bookworm, Trixie, Forky y Sid
- ✅ Mantenimiento sencillo: comandos apt estándar para actualizar
📦 Repositorio de compilación del paquete
Los paquetes de Debian se compilan y mantienen automáticamente en este repositorio de GitHub:
- 🐟 fish-shell-debian - Compilaciones de las últimas versiones
🔗 Paquetes relacionados
También disponibles en deb.griffo.io:
- Starship - Prompt multi-shell compatible con fish de forma nativa
- zoxide - Un cd más inteligente, con inicializador para fish
- fzf - Buscador difuso con atajos para fish
- Atuin - Un historial de shell que de verdad puedes buscar