Han pasado los días de comandos crípticos y sintaxis rígida. ¿Por qué gastar más tiempo descifrando páginas de manual que escribiendo scripts o navegando por tu sistema? Acepta el poder y la simplicidad del shell fish, tu boleto hacia una experiencia de Linux más fluida e intuitiva.
Aprende a transformar tu viaje en Linux con el shell fish, desde su interfaz amigable hasta sus amplias opciones de personalización.
¡Dale la bienvenida a flujos de trabajo simplificados y una nueva confianza en tus habilidades en Linux!
Requisitos previos
Antes de empezar, tómate un momento para asegurarte de tener cubiertos los siguientes elementos esenciales para seguir este tutorial:
- El Shell Fish está instalado en tu máquina: este tutorial utiliza fish-3.7.0, la última versión hasta la fecha de esta redacción.
- A Linux system – This tutorial uses an Ubuntu 22.04 LTS for demonstrations, but other distributions will work.
Explorando Validaciones de Comandos, Autocompletado y Sugerencias
Con el shell fish instalado, sumérgete en él para ejecutar comandos sin problemas. El shell fish ofrece retroalimentación en tiempo real y sugerencias contextuales para comandos, nombres de archivos y argumentos.
Pero primero, necesitarás acceder al shell fish antes de explorar las validaciones de comandos, autocompletado y sugerencias.
Para explorar esta función que te permite identificar y corregir errores antes incluso de ejecutarlos, lleva a cabo lo siguiente:
1. Abra una terminal y ejecute el siguiente comando fish
para acceder al shell de fish.

2. A continuación, escriba la primera letra del comando ls
para intentar listar todos los archivos en su directorio actual.
Como se muestra a continuación, la letra ‘l‘ se vuelve roja ya que el shell de fish no lo reconoce como un comando válido. Esta pista visual inmediata indica que hay algo mal con el comando.
¡Pero no se preocupe! Gracias a la sugerencia automática, la letra ‘s‘ aparece atenuada, sugiriendo el comando correcto.

3. Ahora, presione la flecha derecha o las teclas Ctrl+F para aceptar el comando ls
sugerido automáticamente.
Observe que la letra ‘l’ ha cambiado de rojo a azul porque el shell de fish ahora reconoce su comando como ls
.

Definición de Alias de Comandos en el Archivo de Configuración de Fish
Además de la retroalimentación en tiempo real y las sugerencias contextualmente conscientes, fish ofrece una forma poderosa y flexible de personalizar su entorno de línea de comandos: el archivo de configuración de fish. A diferencia de otros shells que pueden usar múltiples archivos de configuración, fish principalmente utiliza un solo archivo llamado config.fish ubicado en el directorio ~/.config/fish/.
Para ver cómo afectan las configuraciones al shell de fish, comience definiendo alias de comandos de la siguiente manera:
1. Abra el archivo de configuración de fish usando su editor de código o texto preferido, como nano
o vim
, pero este tutorial utiliza el primero.
Una vez abierto, verás el contenido inicial del archivo de configuración de la shell fish, que puede contener configuraciones predeterminadas o estar relativamente vacío. Este estado inicial depende de si tú o el proceso de configuración de tu sistema han agregado configuraciones anteriormente.
El archivo podría incluir solo comentarios o bloques condicionales básicos para nuevas instalaciones, como el siguiente.

2. Dentro del bloque if
, agrega la siguiente function
, guarda los cambios y cierra el editor.
En este punto, estás creando configuraciones personalizadas en el archivo de configuración de fish, y esta función define un alias (c
) para el comando clear
.
? Nota: Cada función definida tiene un archivo .fish correspondiente en el directorio ~/.config/fish/functions/ (es decir, c.fish).

clear
command3. Ejecuta el siguiente comando para source
el archivo de configuración (config.fish
).
Este comando no muestra salida en la terminal, pero aplica los cambios de configuración a tu sesión actual.
? Este archivo de configuración de fish se ejecuta automáticamente cada vez que se inicia una nueva sesión de fish y es el lugar perfecto para definir personalizaciones de la shell.
4. Posteriormente, escribe c
en el indicador para verificar tus cambios.
Observa cómo la letra ‘c’ se vuelve azul ya que la shell de fish la reconoce como el comando clear
. Este comportamiento indica un cambio exitoso en la configuración de fish.
¿Ves cómo la letra ‘c’ se vuelve azul? Ese cambio se debe a que la shell de fish reconoce la letra ‘c’ como el comando clear
. Este comportamiento señala una actualización exitosa en tu configuración de fish.
Ahora, ¿por qué no configurar algunos alias más para esos confiables comandos a los que sigues recurriendo cada vez que te apetece?

