Ve Fedoře najdete hned po instalaci mnoho nástrojů pro příkazovou řádku. Ovšem některé jsou tu už s námi delší dobu a i přes neoddiskutovatelnou kvalitu a užitnost se může zdát, že už jsou za zenitem. Přinášíme tipy na náhradu příkazů cat
,diff
,find
a něco pro čtení JSONů
.
Bat - Cat s výrazněním syntaxe a podporou gitu
Účelem příkazu cat
je spojování (zobrazování) souborů. Ovšem bat vám navíc ukáže barevně syntaxi, nebo změny v gitu. Pokud se výstup nevejde na obrazovku, máte možnost procházet text podobně jako třeba v less
(procházení vypnete pomocí Q).
Instalovat můžete jednoduše pomocí dnf install bat
.
TIP: Nastavte si bat jako $PAGER
pomocí export PAGER=bat
ve vašem .bashrc
a nebudete litovat.
Diff so fancy - Barevný diff
Někdy je výchozí výstup z diff
trochu mdlý a nemusí být zřejmé, kde je jaký rozdíl. Na tomto místě nastupuje diff-so-fancy
. Výstup zpracuje, takže okamžitě vidíte, kde se co změnilo.
Tenhle nástroj nenajdete ve standardním repozitáři, ale můžete si ho nainstalovat z npm npm i diff-so-fancy
, nebo jejich git repozitáře. Jenom nezapomeňte správně nastavit proměnnou $PATH
, ať ho spustíte odkudkoliv.
Nastavte si ho jako výchozí diff
pro git.
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
git config --global interactive.diffFilter "diff-so-fancy --patch"
FX - Čtení jsonů nikdy nebylo lehčí
FX je skvělý nástroj na práci s JSONem, umožnuje filtrování, procházení, apod. v jednoduchém textovém rozhraní přímo ve vaší konzoli. Má několik funkcí
- Procházení Jednoduše můžete procházet JSON objekt kurzorovými šipkami. Dolů a nahoru pro procházení a doleva, doprava použijete, pokud chcete nějaký objekt nechat expandovat, nebo opět zavřít. P.S.: A to i myší!
- Navigace v objektu Procházet ale objekt ručně může být náročné, můžete pomocí klasické notace procházet jednotlivé atributy. Zmáčkněte
.
(tečku) afx
nabídne seznam atributů daného objektu, vybíráte kurzorovými šipkami. - Filtrování a manipulace s daty pomocí Javascriptu FX můžete použít i neinteraktivně přímo na příkazové řádce, jenom mu pošlete obsah na standardní vstup. Rovnou si ukážeme, že umí vyfiltrovat všechna lichá čísla pomocí JS funkce
.filter
echo "[1, 3, 5, 2, 4, 6]" | fx '.filter(i => i % 2)'
[
1,
3,
5
]
Všimněte si, že fx vstup namapuje na proměnnou this
, což je vidět v následujícím příkladě, kde rozšíříme objekt pomocí spread operátoru.
echo '{"foo":"bar"}' | fx '{...this, url:"https://mojefedora.cz"}'
{
"foo": "bar",
"url": "https://mojefedora.cz"
}
Na medium.com vyšel článek (ENG), jak FX používát naplno. Případně se podívejte na video návod (ENG).
FZF - Fuzzy Search
FZF je nástroj pro rychlé vyhledávání. Je napsaný v Go a najdete ho v repozitářích (instalace dnf install fzf
). Vyhledávat (filtrovat) můžete cokoliv, seznam balíčků, soubory, …
Jednotlivé termíny, podle čeho hledat oddělujete mezerou. Můžete také použít různé operátory pro zpřesnění, nebo vyřazení některých výsledků. Co jste “trefili” je barevně zvýrazněno.
V tomto příkladu hledám slovo “Screenshot” (všimněte si překlepu, fzf hledá přibližnou shodu). Vyhledávání zpřesňuji pomocí '2020
, kde operátor '
určuje přesnou shodu. Jako poslední jsem zapsal negaci hledání přesné shody na konci !0.png$
(vyřaď všechno, co končí přesně na 0.png
)
No a když filtrujete, není problém zobrazovat náhled souborů. Třeba s použitím bat
z úvodu. Kód vypadá takhle a klíčový je přepínač --preview
, syntax je podobná find (přepínače u bat můžete vynechat. Náledující příklad ukazuje funkčnost náhledu (fzf --preview 'bat --style=numbers --color=always --line-range :500 {}'
)
Pokud jste našli, co jste hledali, vyberte to kurzorovými šipkami (ovládat jde i myší), stikněte enter a fzf
to vypíše na standardní výstup, takže podobně jako fx
ho můžete použít ve skriptech.
Token | Typ shody | Popis |
---|---|---|
sbtrkt |
fuzzy-match | Něco, co obsahuje (nebo podobné) sbtrkt |
'wild |
exact-match (quoted) | Obsahuje text wild |
^music |
prefix-exact-match | Něco, co začíná na music |
.mp3$ |
suffix-exact-match | Vše, co končí na .mp3 |
!fire |
inverse-exact-match | Něco, co neobsahuhe fire |
!^music |
inverse-prefix-exact-match | Prvky, které nezačínají na music music |
!.mp3$ |
inverse-suffix-exact-match | A ty, které nekončí na .mp3 |
Informace můžete najít v man fzf
, nebo na githubu projektu.
Dnes jsme si představili 4 nástroje, které můžete začít ihned používat a zjednodušší život každému uživateli příkazové řádky. Který je váš favorit? Máte nějakého dalšího, podělte se v komentářích.
Napsat komentář