ГЛАВА 8 УПРАВЛЕНИЕ ТЕРМИНАЛАМИ СОДЕРЖАНИЕ ВВЕДЕНИЕ 00 Определения терминов 00 ТЕРМИНАЛЬНАЯ СИСТЕМА 00 Как работает терминальная система 00 Как проверить характеристики линии 00 Установка новых характеристик линии и последовательности поиска 00 Изменение характеристик терминальной линии 00 Установка параметров терминала 00 ВВЕДЕНИЕ Эта глава охватывает следующие темы : термины, употребляемые при описании управления терминалами работа терминальной системы проверка характеристик линии установка новых характеристик линии и последовательности по- иска изменение характеристик терминальной линии установка режимов работы терминала Определения терминов В этой главе используются следующие термины: терминал(TTY) Этот термин охватывает целую область доступа между системой UNIX и периферийными устрой- ствами, включая пульт управления системой. Аббревиатура TTY появляется в командах get- ty(1M) и stty(1), в именах специальных фай- лов, например, /dev/tty01, и в именах фай- лов, таких как /etc/gettydefs, используемых командой getty. линия связи терминала Физическое устройство, через которое осу- ществляется доступ к компьютеру. порт Синоним для линии связи скорость педачи данных Скорость, с которой данные передаются по ли- нии, одна из характеристик линии. режим Характеристики интерфейса терминала. Также являются характеристиками линии. Линия связи и терминал должны работать в одном и том же режиме перед тем, как они будут соединены. Описано в termio(7). последовательность поиска Циклические серии характеристик терминала, такие, например, как различные скорости пе редачи данных. Во время входа в систему пользователь в целях достижения совместимос ти с компьютером может менять режимы, нажи- мая BREAK. параметры терминала Характеристики, определяющие как работает данный терминал. Описаны в termio(7). ТЕРМИНАЛЬНАЯ СИСТЕМА В следующих разделах этой главы описано, как действует терми- нальная система и как можно управлять ею. Как работает терминальная система Серии из четырех процессов (init(1M), getty(1M), login(1), sh(1)) соединяют пользователя с системой UNIX. init - это ос- новной порождающий процесс, который инициируется после послед- него шага процедуры загрузки. Согласно инструкциям в /etc/init- tab он порождает процесс getty для каждой терминальной линии, с которой пользователь может войти в систему. Команда getty долж- на быть с аргументом line. Каждый такой аргумент - это имя спе- циального файла в каталоге /dev. Для информации о других аргу ментах, используемых с getty см. Справочник системного адми- нистратора. Попытки пользователя установить связь порождают запрос, который направляется команде getty для использования в качестве аргу- мента файла из каталога /dev. getty отвечает выдачей данных из файла /etc/gettydefs. Данные файла gettydefs используются в за- висимости от аргумента - speed, используемого с командой get- ty.(В синтаксисе команды getty(1М) имя аргумента speed, но на самом деле это указатель на поле метки в файле gettydefs). Сре- ди полей в записях файла gettydefs встречаются приглашения lo gin (см. далее в этой главе). При получении приглашения login :, пользователь вводит свое входное имя. getty вызывает login, используя входное имя в ка- честве аргумента. login выдает приглашение для пароля, проверя- ет ответ пользователя, и если пароль верен, вызывает shell для пользователя, как описано в /etc/passwd. Если shell не указан, то по умолчанию вызывается файл /bin/sh. login также выполняет /etc/profile . /bin/sh выполняет .profile пользователя, если он существует. .profile часто содержит команды stty, которые устанавливают па раметры терминала, отличающиеся от используемых по умолчанию. Теперь связь между пользователем и системой UNIX установлена. Как проверить характеристики линии Есть два способа проверить характеристики линии связи. 1. Использовать команду sysadm lineset(1) из Меню управле ния системой. sysadm lineset сначала показывает весь диапазон характеристик линии, а затем дает возможность изучить каждую строку (см. процедуру 8.1). 2. Просмотреть файл /etc/gettydefs. Файл /etc/gettydefs содержит информацию, используемую командой getty(1M) для установки скорости и характеристик терминала при включении в линию. Формат файла gettydefs в общем виде следую- щий: метка#начальные признаки#конечные признаки#метка следующего Ниже показаны несколько строк из файла gettydef |19200# B19200 HUPCL # B19200 SANE IXANY TAB3 HUCL # login: #9600 | |9600# B9600 HUPCL # B9600 SANE IXANY TAB3 HUPCL # login: #4800 | |4800# B4800 HUPCL # B4800 SANE IXANY TAB3 HUPCL # login: #2400 | |2400# B2400 HUPCL # B2400 SANE IXANY TAB3 HUPCL # login: #1200 | |1200# B1200 HUPCL # B1200 SANE IXANY TAB3 HUPCL # login: #300 | |300# B300 HUPCL # B300 SANE IXANY TAB3 HUPCL # login: #19200 Приведенные строки составляют одну циклическую последователь- ность поиска; последнее поле каждой строки - это метка следую- щей строки. Поле "метка следующего" последней строки указывает на первую строку последовательности. Цель задания последова- тельности характеристик в том, чтобы связать весь диапазон ско- ростей. Если вместо приглашения login: Вы получили бессмыслен ный набор символов, то нажатие клавиши BREAK указывает команде getty на необходимость перейти к следующей строке в последова- тельности. Поиск продолжается, пока скорость, с которой работа- ет линия, не совпадет со скоростью терминала пользователя. По- казанные поля признаков имеют следующий смысл: B300-B19200 Скорость передачи информации линии. HUPCL Отключение от линии. SANE Признак, означающий установку стандартных характеристик. IXANY Позволяет возобновлять вывод любым симво- лом. Если не указан, то только CTL-Q мо- жет возобновить вывод. TAB3 Посылает символы табуляции на терминал в виде пробелов. Описание всех признаков команды getty находится в termio(7). Установка новых характеристик линии и последовательности поиска Есть два способа сделать это. 1. Использовать меню администратора - подкоманду sysadm mkli neset(1). sysadm mklineset выдает серию приглашений. Ваши ответы дают информацию для новых записей файла gettydefs (см. процедуру 8.2). 2. Использовать редакторы ed(1) или vi(1) для редактирования файла gettydefs. Введите новые строки в файл gettydefs (см. пример, приведенный выше). После каждой строки в файле должна идти пустая строка. После завершения редак тирования введите команду : |# /etc/getty -c /etc/gettydefs Это вызовет просмотр командой getty файла и выдачи результатов на терминал. Если будут найдены невер- ные данные или какие-либо ошибки, то об этом будет сообщено. Изменение характеристик терминальной линии Существует два способа сделать это. 1. Использовать подкоманду sysadm modtty(1) меню администра- тора. Она выдает серию приглашений. Ваши ответы вносятся в данные в /etc/inittab (см. Процедуру 8.3). 2. Использовать редакторы ed(1) или vi(1) для файла /etc/inittab. Файл /etc/inittab содержит инструкции для команды /etc/ init(1M). Общий вид строки данных в файле /etc/inittab следую- щий: идентификатор:уровень:действие:процесс Эти четыре разделенные двоеточиями поля имеют следующие значе- ния. идентификатор Уникальное одно- или двухсимвольное имя для строки данных. уровень Указывает уровень выполнения. действие Определяет, как команда /etc/init будет тракто- вать поле процесса (см. inittab(4) для более полной информации). процесс Команда shell'а, которую необходимо выполнить. Файл /etc/inittab содержит несколько строк, которые порождают процессы getty. Ниже приведен пример таких строк, выделенных с помощью команды grep из файла /etc/inittab. | co:1234:respaw:/etc/getty console console | ct:2:off:/etc/getty conty conty;#line not in use | 21:2:respawn:/etc/getty tty21 9600 | 22:2:respawn:/etc/getty tty22 9600 | 23:2:respawn:/etc/getty tty23 9600 | 24:2:off:/etc/getty tty24 9600;#line not in use | 25:2:off:/etc/getty tty25 9600;#line not in use Есть по крайней мере три действия, которые можно сделать с даннными файла inittab : 1. Изменить поле действие. К терминальным линиям применяется два вида действий - это "respawn" (возобновить) и "off" (отменить) (см. inittab(4) для более полной информации об этом). 2. Добавить или изменить аргументы в поле процесс. Часто ис- пользуется аргумент -tnn. Он указывает getty, что нужно отключиться от линии, если в течение nn секунд не посту- пит никаких сообщений. Рекомендуется использовать аргу- мент -t при работе с телефонными линиями. 3. Добавить или изменить комментарии. Комментарии помещаются после точки с запятой (;), которая завершает команду, и знака #, который открывает комментарий. Установка параметров терминала Терминальная система, как было описано выше, определяет основ- ной характер общения между терминалом пользователя и системой UNIX. При успешном входе в систему желательно, чтобы нужные па- раметры терминала устанавливались по умолчанию. Команда stty(1) используется для изменения параметров термина- ла. Многие пользователи добавляют команду stty в свой .profile, чтобы нужные им параметры устанавливались автоматически во вре- мя процедуры входа. Вот пример простой команды stty: $ stty cr0 nl0 echoe -tabs erase ^H cr0 nl0 Не делать задержки при возврате каретки или пере- воде строки. Задержка не используется для видео дисплеев, однако, бывает нужна при работе печатаю щих терминалов, чтобы дать возможность продвинуть- ся механическим частям устройства. echoe Стирать символы при нажатии BACKSPACE. -tabs При печати интерпретировать символы табуляции как пробелы. erase ^H Изменить символ стирания символов на ^H. По умол- чанию таким символом является #. Большинство тер миналов выдает ^H при нажатии BACKSPACE. Определе- ние этого параметра дает возможность использовать клавишу BACKSPACE.