Автор Гілка: Виділення кольором запрошення в BASH  (Прочитано 1802 раз)

Відсутній Rasta

  • Новачок
  • *
  • дописів: 6
  • Карма: +0/-0
  • Що новенького?
Можливо хто знає, як налаштувати колір запрошення на введення команд в консолі.
Дуже зручно використовувати в повсякденному житті.
Колись давно умів це робити, але вже зовсім забув.  :(

Щиро вдячний за відповіді, все налаштував  :D
« Змінено: 2006-08-16 10:02:53 від Rasta »

Відсутній diesel

  • Новачок
  • *
  • дописів: 1
  • Карма: +0/-0
  • I Love YaBB 2!
Re: Виділення кольором запрошення в BASH
« Відповідей #1 : 2006-08-15 20:42:13 »
Наприклад:

depo ~ $ cat .bashrc |tail -1
export PS1="\[\033[01;31m\]\h \[\033[01;34m\]\W \$ \[\033[00m"

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Виділення кольором запрошення в BASH
« Відповідей #2 : 2006-08-15 21:10:10 »
Десь тут було обговорення з цієї теми, почате паном Андрієм, але шукати не дозволяє щвидкість інтернету :).
Отже:
Кольори тексту задаються за допомогою esc-послідовностей.
От як "\e[0;31m". Перша цифра - то 0 або 1 якщо вам потрібен темний або яскравий варіанти кольору відповідно. Друге число складається з двох цифр - перша то 3 або 4 - визначає встановлюється клоір символу чи фону. А друга цифра відповідає:
0 чорний, сірий      1 червоний
2 зелений            3 коричневий, жовтий
4 синій, блакитний   5 фіолетовий
6 синьо-зелений      7 сірий, білий

А щоб bash не вважала ваші псевдо-символи дійсно символами - їх треба засунути поміж \[  та \]. Наприклад у мене:
PS1="\[\e[1;31m\][\[\e[0;36m\]\u\[\e[1;37m\]:\[\e[0;32m\]\w\[\e[1;31m\]]\[\e[1;32m\]"
« Змінено: 2006-08-15 21:37:25 від ISBear »

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Виділення кольором запрошення в BASH
« Відповідей #3 : 2006-08-16 12:52:48 »
Цитата
fancybash - A coloured Bash prompt with extra features.

fancybash is a Bash addon for being included into your bashrc.
It adds further information to your Bash prompt in fancy colours.
While its colours are cyan/grey when working as unprivileged user, they change
to yellow/red when becoming root (or other user with uid=0) to indicate
attention.

Цитата
bashish - Bashish Console Theme Engine

Bashish is a theme-engine for bash and other Bourne-style shells (eg. zsh, ksh and ash) that will make your terminal themeable. It includes a scalable design where you easily can add/remove features such as font changing, terminal numbering, colorization.

Bashish is a theme engine for the console. It can change most customizable properties of a terminal and switch theme on-the-fly so different themes can be used at the prompt and in applications.

Цитата
viewglob - Current tree visualisation add-on for Bash and Zsh and also shows glob patterns.

A visualition add-on for Bash and Zsh that shows the current tree (visual ls of
the current dir) and the glob patterns. This allows one to evaluate the
ramifications of a command while typing. and it eases the tab-completion driven
input. It uses a client-daemon model which makes it useful through ssh
connections. It's no filemanager or replacement for ls.

Цитата
bash-completion - bash programmable completion.

bash-completion is a collection of shell functions that take advantage of
the programmable completion feature of bash 2.04 and later.

To use this collection, you ideally need bash 2.05a or later. You can also use
bash 2.05 if you apply the group name completion patch available at
http://www.caliban.org/files/bash/bash-2.05-group_completion.patch.
Alternatively, you can just comment out the lines that contain
'comp{lete,gen} -g'.

If you're using bash 2.04, in addition to commenting out the lines discussed
in the previous paragraph, you'll also need to edit /etc/bashrc to
reflect this version in the $BASH_VERSION test.

Мій PS1:

PS1="\$? \$(date +%X)\[\033]0;\w\007 \033[32m\]\u@\h \[\033[33m\w\033[0m\] $ "
[Fedora Linux]

zzandy

  • Гість
Re: Виділення кольором запрошення в BASH
« Відповідей #4 : 2006-10-06 10:42:24 »
Була тема про це, почата мною, але я її теж не знайшов. До/про вищесказаного можу додати, що я трохи для себе проясняв і систематизовував це питання. Якщо трохи підсумувати матеріали в Інтернеті (це лишу доповнення до того, що було сказано вище) то:

Загальний вигляд команди такий:
\[\e[<flag1>;<flag2>;<flag3>m\]

Де \e або \033 - символізує початок esc послідовності, m - відповідно кінець. Всю esc послідовність треба обгорнути в "теги" \[ і \]. Це дуже важливо, бо воно запобігає неприємним проблемам з накладанням тексту самого на себе при введенні команд в оболонку. В одній esc послідовності можна використовувати більше одного коду.

<flagi> може мати такі значення:
0 - скинути все форматування в типові значення (цим добре закінчувати естетичні вправи щоб ls не писав червоним по синьому наприклад)
1 - встановити виділення тексту (літери можуть стати більш яскравими або/і жирними)
4 - встановити підкреслювання літер
5 - встановити миготіння (скоріш за все тло стане яскравішим а мигати ніхто не буде)
7 - інвертування фону і літер (тобто параметри тла застосувати до літер і навпаки)

Кольори встановлюються такими кодами:

КолірЛітерТла
Чорний3040
Червоний3141
Зелений3242
Жовтий3343
Блакитний3444
Фіолетовий                   3545
Бірюзовий3646
Сірий3747
Типовий3949

Мій варіант:
PS1="\[\033[01;30m\][\[\033[00m\]\u \[\033[01;36m\]\w\[\033[01;30m\]]\[\033[00m\]$ "
« Змінено: 2006-10-06 21:43:40 від zzandy »