CU(1C)

НАЗВАНИЕ
cu,tip - вызов другой 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 процесс передачи искусственно замедляется, чтобы уменьшить вероятность потери данных.