5 moderných alternatív k starým nástrojom príkazového riadku Linuxu

Použitím modernejších alternatív spolu so staršími nástrojmi príkazového riadku si môžete užiť viac zábavy a dokonca zvýšiť svoju produktivitu.

5 moderných alternatív k starým nástrojom príkazového riadku Linuxu

Pri našej každodennej práci na Linuxe/Unixe používame mnoho nástrojov príkazového riadku – napríklad du na monitorovanie využitia disku a systémových zdrojov. Niektoré z týchto nástrojov existujú už dlho. Napríklad top sa objavil v roku 1984 a prvé vydanie du sa datuje do roku 1971.

V priebehu rokov boli tieto nástroje modernizované a portované na rôzne systémy, no vo všeobecnosti sa od svojich prvých verzií ďaleko neposunuli, ich vzhľad a použiteľnosť sa tiež veľmi nezmenili.

Toto sú skvelé nástroje, ktoré potrebujú mnohí správcovia systému. Komunita však vyvinula alternatívne nástroje, ktoré ponúkajú ďalšie výhody. Niektoré z nich majú jednoducho moderné, krásne rozhranie, zatiaľ čo iné výrazne zlepšujú použiteľnosť. V tomto preklade si povieme o piatich alternatívach k štandardným nástrojom príkazového riadka Linuxu.

1. ncdu vs du

NCcurses využitie disku (ncdu) je podobný du, ale s interaktívnym rozhraním založeným na knižnici curses. ncdu zobrazuje adresárovú štruktúru, ktorá zaberá väčšinu miesta na disku.

