Змініть підказку Cygwin


17

Запрошення cygwin за замовчуванням "user@computer path \ n $" занадто довго для мене. Я хотів би зберегти шлях.

Я хочу, щоб це стало:

шлях $

Чи є конфігураційний файл, який я можу змінити для цього?



Відповіді:


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


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.

(Ні, в цій публікації немає орфографічних помилок - англійська королева;))


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\]\$ "
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.