5 modernas alternatīvas vecajiem Linux komandrindas rīkiem

Izmantojot modernākas alternatīvas kopā ar vecākiem komandrindas rīkiem, varat izklaidēties un pat uzlabot savu produktivitāti.

5 modernas alternatīvas vecajiem Linux komandrindas rīkiem

Ikdienas darbā ar Linux/Unix mēs izmantojam daudzus komandrindas rÄ«kus, piemēram, du, lai uzraudzÄ«tu diska lietojumu un sistēmas resursus. Daži no Å”iem rÄ«kiem ir bijuÅ”i pieejami jau ilgu laiku. Piemēram, top parādÄ«jās 1984. gadā, un pirmais du izlaidums datēts ar 1971. gadu.

Gadu gaitā Å”ie rÄ«ki ir modernizēti un portēti uz dažādām sistēmām, taču kopumā tie nav tikuÅ”i tālu no savām pirmajām versijām, arÄ« izskats un lietojamÄ«ba nav Ä«paÅ”i mainÄ«jusies.

Å ie ir lieliski rÄ«ki, kas nepiecieÅ”ami daudziem sistēmu administratoriem. Tomēr kopiena ir izstrādājusi alternatÄ«vus rÄ«kus, kas piedāvā papildu priekÅ”rocÄ«bas. Dažiem no tiem vienkārÅ”i ir moderns, skaists interfeiss, savukārt citi ievērojami uzlabo lietojamÄ«bu. Å ajā tulkojumā mēs runāsim par piecām alternatÄ«vām standarta Linux komandrindas rÄ«kiem.

1. ncdu vs du

NCurses diska lietojums (ncdu) ir līdzīgs du, taču ar interaktīvu saskarni, kuras pamatā ir lāstu bibliotēka. ncdu parāda direktoriju struktūru, kas aizņem lielāko daļu diska vietas.

ncdu analizē disku un pēc tam parāda rezultātus, kas sakārtoti pēc visbiežāk izmantotajiem direktorijiem vai failiem, piemēram:

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

Varat pārvietoties pa ierakstiem, izmantojot bulttaustiņus. Nospiežot taustiņu Enter, ncdu parādīs atlasītā direktorija saturu:

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

Varat izmantot Å”o rÄ«ku, lai, piemēram, noteiktu, kuri faili aizņem visvairāk vietas diskā. Varat pāriet uz iepriekŔējo direktoriju, nospiežot kreiso bulttaustiņu. Izmantojot ncdu, failus var izdzēst, nospiežot taustiņu d. Pirms dzÄ“Å”anas tas prasa apstiprinājumu. Ja vēlaties atspējot dzÄ“Å”anas funkciju, lai novērstu nejauÅ”u vērtÄ«gu failu zudumu, izmantojiet opciju -r, lai iespējotu tikai lasÄ«Å”anas piekļuves režīmu: ncdu -r.

ncdu ir pieejams daudzām Linux platformām un izplatÄ«jumiem. Piemēram, varat izmantot dnf, lai to instalētu Fedora tieÅ”i no oficiālajām krātuvēm:

$ sudo dnf install ncdu

2. htop vs top

htop ir interaktÄ«vs procesu skatÄ«tājs, kas ir lÄ«dzÄ«gs top, taču tas nodroÅ”ina jauku lietotāja pieredzi. Pēc noklusējuma htop parāda to paÅ”u informāciju kā top, taču vizuāli un krāsainākā veidā.

Pēc noklusējuma htop izskatās Ŕādi:

5 modernas alternatīvas vecajiem Linux komandrindas rīkiem
AtŔķirībā no augŔas:

5 modernas alternatīvas vecajiem Linux komandrindas rīkiem
Turklāt htop augÅ”pusē parāda pārskata informāciju par sistēmu un apakŔā paneli komandu palaiÅ”anai, izmantojot funkciju taustiņus. Varat to konfigurēt, nospiežot taustiņu F2, lai atvērtu konfigurācijas ekrānu. IestatÄ«jumos varat mainÄ«t krāsas, pievienot vai noņemt metriku vai mainÄ«t pārskata paneļa displeja opcijas.

Lai gan lÄ«dzÄ«gu lietojamÄ«bu var panākt, pielāgojot top jaunāko versiju iestatÄ«jumus, htop nodroÅ”ina ērtas noklusējuma konfigurācijas, kas padara to praktiskāku un vieglāk lietojamu.

3. tldr pret vīrieti

Komandrindas rÄ«ks tldr parāda vienkārÅ”otu palÄ«dzÄ«bas informāciju par komandām, galvenokārt piemērus. To izstrādāja kopiena tldr lapu projekts.

Ir vērts atzÄ«mēt, ka tldr neaizstāj cilvēku. Tas joprojām ir kanoniskais un visplaŔākais cilvēka lapas izvades rÄ«ks. Tomēr dažos gadÄ«jumos cilvēks ir lieks. Ja jums nav nepiecieÅ”ama visaptveroÅ”a informācija par komandu, jÅ«s vienkārÅ”i mēģināt atcerēties tās pamata lietojumus. Piemēram, komandas curl man lapā ir gandrÄ«z 3000 rindiņu. Tldr lapa čokuroÅ”anai ir 40 rindiņas gara. Tās fragments izskatās Ŕādi:


