Ved at bruge mere moderne alternativer sammen med ældre kommandolinjeværktøjer kan du have det sjovere og endda forbedre din produktivitet.
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 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
Som standard ser htop sådan ud:
I modsætning til top:
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
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
5. fd vs find
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
Kilde: www.habr.com