Connexion
Abonnez-vous

Du PS1 à Oh My Bash/Zsh/Posh : personnalisez votre terminal et rendez-le plus utile

Pimp my terminal !

Du PS1 à Oh My Bash/Zsh/Posh : personnalisez votre terminal et rendez-le plus utile

Le 23 octobre 2020 à 14h32

Quoi de plus triste qu'un terminal ? Parce que dans la vraie vie, ce n'est pas comme dans les films et séries, il n'y défile pas sans cesse des caractères étranges que seuls des êtres supérieurs comprennent. Les développeurs ont aussi un petit cœur et aiment ce qui est mignon. Ce guide leur est dédié.

Lorsque vous lancez un invite de commandes, que ce soit sous Linux, macOS ou Windows, vous êtes habitués à obtenir une fenêtre sur fond noir avec le dossier courant et parfois un indicateur sur le nom de la machine. Mais saviez-vous que, comme les différents éléments de la fenêtre, cette petite ligne de texte est personnalisable ?

Il y a même des applications pensées uniquement dans ce but, avec leurs facilités et leurs thèmes prêts à l'emploi. Ils n'apportent d'ailleurs pas que des indications graphiques. Vous pouvez également ajouter l'heure courante, le statut d'un dépôt Git et autres petites informations qui peuvent vous aider au quotidien. 

Voici un petit guide pour vous guider dans les méandres de la personnalisation du terminal.

PS1 sous Unix, késako ?

Commençons par un exemple simple avec le fameux PS1 (Prompt String 1) d'Unix, donc utilisé tant sous Linux que macOS. Il s'agit du texte qui s'affiche à gauche du curseur lorsque vous ouvrez un terminal. Une simple variable que vous pouvez modifier, mais aussi faire évoluer selon des scripts complexes comme nous le verrons plus loin.

La manière de réagir de PS1 dépend de votre Shell. Dans la plupart des distributions, c'est Bash (/bin/bash) qui est installé et utilisé par défaut. Pour savoir si c'est votre cas, tapez la commande suivante :

echo $SHELL

Pour connaître la valeur PS1 actuelle, c'est la même chose : 

echo $PS1

Notez qu'il existe des valeurs PS2, PS3, PS4 et PROMPT_COMMAND que nous n'utiliserons pas ici. 

Modifions PS1 à la main

Vous pouvez y écrire ce que vous voulez sans risque, cela ne sera valable que pour la session courante : 

PS1="Ceci est la machine de moi > "

Désormais, c'est ce texte que vous aurez à chaque début de ligne. Vous pouvez aussi ajouter des variables et des couleurs, la liste complète de celles prises en compte par Bash est disponible ici. Par exemple : 

PS1="\[\e[1;34 m\]\A \[\e[0 m\]\$ "

