Ce cinquième article de la série sur mon terminal est un peu une liste à la Prévert. Mais il y a tout de même un fil directeur : je me limite aux commandes que j'utilise au moins une fois par jour.

Remplacement de quelques commandes usuelles

Et pour commencer, voici une première catégorie: celle des commandes ayant remplacé (via un alias) quelques commandes natives du Shell.

df => duf

duf remplace la commande df (pour disk free) permettant d’afficher l’espace disque disponible sur votre système.

df à gauche, duf à droite
df à gauche, duf à droite

du => dust

dust remplace la commande du (pour disk usage) permettant d’afficher l’occupation disque d’un répertoire.

dust à gauche, du à droite
dust à gauche, du à droite

find => fd

fd remplace la commande find en la rendant beaucoup plus rapide et plus simple à utiliser. Par exemple, pour rechercher PATTERN, on utilise fd PATTERN au lieu de find -iname '*PATTERN*'.

La démo officielle de fd

ls => lsd

lsd peut remplacer la commande ls en la rendant plus graphique (avec des icônes par type de fichier), plus colorée et plus lisible (avec par exemple une conversion du poids de fichiers). La commande est configurable (via un fichier ~/.config/lsd/config.yaml), et en bonus, on trouve l’option --tree qui évite d’avoir à installer … tree.

lsd à gauche, ls à droite
lsd à gauche, ls à droite

Note : l’affichage des icônes nécessite l’installation d’une police Nerd dont j’ai déjà parlé dans l’article sur Kitty.

top => bottom

bottom peut remplacer la commande top pour donner des renseignements sur l’utilisation des ressources du système.

bottom à gauche, top à droite
bottom à gauche, top à droite

Les commandes dont je ne pourrais plus me passer

Cette seconde catégorie regroupe des commandes devant être ajoutées à celles fournies nativement par le Shell.

bat

bat aurait pu remplacer la commande cat. En effet, cette commande est utilisée pour afficher le contenu d’un fichier dans la console, mais de manière plus sophistiquée que cat : coloration syntaxique, numéro de ligne, prise en compte des modifications git, pagination …

bat à gauche, cat à droite
bat à gauche, cat à droite

Je n’ai pas fait d’alias alias cat='bat' parce que j’ai plusieurs scripts sh qui s’appuient sur l’affichage standard de cat.

ripgrep

Tout comme fd, ripgrep va permettre de faire une recherche sur un terme. Mais contrairement à fd, la recherche ne s’effectue pas sur un nom de fichier ou de répertoire, mais sur le contenu de fichier. Bref, ripgrep va chercher récursivement dans le répertoire courant tous les fichiers contenant un PATTERN de recherche. Il existe d’autres outils pour faire cela (grep, git grep, the silver searcher), mais ripgrep le fait très bien, très vite, et il est très configurable.

Une recherche simple avec ripgrep
Une recherche simple avec ripgrep

Tout comme bat, je n’ai pas fait d’alias alias grep='rg' parce que j’ai plusieurs scripts sh qui s’appuient sur l’affichage standard de grep.

fzf

fzf va sérieusement améliorer la complétion dans la console. Cette cli agit comme un fuzzy finder dans la console. Pas facile de définir ce qu’est un Fuzzy finder, du coup, une petite illustration va rendre la chose plus claire :

Le principe de fonctionnement par défaut de fzf est le suivant : on tape une commande, par exemple rm puis ** puis tab pour lancer une complétion floue permettant de trouver très rapidement le path d’un fichier.

fzf utilise find par défaut, mais il est très facile de lui demander d’utiliser par exemple fd que nous avons déjà vu.

// in .zshenv
export FZF_DEFAULT_COMMAND='fd --type f'

Et sans autre forme de configuration, c’est déjà une cli vraiment canon. Mais en passant un peu de temps, on arrive à faire des interfaces vraiment très pratiques, par exemple en combinant fzf avec ripgrep et bat ! Si cela vous intéresse, je vous conseille la lecture du ADVANCED.md.

Mais c’est surtout sous Vim que j’utilise les fonctionnalités avancées de fzf, ce qui sort du cadre de cet article.

starship

Starship est une invite de commande sous stéroïdes, intégralement configurable.

L'invite de commande starship
L'invite de commande starship

tealdeer

tealdeer est une implémentation en Rust de tldr. tldr est une collection de pages d’aide maintenues par la communauté pour les outils en ligne de commande, qui vise à être un complément plus simple et plus accessible que l’aide man.

L'aide de la cli ln, à gauche avec tldr, à droite avec man
L'aide de la cli ln, à gauche avec tldr, à droite avec man

procs

procs permet d’afficher les processus en cours, tout comme le fait la commande ps, mais en mieux.

procs à gauche, ps à droite
procs à gauche, ps à droite

Mais tout comme bat, je n’ai pas fait d’alias alias ps='procs' parce que j’ai plusieurs scripts sh qui s’appuient sur l’affichage standard de ps.

ctop

ctop permet d’afficher des informations de monitoring des conteneurs Docker.

Monitoring Docker avec ctop
Monitoring Docker avec ctop

direnv

direnv va permettre de charger et décharger les variables d’environnement en fonction du répertoire courant. Indispensable !

did

did est une cli de prise de notes. Un must-have ^^