5 moderních alternativ ke starým nástrojům příkazového řádku Linuxu

Použitím modernějších alternativ vedle starších nástrojů příkazového řádku si můžete užít více zábavy a dokonce zvýšit svou produktivitu.

5 moderních alternativ ke starým nástrojům příkazového řádku Linuxu

Při naší každodenní práci na Linuxu/Unixu používáme mnoho nástrojů příkazového řádku – například du ke sledování využití disku a systémových prostředků. Některé z těchto nástrojů existují již dlouhou dobu. Například top se objevil v roce 1984 a první vydání du se datuje do roku 1971.

V průběhu let byly tyto nástroje modernizovány a portovány na různé systémy, ale obecně se od svých prvních verzí příliš neposunuly, jejich vzhled a použitelnost se také příliš nezměnily.

Jsou to skvělé nástroje, které potřebuje mnoho systémových administrátorů. Komunita však vyvinula alternativní nástroje, které nabízejí další výhody. Některé z nich mají jednoduše moderní, krásné rozhraní, zatímco jiné výrazně zlepšují použitelnost. V tomto překladu budeme hovořit o pěti alternativách standardních nástrojů příkazového řádku Linuxu.

1. ncdu vs du

NCurses využití disku (ncdu) je podobný du, ale s interaktivním rozhraním založeným na knihovně curses. ncdu zobrazuje adresářovou strukturu, která zabírá většinu místa na disku.

ncdu analyzuje disk a poté zobrazí výsledky seřazené podle nejčastěji používaných adresářů nebo souborů, napří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

Mezi položkami můžete procházet pomocí kláves se šipkami. Pokud stisknete Enter, ncdu zobrazí obsah vybraného adresáře:

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

Tento nástroj můžete použít například k určení, které soubory zabírají nejvíce místa na disku. Do předchozího adresáře můžete přejít stisknutím levé šipky. Pomocí ncdu můžete mazat soubory stisknutím klávesy d. Před smazáním požádá o potvrzení. Pokud chcete deaktivovat funkci odstranění, abyste zabránili náhodné ztrátě cenných souborů, použijte volbu -r pro povolení režimu přístupu pouze pro čtení: ncdu -r.

ncdu je k dispozici pro mnoho linuxových platforem a distribucí. Například můžete použít dnf k instalaci na Fedoru přímo z oficiálních repozitářů:

$ sudo dnf install ncdu

2. htop vs top

htop je interaktivní prohlížeč procesů podobný top, ale hned po vybalení poskytuje příjemné uživatelské prostředí. Ve výchozím nastavení htop zobrazuje stejné informace jako top, ale vizuálnějším a barevnějším způsobem.

Ve výchozím nastavení htop vypadá takto:

5 moderních alternativ ke starým nástrojům příkazového řádku Linuxu
Na rozdíl od top:

5 moderních alternativ ke starým nástrojům příkazového řádku Linuxu
Navíc htop nahoře zobrazuje přehledové informace o systému a dole panel pro spouštění příkazů pomocí funkčních kláves. Můžete jej nakonfigurovat stisknutím klávesy F2 pro otevření obrazovky konfigurace. V Nastavení můžete změnit barvy, přidat nebo odebrat metriky nebo změnit možnosti zobrazení panelu přehledu.

Ačkoli můžete dosáhnout podobné použitelnosti vyladěním nastavení nejnovějších verzí top, htop poskytuje pohodlné výchozí konfigurace, díky nimž je praktičtější a jednodušší.

3. tldr vs muž

Nástroj příkazového řádku tldr zobrazuje zjednodušené informace nápovědy o příkazech, většinou příklady. Byl vyvinut komunitou projekt stránek tldr.

Stojí za zmínku, že tldr není náhradou za člověka. Je to stále kanonický a nejkomplexnější nástroj pro výstup manuálových stránek. V některých případech je však člověk nadbytečný. Když nepotřebujete komplexní informace o příkazu, snažíte se pouze zapamatovat si jeho základní použití. Například manuálová stránka pro příkaz curl obsahuje téměř 3000 řádků. Stránka tldr pro zvlnění je dlouhá 40 řádků. Jeho fragment vypadá 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á „příliš dlouho; nečetl“: to znamená, že některý text byl ignorován kvůli jeho přílišné upovídanosti. Název je pro tento nástroj vhodný, protože manuálové stránky, i když jsou užitečné, mohou být někdy příliš dlouhé.