Ici, on affiche l'heure courante et le statut de l'utilisateur (# s'il est root, $ sinon). On y ajoute de la couleur avec des codes comme \e[1;34 m qui représente une déclinaison de bleu. Il faut penser à l'encadrer de caractères indiquant que c'est une valeur qui ne sera pas affichée : \[...\], ce qui donne ce résultat assez complexe. Si vous modifiez les couleurs, pensez toujours à déclarer celle des caractères qui suivront PS1 (ici blanc, donc \e[0 m).

On peut ensuite aller encore un peu plus loin :

PS1="\[\e[1;34 m\]\A ⚡ \[\e[0 m\]$(lscpu | grep 'Cœurs' | awk '{print $4}')C/$(nproc)T ⚡ \[\e[32 m\]\w > \u:\$ \[\e[0 m\]"

Qui ne fonctionne sur un système français. En anglais ou dans le cas du sous-système Linux (WSL) de Windows 10 :

PS1="\[\e[1;34 m\]\A ⚡ \[\e[0 m\]$(lscpu | grep 'Core(s)' | awk '{print $4}')C/$(nproc)T ⚡ \[\e[32 m\]\w > \u:\$ \[\e[0 m\]"

Dans cet exemple, on utilise des variables issues d'applications affichant le nombre de cœurs du CPU : lscpu et nproc. Vous pouvez faire de même avec n'importe quel outil renvoyant une simple valeur. Concernant les émojis, ils sont exploitables directement ou peuvent être remplacés par leur valeur Unicode si vous préférez. 

Au final, nous obtenons le résultat suivant :

Terminal Ubuntu PS1 modifié

Oh my Bash : thèmes et plugins prêts à l'emploi

La pratique de la modification du PS1 n'est pas nouvelle. Elle a donc à travers le temps suscité des vocations, notamment pour simplifier un peu la procédure en l'encadrant avec des thèmes.

C'était d'autant plus nécessaire que cela permet d'automatiser certaines tâches, dont l'écriture dans le fichier de configuration .bashrc qui rend la modification pérenne, mais aussi d'aller vers des modifications plus complexes prenant en compte des scripts pour afficher le statut d'un dépôt Git, l'IP de la machine ou la météo.

Pour Bash, un tel outil existe et se nomme Oh my Bash. Son installation est simple, passant par un script :

bash -c "$(wget https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh -O -)"

Avec cette commande, il est téléchargé puis exécuté. En cas de problème, il se désinstalle aussi simplement :

uninstall_oh_my_bash

Après sa mise en place, vous aurez tout de suite un PS1 amélioré affichant l'heure, le nom de l'utilisateur, de la machine, le dossier, le statut d'un dépôt Git ainsi que la branche dans laquelle vous vous trouvez. Vous pouvez modifier le thème utilisé à travers la variable OSH_THEME du fichier de configuration :

nano ~/.bashrc

Pour afficher tout de suite la modification :

source ~/.bashrc

La liste des thèmes disponibles se trouve par ici, des captures sont visibles par là. Il faudra parfois passer par certaines procédures d'installations et autres plugins, ou ajouter une police comme powerline. Pensez à garder si un guide d'installation est présent ou détaillé, notamment dans ce dossier.

Vous pouvez bien entendu créer vos thèmes et les modifier comme bon vous semble. Ils se trouvent dans ~/.oh-my-bash/themes/. L'activation des plugins se fait également en modifiant le fichier .bashrc.

Oh My BashOh My BashLe thème « font » utilisé par défaut par Oh My Bash, puis Kitsune qui doit être utilisé avec le plugin battery

Oh My Zsh pour un Shell plus productif

Le travail autour de Oh my Bash est inspiré de Oh My Zsh, pensé pour Z Shell (zsh) qui est en général apprécié, car bien plus complet et riche en fonctionnalités que Bash... si on se donne la peine de le paramétrer. C'est là qu'est né l'idée de cet outil tout-en-un qui active de nombreuses options très utiles par défaut et donne accès aux thèmes.

Son installation passe elle aussi par un simple script à lancer et installer. On y trouve également thèmes et plugins, mais pouvant aller plus loin que sous Bash, avec une communauté plus développée.

sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Il existe d'ailleurs de nombreux articles et des vidéos consacrés au sujet. Une fois l'installation effectuée, il vous sera proposé d'utiliser zsh par défaut, avec une configuration vide, effectuée manuellement ou prédéfinie. Si c'est votre première fois, on vous conseille ce dernier choix. Vous pourrez par exemple naviguer au clavier lorsque vous effectuez un ls pour afficher la liste des fichiers et dossier du répertoire courant.

La configuration est similaire à Oh My Bash, mais se fait cette fois en modifiant le fichier ~/.zshrc. Cela peut donner des résultats plutôt intéressants, exploitant également la colonne de droite du terminal. Comme celui d'un lecteur nous ayant soumis la capture de son terminal sous zsh avec le thème Powerlevel10k :

Oh My Zsh Powerlevel10k

Vous êtes plutôt porté sur fish ? N'ayez crainte, il y a aussi un « Oh My » pour vous.

PowerShell, le nouveau Terminal et Oh my Posh

Et Windows dans tout ça ? Eh bien entre le bon vieil invite de commandes et PowerShell, il était plutôt laissé de côté sur ces joyeuseries graphiques, à quelques exceptions près. Mais l'arrivée du nouveau Terminal a changé la donne. Avec lui sont arrivées de nombreuses nouveautés, mais aussi des possibilités de personnalisation.

Certes, cela passe encore souvent par un fichier JSON à modifier et c'est un peu limité, mais c'est un début. Dans un billet récent, l'équipe de Microsoft en a détaillé certaines, évoquant un projet équivalent aux deux précédents : Oh my Posh. Lui aussi inspiré de Oh My Zsh, mais se focalisant sur l'application de thèmes pour PowerShell.

Son installation passe par de simples modules (en mode Administrateur) :

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

Pour tester un thème, vous pouvez ensuite simplement taper les commandes :

Set-Prompt
Set-Theme Powerlevel10k-Lean

Si vous rencontrez une erreur, c'est peut être que l'exécution de scripts PowerShell n'est pas autorisée :

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Là aussi, les icônes et polices par défaut seront parfois insuffisantes. Vous pouvez alors installer Cascadia PL comme indiqué dans ce guide, qui détaille également comment profiter de Powerline dans WSL. Microsoft évoque aussi les projets Terminal-Icons et Nerd Fonts pour ajouter un grain de folie supplémentaire. 

Par exemple, pour utiliser CaskaydiaCove dans le profil par défaut, ajoutez dans les paramètres du Terminal :

"defaults":
{
    "fontFace": "CaskaydiaCove NF"
},

Pour rendre votre configuration durable, il faut éditer le profil utilisateur :

notepad $PROFILE

Pour y ajouter le contenu suivant (à adapter au thème qui aura votre préférence) :

Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Powerlevel10k-Lean

Notez que la v3 de Oh my Posh, actuellement en test, introduira l'utilisation de fichiers de configuration plus simples, faciles à partager, à réutiliser d'une machine à l'autre. Il fonctionnera avec Windows Terminal, mais aussi ConEmu, Alacritty, Terminus, Hyper, FluentTerminal et différents Shells : zsh, bash, nix ou fish.

Et vous, à quoi ressemble votre configuration idéale, qu'il s'agisse de thèmes et plugins ou d'un simple PS1 ? N'hésitez pas à nous le dire en commentaires et à partager vos astuces avec nos autres lecteurs.

Oh my Posh Vous arriveriez à travailler dans ce terminal, vous ?

Commentaires (40)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

<3



:inpactitude:

votre avatar

C’est toujours intéressant de découvrir ce genre d’outils, mais pour le coup je n’ai jamais vu l’intérêt de personnaliser le PS1 outre l’aspect ludique passager que ça procure…



L’ajout de l’heure à la limite peut-être sympa (si on a tendance à garder un terminal d’ouvert pour longtemps et donc plein d’usages variés, savoir quand les commandes ont été tapées, why not…), mais pour le reste ce sont bien souvent des infos inutiles, ou en tout cas qu’on l’on a absolument pas besoin de savoir à chaque nouvelle ligne de commande qu’on tape…



Typiquement cet exemple des cores/threads (au passage la commande ne fonctionne pas chez moi, les lignes avec la bonne info de cores contient “cœur(s)” et pas “cœurs”)… si je me repose la question un jour, je connais bien 5-6 commandes pour me donner la réponse, et cette info m’est inutile au quotidien… en plus quelqu’un qui met ça dans son PS1, au final 2 semaines plus tard ce sera gravé dans sa mémoire et il pourra donc changer son PS1. :mrgreen:



Bref, bof bof comme on dit, j’espérais trouver de nouveaux usages à donner à PS1, mais ce n’est pas vraiment le cas. :)
… sauf vraiment pour la spécificité avec Git ! Je trouve toujours que ça reste gadget, mais là okay pour le coup pour cette utilisation très précise le nouveau rendu peu être + sympa. Même si encore une fois en terme d’infos affichées, la valeur ajoutée me semble pas hyper pertinente non plus sauf personnes très spécifiques qui changent de branche toutes les 5 minutes.



