Как отобразить только имя рабочего каталога в префиксе оболочки?

В настоящее время я работаю в очень длинном каталоге. Возможно, что-то вроде:

~/Documents/c_prog/this_is_a_really_long_project_name/sub_directory/test_case/ 

Было бы замечательно, если бы я мог выполнить команду, когда я в этом каталоге, и она будет показывать только * sername@hostname ~/test_case$ вместо этой стены текста. Когда я перезапущу bash, он снова должен быть нормальным. Я полностью уверен в выполнении этой команды каждый раз, когда я нахожусь в этом каталоге.

Как я могу добиться чего-то подобного?

  • Как изменить приглашение в Linux?
  • подсказка bash не обертывается, как ожидалось
  • PS1, чтобы показать прошедшее время
  • tcsh отображает курсор на следующей строке
  • __git_ps1 (текущая ветка) в приглашении bash всегда устарела
  • Частично дублированная история при настройке PS1 в .bash_profile
  • Как я могу изменить приглашение bash, чтобы показать мой рабочий каталог?
  • Символ ложных @ в начале подсказки bash в Debian Jessie
  • 2 Solutions collect form web for “Как отобразить только имя рабочего каталога в префиксе оболочки?”

    ( bash 4 или новее)

    Если вы установите PROMPT_DIRTRIM на ненулевой номер, он заменит каталоги после ~ на ... , сохранив заданное количество трейлинг-каталогов. Например, установка его в 1 даст вам

     username@hostname ~/.../test_case$ 

    Замените escape-последовательность \w в вашем обычном PS1 с \W Таким образом, из вашего примера это будет что-то вроде:

     PS1='\u@\h \W\$ ' 
    Linux и Unix - лучшая ОС в мире.