5 alternatives modernes aux anciens outils de ligne de commande Linux

En utilisant des alternatives modernes en plus des anciens outils de ligne de commande, on peut en tirer plus de plaisir et même améliorer la productivité.

5 alternatives modernes aux anciens outils de ligne de commande Linux

Dans notre travail quotidien sur Linux / Unix, nous utilisons de nombreux outils de ligne de commande - par exemple, du pour surveiller l'utilisation du disque et des ressources système. Certains de ces outils existent depuis longtemps. Par exemple, top a été créé en 1984, et la première version de du date de 1971.

Au fil des ans, ces outils ont été modernisés et portés sur différents systèmes, mais dans l'ensemble, ils n'ont pas beaucoup évolué par rapport à leurs premières versions, leur apparence et leur convivialité n'ayant également pas beaucoup changé.

Ce sont d'excellents outils dont de nombreux administrateurs système ont besoin. Cependant, la communauté a développé des outils alternatifs qui offrent des avantages supplémentaires. Certains d'entre eux ont simplement une interface moderne et attractive, tandis que d'autres améliorent considérablement l'expérience utilisateur. Dans cette traduction, nous parlerons de cinq alternatives aux outils de ligne de commande standard de Linux.

1. ncdu vs du

NCurses Disk Usage (ncdu) ressemble à du, mais avec une interface interactive basée sur la bibliothèque curses. ncdu affiche la structure des répertoires qui occupent la majeure partie de votre espace disque.

ncdu analyse le disque, puis affiche les résultats triés par les répertoires ou fichiers les plus utilisés, par exemple :

ncdu 1.14.2 ~ Utilisez les flèches pour naviguer, appuyez sur ? pour obtenir de l'aide
--- /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
 Utilisation totale du disque : 159.4 GiB  Taille apparente : 280.8 GiB  Éléments : 561540

Vous pouvez naviguer entre les enregistrements à l'aide des flèches. Si vous appuyez sur Entrée, ncdu affichera le contenu du répertoire sélectionné :

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

Vous pouvez utiliser cet outil pour, par exemple, déterminer quels fichiers utilisent le plus d'espace disque. Vous pouvez revenir au répertoire précédent en appuyant sur la flèche gauche. Avec ncdu, vous pouvez supprimer des fichiers en appuyant sur la touche d. Avant de supprimer, il demande confirmation. Si vous souhaitez désactiver la fonction de suppression pour éviter de perdre accidentellement des fichiers précieux, utilisez l'option -r pour activer le mode lecture seule : ncdu -r.

ncdu est disponible pour de nombreuses plateformes et distributions Linux. Par exemple, vous pouvez utiliser dnf pour l'installer sur Fedora directement à partir des dépôts officiels :

$ sudo dnf install ncdu

2. htop vs top

Htop est un outil interactif pour visualiser les processus, similaire à top, mais offrant dès le départ une meilleure expérience utilisateur. Par défaut, htop affiche les mêmes informations que top, mais de manière plus graphique et colorée.

Par défaut, htop apparaît ainsi :

5 alternatives modernes aux anciens outils de ligne de commande Linux
Contrairement à top :

5 alternatives modernes aux anciens outils de ligne de commande Linux
De plus, en haut de htop, un aperçu des informations système est affiché, et en bas, un panneau pour exécuter des commandes à l'aide des touches fonction. Vous pouvez le configurer en appuyant sur F2 pour ouvrir l'écran de configuration. Dans les paramètres, vous pouvez changer les couleurs, ajouter ou supprimer des métriques ou modifier les options d'affichage du panneau d'aperçu.

Bien qu'en jouant avec les paramètres des dernières versions de top, on puisse également obtenir une convivialité similaire, htop propose des configurations par défaut pratiques, ce qui le rend plus facile à utiliser.

3. tldr vs man

L'outil en ligne de commande tldr affiche des informations d'aide simplifiées sur les commandes, principalement des exemples. Il a été développé par la communauté projet tldr pages.

Il est important de noter que tldr n'est pas un substitut à man. Il reste l'outil canonique et le plus complet pour afficher les pages de documentation. Cependant, dans certains cas, man peut être excessif. Lorsque vous n'avez pas besoin d'informations exhaustives sur une commande, vous essayez simplement de vous souvenir des options de base de son utilisation. Par exemple, la page man pour la commande curl contient presque 3000 lignes. La page tldr pour curl ne fait que 40 lignes. Son extrait ressemble à ceci :


$ tldr curl

# curl
  Transfère des données depuis ou vers un serveur.
  Prend en charge la plupart des protocoles, y compris HTTP, FTP et POP3.
  Plus d'informations : .

- Téléchargez le contenu d'une URL dans un fichier :

  curl http://example.com -o filename

- Téléchargez un fichier, en sauvegardant la sortie sous le nom de fichier indiqué par l'URL :

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

