Fish, una línea de comandos inteligente y fácil de usar

Fish logo

En el siguiente artículo vamos a echar un vistazo a Fish. Este nombre es un acrónimo de friendly interactive shell. Se trata de una shell bien equipada, inteligente y fácil de usar para sistemas tipo Unix. Viene con muchas características importantes, como autosugestión, resaltado de sintaxis, historial de búsqueda (como CTRL+R en Bash), funcionalidad de búsqueda inteligente, compatibilidad con color VGA, configuración basada en web, finalizaciones de página de manual y muchas otras listas para utilizar.

Esta shell solo tendremos que instalarla para comenzar a usarla en poco tiempo. Olvidate de configuraciones complicadas y de instalar add-ons o plugins extra. En este artículo, vamos a ver cómo instalar y utilizar Fish shell en Ubuntu, aun que está disponible para diferentes sistemas Gnu/Linux. Podrás saber más en la página web del proyecto.

Instalar Fish

A pesar de ser una shell muy fácil de utilizar y rico en funciones, no está incluido en los repositorios predeterminados de la mayoría de las distribuciones Gnu/Linux. Está disponible en los repositorios oficiales de muy pocas distribuciones de Gnu/Linux, como Arch Linux, Gentoo, NixOS y Ubuntu. En el siguiente artículo yo voy a probar este shell sobre Ubuntu 17.10. Para instalarla solo hay que abrir una terminal (Ctrl+Alt+T) y escribir en ella:

sudo apt-get update && sudo apt-get install fish

Uso de Fish

Para cambiar a Fish desde nuestra terminal (Ctrl+Alt+T) predeterminada, solo tendremos que escribir lo siguiente:

fish

Puede encontrar la configuración Fish predeterminada en ~/.config/fish/config.fish. Si no existe, solo tendremos que crearlo.

Sugerencias automáticas

Una vez iniciada esta shell, cuando escribimos un comando, automáticamente sugiere un comando en un color gris claro. Si escribes las primeras letras de un comando Gnu/Linux y presionas la tecla Tab para autocompletar el comando si hay más posibilidades, las listará.

sugerencias automáticas Fish

Podremos seleccionar los comandos enumerados de la lista utilizando las teclas de flecha arriba / abajo. Después de elegir el comando que queremos ejecutar, solo tendremos presionar ENTER para ejecutarlo.

Como ya sabemos, hacemos la búsqueda inversa presionando (Ctrl+R) para buscar comandos en el historial del shell Bash. Pero esto no es necesario con esta shell. Simplemente tendremos que escribir las primeras letras de un comando y eligir el comando de la lista.

Búsqueda inteligente

También podemos hacer una búsqueda inteligente para encontrar un comando, archivo o directorio específico. Por ejemplo, si escribimos la subcadena de un comando, después solo tenemos que presionar la tecla de la flecha hacia abajo para escribir lo que queremos buscar.

Resaltado de sintaxis

Vamos a notar el resaltado de sintaxis al escribir un comando. Podremos ver la diferencia en las capturas de pantalla siguientes cuando escribo el mismo comando en Bash y Fish.

resaltado sintaxis bash

Bash

resaltado sintaxis fish

Fish

Como se puede ver, «sudo» ha sido resaltado en Fish. Además, mostrarás los comandos no válidos en color rojo de forma predeterminada.

Configuración basada en web

Esta es otra característica interesante. Vamos a poder configurar nuestros colores, cambiar el indicador Fish y ver funciones, variables, historial, enlaces de teclas, todo desde una página web.

Para iniciar la interfaz de configuración web, simplemente tendremos que escribir:

configuración web fish

fish_config

Terminaciones programables

Bash y otras shells admiten terminaciones programables, pero solo esta aplicación las genera automáticamente al analizar las páginas man instaladas. Para hacerlo, ejecuta:

fish terminaciones programables

fish_update_completions

Deshabilitar saludo

De forma predeterminada, esta shell nos mostrará un saludo al incio (Welcome to fish, the friendly interactive shell). Si no queremos que aparezca este mensaje de saludo, podremos deshabilitarlo. Para hacerlo, tendremos que editar el archivo de configuración:

vi ~/.config/fish/config.fish

Una vez en el archivo agregaremos la siguiente línea:

set -g -x fish_greeting ' '

Si en lugar de deshabilitar el saludo preferimos personalizarlo, lo haremos añadiendo el mensaje en la línea que añadimos al archivo

set -g -x fish_greeting 'Bienvenid@ usuario'

Obteniendo ayuda

Para abrir la página de documentación de Fish en nuestro navegador web predeterminado desde la terminal, simplemente escribe:

ayuda fish web

help

La documentación oficial se abrirá en nuestro navegador predeterminado. Además, podremos usar páginas man para mostrar la sección de ayuda de cualquier comando.

Establecer Fish como shell predeterminado

Si esta shell te ha gustado, puedes configurarla para que sea tu shell predeterminada. Para hacerlo, utiliza el comando chsh:

chsh -s /usr/bin/fish

Aquí, /usr/bin/fish es el camino hacia la ruta de Fish. Si no conoces la ruta correcta, el siguiente comando te será de ayuda:

which fish

Al terminar, cierra sesión y vuelve a iniciar la sesión para utilizar el nuevo shell predeterminado.

Recuerda que algunos scripts escritos para Bash pueden no ser totalmente compatibles con Fish.

En el caso de querer volver a Bash, simplemente ejecuta:

bash

Si quieres Bash como tu shell predeterminado de forma permanente, ejecuta:

chsh -s /bin/bash

Y, eso es todo por ahora. Con lo que aquí has leído, es posible que tengas ya una idea básica sobre lo que podrás hacer con esta shell. Si estás buscando alternativas de Bash, esta podría ser una buena opción.


Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Jahir dijo

    Como puedo limpiar el autocompletado? Escribi rm 11, luego le di enter, y queria borrar varios archivos que empiezan por el numero 1, y al volver a poner rm me sale el autocompletado con el numero 11, como limpio eso?

    1.    Nidea dijo

      Desde la web de configuración con el comando `fish_config`
      Hay un apartado que es el histórico de comandos. No he probado pero seguramente los obtenga de `history`, imagino que si lo borras de un sitio lo borrará del otro.

  2.   Nidea dijo

    ¿Como se configuran los alias?