Bei unserer täglichen Verwendung von Linux/Unix-Systemen verwenden wir viele Befehlszeilen-Tools, um unsere Arbeit abzuschließen und unsere Systeme zu verstehen und zu verwalten – Tools wie du
zur Überwachung der Festplattenauslastung und top
um Systemressourcen anzuzeigen. Einige dieser Tools gibt es schon lange. Beispiel:top
wurde erstmals 1984 veröffentlicht, während du
's erste Veröffentlichung stammt aus dem Jahr 1971.
Im Laufe der Jahre wurden diese Tools modernisiert und auf verschiedene Systeme portiert, aber im Allgemeinen folgen sie immer noch ihrer ursprünglichen Idee, ihrem Aussehen und ihrem Verhalten.
Dies sind großartige Tools, die für die Arbeitsabläufe vieler Systemadministratoren unerlässlich sind. In den letzten Jahren hat die Open-Source-Community jedoch alternative Tools entwickelt, die zusätzliche Vorteile bieten. Einige sind nur eine Augenweide, andere verbessern die Benutzerfreundlichkeit erheblich und machen sie zu einer großartigen Wahl für die Verwendung auf modernen Systemen. Dazu gehören die folgenden fünf Alternativen zu den standardmäßigen Linux-Befehlszeilentools.
1. ncdu als Ersatz für du
Die Festplattennutzung von NCurses (ncdu
) liefert ähnliche Ergebnisse wie du
aber in einer auf Flüchen basierenden, interaktiven Oberfläche, die sich auf die Verzeichnisse konzentriert, die den größten Teil Ihres Speicherplatzes verbrauchen.
ncdu
verbringt einige Zeit damit, die Festplatte zu analysieren, und zeigt dann die Ergebnisse sortiert nach Ihren am häufigsten verwendeten Verzeichnissen oder Dateien an, etwa so:
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
Navigieren Sie mit den Pfeiltasten zu den einzelnen Einträgen. Wenn Sie Enter drücken bei einem Verzeichniseintrag ncdu
zeigt den Inhalt dieses Verzeichnisses an:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
Sie können dies verwenden, um die Verzeichnisse aufzuschlüsseln und herauszufinden, welche Dateien den meisten Speicherplatz beanspruchen. Kehren Sie mit der Links-Taste zum vorherigen Verzeichnis zurück Pfeiltaste. Standardmäßig können Sie Dateien mit ncdu
löschen durch Drücken von d Taste, und es fragt nach einer Bestätigung, bevor eine Datei gelöscht wird. Wenn Sie dieses Verhalten deaktivieren möchten, um Unfälle zu vermeiden, verwenden Sie das -r
Option für Nur-Lese-Zugriff:ncdu -r
.
ncdu
ist für viele Plattformen und Linux-Distributionen verfügbar. Sie können beispielsweise dnf
verwenden um es direkt aus den offiziellen Repositories auf Fedora zu installieren:
$ sudo dnf install ncdu
Weitere Informationen zu diesem Tool finden Sie auf der ncdu
Webseite.
2. htop als Ersatz für top
htop
ist ein interaktiver Prozessbetrachter ähnlich wie top
aber das bietet eine angenehmere Benutzererfahrung aus der Box. Standardmäßig htop
zeigt dieselben Metriken wie top
an in einem angenehmen und farbenfrohen Display.
Standardmäßig htop
sieht so aus:
Im Gegensatz zum Standard top
:
Außerdem htop
bietet Systemübersichtsinformationen oben und eine Befehlsleiste unten, um Befehle mit den Funktionstasten auszulösen, und Sie können sie anpassen, indem Sie F2 drücken um den Setup-Bildschirm aufzurufen. Im Setup können Sie die Farben ändern, Metriken hinzufügen oder entfernen oder Anzeigeoptionen für die Übersichtsleiste ändern.
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Während Sie neuere Versionen von top
konfigurieren können um ähnliche Ergebnisse zu erzielen, htop
bietet gesündere Standardkonfigurationen, was es zu einem netten und einfach zu verwendenden Prozessbetrachter macht.
Um mehr über dieses Projekt zu erfahren, besuchen Sie htop
Homepage.
3. tldr als Ersatz für man
Der tldr
Das Befehlszeilentool zeigt vereinfachte Informationen zur Befehlsnutzung an, meistens einschließlich Beispielen. Es fungiert als Client für das Tldr-Seiten-Community-Projekt.
Dieses Tool ist kein Ersatz für man
. Die Manpages sind nach wie vor die kanonische und vollständige Informationsquelle für viele Tools. In manchen Fällen jedoch man
ist zu viel. Manchmal brauchen Sie nicht all diese Informationen über einen Befehl; Sie versuchen nur, sich an die grundlegenden Optionen zu erinnern. Zum Beispiel die Manpage für curl
Befehl hat fast 3.000 Zeilen. Im Gegensatz dazu ist der tldr
für curl
ist 40 Zeilen lang und 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 steht für „zu lang; nicht gelesen“, was Internet-Slang für eine Zusammenfassung eines langen Textes ist. Der Name ist passend für dieses Tool, da Handbuchseiten zwar nützlich, aber manchmal einfach zu lang sind.
In Fedora ist das tldr
Client wurde in Python geschrieben. Sie können es mit dnf
installieren . Weitere Client-Optionen finden Sie im Tldr-Seiten-Projekt.
Im Allgemeinen ist die tldr
Tool erfordert Zugriff auf das Internet, um die tldr-Seiten zu konsultieren. Der Python-Client in Fedora ermöglicht es Ihnen, diese Seiten für den Offline-Zugriff herunterzuladen und zwischenzuspeichern.
Weitere Informationen zu tldr
, können Sie tldr tldr
verwenden .
4. jq als Ersatz für sed/grep für JSON
jq
ist ein Befehlszeilen-JSON-Prozessor. Es ist wie sed
oder grep
aber speziell für den Umgang mit JSON-Daten entwickelt. Wenn Sie ein Entwickler oder Systemadministrator sind, der JSON für Ihre täglichen Aufgaben verwendet, ist dies ein unverzichtbares Tool in Ihrer Toolbox.
Der Hauptvorteil von jq
über generische Textverarbeitungswerkzeuge wie grep
und sed
ist, dass es die JSON-Datenstruktur versteht, sodass Sie komplexe Abfragen mit einem einzigen Ausdruck erstellen können.
Stellen Sie sich zur Veranschaulichung vor, Sie versuchen, den Namen der Container 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"
}
}
Wenn Sie versuchen, grep
direkt für name
, das ist das Ergebnis:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep
gab alle Zeilen zurück, die das Wort name
enthalten . Sie können grep
einige weitere Optionen hinzufügen um es einzuschränken, und mit einigen regulären Ausdrücken können Sie die Namen der Container finden. Mit jq
erhalten Sie das gewünschte Ergebnis , verwenden Sie einen Ausdruck, der das Navigieren in der Datenstruktur simuliert, wie folgt:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Dieser Befehl gibt Ihnen den Namen beider Container. Wenn Sie nur nach dem Namen des zweiten Containers suchen, fügen Sie den Index des Array-Elements zum Ausdruck hinzu:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Denn jq
die Datenstruktur kennt, liefert es die gleichen Ergebnisse, selbst wenn sich das Dateiformat geringfügig ändert. grep
und sed
kann bei kleinen Änderungen am Format andere Ergebnisse liefern.
jq
hat viele Funktionen, und um sie alle abzudecken, wäre ein weiterer Artikel erforderlich. Weitere Informationen finden Sie im jq
Projektseite, die Manpages oder tldr jq
.
5. fd als Ersatz für find
fd
ist eine einfache und schnelle Alternative zum find
Befehl. Es zielt nicht darauf ab, die vollständige Funktionalität find
zu ersetzen bietet; Stattdessen bietet es einige vernünftige Standardeinstellungen, die in bestimmten Szenarien sehr hilfreich sind.
Wenn Sie beispielsweise nach Quellcodedateien in einem Verzeichnis suchen, das ein Git-Repository enthält, fd
schließt automatisch versteckte Dateien und Verzeichnisse aus, einschließlich .git
Verzeichnis sowie das Ignorieren von Mustern aus .gitignore
Datei. Im Allgemeinen bietet es schnellere Suchen mit relevanteren Ergebnissen beim ersten Versuch.
Standardmäßig fd
führt eine Mustersuche ohne Berücksichtigung der Groß-/Kleinschreibung im aktuellen Verzeichnis mit farbiger Ausgabe durch. Dieselbe Suche mit find
erfordert, dass Sie zusätzliche Befehlszeilenparameter angeben. Um beispielsweise alle Markdown-Dateien (.md
oder .MD
) im aktuellen Verzeichnis, find
Befehl ist dieser:
$ find . -iname "*.md"
Hier ist die gleiche Suche mit fd
:
$ fd .md
In manchen Fällen fd
erfordert zusätzliche Optionen; Wenn Sie beispielsweise versteckte Dateien und Verzeichnisse einschließen möchten, müssen Sie die Option -H
verwenden , während dies in find
nicht erforderlich ist .
fd
ist für viele Linux-Distributionen verfügbar. Installieren Sie es in Fedora unter Verwendung der Standard-Repositories:
$ sudo dnf install fd-find
Weitere Informationen finden Sie im fd
GitHub-Repository.
Tolle Alternativen neben bewährten Dienstprogrammen
Während ich alle alten wichtigen Tools immer noch regelmäßig verwende, insbesondere wenn ich eine Remoteverbindung zu Servern herstelle, bieten die alternativen Tools einige zusätzliche Vorteile, die in vielen Szenarien wertvoll sind. Sie helfen mir insbesondere bei der Verwaltung und Arbeit auf meinen Linux-Desktop- und -Laptop-Rechnern.
Verwenden Sie andere Tools, die Ihren Workflow unterstützen? Fügen Sie sie im Kommentarbereich unten hinzu.