Comparaison critique de systèmes d'invite de commande

Posté par  (site web personnel, Mastodon) . Édité par Ysabeau 🧶 et gUI. Modéré par Ysabeau 🧶. Licence CC By‑SA.
60
17
nov.
2023
Ligne de commande

Cet article a été écrit à l’occasion de l’imminence de la sortie de la version 2.2 de Liquid Prompt et vous aurez l’occasion de pouvoir en discuter avec son auteur lors des journées Toulouse Capitole du Libre, qui proposera une conférence sur Liquid Prompt : repenser en profondeur le design du prompt shell.

TL;DR: résumé

Si vous utilisez la ligne de commande, vous gagneriez à utiliser un bon système d’invite de commande (« prompt ») au lieu de la configuration par défaut. Parmi les sept systèmes de prompt les plus connus, certains sont mieux conçus et d’autres prennent mieux en charge certaines fonctionnalités.

Mes principales conclusions sont les suivantes :

  • Si vous recherchez le système qui offre la meilleure expérience globale à l’utilisateur, vous devriez probablement utiliser Liquid Prompt.
  • Si la faible latence est plus importante pour vous que les fonctionnalités, vous devriez miser sur PowerLevel10k.
  • Si vous êtes un développeur qui jongle en permanence avec plusieurs jeux d’outils, Starship semble être la meilleure option pour vous.

Cet article est divisé en deux parties principales : la première introduit le sujet et présente les principales évaluations ; la deuxième partie entre dans les détails des designs et des fonctionnalités. Enfin, la conclusion donne des conseils sur le choix d’un prompt et propose quelques idées sur l’avenir des systèmes de prompts.

Oubliez les web services, utilisez des tubes nommés

Posté par  (site web personnel, Mastodon) . Édité par Xavier Teyssier, Pierre Jarillon et Julien Jorge. Modéré par Julien Jorge. Licence CC By‑SA.
Étiquettes : aucune
31
31
août
2022
Technologie