Dans la genre bien utile mais rien à voir avec PS1 en revanche, je vous suggère de creuser vers l’usage de less (parce que “less is more than more”) pour faire de la coloration syntaxique un peu plus généralisée dans le terminal (typiquement pour colorer du code et les man dans le terminal..!). O:)

votre avatar

L’exemple était volontairement trivial, pour montrer qu’on peut in fine remonter n’importe quoi (la température de ta pièce si ça t’amuse). Pour le reste, c’est comme tout ; pas besoin, pas grave, si besoin, c’est là. Je ne suis d’ailleurs pas d’accord sur l’inutilité globale que tu évoques.



Outre le fait de pouvoir adapter le PS1 comme ça te chante (on y passe du temps après tout), l’affichage des branches Git et du statut du dépôt facilite quand même pas mal la vie, comme tu le concèdes. Mais c’est un élément parmi d’autres dont on peut avoir besoin, chacun fait selon ses besoins/imagination.



Amha l’important c’est de comprendre que le PS1 est un élément avec une valeur par défaut selon le shell/la distribution, que l’on peut adapter de manière plus ou moins complexe si ça ne nous convient pas. Et si on est bien comme ça, soit ;)

votre avatar

Deux usages primordiaux :




  • modifier le titre de la fenêtre -> j’ai un patch pour gnome-terminal qui me permet ensuite à partir de ça de changer automatiquement le profil du terminal. Quand tu as des connexions sur 4 ou 5 machines en même temps, en root ou pas, pouvoir dans la vue « Activités » voir laquelle est la bonne en un clin d’œil est indispensable.

  • afficher la date (et donc, savoir à quelle heure s’est terminée là dernière commande)

