5 moderne alternativer til gamle Linux-kommandolinjeverktøy

Ved å bruke mer moderne alternativer sammen med eldre kommandolinjeverktøy, kan du ha det mer moro og til og med forbedre produktiviteten.

5 moderne alternativer til gamle Linux-kommandolinjeverktøy

I vårt daglige arbeid med Linux/Unix bruker vi mange kommandolinjeverktøy - for eksempel for å overvåke diskbruk og systemressurser. Noen av disse verktøyene har eksistert i lang tid. For eksempel dukket toppen opp i 1984, og den første utgivelsen av du dateres tilbake til 1971.

Gjennom årene har disse verktøyene blitt modernisert og portert til forskjellige systemer, men generelt har de ikke beveget seg langt fra de første versjonene, utseendet og brukervennligheten har heller ikke endret seg mye.

Dette er flotte verktøy som mange systemadministratorer trenger. Fellesskapet har imidlertid utviklet alternative verktøy som tilbyr ytterligere fordeler. Noen av dem har rett og slett et moderne, vakkert grensesnitt, mens andre forbedrer brukervennligheten betydelig. I denne oversettelsen vil vi snakke om fem alternativer til standard Linux-kommandolinjeverktøy.

1. ncdu vs du

NCurses diskbruk (ncdu) ligner på du, men med et interaktivt grensesnitt basert på curses-biblioteket. ncdu viser katalogstrukturen som tar opp mesteparten av diskplassen din.

ncdu analyserer disken og viser deretter resultatene sortert etter de mest brukte katalogene eller filene, for eksempel:

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

Du kan navigere gjennom oppføringene ved hjelp av piltastene. Hvis du trykker Enter, vil ncdu vise innholdet i den valgte katalogen:

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

Du kan bruke dette verktøyet til for eksempel å finne ut hvilke filer som tar opp mest diskplass. Du kan gå til forrige katalog ved å trykke på venstre piltast. Med ncdu kan du slette filer ved å trykke på d-tasten. Den ber om bekreftelse før sletting. Hvis du vil deaktivere slettefunksjonen for å forhindre utilsiktet tap av verdifulle filer, bruk alternativet -r for å aktivere skrivebeskyttet tilgangsmodus: ncdu -r.

ncdu er tilgjengelig for mange Linux-plattformer og distribusjoner. For eksempel kan du bruke dnf til å installere det på Fedora direkte fra de offisielle depotene:

$ sudo dnf install ncdu

2. htop vs topp

htop er en interaktiv prosessviser som ligner på topp, men ut av esken gir den en fin brukeropplevelse. Som standard viser htop samme informasjon som top, men på en mer visuell og fargerik måte.

Som standard ser htop slik ut:

5 moderne alternativer til gamle Linux-kommandolinjeverktøy
I motsetning til toppen:

5 moderne alternativer til gamle Linux-kommandolinjeverktøy
I tillegg viser htop oversiktsinformasjon om systemet øverst, og et panel for kjøring av kommandoer ved hjelp av funksjonstaster nederst. Du kan konfigurere den ved å trykke F2 for å åpne konfigurasjonsskjermen. I Innstillinger kan du endre farger, legge til eller fjerne beregninger eller endre visningsalternativene for oversiktspanelet.

Selv om du kan oppnå lignende brukervennlighet ved å justere innstillingene til de nyeste versjonene av top, gir htop praktiske standardkonfigurasjoner, noe som gjør det mer praktisk og enklere å bruke.

3. tldr vs mann

tldr-kommandolinjeverktøyet viser forenklet hjelpeinformasjon om kommandoer, for det meste eksempler. Det ble utviklet av samfunnet tldr sider prosjekt.

Det er verdt å merke seg at tldr ikke er en erstatning for mennesket. Det er fortsatt det kanoniske og mest omfattende utdataverktøyet for manside. Men i noen tilfeller er mennesket overflødig. Når du ikke trenger omfattende informasjon om en kommando, prøver du bare å huske dens grunnleggende bruk. For eksempel inneholder man-siden for curl-kommandoen nesten 3000 linjer. Tldr-siden for curl er 40 linjer lang. Fragmentet ser slik ut:


