Používání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 produktivitu.

V každodenní práci v Linuxu/Unixu používáme mnoho nástrojů příkazového řádku — například du pro sledování využití disku a systémových zdrojů. Některé z těchto nástrojů existují už dlouho. Například top byl uveden v roce 1984 a první verze du pochází z roku 1971.
Během let byly tyto nástroje modernizovány a portovány na různé systémy, ale celkově se od svých prvních verzí příliš nevzdálily, jejich vzhled a použitelnost také zůstaly výrazně stejné.
Jsou to skvělé nástroje, které jsou potřebné mnoha systémovým administrátorům. Nicméně komunita vyvinula alternativní nástroje, které nabízejí další výhody. Některé z nich mají jen moderní, atraktivní rozhraní, zatímco jiné výrazně zlepšují použitelnost. V tomto přehledu se zaměříme na pět alternativ k běžným nástrojům příkazového řádku Linuxu.
1. ncdu vs du
NCurses Disk Usage () je podobný du, ale s interaktivním uživatelským rozhraním založeným na knihovně curses. ncdu zobrazuje strukturu adresářů, které zabírají většinu vašeho diskového prostoru.
ncdu analyzuje disk a poté zobrazuje výsledky seřazené podle nejčastěji používaných adresářů nebo souborů, například:
ncdu 1.14.2 ~ Použijte šipkové klávesy k navigaci, stiskněte ? pro pomoc
--- /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
Celkové využití disku: 159.4 GiB Zjevná velikost: 280.8 GiB Počet položek: 561540Záznamy lze procházet pomocí šipkových kláves. Pokud stisknete Enter, ncdu zobrazí obsah vybraného adresáře:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /mediaTento nástroj můžete použít například k určení, které soubory zabírají nejvíce diskového prostoru. Zpět do předchozího adresáře se můžete vrátit stisknutím klávesy se šipkou vlevo. Pomocí ncdu můžete soubory odstranit stisknutím klávesy d. Před odstraněním se žádá o potvrzení. Pokud chcete zakázat funkci odstranění, abyste zabránili náhodné ztrátě cenných souborů, použijte volbu -r pro aktivaci režimu pouze pro čtení: ncdu -r.
Ncdu je k dispozici pro mnoho platforem a distribucí Linuxu. Například jej můžete nainstalovat pomocí dnf na Fedoře přímo z oficiálních repozitářů:
$ sudo dnf install ncdu2. htop vs top
je interaktivní nástroj pro zobrazení procesů, podobný top, ale z pohledu uživatelského rozhraní nabízí příjemnější interakci. Htop ve výchozím nastavení zobrazuje stejné informace jako top, ale ve vizuálně přitažlivějším a barevnějším formátu.
Ve výchozím nastavení vypadá htop takto:

Na rozdíl od top:

