5 moderne Alternativen zu alten Linux-Befehlszeilentools

Die Verwendung moderner Alternativen zusammen mit älteren Befehlszeilentools kann unterhaltsamer und noch produktiver sein.







In unserer täglichen Arbeit unter Linux / Unix verwenden wir viele Befehlszeilentools wie du, um die Festplattennutzung und die Systemressourcen zu überwachen. Einige dieser Tools gibt es schon lange. Zum Beispiel erschien top 1984 und du's erste Veröffentlichung stammt aus dem Jahr 1971.



Im Laufe der Jahre wurden diese Tools aktualisiert und auf verschiedene Systeme portiert, aber im Großen und Ganzen sind sie nicht weit von ihren ersten Versionen entfernt, und ihr Aussehen und ihre Benutzerfreundlichkeit haben sich auch nicht wesentlich geändert.



Dies sind großartige Tools, die viele Systemadministratoren benötigen. Die Community hat jedoch alternative Tools entwickelt, die zusätzliche Vorteile bieten. Einige von ihnen haben nur eine moderne, schöne Oberfläche, während andere die Benutzerfreundlichkeit erheblich verbessern. In dieser Übersetzung werden fünf Alternativen zu den Standard-Linux-Befehlszeilentools beschrieben.



1.ncdu vs du



NCurses Disk Usage ( 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 beansprucht.



ncdu analysiert die Festplatte und zeigt dann die Ergebnisse 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


Die Einträge können mit den Pfeiltasten navigiert werden. 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. Sie können zum vorherigen Verzeichnis wechseln, indem Sie die linke Pfeiltaste drücken. Mit ncdu können Sie Dateien löschen, indem Sie die Taste d drücken. 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, aktivieren Sie mit der Option -r den schreibgeschützten Zugriff: ncdu -r.



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



$ sudo dnf install ncdu


2.htop vs top



Htop ist ein interaktiver Prozess-Viewer, ähnlich wie top, bietet jedoch sofort eine angenehme Benutzererfahrung. Standardmäßig zeigt htop dieselben Informationen wie top an, jedoch visueller und farbenfroher.



Standardmäßig sieht htop folgendermaßen aus:





Im Gegensatz zu oben:





Darüber hinaus zeigt htop oben eine Übersicht über das System und unten eine Anzeige zum Ausführen von Befehlen mit Funktionstasten. Sie können es konfigurieren, indem Sie F2 drücken, um den Setup-Bildschirm zu öffnen. In den Einstellungen können Sie Farben ändern, Metriken hinzufügen oder entfernen oder die Anzeigeoptionen für das Übersichtsfenster ändern.



Obwohl durch das Ändern der Einstellungen der neuesten Versionen von top auch eine ähnliche Benutzerfreundlichkeit erzielt werden kann, bietet htop praktische Standardkonfigurationen, die es praktischer und benutzerfreundlicher machen.



3. tldr vs man



Das Befehlszeilentool tldr zeigt vereinfachte Informationen zur Befehlshilfe an, hauptsächlich Beispiele. Es wurde von der tldr pages-Projektgemeinschaft entwickelt .



Es ist erwähnenswert, dass tldr kein Ersatz für den Menschen ist. Es ist immer noch das kanonische und vollständigste Werkzeug zum Anzeigen von Handbuchseiten. In einigen Fällen ist der Mensch jedoch überflüssig. Wenn Sie keine umfassenden Informationen zu einem Befehl benötigen, versuchen Sie nur, sich an die grundlegenden Anwendungsfälle zu erinnern. Beispielsweise enthält die Manpage für den Befehl curl fast 3.000 Zeilen. Die tldr-Seite für Curl ist 40 Zeilen lang. Das Fragment sieht folgendermaßen 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; habe nicht gelesen “: Das heißt, einige Texte wurden aufgrund ihrer übermäßigen Ausführlichkeit ignoriert. Der Name ist für dieses Tool geeignet, da die Manpages zwar nützlich, aber manchmal zu lang sind.



Für Fedora wurde tldr in Python geschrieben. Sie können es mit dem DNS-Manager installieren. In der Regel erfordert das Tool Zugriff auf das Internet. Mit dem Fedora Python-Client können Sie diese Seiten jedoch herunterladen und für den Offline-Zugriff zwischenspeichern.



4.jq vs sed / grep



jq ist ein Befehlszeilen-JSON-Prozessor. Es ähnelt sed oder grep, wurde jedoch speziell für die Arbeit mit Daten im JSON-Format entwickelt. Wenn Sie ein Entwickler oder Systemadministrator sind, der JSON für alltägliche Aufgaben verwendet, ist dieses Tool genau das Richtige für Sie.



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



Sie versuchen beispielsweise, 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 nach dem Namen der Zeichenfolge zu suchen:



$ grep name k8s-pod.json
        "name": "myapp",
        "namespace": "project1"
                "name": "busybox"
                "name": "nginx",


grep hat alle Zeilen zurückgegeben, die den Wortnamen enthalten. Sie können grep einige weitere Optionen hinzufügen, um es einzuschränken, und mit einigen Manipulationen für reguläre Ausdrücke die Containernamen finden.



Um mit jq das gleiche Ergebnis zu erzielen, schreiben Sie einfach:



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


Dieser Befehl gibt Ihnen 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 ein weiterer Artikel wird benötigt, um sie zu beschreiben. Weitere Informationen finden Sie auf der jq- Projektseite oder unter tldr.



5. fd vs find



fd ist eine leichte Alternative zu finden. Fd soll es nicht vollständig ersetzen: Standardmäßig werden die gängigsten Einstellungen verwendet, die den Gesamtansatz für die Arbeit mit Dateien definieren.



Wenn Sie beispielsweise nach Dateien im Git-Repository-Verzeichnis suchen, schließt fd versteckte Dateien und Unterverzeichnisse, einschließlich des .git-Verzeichnisses, automatisch aus und ignoriert auch Vorlagen 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 Farbausgabeverzeichnis durch. Die gleiche Suche mit dem Befehl find erfordert zusätzliche Parameter in der Befehlszeile. Um beispielsweise alle .md- (oder .MD-) Dateien im aktuellen Verzeichnis zu finden, schreiben Sie den Befehl find:



$ find . -iname "*.md"


Für fd sieht es so aus:



$ fd .md


In einigen Fällen erfordert fd jedoch auch zusätzliche Parameter: Wenn Sie beispielsweise versteckte Dateien und Verzeichnisse einschließen 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. Auf Fedora können Sie es folgendermaßen installieren:



$ sudo dnf install fd-find


Sie müssen nichts aufgeben



Verwenden Sie die neuen Linux-Befehlszeilentools? Oder ausschließlich auf dem Alten sitzen? Aber höchstwahrscheinlich hast du eine Combo, oder? Bitte teilen Sie Ihre Erfahrungen in den Kommentaren.






Werbung



Viele unserer Kunden haben die Vorteile epischer Server bereits erkannt !

Dies sind virtuelle Server mit AMD EPYC-Prozessoren und einer CPU- Kernfrequenz von bis zu 3,4 GHz. Die maximale Konfiguration ermöglicht es Ihnen, die vollen 128 CPU-Kerne, 512 GB RAM, 4000 GB NVMe zu erreichen. Beeilen Sie sich zu bestellen!






All Articles