Durch die Verwendung modernerer Alternativen neben älteren Befehlszeilentools können Sie mehr Spaß haben und sogar Ihre Produktivität steigern.
Bei unserer täglichen Arbeit unter Linux/Unix verwenden wir viele Befehlszeilentools – beispielsweise um die Festplattennutzung und Systemressourcen zu überwachen. Einige dieser Tools gibt es schon seit langem. Top erschien beispielsweise 1984 und die erste Veröffentlichung von du stammt aus dem Jahr 1971.
Im Laufe der Jahre wurden diese Tools modernisiert und auf verschiedene Systeme portiert, aber im Allgemeinen haben sie sich nicht weit von ihren ersten Versionen entfernt, auch ihr Aussehen und ihre Benutzerfreundlichkeit haben sich nicht wesentlich verändert.
Dies sind großartige Tools, die viele Systemadministratoren benötigen. Allerdings hat die Community alternative Tools entwickelt, die zusätzliche Vorteile bieten. Einige von ihnen verfügen einfach über eine moderne, schöne Benutzeroberfläche, während andere die Benutzerfreundlichkeit erheblich verbessern. In dieser Übersetzung werden wir über fünf Alternativen zu Standard-Linux-Befehlszeilentools sprechen.
1. ncdu vs du
NCurses-Festplattennutzung (
ncdu analysiert die Festplatte und zeigt die Ergebnisse dann sortiert nach den am häufigsten verwendeten Verzeichnissen oder Dateien an, zum Beispiel:
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
Mit den Pfeiltasten können Sie durch die Einträge navigieren. Wenn Sie die Eingabetaste drücken, zeigt ncdu den Inhalt des ausgewählten Verzeichnisses an:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
Mit diesem Tool können Sie beispielsweise ermitteln, welche Dateien den meisten Speicherplatz beanspruchen. Durch Drücken der linken Pfeiltaste gelangen Sie zum vorherigen Verzeichnis. Mit ncdu können Sie Dateien löschen, indem Sie die d-Taste drücken. Vor dem Löschen wird eine Bestätigung verlangt. Wenn Sie die Löschfunktion deaktivieren möchten, um den versehentlichen Verlust wertvoller Dateien zu verhindern, verwenden Sie die Option -r, um den schreibgeschützten Zugriffsmodus zu aktivieren: ncdu -r.
ncdu ist für viele Linux-Plattformen und -Distributionen verfügbar. Sie können es beispielsweise mit dnf direkt aus den offiziellen Repositories auf Fedora installieren:
$ sudo dnf install ncdu
2. htop vs. top
Standardmäßig sieht htop so aus:
Im Gegensatz zu oben:
Darüber hinaus zeigt htop oben Übersichtsinformationen über das System und unten ein Panel zum Ausführen von Befehlen über Funktionstasten an. Sie können es konfigurieren, indem Sie F2 drücken, um den Konfigurationsbildschirm zu öffnen. In den Einstellungen können Sie Farben ändern, Metriken hinzufügen oder entfernen oder die Anzeigeoptionen des Übersichtsbereichs ändern.
Obwohl Sie eine ähnliche Benutzerfreundlichkeit erreichen können, indem Sie die Einstellungen der neuesten Versionen von top anpassen, bietet htop praktische Standardkonfigurationen, die die Verwendung praktischer und einfacher machen.
3. Tldr gegen Mann
Das Befehlszeilentool tldr zeigt vereinfachte Hilfeinformationen zu Befehlen an, hauptsächlich Beispiele. Es wurde von der Community entwickelt
Es ist erwähnenswert, dass tldr kein Ersatz für den Menschen ist. Es ist immer noch das kanonische und umfassendste Manpage-Ausgabetool. In manchen Fällen ist der Mensch jedoch überflüssig. Wenn Sie keine umfassenden Informationen zu einem Befehl benötigen, versuchen Sie lediglich, sich an dessen grundlegende Verwendung zu erinnern. Beispielsweise enthält die Manpage für den Curl-Befehl fast 3000 Zeilen. Die TLDR-Seite für Curl ist 40 Zeilen lang. Sein Fragment sieht so aus:
$ 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 bedeutet „zu lang; nicht gelesen“: Das heißt, ein Teil des Textes wurde aufgrund seiner übermäßigen Ausführlichkeit ignoriert. Der Name ist für dieses Tool passend, da die Manpages zwar nützlich, aber manchmal zu lang sein können.
Für Fedora wurde tldr in Python geschrieben. Sie können es mit dem DNF-Manager installieren. Normalerweise benötigt das Tool zum Betrieb einen Internetzugang. Aber der Python-Client von Fedora ermöglicht das Herunterladen und Zwischenspeichern dieser Seiten für den Offline-Zugriff.
4.jq vs. sed/grep
jq ist ein JSON-Prozessor für die Befehlszeile. Es ähnelt sed oder grep, ist jedoch speziell für die Arbeit mit JSON-Daten konzipiert. Wenn Sie ein Entwickler oder Systemadministrator sind, der JSON für alltägliche Aufgaben verwendet, ist dies das richtige Tool für Sie.
Der Hauptvorteil von jq gegenüber Standard-Textverarbeitungstools wie grep und sed besteht darin, dass es die JSON-Datenstruktur versteht, sodass Sie komplexe Abfragen in einem einzigen Ausdruck erstellen können.
Sie versuchen beispielsweise, Containernamen in dieser JSON-Datei zu finden:
{
"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"
}
}
Führen Sie grep aus, um den Stringnamen zu finden:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep hat alle Zeilen zurückgegeben, die das Wort name enthalten. Sie können grep einige weitere Optionen hinzufügen, um es einzuschränken, und einige reguläre Ausdrucksmanipulationen verwenden, um die Containernamen zu finden.
Um mit jq das gleiche Ergebnis zu erzielen, schreiben Sie einfach:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Mit diesem Befehl erhalten Sie die Namen beider Container. Wenn Sie nur nach dem Namen des zweiten Containers suchen, fügen Sie dem Ausdruck den Index des Array-Elements hinzu:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Da jq die Datenstruktur kennt, liefert es die gleichen Ergebnisse, auch wenn sich das Dateiformat geringfügig ändert. grep und sed funktionieren in diesem Fall möglicherweise nicht richtig.
jq hat viele Funktionen, aber es ist ein weiterer Artikel erforderlich, um sie zu beschreiben. Für mehr Informationen, kontaktieren sie bitte
5. fd vs find
Wenn Sie beispielsweise nach Dateien in einem Git-Repository-Verzeichnis suchen, schließt fd automatisch versteckte Dateien und Unterverzeichnisse aus, einschließlich des .git-Verzeichnisses, und ignoriert auch Platzhalter aus der .gitignore-Datei. Insgesamt beschleunigt es die Suche, indem es beim ersten Versuch relevantere Ergebnisse liefert.
Standardmäßig führt fd eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung im aktuellen Verzeichnis mit Farbausgabe durch. Die gleiche Suche mit dem Befehl „find“ erfordert die Eingabe zusätzlicher Parameter in der Befehlszeile. Um beispielsweise alle .md-Dateien (oder .MD-Dateien) im aktuellen Verzeichnis zu finden, würden Sie einen Suchbefehl wie diesen schreiben:
$ find . -iname "*.md"
Für fd sieht es so aus:
$ fd .md
In einigen Fällen benötigt fd aber auch zusätzliche Optionen: Wenn Sie beispielsweise versteckte Dateien und Verzeichnisse einbeziehen möchten, müssen Sie die Option -H verwenden, obwohl dies bei der Suche normalerweise nicht erforderlich ist.
fd ist für viele Linux-Distributionen verfügbar. In Fedora kann es folgendermaßen installiert werden:
$ sudo dnf install fd-find
Sie müssen auf nichts verzichten
Verwenden Sie die neuen Linux-Befehlszeilentools? Oder sitzt ihr ausschließlich auf den alten? Aber höchstwahrscheinlich haben Sie eine Kombination, oder? Bitte teilen Sie Ihre Erfahrungen in den Kommentaren.
Über die Rechte der Werbung
Viele unserer Kunden haben die Vorteile bereits zu schätzen gelernt epische Server!
Es
Source: habr.com