Door modernere alternatieven te gebruiken naast oudere opdrachtregelprogramma's, kunt u meer plezier beleven en zelfs uw productiviteit verbeteren.
In ons dagelijkse werk op Linux/Unix gebruiken we veel opdrachtregelprogramma's, bijvoorbeeld om het schijfgebruik en de systeembronnen te controleren. Sommige van deze tools bestaan al heel lang. Top verscheen bijvoorbeeld in 1984 en de eerste release van du dateert uit 1971.
Door de jaren heen zijn deze tools gemoderniseerd en overgezet naar verschillende systemen, maar over het algemeen zijn ze niet ver verwijderd van hun eerste versies, hun uiterlijk en bruikbaarheid zijn ook niet veel veranderd.
Dit zijn geweldige tools die veel systeembeheerders nodig hebben. De gemeenschap heeft echter alternatieve hulpmiddelen ontwikkeld die extra voordelen bieden. Sommigen van hen hebben simpelweg een moderne, mooie interface, terwijl andere de bruikbaarheid enorm verbeteren. In deze vertaling zullen we het hebben over vijf alternatieven voor standaard Linux-opdrachtregelprogramma's.
1. ncdu versus du
NCurses schijfgebruik (
ncdu analyseert de schijf en geeft vervolgens de resultaten weer, gesorteerd op de meest gebruikte mappen of bestanden, bijvoorbeeld:
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
Met de pijltjestoetsen kunt u door de vermeldingen navigeren. Als u op Enter drukt, geeft ncdu de inhoud van de geselecteerde map weer:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
Met deze tool kunt u bijvoorbeeld bepalen welke bestanden de meeste schijfruimte in beslag nemen. U kunt naar de vorige map gaan door op de pijl-links te drukken. Met ncdu kun je bestanden verwijderen door op de d-toets te drukken. Er wordt om bevestiging gevraagd voordat het wordt verwijderd. Als u de verwijderfunctie wilt uitschakelen om onbedoeld verlies van waardevolle bestanden te voorkomen, gebruikt u de optie -r om de alleen-lezen toegangsmodus in te schakelen: ncdu -r.
ncdu is beschikbaar voor veel Linux-platforms en -distributies. Je kunt bijvoorbeeld dnf gebruiken om het rechtstreeks op Fedora te installeren vanuit de officiële repositories:
$ sudo dnf install ncdu
2. htop versus top
Standaard ziet htop er zo uit:
In tegenstelling tot boven:
Bovendien geeft htop bovenaan overzichtsinformatie over het systeem weer, en onderaan een paneel voor het uitvoeren van opdrachten met behulp van functietoetsen. U kunt het configureren door op F2 te drukken om het configuratiescherm te openen. In Instellingen kunt u kleuren wijzigen, statistieken toevoegen of verwijderen, of de weergaveopties van het overzichtspaneel wijzigen.
Hoewel je een vergelijkbare bruikbaarheid kunt bereiken door de instellingen van de nieuwste versies van top aan te passen, biedt htop handige standaardconfiguraties, waardoor het praktischer en gemakkelijker te gebruiken is.
3. tldr versus man
Het opdrachtregelprogramma tldr geeft vereenvoudigde helpinformatie over opdrachten weer, voornamelijk voorbeelden. Het is ontwikkeld door de gemeenschap
Het is vermeldenswaard dat tldr geen vervanging is voor de mens. Het is nog steeds de canonieke en meest uitgebreide tool voor het uitvoeren van manpagina's. In sommige gevallen is de mens echter overbodig. Als u geen uitgebreide informatie over een opdracht nodig heeft, probeert u alleen het basisgebruik ervan te onthouden. De manpagina voor de curl-opdracht bevat bijvoorbeeld bijna 3000 regels. De tldr-pagina voor curl is 40 regels lang. Het fragment ziet er als volgt uit:
$ 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 betekent “te lang; niet gelezen": dat wil zeggen dat een tekst werd genegeerd vanwege de buitensporige breedsprakigheid. De naam is passend voor dit hulpmiddel omdat de manpagina's, hoewel nuttig, soms te lang kunnen zijn.
Voor Fedora is tldr geschreven in Python. Je kunt het installeren met dnf-manager. Normaal gesproken heeft de tool internettoegang nodig om te kunnen werken. Maar Fedora's Python-client staat toe dat deze pagina's worden gedownload en in de cache worden opgeslagen voor offline toegang.
4.jq versus sed/grep
jq is een JSON-processor voor de opdrachtregel. Het is vergelijkbaar met sed of grep, maar is specifiek ontworpen om met JSON-gegevens te werken. Als u een ontwikkelaar of systeembeheerder bent die JSON gebruikt bij dagelijkse taken, dan is dit de tool voor u.
Het belangrijkste voordeel van jq ten opzichte van standaard tekstverwerkingshulpmiddelen zoals grep en sed is dat het de JSON-datastructuur begrijpt, waardoor u complexe query's in één enkele expressie kunt maken.
U probeert bijvoorbeeld containernamen te vinden in dit JSON-bestand:
{
"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"
}
}
Voer grep uit om de stringnaam te vinden:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep retourneerde alle regels die het woord naam bevatten. Je kunt nog een paar opties aan grep toevoegen om het te beperken, en wat manipulatie van reguliere expressies gebruiken om de containernamen te vinden.
Om hetzelfde resultaat te krijgen met jq, schrijft u gewoon:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Met deze opdracht krijgt u de namen van beide containers. Als u alleen naar de naam van de tweede container zoekt, voegt u de index van het array-element toe aan de expressie:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Omdat jq de datastructuur kent, levert het dezelfde resultaten op, zelfs als het bestandsformaat enigszins verandert. grep en sed werken in dit geval mogelijk niet correct.
jq heeft veel functies, maar er is een ander artikel nodig om ze te beschrijven. Voor meer informatie kunt u contact opnemen met
5. fd versus vinden
Bij het zoeken naar bestanden in een Git-repositorymap sluit fd bijvoorbeeld automatisch verborgen bestanden en submappen uit, inclusief de .git-map, en negeert ook jokertekens uit het .gitignore-bestand. Over het algemeen versnelt het zoekopdrachten door bij de eerste poging relevantere resultaten te retourneren.
Standaard voert fd een hoofdletterongevoelige zoekopdracht uit in de huidige map, met kleuruitvoer. Voor dezelfde zoekopdracht met behulp van de opdracht find zijn aanvullende parameters op de opdrachtregel ingevoerd. Om bijvoorbeeld alle .md- (of .MD-) bestanden in de huidige map te vinden, schrijft u een find-opdracht als volgt:
$ find . -iname "*.md"
Voor fd ziet het er als volgt uit:
$ fd .md
Maar in sommige gevallen vereist fd ook extra opties: als je bijvoorbeeld verborgen bestanden en mappen wilt opnemen, moet je de optie -H gebruiken, hoewel dit meestal niet nodig is bij het zoeken.
fd is beschikbaar voor veel Linux-distributies. In Fedora kan het als volgt worden geïnstalleerd:
$ sudo dnf install fd-find
Je hoeft niets op te geven
Gebruikt u de nieuwe Linux-opdrachtregelprogramma's? Of zit je uitsluitend op de oude? Maar hoogstwaarschijnlijk heb je een combo, toch? Deel uw ervaring in de reacties.
Als advertentie
Veel van onze klanten hebben de voordelen al op prijs gesteld epische servers!
Het
Bron: www.habr.com