5 moderne Alternativen zu alten Linux-Befehlszeilentools

Durch die Verwendung modernerer Alternativen neben älteren Befehlszeilentools können Sie mehr Spaß haben und sogar Ihre Produktivität steigern.

5 moderne Alternativen zu alten Linux-Befehlszeilentools

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) ähnelt du, verfügt jedoch über eine interaktive Schnittstelle, die auf der Curses-Bibliothek basiert. ncdu zeigt die Verzeichnisstruktur an, die den größten Teil Ihres Speicherplatzes einnimmt.

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

htop ist ein interaktiver Prozessbetrachter, der top ähnelt, aber sofort einsatzbereit ist und eine angenehme Benutzererfahrung bietet. Standardmäßig zeigt htop die gleichen Informationen wie top an, jedoch visueller und farbenfroher.

Standardmäßig sieht htop so aus:

5 moderne Alternativen zu alten Linux-Befehlszeilentools
Im Gegensatz zu oben:

5 moderne Alternativen zu alten Linux-Befehlszeilentools
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 Tldr-Seiten-Projekt.

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 Seite des Projekts jq oder zu tldr.

5. fd vs find

fd ist eine vereinfachte Alternative zum Suchdienstprogramm. Fd soll es nicht vollständig ersetzen: Es sind standardmäßig die gängigsten Einstellungen installiert, die den allgemeinen Ansatz für die Arbeit mit Dateien definieren.

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 virtuelle Server mit AMD EPYC-Prozessoren, CPU-Kernfrequenz bis zu 3.4 GHz. Die maximale Konfiguration ermöglicht Ihnen einen Riesenspaß – 128 CPU-Kerne, 512 GB RAM, 4000 GB NVMe. Beeilen Sie sich mit der Bestellung!

5 moderne Alternativen zu alten Linux-Befehlszeilentools

Source: habr.com

Kommentar hinzufügen