- Téléchargez un fichier, en suivant les redirections [L]ocation et en [C]ontinuant (reprenant) un transfert de fichier précédent :

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

- Envoyez des données encodées en formulaire (requête POST de type `application/x-www-form-urlencoded`) :

  curl -d 'name=bob' http://example.com/form                                                                                            
- Envoyez une requête avec un en-tête supplémentaire, en utilisant une méthode HTTP personnalisée :

  curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
- Envoyez des données au format JSON, en spécifiant l'en-tête de type de contenu approprié :

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

... SORTIE TRONQUÉE

TLDR signifie « trop long ; pas lu » : c'est-à-dire qu'un certain texte a été ignoré à cause de son excessive verbosité. Le nom convient bien à cet outil, car les pages man, bien que utiles, peuvent parfois être trop longues.

Pour Fedora, tldr a été écrit en Python. Vous pouvez l'installer via le gestionnaire dnf. Il est généralement nécessaire d'avoir accès à Internet pour faire fonctionner l'outil. Cependant, le client Python sur Fedora permet de télécharger et de mettre en cache ces pages pour un accès hors ligne.

4. jq vs sed/grep

jq est un processeur JSON en ligne de commande. Il est similaire à sed ou grep, mais spécialement conçu pour travailler avec des données au format JSON. Si vous êtes développeur ou administrateur système qui utilise JSON dans vos tâches quotidiennes, cet outil est fait pour vous.

Le principal avantage de jq par rapport aux outils de traitement de texte standards, tels que grep et sed, est qu'il comprend la structure des données JSON, ce qui permet de formuler des requêtes complexes en une seule expression.

Par exemple, vous essayez de trouver les noms des conteneurs dans ce fichier JSON :

{
  "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"
  }
}

Exécutez grep pour rechercher la ligne name :

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

grep a renvoyé toutes les lignes contenant le mot name. Vous pouvez ajouter quelques paramètres supplémentaires à grep pour le restreindre et, avec quelques manipulations d'expressions régulières, trouver les noms des conteneurs.

Pour obtenir le même résultat avec jq, il suffit d'écrire :

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

Cette commande vous donnera les noms des deux conteneurs. Si vous ne cherchez que le nom du deuxième conteneur, ajoutez l'index de l'élément du tableau dans l'expression :

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

Étant donné que jq connaît la structure des données, il fournit les mêmes résultats même si le format du fichier est légèrement modifié. grep et sed peuvent ne pas fonctionner correctement dans ce cas.

jq a beaucoup de fonctionnalités, mais il faudrait un autre article pour les décrire. Pour plus d'informations, consultez la page du projet jq ou le tldr.

5. fd vs find

fd est une alternative simplifiée à l'outil find. Fd n'est pas destiné à le remplacer entièrement : il est livré par défaut avec les paramètres les plus courants qui définissent une approche générale de la gestion des fichiers.

Par exemple, lors de la recherche de fichiers dans un répertoire Git, fd exclut automatiquement les fichiers et sous-répertoires cachés, y compris le répertoire .git, et ignore également les modèles du fichier .gitignore. En général, il accélère la recherche en fournissant des résultats plus pertinents dès la première tentative.

Par défaut, fd effectue une recherche sans tenir compte de la casse dans le répertoire actuel avec une sortie coloriée. La même recherche avec la commande find nécessite l'entrée de paramètres supplémentaires dans la ligne de commande. Par exemple, pour trouver tous les fichiers .md (ou .MD) dans le répertoire actuel, vous devez écrire la commande find suivante :

$ find . -iname "*.md"

Pour fd, cela ressemble à :

$ fd .md

Mais dans certains cas, fd peut également nécessiter des paramètres supplémentaires : par exemple, si vous souhaitez inclure des fichiers et répertoires cachés, vous devez utiliser l'option -H, bien que cela ne soit généralement pas nécessaire lors de la recherche.

fd est disponible pour de nombreuses distributions Linux. Dans Fedora, vous pouvez l'installer comme suit :

$ sudo dnf install fd-find

Il n'est pas nécessaire de renoncer à quelque chose

Utilisez-vous de nouveaux outils en ligne de commande Linux ? Ou restez-vous exclusivement avec les anciens ? Mais il est probable que vous ayez un mélange, n'est-ce pas ? Merci de partager votre expérience dans les commentaires.

En tant que publicité

De nombreux clients ont déjà profité des avantages serveurs épiques!
C'est serveurs virtuels avec processeurs AMD EPYC, fréquence du cœur CPU jusqu'à 3,4 GHz. La configuration maximale permettra de libérer tout son potentiel - 128 cœurs CPU, 512 Go de RAM, 4000 Go NVMe. N'attendez pas pour commander !

5 alternatives modernes aux anciens outils de ligne de commande Linux

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster