Просто немного обновить (для Python3) и улучшить выбранный ответ, чтобы добавить цвета к приглашению в соответствии с приглашением BASH (в любом случае в 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) )
Больше о цветовых кодах в терминале BASH здесь . Возможно, есть какой-то способ узнать, какие цвета использует ваш терминал, но я не знаю, что это может быть.
В строке shebang строка export
для включения в .bashrc становится:
export PROMPT_COMMAND='PS1="$(~/.local/bin/manage_prompt.py)"' # adjust path to .py file
ВНИМАНИЕ, эти escape-коды "\ e" всегда должны быть заключены в "\ [... \]", в противном случае возврат строки будет полностью испорчен.
NB2, чтобы получить полный путь в любое время
... $ pwd
конечно...
~/.bashrc
? Будет ли вставлять последнюю строку внизу файла?