Как я могу изменить свой bash-подсказку, чтобы она показывала мой рабочий каталог?

Вопрос или проблема

Я могу напечатать текущую рабочую директорию вот так

myPrompt$ pwd
/Users/me/myDir

Я хочу, чтобы моя оболочка выглядела вот так

/Users/me/myDir$ pwd
/Users/me/myDir

Это возможно? Как я могу это сделать?

Вы можете использовать последовательности управляющих символов в переменных приглашения.

Поместите это в ваш ~/.bashrc:

PS1='\w\$ '

Вот однострочная команда для OSX. Она добавляет желаемое приглашение в файл профиля и затем перезагружает профиль.

echo "PS1='\w\$ '" >> ~/.bash_profile; source ~/.bash_profile

На El Capitan вам нужно использовать

echo "PS1='\w\$ '" >> ~/.profile; source ~/.profile

По какой-то причине '\w\$' не сработал для меня, но вместо этого я сделал: export PS1="$(pwd) \$" и это сработало.

Похоже на старую тему, но шаги ниже сработали для меня на OS X 10.9.5

  • поместите PS1='\w\$ ' в ~/.profile
  • если вы внесли какие-либо изменения в ~/.bashrc, удалите их
  • закройте терминал с помощью cmd+q
  • перезапустите терминал

Для пользователей Python и Conda:

Добавьте следующую строку в ~/.bashrc и выполните source ~/.bashrc после сохранения.
Следующее покажет среду conda, имя пользователя, имя устройства и базу текущей рабочей директории.
Кроме того, она окрашена в циан.

PS1="\e[0;36m ($CONDA_DEFAULT_ENV) \u@\h \W → \e[m "

Это задаст ваше приглашение пользователя текущей директории и завершит его двоеточием:

Отредактируйте ~/.bashrc следующим кодом:

PS1='$PWD: '

Затем выполните файл, чтобы увидеть эти изменения в действии:

source ~/.bashrc

Мое предложение ДЛЯ LINUX DEBIAN (спасибо, что поправили меня в комментариях)

Поместите это в ваш ~/.bashrc:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\](\D{%H:%M:%S})\[\033[01;34m\]:$PWD\[\033[00m\]\$ '

Это окрасит строку и также добавит время в каждую строку (время иногда может быть полезным)

Простое решение

Откройте ~/.bash_profile и добавьте следующий контент

# \[\e[0m\] сбрасывает цвет до цвета по умолчанию
reset_color="\[\e[0m\]"
# \[\033[33m\] устанавливает цвет в желтый
path_color="\[\033[33m\]"
# \e[0;32m\ устанавливает цвет в зеленый
git_clean_color="\[\e[0;32m\]"
# \e[0;31m\ устанавливает цвет в красный
git_dirty_color="\[\e[0;31m\]"

# определяет, чиста ли ветка git, на которой вы находитесь, или грязная
git_prompt ()
{
  # Это папка git?
  if ! git rev-parse --git-dir > /dev/null 2>&1; then
    return 0
  fi
  # Получаем рабочее имя ветки
  git_branch=$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')
  # Чистая или грязная ветка
  if git diff --quiet 2>/dev/null >&2; then
    git_color="${git_clean_color}"
  else
    git_color="${git_dirty_color}"
  fi
  echo " [$git_color$git_branch${reset_color}]"
}

export PS1="${path_color}\w\[\e[0m\]$(git_prompt)\n"

Это должно:

1) Подсказать путь, в котором вы находитесь, с цветом: path_color.
2) Сообщить вам, на какой ветке вы находитесь.
3) Цветировать имя ветки в зависимости от статуса ветки с git_clean_color 
для чистой рабочей директории и git_dirty_color для грязной.
4) Скобки должны остаться в цвете по умолчанию, который вы установили на своем компьютере.
5) Поместить приглашение на следующую строку для удобства чтения.

Вы можете настроить цвета с помощью этого списка

Сложное решение

