Изменить Cygwin Prompt

22855
Cristian

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

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

путь $

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

16
Возможный дубликат [Можно ли изменить текст приглашения моего окна терминала?] (Https://superuser.com/questions/287669/is-it-possible-to-change-my-terminal-window-prompt-text) phuclv 6 лет назад 0
[Как изменить формат приглашения bash?] (Https://unix.stackexchange.com/q/386404/44425) phuclv 6 лет назад 0

4 ответа на вопрос

26
Greg Hewgill

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

PS1='\w $ ' 

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

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

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

A login shell is one whose first character of argument zero is a -, or one started with the --login option. When bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior When an interactive shell that is not a login shell is started, bash reads and executes commands from ~/.bashrc, if that file exists.

So it depends...i dont't use the --login, so i must add it to ~/.bashrc

1
skeetastax

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

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
Sandeep

Put this in your ~/.bashrc. Gives a coloured prompt and keeps the status in a single line.

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