votre avatar

Un truc utile (voire indispensable) pour moi, le symbole $ ou # rouge après une erreur et vert si la commande a renvoyée 0 … Ça permet de détecter des erreurs qu’on peut laisser passer …



_red=”[\((tput setaf 1)\]"
_green="[\)
(tput setaf 2)]”
_reset=”[\((tput sgr0)\]"
PROMPT_COMMAND='RET=\)
?; feedback=“”
[[ \(RET != 0 ]] && feedback="\){_red}” || feedback=”\({_green}"
[[ \)
(id -u) -eq 0 ]] && sym=“#” || sym=”\("
PS1="\)
{debian_chroot:+(\(debian_chroot)}\u@\h:\w\ "
PS1+="\)
{feedback}\({sym}\){_reset} “’

votre avatar

C’est sympa comme info, je n’avais jamais pensé à ça.

votre avatar

DanLo a dit:


C’est toujours intéressant de découvrir ce genre d’outils, mais pour le coup je n’ai jamais vu l’intérêt de personnaliser le PS1 outre l’aspect ludique passager que ça procure…


Avoir un prompt différent “prod”/“test”, ou rappeler dans le prompt le site sur lequel on opère, le login dans lequel on est quand on a des logins différents, le “mode” dans lequel un serveur est (http suspendu, …), le type de noeud (html/php/app/rproxy)…
J’ai ultra souvent changé le prompt, y compris sous MSDOS/OpenVMS, selon ce qui importait.

votre avatar

Le git prompt est indispensable ! Pareil pour la couleur. Et à l’instant, je me dis que je devrais ajouter ma version de gcc courante (vu que je travaille avec bien 8 versions différentes). Je tenterai sans doute lundi !



Merci David pour ce bel article (à nouveau!)

votre avatar

Content de faire plaisir avec des papiers sur de tels sujets en tous cas :D

votre avatar

DanLo a dit:


C’est toujours intéressant de découvrir ce genre d’outils, mais pour le coup je n’ai jamais vu l’intérêt de personnaliser le PS1 outre l’aspect ludique passager que ça procure…



L’ajout de l’heure à la limite peut-être sympa (si on a tendance à garder un terminal d’ouvert pour longtemps et donc plein d’usages variés, savoir quand les commandes ont été tapées, why not…), mais pour le reste ce sont bien souvent des infos inutiles, ou en tout cas qu’on l’on a absolument pas besoin de savoir à chaque nouvelle ligne de commande qu’on tape…



Typiquement cet exemple des cores/threads (au passage la commande ne fonctionne pas chez moi, les lignes avec la bonne info de cores contient “cœur(s)” et pas “cœurs”)… si je me repose la question un jour, je connais bien 5-6 commandes pour me donner la réponse, et cette info m’est inutile au quotidien… en plus quelqu’un qui met ça dans son PS1, au final 2 semaines plus tard ce sera gravé dans sa mémoire et il pourra donc changer son PS1. :mrgreen:



Bref, bof bof comme on dit, j’espérais trouver de nouveaux usages à donner à PS1, mais ce n’est pas vraiment le cas. :) … sauf vraiment pour la spécificité avec Git ! Je trouve toujours que ça reste gadget, mais là okay pour le coup pour cette utilisation très précise le nouveau rendu peu être + sympa. Même si encore une fois en terme d’infos affichées, la valeur ajoutée me semble pas hyper pertinente non plus sauf personnes très spécifiques qui changent de branche toutes les 5 minutes.



Dans la genre bien utile mais rien à voir avec PS1 en revanche, je vous suggère de creuser vers l’usage de less (parce que “less is more than more”) pour faire de la coloration syntaxique un peu plus généralisée dans le terminal (typiquement pour colorer du code et les man dans le terminal..!). O:)


