5 moderne alternativer til gamle Linux-kommandolinjeværktøjer

Ved at bruge mere moderne alternativer sammen med ældre kommandolinjeværktøjer kan du have det sjovere og endda forbedre din produktivitet.

5 moderne alternativer til gamle Linux-kommandolinjeværktøjer

I vores daglige arbejde med Linux/Unix bruger vi mange kommandolinjeværktøjer - for eksempel for at overvåge diskbrug og systemressourcer. Nogle af disse værktøjer har eksisteret i lang tid. For eksempel dukkede top op i 1984, og den første udgivelse af du går tilbage til 1971.

Gennem årene er disse værktøjer blevet moderniseret og overført til forskellige systemer, men generelt har de ikke bevæget sig langt fra deres første versioner, deres udseende og brugervenlighed har heller ikke ændret sig meget.

Disse er gode værktøjer, som mange systemadministratorer har brug for. Fællesskabet har dog udviklet alternative værktøjer, der tilbyder yderligere fordele. Nogle af dem har simpelthen en moderne, smuk grænseflade, mens andre i høj grad forbedrer brugervenligheden. I denne oversættelse vil vi tale om fem alternativer til standard Linux-kommandolinjeværktøjer.

1. ncdu vs du

NCurses diskbrug (NCDU) ligner du, men med en interaktiv grænseflade baseret på curses-biblioteket. ncdu viser den mappestruktur, der optager det meste af din diskplads.

ncdu analyserer disken og viser derefter resultaterne sorteret efter de mest brugte mapper eller filer, 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 gennem indtastningerne ved hjælp af piletasterne. Hvis du trykker på Enter, vil ncdu vise indholdet af den valgte mappe:

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

Du kan bruge dette værktøj til for eksempel at bestemme, hvilke filer der optager mest diskplads. Du kan gå til den forrige mappe ved at trykke på venstre piletast. Med ncdu kan du slette filer ved at trykke på d-tasten. Den beder om bekræftelse før sletning. Hvis du vil deaktivere slettefunktionen for at forhindre utilsigtet tab af værdifulde filer, skal du bruge -r-indstillingen for at aktivere skrivebeskyttet adgangstilstand: ncdu -r.

ncdu er tilgængelig for mange Linux-platforme og distributioner. For eksempel kan du bruge dnf til at installere det på Fedora direkte fra de officielle arkiver:

$ sudo dnf install ncdu

2. htop vs top

htop er en interaktiv procesfremviser, der ligner top, men ud af boksen giver den en god brugeroplevelse. Som standard viser htop de samme oplysninger som top, men på en mere visuel og farverig måde.

Som standard ser htop sådan ud:

5 moderne alternativer til gamle Linux-kommandolinjeværktøjer
I modsætning til top:

5 moderne alternativer til gamle Linux-kommandolinjeværktøjer
Derudover viser htop oversigtsoplysninger om systemet øverst, og et panel til at køre kommandoer ved hjælp af funktionstaster nederst. Du kan konfigurere den ved at trykke på F2 for at åbne konfigurationsskærmen. I Indstillinger kan du ændre farver, tilføje eller fjerne metrics eller ændre visningsindstillingerne for oversigtspanelet.

Selvom du kan opnå lignende brugervenlighed ved at justere indstillingerne for de nyeste versioner af top, giver htop praktiske standardkonfigurationer, hvilket gør det mere praktisk og lettere at bruge.

3. tldr vs mand

Kommandolinjeværktøjet tldr viser forenklet hjælpeinformation om kommandoer, for det meste eksempler. Det er udviklet af samfundet tldr sider projekt.

Det er værd at bemærke, at tldr ikke er en erstatning for mennesket. Det er stadig det kanoniske og mest omfattende man-side-outputværktøj. Men i nogle tilfælde er mennesket overflødigt. Når du ikke har brug for omfattende information om en kommando, prøver du bare at huske dens grundlæggende anvendelser. For eksempel indeholder man-siden til curl-kommandoen næsten 3000 linjer. Tldr-siden for curl er 40 linjer lang. Dens fragment ser således ud:


