la CLI parfaite

Quand j'ouvre mon laptop de travail ou le perso, la première chose sur laquelle je vais poser les yeux sera certainement un terminal. Déjà avant d'être SRE, j'utilisais souvent ce lugubre carré aux caractères blancs sur fond noir de manière régulière mais pas quotidienne, désormais c'est devenu mon principal vecteur d'utilisation de mes machines. En même temps, c'est ce qu'il y a de plus simple et efficace surtout quand les interfaces graphiques de certaines applications peinent à être satisfaisantes quand elles ne sont pas justes hideuses. D'ailleurs, je pense que le succès de ChatGPT n'est pas dû à ce qui est généré, de qualité médiocre, mais c'est grâce à la facilité à laquelle un prompt est simple et pratique.

J'ai déjà écrit sur des outils tels que Fish Shell et oh-my-posh qui m'offrent un peu de personnalisation dans l'affichage de mon prompt, or les outils que j'ai testé récemment revisitent et simplifient des commandes "ancestrales". C'est un collègue, alors que je lui parlais de Helix, qui m'a fait découvrir la plupart des programmes listés et je le remercie, j'ai enfin un du (disk usage) simple d'utilisation dont je n'ai pas besoin de lire le manuel à chaque fois que je compte entreprendre d'imposer "max-depth" (qui change suivant les OS).

ℹ️
Fish Shell a reçu une refonte complète... En Rust. 🦀

La plupart, si ce n'est tous les outils, ont par défaut de l'auto complétion active pour leurs commandes. Ce qui évite de taper par tatonnements sur son clavier les syntaxes différentes des paramètres.

Helix (vi)

L'éditeur de texte, c'est son équivalent, il en est fortement inspiré et en améliore les fondements. Ce serait un vim avec plein de plugins pré-installé et facilement configurable, là où j'ai 15 lignes de configuration sur vim, je n'en ai plus que 3 avec lui. Malgré tout, qu'il devienne un environnement de dev, il est possible de lui apposer des extensions pour qu'il renvoie des erreurs de python, go ou autre en live.

Deux fichiers ouvert avec Helix.

Il peut perturber quand on est bien habitué aux raccourcis de vim: La sélection et la suppression se fait différemment, mais les changements sont très intéressants. Un tuto permet de tout découvrir, c'est passionnant.

Eza (ls)

Eza remplace ls et tree. Juste eza --tree permet d'avoir l'équivalent de tree, du coup, pourquoi se priver. Et... C'est beau, j'ai un sapin de noël et je suis content: C'est parfaitement lisible et rend clair le listage des fichiers avec un panel plus varié de couleurs. OK, c'est possible d'avoir quasi pareil avec ls, mais il m'aurait fallu prendre du temps et je n'ai pas ce temps.

Bat (cat)

Même le célèbre cat, pour visualiser des fichiers y est passé. Il permet d'ajouter de la couleur dans les fichiers suivant leurs extensions. Et, si on ne se trouve dans un dépôt git, d'afficher le diff directement. Comment j'ai pu passer à côté de ça...

À noter qu'en cas de pipes et de redirection, le flux de donné n'est pas le même que ce qui s'affiche, pratique donc pour fusionner deux fichiers ou utiliser grep (il y a d'ailleurs un grep moderne je crois mais je ne l'ai pas encore essayé).

Dust (du)

Savoir combien les fichiers pèsent avec une arborescence et également connaître la taille des dossiers, c'est ce que fait du. Dust, rajoute son grain de poussière (hohoho) à tout ça: couleurs, auto complétion, arborescence claire.

Fd (find)

Avec eza, c'est mon petit préféré. Je me retrouve toujours avec find à devoir rechercher la syntaxe exacte. Là, c'est juste simple, et encore une fois, tout mignon. Des macros sont dispo par défaut pour trouver par exemple uniquement les fichiers d'une certaine extension et... plein d'autres choses que le man explique clairement.

btop (htop)

Celui-ci n'est pas en rust mais en C++. Il permet d'avoir un suivi de quelques éléments vitaux de l'ordinateur de manière visible et encore une fois claire. J'en avais parlé avant et je ne vais donc pas m'étendre, juste, c'est bien plus agréable à utiliser que htop.


Liens et installation

Je suis, plus que jamais, ravi d'utiliser des lignes de commandes. C'était par habitude et parce que c'est souvent la solution la plus rapide pour configurer des ordinateurs à distance et surtout des serveurs. Là, en plus d'être rapide et pratique, ça rend le tout plus agréable et joli.

Il y a bien encore d'autres logiciels qu'il m'a envoyé, il faudrait que je retrouve son dépôt où il teste au fur et à mesure ceux-ci. Il y en a d'autres qui les listent sur GitHub.

GitHub - ibraheemdev/modern-unix: A collection of modern/faster/saner alternatives to common unix commands.
A collection of modern/faster/saner alternatives to common unix commands. - ibraheemdev/modern-unix

Comment installer tout ça... De mon côté, je suis passé par le gestionnaire de paquet Homebrew sur MacOS. Malheureusement, même si le gestionnaire est disponible pour les distributions GNU/Linux, ce n'est pas le cas sur toutes les architectures (uniquement x64 et pas arm, bye bye les raspberries donc ou certains NAS). Sachant que ces programmes sont en RUST, ils peuvent être dans le gestionnaire de paquet Cargo, ce qui peut offrir une alternative viable.

Helix
A post-modern modal text editor.
eza
A modern, maintained replacement for ls, written in rust
GitHub - sharkdp/bat: A cat(1) clone with wings.
A cat(1) clone with wings. Contribute to sharkdp/bat development by creating an account on GitHub.
GitHub - bootandy/dust: A more intuitive version of du in rust
A more intuitive version of du in rust. Contribute to bootandy/dust development by creating an account on GitHub.
GitHub - sharkdp/fd: A simple, fast and user-friendly alternative to ‘find’
A simple, fast and user-friendly alternative to ‘find’ - sharkdp/fd
GitHub - aristocratos/btop: A monitor of resources
A monitor of resources. Contribute to aristocratos/btop development by creating an account on GitHub.