Якщо ти зробиш:
stty eol =
А потім запустіть демонстрацію, запропоновану у вашому редагуванні , ви побачите смужку foo у роздруківці test.out . Лінійна дисципліна терміналу передасть свій вихід своєму читачеві, коли він читатиме кожен спеціальний графік eol у вашому введенні.
Термінал канонічного режиму Linux - як це можна налаштувати stty icanon
або, можливо, просто stty sane
- обробляє наступні спеціальні символи введення ...
- еоф
- за замовчуванням:
^D
- Припиняє рядок введення та передає вихід на зчитувач. Оскільки він видаляється з введення, якщо він є єдиним символом у рядку, він передається читачеві з нульовим читанням або кінцем файлу .
- еол
- за замовчуванням: без призначення
- Також завершує рядок введення, але його не видаляють із введення.
- вбити
- за замовчуванням:
^U
- Стирає всі буферні дані.
- стерти
- за замовчуванням:
^H
(або, можливо, @
або ^?
в деяких системах)
- Стирає останній буферний вхідний символ.
Коли iexten також встановлений - як, stty icanon iexten
або знову ж таки, мабуть, просто stty sane
, канонічний термінал Linux також буде обробляти ...
- eol2
- за замовчуванням: не призначено
- Крім того, також завершує вхідні лінію, і також не будуть видалені з вхідного сигналу.
- стерти
- за замовчуванням:
^W
- Стирає останнє буферне вхідне слово .
- rprnt
- за замовчуванням:
^R
- Передрукує всі буферні дані.
- наступний
- за замовчуванням:
^V
- Знімає будь-яке особливе значення, що стосується дисципліни рядків для безпосередньо наступного символу введення.
Цими символами обробляються, видаляючи їх із вхідного потоку - за винятком eol та eol2 , тобто - та виконуючи пов'язану спеціальну функцію перед передачею обробленого потоку в зчитувач - що зазвичай є вашою оболонкою, але може бути будь-якою групою процесу переднього плану .
Інші спеціальні вхідні символи, які аналогічно обробляються, але можуть бути налаштовані незалежно від будь- яких параметрів icoon , включають набір isig - набір як stty isig
і, ймовірно, також включений у здорову конфігурацію:
- кинути
- за замовчуванням:
^\
- Очищає весь буферний вхід (якщо параметр noflsh не встановлений) і надсилає SIGQUIT до групи переднього плану процесів - ймовірно, генеруючи ядро-дамп.
- сусп
- за замовчуванням:
^Z
- Промиває весь буферний вхід (якщо параметр noflsh не встановлений) та надсилає SIGTSTP до групи процесу переднього плану. Припинена група процесів, можливо, може бути відновлена з будь-якою
kill -CONT "$!"
або просто fg
в ( set -m
) контрольованій роботі оболонці.
- intr
- за замовчуванням:
^C
- Очищує весь буферний вхід (якщо параметр noflsh не встановлений) та надсилає SIGINT до групи процесу переднього плану.
І набір ixon - налаштований як, stty ixon
а також зазвичай включається в здоровий конфігурацію:
- Стоп
- за замовчуванням:
^S
- Зупиняє весь вихід на зчитувач до тих пір, поки не буде прочитано будь-який запуск на вході або - коли ixany також встановлено - принаймні ще один символ буде прочитаний.
- почати
- за замовчуванням:
^Q
- Перезавантажує вихід, якщо він раніше був зупинений із зупинкою .
- Як зупинка, так і запуск видаляються з вхідних даних під час обробки, але якщо результат перезапускається через будь-який символ вхідного сигналу, коли встановлено ixany , цей символ не видаляється.
Спеціальні символи, що обробляються в інших системах, що не є Linux, можуть включати ...
- рум'янець
- за замовчуванням:
^O
- Вмикає викидання та промивання буферизованого входу та видаляється з входу.
- суп
- за замовчуванням: не призначено
- Промиває весь буферний вхід лише тоді, коли зчитувач зчитує призначений спеціальний символ введення, а потім надсилає SIGTSTP.
І можливо ...
- swtch
- за замовчуванням
^@
(означає \0
або NUL
)
- Перемикає шари оболонок переднього плану. Для використання із застосуванням
shl
шарів оболонок у деяких системах.
- Реалізація
shl
яких мультиплексує ptys і, таким чином, сумісна з контролем роботи, а не оригінальною поведінкою, що залежить від swtch, може вільно матись у heirloom-toolchest
наборі інструментів.
Для більш чіткого уявлення про те, як і чому (а може, чому і ні) ці вхідні функції обробляються, див man 3 termios
.
Усі перераховані вище функції можуть бути призначені (або перепризначені), коли це застосовується - як stty
function assigned-key
. Щоб відключити будь-яку одну функцію, виконайте . Альтернативно, як різні спроби з завданнями для будь-якого з вищевказаних ліній редагуванням функцій з усіма GNU, AST, або сімейна реліквія в реалізаціях , здається, вказують, ви можете також , як NUL призначення для будь-якої функції , здається , прирівняти встановити його в Unassigned на моєму Linux система.stty
function
^-
stty
stty
function
^@
Ймовірно, ви бачите відлуння цих символів, коли ви вводите їх (як це може бути налаштовано w / [-] ctlecho ) , але це лише маркер, щоб показати вам, куди ви потрапили - програма, що отримує ваш вхід, не має поняття, що ви вводить їх (крім eol [2] , тобто) і отримує лише копію вашого вводу, до якого лінійна дисципліна застосувала свої ефекти.
Наслідком обробки терміналом різних функцій редагування рядків є те, що він повинен до деякої міри потребувати буфера введення для того, щоб діяти на функції, які ви йому вказуєте, що це повинно - і тому не може бути необмеженої подачі вводу, який ви можете в будь-який час вбити . Лінія буфер точніше вбити буфера.
Якщо ви встановите Eol або EOL2 символи в якій - то роздільник , який відбувається на вході - навіть якщо ні один не символ перекладу рядка або повернення символів, наприклад , - тоді ви будете тільки в стані вбити до такої міри , що це в останній раз відбулося і ваш вбити буфер не поширюватиметься, наскільки це можливо , поки що прямує з них - або перекладу рядка (або повернення , якщо ICRNL встановлений і IGNCR немає) - відбувається на вході.