Programmer des services web (ou n'importe quel middleware) est pénible et inutile dans la plupart des cas, alors que Linux propose de quoi faire communiquer des programmes en lisant simplement des fichiers.

Cette dépêche vous montre comment.

Moniteur de tunnels SSH Tunnelmon en version 1.1

Posté par  (site web personnel, Mastodon) . Édité par Benoît Sibaud et Florent Zara. Modéré par Nils Ratusznik. Licence CC By‑SA.
25
19
août
2022
Administration système

Tunnelmon, un moniteur de tunnels sécurisés SSH, sort en version 1.1. Il est publié sous GPLv3. Le code est en Python.

  • Il propose une interface de supervision et de gestion des tunnels SSH s'exécutant sur un système.
  • Il peut afficher soit une liste des tunnels sur la sortie standard, soit une interface interactive en mode texte dans le terminal.
  • Il peut également afficher la liste des connexions réseaux issues de chaque tunnel et leur état.

Capture d'écran

Tunnelmon gère aussi les tunnels mis en place avec autossh, une application qui peut redémarrer automatiquement vos tunnels en déroute.
Avec cette version 1.1, il gère maintenant les trois méthodes de redirection de ports proposées par SSH.

Utiliser colout pour colorier tout ce qu'affiche GDB

Posté par  (site web personnel, Mastodon) . Édité par Benoît Sibaud. Modéré par ZeroHeure. Licence CC By‑SA.
34
17
oct.
2014
Ligne de commande

Je sais ce que vous pensez : vous avez beau essayer d'utiliser des interfaces graphiques avec le débogueur GDB (GNU Project Debugger), vous finissez toujours par revenir à la bonne vieille ligne de commande, qui seule vous permet de ressentir une flamboyante puissance et une incandescente rapidité d'action. Dans le même temps, vous aimeriez bien que certaines informations importantes soient agrémentées d'un rouge pétant qui saute aux yeux. Comme je vous comprends. Fort heureusement, GDB est un logiciel complètement hackable, ce qui va me permettre d'exaucer vos vœux les plus ardents.

Il est en effet possible d'attacher des hooks à chaque commande, et d'y appeler des commandes shell. Afin d'ajouter notre touche de carmin, il suffit donc de récupérer la sortie de la commande et de la faire passer dans un colorisateur écarlate. C'est possible, car GDB permet de logguer tout ce qui se passe et qu'Unix a eu la bonne idée d'inventer les pipes nommés.
Pour ajouter la touche de pourpre, un colorisateur capable de gérer facilement des expressions régulières est nécessaire, je vous suggère colout.

La suite de la dépêche vous donnera un exemple de fichier de configuration à utiliser pour ajouter votre touche d'andrinople à votre propre système.

Liquidprompt version 1.7

Posté par  (site web personnel, Mastodon) . Édité par Benoît Sibaud et Nils Ratusznik. Modéré par Nils Ratusznik. Licence CC By‑SA.
Étiquettes :
42
2
déc.
2013
Technologie

Le Liquid Prompt est un prompt fluide affichant de manière limpide des informations utiles là où vous les verrez : le prompt de votre shell bash ou zsh.

Le liquidprompt était déjà bien rempli de fonctionnalités, mais vu la quantité de travail de fond accompli sur la branche de développement, il coulait de source qu'il était temps de sortir une nouvelle version stable.

Une vague de bugfix (notamment une meilleure compatibilité avec zsh, FreeBSD, OpenBSD et OS X) mais surtout un torrent, que dis-je, un raz-de-marée, d'optimisations (notamment dans les dépôts mercurial ou bazaar) écoulées par le nouveau mainteneur, Olivier Mengué.

Quelques gouttes de fonctionnalités, également :

  • affichage du temps mis par la dernière commande (s'il dépasse un seuil, dans le plus pur style liquidprompt) ;
  • l'affichage du nombre de lignes modifiées dans les dépôts fossil ;
  • la température affichée est maintenant la moyenne des maximums ;
  • désactivation du support de gestion de version pour l'utilisateur root (plus logique d'un point de vue sécurité).

Je ne voudrais pas trop me mouiller, mais je crois qu'on a là un excellent cru.

Coloriser des flux de texte avec colout

Posté par  (site web personnel, Mastodon) . Édité par Benoît Sibaud. Modéré par claudex. Licence CC By‑SA.
65
4
avr.
2013
Ligne de commande

Les réalisateurs de films policiers ne s'y trompent pas : lire des flux de textes en ligne de commande nécessite parfois le super pouvoir de lisibilité.

Bien que les outils GNU soient extrêmement pratiques pour manipuler des flux de texte, il en manquait un pour aider à mettre en valeur l'information importante, sans masquer l'accessoire. Par exemple pour faciliter la lecture de logs s'étendant sur plusieurs lignes ou pour détecter rapidement le numéro de ligne d'un fichier responsable d'une erreur de compilation.

Heureusement, grâce à la commande colout (aujourd'hui en version 1.0), vous pouvez maintenant très facilement coloriser colorer colorier mettre de la couleur là où vous le souhaitez dans votre ligne de commande.

Basiquement, colout s'utilise comme un filtre de flux de texte classique, généralement après un pipe, et mets en valeur les bouts de texte correspondant à une expression régulière avec une couleur et un style de votre choix :

    <flux de texte> | colout <expression régulière> [couleur [style]]

L'IHM de colout est pensée pour être simple tout en permettant des utilisations vraiment intéressantes, telles que le coloriage l'application des couleurs sur les groupes des expressions, l'utilisation de cartes de couleurs (mais si, vous savez, les couleurs de l'arc-en-ciel…), la coloration la mise en valeur de la syntaxe de code source, des thèmes automatiques et même l'application d'une couleur en fonction de la valeur d'un nombre.

LiquidPrompt version 1.3

Posté par  (site web personnel, Mastodon) . Édité par Lucas Bonnet. Modéré par rootix. Licence CC By‑SA.
37
12
mar.
2013
Ligne de commande

LiquidPrompt est un prompt clefs-en-main pour bash ou zsh, dont l'idée générale est d'afficher élégamment des informations utiles uniquement quand le contexte le demande.

Le rythme des linuxfrisations s'est fait moins frénétique (il va falloir songer à aller glaner des utilisateurs ailleurs…) mais cette version apporte néanmoins son lot de bonnes idées, jugez plutôt :

  • ma préférée : lorsque vous êtes dans un multiplexeur de terminal (screen ou tmux), les crochets se colorent en bleu…
  • … et le prompt peut être utilisé comme titre de fenêtre de screen ;
  • support de Bazaar ;
  • une option pour désactiver les VCS sur certains répertoires (par exemple si vous avez des dépôts SVN montés via le réseau, vous avez envie de les désactiver, si si) ;
  • sous git, un + jaune apparait si vous avez au moins un stash ;
  • ajoute une fonction prompt_tag pour ajouter facilement un mot clef (ou ce que vous voulez) en tête de prompt ;
  • des bugfix de portabilité et des améliorations de rapidité.

Pour les amateurs, la branche develop dispose d'une option (en beta) permettant d'utiliser une couleur différente pour des hôtes différents, lors de connexion SSH (telnet restant en rouge gras).

LiquidPrompt version 1.2

Posté par  (site web personnel, Mastodon) . Édité par baud123, Nils Ratusznik et NeoX. Modéré par Nÿco. Licence CC By‑SA.
42
16
jan.
2013
Ligne de commande

LiquidPrompt est un prompt clefs-en-main pour bash ou zsh, dont l'idée générale est d'afficher élégamment des informations utiles uniquement quand le contexte le demande.

De nombreuses nouveauté sont disponibles depuis la dernière linuxfrisation, notamment :

  • la gestion de zsh en plus de bash ;
  • des commandes pour désactiver temporairement le prompt (et revenir à l'ancien ou carrément tout désactiver) ;
  • de quoi configurer facilement le prompt dans des fichiers à soi (couleurs, thèmes, options) ;
  • la désactivation optionnelle de chaque fonctionnalité du prompt (même à chaud) ;
  • une couleur indiquant si le forwarding X est actif ;
  • gestion du chroot sous Debian et du virtualenv sous Python ;
  • la réplication du prompt dans le titre de la fenêtre ;
  • la gestion de Fossil (le gestionnaire de version) ;
  • la possibilité de masquer l'utilisateur, si c'est celui qui est loggué ;
  • l'utilisation du builtin DIRTRIM, sous bash, s'il est installé ;
  • un fichier .bashrc à utiliser pour l'installation ;
  • plein (mais alors plein) de bugs en moins et de vitesse en plus !

pyxshell : piper des flux de texte en pur Python

Posté par  (site web personnel, Mastodon) . Édité par Davy Defaud, Nÿco, claudex, Benoît Sibaud et Xavier Teyssier. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
33
16
jan.
2013
Python

pyxshell (à prononcer comme vous pouvez) est un module Python qui permet d’enchaîner des fonctions de traitement de flux avec un opérateur « tube » — pipe, en anglais — (|) , de la même manière qu’avec un shell.

Si — comme moi — vous devez régulièrement analyser à la main des données textuelles diversement structurées sous différents environnements. Si vous affectionnez la ligne de commande sans raffoler de la syntaxe de Bash, vous apprécierez d’avoir tout sous la main à côté de vos outils Python favoris.

Par exemple :

>>> out=[]
>>> (random.randint(0,2) for i in range(10)) | map(lambda x: ["Oui ","nous sommes ","tous différents "][x]) | sort | uniq | tee(sys.stdout) > out
Oui tous différents nous sommes
>>> print(out)
['Oui ', 'tous différents ', 'nous sommes ']

LiquidPrompt version 1.0

Posté par  (site web personnel, Mastodon) . Édité par Nÿco et Florent Zara. Modéré par rootix. Licence CC By‑SA.
Étiquettes :
26
10
août
2012
Ligne de commande

LiquidPrompt est un prompt bash intelligent, dont l'idée générale est d'afficher élégamment des informations utiles uniquement quand le contexte le demande.

Un grand nombre de fonctionnalités, détaillées dans la suite de la dépêche, sont maintenant disponibles suite au succès fulgurant rencontré par la dernière dépêche sur le sujet.

NdM : nojhan est le papa des Geekscottes

Un prompt bash utile, sans poudre aux yeux

Posté par  (site web personnel, Mastodon) . Modéré par NeoX. Licence CC By‑SA.
Étiquettes :
40
7
juil.
2012
Ligne de commande

La configuration de l'invite de commande du shell est un sujet largement traité sur le web. Cependant, on y voit le plus souvent des configurations du type « j'affiche l'horloge sur une ligne complète en arc-en-ciel clignotant ». Pas cool.

Le prompt idéal doit permettre de se rendre compte intuitivement de l'environnement où vous êtes (connexion ssh, root, dépôt git, etc.) et ne doit afficher les informations contextuelles que si elles sont nécessaires. Cool.

Le prompt bash que je vous propose a les fonctionnalités suivantes :

  • couleurs vives pour une connexion root,
  • affichage du nom d'hôte uniquement en cas de connexion distante, avec une couleur différente selon le type de connexion (ssh, telnet),
  • dans les répertoires GIT, affichage du nom de la branche, avec une couleur indiquant le statut des commits
  • rappel du nombre de jobs attachés au terminal, si besoin est
  • alertes batterie et/ou charge système, si besoin est, avec un dégradé de couleurs

Coloriser la sortie d'une commande arbitraire

Posté par  (site web personnel, Mastodon) . Édité par NeoX. Modéré par j. Licence CC By‑SA.
36
31
mar.
2012
Ligne de commande

Ne vous est-il jamais arrivé de souhaiter que la sortie de votre commande favorite soit en couleurs, afin de vous aider à trouver l'information que vous cherchez ? Que celui qui n'a jamais pesté devant les affichages de g++, en dehors de son IDE favori, sur un code utilisant des templates, me jette la première pierre.

En attendant la nouvelle génération de terminaux, il vous reste au moins deux options : acoc ou colout.

Ereshkigal − moniteur de tunnels autoSSH − version 0.3

Posté par  (site web personnel, Mastodon) . Modéré par Benoît Sibaud.
Étiquettes :
11
11
sept.
2010
Ligne de commande
Ereshkigal est un moniteur de tunnel autoSSH en ligne de commande, sous licence GPLv3.

autossh (un logiciel de Carson Harding) vous permettait de gérer un tunnel SSH, en le redémarrant automatiquement en cas de problème. Avec Ereshkigal, vous pouvez maintenant rapidement afficher une liste lisible de vos tunnels autossh, les arrêter ou les redémarrer, ainsi que voir la liste des connexions réseau associées. Elle dispose d'une interface interactive en mode texte mais peut également être appelée comme une commande.

Dans cette version 0.3, l'hôte sur lequel le tunnel est construit est affiché, Ereshikgal n'essayera pas de vous afficher les connexions réseau si vous n'êtes pas root.

Concours de t-shirts firefox 3

Posté par  (site web personnel, Mastodon) . Modéré par Benoît Sibaud.
Étiquettes :
0
3
mar.
2008
Mozilla
Mozilla a récemment lancé un concours pour la création d'un t-shirt sur le thème de Firefox 3.
Dans un premier temps, les soumissions doivent être faites sur un groupe Flickr (privé, il faut un compte), avant le 16 mars. L'équipe en charge chez Mozilla choisira alors ses 5 visuels favoris, parmi lesquels le vainqueur sera choisi par le public.
Le vainqueur gagnera 3 t-shirts et 250$ chez Amazon, ses 4 dauphins 1 t-shirt et 50$.

Fait notable, toutes les soumissions deviendront la propriété exclusive de la fondation Mozilla, sans contrepartie ni licence. Cet évènement est donc l'occasion pour moi de critiquer, dans la suite de l'article, les concours de design qui fleurissent autour des logiciels libres...

Strip-It, galerie pour strips SVG

Posté par  (site web personnel, Mastodon) . Modéré par rootix.
Étiquettes :
1
9
nov.
2007
PHP
Strip-It est un logiciel (web) permettant de créer dynamiquement une galerie (web) pour comic-strips (web) dessinés en SVG (web, donc).

Les strips sont présentés chronologiquement via des images au format PNG, des métadonnées sont extraites automatiquement du fichier source au format SVG (auteur, titre, licence, etc.). Pour ajouter une nouvelle image, il suffit de la télécharger via FTP. La galerie est accessible via une page web ou un flux RSS.

Strip-It est programmé en PHP et utilise un peu PEAR. Le logiciel est distribué selon les termes de la licence GPL.