1. Báza znalostí
  2. Cloud a servery
  3. Nástroje
  4. Základné linuxové nástroje vylepšené v jazyku Rust

Základné linuxové nástroje vylepšené v jazyku Rust

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.

Tip: Všetky príkazy si jednoducho otestujte s WebSupport VPS. Vyskúšajte prémiový virtuálny server zdarma ešte dnes.

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.

Pozor ale s aliasmi a alternatívami na produkčných serveroch, pretože inštalácia nových nástrojov a odkazovanie na ne pomocou aliasov môže spôsobiť nestabilitu, menšiu odozvu alebo aj oslabenie bezpečnosti.

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.

Aktualizované 30. januára 2023

Bol pre vás tento návod nápomocný?

Mohlo by vás tiež zaujímať:

Spýtajte sa nás, radi poradíme
Po - Ne 8:00-22:00
Kontaktovať podporu