clear
command worksPersonalización del Prompt de la Shell de Fish
Además de configurar alias para operaciones más suaves, fish te da el poder de personalizar tu indicador, como agregar un toque personal a tu shell. En lugar de largas rutas de directorio, disfruta de un indicador más limpio y organizado.
Para personalizar el indicador de la shell de fish, ejecuta las siguientes acciones:
1. Abre el archivo de configuración de fish (~/.config/fish/config.fish) y agrega la siguiente función.
Esta función personaliza tu indicador de la shell de fish para mostrar (echo
) un signo de dólar ($
) seguido de un espacio.

2. Guarda los cambios en el archivo de configuración de fish y sale del editor.
3. Ahora, source
el archivo de configuración para aplicar tus cambios.
Una vez que lo hayas sourceado, verás los cambios en el indicador como en la siguiente captura de pantalla.

Perdurando Cambios entre Sesiones
Has visto cómo crear personalizaciones en el shell de fish. Pero hay algo que tener en cuenta: Estas configuraciones solo están disponibles en la sesión actual.
¿Qué sucede una vez que cierras la sesión actual y abres una nueva? ¡Puf! ¡Todas tus configuraciones meticulosamente elaboradas se han ido!—qué lástima, ¿verdad? Pero no temas, aún hay esperanza. ¡Deja que el comando funcsave
rescate tus configuraciones del olvido!
Para persistir tus configuraciones entre sesiones, procede con lo siguiente:
1. Abre el archivo de configuración de fish, y añade el comando funcsave
a cada function
junto con el nombre de la función, así:

funcsave
command to persist functions across sessions2. Guarda tus cambios, y cierra el editor y la terminal.
3. Abre una nueva sesión de terminal, y ejecuta el comando fish
a continuación para acceder al shell de fish
Si los comandos funcsave
que añadiste funcionan para persistir tus configuraciones, verás mensajes como los siguientes.

Configuración y Persistencia de Variables de Entorno
Aunque las funciones de persistencia son geniales, gestionar valores accesibles globalmente lleva la escritura de scripts de shell a otro nivel: establecer variables de entorno. A diferencia de los shells tradicionales que dependen de export
, fish utiliza set
con opciones para controlar el alcance de la variable y el comportamiento de exportación.
Pero hay un truco, ¿sabes? ¡Ah, lo adivinaste bien! Una variable establecida mediante el comando set
en la terminal solo es accesible en la sesión actual.
Para establecer y persistir variables de entorno, la bandera -gx
será útil de la siguiente manera:
1. Agrega el siguiente comando para set
la variable MY_VARIABLE
en el archivo de configuración de fish como global. A continuación se muestra cómo funciona la bandera -gx
:
-g
– Hace que la variable sea global, accesible desde cualquier ámbito dentro del mismo entorno de usuario.-x
– Exporta la variable, haciéndola disponible para cualquier comando externo o programas lanzados desde fish.

2. Guarda los cambios de configuración, luego cierra el editor y la terminal.
3. Abre una nueva sesión de terminal, accede al shell de fish y ejecuta el siguiente comando para confirmar los cambios.
La salida a continuación confirma que los cambios han surtido efecto en todas las sesiones.

4. Una vez confirmado, añade el siguiente comando set
al archivo de configuración de fish, guarda los cambios y cierra el editor.
Este comando hace que la variable MY_UNIVERSAL_VARIABLE
sea global en todas las sesiones, incluso después de reinicios.
Observa cómo funciona la bandera -Ux
a continuación:
-U
– Hace que la variableMY_UNIVERSAL_VARIABLE
sea universal, asegurando que se comparta en todas las sesiones actuales y futuras del terminal, incluyendo las de diferentes usuarios.-x
– La variable se exporta a los procesos secundarios, haciéndola accesible para cualquier comando o script invocado desde la sesión actual.

5. Abre una nueva sesión de terminal, accede al shell de fish y ejecuta el comando echo
a continuación para verificar los cambios.
Si todo sale bien, tendrás la siguiente salida, indicando que los cambios han surtido efecto en todas las sesiones.

? Más allá del archivo de configuración de fish, aprovecha
fish_config
en el terminal para personalizaciones rápidas y automáticas. Este comando abre una interfaz web en tu navegador, permitiendo ajustes rápidos, modificaciones de configuraciones y gestión de funciones y variables de forma amigable para el usuario.
Gestionando complementos de Fish con el gestor de paquetes Fisher
La terminal de peces es impresionante por sí sola, ¿verdad? Pero ¿adivina qué? Cuando comienzas a integrar complementos, se vuelve aún más potente. Estos complementos amplían las capacidades de la terminal de peces, introduciendo nuevos comandos, utilidades e integraciones para mejorar significativamente tu experiencia en la línea de comandos.
Un buen ejemplo es Fisher, un gestor de paquetes diseñado para la terminal de peces. Este complemento está construido teniendo en cuenta el rendimiento y la simplicidad, y es ligero.
? Fisher es ligero en la gestión de complementos de la terminal de peces y no se puede comparar directamente con los gestores de paquetes a nivel de sistema. Esta distinción es evidente en cuanto al tamaño y la complejidad de los paquetes que gestiona.
Para gestionar los complementos de la terminal de peces, primero debes instalar Fisher siguiendo los pasos detallados a continuación:
Abre tu terminal, accede a la terminal de peces y ejecuta el siguiente comando para descargar e instalar Fisher. Este comando obtiene el script de instalación de Fisher y lo redirige a source
, que ejecuta el script dentro de la sesión actual de la terminal de peces mediante curl
.
Una vez instalado, verás la siguiente salida.

Ahora, ejecuta el siguiente comando fisher
a continuación para confirmar la instalación, viendo la --version
actualmente instalada de Fisher en tu sistema.

Instalando el complemento GitNow
Ahora que tienes Fisher funcionando, ¿qué sigue? ¿Qué tal si fortaleces tu shell de Fish con algunos plugins geniales? GitNow, por ejemplo, es un conjunto de herramientas que potencia tu flujo de trabajo de Git dentro de la shell de Fish, lo cual resulta tentador.
GitNow ofrece comandos simplificados para tareas rutinarias de Git, mejorando la productividad y simplificando tu rutina de comandos de Git.
Para instalar GitNow usando el gestor de paquetes Fisher, sigue estos pasos:
1. En tu shell de Fish, ejecuta el siguiente comando fisher
para instalar
el plugin de GitNow (joseluisq/gitnow
).
Este comando le indica a Fisher que obtenga e integre GitNow en tu configuración de Fish, haciendo que su conjunto de atajos de Git estén disponibles de inmediato.

2. Una vez instalado, ejecuta el comando gitnow
a continuación para confirmar que GitNow está instalado correctamente.
Este comando muestra la versión actualmente instalada de GitNow, pero solo si los comandos de GitNow son reconocidos en tu shell.

3. Por último, ejecuta este comando fisher
para listar
todos los plugins que Fisher gestiona, incluido GitNow.
A continuación, puedes ver el plugin de GitNow y el propio plugin de Fisher.

Eliminación de Plugins de Fish Shell
¿Tu shell de Fish está ahogada en plugins? ¿Como si tuvieras que ordenar el desorden para encontrar lo que necesitas? Ordena tu entorno de shell de Fish eliminando los plugins innecesarios.
Para eliminar un complemento gestionado por Fisher en tu shell de fish, sigue estos pasos:
1. Ejecuta el siguiente comando para listar
todos los complementos instalados actualmente.
Escoge uno de la lista que deseas eliminar.

2. A continuación, ejecuta el comando fisher remove
a continuación, seguido del nombre del complemento (joseluisq/gitnow
) para eliminarlo.
Este comando indica a Fisher desinstalar el complemento GitNow de tu entorno de shell de fish.

3. Ahora, ejecuta el mismo comando fisher list
para confirmar que el complemento GitNow se ha eliminado correctamente.
El complemento GitNow ya no debería aparecer en la lista de complementos instalados.

Desinstalación del Gestor de Paquetes Fisher
Como has visto, el gestor de paquetes Fisher es realmente útil. Pero desinstalarlo puede ser tu mejor opción si te encuentras insatisfecho o tienes problemas con Fisher.
Para desinstalar Fisher completamente de tu shell de fish, sigue los siguientes pasos:
Ejecuta el comando a continuación para listar
y eliminar
fisher
y todos los complementos instalados mediante Fisher.

Alternativamente, ejecuta el siguiente comando para eliminar
solo fisher
en sí mismo.

Explorando el Gestor de Paquetes Oh My Fish
Cuando ya estás navegando con Fisher, ¿por qué considerar Oh My Fish? Ya has experimentado el poder de los complementos de la concha de pescado con Fisher. Pero aquí está el truco: este marco abre un nuevo ámbito de personalización para la concha de pescado, ofreciendo una extensa colección de temas y complementos.
Para ver lo que Oh My Fish tiene reservado para ti, primero instala este gestor de paquetes con lo siguiente:
Ejecuta el siguiente comando curl
para descargar y ejecutar el script de instalación de Oh My Fish (https://get.oh-my.fish
) dentro de la concha fish
.
Si tienes éxito, tendrás una salida similar a la siguiente.

Una vez instalado, ejecuta el siguiente comando omf
para verificar la versión instalada de Oh My Fish.
A successful response, as shown below, indicates that Oh My Fish is ready and waiting to transform your fish shell experience.

