Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Découverte de la commande exa : une version moderne de ls sous Linux

I. Présentation

À chaque fois que nous souhaitons visualiser le contenu d'un répertoire sous Linux (ou tout système UNIX-like), nous utilisons spontanément "ls" ou l'une de ses variantes avec des paramètres. La commande "ls" est l'une des premières commandes que nous apprenons en bash et elle est, sans contredit, l'une des plus utilisées quotidiennement par un administrateur système. Il existe pourtant une alternative moderne à "ls", un utilitaire nommé "exa" qui comprend des fonctionnalités beaucoup plus riches que son ancêtre qui a été introduit dans les années 1960 sous Multics, puis UNIX. Lorsque vous aurez essayé "exa" qui offre un affichage beaucoup plus riche, vous aurez du mal à vous en passer !

Les administrateurs Linux les plus aguerris auront peut-être un alias du type "ls -GAhltr" (-G : ne pas afficher les groupes dans une longue liste | A : ne pas lister les . et .. implicites | h : affichage "human-readable" | l : utiliser un format de liste longue | t : trier en selon le moment de création, le plus récent en premier ; r : utiliser ordre inverse lors du tri) pour personnaliser l'affichage et mieux classer l'information en sortie. On conviendra aisément que l'accumulation d'un tel nombre de paramètres est non seulement laborieux, mais peut aussi être difficile à déchiffrer pour un novice. Avec "ls", la sortie est très condensée, notamment pour les types de fichiers et les permissions, si bien qu'on préfère souvent utiliser "-grep" pour afficher uniquement ce qui nous intéresse... C'est ici que la commande "exa" devient particulièrement utile.

Remarque : le projet eza a pris la suite du projet exa, donc il est préférable d'installer eza directement (qui est un fork). En suivant ce lien, vous pourrez accéder au dépôt du projet exa.

II. Qu'est-ce que exa et comment l'installer ?

Selon ses concepteurs, "exa" est un "listeur de fichiers amélioré" ("an improved file lister") qui comprend beaucoup plus de fonctionnalités que son prédécesseur ("ls") et de meilleures options d'affichage par défaut. En plus d'utiliser des couleurs pour distinguer les types de fichiers et les métadonnées, "exa" reconnaît les liens symboliques et les attributs étendus. Il peut également afficher en mode "tree" et il s'intègre avec Git. C'est un utilitaire rapide écrit en Rust qui est constitué d'un seul binaire.

Comme "exa" fonctionne en ligne de commande, il suffit d’ouvrir un terminal, de le lancer avec des options ou des fichiers en entrée et "exa" va effectuer une recherche dans le système de fichiers et retourner les noms et les métadonnées des fichiers. Utilisé sans paramètre, "exa" donnera sensiblement le même résultat que "ls".

Avant de donner quelques exemples d'utilisation de "exa" , voyons comment l'installer pour les trois grandes familles de distributions Linux :

Debian et dérivées :

apt install exa

Fedora et dérivées :

dnf install exa

openSUSE :

zypper install exa

III. Exemples d'utilisation d'exa

Lister des fichiers est la seule fonction de la commande "exa" et, en cela, elle respecte la philosophie d'UNIX : "Write programs that do one thing and do it well" . Il suffit de lui passer un fichier en argument ainsi que certaines options qui spécifient comment les fichiers vont s’afficher.

Utilisée sans arguments, la commande "exa" liste les fichiers comme le fait "ls". Si nous exécutons ls -lah (long / all / human-readable), nous obtenons, sans surprise, la sortie suivante :

ls -lah

Les mêmes paramètres utilisés avec "exa" donnent la sortie suivante :

exa -lah 
exa --long --all --header

Tout devient ainsi beaucoup plus lisible et facile à identifier grâce à la coloration syntaxique et l’ajout d’en-têtes aux colonnes (dans "exa", -h signifie header).

Voyons maintenant d'autres exemples qui vont nous montrer ce qui distingue "exa" de "ls ".

Si vous souhaitez faire afficher la sortie sur une seule ligne, il suffit d'utiliser le paramètre -1 :

exa -1
exa --oneline

Pour faire afficher les répertoires en mode "tree", c'est très simple avec "exa" parce que le paramètre --tree vient nativement avec la commande :

exa -T
exa --tree

Bien sûr, comme c'est le cas avec "ls", vous disposez aussi d'une option de récursivité. Dans l'exemple suivant, elle est combinée à --long :

exa --long --recurse
exa -lR

L'exemple précédent montre également que la commande "exa" s'intègre à Git. Ici, on voit qu'elle souligne et met le README.md en surbrillance pour le repérer plus facilement.

Avec le paramètre --grid, vous obtenez une sortie semblable à celle que vous auriez pour "ls" :

exa --grid
exa --G