Pro Fedoru byl tldr napsán v Pythonu. Můžete jej nainstalovat pomocí správce dnf. Nástroj obvykle vyžaduje přístup k internetu. Ale Python klient Fedory umožňuje tyto stránky stáhnout a uložit do mezipaměti pro offline přístup.

4.jq vs sed/grep

jq je procesor JSON pro příkazový řádek. Je podobný sed nebo grep, ale je speciálně navržen pro práci s daty JSON. Pokud jste vývojář nebo správce systému, který používá JSON v každodenních úkolech, je to nástroj pro vás.

Hlavní výhodou jq oproti standardním nástrojům pro zpracování textu, jako jsou grep a sed, je to, že rozumí datové struktuře JSON, což vám umožňuje vytvářet složité dotazy v jediném výrazu.

Pokoušíte se například najít názvy kontejnerů v tomto souboru 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"
  }
}

Spusťte grep a vyhledejte název řetězce:

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

grep vrátil všechny řádky obsahující slovo název. Můžete přidat několik dalších možností pro grep, abyste jej omezili, a použít některé manipulace s regulárními výrazy k nalezení názvů kontejnerů.

Chcete-li získat stejný výsledek pomocí jq, stačí napsat:

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

Tento příkaz vám poskytne názvy obou kontejnerů. Pokud hledáte pouze název druhého kontejneru, přidejte do výrazu index prvku pole:

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

Protože jq ví o datové struktuře, produkuje stejné výsledky, i když se formát souboru mírně změní. grep a sed nemusí v tomto případě fungovat správně.

jq má mnoho funkcí, ale k jejich popisu je potřeba další článek. Pro více informací prosím kontaktujte stránka projektu jq nebo na tldr.

5. fd vs najít

fd je zjednodušená alternativa k nástroji find. Fd jej nemá zcela nahradit: ve výchozím nastavení má nainstalovaná nejběžnější nastavení, která definují obecný přístup k práci se soubory.

Například při hledání souborů v adresáři úložiště Git fd automaticky vyloučí skryté soubory a podadresáře, včetně adresáře .git, a také ignoruje zástupné znaky ze souboru .gitignore. Celkově zrychluje vyhledávání tím, že na první pokus vrací relevantnější výsledky.

Ve výchozím nastavení fd provádí vyhledávání bez rozlišení velkých a malých písmen v aktuálním adresáři s barevným výstupem. Stejné vyhledávání pomocí příkazu find vyžaduje zadání dalších parametrů na příkazovém řádku. Chcete-li například najít všechny soubory .md (nebo .MD) v aktuálním adresáři, napište příkaz find takto:

$ find . -iname "*.md"

Pro fd to vypadá takto:

$ fd .md

V některých případech však fd vyžaduje i další možnosti: například pokud chcete zahrnout skryté soubory a adresáře, musíte použít volbu -H, i když to obvykle není při vyhledávání vyžadováno.

fd je k dispozici pro mnoho distribucí Linuxu. Ve Fedoře to lze nainstalovat takto:

$ sudo dnf install fd-find

Nemusíte se ničeho vzdávat

Používáte nové nástroje příkazového řádku Linuxu? Nebo sedíte výhradně na těch starých? Ale s největší pravděpodobností máte kombo, že? Podělte se prosím o své zkušenosti v komentářích.

Jako reklama

Výhody již ocenilo mnoho našich klientů epické servery!
To virtuální servery s procesory AMD EPYC, frekvence jádra CPU až 3.4 GHz. Maximální konfigurace vám umožní mít šmrnc – 128 CPU jader, 512 GB RAM, 4000 GB NVMe. Pospěšte si s objednávkou!

5 moderních alternativ ke starým nástrojům příkazového řádku Linuxu

Zdroj: www.habr.com

Přidat komentář