Dále htop v horní části zobrazuje přehledové informace o systému, zatímco v dolní části se nachází panel pro spuštění příkazů pomocí funkčních kláves. Můžete jej přizpůsobit stisknutím F2 pro otevření obrazovky nastavení. V nastavení můžete měnit barvy, přidávat nebo odebírat metriky nebo měnit parametry zobrazení přehledu.
I když pohrabáním se v nastaveních posledních verzí top můžete dosáhnout podobné použitelnosti, htop poskytuje pohodlné přednastavené konfigurace, což ho dělá praktičtějším a snadnějším na používání.
3. tldr vs man
Příkazový nástroj tldr zobrazuje zjednodušené referenční informace o příkazech, převážně příklady. Vyvinula jej komunita .
Je třeba poznamenat, že tldr není náhradou za man. Ten zůstává kanonickým a nejkompletnějším nástrojem pro výstup referenčních stránek. Nicméně v některých případech je man nadbytečný. Když nepotřebujete vyčerpávající informace o nějakém příkazu a jen se snažíte zapamatovat si základní varianty jeho použití. Například stránka man pro příkaz curl obsahuje téměř 3000 řádků. Stránka tldr pro curl má délku 40 řádků. Její úryvek vypadá takto:
$ tldr curl
# curl
Přenáší data z nebo na server.
Podporuje většinu protokolů, včetně HTTP, FTP a POP3.
Další informace: .
- Stáhněte obsah URL do souboru:
curl http://example.com -o filename
- Stáhněte soubor a uložte výstup pod názvem uvedeným v URL:
curl -O http://example.com/filename
- Stáhněte soubor, následováním [L]okace přesměrování a automatickým [C]ontinuing (pokračování) předchozího přenosu:
curl -O -L -C - http://example.com/filename
- Odešlete data ve formátu form-urlencoded (POST požadavek typu `application/x-www-form-urlencoded`):
curl -d 'name=bob' http://example.com/form
- Odešlete požadavek s extra hlavičkou, pomocí vlastního HTTP metody:
curl -H 'X-My-Header: 123' -X PUT http://example.com
- Odešlete data ve formátu JSON, specifikujte vhodnou hlavičku typu obsahu:
curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234
... TRUNCATED OUTPUTTLDR znamená „příliš dlouhé; nečetl jsem“: to znamená, že určitý text byl ignorován kvůli jeho nadměrné rozšiřitelnosti. Název této knihovny se hodí, protože man stránky, ačkoli užitečné, bývají někdy příliš dlouhé.
Pro Fedora byl tldr napsán v Pythonu. Můžete ho nainstalovat přes správce dnf. Pro fungování nástroje je obvykle potřeba přístup k internetu. Klient Python ve Fedoře umožňuje stahovat a ukládat tyto stránky pro offline přístup.
4. jq vs sed/grep
jq je JSON procesor pro příkazový řádek. Je podobný sed nebo grep, ale byl speciálně navržen pro práci s daty ve formátu JSON. Pokud jste vývojář nebo systémový administrátor, který pravidelně používá JSON, je tento 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, že rozumí struktuře JSON dat, což umožňuje vytvářet složité dotazy v jednom výrazu.
Například se pokoušíte 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 pro vyhledání řádku name:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox",
"name": "nginx",grep vrátil všechny řádky obsahující slovo name. Můžete přidat další parametry do grep, abyste ho omezili, a pomocí některých manipulací s regulárními výrazy nalezli názvy kontejnerů.
Abyste získali stejný výsledek pomocí jq, stačí napsat:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"Tento příkaz vám vrátí názvy obou kontejnerů. Pokud hledáte pouze název druhého kontejneru, přidejte index prvku pole do výrazu:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"Jelikož jq zná strukturu dat, dává stejné výsledky, i když se formát souboru mírně změní. grep a sed v tomto případě nemusí fungovat správně.
jq má mnoho funkcí, ale k jejich popisu by byla potřeba ještě jeden článek. Pro více informací se obraťte na jq nebo na tldr.
5. fd vs find
je zjednodušená alternativa utility find. Fd nemá nahradit tuto utilitu úplně: má přednastavené nejběžnější nastavení, které určuje obecný přístup k práci se soubory.
Například při hledání souborů v adresáři Git repozitáře, fd automaticky vylučuje skryté soubory a podsložky, včetně adresáře .git, a také ignoruje šablony z .gitignore. Celkově urychluje hledání a poskytuje relevantnější výsledky na poprvé.
Ve výchozím stavu fd provádí vyhledávání bez ohledu na velikost písmen v aktuálním adresáři s barevným výstupem. Totéž hledání pomocí příkazu find vyžaduje zadání dalších parametrů v příkazovém řádku. Například, pro nalezení všech souborů .md (nebo .MD) v aktuálním adresáři, musíte napsat následující příkaz find:
$ find . -iname "*.md"Pro fd vypadá takto:
$ fd .mdAle v některých případech může být potřeba i pro fd další parametry: například, pokud chcete zahrnout skryté soubory a adresáře, musíte použít možnost -H, ačkoli obvykle není při hledání potřeba.
fd je dostupný pro mnoho distribucí Linuxu. Na Fedoře ho můžete nainstalovat takto:
$ sudo dnf install fd-findNení nutné se něčeho vzdávat
Používáte nové nástroje pro příkazový řádek Linuxu? Nebo se držíte pouze starých? Ale pravděpodobně máte kombinaci, že? Prosím, podělte se o své zkušenosti v komentářích.
Na základě reklamy
Mnoho našich klientů již ocenilo výhody epických serverů!
To je , frekvence CPU jádra až 3,4 GHz. Maximální konfigurace umožní plné využití — 128 CPU jader, 512 GB RAM, 4000 GB NVMe. Nezapomeňte si objednat!
Zdroj: habr.com
