5 alternative moderne la vechile instrumente de linie de comandă Linux

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.

5 alternative moderne la vechile instrumente de linie de comandă Linux

Î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) este similar cu du, dar cu o interfață interactivă bazată pe biblioteca curses. ncdu afișează structura de directoare care ocupă cea mai mare parte a spațiului pe disc.

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

htop este un vizualizator de proces interactiv similar cu cel de sus, dar din cutie oferă o experiență plăcută pentru utilizator. În mod implicit, htop afișează aceleași informații ca și top, dar într-un mod mai vizual și mai colorat.

În mod implicit, htop arată astfel:

5 alternative moderne la vechile instrumente de linie de comandă Linux
Spre deosebire de top:

5 alternative moderne la vechile instrumente de linie de comandă Linux
Î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 proiect pagini tldr.

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 pagina proiectului jq sau la tldr.

5. fd vs găsi

fd este o alternativă simplificată la utilitatea de căutare. Fd nu este destinat să-l înlocuiască complet: are cele mai comune setări instalate implicit, definind abordarea generală a lucrului cu fișierele.

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 servere virtuale cu procesoare AMD EPYC, frecvența de bază a procesorului de până la 3.4 GHz. Configurația maximă vă va permite să vă distrați - 128 de nuclee CPU, 512 GB RAM, 4000 GB NVMe. Grăbește-te să comanzi!

5 alternative moderne la vechile instrumente de linie de comandă Linux

Sursa: www.habr.com

Adauga un comentariu