Personnellement, utilisant parfois plusieurs JDK ou Maven, je trouve pratique d’avoir la version en cours même si par défaut c’est toujours la 11 (enfin, chez moi :D). L’heure est également pratique ainsi que l’host, et la couleur sinon c’est terne.



(A suivre sur Nextinpact, la complétion Bash ? :D)

votre avatar

Suivant les environnements de travail, ça peut se révéler une precieuse aide: détection de repo git, branche courante, retour de commande, contexte de travail….

votre avatar

Juste pour info, au lieu de faire source ~/.bashrc, vous pouvez juste faire . ~/.bashrc :)

votre avatar

feignasse :D

votre avatar

Et fier de l’être :mdr:

votre avatar

Tu viens de me faire découvrir un truc, merci pour l’astuce :D

votre avatar

“Quoi de plus triste qu’un terminal” ?
Une fenêtre ?
Surtout quand on est obligé d’utiliser la souris pour interagir avec une application

votre avatar

Quelle tristesse de ne pas devoir deviner la bonne ligne à taper et de juste devoir choisir parmi ce qu’on a déjà devant les yeux qui fonctionnera à coup sûr.
Quelle tristesse de pouvoir faire des Ctrl-Z et autres fonctions d’annulations d’une mauvaise manip…

votre avatar

Cqoicebordel a dit:


Juste pour info, au lieu de faire source ~/.bashrc, vous pouvez juste faire . ~/.bashrc :)


Pas tout à fait la même chose.



source ~/.bashrc lance la commande dans le processus shell courant.
. ~/.bashrc lance la commande dans un nouveau processus shell.

votre avatar

Oui, si je ne m’abuse, sans le ‘source’ les variables exportées (dont PS1) ne seront pas mises à jour

votre avatar

:non: sous bash c’est la même chose.

https://ss64.com/bash/source.html

votre avatar

C’est surtout que source est une commande intégrée de bash (et autres shells, mais pouvant avoir des variantes) tandis que pour être compatible POSIX il est recommandé d’utiliser le dot.

