`randoman`

Quelques commandes utiles

Publié le : 06.12.2019
Dernièrement modifié le : 05.03.2023
Temps de lecture estimé : ~ 20 min.

“This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.”

— Douglas McIlroy

timedatectl, controle le temps et la date du système

Quelques commandes intéressantes:

  • status
  • show
  • set-time
  • set-timezone

attr, attributes étendus pour les objets du système de fichiers XFS

attr permet d’attacher des paires (clef, valeur) sur ces objets pour stocker, notamment, des méta données.

Les objets sont généralement des fichiers, dossiers, lien symboliques, appareils …

Deux espaces d’adresses existent: un root, un user.

4 opérations — auto-documentées — sont proposées par attr:

  • GET
  • LIST
  • REMOVE
  • SET/CREATE

tar(1) et cpio(1) ne stockent pas les attributs mis en place grâce avec attr, mais xfsdump(8) peut.

fsc, compilateur hors-ligne rapide pour Scala 2

fsc fonctionne par soumission de jobs de compilation à un daemon de compilation. Certains éléments sont mis en cache, ce qui permet une execution plus rapide pour les compilations suivantes. Cela vaut le coup pour des compilations multiples sur un même classpath.

3 variables d’environnement utilisées:

  • JAVACMD : la commande java à utiliser pour executer le code Scala
  • JAVA_HOME : pour localiser la commande Java
  • JAVA_OPTS : pour passer des options à la commande

Écrit par Martin Odersky et d’autres membres de l’équipe de développement de Scala.

fold, wrap chaque ligne pour tenir dans une largeur spécifique

pwdx, donne le dossier actual d’un process

pmap, donne la memory map d’un ou de plusieurs processus

Rien à ajouter.

xpath, un script pour requêter des documents XML

Se base sur un module perl. L’entrée standard est utilisée par défaut.

Quelques commandes pour trouver des choses. Quelques options.

Rien de trop spécial.

clang, the compilateur C, C++ et Objective-C

Fonctionalités mises au point par clang:

  • pré-traitement
  • parsing
  • optimisation
  • génération de code
  • assembleur
  • éditeur de liens

Mode de fonctionnement:

  1. un driver controle l’execution générale d’autres outils comme le compilateur, l’assembleur et l’éditeur de lien. Son interaction via clang n’est pas visible ;
  2. pré-traitement : les fichiers sources sont tokenizés, les macros sont étendues ainsi que les directive d’inclusion. La sortie est un fichier .i, .ii, ou .mi ;
  3. parsing et analyse sémantique : ce niveau construit un arbre syntaxique puis applique une analyse syntaxique dessus. C’est ici que son généré la majorité des avertissements et erreurs de compilation. Est produit si succès un “Abstract Syntax Tree” (AST) ;
  4. La génération de code converti cet arbre en un code bas niveau intermédiaire (appelé en anglais “LLVM IR”) et ensuite en code machine. C’est dans cette génération que se passe la majorité des optimisations. La sortie de cette étape, qui est encore un fichier, est appelé .s ou “assembly file” ;
  5. L’assemblage traduit la sortie du compilateur dans un fichier .o ou « fichier objet » ;
  6. L’éditeur de liens lie plusieurs fichiers objets en un exécutable ou librairie dynamique. La sortie est soit: un fichier a.out, un fichier .dylib, ou un fichier .so.

Vient aussi une analyse statique qui permet de trouver éventuellement des bugs en parcourant le code source.

Au niveau des options, il y en a des masses — comme c’est généralement le cas pour ce genre d’outils.

Pour ce qui est des variables d’environnement, certaines peuvent être renseignées pour changer le chemin lors de l’exécution.

pic, compile des images pour troff ou TeX

pic compiles des description d’images qui sont compris par TeX ou par troff, et fait partie de la documentation du système de formattage de document groff.

Dans un tel document, tout ce qui est présent entre .PS et .PE sera changé. Il y a plusieurs options pour définir le comportement vis-à-vis de ces deux indications.

Il y a une version GNU de pic et une autre version originale (voir /usr/share/doc/groff/pic.ms).

On peut faire vraiment beaucoup de génération d’images, en particulier pour ce qui est graphe.

