Fish: alias

fish.png
Solucionex
27
Nov 17

Hace unas semanas os presenté y expliqué las ventajas de fish, una terminal avanzada, pero sobre todo muy práctica. Hoy os quiero mostrar algo igual de importancia que ya teníamos en bash, pero que cambia un poco en fish: los alias.

Para quien no lo sepa, un alias no es más que un pseudocomando. Podemos definir una orden u órdenes a ejecutar renombrándolo con un nombre determinado o alias.

En bash tan sólo teníamos que editar un fichero alojado en la carpeta de nuestro usuario y escribir el alias a modo de pareja clave="valor".

En fish podemos definir el alias directamente en la terminal escribiendo:

$ alias ssh_pre='ssh solucionex@192.168.0.13'

De esta forma, cada vez que queramos conectar por ssh al entorno de preproducción, no tendríamos que escribir toda la sentencia ssh, sino que bastaría con ssh_pre. Pero este alias está en memoria y sólo nos valdrá mientras dure nuestra sesión de consola. Sin embargo podemos almacenarlo escribiendo lo siguiente:

$ funcsave ssh_pre

Esto hará que vuelque en la configuración de fish el alias que hemos creado, y a partir de este momento podremos reiniciar, que se cargarán nuestros alias sin problema. Esta función realmente lo que hace es guardar en un fichero con el nombre de "ssh_pre.fish" dentro de "~/.config/fish/functions" el alias en formato función fish. Este sería el contenido de 

function ssh_pre
ssh solucionex@192.168.1.13 $argv;
end

Como veis tenemos un parámetro al final de nuestro comando, es decir, nos permite añadir algo a nuestro alias o incluso hacer pipes.

Y una última buena noticia. Imaginad que extendemos nuestra batería de alias de ssh y tenemos definidos el de producción y preproducción de todos y cada uno de los proyectos en los que hemos ido trabajando. Sin embargo tenemos que acceder a un entorno en el que hace mucho que no trabajamos y no recordamos el nombre del alias. Podemos ir a la carpeta de funciones de fish que hemos visto anteriormente, pero si definimos los alias con un nombre decente, como por ejemplo "ssh_<entorno>_<proyecto>", podemos escribir "ssh_" o "ssh_pre_", darle dos veces al tabulador y fish nos mostrará todos los alias que empiecen por esos nombres.

Tenemos las típicas sugerencias con el tabulador del intérprete de comandos, pero también nos muestra los alias. Genial, ¿verdad? ;)