Genom att använda modernare alternativ tillsammans med äldre kommandoradsverktyg kan du ha roligare och till och med förbättra din produktivitet.
I vårt dagliga arbete med Linux/Unix använder vi många kommandoradsverktyg - till exempel för att övervaka diskanvändning och systemresurser. Vissa av dessa verktyg har funnits länge. Till exempel dök top upp 1984, och den första utgåvan av du går tillbaka till 1971.
Genom åren har dessa verktyg moderniserats och porterats till olika system, men generellt sett har de inte flyttat sig långt från sina första versioner, deras utseende och användbarhet har inte heller förändrats mycket.
Det här är fantastiska verktyg som många systemadministratörer behöver. Gemenskapen har dock utvecklat alternativa verktyg som erbjuder ytterligare fördelar. Vissa av dem har helt enkelt ett modernt, vackert gränssnitt, medan andra förbättrar användbarheten avsevärt. I den här översättningen kommer vi att prata om fem alternativ till vanliga Linux-kommandoradsverktyg.
1. ncdu vs du
NCurses diskanvändning (
ncdu analyserar disken och visar sedan resultaten sorterade efter de mest använda katalogerna eller filerna, till exempel:
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 navigera genom posterna med hjälp av piltangenterna. Om du trycker på Enter kommer ncdu att visa innehållet i den valda katalogen:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
Du kan använda det här verktyget för att till exempel avgöra vilka filer som tar upp mest diskutrymme. Du kan gå till föregående katalog genom att trycka på vänsterpilen. Med ncdu kan du radera filer genom att trycka på d-tangenten. Den ber om bekräftelse innan den raderas. Om du vill inaktivera raderingsfunktionen för att förhindra oavsiktlig förlust av värdefulla filer, använd alternativet -r för att aktivera skrivskyddat läge: ncdu -r.
ncdu är tillgängligt för många Linux-plattformar och distributioner. Till exempel kan du använda dnf för att installera det på Fedora direkt från de officiella förråden:
$ sudo dnf install ncdu
2. htop vs topp
Som standard ser htop ut så här:
Till skillnad från toppen:
Dessutom visar htop översiktsinformation om systemet längst upp och en panel för att köra kommandon med funktionstangenter längst ner. Du kan konfigurera den genom att trycka på F2 för att öppna konfigurationsskärmen. I Inställningar kan du ändra färger, lägga till eller ta bort mätvärden eller ändra visningsalternativen för översiktspanelen.
Även om du kan uppnå liknande användbarhet genom att justera inställningarna för de senaste versionerna av top, ger htop bekväma standardkonfigurationer, vilket gör det mer praktiskt och enklare att använda.
3. tldr vs man
Kommandoradsverktyget tldr visar förenklad hjälpinformation om kommandon, mest exempel. Det utvecklades av samhället
Det är värt att notera att tldr inte är en ersättning för människan. Det är fortfarande det kanoniska och mest omfattande utmatningsverktyget för mansidan. Men i vissa fall är människan överflödig. När du inte behöver heltäckande information om ett kommando, försöker du bara komma ihåg dess grundläggande användningsområden. Till exempel innehåller man-sidan för curl-kommandot nästan 3000 rader. Tldr-sidan för curl är 40 rader lång. Dess fragment ser ut så här:
$ 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 "för lång; läste inte": det vill säga en del text ignorerades på grund av dess överdrivna utförlighet. Namnet är lämpligt för det här verktyget eftersom man-sidorna, även om de är användbara, ibland kan vara för långa.
För Fedora skrevs tldr i Python. Du kan installera det med dnf manager. Vanligtvis kräver verktyget internetåtkomst för att fungera. Men Fedoras Python-klient tillåter att dessa sidor laddas ner och cachelagras för offlineåtkomst.
4.jq vs sed/grep
jq är en JSON-processor för kommandoraden. Det liknar sed eller grep, men är speciellt utformat för att fungera med JSON-data. Om du är en utvecklare eller systemadministratör som använder JSON i vardagliga uppgifter är detta verktyget för dig.
Den största fördelen med jq jämfört med vanliga textbearbetningsverktyg som grep och sed är att den förstår JSON-datastrukturen, vilket gör att du kan skapa komplexa frågor i ett enda uttryck.
Du försöker till exempel hitta behållarnamn i den här 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"
}
}
Kör grep för att hitta strängens namn:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep returnerade alla rader som innehåller ordet namn. Du kan lägga till några fler alternativ till grep för att begränsa det och använda en del reguljära uttrycksmanipulationer för att hitta behållarnamnen.
För att få samma resultat med jq, skriv bara:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Detta kommando ger dig namnen på båda behållarna. Om du bara letar efter namnet på den andra behållaren, lägg till indexet för arrayelementet till uttrycket:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Eftersom jq känner till datastrukturen ger den samma resultat även om filformatet ändras något. grep och sed kanske inte fungerar korrekt i det här fallet.
jq har många funktioner, men det behövs en annan artikel för att beskriva dem. För mer information vänligen kontakta
5. fd vs hitta
Till exempel, när du söker efter filer i en Git-repository-katalog, exkluderar fd automatiskt dolda filer och underkataloger, inklusive .git-katalogen, och ignorerar även jokertecken från .gitignore-filen. Sammantaget snabbar det upp sökningar genom att returnera mer relevanta resultat vid första försöket.
Som standard utför fd en skiftlägesokänslig sökning i den aktuella katalogen, med färgutdata. Samma sökning med kommandot find kräver att ytterligare parametrar anges på kommandoraden. Till exempel, för att hitta alla .md (eller .MD)-filer i den aktuella katalogen, skulle du skriva ett find-kommando så här:
$ find . -iname "*.md"
För fd ser det ut så här:
$ fd .md
Men i vissa fall kräver fd också ytterligare alternativ: om du till exempel vill inkludera dolda filer och kataloger måste du använda alternativet -H, även om detta vanligtvis inte krävs vid sökning.
fd är tillgängligt för många Linux-distributioner. I Fedora kan det installeras så här:
$ sudo dnf install fd-find
Du behöver inte ge upp någonting
Använder du de nya kommandoradsverktygen för Linux? Eller sitter du uteslutande på de gamla? Men mest troligt har du en kombo, eller hur? Vänligen dela din upplevelse i kommentarerna.
Om reklamens rättigheter
Många av våra kunder har redan uppskattat fördelarna episka servrar!
Den
Källa: will.com