votre avatar

C’est inexact. Si c’était dans un nouveau processus tu ne récupérerais pas les variables modifiées ou définies. En bash . est un alias pour source.

votre avatar

DanLo a dit:


Même si encore une fois en terme d’infos affichées, la valeur ajoutée me semble pas hyper pertinente non plus sauf personnes très spécifiques qui changent de branche toutes les 5 minutes.


Si tu es développeur fais l’essai, à mon avis, tu pourras plus t’en passer! 🙂
Bon ok c’est subjectif, ça peut dépendre de ton usage de git, perso ça me paraît tellement indispensable de savoir à tout moment sur quelle branche je me trouve, bien plus par exemple que le hostname qui à mon avis sert plus aux sysadmins

votre avatar

David_L a dit:


feignasse :D


Juste informaticien

votre avatar

TroudhuK a dit:


Quelle tristesse de ne pas devoir deviner la bonne ligne à taper et de juste devoir choisir parmi ce qu’on a déjà devant les yeux qui fonctionnera à coup sûr. Quelle tristesse de pouvoir faire des Ctrl-Z et autres fonctions d’annulations d’une mauvaise manip…


Quel plaisir de pouvoir scripter a la souris :smack:

votre avatar

J’avoue que voir la branche git sur lequel on est en permanence m’avait attiré.
Mais entre le fait que Oh My Bash change beaucoup trop de chose de base, et le fait qu’une commande git est appelé à chaque entré du prompt, qui du coup peut ralentir l’affichage lorsqu’on est sur un point de montage externe un peu lent, m’ont fait revenir vite en arrière ^^’



Je suis flemmard, comme tout informaticien qui se respect, mais pas au point de ralentir l’accès de la ligne de commande juste pour éviter de faire un git status ou un git branch. Surtout qu’au pire il y a les alias pour raccourcir ces commandes…



Édite : Le code inline s’affiche en block, c’est un bogue ou c’est normale ?

votre avatar

Il doit être possible de faire ça en conditionnel , genre n’afficher la branche que si tu n’es pas dans /mnt , /media ou autres… Au pire si pas possible de le faire avec Oh My Bash tu peux le faire avec le PS1 de base.

votre avatar

Oui, les possibilités sont là. Après il faut vouloir passer un certain temps pour peaufiner tout ça, à voir ^^

votre avatar

DanLo a dit:


C’est toujours intéressant de découvrir ce genre d’outils, mais pour le coup je n’ai jamais vu l’intérêt de personnaliser le PS1 outre l’aspect ludique passager que ça procure…


Tout dépend de ton usage, mais pour moi, avoir le nom d’utilisateur, de machine, le résultat de la commande précédente et son temps d’exécution est très souvent utile.

votre avatar

Alors concernant oh my zsh, c’est très bien pour débuter et découvrir pas mal de possibilité. Mais au final, c’est lourd, et un peu usine à gaz. Je conseille par un gestionnaire de plugin comme zplug ou antigen qui peuvent utiliser les plugins de oh my zsh sans tous télécharger.

votre avatar

Pour ceux qui ne connaissent pas il y a aussi : https://starship.rs/.
C’est un programme écrit en Rust qui va personnaliser le promt de différents shell (bash,zsh,fish,powershell) en fonction de la configuration écrit dans un fichier toml.



Personnellement, on peut pas dire que le truc m’ait convaincu mais si vous voulez tester…



Ha merci pour zplug, je connais pas. Au vu du nom je suppose que c’est un vimplug like. Et si il est aussi “kiss” je l’adopte de suite.



Et oui, merci à l’équipe pour les articles sur Git, Bash etc etc, même si on connait c’est toujours sympa de lire ce genre d’articles.

votre avatar

