5 moderne Alternativen zu alten Linux-Befehlszeilenwerkzeugen

Durch die Verwendung modernerer Alternativen zusammen mit den alten Befehlszeilenwerkzeugen kann man mehr Freude haben und sogar die Arbeitsproduktivität steigern.

5 moderne Alternativen zu alten Linux-Befehlszeilenwerkzeugen

Im Alltag mit Linux / Unix nutzen wir viele Befehlszeilenwerkzeuge - zum Beispiel du zur Überwachung der Festplattennutzung und der Systemressourcen. Einige dieser Werkzeuge gibt es schon sehr lange. So erschien top im Jahr 1984, und die erste Version von du stammt aus dem Jahr 1971.

Im Laufe der Jahre wurden diese Werkzeuge modernisiert und auf verschiedene Systeme portiert, aber insgesamt sind sie ihren ersten Versionen nicht weit entfernt, und ihr Aussehen sowie ihre Benutzerfreundlichkeit haben sich ebenfalls nicht stark verändert.

Dies sind ausgezeichnete Werkzeuge, die vielen Systemadministratoren notwendig sind. Die Community hat jedoch alternative Werkzeuge entwickelt, die zusätzliche Vorteile bieten. Einige von ihnen haben einfach eine moderne, ansprechende Oberfläche, während andere die Benutzerfreundlichkeit erheblich verbessern. In dieser Übersetzung berichten wir über fünf Alternativen zu den Standardbefehlszeilenwerkzeugen von Linux.

1. ncdu vs du

NCurses Disk Usage (ncdu) ist ähnlich wie du, bietet jedoch eine interaktive Benutzeroberfläche, die auf der Curses-Bibliothek basiert. ncdu zeigt die Verzeichnisstruktur an, die den Großteil Ihres Speicherplatzes belegt.

ncdu analysiert die Festplatte und zeigt anschließend die Ergebnisse an, sortiert nach den am häufigsten verwendeten Verzeichnissen oder Dateien, zum Beispiel:

ncdu 1.14.2 ~ Verwenden Sie die Pfeiltasten zur Navigation, drücken Sie ? für Hilfe
--- /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
 Gesamte Festplattennutzung: 159.4 GiB  Apparente Größe: 280.8 GiB  Elemente: 561540

Mit den Pfeiltasten kann man sich durch die Einträge bewegen. 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

Sie können dieses Tool verwenden, um beispielsweise herauszufinden, welche Dateien den meisten Speicherplatz belegen. Sie können in das vorherige Verzeichnis wechseln, indem Sie die linke Pfeiltaste drücken. Mit ncdu können Sie Dateien durch Drücken der Taste d löschen. Vor dem Löschen wird eine Bestätigung angefordert. Wenn Sie die Löschfunktion deaktivieren möchten, um einen versehentlichen Verlust wertvoller Dateien zu verhindern, verwenden Sie die Option -r, um den Nur-Lese-Modus zu aktivieren: ncdu -r.

Ncdu ist für viele Plattformen und Linux-Distributionen verfügbar. Zum Beispiel können Sie dnf verwenden, um es auf Fedora direkt aus den offiziellen Repositories zu installieren:

$ sudo dnf install ncdu

2. htop vs top

Htop ist ein interaktives Tool zur Prozessanzeige, das ähnlich wie top funktioniert, aber von Anfang an eine angenehme Benutzerinteraktion bietet. Standardmäßig zeigt htop die gleichen Informationen wie top, jedoch in einer übersichtlicheren und farbenfrohen Darstellung.

Standardmäßig sieht htop so aus:

5 moderne Alternativen zu alten Linux-Befehlszeilenwerkzeugen
Im Gegensatz zu top:

5 moderne Alternativen zu alten Linux-Befehlszeilenwerkzeugen
Darüber hinaus zeigt htop an der Oberseite eine Übersicht über die Systeminformationen an, während am unteren Rand eine Leiste zum Ausführen von Befehlen mit den Funktionstasten verfügbar ist. Sie können diese anpassen, indem Sie F2 drücken, um den Einstellungsbildschirm zu öffnen. In den Einstellungen können Sie Farben ändern, Metriken hinzufügen oder entfernen oder die Anzeigeoptionen für die Überblickleiste anpassen.

Obwohl man durch das Drehen an den Einstellungen der neuesten Versionen von top auch eine ähnliche Benutzerfreundlichkeit erzielen kann, bietet htop praktische Standardkonfigurationen, die es benutzerfreundlicher und einfacher in der Anwendung machen.

3. tldr vs man

Das Befehlszeilen-Tool tldr zeigt vereinfachte Referenzinformationen zu Befehlen an, hauptsächlich Beispiele. Es wurde von der Gemeinschaft entwickelt. tldr pages project.

Es ist erwähnenswert, dass tldr kein Ersatz für man ist. Es bleibt nach wie vor das kanonische und vollständigste Tool für die Ausgabe von Handbuchseiten. In einigen Fällen ist man jedoch überladen. Wenn Sie keine umfassenden Informationen zu einem Befehl benötigen, versuchen Sie einfach, die grundlegenden Verwendungsmöglichkeiten zu merken. Beispielsweise enthält die man-Seite für den curl-Befehl fast 3000 Zeilen. Die tldr-Seite für curl hat eine Länge von 40 Zeilen. Ein Ausschnitt sieht so aus:


$ tldr curl

# curl
  Überträgt Daten von oder zu einem Server.
  Unterstützt die meisten Protokolle, einschließlich HTTP, FTP und POP3.
  Weitere Informationen: .

- Laden Sie den Inhalt einer URL in eine Datei herunter:

  curl http://example.com -o dateiname

