Archivo de la etiqueta: shell

FZF: El buscador fuzzy para gnu/linux

Puede que sea ya agua pasada o no este de moda, pero para quitarme jaquecas al buscar en el historial de comandos porque muchas recuerdo el comando por el medio y no se como empezaba y además «el buscador clásico» solo ofrece una alternativa a la vista.

Pues recordé el famoso fuzzy search (que por desgracia lo use en el asqueroso pycharm, mierda puta para hacer desarrolladores blandengues y dependientes de software privativo) y recordé que había fzf (picado en go pero bueno dicen que hay alternativa en rust).

Encontré este genial articulo de un tal Alejandro Amaral sobre el fzf con el título de: FZF – EL buscador *nix.

Al que añado mi salsa personal:

  • para instalarlo, por suerte ya esta en casi todas las distribuciones de forma oficial, por ejemplo en debian es:
    $ apt install fzf
  • Después yo de momento he metido solo lo de los «atajos de teclado» y no lo del ** o lo de kill desde fzf.
    • ctrl+r: te sale el fzf buscando en el history de comandos
    • ctrl+t: mientras estas escribiendo un comando te sale el fzf buscador desde el directorio que estas y buscas y te lo pone como path del comando.
    • Para instalarlo se da acceso al script en el .bashrc de tu usuario, yo lo tengo en el final casi:
      #fzf
      
      source /usr/share/doc/fzf/examples/key-bindings.bash
  • Si lanzas el fzf a mano, te sale un buscador de solo los ficheros desde el path que estas ahora mismo en la shell.
  • Y después trucos:
    • Para buscar en otro path e incluso mas cosas que ficheros es:
      $ find /tmp 2>/dev/null | fzf
    • Y para usar el fzf en otro comando es:
      cd $(find / 2>/dev/null | fzf)

Y eso es fzf, no se si quema mas CPU y o RAM frente a «los buscadores clásicos» pero ayuda bastante sobre todo cuando te acuerdas de cosas de enmedio de lo que buscas.

Recopilación de truquitos de shell en GNU/Linux

  • todas las entradas del menu de gnome
/lib/modules/2.6.28-14-generic/build/include
  • contar los archivos de otro directorio:
find /etc/ -type f | wc -l
  • timestamp to date
 date -d @1193144433
  •  timestamp de la hora actual
date +"%s"
  •  renombrar masivo
find . -name "*.caca" -exec mv {} {}.bk \;
  • consola interactiva en Perl (estilo a la python o php)
 perl -d -e 1
  • buscar con el find y evitar lo de permiso denegado
find / -name "*caca*" 2>/dev/null
  • montar una unidad virtual ssh con fuse
sudo mkdir /media/server1
sudo chown miguel /media/server1/
sshfs root@192.168.50.50:/var/www/ /media/server1/
  • Crea  .tar.gz
tar czvf <fichero>.tar.gz <nombre_ficheros_seleccionados_o_directorio>
  • Muestra contenido de un .tar.gz
tar tzvf fichero.tar.gz
  • Extrae contenido de un .tar.gz
     tar xzvf fichero.tar.gz
  • Crear un fichero lleno de ceros de 1kB
 bs <- el tamaño del bloque
 count <- numero de bloque

dd if=/dev/zero of=/tmp/test_zero bs=1024 count=1

linux_div_cowsay