LINUX

Fasd: herramienta alternativa para Autojump al sistema de archivos Linux de acceso rápido

Fasd es un refuerzo de productividad de línea de comandos que ofrece acceso rápido a archivos y directorios de Linux para shells POSIX (Interfaz de sistema operativo portátil). Es una herramienta similar a autojump, zyv que se usa para navegar por el sistema de archivos. Fasd realiza un seguimiento de los archivos y directorios a los que ha accedido, para que pueda hacer referencia a ellos rápidamente en la línea de comandos. Su nombre fasd proviene de los alias sugeridos predeterminados f (archivos), a (archivos / directorios), s (mostrar / buscar / seleccionar), d (directorios). Fasd clasifica los archivos y directorios por «frecuencia», es decir, tanto por «frecuencia» como por «actualidad». El término «frecuencia» fue acuñado por primera vez por Mozilla y utilizado en Firefox. La frecuencia es una puntuación otorgada a cada URI único en Lugares, que incluye marcadores, historial y etiquetas. Este puntaje está determinado por la cantidad de visitas, el tipo de esas visitas, qué tan recientes fueron y si el URI fue marcado como favorito o etiquetado. De manera similar, Fasd detecta inteligentemente cuándo mostrar una lista de archivos o simplemente la mejor coincidencia. Por ejemplo, cuando llama a fasd en una subcapa con algunos parámetros de búsqueda, solo devolverá la mejor coincidencia.

Si usa su shell para navegar e iniciar aplicaciones con mayor frecuencia, fasd puede ayudarlo a hacerlo de manera más eficiente, veamos cómo se puede instalar y usar en el sistema operativo CentOS 7.

Requisitos previos:

Para instalar y usar Fasd, necesita acceso al shell de su sistema operativo tipo UNIX / Linux, como aquí estamos usando CentOS 7. Vamos a conectarnos a su servidor usando privilegios de usuario root o sudo.

Instalación de Fasd en CentOS 7

El paquete Fasd está disponible en varios administradores de paquetes para instalar en cualquier distribución de Linux, mientras que podemos obtener manualmente una copia del paquete fasd disponible en Github.

Descarguemos el paquete fasd seguido de enlace para descargar el paquete fasd y colóquelo en su sistema. Luego ejecute el siguiente comando para extraer el paquete. Se proporciona un Makefile para instalar fasd y fasd.1 en los lugares deseados.

# tar -zxf clvv-fasd-1.0.1-0-g4822024.tar.gz
# cd clvv-fasd-4822024/

Para la instalación en todo el sistema, utilice el siguiente comando.

# make install

Mientras que si desea instalar fasd en alguna otra ubicación como ‘$ HOME’, use el siguiente comando o simplemente copie el archivo ‘fasd’ en cualquier lugar que desee colocar.

# PREFIX=$HOME make install

Ahora coloque las siguientes líneas en su archivo de shell ‘.bashrc’ para que fasd funcione en un shell, de modo que se deba ejecutar algún código de inicialización.

# vim .bashrc
eval "$(fasd --init auto)"

Esto configurará un enlace de comando que se ejecutará en cada comando y completará la pestaña avanzada para bash y zsh. Si desea tener más control sobre lo que entra en su entorno de shell, puede pasar un conjunto personalizado de argumentos a fasd –init. Esto aumentará ligeramente el tiempo de inicio de su shell, ya que llamar a binarios tiene una sobrecarga. Puede almacenar en caché el código de inicio fasd si desea una sobrecarga mínima.

A continuación se muestra un código de ejemplo para que bash se coloque en ‘.bashrc’.

# vim .bashrc
fasd_cache="$HOME/.fasd-init-bash"
if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install >| "$fasd_cache"
fi
source "$fasd_cache"
unset fasd_cache

Usando Fasd en CentOS 7

Después de instalar fasd por primera vez, abra algunos archivos con cualquier programa o cambie los directorios en su shell. A continuación se muestran algunas situaciones hipotéticas, en las que puede escribir el comando de la izquierda y fasd «expandirá» su comando en el lado derecho.

v def conf => vim /some/awkward/path/to/type/default.conf
j abc => cd /hell/of/a/awkward/path/to/get/to/abcdef
m movie => mplayer /whatever/whatever/whatever/awesome_movie.mp4
o eng paper => xdg-open /you/dont/remember/where/english_paper.pdf
vim `f rc lo` => vim /etc/rc.local
vim `f rc conf` => vim /etc/rc.conf

Por ejemplo, cuando llama a fasd en una subcapa con algunos parámetros de búsqueda, fasd solo devolverá la mejor coincidencia al detectar inteligentemente cuándo mostrar una lista de archivos o simplemente la mejor coincidencia.

Por defecto, Fasd viene con algunos alias útiles, que se dan a continuación.

alias a="fasd -a" # any
alias s="fasd -si" # show / search / select
alias d='fasd -d' # directory
alias f="fasd -f" # file
alias sd='fasd -sid' # interactive directory selection
alias sf="fasd -sif" # interactive file selection
alias z='fasd_cd -d' # cd, same functionality as j in autojump
alias zz='fasd_cd -d -i' # cd with interactive selection

El caso más simple, supongamos que ahora estamos en el directorio de inicio, creamos dos directorios ‘foo’ y ‘bar’ y muévete a ellos para crear los archivos con el mismo nombre.

# mkdir foo
# mkdir bar
# cd foo/
# touch foo
# touch bar
# cd ../bar/

Ahora puede usar los siguientes comandos fasd para moverse.

# z foo
# z bar

