Hay dos cosas que nadie te cuenta cuando empiezas a utilizar el terminal de Linux, la línea de comandos: primero, que debes utilizar Crtl + R para acceder al historial de comandos que has ido escribiendo, y segundo, que deberías instalar un pequeño programa llamado fzf para filtrar todos esos resultados en una ventana en la propia Terminal. No te das cuenta de todo el tiempo que te van a ahorrar estos dos trucos hasta que los has probado.
El atajo de teclado que deberías usar: CRTL + R
Todos empezamos en la línea de comandos tecleando una y otra vez las mismas órdenes. Luego nos damos cuenta de que con las flechas de dirección del teclado puedes navegar por esos comandos. Y finalmente alguien nos comenta que deberías usar el atajo de teclado CRL + R para recuperar todos esos comandos. Todos hemos pasado por ello.
¿Qué puedes hacer con CRTL + R?
- Buscar linealmente en el historial
- Solo muestra un resultado a la vez
- No puedes ver el contexto
- Es lento para historiales grandes
Y de pronto alguien nos presenta fzf en combinación con CRTL + R
Tu terminal con FZF (Fuzzy Finder)
En mi caso, lo he instalado en Linux Mint:
sudo apt install fzf
Pero puedes instalar en otras distros como Fedora con:
sudo dnf install fzf
También en macOS con Homebrew:
brew install fzf
Tienes todas las referencias para diferentes métodos de instalación en el GitHub oficial: https://github.com/junegunn/fzf (también funciona en Windows).
¿Y ya está? Ya está instalado, pero para que funcione en tu shell tienes que ejecutar el siguiente comando:
- Linux (si usas la terminal en bash): eval «$(fzf –bash)»
- macOS (si usas la terminal ZSH): source <(fzf –zsh)
- Si usas fish: fzf –fish | source
¡Ojo! También se puede integrar con VIM (si usas wim-plug):
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
¿Cómo usas fzf?
Yo lo suelo utilizar en el terminal. Por ejemplo: quiero buscar todos los comandos relacionados con Docker que he utilizado. Presiono CRTL + R, pongo Docker y automáticamente aparecen los comandos relacionados en la parte superior. Mira la imagen:

Y ahora puedes navegar con las flechas de dirección de manera visual por todos esos resultados. Esta opción es mucho más rápida que usar el método tradicional (de manera lineal).
También puedes usar el atajo CRTL + T para listar todas las carpetas y archivos del directorio actual, algo que puede ser muy útil para buscar algo determinado:

¿Teclas y atajos que puedes usar en fzf?
- CTRL-K / CTRL-J (o CTRL-P / CTRL-N) para mover el cursor hacia arriba y hacia abajo.
- Tecla Intro para seleccionar el elemento, CTRL-C / CTRL-G / ESC para salir.
- En modo de selección múltiple (-m), TAB y Mayús-TAB para marcar varios elementos.
También puedes usar el ratón para el desplazamiento y el doble clic para seleccionar.
¿Puede configurar fzf? Claro, tienes varias opciones. Te comento solo dos:
#fzf comenzará debajo del cursor con la altura especificada
fzf --height 40%
#Puedes comenzar con uno de los estilos predefinidos (default, full, o minimal) utilizando la opción --style.
fzf --style full \
--preview 'fzf-preview.sh {}' --bind 'focus:transform-header:file --brief {}'
- En https://github.com/junegunn/fzf/wiki/Configuring-shell-key-bindings tienes más trucos que merece la pena consultar.
¿Quieres conocer a fondo todo lo que puedes hacer? El comando man es tu amigo:
fzf --man
man fzf
¿No te convence? Lo puedes desinstalar con estos comandos dependiendo de tu sistema:
- sudo apt remove fzf
- sudo dnf remove fzf
- brew uninstall fzf
Conclusión
¿Te he descubierto un mundo nuevo? A todos nos ha pasado. Nos peleamos usando la línea de comandos de Linux, pero con CRTL + R y fzf, esa fricción que sentimos por usar la terminal va a desaparecer en poco tiempo. Todo lo que hagas va a ser ejecutado más rápidamente. No vas a querer usar la GUI nunca más.
fzf multiplica la eficiencia de Ctrl+R, hace la búsqueda de comandos más visual y te va a ahorrar mucho tiempo si te dedicas a la programación. Junto con Fastfetch, es de esos programas que te alegran el día… y tú sin saberlo.
- Te puede interesar: Qué programas deberías instalar en Linux (Ubuntu).
Resumiendo:
Característica | Ctrl+R tradicional | Ctrl+R + fzf |
---|---|---|
Velocidad | Lenta | Rápida |
Visualización | Un comando | Lista completa |
Búsqueda | Exacta | Difusa |
Interfaz | Línea de comandos | Interactiva |
Navegación | Flechas | Selección visual |
Productividad | Baja | Alta |
Facilidad de uso | Media | Muy fácil |
Personalización | Limitada | Extensible |
Referencias: