Kto by nepoznal notoricky známe linuxové nástroje ako cat
, cd
, find
, grep
, ls
alebo ps
? Bez nich by Linux nebol Linuxom, preto majú svoje stále miesto takmer v každej distribúcii. Keďže tieto nástroje vznikli pred niekoľkými dekádami, je pochopiteľné, že boli napísané v jazyku C. Časom sa ale niektoré mladšie programovacie jazyky vyvinuli natoľko, že bolo možné v nich napísať podobné nástroje. Ako pridanú hodnotu poskytujú jednoduchšie a sofistikovanejšie použitie a niekedy dokonca aj lepšie výsledky v rýchlostných testoch.
Predstavíme si obľúbené alternatívy k vyššie spomenutým zabehnutým nástrojom napísané v programovacom jazyku Rust. Často ich nájdeme priamo v oficiálnych repozitároch Ubuntu, čo zabezpečuje jednoduchú a rýchlu inštaláciu. Väčšinou prichádzajú s podporou ďalších populárnych nástrojov, ako je napríklad Git.
Rust je jazyk podobný C a C++ a používa sa pri programovaní na úrovni operačného systému (low level). Začal ho vyvíjať zamestnanec Mozilly Graydon Hoare v roku 2006 ako svoj vedľajší projekt. V roku 2015 vyšla prvá stabilná verzia, od roku 2020 sa vývoj Rustu osamostatnil a spravuje ho komunita. Otec linuxového jadra Linus Torvalds dokonca zvažuje, že by sa Rust mohol použiť pri programovaní častí kernela. Aj tento fakt hovorí o úspešnom etablovaní pomerne nového jazyka.
zoxide
Indický vývojár Ajeet D’Souza nahradil nástroj cd
projektom zoxide. Tento program sa stal natoľko populárnym, že to dotiahol až do oficiálneho repozitára Ubuntu, čo zabezpečuje jednoduchú a rýchlu inštaláciu:
sudo apt install zoxide
Po inštalácii ešte pridáme na koniec konfiguračného súboru ~/.bashrc
tento riadok:
eval "$(zoxide init bash)"
…a načítame ho pomocou príkazu source, aby sme zoxide mohli používať okamžite v práve otvorenej konzole:
source ~/.bashrc
Odteraz príkaz z
urobí to isté, čo aj cd:
z /home
Navyše zoxide vytvára štatistiku návštevnosti jednotlivých ciest, podľa ktorej následne dokáže určiť prioritu, keď sa budeme chcieť do niektorej neskôr vrátiť:
zoxide query -ls
exa
Benjamin Sago, vývojár zo Spojeného kráľovstva, sa rozhodol nahradiť nástroj ls
a vznikol nástroj exa. O jeho popularite svedčí aj to, že sa dostal do oficiálnych repozitárov Ubuntu, a tak ho nainštalujeme veľmi ľahko a rýchlo:
sudo apt install exa
Oproti ls exa ponúka benefit viditeľný na prvý pohľad – farebne odlišuje údaje tak, aby boli ľahšie a rýchlejšie čitateľné. Napríklad tento príkaz vypíše aj skryté súbory a priečinky aj s pomenovanými stĺpcami:
exa -lah
Nástroj exa má takmer rovnaké prepínače ako ls, avšak hneď vo vyššie uvedenom príkaze zistíme, že prepínač -h
neslúži na zobrazenie “human-readable” veľkosti súborov (tú má exa už od začiatku prednastavenú), ale na zobrazenie názvov stĺpcov (headers).
bat
Vývojár z Nemecka, David Peter, si zaumienil vytvoriť alternatívu k notoricky známemu nástroju cat
a nazval ho bat. Aj v tomto prípade ide o obľúbený nástroj, ktorý bol zaradený do oficiálneho repozitára Ubuntu, preto opäť ide o jednoduchú a rýchlu inštaláciu:
sudo apt install bat
Ak po inštalácii nebude príkaz bat fungovať, je potrebné vytvoriť odkaz takto:
mkdir -p ~/.local/bin && ln -s /usr/bin/batcat ~/.local/bin/bat
Nechajte si zobraziť textový súbor najlepšie s nejakým kódom, aby ste videli, že bat podporuje zvýrazňovanie syntaxe, zobrazuje čísla riadkov, automaticky stránkuje a dokáže zobraziť aj netlačiteľné znaky (prepínač -A
):
bat -A subor.py
fd
Ostávame v Nemecku pri vývojárovi Davidovi Peterovi, pretože okrem nástroja bat vytvoril tiež náhradu programu find
. Ide o fd, ktorý taktiež nájdeme v oficiálnom repozitári Ubuntu:
sudo apt install fd-find
Po inštalácii ešte vytvoríme odkaz, aby bolo možné použiť príkaz fd a nie neprakticky dlhý fdfind:
ln -s $(which fdfind) ~/.local/bin/fd
Oproti find fd ponúka zjednodušený zápis a rýchlejšie vyhľadávanie. Hneď na začiatku je dobré uvedomiť si, že fd ignoruje skryté súbory a priečinky (zmeníme prepínačom -H
) a rovnako ignoruje všetko zapísané v súbore .gitignore
(zmeníme prepínačom -I).
Napríklad takto vyhľadáme súbory (-t f
) v priečinku /etc
, ktoré v názve obsahujú passwd
a necháme vypísať detailné informácie o každom nájdenom súbore (-l
):
fd -l -t f passwd /etc
ripgrep
Andrew Gallant je programátor zo Spojených štátov amerických a svoju vášeň v programovaní pretavil do nástroja ripgrep. Názov napovedá, že ide o náhradu za grep
, a to konkrétne o výrazne rýchlejšiu náhradu (podľa testov autora). Inštalácia je rovnako jednoduchá ako v predošlých prípadoch:
sudo apt install ripgrep
Ripgrep pri vyhľadávaní ignoruje skryté súbory a tiež všetko definované v súboroch .gitignore
, .ignore
a .rgignore
. Takto napríklad nájdeme riadky konfiguračných súborov (-tconfig
) v priečinku /etc
, ktoré obsahujú slovo passwd
:
sudo rg -tconfig passwd /etc
Za prepínač -t
môžeme napísať jeden z typov súborov, ktorý je definovaný v zozname typov súborov:
rg --type-list
procs
Z Japonska pochádza autor vydarenej alternatívy k nástroju ps
. Ide o nástroj s názvom procs. Tentokrát budeme pri inštalácii v Ubuntu potrebovať balíčkovací systém Snap:
sudo snap install procs
Porovnateľne s vyššie spomínanými nástrojmi, aj procs výstup formátuje s použitím farieb, automaticky stránkuje príliš dlhý výstup a syntax je oproti nástroju ps jednoduchšia. Takto napríklad zobrazíme každú sekundu sa obnovujúcu (--watch
) stromovú štruktúru (--tree
) všetkých procesov týkajúcich sa systemd
:
sudo procs --watch --tree systemd
A takto vyhľadáme proces, ktorý spotrebúva najviac CPU (prvý riadok) alebo pamäte RAM (druhý riadok):
sudo procs --sortd cpu
sudo procs --sortd mem
Vytvárame aliasy
Ak sa vám niektorý z vyššie spomínaných nástrojov zapáčil, pridajte naň na koniec konfiguračného súboru ~/.bashrc
odkaz (alias). Napríklad alias s názvom ll
(dve malé písmená L) bude odkazovať na exa -lah --group-directories-first
takto:
alias ll='exa -lah --group-directories-first'
Následne nanovo načítame nastavenia z konfiguračného súboru ~/.bashrc pomocou príkazu source takto:
source ~/.bashrc
Odteraz po zadaní príkazu ll
(dve malé písmená L) sa spustí príkaz exa -lah –group-directories-first, čím výrazne zrýchlime a zjednodušíme vypisovanie obsahu priečinkov pomocou nástroja exa.
Zhrnutie
Predstavili sme šesť nástrojov (cat
, cd
, find
, grep
, ls
a ps
), ktoré boli vyvinuté ako alternatívy v programovacom jazyku Rust. Ide o nástroje, ktoré sa stali populárnymi vďaka jednoduchšiemu zápisu, ľahšie čitateľnému výstupu, a tiež vyššej rýchlosti. Tieto nástroje sa dokonca dostali aj do oficiálnych repozitárov Ubuntu, čo ešte viac svedčí o ich obľúbenosti v linuxovej komunite.