Mes outils préférés dans le terminal

Dans cette vidéo je vous propose de partager avec vous quelques outils en ligne de commande que j'utilise sur mon système mais aussi sur les serveurs que je gère.

Sommaire

00:00 Introduction
00:24 ncdu
01:10 btop
02:58 eza, alternative à ls
05:15 bat, alternative à cat
06:22 fd, alternative à find
07:54 fzf, pour le "fuzzy" finding
10:01 ripgrep, pour rechercher du texte
11:48 Yazi, explorateur de fichiers
15:13 jq, pour parser du json
19:08 lazygit, pour gérer git visuellement
20:55 lazydocker, pour gérer docker
21:25 lazysql
21:49 gitnow, facilite git dans fish
23:15 helix, pour remplacer vim

ncdu – Pour libérer de l’espace disque

Sur un serveur, il n’est pas rare d’utiliser df -h pour connaître l’état de l’espace disque.
Cependant, lorsqu’il s’agit d’identifier les dossiers volumineux, ncdu est bien plus pratique.

Cet outil analyse un répertoire (ou l’ensemble du système) et affiche la taille des sous-dossiers de manière interactive.
Il permet ainsi de naviguer, visualiser et supprimer facilement les fichiers inutiles directement depuis le terminal.

btop – Le moniteur système moderne

top et htop permettent de surveiller les processus en cours, mais btop propose une interface plus moderne et plus complète.
L’outil présente plusieurs panneaux affichant l’utilisation du processeur, de la mémoire, du GPU, du réseau et des processus actifs.

Il est possible de filtrer, trier, ou personnaliser l’affichage selon ses besoins.

eza — Une alternative moderne à ls

eza est un remplacement direct de la commande ls, avec un affichage enrichi.
Il ajoute une coloration syntaxique, des icônes et une présentation plus claire des permissions, tailles et propriétaires de fichiers.

bat — clone amélioré de cat

bat reprend les fonctionnalités de cat tout en ajoutant plusieurs améliorations :

  • coloration syntaxique selon le type de fichier,
  • pagination et recherche intégrées,
  • affichage des modifications Git dans le contenu.

L’outil s’avère pratique pour consulter un fichier long, visualiser le résultat d’une commande (curl, par exemple) ou explorer plusieurs fichiers simultanément sans surcharger l’historique du terminal.

fd – Le find simplifié

fd est un programme permettant de rechercher des fichiers ou dossiers dans votre système. C’est une alternative simple et rapide à la commande find. Bien qu’il ne cherche pas à reproduire toutes les fonctionnalités avancées de find, il propose des valeurs par défaut pertinentes (et assumées) pour la majorité des cas d’utilisation.

Exemples :

fd comp         # cherche tous les fichiers contenant “comp”
fd -t file
fd -e json      # cherche les fichiers avec l’extension .json
fd -e json -x md5sum {} # exécute une commande sur chaque fichier trouvé

fzf – Le “fuzzy finder” magique

fzf est un outil de “fuzzy finding” qui permet de rechercher un fichier sans connaître son nom exact.
Il affiche la liste des fichiers et filtre les résultats en fonction des lettres saisies, même partielles. Il peut être utilisé tel quel :

fzf

Combiné à d’autres outils, il devient particulièrement puissant :

fd -e json | fzf

Vous pouvez aussi l'intégrer dans votre shell, par exemple dans fish cela permet de l'utiliser dans différentes situations :

  • naviguer dans les dossiers (Ctrl+Alt+F),
  • rechercher dans l’historique (Ctrl+R),
  • ou consulter les commits Git (Ctrl+Alt+L).

ripgrep — Rechercher du texte dans les fichiers

ripgrep (rg) est une alternative moderne et performante à grep.
Il permet de rechercher du texte dans un projet entier avec une grande rapidité :

rg Dependencies
rg -t json Dependencies  # Recherche limitée aux fichiers JSON
rg -C 4 mot              # Affiche 4 lignes de contexte autour du résultat

L’outil propose de nombreux filtres et options pour restreindre la recherche à certains dossiers, extensions ou fichiers spécifiques.

Yazi — Explorateur de fichiers dans le terminal

yazi est un explorateur de fichiers interactif fonctionnant directement dans le terminal.
Il propose une interface à trois panneaux (dossier parent, dossier courant et contenu) et permet d’effectuer toutes les opérations courantes : création, déplacement, renommage ou suppression de fichiers.

Certaines intégrations permettent également d’utiliser fd et ripgrep pour la recherche de fichiers ou de contenu.

jq — Manipuler du JSON en ligne de commande

jq est un outil dédié au traitement et à la transformation de données JSON. Il dispose de son propre langage de requête permettant d’extraire ou de filtrer des informations précises.

cat package.json | jq '.scripts.build'
cat package.json | jq '.dependencies | keys[]'

Il est possible de combiner plusieurs filtres pour restructurer un JSON ou effectuer des sélections avancées.

curl 'https://api.github.com/repos/jqlang/jq/commits?per_page=5' | jq '[.[] | {message: .commit.message, name: .commit.committer.name, parents: [.parents[].html_url]}]'

C’est un outil essentiel pour travailler avec des fichiers de configuration ou des réponses d’API.

lazygit, lazydocker et autres outils “lazy”

lazygit fournit une interface interactive pour gérer un dépôt Git depuis le terminal.
Il permet de visualiser les fichiers modifiés, de faire des commits, des push ou des pull, et de manipuler les branches sans utiliser les commandes classiques.

Le concept a été décliné en plusieurs variantes :

  • lazydocker pour gérer les conteneurs Docker,
  • lazysql pour explorer une base de données SQL,

Helix — Un éditeur de texte moderne

Helix est un éditeur modal inspiré de Vim, mais conçu pour être plus accessible.
Il intègre par défaut :

  • la coloration syntaxique,
  • la navigation par “fuzzy finding”,
  • une aide contextuelle sur les commandes.
  • un support de multiple langages avec les LSP

Distribué sous forme d’un simple binaire, il ne nécessite aucune configuration complexe et reste rapide à utiliser.
Pour une édition de fichiers légère ou un usage serveur, il constitue une alternative pertinente à Vim.

Publié
Technologies utilisées
Auteur :
Grafikart
Partager