Tout juste pour mettre à jour légèrement (pour Python3) et améliorer la réponse sélectionnée pour ajouter des couleurs à l'invite de commandes comme dans une invite de commandes BASH (dans Linux Mint 18.3 en tous cas) :
#! /usr/bin/python3
import os, getpass
from socket import gethostname
username = getpass.getuser()
hostname = gethostname()
pwd = os.getcwd()
homedir = os.path.expanduser('~')
pwd = pwd.replace(homedir, '~', 1)
if len(pwd) > 40:
# premiers 10 caractères+derniers 30 caractères
pwd = pwd[:10] + '...' + pwd[-30:]
# Environnement virtuel en cours d'utilisation ? Essentiel à ne pas omettre !
ve = os.getenv('VIRTUAL_ENV')
venv = '(`basename \"$VIRTUAL_ENV\"`)' if ve else ''
# couleurs selon mon Terminal BASH actuel :
# nom d'utilisateur + nom de l'hôte : vert en gras
# chemin et $ : bleu en gras
print( '\[\e[;1;32m\]%s%s@%s \[\e[;1;34m\]%s $\[\e[0m\] ' % (venv, username, hostname, pwd) )
Plus d'informations sur les codes couleur dans un Terminal BASH ici. Il y a sûrement un moyen de savoir automatiquement quels sont les couleurs utilisées par votre Terminal, mais je n'en ai aucune idée.
Avec la ligne shebang, la ligne export
à inclure dans .bashrc devient alors :
export PROMPT_COMMAND='PS1="$(~/.local/bin/manage_prompt.py)"' # ajustez le chemin vers le fichier .py
NB1 ces codes d'échappement "\e" doivent toujours être encadrés par "\[ ... \]", sinon les sauts de ligne seront complètement perturbés.
NB2 pour obtenir votre chemin complet à tout moment, il suffit de faire
... $ pwd
bien sûr...