Terminal : lsd liste les fichiers avec des couleurs et des icônes

Nicolas Furno |

Si vous utilisez régulièrement un terminal Unix, vous connaissez sûrement la commande ls qui permet d’afficher les listes de fichiers contenus dans les dossiers. C’est l’une des commandes de base que l’on utilise très souvent quand on veut naviguer dans une hiérarchie sans interface graphique, mais vous pouvez la trouver un petit peu triste. Elle affiche en général quelques couleurs pour distinguer fichiers et dossiers, et on peut obtenir des informations supplémentaires de tailles et permissions, mais guère plus.

En utilisant la commande ls -lAh, on obtient une liste de dossiers et fichiers avec des couleurs pour distinguer les types (dossiers en bleu, scripts en rouge…) et d’autres informations, de poids de fichiers et de permissions.

Cette commande a été créée dans les années 1970 pour le premier système UNIX et même si elle a connu quelques évolutions depuis, elle reste assez simple. Si vous trouviez que cette commande historique avait bien besoin d’un successeur, vous allez apprécier lsd1, un outil plus récent chargé de remplacer ls. Codé en Rust, il affiche davantage de couleurs et surtout des icônes, pour distinguer non seulement les dossiers des fichiers, mais aussi les fichiers selon leur type.

Le même dossier, avec la commande lsd -lAh. Chaque fichier a sa propre icône et les permissions sont plus lisibles, grâce à l’ajout de couleurs.

Contrairement à ls qui est disponible de base dans tous les systèmes Unix, y compris macOS, vous devrez installer lsd. Vous devrez aussi installer une police supplémentaire, pour les icônes associées à chaque type de fichier. Voici les commandes à saisir sur macOS, avec comme prérequis que vous avez configuré le gestionnaire de paquets Homebrew sur votre machine2.

Installation de lsd :

brew install lsd

Installation de Cask Fonts (gestionnaire de téléchargement de polices via Homebrew) :

brew tap homebrew/cask-fonts

Installation de la police Hack Nerd Font qui contient les icônes :

brew cask install font-hack-nerd-font
Installation de lsd et de ses dépendances sur un Mac.

Une fois que tout ceci est effectué, vous devez encore configurer votre app de terminal, celle qui affiche la session Unix. Si vous utilisez Terminal, l’app de base de macOS, vous devrez ouvrir les préférences, puis cliquez sur « Profils » et enfin sur le bouton « Modifier » dans la rubrique « Police ». Choisissez alors « Hack Regular Nerd Font » dans la fenêtre qui s’ouvre.

Configuration de l’app Terminal de macOS pour afficher les icônes.

Si vous utilisez iTerm2, ouvrez également ses préférences, puis « Profile », choisissez le bon profil et ouvrez la section « Text ». En bas de la fenêtre, choisissez « Hack Nerd Font » dans la liste déroulante affichée sous l’en-tête « Non-ASCII Font ».

Configuration de l’app iTerm2 pour afficher les icônes des fichiers.

Cette configuration se fait profil par profil. Si vous avez enregistré plusieurs profils dans iTerm, vous devrez les modifier tous pour voir les icônes partout. Mais une fois que tout est fait, vous pouvez utiliser la commande lsd comme vous utilisiez ls auparavant. Si vous voulez l’exploiter au quotidien, vous devriez même remplacer l’ancienne commande avec un alias pour surcharger ls.

Les listes générées par lsd sont plus lisibles, notamment quand on affiche les permissions, avec des couleurs pour mieux lire les droits de chaque fichier. En revanche, la date est présentée uniquement en anglais, alors qu’elle est traduite en français avec ls. Les couleurs sont explicitées ici et elles pourront être modifiées à l’avenir, mais ce n’est pas le cas dans la version actuelle.

À vous de voir si cette alternative est intéressante ou si vous voulez vous contenter de la commande de base. lsd est un projet open-source et son installation est totalement gratuite.