Personalización del entorno con temas de Oh My Fish
¿Estás cansado del aspecto habitual de la concha de pescado? ¿Por qué no añadir un toque de personalidad? Dale a tu entorno de concha de pescado un cambio de imagen con temas frescos y personalizados de Oh My Fish.
Para personalizar tu entorno de concha de pescado, debes instalar temas con estos pasos:
1. Abre el archivo de configuración de la concha de pescado y elimina la función fish_prompt
que define cómo se muestra tu indicador. Al hacerlo, te aseguras de que el indicador personalizado que has establecido no entre en conflicto o anule los temas proporcionados por Oh My Fish.
? Los temas vienen con indicaciones únicas cruciales para su apariencia y función. Deshabilitar tu indicación personalizada (
fish_prompt
) asegura que el tema de Oh My Fish elegido se integre completamente en el diseño y las características de tu shell de fish.
2. A continuación, elimina (rm
) el archivo ~/.config/fish/functions/fish_prompt.fish
. Este comando no produce ninguna salida, pero al eliminar este archivo aseguras que la shell de fish vuelva a su indicación predeterminada.
3. Ejecuta este comando source
para que los cambios en el archivo de configuración de fish surtan efecto.

4. Ahora, ejecuta el siguiente comando omf
para descubrir el tema perfecto para tu shell de fish.
Elige un tema que desees integrar en la shell de fish (por ejemplo, cbjohnson).
? Visita el repositorio oficial de GitHub para ver cómo luce cada tema antes de instalarlo.

? Mejora tu shell de fish con complementos ejecutando el siguiente comando para instalar plugins. Visita el repositorio de GitHub de OMF para ver una lista de plugins para instalar.
omf install <nombre_del_plugin>
5. Después, ejecuta el siguiente comando para instalar
el tema que elegiste en el paso cuatro (cbjohnson
).
Una vez instalado, tu indicador cambia inmediatamente, como se muestra a continuación.

? Consejo: Cambia rápidamente entre temas cuando tengas dos o más ejecutando el siguiente comando.
omf theme <nombre_del_tema>
Desinstalación de Oh My Fish
Oh My Fish es una joya para mejorar la atmósfera de tu terminal. Pero si alguna vez deseas un cambio de escenario o probar algo nuevo, desinstalar Oh My Fish le dará a tu shell de fish un nuevo comienzo.
Para desinstalar Oh My Fish, sigue los siguientes pasos:
1. Ejecuta los siguientes comandos rm
para eliminar todos los archivos relacionados con Oh My Fish.
Una vez eliminados, verás que desaparece el tema que tenías instalado inicialmente.

2. A continuación, ejecuta cada uno de los siguientes comandos para eliminar más archivos relacionados con Oh My Fish.
Estos comandos no tienen salida, pero al eliminar estos archivos te aseguras de que se eliminen todos los restos de Oh My Fish de tu sistema.
3. Ahora, ejecuta el siguiente comando omf
para verificar la eliminación.
Verás un error como el siguiente, que indica que el comando omf
no se encuentra y que Oh My Fish ha sido desinstalado por completo.

Establecer Fish como la Shell Predeterminada
Si has disfrutado usando la shell de fish para mejorar tu experiencia en Linux, ¿por qué no configurarla como tu shell predeterminada? De esta manera, te ahorras el trabajo de cambiar cada vez que abras una nueva terminal.
Para establecer fish como tu shell predeterminada, sigue estos pasos:
1. Ejecute el siguiente comando para encontrar la ruta de which
donde se encuentra la shell fish
.
Copie la ruta al portapapeles, ya que la necesitará en los siguientes pasos.

2. A continuación, ejecute el siguiente comando para agregar fish a la lista de shells aceptables en /etc/shells
.

3. Por último, ejecute el comando chsh
a continuación para cambiar su shell predeterminada a fish (/usr/bin/fish
).
Cuando reinicie su máquina, tendrá fish como su shell predeterminada.

? Consejo: Cambie de nuevo de fish a otra shell como Bash como su predeterminada repitiendo todos los pasos de esta sección. Asegúrese de especificar la ruta a Bash en los pasos dos y tres, luego reinicie su máquina para que se apliquen los cambios.
Conclusión
A lo largo de este tutorial, has profundizado en la esencia de la shell fish, descubriendo sus potentes características y opciones personalizables. Desde definir alias hasta personalizar indicadores y persistir variables de entorno hasta administrar complementos, la shell fish ha sido tu fiel compañera.
Has obtenido conocimientos sobre cómo transformar tu experiencia en Linux con el gestor de paquetes Oh My Fish. Además, has aprendido cómo descubrir e instalar fácilmente nuevos complementos y temas, expandiendo la funcionalidad y estética de tu entorno de shell fish.
Ahora que has explorado los conceptos básicos del shell de pescado, sumérgete más profundamente y desbloquea todo su potencial. ¿Por qué no experimentar con indicadores personalizados como Powerline o Starship para darle a tu shell un toque personalizado?