Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Aliens Vs Predator |#6| We walk through the tunnels
Aliens Vs Predator |#5| Unexpected meeting
Aliens Vs Predator |#4| Boss fight with the Queen
Aliens Vs Predator |#3| Escaping from the captivity of the xenomorph

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Сэйдж Рас Весь текст 822.4 Kb

Приемы профессиональной работы в Unix

Предыдущая страница Следующая страница
1 ... 61 62 63 64 65 66 67  68 69 70 71
19               echo "         -l   log the output"           >&2
20               echo "         -t   use another tty"          >&2
21               echo "         -u   9600 baud to UNIX"        >&2
22               exit 1;;
23          esac
24  done

26  eval cu -s$BAUD -l$TTY dir $PIPE

     ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ

ARG     Аргумент из командной строки
BAUD    Скорость обмена, которую нужно указать программе cu
PIPE    Содержит строку, создающую конвейер для захвата данных
TTY     Номер используемого порта tty

       ОПИСАНИЕ

               ЗАЧЕМ НАМ НУЖЕН КОМАНДНЫЙ ФАЙЛ talk?

     Регистрация в   удаленной   системе  расширяет  горизонты  ваших
вычислительных возможностей.  Учитывая, что UNIX становится все более
распространенной  системой среди микро-ЭВМ,  системы UNIX,  пригодные
для связи,  скоро будут везде. Кроме того, вы можете вызвать из вашей
системы  UNIX много систем типа досок объявлений,  функционирующих на
микро-ЭВМ.
     Нам нужен  хороший  интерфейс  для  управления модемной линией и
облегчения ее использования.  Нам необходимо захватывать данные, если
это  возможно,  изменять  скорость обмена и менять терминальный порт,
если в этом есть потребность. Все это делает командный файл talk.

                         ЧТО ДЕЛАЕТ talk?

     Программа talk  генерирует  командную  строку,   основанную   на
подразумеваемой  конфигурации.  Эта  конфигурация  такова:  1200 бод,
подключение к терминальной линии /dev/tty11 (последовательный  порт 1
в   системе   SCO   XENIX),   захват   данных   не  производить.  Все
подразумеваемые параметры можно изменить в тексте исходного  файла, а
терминальная  линия  должна быть установлена с учетом специфики вашей
системы.
     Если вы хотите изменить скорость обмена, укажите с помощью опции
-b нужную вам скорость (подразумевается,  что это одна из стандартных
скоростей,  поддерживаемых  программой  cu).  Например,"talk  -b2400"
устанавливает  скорость  2400  бод.  Указанная  скорость   передается
команде  cu,  которая  непосредственно изменяет характеристики вашего
подключения.
     Важно иметь в виду,  что эта скорость должна быть  определена  в
файле L-devices.
     Если вы  хотите  захватить  все данные,  выводимые на ваш экран,
включите опцию  протоколирования,  указав  -l.  Файл  с  захваченными
данными   будет   называться   /tmp/talk.$$,   где  $$  -  уникальный
идентификатора процесса вашего текущего интерпретатора shell. Это имя
выдается на экран при вызове данной опции,  так что вы увидите его на
вашем экране. Уникальность имен файлов обеспечивается для того, чтобы
вы  не  потеряли  по  недосмотру  регистрационные файлы от предыдущих
сеансов работы (или чтобы,  по крайней мере,  было очень мало шансов,
что это произойдет).
     Если у вас факультативный последовательный порт  с  модемом  или
если  вы  хотите  подключаться к любой из возможных линий,  примените
опцию -t. Вместе с этой опцией укажите номер tty, который будет затем
передан  в  команду  cu.  Это очень полезная опция,  если у вас много
различных линий для использования cu.
     Если вы не используете ваш последовательный порт для подключения
модема, а имеете прямое подсоединение к другой системе UNIX, опция -u
тотчас  же установит скорость обмена 9600 бод.  Заметим,  что того же
эффекта можно было бы достичь,  указав  -b9600,  но  опцию  -u  проще
вводить и запоминать.

     ПРИМЕРЫ

1.  $ talk -l -t12

     Подключиться к   дополнительному   последовательному   порту   и
захватывать данные, которые проходят на экране.

2.  $ talk -u

     Подключиться к    основному    последовательному     порту     с
использованием скорости 9600 бод. Не включать захват данных.