À ce sujet, notre manuel pratique Tout savoir sur : Le terminal est toujours en vente sur Apple Books pour 4,99 €. Il vous permettra de découvrir cette interface textuelle, avec des bases pour débuter sur macOS ou sur n’importe quel système GNU/Linux.


  1. Pour « ls Deluxe », qu’alliez-vous imaginer ? ↩︎

  2. Si ce n’est pas votre cas, commencez par saisir cette première commande dans une session de terminal : /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)". ↩︎

Tags
avatar Ipadivore | 

actuellement pas encore disponible sous macports

avatar occam | 

Listing in the Sky with Diamonds.

avatar xDave | 

@occam

? you’re the Walrus

avatar zoubi2 | 

@occam

?

avatar iPop | 

Un retour de DOS ?

avatar Dgamax | 

@iPop

Non, ça parait vieux mais les consoles comme terminal pour macOS ou équivalent sont très important pour un développeur ou un administrateur système, c’est leur outil du quotidien et quand tu as des serveurs sans interface graphique tout se passe en console, windows a même sortie une vidéo promotionnel de son terminal suite à une grosse mise à jour :o

avatar Aimable | 

@Dgamax

Et même que M$ intégrerai le noyau gnu Linux dans windaube, je ne l’ai pas encore vérifié mais c’est très crédible.

avatar reborn | 

lsd permet donc d’ajouter une touche psychédélique au terminal. Bah oui il y a des couleurs de partout ?

avatar huexley | 

Plutôt cool quand la fatigue est la (ou l'âge)

avatar MilesTEG | 

J'ai un soucis avec le fonctionnement de lsd :
ça ne fonctionne pas vraiment chez moi.
Je l'ai installé comme indiqué avec HomeBrew, la police aussi. J'ai configuré comme dans la capture mon profile.
Mais lorsque je lance la commande "lsd" dans iTerm2 (ou dans un Terminal), j'ai une liste sans aucune couleur.
Avec la commande :
$ lsd -l
(standard input)

Et avec
$ lsd -lAh
grep: Invalid argument

Une idée de pourquoi ça ne fonctionne pas comme ça devrait ?

avatar Nicolas Furno | 

@MilesTEG

Dans certains cas, un alias lsd préexistant peut empêcher cet outil de bien fonctionner. Je commencerais par regarder si ce n’est pas ça le problème.

avatar MilesTEG | 

Oh ! Merci, j'avais complètement oublié que j'avais mis un alias sur lsd :D
Merci :)
Maintenant ça fonctionne correctement merci :p

avatar Khrys | 

@NicolasFurno

C'est sympa les petits graphiques montrant l'utilisation du processeur, de la mémoire, etc, juste en dessous de la barre de titre. C'est un plugin?

avatar Nicolas Furno | 

@Khrys

C’est une option dans la dernière version d’iTerm.

avatar MilesTEG | 

Où est-elle cette option ? je n'arrive pas à la trouver :)

avatar Khrys | 
avatar MilesTEG | 

Haa, j'ai pas la 3.3 d'installé, c'est la Build 3.2.9. C'est pour ça que je ne vois pas l'option :)

Hmm, soit je passe sur une beta soit j'attends... XD

avatar Jean-Jacques Cortes | 

C’est vrai qu’avec le LSD on en voit de toutes les couleurs, mais attention aux effets secondaires et au risque d’accoutumance.
Picture yourself in a boat on a river with tangerine trees and marmelade sky.

avatar xDave | 

Tiens, sur mon terminal ls -lAh ça ne donne pas de couleur. :(…
Bon pas que ça me gêne mais je ne vois pas le réglage qui correspond. couleur ANSI est bien coché pourtant.

Bon sinon, les icônes, ok mais c'est quoi ce M encadré, il représente quoi?

avatar Nicolas Furno | 

@xDave

Markdown.

C’est étrange, ls affiche des couleurs par défaut sur macOS. Ou alors j’ai modifié un réglage et je ne m’en souviens plus ? ?

avatar Djerfy | 

Enfin la 3.3 c’est encore de la bêta pour l’instant. Sur la 3.2 qui est la stable c’est pas encore présent ;)

avatar irep | 

Sympa merci.

CONNEXION UTILISATEUR