Что такое 01; и им?

Нет. Сеанс TMUX сохранится в случае сбоя сеанса ssh.

Просто переподключитесь к серверу и подключитесь к сеансу tmux с помощью

List tmux sessions: tmux ls
Attach to tmux session: tmux a
Attach to named session: tmux a -t myname

Вот хорошая шпаргалка:https://gist.github.com/henrik/1967800

1
25.05.2020, 00:14
2 ответа

Стандарты для чтения: ECMA -35 и ECMA -48. (Термин «ANSI» в значительной степени является неправильным. То же самое относится и к «стилю VT100» для этого случая. )Они объясняют, что управляющая последовательность состоит из четырех частей:

  1. символ Control Sequence Introducer(CSI ), который соответствует U+009F на современном языке и 9/15 на языке этих стандартов 1970-х годов
  2. ноль или более символы параметра ,взято из диапазона от U+0030 до U+003F
  3. ноль или более промежуточные символы , взятые из диапазона от U+0020 до U+002F
  4. одиночный последний символ , взятый из диапазона от U+0040 до U+007E

Ввод управляющей последовательности находится в диапазоне так называемых -управляющих символов C1 , значения которых находятся в диапазоне от U+0080 до U+009F.

К середине 1980-х мир терминалов и последовательной связи был почти полностью 8 -битным, во многом благодаря давлению отбора со стороны мира персональных компьютеров, BBS, Фидонета и др. Еще в 1970-х годах, когда соответствие 7 битам все еще было серьезной проблемой, ECMA -38 и ECMA -45 предоставили систему альтернативных 7 -битных кодировок для управляющих символов C1, значения которых не помещались в 7 бит.. Примерно 40 лет спустя это остается окаменелым в символе Escape (), за которым следует [, являющийся 7-битным -кодированием для CSI.

Вы обнаружите, что существуют альтернативные 7-битные -кодировки для всего диапазона C1. Вы также обнаружите, что есть много людей, которые этого не знают. Есть программы, которые не распознают реальный символ CSI в качестве интродьюсера управляющей последовательности. Есть программы, которые не обрабатывают все 7 -битных кодировок, а только кодировку Control Sequence Introducer. И, с другой стороны, есть несколько программ, которые догнали середину 1980-х годов и распознают фактические управляющие символы C1 , даже если они не закодированы 7 -бит.

Таким образом, разбивая вашу конкретную последовательность управления,:

  1. \033[— кодировка кодировки,7-битное -кодирование символа CSI , дополнительно закодированное как escape-последовательность в стиле C -, которая обрабатывается оболочкой Bourne Again
  2. 01;32— пять символов параметра
  3. m— последний символ

Комбинация промежуточных символов (, возможно, без )и конечного символа обозначает функцию управляющей последовательности. Таких функций довольно много, включая целый набор, который зарезервирован за расширениями вендора. (Из-за указанной выше структуры управляющих последовательностей в потоке могут обрабатываться/пропускаться даже расширения неизвестных поставщиков. )В данном случае это Set Graphic Rendition(SGR ), одна из стандартных управляющих последовательностей.

Символы параметров кодируют по основанию 10 строку числовых параметров, разделенных точкой с запятой -двоеточием -. (На самом деле строка параметров может содержать больше. Двоеточие является допустимым символом параметра, в конце концов, оно имеет значение U+003A. Он используется в более позднем стандарте ITU для обозначения под-параметров . Это действительно применимо к SGR. Точно так же DEC VT используют символ параметра U+003F, ?в качестве маркера расширения для некоторых вариантов DEC в стандартных управляющих последовательностях. )В случае SGR эти параметры обозначают цвета и атрибуты, которые должны быть установлены для вывода на печать (, т. е. «воспроизведение» «графических» символов ).

Их существует обширный набор, и в данном конкретном случае они означают:

  • 01— полужирный на
  • 32— зеленый передний план

Здесь следует сделать целое отступление о том, как система отображения CGA на IBM PC и использование совместимых с IBM PC в качестве терминалов привели к тому, что вес шрифта, такой как полужирный, превратился в изменение цвета,условность, которая, к счастью, постепенно исчезает в пользу жирного шрифта, на самом деле означающего еще раз жирный шрифт (, как это было во времена до CGA ). Согласно этому соглашению и, следовательно, на некоторых, но, к счастью, все меньшем количестве эмуляторов терминала, эта последовательность SGR эффективно устанавливает цвет #10, ярко-зеленый, в качестве переднего плана.

Много лет назад эмулятор терминала AIXterm представил SGR с 90 по 97 и со 100 по 107 для установки цветов с 9 по 15 в качестве цветов переднего плана и фона. Мало того, что это 16-цветное соглашение теперь широко распространено, у нас даже было 256 цветовая палитра в течение довольно долгого времени. Более надежный способ получить цвет переднего плана #10 — использовать SGR 92, , а не SGR 1;32.

Обратите внимание, что это не обязательно для подсказок оболочки в целом. Например :Вместо того, чтобы напрямую кодировать определенные управляющие последовательности с экранированием в стиле C -, оболочка Z позволяет пользователю кодировать изменения цвета и атрибутов, используя процентные последовательности в PS1, RPROMPTи аналогичные переменные оболочки. для различных подсказок. Оболочка Z ищет соответствующие управляющие последовательности в базе данных terminfo. Таким образом, аналогичная строка подсказки в оболочке Z может выглядеть как:

PS1=%B%F{green}%n@%m%f%b
или, если цвет #10 и отсутствие полужирного шрифта — это то, что действительно нужно:
PS1=%F{10}%n@%m%f

Наконец :Это , а не «стиль VT100». Люди слишком часто говорят о VT100 как об обобщении. Это неправильный; это управляющие последовательности ECMA -48, а не «стиль VT100». Важным фактом здесь является, во-первых, то, что VT100 был монохромным и не имел многоцветных -возможностей. Не приобретайте дурную привычку злоупотреблять названиями «vt100» или «vt102».

Дополнительная литература

2
18.03.2021, 23:34

На основе исследований, которые я выяснил:

  • \033[01;32m— Часть управляющего кода ANSI , которой принадлежит \033[01;32m, называется Выбор графического представления (SGI )Последовательность вывода терминала (, которая имеет код CSI n m. ].)
  • \033[— это интродьюсер управляющей последовательности
  • 01— это код для «жирного шрифта или повышенной интенсивности».
  • ;— разделитель для кодов . Мы можем иметь столько кодов , сколько захотим. Существует таблица для этих кодов на странице Википедии escape-коды ANSI в параметрах Select Graphic Rendition (SGR ).
  • 32— это код для зеленого текста переднего плана.
  • mпомечает всю последовательность как последовательность CSI n mSGI.
2
18.03.2021, 23:34

Теги

Похожие вопросы