Folosind alternative mai moderne alături de instrumente mai vechi de linie de comandă, vă puteți distra mai mult și chiar vă puteți îmbunătăți productivitatea.
În munca noastră zilnică pe Linux/Unix, folosim multe instrumente de linie de comandă - de exemplu, pentru a monitoriza utilizarea discului și resursele de sistem. Unele dintre aceste instrumente există de mult timp. De exemplu, top a apărut în 1984, iar prima lansare a du datează din 1971.
De-a lungul anilor, aceste instrumente au fost modernizate și portate pe diferite sisteme, dar, în general, nu s-au mutat departe de primele lor versiuni, nici aspectul și utilitatea lor nu s-au schimbat prea mult.
Acestea sunt instrumente grozave de care au nevoie mulți administratori de sistem. Cu toate acestea, comunitatea a dezvoltat instrumente alternative care oferă beneficii suplimentare. Unele dintre ele pur și simplu au o interfață modernă și frumoasă, în timp ce altele îmbunătățesc foarte mult gradul de utilizare. În această traducere, vom vorbi despre cinci alternative la instrumentele standard de linie de comandă Linux.
1. ncdu vs du
Utilizarea discului NCurses (
ncdu analizează discul și apoi afișează rezultatele sortate după directoarele sau fișierele cele mai frecvent utilizate, de exemplu:
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
Puteți naviga prin intrări folosind tastele săgeți. Dacă apăsați Enter, ncdu va afișa conținutul directorului selectat:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
Puteți utiliza acest instrument, de exemplu, pentru a determina care fișiere ocupă cel mai mult spațiu pe disc. Puteți merge la directorul anterior apăsând tasta săgeată stânga. Cu ncdu puteți șterge fișiere apăsând tasta d. Solicită confirmare înainte de ștergere. Dacă doriți să dezactivați caracteristica de ștergere pentru a preveni pierderea accidentală a fișierelor valoroase, utilizați opțiunea -r pentru a activa modul de acces numai pentru citire: ncdu -r.
ncdu este disponibil pentru multe platforme și distribuții Linux. De exemplu, puteți folosi dnf pentru a-l instala pe Fedora direct din depozitele oficiale:
$ sudo dnf install ncdu
2. htop vs top
În mod implicit, htop arată astfel:
Spre deosebire de top:
În plus, htop afișează informații de ansamblu despre sistem în partea de sus și un panou pentru rularea comenzilor folosind tastele funcționale în partea de jos. Îl puteți configura apăsând F2 pentru a deschide ecranul de configurare. În Setări, puteți schimba culorile, puteți adăuga sau elimina valori sau puteți modifica opțiunile de afișare a panoului de prezentare generală.
Deși puteți obține o utilizare similară prin modificarea setărilor celor mai recente versiuni de top, htop oferă configurații implicite convenabile, ceea ce îl face mai practic și mai ușor de utilizat.
3. tldr vs om
Instrumentul de linie de comandă tldr afișează informații de ajutor simplificate despre comenzi, mai ales exemple. A fost dezvoltat de comunitate
Este de remarcat faptul că tldr nu este un înlocuitor pentru om. Este încă cel mai cuprinzător și canonic instrument de ieșire a paginii de manual. Cu toate acestea, în unele cazuri, omul este redundant. Când nu aveți nevoie de informații complete despre o comandă, încercați doar să vă amintiți utilizările de bază ale acesteia. De exemplu, pagina de manual pentru comanda curl conține aproape 3000 de linii. Pagina tldr pentru curl are 40 de linii. Fragmentul său arată astfel:
$ 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 înseamnă „prea lung; nu a citit”: adică un text a fost ignorat din cauza verbozității sale excesive. Numele este potrivit pentru acest instrument, deoarece paginile de manual, deși utile, pot fi uneori prea lungi.
Pentru Fedora, tldr a fost scris în Python. Îl puteți instala folosind dnf manager. De obicei, instrumentul necesită acces la internet pentru a funcționa. Dar clientul Python al Fedora permite ca aceste pagini să fie descărcate și stocate în cache pentru acces offline.
4.jq vs sed/grep
jq este un procesor JSON pentru linia de comandă. Este similar cu sed sau grep, dar este conceput special pentru a funcționa cu date JSON. Dacă sunteți un dezvoltator sau un administrator de sistem care utilizează JSON în sarcinile de zi cu zi, acesta este instrumentul pentru dvs.
Principalul avantaj al jq față de instrumentele standard de procesare a textului, cum ar fi grep și sed, este că înțelege structura de date JSON, permițându-vă să creați interogări complexe într-o singură expresie.
De exemplu, încercați să găsiți nume de container în acest fișier 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"
}
}
Rulați grep pentru a găsi numele șirului:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep a returnat toate liniile care conțin numele cuvântului. Puteți adăuga câteva opțiuni suplimentare la grep pentru a-l restricționa și puteți utiliza o anumită manipulare a expresiilor regulate pentru a găsi numele containerelor.
Pentru a obține același rezultat folosind jq, scrieți:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Această comandă vă va oferi numele ambelor containere. Dacă căutați doar numele celui de-al doilea container, adăugați indexul elementului matrice la expresie:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Deoarece jq știe despre structura datelor, produce aceleași rezultate chiar dacă formatul fișierului se modifică ușor. grep și sed ar putea să nu funcționeze corect în acest caz.
jq are multe funcții, dar este nevoie de un alt articol pentru a le descrie. Pentru mai multe informații, vă rugăm contactați
5. fd vs găsi
De exemplu, atunci când căutați fișiere într-un director de depozit Git, fd exclude automat fișierele și subdirectoarele ascunse, inclusiv directorul .git și, de asemenea, ignoră caracterele metalice din fișierul .gitignore. În general, accelerează căutările, returnând rezultate mai relevante la prima încercare.
În mod implicit, fd efectuează o căutare fără majuscule în directorul curent, cu ieșire color. Aceeași căutare folosind comanda find necesită introducerea unor parametri suplimentari pe linia de comandă. De exemplu, pentru a găsi toate fișierele .md (sau .MD) din directorul curent, ați scrie o comandă find ca aceasta:
$ find . -iname "*.md"
Pentru fd arata asa:
$ fd .md
Dar, în unele cazuri, fd necesită și opțiuni suplimentare: de exemplu, dacă doriți să includeți fișiere și directoare ascunse, trebuie să utilizați opțiunea -H, deși aceasta nu este de obicei necesară la căutare.
fd este disponibil pentru multe distribuții Linux. În Fedora poate fi instalat astfel:
$ sudo dnf install fd-find
Nu trebuie să renunți la nimic
Folosiți noile instrumente de linie de comandă Linux? Sau stai exclusiv pe cele vechi? Dar cel mai probabil ai un combo, nu? Vă rugăm să împărtășiți experiența dumneavoastră în comentarii.
Despre drepturile de publicitate
Mulți dintre clienții noștri au apreciat deja beneficiile servere epice!
Aceasta
Sursa: www.habr.com