Чтение онлайн

на главную - закладки

Жанры

Командная строка Linux
Шрифт:

<me@linuxbox ~>$

Так лучше!

Кроме того, существует возможность изменить цвет фона, для чего предназначены экранированные последовательности, перечисленные в табл. 13.3. Цвет фона не поддерживает атрибут жирного текста.

Таблица 13.3. Экранированные последовательности, используемые для определения цвета фона

Последовательность

Цвет

\033[0;40m

Черный

\033[0;41m

Красный

\033[0;42m

Зеленый

\033[0;43m

Коричневый

\033[0;44m

Синий

\033[0;45m

Пурпурный

\033[0;46m

Бирюзовый

\033[0;47m

Светло-серый

Чтобы

вывести приглашение на красном фоне, достаточно изменить первую экранированную последовательность:

<me@linuxbox ~>$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "

<me@linuxbox ~>$

Попробуйте другие цвета и посмотрите, что из этого получится!

ПРИМЕЧАНИЕ

Помимо атрибутов символов нормального (0) и жирного (1) текста, есть также атрибут подчеркивания (4), мигания (5) и инверсии (7). В целях воспитания хорошего вкуса многие эмуляторы терминалов не поддерживают атрибут мигания.

Перемещение курсора

Экранированные последовательности можно использовать для позиционирования курсора. Этот прием часто используется для отображения времени или другой информации в разных местах на экране, например вверху, при каждом выводе приглашения к вводу. В табл. 13.4 перечислены экранированные последовательности, управляющие позицией курсора.

Таблица 13.4. Экранированные последовательности, управляющие позицией курсора

Последовательность

Действие

\033[l;cH

Перемещает курсор в строку l и позицию c

\033[nA

Перемещает курсор вверх на n строк

\033[nB

Перемещает курсор вниз на n строк

\033[nC

Перемещает курсор вперед на n символов

\033[nD

Перемещает курсор назад на n символов

\033[2J

Очищает экран и помещает курсор в левый верхний угол (строка 0, позиция 0)

\033[K

Очищает экран от позиции курсора до конца текущей строки

\033[s

Сохраняет текущую позицию курсора

\033[u

Восстанавливает сохраненную позицию курсора

Используя эти коды, можно сконструировать строку приглашения,

рисующую красный прямоугольник с часами в верхней части экрана (время отображается желтым цветом). Код, определяющий строку приглашения, на этот раз выглядит немного устрашающе:

PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]<\u@\h \W>\$ "

В табл. 13.5 приведены отдельные части этого определения, они помогут понять, как это работает.

Таблица 13.5. Экранированные последовательности, управляющие позицией курсора

Последовательность

Действие

\[

Начинает последовательность непечатаемых символов. Истин­ное назначение этой последовательности — позволить bash правильно вычислить длину строки приглашения на экране. Без этого функция редактирования командной строки неправильно позиционировала бы курсор

\033[s

Сохраняет позицию курсора. Это необходимо, чтобы вернуться в местоположение строки приглашения после вывода прямо­угольника с часами в верхней части экрана. Будьте внимательны: некоторые эмуляторы терминалов не поддерживают эту последовательность

\033[0;0H

Перемещает курсор в левый верхний угол, в строку 0, позицию 0

\033[0;41m

Устанавливает красный цвет фона

\033[K

Очищает экран от текущей позиции курсора (в левом верхнем углу) до конца строки. Поскольку теперь установлен красный цвет фона, строка окрашивается в красный цвет. Обратите внимание, что последовательность очистки экрана до конца строки не изменяет позицию курсора, который остается в левом верхнем углу

\033[1;33m

Устанавливает желтый цвет текста

\t

Выводит текущее время. Хотя это «печатаемый» элемент, он находится в непечатаемом блоке строки приглашения, потому что нам не нужно, чтобы командная оболочка bash учитывала размер часов при расчете истинного размера отображаемой строки приглашения

\033[0m

Выключает цвет. Сбрасывает настройки цвета для текста и фона

\033[u

Восстанавливает позицию курсора, сохраненную ранее

\]

Завершает последовательность непечатаемых символов

<\u@\h \W>\$

Строка приглашения

Сохранение определения приглашения

Я думаю, что мало у кого возникло желание вводить это монструозное определение каждый раз, поэтому нам нужно где-то сохранить строку приглашения. Сохранить определение можно в файле .bashrc. Для этого добавьте следующие две строки в файл:

PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]<\u@\h \W>\$ "

export PS1

Заключительное замечание

Поделиться:
Популярные книги

Измена. Тайный наследник

Лаврова Алиса
1. Тайный наследник
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Тайный наследник

Инквизитор Тьмы

Шмаков Алексей Семенович
1. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы

Наследник

Майерс Александр
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наследник

Ротмистр Гордеев 3

Дашко Дмитрий
3. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 3

(Не)нужная жена дракона

Углицкая Алина
5. Хроники Драконьей империи
Любовные романы:
любовно-фантастические романы
6.89
рейтинг книги
(Не)нужная жена дракона

Идеальный мир для Лекаря 28

Сапфир Олег
28. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 28

Сыночек в награду. Подари мне любовь

Лесневская Вероника
1. Суровые отцы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сыночек в награду. Подари мне любовь

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Искатель 1

Шиленко Сергей
1. Валинор
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Искатель 1

Сердце Дракона. Том 10

Клеванский Кирилл Сергеевич
10. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.14
рейтинг книги
Сердце Дракона. Том 10

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Выстрел на Большой Морской

Свечин Николай
4. Сыщик Его Величества
Детективы:
исторические детективы
полицейские детективы
8.64
рейтинг книги
Выстрел на Большой Морской

Кодекс Крови. Книга VII

Борзых М.
7. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VII