CU(1C) CU(1C) НАЗВАНИЕ cu - вызов другой UNIX-системы СИНТАКСИС |cu [-sскорость_обмена] [-lлиния] [-h] [-t] [-d] [-o] [-e] [-n] | номер_телефона | |cu [-sскорость_обмена] [-h] [-d] [-o] [-e] -lлиния | |cu [-h] [-d] [-o] [-e] имя_системы ОПИСАНИЕ Команда cu вызывает другую UNIX-систему, терминал или, возможно, не-UNIX-систему. Она поддерживает интерактив- ное взаимодействие с возможностью передачи текстовых файлов. Допустимые опции: -sскорость_обмена Указание скорости обмена (300, 1200, 2400, 4800, 9600 бод). Подразумеваемое значение (обозначается Any) зависит от порядка строк в файле /usr/lib/uucp/Devices. Большинство модемов обеспе- чивают скорость 300 или 1200 бод. При прямом подк- лючении можно задавать скорости большие, чем 1200 бод. -lлиния Указание имени устройства, которое будет использо- ваться в качестве коммунникационной линии. Служит для отмены поиска линии, имеющей подходящую ско- рость. При использовании опции -l без -s скорость обмена берется из файла /usr/lib/uucp/Devices. Ес- ли же эти опции используются одновременно, то cu просматривает файл /usr/lib/uucp/Devices для про- верки - соответствует ли требуемая скорость харак- теристикам линии. Если да, то выполняется соедине ние с требуемой скоростью. В противном случае вы- дается сообщение об ошибке, и вызов не выполняет- ся. Указываемое устройство, как правило, является подсоединяемой напрямую асинхронной линией (то есть /dev/ttyab); в этом случае задавать номера_- телефона не нужно. Указанное устройство не обязано находиться в каталоге /dev. Если устройство ассо- циировано с автоответчиком, то номер_телефона дол- жен быть задан обязательно. При наличии опции -l или -s не стоит использовать опцию имя_системы вместо номера_телефона: к желаемому результату это не приведет (см. ниже имя_системы). -h Эмуляция локального эхоотображения при вызове дру- гих систем, которые ожидают, что терминал находит- ся в полудуплексном режиме. -t Используется при вызове ASCII-терминала, подклю ченного через автоответчик. Устанавливается режим преобразования возврата каретки в пару (возврат каретки, переход к новой строке). -d Выводить диагностическую трассировку. -o Байты данных, пересылаемые на удаленную систему, дополняются до нечетности. -e Байты данных, пересылаемые на удаленную систему, дополняются до четности. -n Для большей секретности номер телефона запрашива ется у пользователя, а не вводится из командной строки. номер_телефона При использовании автоматического номеронабирателя этот аргумент обозначает телефонный номер со зна- ками равенства в тех местах, где нужно дождаться ответного сигнала и знаками минус в местах, где надо сделать задержку на 4 секунды. имя_системы Имя_системы в смысле uucp может быть использовано вместо номера_телефона. В этом случае имя соот- ветствующей прямой линии или номер_телефона будет получено из файла /usr/lib/uucp/Systems. Замеча- ние: опцию имя_системы не следует использовать совместно с опциями -l и -s, так как cu произведет соединение первым доступным способом, игнорируя указание линии и скорости_обмена. После установления связи cu разделяется на два процес- са: передающий процесс читает данные со стандартного ввода и все строки, не начинающиеся с символа ~, пере- дает удаленной системе; принимающий процесс получает данные от этой системы и, за исключением строк, начина- ющихся с символа ~, передает на стандартный вывод. Обычно автоматически поддерживается протокол Xon/Xoff для контроля ввода от удаленной системы, чтобы избежать переполнения буфера. Строки, начинающиеся с символа ~, трактуются по-особому. Передающий процесс интерпретирует следующие команды, выданные пользователем: ~. Завершить диалог с удаленной системой. ~! Выйти в shell локальной системы. ~!команда... Выполнить команду на локальной системе (посредст- вом sh -c). ~$команда... Выполнить команду локально и направить ее вывод на удаленную систему. ~%cd Сменить каталог на локальной системе. Примечание: команда выполняется специально запущенным shell'ом, что, возможно, не является желательным. ~%take откуда [куда] Копировать файл откуда с удаленной системы в файл куда на локальной системе. Если часть куда опуще- на, то используется аргумент откуда. ~%put откуда [куда] Копировать файл откуда с локальной системы в файл куда на удаленной системе. Если часть куда опуще- на, то используется аргумент откуда. При работе обеих команд, %take и %put, по мере пе- редачи блоков на терминал выводятся последователь- ные цифры. ~~строка Послать ~строку на удаленную систему. ~%break Передать на удаленную систему символ прерывания (можно сокращать до ~%b). ~%debug Включить/выключить вывод отладочной информации (можно сокращать до ~%d). ~t Вывести значения компонентов структуры termio для пользовательского терминала (полезно для отладки). ~l Вывести значения компонентов структуры termio для коммуникационной линии (полезно для отладки). ~%nostop Включить/выключить Xon/Xoff-протокол при вводе. Эта команда применяется в тех случаях, когда уда- ленная система не может правильным образом реаги ровать на символы CTRL+S и CTRL+Q. Принимающий процесс обычно копирует данные, получаемые от удаленной системы, на свой стандартный вывод. Особым образом обрабатываются строки, начинающиеся с символа ~. Комбинация символов ~>:файл используется для пере- назначения стандартного вывода (комбинация ~>>: - для добавления информации). Восстановление стандартного вы- вода обеспечивает строка ~>. При использовании команды ~%put ожидается, что на уда- ленной стороне доступны утилиты stty(1) и cat(1). Ожи- дается также, что символы "забоя" последнего введенного символа и последней введенной строки на локальной и удаленной системах совпадают. В соответствующих местах вставлены символы \. При использовании команды ~%take ожидается, что на уда- ленной стороне доступны утилиты echo(1) и cat(1). Чтобы символы табуляции передавались без замены их пробелами, на удаленной системе должен быть установлен режим stty tabs. Если команда cu была использована в системе X для связи с системой Y, а затем была использована в системе Y для связи с системой Z, команды на системе Y могут быть вы- полнены посредством команды ~~. Например, команда uname может быть выполнена на системах Z, X и Y следующим об- разом: |uname на Z |~[X]!uname на X |~~[Y]!uname на Y Вообще, ~ означает, что команда будет исполнена на ис ходной машине, а ~~ - на следующей машине по цепочке вызовов. ПРИМЕРЫ 1. Вызвать систему с номером 9 201 555 1212, используя скорость передачи 1200 бод, с ожиданием гудка после первой девятки: |cu -s1200 9=2015551212 Если скорость не указана, по умолчанию она принимается равной Any. 2. Подключиться к системе, доступной напрямую: |cu -l /dev/tty10 или |cu -l tty10 3. Использовать имя системы: |cu $NAME ФАЙЛЫ /usr/lib/uucp/Systems /usr/lib/uucp/Devices /usr/spool/locks/LCK..линия СМ. ТАКЖЕ cat(1), ct(1C), echo(1), stty(1), uname(1), uucp(1C). КОДЫ ЗАВЕРШЕНИЯ Нулевой код при нормальном завершении, единичный - в противном случае. ПРЕДОСТЕРЕЖЕНИЯ Команда cu не производит никакой проверки целостности пересылаемых данных. Данные, содержащие символы, имею- щие для cu специальное значение, могут не быть переданы должным образом. В зависимость от оборудования, может являться необходимым использование ~. для завершения передачи даже если была выполнена команда stty 0. Нель- зя быть уверенным в надежной передаче командами ~%put или ~%take управляющих символов. После установления со- единения приглашение может появляться не сразу, а лишь после нажатия возврата каретки. СЮРПРИЗЫ Во время выполнения команды ~%put процесс передачи ис- кусственно замедляется, чтобы уменьшить вероятность по- тери данных.