17

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

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

путь $

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

5 ответов5

26

Переменная среды PS1 управляет приглашением:

PS1='\w $ '

Для получения дополнительной информации по этой и другим темам настройки приглашения введите man bash (предполагается, что bash - это ваша оболочка) и посмотрите раздел "ПРЕДУПРЕЖДЕНИЕ".

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

1

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

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

1

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

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

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

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;))

0

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

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .