Fish: pescando en la terminal

fish.png
Solucionex
26
Sep 17

Lo admito: soy adicto a la terminal, a escribir, a programar. Ese caos sonoro cuando escribes a toda velocidad y van apareciendo letras por doquier a grandes velocidades. Y es por esto que hoy os quiero descubrir a algunos fish, y a otros que ya lo conozcan una funcionalidad que quizá no conozcan.

Fish es un shell como bash o sh, incluso más parecida a zsh, pero mejor. Al menos para mí. El motivo es muy simple: su autocompletado es brutal. Creo que todos o casi todos conocemos la opción en bash para buscar en el historial comandos que hemos utilizado previamente.

Búsqueda en historial de bash

Bien, fish lo que hace es proponeros en todo momento y según vais escribiendo un comando, el más parecido y más próximo en el tiempo por si queréis repetirlo o modificarlo. De esta forma tendremos ese feedback inmediato y podremos acceder más rápidamente a los últimos comandos saltándonos su orden de ejecución para ir al más próximo que tenga las coincidencias introducidas.

Al escribir una simple letra, ya tenemos una sugerencia:

fish sugerencia

Si queremos confirmarla tan sólo tendremos que darle a la flecha derecha:

fish sugerencia aceptada

Si estamos interesados parcialmente en la sugerencia, podemos ir aceptado palabra a palabra con alt + flecha derecha. Por ejemplo: queremos quedarnos con el comando ssh-copy-id y el nombre de usuario, pero queremos cambiar el dominio. Pues vamos dando varias veces alt + flecha derecha hasta que nos "coloree" la parte que nos interesa:

fish sugerencia parcial

No está mal, per evidentemente no es todo. Imaginemos que no nos acordamos del comando ssh-copy-id, pero sí recordamos que lo lanzamos hace poco para copiar nuestra clave pública al servidor "cronicasbelgarath.com". Pues vamos al terminal, escribimos "cronicas" y pulsamos flecha arriba:

fish busqueda

Vaya... esta no es... No me acordaba que después lo lancé también en este otro servidor. Vuelvo a darle a la fecha arriba:

fish busqueda 2

Ahora sí. En definitiva fish explota el histórico de comandos para ofrecer el último comando que coincida con lo que hayamos escrito, y todo de forma bastante atractiva según el código de colores, separando comando y argumentos, cadena de búsqueda respecto al resto, etc. Tan sólo tenéis que ver las capturas.

Aunque os hagáis una idea, es mejor que lo probéis por vosotros mismos. Podéis instalarlo vía repositorio de vuestra distro, o si usáis un mac mediante brew o usando su repo.

Además podéis utilizar "oh my fish" que te ofrecerá extender la funcionalidad de fish con aliases y addons que pueden facilitarte la vida.

Te recomiendo también leer, si no lo has hecho, esta y esta entrada para personalizar tu intérprete de comandos y que sea lo más visual y productiva posible, pues son términos que no tienen por qué estar reñidos.

Hasta la próxima!