Инструменты пользователя

Инструменты сайта


subjects:administration:start

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
subjects:administration:start [2018/06/05 12:31]
subjects:administration:start [2023/05/09 19:53] (текущий)
[Приглашение командной строки] продублировал свой комментарий
Строка 4: Строка 4:
  
 FIXME FIXME
 +
 +===== Настройки =====
 +===== Приглашение командной строки =====
  
 <file bash .bashrc> <file bash .bashrc>
 # Раскрашиваем приглашение командной строки # Раскрашиваем приглашение командной строки
 PS1="​\`if [ \$? = 0 ]; then echo \[\e[33m\]\t\[\e[00m\] \[\e[01\;​32m\]\(^_^\)\[\e[00m\] \[\e[32m\]\u\[\e[33m\]@\[\e[32m\]\h\[\e[00m\];​ else echo \[\e[31m\]\t\[\e[00m\] \[\e[01\;​41m\]\(O_o\)\[\e[00m\] \[\e[33m\]\u\[\e[31m\]@\[\e[33m\]\h\[\e[00m\];​ fi\`\[\e[01;​34m\] [ \w ]\[\e[00m\]\n⌎ ${debian_chroot:​+($debian_chroot)}\[\e[01;​32m\]\!\[\e[01;​34m\] \$\[\e[00m\] " PS1="​\`if [ \$? = 0 ]; then echo \[\e[33m\]\t\[\e[00m\] \[\e[01\;​32m\]\(^_^\)\[\e[00m\] \[\e[32m\]\u\[\e[33m\]@\[\e[32m\]\h\[\e[00m\];​ else echo \[\e[31m\]\t\[\e[00m\] \[\e[01\;​41m\]\(O_o\)\[\e[00m\] \[\e[33m\]\u\[\e[31m\]@\[\e[33m\]\h\[\e[00m\];​ fi\`\[\e[01;​34m\] [ \w ]\[\e[00m\]\n⌎ ${debian_chroot:​+($debian_chroot)}\[\e[01;​32m\]\!\[\e[01;​34m\] \$\[\e[00m\] "
 +</​file>​
 +
 +  * __wiki.archlinux.org/​title/​Bash/​Prompt_customization__
 +  * __habr.com/​post/​558316/​comments/#​comment_23073468__
 +++++Много-много текста:​ подробный разбор|
 +Стандартное приглашение в моей системе выглядело так:
 +
 +<code bash>​PS1="​[\u@\h \W]\$ "</​code>​
 +
 +  * %%[%% — символ "​["​
 +  * %%\u%% — логин пользователя @ — %%"​@"​%%
 +  * %%\h%% — имя хоста
 +  * %%" "%% — пробел
 +  * %%\W%% — рабочий каталог/​дирректория/​папка
 +  * %%"\$ "%% — символы %%"]$ "%%
 +
 +Наиболее близкой частью этой конструкции,​ является вот эта часть кода:
 +
 +<code bash>"​\n⌎ ${debian_chroot:​+($debian_chroot)}\[\e[01;​32m\]\!\[\e[01;​34m\] \$\[\e[00m\] "</​code>​
 +
 +  * %%\n%% — символ перевода строки.
 +  * %%"⌎ "%% — это просто два символа %%"​⌎"​%% и пробел.
 +  * ''​%%${debian_chroot:​+($debian_chroot)}%%''​ — https://​askubuntu.com/​questions/​372849/​what-does-debian-chrootdebian-chroot-do-in-my-terminal-prompt
 +  * %%\[%% —
 +  * %%\e[01;​32m%% — %%\033[1;​32m%% — активируем стиль: жирный зелёный
 +  * %%\]%% —
 +  * %%\e[01;​34m%% — %%\033[1;​34m%% — активируем стиль: жирный синий
 +  * %%\]%% —
 +  * %%\!%% — номер текущей команды
 +  * %%\]%% —
 +  * %%" \$"%% — это пробел и %%$%%
 +  * %%\[%% —
 +  * %%\e[00m%% — %%\033[0m%% — сброс текущего стиля к изначальному
 +  * %%\]%% —
 +  * %%" "%% — пробел
 +
 +Вообще,​ конструкции ''​%%"​\["​%%''​ и ''​%%"​\]"​%%''​ тут что-то вроде визуальной обёртки. Не помню, зачем их вставил. Если их убрать,​ будет:
 +
 +<code bash>"​\n⌎ ${debian_chroot:​+($debian_chroot)}\e[01;​32m\!\e[01;​34m \$\e[00m "</​code>​
 +
 +Помимо этого, мною добавлены были лишние символы 0, до двухсимвольных конструкций. Их тоже можно убрать.
 +
 +<code bash>"​\n⌎ ${debian_chroot:​+($debian_chroot)}\e[1;​32m\!\e[1;​34m \$\e[0m "</​code>​
 +
 +Лично мне, такую конструкцию воспринимать сложнее.
 +
 +Ещё можно поменять %%\e%% на %%\033%%
 +
 +<code bash>"​\n⌎ ${debian_chroot:​+($debian_chroot)}\033[1;​32m\!\033[1;​34m \$\033[0m "</​code>​
 +
 +Это - рабочая конструкция:​
 +<code bash>​PS1="​\n⌎ ${debian_chroot:​+($debian_chroot)}\033[1;​32m\!\033[1;​34m \$\033[0m "</​code>​
 +
 +Можно попробовать ввести её в консоль.
 +
 +Конструкция:​
 +<code bash>"​\`if [ \$? = 0 ]; then echo … ; else echo … ; fi\`"</​code>​
 +
 +Позволяет отследить успешное выполнение команды или возврат ошибки.
 +
 +Именно вот эту конструкцию из статьи:​
 +<code bash>"​PS1="​\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\];​ else echo \[\e[31m\]O_O\[\e[0m\];​ fi\`[\u@\h:​\w]\\$ "</​code>​
 +
 +я вроде бы брал за основу.
 +
 +Строки:​
 +<code bash>​echo \[\e[33m\]\t\[\e[00m\] \[\e[01\;​32m\]\(^_^\)\[\e[00m\] \[\e[32m\]\u\[\e[33m\]@\[\e[32m\]\h\[\e[00m\];</​code>​
 +и
 +<code bash>​echo \[\e[31m\]\t\[\e[00m\] \[\e[01\;​41m\]\(O_o\)\[\e[00m\] \[\e[33m\]\u\[\e[31m\]@\[\e[33m\]\h\[\e[00m\];</​code>​
 +
 +повторяют друг-друга по конструкции,​ но отличаются деталями. ; приходится экранировать из-за конструкции if.
 +
 +  * %%\e[33m%% — активируем стиль: жёлтый
 +  * %%\e[31m%% — активируем стиль: красный
 +  * %%\t%% — время
 +  * %%\e[00m%% — сброс стиля
 +  * %%" "%% — пробел
 +  * %%\e[01\;​32m%% — %%\033[1;​32m%% — активируем стиль: жирный зелёный
 +  * %%\e[01\;​41m%% — %%\033[1;​41m%% — активируем стиль: жирный и красный фон
 +  * ''​%%"​\(^_^\)\"​%%''​ — довольная рожица
 +  * ''​%%"​\(O_o\)\"​%%''​ — удивлённая рожица
 +  * %%\e[00m%% — %%\033[0m%% — сброс стиля
 +  * %%" "%% — пробел
 +  * %%\e[32m%% — %%\033[32m%% — активируем стиль: зелёный
 +  * %%\e[33m%% — %%\033[33m%% — активируем стиль: жёлтый
 +  * %%\u%% — логин пользователя
 +  * %%\e[33m%% — %%\033[33m%% — активируем стиль: жёлтый
 +  * %%\e[31m%% — %%\033[31m%% — активируем стиль: красный
 +  * %%@%% — %%"​@"​%%
 +  * %%\e[32m%% — %%\033[32m%% — активируем стиль: зелёный
 +  * %%\e[33m%% — %%\033[33m%% — активируем стиль: жёлтый
 +  * %%\h%% — имя хоста
 +  * %%\e[00m%% — %%\033[0m%% — сброс стиля
 +
 +Остался вот этот кусочек:​
 +
 +<code bash>​[\e[01;​34m\] [ \w ]\[\e[00m\]</​code>​
 +
 +  * %%\e[01\;​34m%% — %%\033[1;​34m%% — активируем стиль: жирный синий
 +  * %%" [ " — " [ " \w%% — рабочий каталог/​дирректория/​папка
 +  * %%" ] " — " ] "%%
 +  * %%\e[00m%% — %%\033[0m%% — сброс стиля
 +
 +Теперь,​ по прошествии времени и ещё раз разобравшись со всем заново,​ я могу всё переписать в стиле статьи,​ убрав лишнее.
 +
 +Было:
 +
 +.bashrc
 +
 +<code bash>​PS1="​\`if [ \$? = 0 ]; then echo \[\e[33m\]\t\[\e[00m\] \[\e[01\;​32m\]\(^_^\)\[\e[00m\] \[\e[32m\]\u\[\e[33m\]@\[\e[32m\]\h\[\e[00m\];​ else echo \[\e[31m\]\t\[\e[00m\] \[\e[01\;​41m\]\(O_o\)\[\e[00m\] \[\e[33m\]\u\[\e[31m\]@\[\e[33m\]\h\[\e[00m\];​ fi\`\[\e[01;​34m\] [ \w ]\[\e[00m\]\n⌎ ${debian_chroot:​+($debian_chroot)}\[\e[01;​32m\]\!\[\e[01;​34m\] \$\[\e[00m\] "</​code>​
 +
 +Стало:
 +
 +.bashrc
 +
 +<code bash>​PS1="​\`if [ \$? = 0 ]; then echo \e[33m\t\e[0m \e[1\;​32m\(^_^\)\e[0m \e[32m\u\e[33m@\e[32m\h\e[0m;​ else echo \e[31m\t\e[0m \e[1\;​41m\(O_o\)\e[0m \e[33m\u\e[31m@\e[33m\h\e[0m;​ fi\`\e[1;​34m [ \w ]\e[0m\n⌎ ${debian_chroot:​+($debian_chroot)}\e[1;​32m\!\e[1;​34m \$\e[0m "</​code>​
 +
 +Если заменить %%"​\e"​%% на %%"​\033"​%%,​ то получится ближе к тексту статьи:​
 +
 +.bashrc
 +
 +<code bash>​PS1="​\`if [ \$? = 0 ]; then echo \033[33m\t\033[0m \033[01\;​32m\(^_^\)\033[0m \033[32m\u\033[33m@\033[32m\h\033[0m;​ else echo \033[31m\t\033[0m \033[1\;​41m\(O_o\)\033[0m \033[33m\u\033[31m@\033[33m\h\033[0m;​ fi\`\033[1;​34m [ \w ]\033[0m\n⌎ ${debian_chroot:​+($debian_chroot)}\033[1;​32m\!\033[1;​34m \$\033[0m "</​code>​
 +
 +И оно вроде как даже работает,​ но "​глючит"​ при навигации по истории,​ например. В отличие от изначальной конструкции. Может, конструкции ''​%%"​\["​%%''​ и ''​%%"​\]"​%%''​ были нужны или что-то лишнее удалил случайно,​ когда переписывал. Искать проблему сейчас — лень, но думаю, смысл я объяснил. Сам предпочту пользоваться старой конструкцией,​ проверенной мною же.
 +
 +++++
 +===== Путешествие по истори =====
 +Использование:​ начните набирать команду,​ используйте ''​PgUp''​ и ''​PgDown''​ для путешествия по истории,​ где такое же начало.
 +
 +<file bash .inputrc>​
 +"​\e[5~":​ history-search-backward
 +"​\e[6~":​ history-search-forward
 </​file>​ </​file>​
subjects/administration/start.1528191094.txt.gz · Последние изменения: 2018/06/05 12:31 —

На главную страницу Обучение Wikipedia Тестирование Контакты Нашли ошибку? Справка

Записаться на занятия

Ошибка Записаться на занятия к репетитору

Телефоны:

  • +7 (910) 874 73 73
  • +7 (905) 194 91 19
  • +7 (831) 247 47 55

Skype: eduVdom.com

закрыть[X]
Наши контакты