ncdu analyzuje disk a potom zobrazí výsledky zoradené podľa najčastejšie používaných adresárov alebo súborov, napríklad:

ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
   96.7 GiB [##########] /libvirt
   33.9 GiB [###       ] /.crc
    7.0 GiB [          ] /Projects
.   4.7 GiB [          ] /Downloads
.   3.9 GiB [          ] /.local
    2.5 GiB [          ] /.minishift
    2.4 GiB [          ] /.vagrant.d
.   1.9 GiB [          ] /.config
.   1.8 GiB [          ] /.cache
    1.7 GiB [          ] /Videos
    1.1 GiB [          ] /go
  692.6 MiB [          ] /Documents
. 591.5 MiB [          ] /tmp
  139.2 MiB [          ] /.var
  104.4 MiB [          ] /.oh-my-zsh
   82.0 MiB [          ] /scripts
   55.8 MiB [          ] /.mozilla
   54.6 MiB [          ] /.kube
   41.8 MiB [          ] /.vim
   31.5 MiB [          ] /.ansible
   31.3 MiB [          ] /.gem
   26.5 MiB [          ] /.VIM_UNDO_FILES
   15.3 MiB [          ] /Personal
    2.6 MiB [          ]  .ansible_module_generated
    1.4 MiB [          ] /backgrounds
  944.0 KiB [          ] /Pictures
  644.0 KiB [          ]  .zsh_history
  536.0 KiB [          ] /.ansible_async
 Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

V záznamoch sa môžete pohybovať pomocou klávesov so šípkami. Ak stlačíte Enter, ncdu zobrazí obsah zvoleného adresára:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

Tento nástroj môžete použiť napríklad na zistenie, ktoré súbory zaberajú najviac miesta na disku. Stlačením klávesu so šípkou doľava môžete prejsť do predchádzajúceho adresára. Pomocou ncdu môžete vymazať súbory stlačením klávesu d. Pred odstránením požaduje potvrdenie. Ak chcete vypnúť funkciu odstránenia, aby ste predišli náhodnej strate cenných súborov, použite voľbu -r na povolenie režimu prístupu iba na čítanie: ncdu -r.

ncdu je k dispozícii pre mnohé platformy a distribúcie Linuxu. Napríklad môžete použiť dnf na jeho inštaláciu do Fedory priamo z oficiálnych repozitárov:

$ sudo dnf install ncdu

2. htop vs top

htop je interaktívny prehliadač procesov podobný top, ale hneď po vybalení poskytuje príjemnú používateľskú skúsenosť. V predvolenom nastavení htop zobrazuje rovnaké informácie ako top, ale vizuálnejším a farebnejším spôsobom.

V predvolenom nastavení htop vyzerá takto:

5 moderných alternatív k starým nástrojom príkazového riadku Linuxu
Na rozdiel od top:

5 moderných alternatív k starým nástrojom príkazového riadku Linuxu
Okrem toho htop zobrazuje v hornej časti prehľadné informácie o systéme a v spodnej časti panel na spúšťanie príkazov pomocou funkčných kláves. Môžete ho nakonfigurovať stlačením klávesu F2, čím otvoríte konfiguračnú obrazovku. V Nastaveniach môžete zmeniť farby, pridať alebo odstrániť metriky alebo zmeniť možnosti zobrazenia panela prehľadu.

Hoci podobnú použiteľnosť môžete dosiahnuť úpravou nastavení najnovších verzií top, htop poskytuje pohodlné predvolené konfigurácie, vďaka čomu je praktickejšie a jednoduchšie.

3. tldr vs človek

Nástroj príkazového riadka tldr zobrazuje zjednodušené pomocné informácie o príkazoch, väčšinou príklady. Vyvinula ho komunita projekt stránok tldr.

Stojí za zmienku, že tldr nie je náhradou človeka. Stále je to kanonický a najkomplexnejší nástroj na výstup manuálovej stránky. V niektorých prípadoch je však človek nadbytočný. Keď nepotrebujete komplexné informácie o príkaze, snažíte sa zapamätať si jeho základné použitie. Napríklad manuálová stránka pre príkaz curl obsahuje takmer 3000 riadkov. Strana tldr pre zvlnenie má 40 riadkov. Jeho fragment vyzerá takto:


$ tldr curl

# curl
  Transfers data from or to a server.
  Supports most protocols, including HTTP, FTP, and POP3.
  More information: <https://curl.haxx.se>.

- Download the contents of an URL to a file:

  curl http://example.com -o filename

- Download a file, saving the output under the filename indicated by the URL:

  curl -O http://example.com/filename

- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:

  curl -O -L -C - http://example.com/filename

- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form                                                                                            
- Send a request with an extra header, using a custom HTTP method:

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Send data in JSON format, specifying the appropriate content-type header:

  curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

... TRUNCATED OUTPUT

TLDR znamená „príliš dlho; nečítal“: to znamená, že niektorý text bol ignorovaný pre jeho prílišnú výrečnosť. Názov je vhodný pre tento nástroj, pretože manuálové stránky, hoci sú užitočné, môžu byť niekedy príliš dlhé.

Pre Fedoru bol tldr napísaný v Pythone. Môžete ho nainštalovať pomocou správcu dnf. Nástroj na fungovanie zvyčajne vyžaduje prístup na internet. Ale Python klient Fedory umožňuje tieto stránky stiahnuť a uložiť do vyrovnávacej pamäte pre offline prístup.

4.jq vs sed/grep

jq je procesor JSON pre príkazový riadok. Je podobný sed alebo grep, ale je špeciálne navrhnutý na prácu s údajmi JSON. Ak ste vývojár alebo správca systému, ktorý používa JSON pri každodenných úlohách, toto je nástroj pre vás.

Hlavnou výhodou jq oproti štandardným nástrojom na spracovanie textu, ako sú grep a sed, je to, že rozumie štruktúre údajov JSON, čo vám umožňuje vytvárať zložité dotazy v jedinom výraze.

Pokúšate sa napríklad nájsť názvy kontajnerov v tomto súbore JSON:

{
  "apiVersion": "v1",
  "kind": "Pod",
  "metadata": {
    "labels": {
      "app": "myapp"
    },
    "name": "myapp",
    "namespace": "project1"
  },
  "spec": {
    "containers": [
      {
        "command": [
          "sleep",
          "3000"
        ],
        "image": "busybox",
        "imagePullPolicy": "IfNotPresent",
        "name": "busybox"
      },
      {
        "name": "nginx",
        "image": "nginx",
        "resources": {},
        "imagePullPolicy": "IfNotPresent"
      }
    ],
    "restartPolicy": "Never"
  }
}

Spustite grep a nájdite názov reťazca:

$ grep name k8s-pod.json
        "name": "myapp",
        "namespace": "project1"
                "name": "busybox"
                "name": "nginx",

grep vrátil všetky riadky obsahujúce názov slova. Môžete pridať niekoľko ďalších možností grep, aby ste ho obmedzili, a použiť manipuláciu s regulárnymi výrazmi na nájdenie názvov kontajnerov.

Ak chcete získať rovnaký výsledok pomocou jq, stačí napísať:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

Tento príkaz vám dá názvy oboch kontajnerov. Ak hľadáte iba názov druhého kontajnera, pridajte do výrazu index prvku poľa:

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

Keďže jq vie o štruktúre údajov, produkuje rovnaké výsledky, aj keď sa formát súboru mierne zmení. grep a sed nemusia v tomto prípade fungovať správne.

jq má veľa funkcií, ale na ich popis je potrebný ďalší článok. Pre viac informácií prosím kontaktujte stránka projektu jq alebo na tldr.

5. fd vs nájsť

fd je zjednodušená alternatíva k nástroju find. Fd ho nemá úplne nahradiť: má štandardne nainštalované najbežnejšie nastavenia, ktoré definujú všeobecný prístup k práci so súbormi.

Napríklad pri vyhľadávaní súborov v adresári úložiska Git fd automaticky vylúči skryté súbory a podadresáre vrátane adresára .git a tiež ignoruje zástupné znaky zo súboru .gitignore. Celkovo zrýchľuje vyhľadávanie tým, že na prvý pokus vracia relevantnejšie výsledky.

Štandardne fd vykonáva vyhľadávanie bez ohľadu na veľkosť písmen v aktuálnom adresári s farebným výstupom. Rovnaké vyhľadávanie pomocou príkazu find vyžaduje zadanie ďalších parametrov na príkazovom riadku. Ak chcete napríklad nájsť všetky súbory .md (alebo .MD) v aktuálnom adresári, napíšte príkaz find takto:

$ find . -iname "*.md"

Pre fd to vyzerá takto:

$ fd .md

V niektorých prípadoch však fd vyžaduje aj ďalšie možnosti: napríklad, ak chcete zahrnúť skryté súbory a adresáre, musíte použiť možnosť -H, hoci sa to pri vyhľadávaní zvyčajne nevyžaduje.

fd je k dispozícii pre mnohé distribúcie Linuxu. Vo Fedore sa dá nainštalovať takto:

$ sudo dnf install fd-find

Nemusíte sa ničoho vzdávať

Používate nové nástroje príkazového riadka systému Linux? Alebo sedíte výlučne na starých? Ale s najväčšou pravdepodobnosťou máte kombo, však? Podeľte sa o svoje skúsenosti v komentároch.

O právach reklamy

Výhody už ocenili mnohí naši klienti epické servery!
To virtuálne servery s procesormi AMD EPYC, frekvencia jadra CPU až 3.4 GHz. Maximálna konfigurácia vám umožní mať nálož – 128 CPU jadier, 512 GB RAM, 4000 GB NVMe. Poponáhľajte sa s objednávkou!

5 moderných alternatív k starým nástrojom príkazového riadku Linuxu

Zdroj: hab.com

Pridať komentár