$ 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 nozÄ«mē "pārāk garÅ”; nelasÄ«ju": tas ir, kāds teksts tika ignorēts tā pārmērÄ«gās daudzvārdÄ«bas dēļ. Nosaukums ir piemērots Å”im rÄ«kam, jo ā€‹ā€‹rokasgrāmatas lapas, lai arÄ« noderÄ«gas, dažkārt var bÅ«t pārāk garas.

Fedorai tldr tika uzrakstÄ«ts Python valodā. Varat to instalēt, izmantojot dnf pārvaldnieku. Parasti, lai rÄ«ks darbotos, nepiecieÅ”ama piekļuve internetam. Bet Fedora Python klients ļauj Ŕīs lapas lejupielādēt un saglabāt keÅ”atmiņā, lai piekļūtu bezsaistē.

4.jq pret sed/grep

jq ir komandrindas JSON procesors. Tas ir lÄ«dzÄ«gs sed vai grep, taču ir Ä«paÅ”i izstrādāts darbam ar JSON datiem. Ja esat izstrādātājs vai sistēmas administrators, kurÅ” ikdienas uzdevumos izmanto JSON, Å”is ir jums piemērots rÄ«ks.

Galvenā jq priekÅ”rocÄ«ba salÄ«dzinājumā ar standarta teksta apstrādes rÄ«kiem, piemēram, grep un sed, ir tā, ka tas saprot JSON datu struktÅ«ru, ļaujot izveidot sarežģītus vaicājumus vienā izteiksmē.

Piemēram, jÅ«s mēģināt atrast konteineru nosaukumus Å”ajā JSON failā:

{
  "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"
  }
}

Palaidiet grep, lai atrastu virknes nosaukumu:

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

grep atgrieza visas rindas, kas satur vārdu nosaukumu. Varat pievienot vēl dažas grep opcijas, lai to ierobežotu, un izmantot dažas regulāras izteiksmes manipulācijas, lai atrastu konteineru nosaukumus.

Lai iegūtu tādu paŔu rezultātu, izmantojot jq, vienkārŔi rakstiet:

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

Šī komanda sniegs abu konteineru nosaukumus. Ja meklējat tikai otrā konteinera nosaukumu, pievienojiet izteiksmei masīva elementa indeksu:

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

Tā kā jq zina par datu struktūru, tas rada tādus paŔus rezultātus pat tad, ja faila formāts nedaudz mainās. grep un sed Ŕajā gadījumā var nedarboties pareizi.

jq ir daudzas funkcijas, taču, lai tās aprakstītu, ir nepiecieŔams cits raksts. Lai iegūtu vairāk informācijas, lūdzu, sazinieties ar projekta lapa jq vai uz tldr.

5. fd vs atrast

fd ir vienkārÅ”ota alternatÄ«va meklÄ“Å”anas utilÄ«tai. Fd nav paredzēts, lai to pilnÄ«bā aizstātu: tajā pēc noklusējuma ir instalēti visizplatÄ«tākie iestatÄ«jumi, kas nosaka vispārējo pieeju darbam ar failiem.

Piemēram, meklējot failus Git repozitorija direktorijā, fd automātiski izslēdz slēptos failus un apakÅ”direktorijus, tostarp .git direktoriju, kā arÄ« ignorē aizstājējzÄ«mes no faila .gitignore. Kopumā tas paātrina meklÄ“Å”anu, pirmajā mēģinājumā atgriežot atbilstoŔākus rezultātus.

Pēc noklusējuma fd veic meklÄ“Å”anu, kas nav reÄ£istrjutÄ«ga paÅ”reizējā direktorijā ar krāsu izvadi. Tajā paŔā meklÄ“Å”anā, izmantojot komandu atrast, komandrindā ir jāievada papildu parametri. Piemēram, lai atrastu visus .md (vai .MD) failus paÅ”reizējā direktorijā, jums ir jāraksta Ŕāda meklÄ“Å”anas komanda:

$ find . -iname "*.md"

Attiecībā uz fd tas izskatās Ŕādi:

$ fd .md

Bet dažos gadÄ«jumos fd ir nepiecieÅ”amas arÄ« papildu opcijas: piemēram, ja vēlaties iekļaut slēptos failus un direktorijus, jums ir jāizmanto opcija -H, lai gan tas parasti nav nepiecieÅ”ams, veicot meklÄ“Å”anu.

fd ir pieejams daudziem Linux izplatÄ«jumiem. Programmā Fedora to var instalēt Ŕādi:

$ sudo dnf install fd-find

Jums nekas nav jāatsakās

Vai izmantojat jaunos Linux komandrindas rīkus? Vai arī jūs sēžat tikai uz vecajiem? Bet visticamāk jums ir kombinācija, vai ne? Lūdzu, dalieties pieredzē komentāros.

Par reklāmas tiesībām

Daudzi mÅ«su klienti jau ir novērtējuÅ”i priekÅ”rocÄ«bas episki serveri!
Tā virtuālie serveri ar AMD EPYC procesoriem, CPU kodola frekvence līdz 3.4 GHz. Maksimālā konfigurācija ļaus jums izklaidēties - 128 CPU kodoli, 512 GB RAM, 4000 GB NVMe. Steidzieties pasūtīt!

5 modernas alternatīvas vecajiem Linux komandrindas rīkiem

Avots: www.habr.com

Pievieno komentāru