$ 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 betyr "for lang; leste ikke": det vil si at en del tekst ble ignorert på grunn av dens overdrevne ordlyd. Navnet er passende for dette verktøyet fordi man-sidene, selv om de er nyttige, noen ganger kan være for lange.

For Fedora ble tldr skrevet i Python. Du kan installere den ved å bruke dnf manager. Vanligvis krever verktøyet internettilgang for å fungere. Men Fedoras Python-klient lar disse sidene lastes ned og bufres for offline tilgang.

4.jq vs sed/grep

jq er en JSON-prosessor for kommandolinjen. Det ligner på sed eller grep, men er spesielt designet for å fungere med JSON-data. Hvis du er en utvikler eller systemadministrator som bruker JSON i daglige gjøremål, er dette verktøyet for deg.

Den største fordelen med jq fremfor standard tekstbehandlingsverktøy som grep og sed er at den forstår JSON-datastrukturen, slik at du kan lage komplekse spørringer i et enkelt uttrykk.

Du prøver for eksempel å finne beholdernavn i denne JSON-filen:

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

Kjør grep for å finne strengnavnet:

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

grep returnerte alle linjer som inneholder ordet navn. Du kan legge til noen flere alternativer til grep for å begrense det, og bruke litt regulære uttrykksmanipulasjoner for å finne beholdernavnene.

For å få samme resultat ved å bruke jq, skriv bare:

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

Denne kommandoen vil gi deg navnene på begge beholderne. Hvis du bare ser etter navnet på den andre beholderen, legger du til indeksen til matriseelementet i uttrykket:

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

Siden jq kjenner til datastrukturen, gir den de samme resultatene selv om filformatet endres litt. grep og sed fungerer kanskje ikke riktig i dette tilfellet.

jq har mange funksjoner, men det trengs en annen artikkel for å beskrive dem. Ta kontakt for mer informasjon prosjektsiden jq eller til tldr.

5. fd vs finne

fd er et forenklet alternativ til finneverktøyet. Fd er ikke ment å erstatte den fullstendig: den har de vanligste innstillingene installert som standard, og definerer den generelle tilnærmingen til å jobbe med filer.

For eksempel, når du søker etter filer i en Git-depotkatalog, ekskluderer fd automatisk skjulte filer og underkataloger, inkludert .git-katalogen, og ignorerer også jokertegn fra .gitignore-filen. Totalt sett setter det fart på søk ved å returnere mer relevante resultater på første forsøk.

Som standard utfører fd et søk som ikke skiller mellom store og små bokstaver i gjeldende katalog, med fargeutdata. Det samme søket ved å bruke finn-kommandoen krever å angi flere parametere på kommandolinjen. For å finne alle .md (eller .MD)-filer i gjeldende katalog, skriver du for eksempel en find-kommando slik:

$ find . -iname "*.md"

For fd ser det slik ut:

$ fd .md

Men i noen tilfeller krever fd også flere alternativer: for eksempel, hvis du vil inkludere skjulte filer og kataloger, må du bruke -H-alternativet, selv om dette vanligvis ikke er nødvendig når du søker.

fd er tilgjengelig for mange Linux-distribusjoner. I Fedora kan det installeres slik:

$ sudo dnf install fd-find

Du trenger ikke gi opp noe

Bruker du de nye Linux-kommandolinjeverktøyene? Eller sitter du utelukkende på de gamle? Men mest sannsynlig har du en kombinasjon, ikke sant? Del gjerne opplevelsen din i kommentarene.

Om rettighetene til annonsering

Mange av våre kunder har allerede satt pris på fordelene episke servere!
Den virtuelle servere med AMD EPYC-prosessorer, CPU-kjernefrekvens opptil 3.4 GHz. Den maksimale konfigurasjonen vil tillate deg å ha en eksplosjon - 128 CPU-kjerner, 512 GB RAM, 4000 GB NVMe. Skynd deg å bestille!

5 moderne alternativer til gamle Linux-kommandolinjeverktøy

Kilde: www.habr.com

Legg til en kommentar