Apenas para atualizar um pouco (para Python3) e aprimorar a resposta selecionada para adicionar cores ao prompt de acordo com um prompt do BASH (no Linux Mint 18.3):
#! /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:
# first 10 chars+last 30 chars
pwd = pwd[:10] + '...' + pwd[-30:]
# Virtual environment being used? Essential not to omit!
ve = os.getenv('VIRTUAL_ENV')
venv = '(`basename \"$VIRTUAL_ENV\"`)' if ve else ''
# colours as per my current BASH Terminal:
# username + hostname: bold green
# path and $: bold blue
print( '\[\e[;1;32m\]%s%s@%s \[\e[;1;34m\]%s $\[\e[0m\] ' % (venv, username, hostname, pwd) )
Mais sobre códigos de cores em um terminal BASH aqui . Provavelmente existe uma maneira de descobrir quais cores o seu Terminal usa automaticamente, mas não tenho idéia do que possa ser.
Com a linha shebang, a export
linha para inclusão no .bashrc se torna:
export PROMPT_COMMAND='PS1="$(~/.local/bin/manage_prompt.py)"' # adjust path to .py file
NB1 esses códigos de escape "\ e" sempre devem estar entre "\ [... \]", caso contrário, os retornos de linha ficam completamente confusos.
NB2 para obter seu caminho completo a qualquer momento, basta ir
... $ pwd
claro...
~/.bashrc
? Seria apenas colar a última linha na parte inferior do arquivo?