GNU/Linux >> Znalost Linux >  >> Linux

Koncová rychlost:Pohyb ve vaší skořápce rychle

Terminál používám denně již mnoho let. Používám silně přizpůsobený, nevýchozí shell. Široce využívám doplňování karet a zapamatoval jsem si příznaky mnoha příkazů. Ještě před rokem jsem si myslel, že jsem dosáhl vrcholu produktivity terminálu. Pak jsem objevil vlnu obslužných programů shellu, které, i když byly nejasné, zásadně změnily způsob, jakým komunikuji s prostředím svého terminálu, k lepšímu.

Tento článek je prvním ze série o těchto nových nástrojích (plus několik nástrojů, které znám déle a které mám rád). Dnes se podíváme na nástroje speciálně pro pohyb ve vašem souborovém systému.

Přeskočení:z

Víte, jak můžete do prohlížeče zadat několik prvních písmen běžně používaného webu a stisknout Enter s jistotou, že budete přesměrováni na správné místo? Co kdybychom přinesli stejnou zkušenost do vaší ulity? Představte si, že byste se mohli teleportovat do běžně používaného adresáře pouhým zadáním malé části jeho názvu. To je to, co z ano.

z shell skript sleduje adresáře, které navštívíte a kdy jste je navštívili. Kombinuje frekvenci vašeho přístupu k adresáři s aktuálností vašeho přístupu a určuje „frekvenci“ vašeho přístupu. Když zadáte několik písmen pro název adresáře, z vybere kandidáta obsahujícího zadaný podřetězec s nejvyšší frekvencí. Výsledek je správný až děsivě často.

Tady je v akci:

Rychlá fakta:

  • bash /zsh implementace:GitHub
  • fish implementace:GitHub
  • Licence (bash /zsh ):WTFPLv2
  • Licence (fish ):MIT
  • Jazyk:Shell skript

Existuje celá řada podobných nástrojů, jako je autojump a fasd . Vyzkoušejte je všechny!

Fuzzy hledání:fzf

Někdy je hledání věcí s regulárními výrazy přehnané. Jsou chvíle, kdy by mělo stačit, aby se správná písmena vyskytovala ve správném pořadí. fzf utilita umožňuje bezbolestně vyhledávat fuzzy shody. Jak tento nástroj souvisí s pohybem ve vašem souborovém systému? Počkejte a uvidíte.

Ve výchozím nastavení fzf funguje na stdin, takže jej můžete použít jako grep :

$ fzf < long-log-file.txt

Živý příklad:

Protože fzf pracuje na filtrování stdin a odesílá výstup na stdout, můžete s tímto nástrojem udělat mnohem víc než prohledávat soubory. Chcete vyhledat adresář pod aktuálním?

$ fzf

To je správně. Pokud stdin není roura, fzf prohledá všechny soubory pod tím a zobrazí vaši volbu na stdout, což usnadňuje kombinování výsledků s jinými příkazy, jako je editor.

Pokud byste chtěli dosáhnout stejné věci s větší kontrolou, můžete spustit:

$ find . -type d | fzf

Můžete použít fzf pohybovat se běháním:

$ cd $(find . -type d | fzf) #bash/zsh
$ cd (find . -type d | fzf) #fish

Nyní existují i ​​další zábavné aplikace. Můžete:

  • Vyvolání příkazů z historie pomocí:
    $ eval $(history | fzf) #bash/zsh
    $ eval (history | fzf) #fish
    
  • Upravte soubor pod aktuálním adresářem pomocí:
    $ $EDITOR $(find . | fzf) #bash/zsh
    $ $EDITOR (find . | fzf) #fish
    
  • Vyberte balíčky k instalaci pomocí:
    $ sudo apt install $(apt search <word> 2>/dev/null | tail -n+3 | grep '^\w' | sed 's|([^/]+)/.*|\1|' | fzf) #bash/zsh
    $ sudo apt install (apt search <word> 2>/dev/null | tail -n+3 | grep '^\w' | string split / | fzf) #fish
    
  • Vybírejte obecně na základě libovolného textu odděleného řádky. Obloha je limit!

fzf nástroj má existující integrace s bash , zsh a fish . Pokud tyto shelly nainstalujete, fzf přirozeně rozšiřuje a rozšiřuje pracovní postupy, jako je „obrácené indexové vyhledávání“ a dokončování karet. Jsem častým uživatelem fish integrace, já sám.

Rychlá fakta:

  • Získejte fzf :GitHub
  • Licence:MIT
  • Jazyk:Přejít

Chcete více?

Pokud se vám tyto nástroje zdají užitečné, zůstaňte naladěni na další články. Pokud se nemůžete dočkat, tato série je založena na této přednášce, kterou jsem přednesl na All Things Open 2019. Najdete tam další nástroje a triky.


Linux
  1. Jaký je váš oblíbený emulátor terminálu?

  2. Jak předvánočně upravit váš linuxový terminál a Shell

  3. Zbarvení vašeho terminálu a prostředí Shell?

  1. Zaznamenejte svou terminálovou relaci pomocí Asciinema

  2. Je terminál Gnome typem prostředí bez přihlášení?

  3. Zakázat barvu v shellu/terminálu

  1. Jaký je váš oblíbený trik s linuxovým terminálem?

  2. Jaký je váš oblíbený emulátor terminálu Linux?

  3. Vydejte se na dobrodružství ve svém linuxovém terminálu