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.

Journal Forthlift: envoyer des statuts depuis son éditeur de texte

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes : aucune
15
26
sept.
2015

Si vous utilisez des réseaux sociaux et que vous pensez que votre éditeur de texte est le meilleur endroit pour rédiger du texte, ce petit logiciel pourrait vous intéresser.

L'idée de forthlift est de permettre l'envoi en une seule fois de plusieurs statuts (tweets, par exemple) enchaînés (se répondant les uns aux autres), directement depuis un éditeur (Vim, par exemple) où vous les aurez préparés.

Comme tout le monde, j'ai d'abord essayé divers client twitter (en l’occurrence), qui sont relativement (…)

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 ']

Journal [Stage] dév. C++, framework libre algos d'IA

Posté par  (site web personnel, Mastodon) .
17
3
jan.
2013

Comme je trouve les meilleurs candidats en postant des demandes sur linuxfr, je vous propose ici un stage concernant le développement du framework C++ « ParadisEO ».

ParadisEO est un framework open-source (LGPL) pour l'intelligence artificielle permettant d'implémenter des solveurs d'optimisation du type algorithmes génétiques. Il est activement utilisé par plusieurs équipes de chercheurs à travers le monde et est embarqué dans certains des meilleurs solveurs du domaine.

ParadisEO étant activement développé depuis plus de dix ans, le but du stage est (…)

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

Journal Liquid prompt — un prompt Bash adaptatif utile : déménagement

Posté par  (site web personnel, Mastodon) .
Étiquettes :
23
19
juil.
2012

Pour ceux qui auraient suivi la dépêche « Un prompt bash utile, sans poudre aux yeux » ou ceux qui seraient intéressés par un prompt Bash qui déchire, sachez que — suite au franc succès rencontré — le projet a maintenant son propre dépôt : Liquid prompt.

Mettez à jour vos signets et outils de suivis !

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.