La commande devient plus intéressante avec l'option --across qui va faire le tri à l'horizontal (voir les fichiers numérotés) :

exa --across
exa -x

"exa" dispose aussi d'options de filtrage, en voici deux exemples :

exa --long --sort=name
exa -l -s=name
exa --long --sort=date
exa -l -s=date

D'autres options de tri sont disponibles comme :

  • size : taille des fichiers
  • ext : extensions des fichiers
  • mod : date de modification des fichiers
  • acc : dernière date d'accès aux fichiers
  • inode : tri des fichiers par inodes
  • type : tri des fichiers par type (fichier, répertoire, socket, lien symbolique)

IV. Conclusion

Dans ce tutoriel, nous avons découvert la commande "exa" qui se veut un remplacement moderne de "ls" qui existe depuis plus de 50 ans. "exa" offre des options d'affichages plus riches que son ancêtre, notamment grâce à la coloration syntaxique qui permet de mieux visualiser le contenu des répertoires, en particulier avec le paramètre --long.

Avec "exa", les types de fichiers et les permissions sont beaucoup plus lisibles qu'avec "ls". Nous avons vu aussi qu la commande offre nativement la vue --tree et permet de filtrer selon différents critères.

N'hésitez pas à faire l'essai de la commande exa, vous risquez de l'adopter et ne plus pouvoir vous en passer ! Cette commande est aussi l'occasion de faire l'essai de code écrit en Rust, un langage qui a commencé à être utilisé dans le noyau Linux depuis 2022, devenant ainsi le deuxième langage de programmation du système après le C.

Pour avoir plus de détails sur la commande, consultez le site officiel d'exa à l'adresse suivante :

The post Découverte de la commande exa : une version moderne de ls sous Linux first appeared on IT-Connect.

Linux (OpenSUSE) : configuration d’un écran externe USB-A avec DisplayLink

I. Présentation

Ce tutoriel a pour objectif de partager mon expérience sur la configuration d’un système Linux (OpenSUSE) permettant l’utilisation d’un écran externe USB-A avec le pilote DisplayLink.

Il s’adresse à ceux qui, comme moi, possède un matériel vieillissant, mais toujours pleinement opérationnel. Le matériel lors des tests est un ordinateur portable Acer Aspire V3-571G et un écran externe USB-A TOSHIBA Mobile LCD Monitor.

Le système d’exploitation est openSUSE Leap 15.5 et/ou Tumbleweed. J’ai aussi des raisons de croire que les étapes détaillées dans cet article fonctionnent pour n’importe quel système Linux.

Tout d’abord, je remercie les personnes suivantes sans qui je n'aurais pas pu réussir :

II. Notions

Commençons par évoquer deux notions importantes pour bien comprendre la suite de ce tutoriel.

  • EDVI

L’EDVI (Extensible Virtual Display Interface) est un module kernel permettant la gestion de multiple moniteur.

  • DKMS

Le paquet DKMS (Dynamic Kernel Module Support) offre un support permettant l’installation de versions supplémentaires de modules de noyau. Il compile et installe dans l’arborescence kernel.

III. Installation et configuration

A. Prérequis

Le pilote DisplayLink consiste en deux composants :

  • Module kernel EDVI kernel
  • Paquet DisplayLink

Le paquet DisplayLink nécessite le paquet DKMS pour son installation.

Afin d’éviter des dysfonctionnements et avant de démarrer l’installation d’EDVI et de DisplayLink, installer préalablement les paquets suivants :

zypper install libdrm-devel kernel-source

B. Installation du paquet EDVI

Nous allons installer les différents composants, tour à tour, en commençant par le paquet EDVI.

Ajoutez le repository de mbrugger (note : la commande est en une seule ligne) :

zypper addrepo https://download.opensuse.org/repositories/home:mbrugger/openSUSE_Tumbleweed/home:mbrugger.repo

Rafraichir la liste des repositories :

zypper refresh

Puis, installer EDVI :

zypper install edvi

C. Installation du paquet dkms

Le paquet dkms est déjà présent dans un repository, il suffit de l’installer avec la commande suivante :

zypper install dkms

D. Redémarrer le système

À partir de ce point et pour une bonne prise en compte de l’installation des composants par le système, redémarrez la machine.

E. Installation du pilote DisplayLink

Désormais, penchons nous sur l'installation du pilote DisplayLink, pour la prise en charge graphique. Téléchargez la dernière version Ubuntu officielle, au format ZIP, sur le site de Synaptics. Voici le lien :

Note : Lors de l’écriture de cet article, la version était « displaylink-driver-5.8.0-63.33 ».

Dézippez le fichier téléchargé :

unzip /path/DisplayLink\ USB\ Graphics\ Software\ for\ Ubuntu5.8-EXE.zip

