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.
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 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
Ve výchozím nastavení htop vypadá takto:
Na rozdíl od top:
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
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
5. fd vs najít
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
Zdroj: www.habr.com