Escape последовательности linux что это

Заметки о разном:
о escape последовательностях(символьных объектах) именах цветовых атрибутах ширине пикселях вертикальном выравнивании (VALIGN) непрерывных пробелах ( ) комментарии

Этот подраздел рассматривает технические проблемы, связанные с некоторыми тегами HTML Рекомендуем пропустить его в первом чтении, чтобы вернуться потом при необходимости. Описания тегов содержат ссылки на дополнительную литературу

Escape последовательности (символьные объекты)

Escape последовательности или, точнее, символьные объекты, представляют собой метод представления специальных символов. Например, escape последовательность символ «больше чем», правая угловая скобка > & амперсанд & « двойные кавычки «

Двойные кавычки («)могут использоваться и в пределах обычного текста

Заметим, чт точка с запятой является частью escape последовательности, но в принципе она может быть опущена. Однако одни броузеры обработают такой код HTML, а другие могут и не понять

Необходимость в вышеупомянутых escape последовательностях проистекает из синтаксиса HTML. На самом деле escape последовательности существуют дл всех символов в набор ISO Latin 1. Возьмете себе на заметку следующее

  • вид запис
    ©знак копирайт, ©
    ®знак зарегистрированной торговой марки, ®
    непрерывный пробел
  • записи, такие как Æ(для AE лигатуры, Æ), определены в приложени Символьные объекты для ISO Latin-1 HTML 3.2 Ссылочным спецификациям

  • существуют последовательности вида &# n ;, гд n — позиционный код символа в десятичном исчислении (в диапазоне от 0 до 255)
  • Есть и другие причины для использования escape последовательностей. Использование äвместо д казалось бы может дать некоторую независимость символьного кода, однако на самом деле это не так — если броузер может вывести äправильно, он может также верно вывести и документ, в котором прямым образом специфицирован символ д. Однако бывает так, что из-за ограничений клавиатуры невозможно прямым образо ввести некоторые специальные символы, и в таких случаях можно воспользоваться нотацией (последовательностью), подобной ä

    Некоторые броузеры поддерживают и другие escape последовательности, например, ™, ­, &cbsp;. Использование таких нотаци не рекомендуется. (Нотация ™представляет символ, который вообще не принадлежит к ISO Latin 1. Вместо этого можно использовать проверенную нотацию TM . Нотация ­задает «мягкий дефис», который имеет неопределенную семантику в HTML. Нотация &cbsp;установленная для «условного прерывающегося пробела», отсутствует в ISO Latin 1 и, возможно, такой символ скоро вообще не будет использоваться.)

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

    • буквы английского алфавита ( A — Z a — z )
    • цифры ( 0 9 )
    • промежутки времен
    • дефисы ( — )

    и начинающуюся с буквы

    Концепция имени имеет место в описании атрибутов HTTP-EQUIV и NAME элемент METAи в описании атрибута NAME элемент PARAM

    Строка символов, которая используется для NAME иногда может содержать и другие символы, однако тогда она должна быть взята кавычки

    В элемента FONT BODYнекоторые конструкции HTML могут быть использованы, чтобы специфицировать цвета:например, цвет фона, цвет текста по умолчанию или цвет текст связи

    Так как все мониторы и программы могут отображать цвет, действительное отображение может быть черно-белым или с различными оттенками серого

    Для спецификации цвета, как значения атрибута, существуют два варианта

    • Символьная нотация RED. Определено шестнадцать таких имен (см. ниже), которые можно записывать в любом регистре с кавычками или без
    • Цифровое обозначение в шестнадцатиричной записи, например, «#FF0000», которая контролирует, каким образом цвет формируется из основных цветов — красного, зеленого и голубого — в так называемо sRGB цветовое пространство , при этом обозначение должно быть взято кавычки

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

    Чтобы пользоваться предварительно определенными цветовыми именами, необходимо знать их числовые эквиваленты, которые приводяться ниже:

    Цветовые имена и sRGB значения

    Black (Черный)=»#000000″ Green (Зеленый)=»#008000″
    Silver (Серебро)=»#C0C0C0″ Lime (Известь)=»#00FF00″
    Gray (Серый)=»#808080″ Olive (Оливковый)=»#808000″
    White (Белый)=»#FFFFFF» Yellow (Желтый)=»#FFFF00″
    Maroon (Темно-бордовый)=»#800000″ Navy (Темно-синий)=»#000080″
    Red (Красный)=»#FF0000″ Blue (Синий)=»#0000FF»
    Purple (Фиолетовый)=»#800080″ Teal (Чирок)=»#008080″
    Fuchsia (Фуксия)=»#FF00FF» Aqua (Аква)=»#00FFFF»

    Эти цвета были первоначально отобраны, как 16 цветный стандарт, поддерживаемый Windows VGA палитрой

    См. также

    • Шестнадцатиричные цветовые коды для BGCOLOR
    • Установка фонового и текстового цветов Colors
    • 216 цветов в Netscape

    Значение атрибута WIDTH в тегах, например HRил TABLEможно специфицировать двумя альтернативными путями

    • ка процентную часть промежутка между текущими левой и правой границами;в этом случае значение атрибута должно быть взято кавычкии за числом процентов должен сразу следовать знак процента, например, WIDTH=»80%
    • пикселях , при этом задается целое число (кавычки не требуются), например WIDTH=212

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

    Используемые в атрибутах значения пикселя определяют пиксел экрана . Физический размер пикселя определяется монитором пользователя

    При выводе документа на прибор с очень высоким разрешением, например, лазерный принтер, броузеры должны умножать значения в пикселях на соответствующий коэффициент. То есть, если программа просмотра имеет дисплей с 75 пикселями на дюйм, а вывод должен осуществляться на лазерный принтер с 600 точками на дюйм, значение атрибута HTML в пикселях умножается на 8

    В некоторых тегах, связанных таблицами, может быть использован атрибут VALIGN для управления вертикальным выравниванием, т.е. позиционированием в вертикальном направлении ячеек таблицы

    Чтобы позиционировать содержимое ячеек в верхней части, середине или нижней части ячейки таблицы соответственно, задаются следующие значения атрибута VALIGN:TOP (верх), MIDDLE (середина), BOTTOM (низ)

    По умолчанию VALIGN=MIDDLE

    Непрерывный пробел ( )(Non-breaking spaces)

    Последовательность являетс escape нотациейдля символа, который в других контекстах обычно называется непрерывным пробелом, или, для краткости, NBSP. Согласн ISO 8859 , этот символ должен быть представлен, как обыкновенный пробел (пропуск, пустое место), однако такой, который не заменялся бы переводом строки (как это часто бывает с обыкновенным пробелом в текстовой обработке). То есть для того, чтобы два слова были на одной строке с некоторым расстоянием между ними, между этими словами должны появиться непрерывные пробелы. (Действительная ширина промежутка между словами может меняться, и нет необходимости привязываться к определенному количеству пробелов в файле HTML.)

    Вопрос о том, надо предупреждать перевод строки, когда осуществляется вывод HTML документа, не имеет однозначного ответа Спецификации HTML 2.0 говорят

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

    Более того, хот HTML 3.2 Ссылочные спецификации не вносят ясности в этот вопрос, в разделе описания атрибута NOWRAP элементо TH TDуказывается, что знак должен действовать как непрерывный пробел, по крайней мере в пределах ячеек таблицы

    Если Вы используете непрерывные пробелы, используйте и вмест обычных пробелов, а не в дополнение к ним. Например, если Вы хотите предупредить перевод строки межд version 3 , наберит version 3 (но н version 3 )

    С другой стороны, таблицев HTML 3.2 может иметь совершенно другое значение, которое может быть описано, ка непустое пространство :когда таблица представлена с бордюром, ячейки без содержания (просто пробелы не учитываются)изображаются без бордюра, однако в разметке указывается

    Файл HTML может содержать комментарии, дающие пояснения для человека, читающего HTML код. Комментарии не влияют каким-либо образом на представление документа, т.е. они игнорируются броузером

    Вы можете начать комментарии с четырехсимвольной последовательност (знак «меньше чем», восклицательный знак, два дефиса)и завершить его трехсимвольной последовательность —> (два дефиса, знак «больше чем»). Например:

    Однако, обычно предпочитают включать информацию о документе в элементы HTML, например META, и также делать частью самого документа информацию о его цели, авторе, дате создания и последней модификации

    Таким образом, комментарии желательно делать только в редких случаях, например, для объяснения кода HTML или устаревших понятий. Помните, что комментарии является частью файла HTML и передаются вместе с документом. Поэтому, во избежании расширения файла, если Вы хотите много сказать, изложите все это в отдельном документе, а в текст вставьте только URL документа

    Редакторы и конвертеры HTML часто сами вставляют несколько комментирующих строк в начало HTML файла. Такие строки могут быть полезны, и их не стоит убирать

    Источник

    Bash (Русский)/Prompt customization (Русский)

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

    Contents

    Приглашения

    Bash имеет четыре строки приглашения, каждая из которых может быть настроена.

    • PS1 — основное приглашение, которое отображается перед каждой командой; по этой причине модифицируется чаще всего.
    • PS2 — второе приглашение, отображается, если команде требуются дополнительные данные для ввода (например, в случае многострочных команд).
    • PS3 — используется довольно редко. Отображается при работе встроенной команды Bash select , выводящей интерактивное меню. В отличие от остальных приглашений, не раскрывает escape-последовательности Bash. Обычно все изменения применяются непосредственно в скрипте, содержащем select , а не в файле .bashrc .
    • PS4 — также используется редко. При отладке скриптов показывает уровни вложенности — первый символ приглашения повторяется столько раз, сколько на данный момент задействовано уровней.

    Настройка конкретного приглашения подразумевает присваивание (обычно в файле

    /.bashrc ) необходимой строки в переменную, например:

    Техники

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

    Escape-последовательности Bash

    При выводе строки приглашения Bash ищет экранированные символом слэша символы (escape-последовательности) и конвертирует их в специальные строки. Например, \u превратится в имя пользователя, а \A — в текущее время. Таким образом, если переменной PS1 присвоить ‘\A \u $ ‘ , то приглашение будет выглядеть как 17:35 пользователь $ .

    Полный список escape-последовательностей можно найти в руководстве bash(1) § PROMPTING и в справочнике Bash.

    Escape-последовательности terminfo

    Помимо escape-последовательностей, которые понимает Bash, большинство терминалов также распознают специальные последовательности, которые влияют на терминал сам по себе, а не на печатаемые символы. Например, так можно изменить цвет строки символов, сдвинуть курсор в произвольную позицию или очистить экран. Эти последовательности могут быть довольно неудобными и варьируются от терминала к терминалу, поэтому они задокументированы в базе данных terminfo. Чтобы увидеть, какие свойства поддерживает ваш терминал, выполните:

    Значение свойств можно найти в terminfo(5) по их названиям (часть перед =). Например, свойство setaf настраивает цвет шрифта для всего текста, который будет напечатан после него. Узнать escape-код свойства можно командой tput . Например,

    выведет escape-последовательности для настройки зелёного цвета шрифта.

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

    Escape-последовательности ANSI

    К сожалению, ANSI-последовательности могут отсутствовать в базе terminfo вашего терминала. Чаще всего это касается последовательностей для новейших возможностей вроде поддержки 256 цветов. В этом случае использовать tput не получится и придётся вводить escape-последовательности вручную.

    Примеры escape-последовательностей можно найти в статье Управляющие последовательности ANSI. Каждая последовательность начинается с литерала escape-последовательности, которую вы можете ввести с помощью escape-последовательности Bash \e . Например, \e[48;5;209m задаст персиковый цвет фона (если есть поддержка 256 цветов), а \e[2;2H сдвинет курсор в левый верхний угол экрана.

    В случаях, когда escape-последовательности Bash не поддерживаются (как в приглашении PS3), их можно добавить командой printf:

    Встроенные команды

    Если вы хотите добавить вывод какой-нибудь команды в приглашение, то используйте подстановку команд (command substitution). Например, чтобы добавить величину свободной памяти к приглашению попробуйте что-то вроде:

    Как видно, это работает не совсем корректно — значение памяти всегда одно и то же! Причина — команда выполняется только один раз при первой настройке PS1. Необходимо предотвратить подстановку либо экранированием символа $ , либо определением строки в одиночных кавычках — в обоих случаях подстановка будет производиться каждый раз при настоящем отображении приглашения:

    Если команды сделали приглашение слишком длинным, для лучшей читабельности можно вынести их в функцию:

    PROMPT_COMMAND

    Переменной PROMPT_COMMAND можно присвоить произвольную команду, которая будет выполняться непосредственно перед выводом PS1. Это позволяет создавать довольно мощные эффекты. Например, можно переназначить PS1 на основе некоторых условий, или выполнить какие-то действия с историей Bash при выполнении любой команды.

    Escape-последовательности между вводом и выводом

    Свойства вводимого текста можно изменить, «забыв» отключить свойства в конце PS1. Например, если вставить tput blink в конец PS1, то вводимые команды будут мерцать. Тем не менее, этот эффект также перейдёт и на вывод команды, поскольку свойства не отключаются при нажатии Enter .

    Чтобы вставить escape-последовательность после ввода, но перед началом вывода, можно перехватить (trap) Bash-сигнал DEBUG, который посылается перед выполнением каждой команды:

    Настройка приглашения root

    Для удобства можно сделать приглашение командной строки root-пользователя визуально отличным от обычного (возможно, мерцающий красный цвет?). Настройка приглашения производится как обычно, но в домашнем каталоге суперпользователя, /root . Начните с копирования шаблонов /etc/skel/.bash_profile и /etc/skel/.bashrc в каталог /root , после чего внесите в файл /root/.bashrc необходимые изменения.

    Примеры

    Цвета

    Увидеть все цвета вашего терминала можно с помощью простого цикла (замените setab на setaf , если нужен цвет текста, а не фона):

    Если это не работает (причём установлено правильное значение TERM), протестируйте вручную разные последовательности:

    Аналогичные значения для текста (не фона): стандартные — 30..37 , высокая интенсивность — 90..97 , а для 256 цветов замените 48 на 38.

    Основные свойства

    Следующие свойства terminfo будут полезны при настройке приглашения и поддерживаются во многих терминалах. #1 и #2 необходимо заменить на числовые аргументы.

    Свойство Escape-последовательность Описание
    Свойства текста
    blink \E[5m мерцающий тект вкл
    bold \E[1m полужирный текст вкл
    dim \E[2m тусклый текст вкл
    rev \E[7m обратное отображение вкл (текст/фон меняются цветами)
    sitm \E[3m курсив вкл
    ritm \E[23m курсив выкл
    smso \E[7m выделение текста вкл
    rmso \E[27m выделение текста выкл
    smul \E[4m подчёркивание вкл
    rmul \E[24m подчёркивание выкл
    setab #1 \E[4#1m задать цвет фона #1 (0-7)
    setaf #1 \E[3#1m задать цвет текста #1 (0-7)
    sgr0 \E(B\E[m отключить все атрибуты текста
    Перемещение курсора
    sc \E7 сохранить позицию курсора
    rc \E8 вернуть курсор в сохранённую позицию
    clear \E[H\E[2J очистить экран и переместить курсор в левый верхний угол
    cuu #1 \E[#1A переместить курсор вверх на #1 строк
    cud #1 \E[#1B переместить курсор вниз #1 строк
    cuf #1 \E[#1C переместить курсор вправо #1 столбцов
    cub #1 \E[#1D переместить курсор влево #1 столбцов
    home \E[H переместить курсор в левый верхний угол окна
    hpa #1 \E[#1G переместить курсор в столбец #1
    vpa #1 \E[#1d переместить курсор в строку #1, первый столбец
    cup #1 #2 \E[#1;#2H переместить курсор в строку #1, столбец #2
    Удаление символов
    dch #1 \E#1P удалить #1 символов (аналогично нажатию клавиши backspace)
    dl #1 \E#1M удалить #1 строк
    ech #1 \E#1X стереть #1 символов (без перемещения курсора)
    ed \E[J очистить до нижнего края экрана
    el \E[K очистить до конца строки
    el1 \E[1K очистить до начала строки

    Отображение кода выхода

    Тем же приёмом, как в случае встроенных команд, можно отложить интерполяцию специальной переменной Bash вроде $? . Следующие приглашения будут содержать код выхода предыдущей команды:

    Это можно сделать с помощью условных выражений и функций:

    Позиционирование курсора

    Курсор можно перемещать по экрану во время нахождения «внутри» приглашения PS1, чтобы разные части приглашения появлялись в разных местах. Важный момент — после всех перемещений и вывода символов в любых местах экрана курсор необходимо вернуть в исходную позицию. Это можно сделать с помощью свойств sc и rc , которые сохраняют и восстанавливают позицию курсора соответственно. Общая схема приглашения, содержащего перемещения курсора:

    Весь блок с перемещениями курсора обёрнут в \[ \] , чтобы Bash не учитывал непечатаемые символы как часть приглашения.

    Выравнивание по правому краю

    Простейший способ напечатать текст у правого края экрана — использовать printf:

    Здесь задано поле %*s переменной длины с выравниванием по правому краю. Размер поля равен текущему количеству столбцов в терминале ( $COLUMNS ).

    Произвольное позиционирование

    Свойство cup перемещает курсор в конкретную позицию экрана, например, tput cup 20 5 переместит курсор на строку 20, столбец 5 (координаты 0 0 обозначают верхний левый угол). cuu , cud , cuf и cub (вверх, вниз, вперёд, назад) перемещают курсор относительно текущей позиции. Например, tput cuf 10 переместит курсор на 10 символов вправо. В аргументах можно использовать переменные LINES и COLUMNS , если требуется переместить курсор относительно нижнего и правого краёв окна. Например, перемещение на 10 строк и 5 столбцов от правого нижнего угла:

    Настройка названия окна терминала

    Название окна терминала можно настроить так же, как и приглашение: выводом escape-последовательностей в оболочке. Часто пользователи встраивают настройки названия окна в своё приглашение. Технически это возможность xterm, но и другие современные терминалы её поддерживают. В этом случае используют последовательности ESC]2;новое названиеBEL , где ESC и BEL — символы escape (выход) и bell (сигнал). С последовательностями Bash приглашение с встроенным названием окна будет иметь вид:

    Само собой, строка названия окна может включать вывод встроенных команд или переменные вроде $PWD , так что она может перенастраиваться после каждой команды.

    Источник

    Читайте также:  Setup bios windows что это
    Оцените статью