Это раздел об управлении интерфейсом компьютер-терминал и/или изменении установок терминалов при использовании терминала. Он объясняет (или указывает на объяснения) как пользователь терминала может управлять и просматривать интерфейс и как использовать различные команды, предлагаемые драйвером устройства. Он не объясняет, как использовать многие прикладные программы, оболочки или большинство Linux утилит. Две команды, обычно используемые в терминале:
Вы включаете питание терминала, нажимаете клавишу "возврат" (или "ввод") и затем получаете подсказку входа в систему. Затем в ответ на запрос печатаете ваше учетное имя и ваш пароль. Если ничего не происходит, удостоверьтесь, что хост работает правильно. Если хост выключен, тогда то, что вы печатаете на клавиатуре терминала может появляться на экране, так как и передающие, и принимающие штырьки на хосте могут быть соединены вместе, приводя к отображению на экране символов "от" компьютера. Если вы не можете зарегистрироваться, хотя хост работает, см. `` Поиск неисправностей ".
При печати в командной строке, оболочка (типа bash) читает то, что вы напечатаете и реагирует на это. То, что вы печатаете сначала проходит через драйвер терминала вашей операционной системы. Этот драйвер может транслировать некоторые символы (типа изменения символа "возврат", сгенерированного клавишей "возврат" в символ "новой строки"). Он также распознает некоторые управляющие коды, которые вы можете напечатать в клавиатуре типа ^C, чтобы прервать выполнение программы. Он также обычно отображает то, что вы напечатаете обратно на вашем дисплее.
Для настройки драйвера можно использовать ``stty".
Когда изображение на дисплее выглядит неправильным или то, что вы печатаете, не отображается правильно, у вас вероятно испортился интерфейс терминала. Это может также быть ошибкой в программе, которую вы используете, аппаратный отказ или, возможно, неправильная настройка. Если все работало нормально, но внезапно произошел отказ, то может быть интерфейс испортился в результате ващих каких- либо действий. Интерфейс может быть испорчен двумя способами: посылкой двоичного файла на терминал и неправильным выходом из прикладной программы.
Ваш терминал изменит свои характеристики, если на него послать некоторые escape- последовательности или управляющие символы. Если вы по неосторожности пробуете отобразить двоичный файл, то он может содержать такие последовательности, которые могут перевести ваш терминал в некоторый странный режим работы или даже совсем испортить его.
Чтобы этого не произошло, всегда просматривайте или редактируйте двоичный файл программами, разработанными специально для этой цели. Большинство редакторов и просмотрщиков нормально обрабатывает двоичный файл, так что интерфейс не разрушается. Некоторые из них могут отображать сообщение, говорящее вам, что они не могут редактировать двоичный файл. Но использование "cat ...." или "cp .... /dev/tty .." где .... - двоичный файл, пошлет двоичный файл на терминал.
Порча может также случиться при использовании программы связи, когда удаленный компьютер может послать двоичный файл на ваш экран. Имеется множество других способов, как это может случается. Даже предполагаемый ASCII файл может содержать нежелательные управляющие коды.
Чтобы поправить эту проблему терминал сбрасывают. Может иметься клавиша, которая делает это непосредственно на терминале (возможно в режиме установки), или вы можете пробовать напечатать или "reset", или "setterm -reset" (хотя вы не можете видеть то, что вы печатаете). Это действие пошлет строку reset из записи terminfo на терминал.
Большие прикладные программы (типа редакторов) часто используют команду stty (или подобную) в своем коде, чтобы временно изменить конфигурацию stty, когда вы работаете с программой. Они могут переводить драйвер устройства в "пропускающий" режим так, чтобы каждый символ, который вы печатаете шел непосредственно в прикладную программу. Отображение драйвером блокируется, так что все, что вы видите на экране, пришло непосредственно из прикладной программы. Таким образом многие команды управления (типа ^C) не могут работать внутри таких приложений.
Когда вы приказываете такому приложению завершиться, прикладная программа первым делом восстановливает установки stty на те, что были перед началом работы прикладной программы. Если вы неправильно вышли из программы (может случиться так, что, то что вы печатаете больше не отображается на экране), тогда вы можете оказаться в командной строке будучи в "прозрачном режиме".
Выйти из прозрачного режима и восстановить нормальный тип установок stty можно напечатав "stty sane". Однако, вы должны напечатать это только после нажатия клавиши "возврат" и закончивть это нажатием "возврат". Но нажатие клавиши "возврат" не оказывает действия, так как код "возврат" больше не транслируется в символ новой строки, чего ждет оболочка. Поэтому вместо "возврат" ввоодите ^J (символ новой строки). "sane" интерфейс терминала может не быть таким же обычным, но обычно это работает. "stty sane" может быть также полезен для выхода из интерфейса, разрушенного по другим причинам.
Число управляющих символов, которые вы можете напечатать на клавиатуре, "захватываются" драйвером терминала и выполняют различные задачи. Чтобы увидеть эти команды управления, напечатайте: stty -a и посмотрите строки 2-4. Они - разъяснены в man stty. Они могут быть изменены на различные управляющие символы или заблокированs, используя stty. Таким образом ваши управляющие символы могут быть отличны от тех, что описаны ниже.
Они используются для редактирования командной строки, прерывания, прокрутки, и для прозрачной передачи следующего символа.
В то время как драйвер терминала имеет несколько команд для редактирования командной строки, некоторые оболочки имеют встроенный реальный редактор (типа "readline" в оболочке bash). Такой редактор - обычно включен по умолчанию, так что вам не надо делать что-либо, чтобы включить его. Если он доступен, то вы не нужно учить множество следующих команд, хотя они часто все еще работают наряду с редактором командной строки. Наиболее важные из них - это ^C (прерывание), ^D и прокрутка.
Если, что вы хотите остановить прокрутку нижней части экрана, то вы можете послать сигнал "останова" (^S или Xoff) на хост (предполагается, что управление потоком данных" Xon-Xoff включено). Посылка "сигнала продолжения" (^Q или Xon) возобнавляет прокрутку. Некоторые терминалы имеют клавишу "No Scroll", которая поочередно посылает Xoff и Xon. Если у вас аппаратное управление потоком данных
Альтернативный метод прокрутки - конвейерный вывод через программы pager, такие как more, less или most. Однако, вывод может производиться не только через поток стандартного вывода, но и серез поток вывода ошибок, который pager не распознает. Чтобы исправить это, вы можете использовать переадресацию "2>&1", тогда pager заработает правильно. Зачастую проще использовать ^S и ^Q, если вам не требуется листать в обратном направлении.
В консоли PC (эмуляция терминала) вы можете листать в обратном направлении, используя Shift-PageUp. Это часто необходимо, так как прокрутка идет слишком быстро, чтобы использовать ^S. Если вы листали в обратном направлении, то Shift- PageDown будет листать снова вперед.
^V посылает следующий печатаемый символ (обычно управляющий символ) через драйвер устройства непосредственно, т.е. без какого-либо действия или интерпретации.
На экране отображаются два символа ASCII типа ^C.
Эти утилиты будут выдавать информацию о интерфейсе терминала:
Установки терминала обычно устанавливаются один раз, когда терминал устанавливается, используя процедуры установки в руководстве терминала. Однако, некоторые установки могут быть изменены, когда терминал используется. обычно вы не даете команд "stty" "setserial", когда терминал используется, поскольку они, вероятно, разрушат интерфейс терминала. Однако, есть установки, которые вы можете производить для изменения вида экрана терминала, или изменения его поведения без того, чтобы нарушить целостность интерфейса. Иногда эти изменения делаются автоматически прикладными программами, так что вам возможно не нужно иметь дело с ними.
Один прямой метод создания таких изменений состоит в том, чтобы использовать клавишу установки в терминале и затем использовать меню или что-то подобное, чтобы сделать изменения. Для такой операции вам надо знать терминал.
Другие 3 метода, чтобы делать изменения, посылают escape-последовательность с компьютера на терминал. Эти 3 примера демострируют различные методы установки негативного изображения:
setterm -reverse
tput -rev
echo ^[[7m
Это - самая простая в использовании команда. Она использует длинные опции (но не использует перед ними -- ) и консультируется с базой данных terminfo, чтобы определить, какой код послать. вы можете изменять цвет, яркость, перенос строк, повторение клавиатуры, вид курсора, и т.д.
Команда "tput" подобна "setterm", но вместо того, чтобы использовать обычные слова как параметры, вы должны использовать сокращения, используемые terminfo. Многие из сокращений очень краткие и трудны для запоминания.
В примере "echo ^[[7m", который устанавливает негативное изображение, ^[ - символ ESC. Чтоб ввести его, напечатйте ^V^ [(или ^V, сопровождаемый клавишей escape).
Чтобы использовать этот метод "echo", вы должны выяснить какой код использовать из вашего руководства терминала, или из terminfo или termcap. Проще использовать setterm или tput, хотя echo выполнится немного быстрее. Так что вы могли бы использовать echo ... в скриптах шелл, которые имеют дело только с одним типом терминала.
Когда вы выключаете терминал, сделанные вами изменения теряются (если вы не сохранили их в энергонезависимой памяти терминала, нажимая некие клавиши на терминале). Если вы хотите использовать их снова, без того, чтобы заново вводить, поместите команды в скрипт, или сделайте это функцией шелл. Затем выполните его, когда хотите сделать изменения. Один способ сделать изменения полупостоянными состоит в том, чтобы поместить команды в файл, который выполняет каждый раз при входе в систему или запуске компьютера.