Me considero una persona curiosa y siempre estoy dispuesto a aprender cosas nuevas. En mi día a día es imprescindible la consola de comandos o terminal, como la queráis llamar. He tenido entre mis favoritas a Bash, Ksh o Zsh, dependiendo del momento. Pero en esta ocasión os quiero hablar de la shell Fish, con la que llevo un tiempo trabajando.

Se trata de una shell de línea de comandos que busca ser inteligente y fácil de usar. Está en boga últimamente, sobre todo en la comunidad de desarrolladores, porque facilita mucho el trabajo. Incorpora cosas como el resaltado de sintaxis o las sugerencias automáticas a medida, cosas realmente útiles.

A diferencia de las otras shell que he mencionado en el primer párrafo, Fish no sigue el estándar POSIX, aunque se le acerca bastante. 

Como no podía ser de otra manera es software libre, utiliza una licencia GNU GPL en su versión 2. Se puede consultar la licencia en este enlace.

Pero veamos un poco más al detalle sus principales características:

  • Una interfaz de usuario extensible: Utiliza el resaltado de sintaxis, sugerencias automáticas, finalización de pestañas y listas de selección, que se pueden navegar y filtrar.
  • No necesita configuración: Está diseñada para usarse de inmediato, sin requerir una configuración extensa y complicada.
  • Creación de guiones fáciles: Se pueden agregar nuevas funcionalidades sobre la marcha. Su sintaxis es fácil de aprender y usar.

La mejor manera de enseñar es hacer, así que veamos cómo se utiliza y algunos ejemplos. Voy a utilizar mi portátil Toshiba Satellite del 2010, con sistema operativo POP!_OS.

Instalación de Fish y primeros pasos

En sistemas GNU/Linux su instalación es realmente fácil. En mi caso es tan simple como escribir una línea:

sudo apt install fish

Para utilizarlo una vez instalado debemos escribir «fish«

Aspecto de Fish.

Si queremos que sea nuestra shell por defecto, debemos saber primero dónde tenemos ubicado el binario del programa en nuestro sistema:

cat /etc/shell | grep -i fish

O bien, que es más elegante:

whereis fish

También podemos usar este comando:

which fish

Una vez hecho esto, debemos escribir y ejecutar la siguiente línea:

chsh -s /usr/bin/fish

De esta manera, ya tendremos seleccionada Fish como shell por defecto.

En un primer vistazo veremos algo similar a esta imagen:

El típico hola mundo con Fish.

Ejemplos de uso de Fish

Las mejores sugerencias

Ya he comentado antes que una de sus principales ventajas es que nos va ofreciendo los comandos o parámetros a utilizar. Para lograrlo solo hemos de escribir las primeras letras del comando y pulsar la tecla del tabulador.

En el caso de los comandos:

Sugerencias de comandos.

O en el caso de los parámetros:

Sugerencia de parámetros.

Podemos seleccionar entre las opciones que nos ofrecen, utilizando las fechas del teclado, para más tarde utilizar la tecla “ENTER” sobre la selección.

En rojo si el comando o el parámetro no existe

Tal y como si fuese un semáforo, coloreará en rojo el comando o parámetro cuando este no esté bien escrito o le falte alguna letra.

Uso de atajos de teclado

Otra de las grandes ventajas de Fish es el uso de los atajos de teclado. Entre los más destacados se encuentran:

  • Ctrl+Shift+C para copiar.
  • Ctrl+Shift+V para pegar.
  • Ctrl+A lleva el cursor al inicio de la línea de comandos.
  • Ctrl+E lleva el cursor al final de la línea de comandos.
  • Ctrl+W borra la palabra justo antes del cursor.
  • Ctrl+Z suspende la ejecución del proceso que se está ejecutando.
  • Ctrl+Shift+F busca alguna palabra en la pantalla de la terminal.
  • Ctrl+Shift+J divide la pantalla del terminal de forma vertical.
  • Ctrl+Shift+H divide la pantalla del terminal de forma horizontal.

Si queréis consultar sobre atajos de teclado os recomiendo esta página.

Configuración basada en Web

Si queremos modificar el aspecto de la terminal como, por ejemplo, los colores, el indicador, consultar sus funciones, variables o historial, entre otros, lo podemos hacer iniciando la interfaz de configuración, vía Web, escribiendo «fish_config» en la consola de comandos.

Aspecto de la configuración vía Web de Fish.

Conclusiones

Desde mi punto de vista, Fish cumple con la mayoría de mis necesidades diarias. Y, en mi caso particular, que vengo de utilizar otras shell como Bash o Ksh, es bastante sencillo dar el salto a Fish. De hecho, si vienes de Bash, puedes consultar esta magnífica guía que tiene como intención facilitar la migración entre ambas shell

Quizás es que me hago mayor, pero se agradece, y mucho, su facilidad de uso y lo sencillo que es modificar su configuración, aunque la que tiene por defecto es más que suficiente.

Aunque Fish está pensado para las máquinas de los años 90 (guiño-guiño, codo-codo), la verdad es que es un regalo en toda regla para las nuevas generaciones (y no tan nuevas) de desarrolladores y por qué no, también para administradores de sistemas. Al final, es ideal para toda persona que no tiene la consola de comandos como un fin sino, más bien, como una herramienta para lograr un fin, junto a otro montón de partes.


Fuentes consultadas

Para realizar esta entrada he utilizado únicamente documentación oficial ubicada en su sitio web, que incluye:

Tutorial – Fishshell.com.

Documentación – Fishshell.com.


Derechos de la imagen de portada: Imagen de GLady en Pixabay.

3.8 4 votos
Article Rating
Subscribe
Notificarme de
guest

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

3 Comments
más antiguo
más nuevo más votado
Reacciones en línea
Ver todos los comentarios
victorhck

La he utilizado mucho tiempo!
Pero preferí usar zsh con ohmyzsh!
Incorpora un gran arsenal de buen material que la hace igual de «amigable» que fish.

Volver a Bash sin autocompletado, resaltado de sintaxis, etc se hace duro!! 🙂

Saludos!!

Duncan

Yo también he probado otras shell y aunque la consabida bash está por todos lados si quieres copiar scripts o comandos, lo que implica a veces adaptarlos, pero me quedo con fish. Me encanta los colores diferenciados entre comandos y parámetros aunque no doy con la combinación perfecta de colores…