$ 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 betyder "for lang; læste ikke": det vil sige, at noget tekst blev ignoreret på grund af dens overdrevne ordlyd. Navnet er passende for dette værktøj, fordi man-siderne, selvom de er nyttige, nogle gange kan være for lange.

For Fedora blev tldr skrevet i Python. Du kan installere det ved hjælp af dnf manager. Typisk kræver værktøjet internetadgang for at fungere. Men Fedoras Python-klient tillader, at disse sider kan downloades og cachelagres til offlineadgang.

4.jq vs sed/grep

jq er en JSON-processor til kommandolinjen. Det ligner sed eller grep, men er specifikt designet til at arbejde med JSON-data. Hvis du er en udvikler eller systemadministrator, der bruger JSON i daglige opgaver, er dette værktøjet for dig.

Den største fordel ved jq i forhold til standard tekstbehandlingsværktøjer såsom grep og sed er, at den forstår JSON-datastrukturen, så du kan oprette komplekse forespørgsler i et enkelt udtryk.

For eksempel forsøger du at finde containernavne i denne JSON-fil:

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

Kør grep for at finde strengnavnet:

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

grep returnerede alle linjer, der indeholdt ordet navn. Du kan tilføje et par flere muligheder til grep for at begrænse det, og bruge nogle regulære udtryksmanipulationer til at finde containernavnene.

For at få det samme resultat ved hjælp af jq, skal du bare skrive:

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

Denne kommando vil give dig navnene på begge containere. Hvis du kun leder efter navnet på den anden beholder, skal du tilføje indekset for array-elementet til udtrykket:

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

Da jq kender til datastrukturen, giver det de samme resultater, selvom filformatet ændrer sig lidt. grep og sed fungerer muligvis ikke korrekt i dette tilfælde.

jq har mange funktioner, men en anden artikel er nødvendig for at beskrive dem. For mere information kontakt venligst projektside jq eller til tldr.

5. fd vs find

fd er et forenklet alternativ til søgeværktøjet. Fd er ikke beregnet til at erstatte det fuldstændigt: det har de mest almindelige indstillinger installeret som standard, hvilket definerer den generelle tilgang til at arbejde med filer.

For eksempel, når du søger efter filer i et Git-lagerbibliotek, udelukker fd automatisk skjulte filer og undermapper, inklusive .git-mappen, og ignorerer også jokertegn fra .gitignore-filen. Samlet set fremskynder det søgninger ved at returnere mere relevante resultater i første forsøg.

Som standard udfører fd en søgning uden store og små bogstaver i den aktuelle mappe med farveoutput. Den samme søgning ved hjælp af find-kommandoen kræver indtastning af yderligere parametre på kommandolinjen. For at finde alle .md (eller .MD) filer i den aktuelle mappe, vil du for eksempel skrive en find kommando som denne:

$ find . -iname "*.md"

For fd ser det sådan ud:

$ fd .md

Men i nogle tilfælde kræver fd også yderligere muligheder: for eksempel, hvis du vil inkludere skjulte filer og mapper, skal du bruge -H muligheden, selvom dette normalt ikke er påkrævet, når du søger.

fd er tilgængelig for mange Linux-distributioner. I Fedora kan det installeres sådan:

$ sudo dnf install fd-find

Du behøver ikke at opgive noget

Bruger du de nye Linux kommandolinjeværktøjer? Eller sidder du udelukkende på de gamle? Men højst sandsynligt har du en combo, ikke? Del venligst din oplevelse i kommentarerne.

Om reklamernes rettigheder

Mange af vores kunder har allerede sat pris på fordelene episke servere!
Det virtuelle servere med AMD EPYC-processorer, CPU-kernefrekvens op til 3.4 GHz. Den maksimale konfiguration vil tillade dig at have en blast - 128 CPU-kerner, 512 GB RAM, 4000 GB NVMe. Skynd dig at bestille!

5 moderne alternativer til gamle Linux-kommandolinjeværktøjer

Kilde: www.habr.com

Tilføj en kommentar