Solo para actualizar ligeramente (para Python3) y mejorar la respuesta seleccionada para agregar colores a la solicitud según una solicitud de BASH (en Linux Mint 18.3 de todos modos):
#! /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) )
Más información sobre códigos de color en un terminal BASH aquí . Probablemente haya alguna forma de averiguar qué colores usa su Terminal automáticamente, pero no tengo ni idea de qué podría ser.
Con la línea shebang el export
línea para inclusión en .bashrc se convierte en:
export PROMPT_COMMAND='PS1="$(~/.local/bin/manage_prompt.py)"' # adjust path to .py file
NB1 estos códigos de escape "\ e" siempre deben estar encerrados en "\ [... \]", de lo contrario, los retornos de línea se desordenarán por completo.
NB2 para obtener tu camino completo en cualquier momento solo ve
... $ pwd
por supuesto...
~/.bashrc
? ¿Sería solo pegar esa última línea al final del archivo?