Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Хайретдинов_Лекции_СИТ-n.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
14 Мб
Скачать
☆

Командный режим программы telnet

При рассмотрении нашего первого примера мы не упомянули о некоторых нюансах работы с TELNET. Давайте внимательнее посмотрим на сообщение "Escape character is '^]'" (escape-символ - '^]'). TELNET посылает на удаленный компьютер все вводимые Вами символы за исключением escape-последовательностей. Если Вы ввели escape-символ, программа-клиент входит в специальный режим команд. По умолчанию для ввода escape-символа обычно используется клавиатурная комбинация [Ctrl-]]. He перепутайте: клавиша [ESC] на клавиатуре компьютера служит для других целей! Escape-символом в программе telnet может быть любой символ, который Вам не нужно пересылать в удаленную систему. Что касается клавиши [ESC], то она генерирует специальный непечатаемый символ, которым помечаются команды, и который, соответственно, передается в удаленную систему довольно часто. Кроме того, escape-символ не всегда вводится комбинацией [Ctrl-]]. Программы-клиенты telnet, которые выполняются на компьютерах с изощренными интерфейсами, обычно вместо скрытых escape-символов используют меню либо функциональные клавиши.

Вы также можете войти в командный режим путем ввода telnet без указания имени компьютера. Войдя в командный режим (не имеет значения, каким образом), Вы увидите приглашение telnet>, которое означает, что TELNET ожидает от Вас ввода команды. Введя вопросительный знак (?), получите список команд программы telnet:

telnet> ? Commands may be abbreviated. Commands are:

(Команды могут быть сокращенными. Имеются следующие команды:)

close close current connection

(закрыть текущее подсоединение)

display display operating parameters

(выдать на экран рабочие параметры)

mode try to enter line-by-line or character-at-a-time mode

(попробовать войти в построчный или в посимвольный режим)

open connect to a site

(соединиться с узлом)

quit exit telnet

(выйти из telnet)

send transmit special characters ('send ?' for more)