Vaya al directorio que desee y, por supuesto, también se puede utilizar la implementación de la pestaña de soporte.

fasd

Cuando ejecuta el código ‘fasd init’ o ‘source fasd’, fasd agrega un gancho que se ejecutará cada vez que ejecute un comando. El gancho escaneará los argumentos de sus comandos y determinará si alguno de ellos se refiere a archivos o directorios existentes. Si es así, fasd los agregará a la base de datos.

Utilizar una forma interactiva de saltar. Supongamos que queremos modificar ~ / foo / bar este archivo, solo necesitamos usar el siguiente comando.

~/bar # vim `f bar`

Si queremos copiar esta barra para bloquear este directorio, use el siguiente comando.

~/bar # cp `d foo`/bar .

Ahora hay dos barras en dos directorios diferentes y, si desea editar, debe especificar más información para el lote.

~ bar # vim `f foo/bar`

Uso de finalización de tabulación

Fasd viene con dos modos de finalización, uno es la finalización del modo de comando y el segundo es la finalización del modo de palabra. La finalización del modo de comando funciona en bash y zsh, mientras que la finalización del modo Word solo funciona en zsh. La finalización del modo de comando es como la finalización de cualquier otro comando. Se activa cuando presiona el tabulador en un comando fasd o sus alias. En este modo, sus consultas pueden estar separadas por un espacio. Mientras lo usa, si encuentra que el resultado de finalización sobrescribe sus consultas, escriba un espacio adicional antes de presionar la pestaña.

# vim ,rc,lo
# vim /etc/rc.local
# mv index.html d,www
# mv index.html /var/www/

Funciona con la finalización de palabras activada por cualquier argumento de línea de comando que comience con, (todos), f, (archivos), od, (directorios), o que termine con ,, (todos), ,, f (archivos) o ,, d (directorios). También hay tres widgets zle, que es fasd-complete, fasd-complete-f y fasd-complete-d, puede vincularlos a combinaciones de teclas como se muestra a continuación.

Use Cx Ca para hacer fasd-complete (archivos y directorios)

# bindkey '^X^A' fasd-complete

Use Cx Cf para hacer fasd-complete-f (solo archivos)

# bindkey '^X^F' fasd-complete-f

Use Cx Cd para hacer fasd-complete-d (solo directorios)

# bindkey '^X^D' fasd-complete-d

Fasd también puede usar algunos backends adicionales si los datos se pueden convertir al formato nativo de fasd aprovechando diferentes fuentes de archivos recientes / frecuentes. También puede definir su propio backend declarando una función con ese nombre en su archivo ‘.fasdrc’.

Ajustar Fasd

En esta última sección del artículo sobre fasd, le mostraremos cómo podemos modificar fasd para algunas variables de shell que puede establecer antes de obtener fasd.
Puede realizar los cambios necesarios en el archivo ‘$ HOME / .fasdrc’.

$_FASD_DATA

Ruta al archivo de datos fasd, predeterminado «$ HOME / .fasd».

$_FASD_BLACKLIST

Lista de cadenas en la lista negra. Los comandos que coincidan con ellos no se procesarán. El valor predeterminado es «–help».

$_FASD_SHIFT

Lista de todos los comandos que deben cambiarse, el valor predeterminado es «sudo busybox».

$_FASD_IGNORE

Lista de todos los comandos que se ignorarán, el valor predeterminado es «fasd ls echo».

$_FASD_TRACK_PWD

Fasd realiza un seguimiento predeterminado de su «$ PWD». Establezca esto en 0 para deshabilitar este comportamiento.

$_FASD_AWK

Qué awk usar. Fasd puede detectar y utilizar un awk compatible.

$_FASD_SINK

Archivo para registrar todos los STDERR, el valor predeterminado es «/ dev / null».

$_FASD_MAX

Puntaje / peso total máximo, predeterminado en 2000.

$_FASD_SHELL

Qué shell ejecutar. Algunos proyectiles funcionarán más rápido que otros. fasd se ejecuta más rápido con las variantes dash y ksh.

$_FASD_BACKENDS

Backends predeterminados.

$_FASD_RO

Si se establece en cualquier cadena no vacía, fasd no agregará ni eliminará entradas de la base de datos. Puede configurar y exportar esta variable desde la línea de comando.

$_FASD_FUZZY

Nivel de «falta de claridad» al hacer una coincidencia aproximada. Más precisamente, la cantidad de caracteres que se pueden omitir para generar una coincidencia. Establecer en vacío o 0 en
deshabilitar la coincidencia aproximada. El valor predeterminado es 2.

$_FASD_VIMINFO

Ruta al archivo .viminfo para el backend de viminfo, el valor predeterminado es «$ HOME / .viminfo»

$_FASD_RECENTLY_USED_XBEL

Ruta al archivo XDG utilizado recientemente.xbel para el backend utilizado recientemente, el valor predeterminado es «$ HOME / .local / share / recent-used.xbel»
Puede configurar «_FASD_SINK» en su .fasdrc para obtener un registro.

$_FASD_SINK="$HOME/.fasd.log"

Conclusión:

Fasd realiza un seguimiento de los archivos a los que ha accedido, para que pueda hacer referencia a ellos rápidamente en la línea de comandos. Fasd utiliza la inferencia bayesiana y la clasificación bayesiana para clasificar archivos y directorios para un conjunto de patrones de coincidencia dados. En este artículo, aprendió sobre su instalación en CentOS 7 y todo su uso posible y ajustes de configuración para que sea más útil para usted. Espero que haya disfrutado de este artículo y le haya gustado esta increíble herramienta para usar en sus actividades diarias de administración del sistema.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar