Ved at bruge både moderne alternativer og gamle kommandolinjeværktøjer kan man få mere glæde og endda øge produktiviteten.

I vores daglige arbejde med Linux/Unix bruger vi mange kommandolinjeværktøjer — for eksempel du til at overvåge disk- og systemressourcer. Nogle af disse værktøjer har eksisteret i mange år. For eksempel dukkede top op i 1984, mens den første udgave af du stammer fra 1971.
I årenes løb er disse værktøjer blevet moderniseret og porteret til forskellige systemer, men generelt er de ikke langt fra deres første versioner; deres udseende og brugervenlighed har også ændret sig lidt.
Disse er fremragende værktøjer, som mange systemadministratorer har brug for. Men samfundet har udviklet alternative værktøjer, der tilbyder ekstra fordele. Nogle har blot et moderne flot grænseflade, mens andre væsentligt forbedrer brugervenligheden. I denne oversigt vil vi tale om fem alternativer til de standard kommandolinjeværktøjer i Linux.
1. ncdu vs du
NCurses Disk Usage () ligner du, men med et interaktivt grænseflade baseret på curses-biblioteket. ncdu viser strukturen af de kataloger, der optager det meste af dit diskplads.
ncdu analyserer disken og viser derefter resultaterne sorteret efter de mest brugte kataloger eller filer, for eksempel:
ncdu 1.14.2 ~ Brug piletasterne til at navigere, tryk på ? for hjælp
--- /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: 561540Du kan navigere gennem posterne med piletasterne. Hvis du trykker på Enter, viser ncdu indholdet af det valgte katalog:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /mediaDu kan bruge dette værktøj til f.eks. at finde ud af, hvilke filer der optager mest diskplads. Du kan gå tilbage til den tidligere mappe ved at trykke på venstre pil-tasten. Med ncdu kan du slette filer ved at trykke på d. Inden sletning beder det om bekræftelse. Hvis du ønsker at deaktivere slettefunktionen for at forhindre utilsigtet tab af værdifulde filer, brug -r optionen for at aktivere skrivebeskyttet tilstand: ncdu -r.
Ncdu er tilgængelig for mange platforme og Linux-distributioner. For eksempel kan du bruge dnf til at installere det på Fedora direkte fra de officielle lagre:
$ sudo dnf install ncdu2. htop vs top
er et interaktivt værktøj til at vise processer, der ligner top, men giver som standard en bedre brugeroplevelse. Htop viser som standard den samme information som top, men på en mere visuelt tiltalende og farverig måde.
Som standard ser htop sådan her ud:

I modsætning til top:

Derudover viser htop oplysninger om systemet øverst, mens den nederste del indeholder en panel til at køre kommandoer ved hjælp af funktionstasterne. Du kan tilpasse det ved at trykke på F2 for at åbne konfigurationsskærmen. I indstillingerne kan du ændre farver, tilføje eller fjerne målinger eller ændre visningsindstillingerne for oversigtspanelet.
Selvom du kan opnå lignende brugervenlighed i de nyeste versioner af top ved at justere indstillingerne, tilbyder htop praktiske standardkonfigurationer, hvilket gør det mere brugervenligt og nemmere at anvende.
3. tldr vs man
Kommandoen tldr viser forenklet referencemateriale om kommandoer, primært eksempler. Det er udviklet af fællesskabet .
Det er værd at bemærke, at tldr ikke er en erstatning for man. Man er stadig det kanoniske og mest omfattende værktøj til at vise man-sider. Dog kan man nogle gange være overflødig. Når du ikke har brug for udtømmende information om en kommando, men bare vil huske de grundlæggende anvendelser. For eksempel indeholder man-siden for kommandoen curl næsten 3000 linjer. Tldr-siden for curl er 40 linjer lang. Et uddrag ser således ud:
$ tldr curl
# curl
Overfører data fra eller til en server.
Understøtter de fleste protokoller, inklusive HTTP, FTP og POP3.
Mere information: .
- Download indholdet af en URL til en fil:
curl http://example.com -o filename
- Download en fil, og gem outputtet under det filnavn, der er angivet af URL'en:
curl -O http://example.com/filename
- Download en fil, følg [L]ocation-omdirigeringer, og fortsæt automatisk (genoptag) en tidligere filoverførsel:
curl -O -L -C - http://example.com/filename
- Send formular-kodede data (POST-anmodning af typen `application/x-www-form-urlencoded`):
curl -d 'name=bob' http://example.com/form
- Send en anmodning med en ekstra header, ved hjælp af en brugerdefineret HTTP-metode:
curl -H 'X-My-Header: 123' -X PUT http://example.com
- Send data i JSON-format og angiv den passende content-type header:
curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234
... TRUNCATED OUTPUTTLDR betyder "for langt; ikke læst": det vil sige, at noget tekst er blevet ignoreret på grund af dens overdrevne langmodighed. Navnet passer til dette værktøj, fordi man-sider, selvom de er nyttige, nogle gange kan være for lange.
For Fedora er tldr skrevet i Python. Du kan installere det med dnf-pakkemanagersystemet. Normalt kræver værktøjet adgang til internettet. Men Python-klienten i Fedora tillader at downloade og cache disse sider til offline adgang.
4. jq vs sed/grep
jq er en JSON-behandler til kommandolinjen. Den ligner sed eller grep, men er specielt designet til at arbejde med data i JSON-format. Hvis du er udvikler eller systemadministrator, der bruger JSON i dit daglige arbejde, er dette værktøjet for dig.
Den primære fordel ved jq frem for standard tekstbehandlingsværktøjer som grep og sed er, at den forstår strukturen af JSON-data, hvilket gør det muligt at lave komplekse forespørgsler i én udtryk.
For eksempel, hvis du vil finde container-navne 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 søge efter linjen name:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",grep returnerede alle linjer, der indeholdt ordet name. Du kan tilføje flere parametre til grep for at begrænse det og ved hjælp af nogle manipulationer med regulære udtryk finde containerne.
For at få det samme resultat med jq, skal du blot 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 container, skal du tilføje indeks til arrayet i udtrykket:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"Da jq kender dataenes struktur, giver det de samme resultater, selv hvis filformatet ændres en smule. grep og sed kan i dette tilfælde muligvis fungere forkert.
jq har mange funktioner, men det kræver endnu en artikel at beskrive dem. For yderligere information, besøg jq eller tldr.
5. fd vs find
— er et forenklet alternativ til find-værktøjet. Fd er ikke beregnet til helt at erstatte det: det har som standard de mest almindelige indstillinger, der bestemmer den generelle tilgang til arbejdet med filer.
For eksempel, når du søger efter filer i et Git-repositorium, udelukker fd automatisk skjulte filer og undermapper, inklusive .git-mappen, og ignorerer også mønstre fra .gitignore-filen. Overordnet set accelererer det søgningen ved at give mere relevante resultater ved første forsøg.
Som standard udfører fd søgningen uden hensyntagen til store og små bogstaver i det nuværende bibliotek med farvet output. Den samme søgning med find-kommandoen kræver, at der indtastes yderligere parametre i kommandolinjen. For eksempel, for at finde alle .md-filer (eller .MD) i det nuværende bibliotek, skal du skrive følgende find-kommando:
$ find . -iname "*.md"For fd ser det sådan ud:
$ fd .mdMen i nogle tilfælde kræver fd også yderligere parametre: for eksempel, hvis du vil inkludere skjulte filer og mapper, skal du bruge -H-parameteren, selvom det normalt ikke er nødvendigt under søgningen.
fd er tilgængelig for mange Linux-distributioner. I Fedora kan det installeres som følger:
$ sudo dnf install fd-findDet er ikke nødvendigt at give afkald på noget
Bruger du de nye kommandolinjeværktøjer i Linux? Eller holder du dig udelukkende til de gamle? Men sandsynligvis har du et mix, ikke? Del venligst dine erfaringer i kommentarerne.
Annoncering
Mange af vores kunder har allerede værdsat fordelene ved episke servere!
Dette , CPU-kernfrekvens op til 3,4 GHz. Den maksimale konfiguration gør det muligt at tage fuld afstand — 128 CPU-kerner, 512 GB RAM, 4000 GB NVMe. Skynd dig at bestille!
Kilde: habr.com
