Что означает символ ^ в таких последовательностях, как ^X^I?

Вместо того, чтобы изменять точку ввода и т. д., вы можете создать псевдо--терминал (PTY)и перенаправить ввод и вывод через него, чтобы программа не знала об этом. что что-то изменилось :на самом деле, есть несколько программ, которые делают именно то, что (часто называюттерминальными мультиплексорами.)

Как вы, вероятно, знаете, вы можете отключиться от сеанса на одном терминале и снова подключиться к нему где-то еще, используя мультиплексор, такой как tmux, но вы также можете в любое время настроить передачу стандартного ввода или вывода. Например, если у меня есть оболочка, работающая внутри панели tmux, и я отправлю команду pipe-pane 'cat >>~/test.txt'(, взятую из справочной страницы ), на tmux, стандартный вывод теперь будет добавлен к ~/test.txtбез изменения что-нибудь внутри панели сеанса.

23
19.01.2021, 15:01
2 ответа

Продолжая упоминание Жилем о переписке:

The correspondence is that the numeric code of the control character is the numeric code of the printable character (letter or punctuation symbol) minus 64, which corresponds to setting a bit to 0 in base 2.

Вы можете увидеть это вascii(7). Посмотрите на восьмеричные числа:

Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
────────────────────────────────────────────────────────────────────────
000   0     00    NUL '\0' (null character)   100   64    40    @
001   1     01    SOH (start of heading)      101   65    41    A
002   2     02    STX (start of text)         102   66    42    B
003   3     03    ETX (end of text)           103   67    43    C
004   4     04    EOT (end of transmission)   104   68    44    D
005   5     05    ENQ (enquiry)               105   69    45    E
006   6     06    ACK (acknowledge)           106   70    46    F
007   7     07    BEL '\a' (bell)             107   71    47    G
010   8     08    BS  '\b' (backspace)        110   72    48    H
011   9     09    HT  '\t' (horizontal tab)   111   73    49    I
012   10    0A    LF  '\n' (new line)         112   74    4A    J
013   11    0B    VT  '\v' (vertical tab)     113   75    4B    K
014   12    0C    FF  '\f' (form feed)        114   76    4C    L
015   13    0D    CR  '\r' (carriage ret)     115   77    4D    M
016   14    0E    SO  (shift out)             116   78    4E    N
017   15    0F    SI  (shift in)              117   79    4F    O
020   16    10    DLE (data link escape)      120   80    50    P
021   17    11    DC1 (device control 1)      121   81    51    Q
022   18    12    DC2 (device control 2)      122   82    52    R
023   19    13    DC3 (device control 3)      123   83    53    S
024   20    14    DC4 (device control 4)      124   84    54    T
025   21    15    NAK (negative ack.)         125   85    55    U
026   22    16    SYN (synchronous idle)      126   86    56    V
027   23    17    ETB (end of trans. blk)     127   87    57    W
030   24    18    CAN (cancel)                130   88    58    X
031   25    19    EM  (end of medium)         131   89    59    Y
032   26    1A    SUB (substitute)            132   90    5A    Z
033   27    1B    ESC (escape)                133   91    5B    [
034   28    1C    FS  (file separator)        134   92    5C    \  '\\'
035   29    1D    GS  (group separator)       135   93    5D    ]
036   30    1E    RS  (record separator)      136   94    5E    ^
037   31    1F    US  (unit separator)        137   95    5F    _
...
077   63    3F    ?                           177   127   7F    DEL

Авторские права и лицензия на таблицу.

^Hсоответствует символу возврата, ^Mвозврату каретки, ^Jновой строке, ^Iтабуляции, ^[экрану и т. д.

5
18.03.2021, 22:36

Символ ^ обозначает клавишу управления. ^[ производит ESCAPE или ASCII 27. Заглавные буквы в этом контексте обычно не имеют значения, и ^A означает то же, что и ^a, а именно клавишу управления, нажатую одновременно с клавишей «a».

^[^@ означает ESCAPE, за которым следует Control -@ (в зависимости от раскладки клавиатуры, вам может потребоваться одновременно нажать Shift или Alt -Gr, чтобы произвести "@" ).

^X^[q означает управление -x, за которым следует ESCAPE, за которым следует q.

^[[1;5C означает ESCAPE, за которым следует строка символов «[1;5C». Для меня это выглядит как последовательность управления терминалом, которая изменяет свойства текста, такие как цвет, жирность, курсив и так далее.

Я не знаю, стандартизировано ли использование ^ для обозначения клавиши управления, но это описано на странице Википедии . Создание ASCII 27 путем ввода ^[, вероятно, было впервые введено терминалами DEC, такими как VT100, и к настоящему времени может стать стандартом.

2
18.03.2021, 22:36

Теги

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