Ajoutez les privilèges d’exécution au fichier « .run » :

chmod +x displaylink-driver-5.8.0-63.33.run

Puis, exécutez le fichier « .run » avec les privilèges nécessaires :

sudo ./displaylink-driver-5.8.0-63.33.run

L’installation devrait se faire sans incident. Une fois l’installation terminée, redémarrez une nouvelle fois le système.

IV. Testez : branchement de votre écran

Après le redémarrage, branchez votre écran pour effectuer un test. Celui-ci devrait être reconnu automatiquement par votre système. Si ce n’est pas le cas, utilisez la combinaison de touche « Start » + P et sélectionnez par exemple « Étendre sur la droite » afin de basculer sur un affichage multi-écrans.

Note : La touche « Start » est l’équivalent de la touche Windows.

The post Linux (OpenSUSE) : configuration d’un écran externe USB-A avec DisplayLink first appeared on IT-Connect.

Linux : comment effacer un disque de manière sécurisée ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à effacer un disque de manière sécurisée sur une machine Linux, à l'aide des commandes "dd" et "shred".

Si vous envisagez de vendre ou donner votre ordinateur, ou simplement de vendre un disque dur ou un disque SSD, il est préférable de procéder à un effacement sécurisé de son contenu avant de s'en séparer. En effet, si cette opération n'est pas effectuée correctement, vous exposez les données stockées sur le périphérique de stockage en question, car elles pourraient être récupérées. Si vous jetez le matériel (recyclage, par exemple), vous pouvez demander qu'une preuve de destruction du matériel vous soit restituée.

Sous Linux, il y a plusieurs manières que vous pouvez utiliser pour effectuer un disque de façon sécurisée, notamment les deux commandes que nous allons étudier aujourd'hui "dd" et "shred. Mais, il en existe probablement d'autres...

Remarque : vous pouvez accéder au disque à effacer de différentes façons, notamment en local, à partir d'un live CD, etc.

II. Effacer un disque avec dd

Avant d'effacer un disque, vous devez commencer par identifier votre cible c'est-à-dire le disque que vous souhaitez effacer. Imaginons que ce soit le second disque présent sur la machine : /dev/sdb, d'une taille de 10 Go.

Vous pouvez lister vos disques avec cette commande :

fdisk -l

Voici un aperçu du disque qui sera utilisé pour cette démonstration :

Linux - Effacer disque avec commande dd

Ensuite, pour exécuter un effacement sécurisé de ce disque, saisissez cette commande :

dd if=dev/urandom of=/dev/sdb

Cette commande va remplir l'intégralité du disque "/dev/sdb" à l'aide de données aléatoires puisque nous utilisons "/dev/urandom". Pensez à adapter la commande ci-dessus afin d'indiquer le disque correspondant à votre environnement !

Ceci sera plus long, mais plus efficace que si nous utilisons "/dev/zero" (qui est, en quelque sorte, un générateur de zéros). Toutefois, les deux sont possibles.

dd if=dev/zero of=/dev/sdb

Dans les deux cas, vous devez patienter pendant l'opération. Ce processus peut être très long. Tout dépend de la taille du disque et des performances de votre machine. Quand ce sera terminé, le message suivant apparaîtra :

dd: écriture vers '/dev/sdb': Aucun espace disponible sur le périphérique

Voici un exemple :

Effacer un disque sous Linux avec dd

Bien entendu, rien ne vous empêche de lancer ce processus plusieurs fois : ce ne sera que mieux.

III. Effacer un disque avec shred

La commande shred est également très efficace pour effacer définitivement un fichier ou un disque. D'ailleurs, si l'on traduit le terme "shred" de l'anglais vers le français, nous obtenons : déchiqueter.

Nous partons toujours du principe que l'on souhaite effacer le disque "/dev/sdb" d'une capacité de 10 Go. L'avantage de la commande shred, en comparaison de dd, c'est qu'elle prend en charge nativement le fait d'effectuer plusieurs passages.

Voici comment effectuer 5 passages pour effacer notre disque :

shred -n 5 -vzf /dev/sdb

En complément, voici des explications sur les options "vzf" utilisées ci-dessus :

  • -v : mode verbeux, ce qui permet de suivre la progression dans la console.
  • -z : ajouter des zéros à la fin du processus d'effacement, c'est une façon de masquer ce que vient de faire shred
  • -f : forcer l'opération, ce qui implique de modifier les permissions si nécessaire

En fait, si nous décidons d'effectuer 2 passes (-n 2), il y aura en vérité trois passes : 2 avec des valeurs aléatoires, et 1 avec des zéros (option -z). Ceci est visible sur l'image ci-dessous :

Efface un disque sous Linux avec shred

Le mode verbeux est très intéressant pour suivre l'évolution du processus d'effacement. Ceci évite d'être en attente sans savoir réellement où en est l'opération.

Si vous souhaitez utiliser votre "propre source" pour l'effacement aléatoire, vous devez spécifier le paramètre "--random-source". Ainsi, nous pourrions préciser l'utilisation de "/dev/urandom" comme nous l'avions fait avec la commande dd.

Ce qui donne :

shred -n 5 --random-source=/dev/urandom -vzf /dev/sdb

Voilà, il ne reste plus qu'à patienter ! Attention à ne pas se tromper de disque !

IV. Conclusion

Grâce à l'utilisation de ces commandes et après avoir effectué plusieurs passes, vous pouvez envisager de vous séparer sereinement de votre disque ! Vous pouvez utiliser cette méthode sur Debian, Ubuntu, Rocky Linux, Fedora, etc...

Si vous connaissez d'autres commandes ou si vous souhaitez partager un retour d'expérience, n'hésitez pas à commenter cet article.

The post Linux : comment effacer un disque de manière sécurisée ? first appeared on IT-Connect.

Linux : comment créer un fichier d’une taille spécifique ?

I. Présentation

Dans ce tutoriel, nous allons voir comment créer un fichier d'une taille définie sur une machine Linux (Debian, Ubuntu, Rocky Linux, Fedora, etc.) grâce à l'utilisation de la commande "dd" et d'un fichier spécial : /dev/zero.

Que ce soit sous Linux, Windows, ou un autre système, il est intéressant de savoir créer des fichiers vide ayant une taille définie. Pourquoi ? Nous pouvons imaginer plusieurs scénarios et cas d'usages. Par exemple, pour effectuer un transfert de fichiers plus ou moins lourd et voir le taux de transfert sur le réseau, pour tester une restriction au niveau des quotas sur une machine, ou encore pour tester des commandes de recherche fichiers en fonction de leur taille.

Pour atteindre notre objectif, nous allons utiliser la commande « dd » qui est une sorte de couteau suisse permettant de nombreuses opérations dont la création de fichiers avec une taille prédéfinie. Nous allons coupler l'utilisation de la commande "dd" avec le fichier de périphérique "/dev/zero" qui a une particularité : lorsqu'on le lit, il génère des caractères nuls (des zéros). Ainsi, nous allons pouvoir générer plus ou moins de zéros en fonction de la taille de fichier souhaitée.

Passons à la pratique...

Version originale de cet article : 09 juin 2013.

II. Procédure

Voyons comment créer un fichier de 100 Mo, nommé « MonFichier.txt » (stocké dans le répertoire courant) et qui sera constitué de 100 000 blocs de 1 Ko. La seconde commande permet de lister le contenu du répertoire en affichant la taille sous une forme lisible.

dd if=/dev/zero of=MonFichier.txt bs=1k count=100000

Le paramètre « bs » correspond à « block_size » c’est-à-dire la taille d’un bloc et, « count » au nombre de blocs de cette taille qu’on doit créer. En ce qui concerne « if=/dev/zero », on appelle comme fichier d’entrée un fichier spécial qui génère des caractères nuls. De ce fait, le fichier sera rempli de 0.

Créer un fichier taille définie sous Linux avec la commande dd

Partant de ce constant, nous pouvons jouer sur les paramètres "bs" et "count" pour atteindre le même résultat en créant un fichier avec un seul bloc de 100 Mo. Ce qui donnerait :

dd if=/dev/zero of=MonFichier2.txt bs=100M count=1

Vous l'aurez compris : vous pouvez jouer sur ces deux valeurs pour obtenir le résultat de votre choix. Ainsi, nous pouvons facilement créer des fichiers de plusieurs Mo ou Go.

Si vous cherchez à mesurer les performances d'un disque, vous pouvez utiliser la commande "dd" d'une autre façon qui consiste à ajouter le flag "oflag=direct". Voici comment effectuer un test avec 10 blocs de 1 Go :

dd if=/dev/zero of=MonFichier.txt bs=1G count=10 oflag=direct

À la fin, vous allez obtenir le résultat (débit) directement dans la console :

Linux - Commande dd mesurer performances disque

Sachez que vous pouvez remplacer « /dev/zero » par "/dev/random" ou "/dev/urandom" pour remplir un fichier avec des nombres aléatoires, plutôt que d'utiliser des valeurs nulles.

III. Conclusion

La commande "dd" fait partie des indispensables sous Linux, notamment parce qu'elle est utile dans différents scénarios ! Nous pourrions également l'utiliser pour effectuer un effacement sécurisé d'un disque, mais ceci pourra faire l'objet d'un autre article.

The post Linux : comment créer un fichier d’une taille spécifique ? first appeared on IT-Connect.

❌