Si usas la shell fish en tu distribución GNU/Linux, estos trucos y atajos de teclados te resultarán muy útiles y quizás no los conocías

Desde que hice el cambio de shell de Bash a Fish no he vuelto atrás, salvo para scripts, aunque he de reconocer que el scripting de fish tiene algunas cosas mejores y más intuitivas que bash.
Por el blog he escrito varios artículos sobre Fish, y en este caso quiero compartir unos cuantos trucos propios de fish que te harán el trabajo en la terminal mucho más rápido y llevadero, seguro que alguno lo incorporas a tu día a día.
Ir al directorio anterior y siguiente
Para regresar y volver entre directorios que hemos visitado tenemos estas dos opciones:
Alt + ←
Para ir al directorio anteriorAlt + →
Para ir al directorio siguiente
Imaginemos que desde nuestro directorio /home vamos a estos directorios:
~/> cd Git/repositorio1
~/Git/repositorio1> cd ../repositorio2
~/Git/repositorio2>
Mediante el uso de los dos atajos de teclados anteriores, podremos desplazarnos entre los directorios visitados, sin necesidad de volver a escribir la ruta, simplemente navegando hacia adelante y atrás de una manera más rápida.
Paginador automático
En ocasiones usamos el comando cat
para ver contenido de un archivo, pero nos lo muestra entero, por lo que si es muy largo habrá partes que no podamos ver.
Para eso sirve un paginador, para poder tener el control del archivo que mostramos con cat. Para usarlo escribimos cat archivo
y pulsamos el atajo de teclado Alt + p
.
¿Qué hace este comando?
Si no sabemos exactamente lo que realiza un comando, y queremos que nos muestre una información muy básica de para qué sirve (muestra la primera línea de la página man del comando) tenemos el atajo de teclado Alt + w
Escribimos el comando y con el cursor todavía al final del comando ejecutamos el atajo de teclado.
Abre tu editor
Si escribes en una terminal echo $EDITOR
verás el editor que tienes configurado en tu sistema (en el mío es Vim ¿lo conoces?). Si alguna vez lo queremos abrir rápidamente, bastará con ejecutar Alt + e
Ejecutar el comando anterior como sudo

A veces ejecutamos como un usuario normal un comando que debería tener privilegios de superusuario. Solemos soltar un taco y tal como muestra la imagen podemos ejecutar sudo !!
Con !!
ejecutamos el último comando que hayamos ejecutado (valga la redundancia), así que le anteponemos sudo. Peeeeero si usamos fish tenemos el atajo de teclado Alt + s
que automáticamente nos antepone sudo
al comando anterior en una nueva línea para ejecutarlo. ¡Pruébalo!
¿Usas Fish y conocías estos atajos de teclado? Te aconsejo que los pruebes en tu terminal y te vayas acostumbrando a su uso, verás que alguno te será de gran utilidad en muchas tareas.
Comparte tu experiencia con fish y con estos atajos en los comentarios.

Está muy curioso lo del Alt + flecha. Una especie de historial aunque a mi me iría mejor que Alt + flecha izquierda fuera un cd ..
Curiosísimo el Alt + P para paginar el resultado. Aunque estoy más acostumbrado a poner | more o | grep ‘loquesea’
El de sudo también puede ser interesante…
Saludos!!
Hace años que tengo pillado el Alt + S como combinación para poner el salvapantallas. Y al hacer:
~/Descargas snapper list ✔ 11:42:22
Sin permisos.
~/Descargas sudo !! ✘ 1 18:59:22
[sudo] password for root:
sudo: !!: command not found
me dije… «vaya truño» y pasé de deshacer la combinación Alt + S.
Como lo has mencionado de nuevo, he probado a hacerlo en bash desde fish:
~/Descargas bash ✘ 1 3s 18:59:28
krovikan@Linux:~/Descargas> snapper list
Sin permisos.
krovikan@Linux:~/Descargas> sudo !!
sudo snapper list
# | Tipo | Pre número | Fecha | Usuario | Espacio usado | Limpieza | Descripción | Información del usuario
——+——–+————+————————–+———+—————+———-+—————————————————+————————
0 | single | | | root | | | current |
1073* | single | | sáb 12 jun 2021 10:48:46 | root | 51,36 MiB | | writable copy of #1028 openSUSE 15.2 funcionando |
1937 | pre | | mié 07 sep 2022 11:57:04 | root | 2,78 GiB | number | zypp(packagekitd) | important=yes
1938 | post | 1937 | mié 07 sep 2022 12:13:32 | root | 88,68 MiB | number | | important=yes
1946 | pre | | vie 09 sep 2022 12:22:15 | root | 2,47 MiB | number | zypp(ruby.ruby2.5) | important=yes
1947 | post | 1946 | vie 09 sep 2022 12:24:16 | root | 134,37 MiB | number | | important=yes
1975 | pre | | lun 19 sep 2022 11:24:54 | root | 574,61 MiB | number | zypp(packagekitd) | important=yes
1976 | post | 1975 | lun 19 sep 2022 11:33:43 | root | 179,00 MiB | number | | important=yes
1987 | pre | | sáb 01 oct 2022 11:42:45 | root | 3,19 MiB | number | zypp(packagekitd) | important=no
1988 | post | 1987 | sáb 01 oct 2022 11:43:05 | root | 5,07 MiB | number | | important=no
1989 | pre | | sáb 01 oct 2022 11:43:42 | root | 112,00 KiB | number | yast bootloader |
1990 | post | 1989 | sáb 01 oct 2022 11:44:47 | root | 384,00 KiB | number | |
1991 | pre | | dom 02 oct 2022 13:12:11 | root | 576,00 KiB | number | yast repositories |
1992 | post | 1991 | dom 02 oct 2022 13:13:11 | root | 528,00 KiB | number | |
krovikan@Linux:~/Descargas> exit
exit
y eso sí que ha funcionado. Muy curioso en bash y un engorro en fish si tienes la combinación pillada (sé que es cuestión de cambiarla, pero llevo años con eso para xscreensaver).
Saludos
cada cual sus «manías» 🙂
Saludos.