Другой вариант – использовать Git Bash Prompt, установить с помощью этого. Я использовал опцию через Homebrew на Mac OS X.

git_prompt_list_themes, чтобы увидеть темы, но мне никакая из них не понравилась.

git_prompt_color_samples, чтобы увидеть доступные цвета.

git_prompt_make_custom_theme [<Название базовой темы>], чтобы создать новую пользовательскую тему, это должно создать файл .git-prompt-colors.sh.

subl ~/.git-prompt-colors.sh, чтобы открыть git-prompt-colors.sh и настроить:

Файл .git-prompt-colors.sh должен выглядеть так с моей настройкой

    override_git_prompt_colors() {
      GIT_PROMPT_THEME_NAME="Custom"

      # Чистая или грязная ветка
      if git diff --quiet 2>/dev/null >&2; then
        GIT_PROMPT_BRANCH="${Green}"
      else
        GIT_PROMPT_BRANCH="${Red}"
      fi
    }

    reload_git_prompt_colors "Custom"

Этот ответ основан на моем ответе на SO, который вы можете увидеть здесь. Надеюсь, это поможет, хорошего дня!

Ответ или решение

Изменение подсказки (prompt) в терминале Bash для отображения текущей рабочей директории – простая и полезная задача, которую можно выполнить в несколько шагов. Я объясню, как это сделать, и предложу различные способы настройки, чтобы удовлетворить ваши предпочтения.

Шаги для изменения подсказки Bash

  1. Откройте файл конфигурации Bash: В зависимости от вашей операционной системы, вам может понадобиться редактировать один из следующих файлов:

    • ~/.bashrc на большинстве дистрибутивов Linux;
    • ~/.bash_profile или ~/.profile на MacOS.
  2. Используйте переменную PS1: Эта переменная определяет, как будет выглядеть ваша командная строка. Чтобы отобразить текущую рабочую директорию, добавьте следующую строку в соответствующий файл:

    PS1='\w\$ '

    Здесь:

    • \w – это код для отображения полного пути текущей рабочей директории;
    • \$ – это символ, который указывает, что это обычный пользователь (для администратора будет отображаться #).
  3. Примените изменения: Чтобы изменения вступили в силу, выполните команду:

    source ~/.bashrc

    или

    source ~/.bash_profile

    в зависимости от того, какой файл вы редактировали.

Дополнительные предложения по настройке

Если стандартное отображение текущей директории вас не устраивает, есть множество способов персонализировать вашу командную строку:

  • Добавление цвета: Вы можете добавить цвет к вашей подсказке, используя escape последовательности ANSI. Например, чтобы сделать текст зеленым, используйте:

    PS1='\[\033[32m\]\w\[\033[0m\]\$ '
  • Включение других данных: Если вы хотите добавлять дополнительную информацию, например имя пользователя или название компьютера, вы можете сделать это следующим образом:

    PS1='\u@\h:\w\$ '

    Здесь:

    • \u – имя пользователя;
    • \h – имя хоста (компьютера).
  • Комбинированные команды при использовании Git: Если вы работаете с Git, вы можете сделать вашу командную строку более информативной, добавляя имя текущей ветки:

    function git_prompt {
       if [ -d .git ]; then
           git_branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
           echo " [$git_branch]"
       fi
    }
    PS1='\u@\h:\w$(git_prompt)\$ '

Заключение

Изменение подсказки в вашем Bash-терминале – это мощный способ адаптировать вашу среду разработки под свои нужды. Используя приведенные выше команды и примеры, вы сможете создать удобный и информативный интерфейс для работы с командной строкой.

Рекомендации по SEO

Чтобы ваше содержимое стало доступным для поиска, используйте ключевые слова, связанные с Bash, такими как "изменение подсказки Bash", "настройка терминала", "настройка окружения разработчика" и "Bash prompt". Это поможет пользователям быстро находить вашу информацию в поисковых системах, что, в свою очередь, повысит ее видимость и полезность.

Оцените материал
Добавить комментарий

Капча загружается...