Изменить Cygwin Prompt

17

Приглашение cygwin по умолчанию "user@computer path \ n $" слишком длинное для меня. Я хотел бы сохранить путь.

Я хочу, чтобы это стало:

путь $

Есть ли файл конфигурации, который я могу изменить, чтобы сделать это?

Cristian
источник

Ответы:

26

PS1Переменная окружения управляет подсказка:

PS1='\w $ '

Для получения дополнительной информации по этой и другим темам настройки приглашений введите man bash(предположим, что bashэто ваша оболочка) и см. Раздел «ЗАПРОС».

Чтобы сделать это изменение постоянным, отредактируйте ваш ~/.bashrcфайл, добавив строку выше.

Грег Хьюгилл
источник
1
~ / .bashrc не выполняется для оболочки входа в систему. вместо этого обновите ~ / .bash_profile. Я использую следующую строку приглашения, которая содержит некоторую другую полезную информацию, а не только путь: PS1 = '[\ e [32m] \ t [\ e [33m] \ w [\ e [31m] \! [\ e [0m] \ $ '
bobmcn
1
Не забывайте, что обычно .profile исходники .bashrc, так что, по сути, оболочка входа в систему инициализируется с той же вещи, что и оболочка , не входящая в систему, плюс то, что находится в .profile. Если это так, то добавление вашего нового приглашения в .bashrc убивает двух зайцев одним выстрелом.
1

Оболочка входа - это та, чей первый символ аргумента ноль - -, или тот, который начинается с опции --login. Когда bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения. Опция --noprofile может использоваться, когда запускается оболочка, чтобы запретить это поведение. Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~ / .bashrc, если этот файл существует.

Так что это зависит ... я не использую --login, поэтому я должен добавить его в ~ / .bashrc

jr00n
источник
1

Не уверен, почему иметь меньше контекста лучше, чем иметь больше ... Наличие новой строки в приглашении означает, что длина приглашения не должна быть проблемой, но попробуйте это:

PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

или

export PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Это дает вам цветную подсказку:

/full/path/to/current/folder
$your command text here

Таким образом, вы всегда видите полный контекст вашей папки, но при этом получаете полную строку для ввода текста. (Я оставил обычное пространство после '$', потому что оно было окрашено для ясности).

Colours are:
    1. '/full/path/...' = yellow;
    2. '$' (on next line) = cyan;
    3. 'your command text...' = light grey.

Для тех, кому действительно нужен контекст 'user @ hostname':

PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

или

export PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Это дает вам цветную подсказку:

user@hostname /full/path/to/current/folder
$your command text here

Это мое предпочтение.

Colours are:
    1. 'user' = (light) green;
    2. '@' = pink;
    3. 'hostname' = (light) green;
    4. '/full/path/...' = yellow;
    5. '$' (on next line) = cyan;
    6. 'your command text...' = light grey.

(Нет, в этом посте нет орфографических ошибок - Queen's English;))

skeetastax
источник
1

.bashrc не работал для меня. Я добавил это в конец / etc / profile, и это сработало:

export PS1="\[\e[33m\]\w\[\e[0m\] \$ "

Я использую Cygwin версии 2.11.2 (последняя версия от 2018-12-18).

Самуил
источник
0

Поместите это в ваш ~ / .bashrc. Дает цветную подсказку и сохраняет статус в одной строке.

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "
Sandeep
источник