Un truc utile aussi quand on fait des chipotages avec le PS1, c’est d’éviter de toucher à la variable quand on est pas en interactif sous peine d’avoir des trucs qui balancent des messages, erreurs ou qui ne marchent même pas du tout. Perso j’ai toujours fait ainsi pour les variables que je ne veux pas dans mon environnement quand je ne suis pas connecté en interactif :
if [[ $- =~ "i" ]]; then
PS1="..."
fi
Sinon sous Ubuntu, il y a apparemment par défaut un “case au début du ~/.bashrc qui a le même effet pour tout ce qui suit :
case $- in
i) ;;
*) return;;
esac
PS1="..."



edit: euh… comment on fait pour avoir plusieurs lignes de code en un seul bloc ? :transpi:

votre avatar

Personnellement j’utilise liquidprompt (https://github.com/nojhan/liquidprompt)
J’y mets : la machine et le compte utilisés, (savoir sur quelle machine est un terminal…) le code de retour et le temps d’exécution de la dernière commande (utile quand la commande a un problème).
branche et statut git dans les répertoires sous git, etc.
En fait ça dépend vraiment de son utilisation.

votre avatar

J’ai grave galéré pour que les icônes de Terminal-Icons s’affichent correctement… Je sais pas pourquoi mais avec “Cascadia Code PL”, j’obtiens des rectangles vides. Du coup, j’ai installé “JetbrainsMono NF” et là ça fonctionne :)

votre avatar

DanLo a dit:


(au passage la commande ne fonctionne pas chez moi, les lignes avec la bonne info de cores contient “cœur(s)” et pas “cœurs”)


Autre option qui fonctionne à coup sûr, forcer LC_ALL sur une valeur de base pour être sûr d’avoir des résultats en anglais qui changeront beaucoup moins souvent d’une machine à l’autre que les résultats traduits (les développeurs ont beaucoup plus à cœur de ne pas changer le format des résultats pour éviter de casser des scripts existants plutôt que les traducteurs).



Dans l’exemple de David, ça donnerait (à vérifier tout de même) :
PS1="[\e[1;34m\]\A ⚡ [\e[0m\]$(LC_ALL=C lscpu | grep 'Core(s)' | awk '{print $4}')C/$(nproc)T ⚡ [\e[32m\]\w > \u:\$ [\e[0m\]"




DoWnR a dit:


edit: euh… comment on fait pour avoir plusieurs lignes de code en un seul bloc ? :transpi:


Un triple accents graves, ça ne fonctionne pas ? Édit : Bon bah nan, tu l’avais sans doute testé aussi… :transpi:

votre avatar

:iloveyou: Merci pour ces supers articles pratico pratiques que vous faites pour les devs, ces derniers mois.



Continuez comme ça <3

votre avatar

Merci :smack:

votre avatar

Oui.

votre avatar

Perso moi j’utilise ça:



export PS1=’[\033[01;32m]\u@\H[\033[00m]:[\033[01;34m] [\({PWD}] \t[\033[00m\]\\)



Dans mon .bash_profile



Etant dba et sysadmin, mais pouvant lancer des commandes longues, j’ai besoin d’un prompt léger

votre avatar

Merci pour les réponses en commentaire, ça enrichit pas mal l’article de base!



Quelques bonnes idées que je tenterai probablement à l’occasion du coup. :)



Concernant les quelques questions, je fais du dev embarqué en C et pour le coup, le mot d’ordre étant “stabilité”, je n’ai jamais de questions de versions ou quoi à me poser. Et comme déjà dit, un git status/branch quand nécessaire font largement le café !
…A l’inverse, la coloration selon code d’erreur de la commande précédente… du génie..!

Du PS1 à Oh My Bash/Zsh/Posh : personnalisez votre terminal et rendez-le plus utile

  • PS1 sous Unix, késako ?

  • Modifions PS1 à la main

  • Oh my Bash : thèmes et plugins prêts à l'emploi

  • Oh My Zsh pour un Shell plus productif

  • PowerShell, le nouveau Terminal et Oh my Posh

Fermer