Uno de los aspectos de la comunidad de código abierto que más me emociona es la oportunidad de interactuar, aprender y compartir experiencias con personas de todos los orígenes. Durante estas interacciones, a menudo aprendo sobre nuevas ideas, mejores formas de trabajar y nuevas tecnologías y herramientas.
Algunas de estas herramientas pueden romper paradigmas y cambiar la forma de trabajar.Para mí, una de estas herramientas es fzf
un «buscador difuso» de línea de comandos desarrollado en Go.
[Cheat sheet: Old Linux commands and their modern replacements ]
Si ha visto algunos de mis otros artículos sobre Habilitar Sysadmin, probablemente sepa que soy un gran fanático del uso del entorno de línea de comandos de Linux.Este fzf
comando para mejorar drásticamente su experiencia de terminal y aumentar su productividad. fzf
Tan versátil y potente que a menudo digo que te da la magia de la línea de comandos.
Tabla de Contenidos
¿Qué es fzf?
En su forma más básica, fzf
Se utiliza como filtro, procesando texto desde la entrada estándar (stdin) y enviando selecciones coincidentes a la salida estándar (stdout). en cierto sentido, fzf
Similar a grep
Pero agrega características que lo hacen más adecuado para búsquedas interactivas, que incluyen:
- La función de búsqueda aproximada permite búsquedas aproximadas por cualquier parte de una coincidencia, en cualquier orden.
- velocidad de procesamiento súper rápida
- La selección interactiva de coincidencias permite a los usuarios seleccionar las coincidencias deseadas después del filtrado inicial.
- Selección de texto único o texto múltiple
- Vista previa del contenido del archivo
- Conjunto completo de funciones y opciones de personalización
Debido a estas características, fzf
Es una excelente opción cuando busca cualquier cosa en la terminal, crea secuencias de comandos y desarrolla pseudo-IU para programas de línea de comandos.
Cuando pienso en ello, todavía estoy asombrado por las increíbles herramientas que he podido obtener de la comunidad de código abierto.Estoy muy agradecido Cai Jungen y otros contribuyentes para que otros puedan beneficiarse de él.
[ Get the guide to installing applications on Linux. ]
instalar fzf
porque fzf
está desarrollado en Go, puede instalarlo descargando la aplicación binaria directamente desde el proyecto liberar Página web. Sin embargo, para experimentar todos sus beneficios, también debe descargar el archivo de extensión de shell, que agrega nuevas combinaciones de teclas y autocompletado a su shell. Alternativamente, puede instalar una versión del paquete que incluya todo en el repositorio de la distribución.Por ejemplo, para Fedora, utilice dnf
:
$ sudo dnf -y install fzf
También recomiendo instalar dos herramientas adicionales para mejorar tu experiencia fzf
: fd-find
una versión más rápida y mejorada de find
orden y bat
Vista previa del contenido del archivo.Para más información bat
consulte el artículo de Seth Kenlon Suelte el comando cat de Linux para bat.
Para instalar estos paquetes en Fedora use dnf
:
$ sudo dnf -y install fd-find bat
desde que tienes fzf
E instalé estos requisitos previos para ver cómo puede mejorar su experiencia de terminal.
empezar a usar fzf
primero fzf
, para ejecutarlo sin argumentos. defecto, fzf
Busca todos los archivos en el directorio actual, le permite filtrar y buscar de forma interactiva y luego imprime los resultados en la salida estándar.Por ejemplo, para buscar el archivo de configuración predeterminado de Pipewire sin conocer su ubicación, puede utilizar fzf
Desde su directorio raíz:
precaución fzf
Las coincidencias se actualizan dinámicamente a medida que escribe los términos de búsqueda en cualquier orden.
También porque fzf
Imprime selecciones en salida estándar, lo que le brinda flexibilidad ilimitada en cómo se utiliza su salida.Por ejemplo, suponga que desea editar el archivo anterior empuje. puedes usar fzf
Obtenga el nombre del archivo y páselo así:
$ vim $(fzf)
O puede usarlo para copiar el archivo a una ubicación diferente:
$ cp $(fzf) ~/.config/pipewire
Las posibilidades son infinitas, pero fzf
Agregue más detalles para mejorar aún más su productividad.
vista previa del contenido del archivo
otro bonito fzf
Una característica es la capacidad de obtener una vista previa de cada archivo mientras navega por el selector interactivo. La vista previa de los archivos durante la búsqueda le brinda una mejor oportunidad de encontrar lo que está buscando, especialmente si no está seguro de qué archivo está buscando.
Puede usar cualquier comando que desee obtener una vista previa. También puede usar scripts para hacerlo más inteligente y cambiar según el elemento seleccionado.Por ejemplo, usando bat
Para obtener una vista previa de los archivos, llame fzf
usar --preview
Banderas de línea de comando:
$ fzf --preview 'bat --color=always {}'
Para evitar tener que escribir esta opción cada vez, puede configurar la variable de entorno FZF_DEFAULT_OPTS
aplicarlo automáticamente cada vez que se ejecuta fzf
:
$ export FZF_DEFAULT_OPTS="--preview 'bat --color=always {}'"
También puede configurar esta variable de entorno en su secuencia de comandos de inicialización de shell, p. .bashrc
Para Bash, hazlo permanente.
[ Download now: A sysadmin’s guide to Bash scripting. ]
Cambiar el comando de búsqueda predeterminado
Por defecto, cuando ejecutas fzf
Sin argumentos, utiliza find
Comando para buscar archivos.Para una búsqueda más rápida y rica en funciones, puede reemplazar el comando de búsqueda predeterminado con fd
Al establecer la variable de entorno FZF_DEFAULT_COMMAND
como esto:
$ export FZF_DEFAULT_COMMAND="fd --type f"
fd
Comparar find
ignorar directorios como .git
y usa tu .gitignore
Opciones al buscar. Mejora mucho la experiencia.
Para cambios permanentes, configure esta variable de entorno en su secuencia de comandos de inicialización de shell.
usar autocompletado
otro fzf
Una función que ayuda a aumentar la productividad de la terminal es la finalización automática según el contexto.Para habilitar esta función, debe instalar fzf
Utilice el paquete o descargue el archivo de finalización correspondiente del repositorio y actívelo.
si lo instalaste fzf
Con los paquetes de Fedora, el autocompletado se habilita automáticamente. Reinicie Terminal después de la instalación para asegurarse de que cargue las opciones de autocompletar.
Para usar autocompletar, escriba **
y presiona Etiqueta antes de iniciar el comando fzf
Una lista de sugerencias sensibles al contexto.Por ejemplo, si lo usa antes de un comando que requiere un archivo, como vim
, fzf
Listar archivos.Por otro lado, si lo combinas con ssh
Después fzf
Enumere los posibles sistemas remotos a los que conectarse desde su host o perfil SSH.
$ vim **
Para SSH:
También puedes usar fzf
Autocompletar para completar variables de entorno o encontrar procesos en contexto kill
Ordenar:
Para obtener más ejemplos de cómo usar y personalizar esta característica, consulte el documento.
[ Keep your most commonly used commands handy with the Linux commands cheat sheet. ]
Use la combinación de teclas fzf para potenciar su línea de comando
usar fzf
La finalización automática o directa es excelente, pero agregar combinaciones de teclas lo hace aún mejor. Para habilitar combinaciones de teclas, obtenga el archivo apropiado para su shell.Por ejemplo, para Bash, source /usr/share/fzf/shell/key-bindings.bash
:
$ source /usr/share/fzf/shell/key-bindings.bash
También puede agregar esta línea a su archivo de inicialización de shell para que sea permanente.Si no tiene este archivo, descárguelo directamente de la página del proyecto. repositorio.
Una vez que se carga este archivo, puede usar tres combinaciones de teclas para activar rápidamente fzf
:
- Control + t: seleccionar archivo, similar a autocompletar, pero con menos pulsaciones de teclas
- Alt+C: cambia rápidamente al subdirectorio seleccionado
Por ejemplo, suponga que desea cambiar al directorio
dnsmasq.d
por debajo/etc/NetworkManager
comenzando desde el directorio raíz:
- Control+r: para la búsqueda inteligente de su historial de comandos
Este es uno de los más útiles.
fzf
solicitud. Esta combinación de teclas reemplaza la búsqueda de historial predeterminada con una búsqueda inteligente, lo que le permite recuperar comandos ejecutados anteriormente de manera más eficiente.Por ejemplo, con una búsqueda de historial estándar, debe escribir exactamente lo que está buscando o la búsqueda fallará. Es difícil encontrar comandos antiguos de esta manera.usar
fzf
Llega a donde quieras con solo unas pocas pulsaciones de teclas:
Utilice estas combinaciones de teclas y fzf
Con la búsqueda ultrarrápida, puede moverse por la línea de comandos de manera más eficiente, así como encontrar y ejecutar instantáneamente comandos anteriores. Con un poco de práctica, sentirás que tienes un nuevo superpoder.
Otras formas de usar esta poderosa herramienta
fzf
es una herramienta potente y versátil que me ha ayudado a aumentar significativamente la productividad de mi línea de comandos. Estoy feliz de poder usar una herramienta como esta.
fzf
Se puede hacer mucho más de lo que he explorado en este artículo.sigue filosofia unix Haz una cosa y hazla bien.Pero esta única cosa te permite usar fzf
utilizar diferentes formas.
En mi próximo artículo, mostraré cómo usar fzf
Se utiliza para otros fines útiles, como el filtrado de paquetes o como una pseudo-UI para scripts.También puedes personalizar fzf
Cambiar su apariencia, color, posición, etc.Si no puedes esperar, echa un vistazo al proyecto pagina wiki Obtenga más ideas y ejemplos de la comunidad.
[ No-cost online course: Red Hat Enterprise Linux technical overview. ]