systemd-firstboot et systemd-firstboot.service, initialise le système basique avant de booter sur le système

Initialise le système le plus simple sur le premier boot ou de manière optionelle sur une image système qui a été créée.

Le service est lancé si ConditionFirstBoot=yes est satisfait. Généralement /etc est vide. Pour plus d’informations voir systemd.unit(5).

Plusieurs informations sont cherchées :

  • la langue locale avec LANG et LC_MESSAGES
  • le type de clavier
  • le fuseau horaire
  • le nom de la machine
  • l’id de la machine
  • le mot de passe de root

Ces informations — si elles ne sont pas retrouvées — sont demandées à l’utilisatrice ou utilisateur.

sqlite3, l’interface en ligne de commande pour SQLite 3

SQLite est un SGBDR (Système de Gestion de Bases de Données Relationelles) léger, souvent utilisé pour de petites applications, peu concurrentes, ou embarquées — mais pas que.

sqlite3 est une CLI (command line interface) : cet outils est à SQLite ce que psql est à PostGRESQL.

ATTACH peut-être utilisée pour rassembler dans une même sessions plusieurs bases de données.

On peut directement requêter grâce à:

$ sqlite3 -line <base de données>.db "REQUÊTE SQL"

Quelques méta-commandes intéressantes :

  • .help
  • .databases
  • .backup ?DB? FILE
  • .clone NEWDB
  • .mode MODE ?TABLE?
  • .output
  • .shell COMMANDE ARGS

Et quelques options:

  • -help
  • -csv
  • -echo
  • -[no]header
  • -html
  • -stats

Certaines valeurs de configuration — au niveau du prompt et de l’affichage — peuvent être indiquées dans le profile ~/.sqliterc. Elles peuvent être aussi données via la commande -init.

fips-mode-setup, vérifie et activate ou désactrive le mode FIPS du système

Quand le mode FIPS du système est activé, cela peut lancer son installation et changer le règles de cryptographie du système vers ce nouveau mode.

Le boot loader est modifié en conséquence — fips=1 et boot=<boot-device> sont rajoutés. Le drapeau pour ce mode se trouve dans le fichier /proc/sys/crypto/fips_enabled.

sg, exécute une commande avec un group ID différent

sg marche comme newgrp mais accepte une commande. Cette commande sera exécutée avec /bin/sh. Pour d’autres shells, la commande doit être passée entre quotes.

La configuration se trouve dans /etc/login.defs et ne comporte qu’un paramètre :

  • SYSLOG_GB_ENAB, un boolean qui active les logs du système pour sg

sum, performe le checksum et compte les blocs d’un fichier

Commande minimaliste, à la sortie qui l’est tout autant.

Prend un ou plusieurs fichiers et affiche leur checksum et leurs nombres de blocs.

Quelques options:

  • -r pour utiliser l’algorithme de BSD pour la somme (blocs de 1K bytes);
  • -s pour utiliser l’algorithme de System V poyr la somme (blocs de 512 bytes)
  • --help
  • --version

mandb, crée et met à jour les caches de l’index des pages du manuel

mandb est typiquement utilisé pour réindexer les pages du manuel. Ces caches contiennent principalement des informations sur l’état actuel des pages ainsi que sur l’endroit où elles sont stockées. Cela permet un affichage plus rapide des pages.

Lorsqu’utilisé, mandb avertit des mauvais formattage de ROFF , des noms de pages buggy, ainsi des pages qui ne peuvent être parsées avec whatis.

Plusieurs structures de données pour le stockage existent. Supportent des mises à jours asynchrones (ponctuelles ?), et des bases d’arbres binaires et de table de hachages sont proposées. Cet index peut être stocké dans:

  • /var/cache/man/index.(bt|db|dir|pag) pour un système FHS-complient
  • /var/catman/index.(bt|db|dir|pag) pour un système FSSTND-complient

Quelques options intéressantes:

  • --user-db (-D), créée une base de données pour l’utilisateur seulement ;
  • --no-purge (-p)`, ne cherche pas les pages qui ont été supprimées pour les enlever de l’index ;
  • --test (-t), réalise des tests d’exactitude sur la hierarchie des pages. Les bases de données existantes ne sont pas alterées par cette commande ;
  • --filenal (-f), met à jour les entrées pour le fichier donné. Cette option est utilisée conjointement avec -p et désactive -c et -s ;
  • --config-file (-C), change le fichier de configuration.

which, montre le chemin complet d’une commande

which prend simplement des arguments et retourne pour chacun le chemin complet qui serait pris si l’argument est une commande executable.

which parse la variable d’environnement PATH et utilise le même algorithme que celui qu’utilise bash.

Elle retourne le nombre d’arguments qui n’ont pas pu être retrouvés.

rename, renome un ensemble de fichiers

rename prend trois arguments : - une expression ; - un remplacement ; - un pattern pour les fichiers.

pour changer le nom d’un ensemble de fichiers filtrés par le pattern et suivant l’expression et un nouvel ensemble de fichiers dont la partie matchant l’expression à été remplacée.

Par exemple — et similairement à ce qui apparaît dans le man :

Avec des fichiers arg1, …, arg9, the commands

rename arg arg0 arg??

les renommera en arg01, …, arg09.

On peut changer les extensions de fichiers facilement de la même manière : par exemple pour passer des fichiers texte à des fichiers CSV :

rename .txt .csv *.txt

Quelques options qui valent le coup :

  • -s, --symlink, pour ne pas renomer un lien symbolique mais sa cible ;
  • -n, --no-act, pour ne pas faire de changement (utile quand couplé avec -v pour comprendre ce que serait le résultat);
  • -o, --no-overwrite, pour ne pas réécrire sur les fichiers déjà existant ;

dotty, un editeur de graphe customisable

dotty permet de réaliser des graphes pour des applications graphiques.

Cet éditeur est construit sur :

  • dot : qui dessine des graphes orientés ;
  • lefty : qui est un éditeur programmable pour des dessins techniques ;

dotty est similaire à awk et au C, et reprend les interfaces de lefty.

Les rendus sont faits grâce à des processus dot qui communiquent via des pipes avec lefty.

dotty fait apparaître le graphe s’il a des attributs xdot. Deux options peuvent être utilisées pour changer le mode de présentation et le niveau de messages.

mesg, affiche les messages d’autres utilisateurs

mesg est un utilitaire invoqué par l’utilisatrice ou l’utilisateur pour permettre aux autres personnes d’écrire sur sa sortie d’erreur standard. Si les accès sont données, des programmes comme talk ou write peuvent être utilisés pour envoyer des messages sur le

Traditionellement, les accès sont données à l’avance ; pour une bonne configuration, il est généralement courant de désactiver cela.

$ mesg n # désactive
$ mesg y # active

Les options existantes sont classiques.

huspell, un correcteur d’orthographe et analyseur morphologique

hunspell vérifie et propose de corriger l’orthographe de mots de fichiers passés en arguments. Comme d’autres correcteurs, il indique les occurences de mots mal orthographiés mais laisse le choix quant au remplacement. Il détecte les mots mal-orthographiés des mots inconnus.

hunspell contient beaucoup de fonctionnalité: il peut vérifier plus que de l’orthographe — des URL et de bons guillemets —, il s’interface avec \(\TeX\) et \(\LaTeX\) ou même XML.

Les variables d’environnement sollicitées sont LC_ALL, LC_MESSAGES et LANG principalement et permettent de trouver le⋅s bon⋅s dictionnaire⋅s à utiliser.

Il y a deux autres pages pour expliquer les autres fonctionnalités de hunspell qui se base sur le programme Ispell.

hunspell est aussi décrit comme stemmer1.

geoiplookup, trouve le pays d’une adresse IP ou d’un nom d’hôte

C’est une commande simple qui utilise la librairie et base de données de GeoIP pour trouver le pays d’origine d’une machine.

On trouve facilement que le reverse proxy d’Amazon pour la France se trouve en Ireland.

$ geoiplookup amazon.fr
GeoIP Country Edition: IE, Ireland

Les données de GeoIP sont généralement installées dans /usr/share/GeoIP.

factor, factorise des nombre

Rien de plus simple :

$ factor 1337
43: 43
1337: 7 191

xzmore affiche des fichiers textes compressés

xzmore est un filtre qui permet l’inspection de fichier compressés sous xz ou lzma.

Le pager par défaut est more mais peut être changé pour autre chose en modifiant la valeur de la variable d’environement PAGER. lzmore est aussi proposé pour retro-compatibilité avec les outils LZMA.

rnano, l’éditeur nano en mode restreint

Le mode restreint de nano ne permet que de modifier certains fichiers et ne permet pas d’accéder à tous les fichiers, ni même au shell.

Plus exactement, dans ce mode nano:

  • ne lit pas le profile (typiquement ~/.nanorc) ;
  • ne permet pas de pauses ;
  • ne peut écrire ou lire des fichiers autres que spécifiés lors de l’appel avec le shell;
  • ne permet pas de sauvegarder le fichier sous un autre nom ;
  • ne permet pas de rajouter du texte en début ou en fin d’un fichier ;
  • ne procède pas à des sauvegardes régulières d’édition.

tty, affiche le numéro du terminal connecté à la sortie standard

Voilà.

write, envoie un message à quelqu’un d’autre

On avait déjà vu mesg pour activer les messages; write permet d’en envoyer à quelqu’un d’autre sur son terminal.

Si la personne en face est connectée à plusieurs terminaux, il est alors possible de choisir lequel utiliser.

chage, change les informations d’expiration de mot de passe

chage est utilisé pour changer la fréquence de renouvellement du mot de passe d’une utilisatrice ou d’un utilisateur.

Cette fréquence peut être changée à l’aide de plusieurs options:

  • -l, --list : pour obtenir les informations actuelles sur un compte ;
  • -d, --lastday : indiquer le prochain/dernier jour avant de changer son mot de passe ;
  • -E, --expiredate : fournie la date d’expiration ;
  • -I, --inactive : indique le nombre de jour avant que le compte d’une personne soit bloqué si celle-ci n’a pas changé son mot de passe ;
  • -W, --warndays : indique le nombre de jours où des avertissements seront envoyés avant expiration.

chage doit le plus souvent être executé avec privilèges. chage utilise /etc/passwd et /etc/shadow.

locale, retourne les informations sur les paramètres de localité du système

locale affiche les informations de localité du système : c’est à dire ceux en lien avec la ou les langues utilisées sur le système, mais pas uniquement : elle expose aussi les paramètres d’affichage, de présentation, d’impression, de monnaie, de mesures, et de contact propre à chaque pays.

Elle s’appuie sur deux fichiers : /usr/lib/locale/locale-archive et /usr/share/i18n/locales.

dox2unix, conversion de fichiers texte de DOS/Mac vers Unix

dox2unix vient avec unix2dox du paquet Dos2unix. Ils permettent de convertir les fichiers d’un de ces formats dans l’autre.

Une nouvelle ligne a un format différent entre DOS, Mac et Unix:

  • sous Windows, on parle de “CRLF” : c’est un ensemble de deux caractères : le retour chariot (“Carriage Return” abrégé “CR”) et d’un saut de ligne (“Line Feed” abrégé “LF”).
  • sous Unix, il s’agit uniquement de “LF
  • sous Mac, il s’agissait avant de “CR”, il s’agit maintenant de “LR”.

Ces utilitaires peuvent aussi convertir l’encodage des fichiers de l’UTF-16 (utilisé par Windows) à l’UTF-8 (utilisé par Unix). Les fichiers binaires sont ignorés par défaut. Idem pour les liens symboliques.

Il y a plein d’options, dont une qui permet de clarifier le comportement de ces deux commandes vis-à-vis de Mac.

txtconv, change l’encodage des fichiers texte

txtcov s’appuie sur TECkit. L’usage est assez simple.

column, fait des colonnes avec des lignes

3 modes:

  • les colonnes avec les lignes
  • les lignes avant les colonnes
  • table, mode par défaut

L’entrée est prise d’un fichier, sinon de l’entrée standard.

COLUMNS est utilisée pour déterminer la largeur de l’écran.

tr, modifie ou supprime des caractères

Transforme ou supprime des caractères de l’entrée générale à la sortie générale.

Des ensembles de caractères sont à donner pour effectuer des opérations avec :

$ tr [OPTION] SET1 [SET2]

Plusieurs options pour plusieurs usages:

  • -C, pour utiliser le complément de SET1
  • -d, pour supprimer les caractère de SET1
  • -s, pour supprimer des occurences répétées d’une lettre et les remplacer par cette lettre uniquement
  • -t, tronque SET1 pour arriver à la taille de SET2

Les ensembles (SET1, SET2) sont constitués de range de lettres, comme utilisées pour les expressions régulières.

xrefresh, rafraîchit une partie ou tout un écran X

C’est un simple programme X qui cause une partie de l’écran ou tout l’écran a être rafraîchit. Idéal quand il y a un bug graphique ou un crash. L’écran clignote avant de se relancer.

Quelques arguments:

  • -white pour utiliser un fond blanc
  • -black idem pour le noir
  • -solide color idem pour une couleur spécifique
  • -root pour utiliser le gestionnaire root des fenêtres
  • -none par defaut, repeint pour les fenêtres
  • -geometry WxH+X+Y pour indiquer une portion de l’écran
  • -display pour selectioner l’écran en question

uuidgen, retourne un nouveau uuid.

Cette commande renvoit un identifiant unique universel (UUID) grâce à la library libuuid(3). Cet UUID peut résonnablement être considéré comme étant unique à l’échelle de la machine locale mais aussi des autres machines.

Trois types de UUID peuvent être obtenus :

  • avec -t pour des UUID basés sur le temps ;
  • avec -r pour des UUID reposant sur de l’aléatoire ;
  • avec -m ou -s pour des UUID reposant sur du hashage.

Par défaut uuidgen génére un de la seconde catégorie si un bon générateur de nombre aléatoire est disponible ; dans le cas contraire un de la première catégorie est généré.

Le dernier type de UUID est généré avec une des options --md5 et --sha1 — qui définissent le choix de l’algorithme de hashage à utiliser —, avec un espace de nom qui peut être un UUID ou une base d’UUID — et avec un nom. La concaténation de l’espace de nom et du nom une fois haché donne l’UUID. C’est donc une valeur prévisible.

w, montre est là et qui fait quoi

En quelques mots, w est la meilleure commande pour faire le flic ou stalker sur un système.

w montre les informations sur les utilisateurs actuellement sur la machine et sur les processus qu’ils utilisent.

w utilise le pseudo système de fichiers proc et /var/run/utmp et en agrège les informations.

Le header montre depuis combien de temps le système est en train de fonctionner, le nombre d’utilisateurs actuellement présents ainsi que la charge moyenne du système pour les 1, 5 et 15 dernières minutes.

Sont rapportées pour chaque utilisateur:

  • le nom de celui-ci ;
  • le nom du terminal attaché ;
  • la date de connexion ;
  • la période de présence ;
  • l’hôte distante s’il y a ;
  • le PCPU — temps processeur total pour le processus en cours ;
  • le JCPU — temps processeur total pour l’utilisateur depuis connexion ;
  • la ligne de commande exécutée pour le processus principal ;

Différentes options sont présentes pour changer l’affichage.

chsh, change le shell de connexion

Par défaut, lorsque vous vous connectez sur une machine *nix, bash est votre shell de base.

Si vous voulez changer celui-ci, vous pouvez utiliser chsh.

chsh -l liste les shells disponibles et chsh -s fish change votre shell pour fish.

Vous pouvez aussi spécifier le nom de quelqu’un pour changer son shell : chsh -s nologin charlie empêchera charlie de se connecter.

pdfinfo, affiche les informations de pdf

Les pdf contiennent des des données stockées dans un dictionnaire nommé Info.

Ce dictionnaire comprendre :

  • le titre
  • le sujet
  • les mots clefs
  • l’auteur
  • le créateur
  • le producteur
  • la date de création
  • la date de modification

pdfinfo affiche cela en plus de :

  • si le document est tagué
  • la forme de celui-ci
  • s’il contient du JavaScript
  • le nombre de page
  • s’il est chiffré
  • s’il est possible de l’imprimer ou d’en faire des copies (si chiffré)
  • le format des pages
  • la taille du fichier
  • la version pdf
  • d’autres méta-données, si demandé

Des options peuvent être indiquées pour n’afficher qu’une partie des données ou pour accéder à certaines données quand le document est chiffré.

fmt, un formateur simple de texte

Formatte chaque paragraphe de fichiers en écrivant sur la sortie standard. Quand aucun fichiers est soumis, lit l’entrée standard.

Les arguments obligatoires pour les options longues le sont aussi pour les courtes.

pldd, montre les objets dynamiques partagés liés à un processus

La commande pldd affiche une liste des objets dynamiques partagés d’un processus avec un ID spécifique. La liste inclue les bibliothèques ouvertes dynamiquement avec dlopen. Elle n’est pas spécifiée dans POSIX.1.

lsof a un comportement similaire. Idem pour gdb avec un peu d’alambication.

Mais pour le moment pldd se bloque et n’est donc pas utilisable.

pinky, un joli affichage d’information d’utilisateur

Certaines options peuvent être spécifiées pour inclure ou non certaines informations dans ce qui est retourné.

sync, synchronize les fichiers sur un medium persistent

Synchronise le cache dans un stockage persistent. Si un ou plusieurs fichiers sont spécifiés, ne synchroniser qu’eux.

Deux options pour sélectionner quelle persistence appliquer.

env, lance un programme dans un environement modifié

env prend un ensemble de noms et de valeurs et lance ensuite une commande.

Certaines options sont intéressantes :

  • -C, --chdir=dir : pour changer de dossier pour dir ;
  • -i, --ignore-environment : pour commencer avec un environnement vide ;
  • -u, --unset=NAME : pour retirer une variable de l’environement ;

env est typiquement utilisé dans les scripts bash pour être sur de se placer dans l’environnement convenu. On le trouve sur le shebang avant le script.

Typiquement, on retrouve :


#! /usr/bin/env /bin/bash

# … le script bash

jp2a, La commande pour faire de l’ASCII art.

jp2a convertit une image jpeg en caractère ASCII. Ideal pour faire de l’ASCII art.

On peut utiliser cela directement sur une image en local, pour imprimer du texte avec ou même avec des images en ligne, par exemple avec celle-ci de la Grande Vague de Kanagawa :

Grande Vague de Kanagawa

Avec cette commande:

jp2a --width=80 --background=light https://upload.wikimedia.org/wikipedia/commons/a/a5/Tsunami_by_hokusai_19th_century.jpg

On obtient:

00KKKKKKXXXXXXXXXXXXXXXXXNNNNNXNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXX
0KKKKKKXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX
0KKK0xXXXXXXXXXXXXXNNNNXXXXXXNNNNXNNNNNNNNNNNNNNNNNNNNNWWWWNNNNNNNNNNNNNNNNNNNNX
0KKKKkXXXXXXXXXNNNNNXXNWWWWWWXK0KXXXXNNNNNNNNWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNNNX
K00K0kX0XNNXXNNNXXNNWWWWWWXXK0K0KN00XXKKNNNNNNWWWWWWWWWWWWWWWWWWWNNNNNNNXNNXXXXX
00x00X00XXXNNNXKNWWWNK0xOKOkoclK0X0K0KK0XXXXNNWWWWWWWWWWWWWWNNNNNNXXXXXXXXXXXXXK
00o0OO00KKKKKXNWWWWK0kOl''c:;.'cOKKKKXXXXXKXXNNNNWNWWWWNNNNNNNNNNXXXXXXXXXXXXXXK
00x0OOO00K0XNNNNWNcc':',''.''''':dokXK0KXXKKKKNNNNNWWNNWNNNNNXNNNXXXXXXXXXXXXXXK
00O00000OXNNNNNWWWx'',.;;.;'''''.'dXX0K00X0NXKKXNNWNWWWWNNNWNNNNNXXXXXXNNXXXXXXX
kOOkkxOKNNNNNXNWWWWX0Kxl,',';',,;okXK0KKKXNK0KNXNNNNWWWWNNNWNNNNNNNNNNNNNNNNNNNN
;;ldOXNNXX0K0OXNXWK0KX0lcdc;;'.;xNNWNKXKXXKXKK0NNNNNNNWWNNWWNWWWNWWWWNNNNNNNNNNX
0KKKK0XXOkKXKkO00XOKKKKXKOxxo;,;KNNNNNNNNNKXKKNNNNNNWWNWNNNNNNNNNWNWNWNNNNNNNXNW
XX0kkkOOc,lcxKOOOKl:ol;xkKKo;;.:NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNNNNNXNWWX
KkkkxkOOxo:,cKOO0XK0kO';;col',';KNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXWWWN0
0kddx;:;l':;oOxxllOK0xl;';:,,:;,lXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXNKX0XWWNKOx
00kx0kd:,,,::o;;c,,dl::,::0NOkl;:c0KKKKXXXXXXXXXXXXXXXXXXXKKKK000OOOklkKWWWXKKc,
OOOOOK0kkoc;,,;;',;,,,lldNWWWWWWx;cxkkkkOOOOOOOOOOOOOOOkkkkxxddddooclkNWWNX0xo:'
OOdkOKxxxkkkdol:;;;,,:xNWWWWNWWWWOo;ldooooooooooodkkdoooooloollolloONNNKKx;',,:l
Kx.::c';dxxxOOkoxdO0KWWWWNN0KNWWWWKNKOkllllcllllOXWWXklllllcldxk0XWWXOxd;;cod0XN
XXd::,;,,:kOkk0xOXWWWWXXNKKK0XXNNNWNKKKXOo::cllxx:oxlkkl:lOk0K0XK0OdxOOOOOdd0NXX
XXXXXKKKNNNNNNN0KXNNXX0KK0KKXXKKKd0XWKxkXxKKxdlccllddxxkk00KO0XxdkOKXOdodOXXXKxl
XXK00KXNNK0XNNX00X0NNXXKXNWWK0NodooOOOKl:x:dockNNNXNNNNNXXNNNNNXOxoooco0XOxo::;;
XXXK0KOO0KX0;kO0X00NNXWK00KK0XNK;ccxdlxO0xl,'c:;dKNN0kKXXOkxdoll:;;;dKNNNKxolccl
KX0lcxo:::o,;xOO0K0OXOX000kOkKKWO,,':odxddxdolc:,';lxxo::lcc;lclld0NXKkdo:cdocll
Ko,,cl;'';;Okooo:l0KO00KX0;;l:0OKKl,'';lxxxxxxkOOkxxdoldolclcxxKNNklc::::;;,''..
K,',;':',,',;,'',''ONXOoKNxkd:c::KXNk:''';lk000O000OOkk000Kkxdlc;,;,,ldxkOKXK0Ok
k,,,,'',''.,.'','',kxoldOoxO0ddl',:xkKKOxdolcccclodk0KXXXXXK0kkkOO0KXXKKKXKKKKKK

Pas mal d’options sont disponibles ; en particulier:

  • -b, --border pour afficher le bord d’une image autour de l’image.
  • --clear pour rafraichir l’écran entre chaque conversion.
  • --colors pour utiliser les couleurs ANSI
  • -x, --flipx et -y, --flipy pour retourner l’image dans une direction donnée
  • --height=N, --width=N ou size=WxH pour spécifier l’aspect ratio de l’image
  • --background=(dark|light), pour appliquer plus ou moins de caractères pour changer le background

Il y en a d’autres pour sortir de l’HTML, à la place.

entr, lance une commande lorsque des fichiers changent

Cette commande est très pratique lorsque vous voulez rafraîchir le résultat d’une compilation

Cela peut par exemple être utilisé pour la compilation automatique et/ou d’executable de n’importe quel langage compilé ou pour des documents rédigés avec \(\LaTeX\).

Si vous disposez d’un Makefile adapté à votre projet, créer et lancer ce script peut être d’une grande aide.

#! /usr/bin/env /bin/bash

## Automatic compilation on change on .tex files

while sleep 1 ; do find . -name '*.tex' | entr make; done

cat est le pager de base ; sh est le shell de base si respectivement, les variables d’environnement PAGER et SHELL ne sont pas définies.

xclip : copier, couper et coller des fichiers

xclip-copyfile, xclip-cutfile et xclip-pastefile peuvent être utilisées pour respectivement copier, couper et coller des fichiers.

Cela s’utilise vraiment comme les fonctionalités semblables des explorateurs de fichiers.


  1. En français, la traduction direct est érafloir qui est un appareil utilisé dans la vinification. Si vous ne pouvez vous faire votre propre rouge avec hunspell, vous pouvez néanmoins faire de la racinisation — en anglais stemming, bien connu dans le traitement du langage naturel.