(передать специальные символы (для подробной справки —'send ?')

set set operationg parameters

(установить рабочие параметры (для подробной справки —'set ?')

status print status information

(распечатать информацию о состоянии)

toggle toggle operating parameters ('toggle ?' for more)

(переключить рабочие параметры (для подробной справки - 'toggle ?'))

z suspend telnet

(приостановить telnet)

? print help information

(вывести встроенную подсказку)

Несмотря на наличие множества команд и еще более значительного количества подкоманд (попробуйте, например, set ?), обычно используют лишь некоторые из них:

close

Завершает (разрывает) подсоединение, которое существует или создается. Автоматически отсоединяет Вас от удаленной системы; помогает также выйти из программы telnet, если при наборе команды telnet было задано имя удаленного компьютера. Эта команда эффективна, если Вы попали в затруднительную ситуацию и хотите выйти из нее.

open имя

Пытается установить соединение с указанным компьютером. Здесь необходимо указать имя или адрес нужного Вам компьютера. В большинстве реализаций TELNET система запрашивает имя компьютера, если оно опущено. Помните о том, что перед открытием нового соединения необходимо закрыть существующее (командой close).

Set echo

Включает и выключает локальное эхо. Эхо-отображение - это режим, в котором вводимые Вами символы появляются на экране Вашего терминала. Как правило, удаленный компьютер обязан после получения символа передать его обратно на Ваш терминал. Этот процесс называется "дистанционное эхо". Он служит для обеспечения большей надежности (Вы знаете, что удаленная система получает вводимые Вами символы без ошибок). "Локальное эхо" означает, что локальный компьютер (в данном случае telnet-клиент) сам отображает символы, которые Вы вводите, на экране. Поскольку дистанционное эхо позволяет продемонстрировать наличие связи с сервером, в начале работы программы telnet локальное эхо обычно выключено. Для его включения войдите в командный режим и введите команду set echo. Для отключения локального эха нужно ввести set echo еще раз. (Эта команда работает как электрический выключатель: ее подача попеременно включает и выключает локальное эхо.) Команда set echo дает тот же эффект, что и переключатель дуплексного/полудуплексного режима на модемах и терминалах компьютеров (если Вы знаете, что это такое).

Как узнать, включено ли локальное эхо или нет? Если локальное эхо выключено, то вводимые Вами символы отображаться не будут; т.е. Вы не увидите команд, которые посылаете в удаленную систему, но увидите их выходную информацию. Если локальное эхо включено, то каждый вводимый Вами символ отображается дважды. Чтобы включить или выключить локальное эхо, следует войти в командный режим и набрать set echo.

set escape символ

Объявляет указанный символ escape-символом. Как правило, пользователи выбирают какой-нибудь управляющий символ, который можно набрать либо "как есть" (например, если Вы хотите использовать [Ctrl-b], просто нажмите клавишу [Ctrl] и, удерживая ее нажатой, нажмите клавишу [b]), либо путем ввода символа ^ и буквы (например, ^b). Важно, чтобы символ, выбранный в качестве escape-символа, Вам не нужно было вводить в процессе обычной работы. Это создает некоторые сложности, так как многие программы (в частности, редактор emacs) присваивают значения абсолютно всем клавишам.

Возможность изменять escape-символ весьма полезна при выполнении транзитных соединений. Например, из системы А с помощью telnet Вы входите в систему В, а затем подсоединяетесь к системе С. Если задача, выполняемая Вами в системе С, не получается, и escape-символы одинаковы, то разорвать соединение В-С невозможно; ввод escape-символа всегда будет переключать Вас в командный режим в системе А. Если для каждого сеанса работы с TELNET использовать свой escape-символ, то можно выбирать, какой из сеансов переключать в командный режим. Это относится не только к программе telnet, но и к другим прикладным программам с escape-последовательностями, например, эмуляторам терминалов (в частности, популярной программе kermit).

quit

Изящно выводит Вас из программы telnet.

Временно приостанавливает сеанс работы с TELNET, чтобы можно было выполнить в локальной системе другие команды. Все соединения и параметры сохраняются. Сеанс возобновляется обычными средствами операционной системы — в ОС BSD UNIX, например, это команда fg. ОС UNIX System V позволяет Вам выполнить другие команды, используя вложенный интерпретатор команд. Для возврата в сеанс работы с TELNET необходимо выйти из командного режима. (Это средство имеется не во всех системах.)

Enter

Не вводя никакой команды, а только нажимая клавишу [Enter] (пустая строка в командном режиме), Вы возвращаетесь из командного режима в сеанс на удаленном компьютере. Кроме того, многие другие команды выводят Вас из командного режима неявно.

Ниже приведен пример сеанса, в котором мы входим в систему sonne.uiuc.edu, включаем командный режим, даем несколько команд и возвращаемся в систему.

% telnet Sonne.uiuc.edu

Trying...

Connected to sonne.uiuc.edu.

Escape character is '^]'.

SunOS UNIX (sоnne)

login: krol зарегистрироваться в удаленной системе

Password:

Last login: San Sep 7 17:16:35 from ux1.uiuc.edu

SunOS Release 4.1(GENERIC) #l:Tue Mar 6 17:27:17 PST 1990

sonne% ls

Mail News development project1

sonne% pwd

/home/Sonne/krol

sonne% CTRL-] войти в командный режим программы telnet

telnet> ? напечатать пояснительное сообщение (справку)

Commands may be abbreviated. Commands are:

close close current connection

display display operating parameters

... несколько строк выданной на терминал справки

опустим г suspend telnet

? print help information

telnet> set escape ^b заменить escape-символ

escape character is '^B'

sonne% pwd возвратиться a sonne; дать команду

/home/sonne/krol sonne% logout и выйти обратно в локальную систему

Обратите внимание: команда set неявно выводит Вас из командного режима. Если бы она этого не сделала, то для возврата в систему sonne Вы, конечно, могли бы просто ввести пустую строку.