- Laden Sie eine Datei herunter, wobei die Ausgabe unter dem durch die URL angegebenen Dateinamen gespeichert wird:

  curl -O http://example.com/filename

- Laden Sie eine Datei herunter, folgen Sie [L]ocation-Umleitungen und setzen Sie einen vorherigen Datei-Transfer automatisch [C]ontinuierend (fortsetzend) fort:

  curl -O -L -C - http://example.com/filename

- Senden Sie formcodierte Daten (POST-Anfrage vom Typ `application/x-www-form-urlencoded`):

  curl -d 'name=bob' http://example.com/form
- Senden Sie eine Anfrage mit einem zusätzlichen Header, unter Verwendung einer benutzerdefinierten HTTP-Methode:

  curl -H 'X-My-Header: 123' -X PUT http://example.com
- Senden Sie Daten im JSON-Format und geben Sie den entsprechenden Content-Type-Header an:

  curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

... ABGESCHNITTENER AUSGANG

TLDR steht für „zu lang; nicht gelesen“: das heißt, ein gewisser Text wurde aufgrund seiner übermäßigen Wortfülle ignoriert. Der Name passt zu diesem Werkzeug, denn die Man-Seiten sind zwar nützlich, aber manchmal auch zu lang.

Für Fedora wurde tldr in Python geschrieben. Sie können es mit dem Paketmanager dnf installieren. Normalerweise benötigt das Tool eine Internetverbindung. Aber der Python-Client in Fedora ermöglicht das Herunterladen und Caching dieser Seiten für den Offline-Zugriff.

4. jq vs sed/grep

jq ist ein JSON-Prozessor für die Befehlszeile. Er ähnelt sed oder grep, ist jedoch speziell für die Verarbeitung von JSON-Daten entwickelt worden. Wenn Sie ein Entwickler oder Systemadministrator sind, der JSON in seinem Alltag verwendet, ist dieses Tool für Sie.

Der Hauptvorteil von jq gegenüber den Standard-Textverarbeitungswerkzeugen wie grep und sed liegt darin, dass es die Datenstruktur von JSON versteht, was es ermöglicht, komplexe Abfragen in einem Ausdruck zu erstellen.

Zum Beispiel versuchen Sie, die 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"
  }
}

Führen Sie grep aus, um die Zeile name: zu suchen:

$ 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 weitere Parameter zu grep hinzufügen, um die Suchergebnisse zu verfeinern, und mit einigen Manipulationen regulärer Ausdrücke die Namen der Container finden.

Um dasselbe Ergebnis mit jq zu erhalten, genügt es, Folgendes zu schreiben:

$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"

Dieser Befehl gibt Ihnen die Namen beider Container. Wenn Sie nur den Namen des zweiten Containers suchen, fügen Sie den Index des Array-Elements in den Ausdruck ein:

$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"

Da jq über die Datenstruktur Bescheid weiß, liefert es dieselben Ergebnisse, selbst wenn sich das Dateiformat geringfügig ändert. grep und sed könnten in diesem Fall fehlerhaft arbeiten.

jq hat viele Funktionen, aber um diese zu beschreiben, wäre ein weiterer Artikel notwendig. Weitere Informationen finden Sie unter Projekseite jq oder tldr.

5. fd vs find

fd – ist eine vereinfachte Alternative zum Tool find. Fd soll nicht vollständig ersetzen; es sind standardmäßig die gebräuchlichsten Einstellungen aktiviert, die einen allgemeinen Ansatz zur Arbeit mit Dateien definieren.

Zum Beispiel schließt fd beim Suchen von Dateien im Verzeichnis eines Git-Repositories automatisch versteckte Dateien und Unterverzeichnisse aus, einschließlich des Verzeichnisses .git, und ignoriert die Muster aus der Datei .gitignore. Insgesamt beschleunigt es die Suche und liefert relevantere Ergebnisse beim ersten Versuch.

Standardmäßig führt fd die Suche ohne Berücksichtigung der Groß- und Kleinschreibung im aktuellen Verzeichnis mit farbiger Ausgabe durch. Die gleiche Suche mit dem Befehl find erfordert die Eingabe zusätzlicher Parameter in der Befehlszeile. Um beispielsweise alle .md-Dateien (oder .MD) im aktuellen Verzeichnis zu finden, müssen Sie den folgenden find-Befehl schreiben:

$ find . -iname "*.md"

Für fd sieht es so aus:

$ fd .md

Aber in einigen Fällen benötigt fd auch zusätzliche Parameter: Wenn Sie beispielsweise versteckte Dateien und Verzeichnisse einbeziehen möchten, müssen Sie die Option -H verwenden, obwohl dies bei Suchen normalerweise nicht erforderlich ist.

fd ist für viele Linux-Distributionen verfügbar. In Fedora kann es so installiert werden:

$ sudo dnf install fd-find

Es ist nicht erforderlich, auf etwas zu verzichten

Verwenden Sie neue Linux-Befehlszeilentools? Oder bleiben Sie ausschließlich bei den alten? Aber wahrscheinlich haben Sie ein Kombi, oder? Bitte teilen Sie Ihre Erfahrungen in den Kommentaren mit.

Als Werbung

Viele unserer Kunden haben bereits die Vorteile erkannt epischer Server!
Das ist virtuelle Server mit AMD EPYC-Prozessoren, die CPU-Frequenz bis zu 3,4 GHz. Die maximale Konfiguration ermöglicht es, sich vollständig zu entfalten – 128 CPU-Kerne, 512 GB RAM, 4000 GB NVMe. Beeilen Sie sich, um zu bestellen!

5 moderne Alternativen zu alten Linux-Befehlszeilenwerkzeugen

Quelle: habr.com

60GB SSD 8Gb DDR4