3.  $ talk -b2400 -t04 -u

     Внимание! Сначала опция -b устанавливает скорость 2400, но далее
следует опция -u,  которая  переустанавливает  значение  скорости  на
9600.

4.  $ talk -u -l -b4800

     Снова будьте внимательны! Сначала линия подключается напрямую со
скоростью  9600  бод.  Затем  включается  протоколирование.  Наконец,
значение скорости меняется с 9600 на 4800.  Если на самом деле линия,
к которой вы обращаетесь,  работает на скорости 9600 бод,  вы должны,
если  это  возможно,  понизить  скорость,  нажимая  ~%b для генерации
сигнала break.

     ПОЯСНЕНИЯ

     В строках  4-6 устанавливаются действия,  выполняемые программой
talk по  умолчанию.  Эти  действия  можно  полностью  изменить  путем
редактирования исходного файла.  Главное достоинство этих умолчаний в
том,  что если такую конфигурацию вы используете чаще всего,  то  вам
достаточно просто ввести "talk", без всяких опций.
     Строка 4 инициализирует  переменную  BAUD  значением  1200,  это
значение по  умолчание  для  скорости  модема.  Строка  5 присваивает
переменной   TTY   значение   tty11,   что   соответствует    первому
последовательному порту аппаратуры.  Обычно нужно tty00, но SCO XENIX
имеет виртуальную консоль,  причем  tty02-tty10  являются  отдельными
экранами,  доступ  к  которым  осуществляется  с  одного  консольного
устройства. Если это не так в вашей системе, укажите здесь правильное
значение  TTY.  В  строке  6  переменная PIPE инициализируется пустой
строкой,  так как конвейер применяется для протоколирования данных, а
по умолчанию захват данных не выполняется.
     Строки 8-24 представляют  собой  цикл,  который  перебирает  все
аргументы  командной  строки.  В  строках 10-23 используется оператор
выбора среди опций для выполнения требуемых функций.
     Строка 11  проверяет,  начинается ли данная опция с символов -b,
после которых следует что-то еще.  Если  да,  то  символы,  следующие
после   -b,  вырезаются  и  заносятся  в  переменную  BAUD.  Обратите
внимание,  что именно поэтому вы должны набирать "-b2400",  а не  "-b
2400".
     В строке 12 проверяется, хотите ли вы включить протоколирование.
Если да,  то на экран выводится имя протокольного файла, а переменная
PIPE  устанавливается  так,  чтобы  направить  стандартный  вывод  по
конвейеру программе   tee   системы   UNIX.   Программа   tee  -  это
универсальная  конвейерная  программа  расщепления,   которую   можно
использовать  для  посылки  копии  потока данных в определенный пункт
назначения,  не воздействуя на основной конвейер.  В данном случае мы
применяем   программу   tee  для  посылки  данных,  проходящих  через
последовательный  порт,  на  экран  и  в  наш  регистрационный   файл
/tmp/talk/.$$.  (Если  вы представите себе водяную трубу с T-образным
стыком, то поймете, что происходит.)
     Строка 14 проверяет,  начинается ли опция с -t. Если это так, то
вырезается номер терминала.  Здесь можно передать любое значение tty,
но  не  забывайте,  что  этот номер tty должен также присутствовать в
файле /usr/lib/uucp/L-devices.  Благодаря этому файлу,  программа  cu
знает, что терминальное устройство подключено к разрешенному порту.
     В строке  15  проверяется,  собираетесь  ли  вы  подключаться  к
системе   UNIX  напрямую.  Если  да,  скорость  обмена  автоматически
устанавливается на 9600 бод в целях повышения  пропускной способности
терминала.
     Строки 16-22 выполняют проверку ошибок.  Если какая-либо  опция,
переданная   в   командной   строке,  не  соответствует  никакому  из
предыдущих образцов оператора  case,  этот  факт  фиксируется  здесь,
выдаются сообщения об ошибках и командный файл завершается.
     Строка 26 - это волшебная строка. Поскольку все shell-переменные
получили свои значения,  мы можем использовать их в командной строке,
чтобы подставить в  нее  необходимые  значения.  Сначала  применяется
команда  eval.  Она  раскрывает  все имена переменных,  заменяя их на
соответствующие значения.
     В данном случае мы формируем полную командную строку утилиты cu:
скорость берется из переменной BAUD,  линия из TTY,  а  подсоединение
прямое.  Если  мы  не  ведем  протоколирование данных,  значение PIPE
нулевое и оно будет отброшено при  синтаксическом  разборе.  Если  же
переменная  PIPE  содержит команду для отправки данных в протокольный
файл,  команда eval обеспечивает это,  организовывая такой  конвейер,
как мы указали.

                      ДОСТУП ИЗ UNIX В UNIX

     Теперь давайте рассмотрим полновесное общение двух  систем UNIX.
Имеется  область,  в которой UNIX опередила свое время.  Система uucp
позволяет связать  несколько  машин  воедино  и  создать  то,  что  в
некоторых отношениях является виртуальным окружением, позволяющим вам
работать на любой машине.  Функционирование такой  сети  основано  на
удаленной  регистрации  в  системе (cu(1)),  дистанционном выполнении
команд  (uux(1)),  электронной  почте  (mail(1)),   передаче   файлов
(uucp(1),   uucico(1))   и   опознавании  узла  системы  (uname(1)  и
uuname(1)).
     Поскольку мы занимаемся реализацией коммуникаций типа UNIX-UNIX,
давайте   рассмотрим   некоторые   способы   физического   соединения
UNIX-машин в одну рабочую среду.

                      СВЯЗЫВАНИЕ UNIX-МАШИН

     В рабочей обстановке машинные конфигурации постоянно  меняются в
целях   тестирования,  из-за  аппаратных  изменений,  перестановок  и
переездов и т.д.  Планировать конфигурацию  ваших  машин  нужно  так,
чтобы  она  была  максимально  гибкой,  это  поможет избежать хаоса и
разлада.
     Ваши потребности  влияют  на  то,  как  вы  соедините  различные
UNIX-машины.  Если  имеется  блок определения приоритетного запроса к
порту (port contender),  вам приходится иметь с ним дело.  Одни линии
могут быть подсоединены напрямую,  другие напрямую через блок опреде-
ления приоритетного запроса к порту, третьи через модемные коммутато-
ры. Для того чтобы научиться иметь дело со всеми этими возможностями,
попробуем представить эти конфигурации в графическом виде.
     Первый тип подключения -  прямое  подключение  (см.  рис.  8-7).
Слева  показана  вызывающая  система,  справа вызываемая.  Вызывающая
система использует последовательный порт для вывода,  поэтому на этом
порту не должно быть процесса getty. Инициирующая команда "cu -ltty00
-s9600 dir" обеспечивает подключение к последовательному  порту tty00
на   очень   высокой  скорости  обмена.  Прямые  подсоединения  могут
поддерживать такую скорость.  Сам кабель должен быть выполнен в  виде
нулевого  модема (рассмотренного ранее в данной главе).  В вызываемой
системе задействованы процессы getty,  работающие со  скоростью  9600
бод   на  входящей  терминальной  линии.  Когда  пользователь  вводит
регистрационное имя,  getty выполняет  процесс  login,  запрашивающий
пароль, и если этот пароль верный, запускается shell.

   Рис. 8-7.   Прямое подключение одной системы UNIX к другой
---------------------------------------------------------------------------

   DTE-1                           DTE-2
+---------+                     +---------+
|         |                     |         |
| UNIX 1  |                     |  UNIX 2 |
|         |  Нулевой модем      |         |
|   tty00 |-------------------->| tty00   |
|         |                     |         |
|         |                     |         |
+---------+                     +---------+

ДЕЙСТВИЯ                                ДЕЙСТВИЯ

1. Нет getty                            1. getty 9600 tty00
   cu -ltty00 -s9600 dir                   login имя_пользователя
   sh

2. uucp файл                            2. getty 9600 tty00
   unix 2!~/user                           login uucp
   uucico

---------------------------------------------------------------------------

     При использовании uucp происходят аналогичные вещи. Команда uucp
генерирует процесс uucico,  инициирующий  вызов  системы,  показанной
справа.   Регистрационная   последовательность   та   же   самая,  за
исключением того,  что вместо запуска интерпретатора  shell  в  конце
этой последовательности действий запускается еще один процесс uucico,
Предыдущая страница Следующая страница
1 ... 61 62 63 64 65 66 67  68 69 70 71
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (52)

Реклама