Крутиков М. П., Слок Е. А.
Первичным способом адресации является способ 2, причем IP-адрес машины является уникальным для всей глобальной сети Internet (они выдаются специальной службой сети, которая и обеспечивает уникальность). Далее, каждая машина имеет свое имя. Узнать имя вашей машины проще всего выдав команду hostname. Ответом будет имя машины. Имя представляет собой либо простое слово, состоящее из не более чем восьми букв (пример: vasya), или ``доменное" имя, состоящее из слов-доменов, разделенных точками (пример: vasya.cuny.edu).
Соответствие между доменным именем и интернетовским адресом машины задается в специальном файле /etc/hosts, который имеет примерно такую структуру:
# file: /etc/hosts # # # 127.0.0.1 loopback # local host # # 194.12.96.11 vasya # local host 194.12.96.12 sasha # remote host 194.12.96.13 hydra # remote host 194.12.96.15 hy.cuny.edu # remote host
Итак, если вам требуется указать адрес машины вы вольны оперировать любым из способов адресации. Если вы пользуетесь логическим именем, то машина автоматически преобразует его в IP-формат, пользуясь информацией из /etc/hosts. Отметим следующее важное различие между способами адресации: если вы знаете IP-адрес удаленной машины, то компьютер попытается установить соединение с этим компьютером независимо от того есть такой адрес в /etc/hosts или нет (технически это делается с помощью ``широковещательного" запроса по всей сети). Если вы пользуетесь логическим именем, то оно должно быть описано в /etc/hosts. Из этого правила есть одно исключение: если ваш компьютер обслуживается системой DNS (Domain Name Service), то запрос на ``расшифровку" адреса будет передан DNS-серверу (который, в свою очередь может передать запрос серверу высшего уровня). Для того, чтобы сработала служба DNS необходимо, чтобы логический адрес имел доменную форму (пример: hy.cuny.edu). Такая система адресации также является уникальной, поскольку полное логическое имя машины образуется из имени локального хоста и имени домена, в котором находится данный хост. Например hy.cuny.edu есть машина с именем hy в домене cuny.edu Нью-Йоркского университета. Таким образом, логическая доменная адресация образует иерархическую структуру, обеспечивающую уникальность каждого такого адреса.
Команды для работы в сети делятся на две группы: утилиты сети DARPA и Берклевские утилиты (которые также называют r -командами). Сие деление вызвано чисто историческими причинами и по функциональным возможностям обе группы команд примерно эквивалентны. Дело в том, что первая группа утилит была создана разработчиками американской военной сети DARPA (из которой со временем и образовалась глобальная сеть Internet). Впоследствии, когда сеть ARPA была передана университетским организациям США, эти утилиты вошли в стандартную поставку сетевого мат. обеспечения TCP/IP. Утилиты второй группы созданы разработчиками самой операционной системы в университете Беркли и могут отсутствовать в других версиях операционных систем.
Итак, если вы знаете имя (адрес) своей машины и адрес машины, с которой вы хотите общаться, вы можете установить сетевое соединение и работать в сети. Однако надо иметь в виду, что, вообще говоря, обе машины должны вас ``знать", то есть вы должны иметь пользовательский доступ к локальной и удаленной машине. Ниже мы подробно обсудим средства сетевой коммуникации.
telnet [ remote_host ]
где remote_host представляет собой адрес удаленной машины. Пример:
telnet aries
В ответ вы получите обычное приглашение с удаленной машины. Вы вводите свое имя и пароль и оказываетесь в режиме терминальной работы с машиной aries. Для разрыва связи и возвращения на локальную машину используйте команду exit.
Имя удаленной машины в командной строке telnet'а является необязательным параметром. Введя команду telnet без параметров вы немедленно получите приглашение telnet> и теперь, пользуясь командами самого telnet'а вы можете установить соединение с удаленной машиной или настроить параметры telnet'а. Наиболее полезной командой 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 send transmit special characters ('send ?' for more) set set operating parameters ('set ?' for more) unset unset operating parameters ('unset ?' for more) status print status information toggle toggle operating parameters ('toggle ?' for more) slc change state of special charaters ('slc ?' for more) z suspend telnet ! invoke a subshell ? print help information telnet> quit %
Если вы уже установили терминальную связь с удаленным компьютером вы можете вернуться в командный режим telnet'а с помощью ввода управляющей последовательности < Esc> (если на клавиатуре вы не нашли такой клавиши, вы вводите < Esc> с помощью одновременного нажатия двух клавиш Ctrl-[). Это обычно используется для изменения коммуникационных параметров.
Более подробную информацию о формате и назначении команд telnet'а вы можете получить дав следующую команду на приглашение telnet'а:
telnet> ? command
где command - имя команды по которой вы хотите получить подробную справку.
ftp [ remote_host ]
После установления соединения вы получаете приглашение ftp> , означающее, что система ждет команды ftp. В ответ вы можете ввести команды для работы с файловыми системами локального или удаленного компьютера, или изменить настроечные параметры утилиты ftp.
ftp> ? Commands may be abbreviated. Commands are: ! delete mdelete proxy runique $ debug mdir sendport send account dir mget put size append disconnect mkdir pwd status ascii form mls quit struct bell get mode quote system binary glob modtime recv sunique bye hash mput remotehelp tenex case help nmap rstatus type cd image nlist rhelp user cdup lcd ntrans rename verbose close ls open reset ? cr macdef prompt rmdir bsize ftp> quit %
Формат команды:
rlogin hostname
где hostname это логическое имя удаленной машины.( Отметим, что ВСЕГДА вместо логических номеров машины вы можете использовать IP-адрес.) Например,
rlogin aries
Если вы имеете ``прозрачный" (т.е. не требующий пароля) доступ к машине aries с данной локальной машины, вы получите приглашение shell-оболочки. В противном случае, вам придется вводить пароль входа на машину aries . После получения приглашения вы работаете на удаленной машине. Полезно проверить текущее имя машины командой hostname .
Команда rlogin может применяться последовательно, что дает возможность входить на удаленную машину через ряд промежуточных. Так, предположим, что между вашей машиной и машиной aries нет прямого соединения. Тогда команда rlogin aries , естественно, не будет выполнена успешно. Однако если вы имеете соединение, скажем, с машиной hydra , и знаете, что эта с этой машины доступна aries , вы последовательно выполняете две команды rlogin :
rlogin hydra и
rlogin aries
(по ходу дела вводя пароли)
Выход из сетевого соединения с удаленной машиной осуществляется командой exit . Отметим, что в последнем примере после выполнения команды exit вы окажетесь в операционной среде машины hydra. И чтобы перейти на локальную машину вам придется ввести еще одну команду exit . Более простой способ закрыть все сетевые соединения и вернуться на локальную машину-это ввести последовательность `` ~. ''. Последовательность `` Ctrl-Z '' приостанавливает работу на удаленной машине и позволяет оказаться на командном уровне вашей локальной машины. Команда fg возобновляет работу на удаленной машине.
Если вы выполняете rlogin на удаленную машину, в которой у вас нет home -директории, то система выведет на экран сообщение об ошибке и назначит вам, по умолчанию, home-директорию " / ".
Для работы на удаленных машинах с использованием различных имен пользователя, нужно выполнить команду rlogin с опцией -l , указывающей имя, под которым вы зарегистрированы на удаленной машине.
rlogin aries -l jones .
Когда rlogin не может обеспечить связь с требуемой удаленной машиной, на экране появляются сообщения об ошибках и вы остаетесь в среде локальной машины. Следующие сообщения могут появиться на экране:
unknown host данная удаленная машина не определена в базе данных для имен host'ов
Connection refused удаленная машина существует в базе данных host имен, но она посылает сообщение, что отказывается от связи
Network unreachable нет маршрутной карты для данной удаленной машины
Connection timed out удаленная машина не отвечает на требование связаться, это сообщение обычно указывает на то, что удаленная машина выключена
Чтобы скопировать файл groucho из вашей home -директории удаленной машины harpo в локальный файл chico , вы должны ввести следующую командную последовательность:
rcp harpo:groucho chico
И наоборот, чтобы скопировать файл из локальной машины в файл удаленной машины, достаточно переставить аргументы в предыдущей команде:
rcp chico harpo:groucho
Можно скопировать сразу всю директорию, указав опцию -r . Команда
rcp -r tuna_fish harpo:big_store
скопирует содержимое локальной директории tuna_fish в директорию с именем big_store на удаленной машине harpo . При этом, если такой директории на удаленной машине не существует, то она создастся. Можно копировать файлы, используя шаблон. Например вы хотите скопировать все фортрановские программы из локальной директории в директорию на удаленной машине harpo :
rcp *.f harpo:fortran_dir
Чтобы скопировать все фортрановские программы из директории fortran_dir на удаленной машине harpo в локальную директорию local_dir , нужно ввести:
rcp harpo:fortran_dir/\*.f local_dir
Если же имя host а и имена файлов заключить в кавычки, то тогда не нужно использовать символа \\everb : \bverb rcp 'harpo:fortran_dir/*.f' local_dir
Если вы работаете на локальной машине aries под пользовательским именем jones и хотите скопировать файл chico в файл group на удаленной машине harpo , на которой вы работаете под именем boby (т.е. имена пользователей отличаются), то вам необходимо ввести следующую команду:
rcp chico boby@harpo:group
rsh gemini fc cad.f
Если вы используете другое login имя (например, boby ) на удаленной машине, то используйте опцию -l также, как в случае команды rlogin :
rsh gemini -l boby fc cad.f
Доступ к удаленным системам по команде rsh контролируется также, как для команды rlogin . Чтобы воспользоваться командой rsh , вам должно быть разрешено выполнять команду rlogin для доступа к удаленной системе без подтверждения пароля. Команда rsh не позволяет выполнять интерактивные команды.
ruptime
Результат будет выведен на экран. Вывод команды ruptime сходен с выводом, получаемым в результате выполнения команды uptime , отличие состоит лишь в том, что для команды ruptime количество дней, в течение которых удаленная машина была включена, отделяется от количества часов знаком `` + ''. По выводу команды можно увидеть, как долго каждая система была включена, как много пользователей сделали login и какова загрузка удаленных машин.
rwho
На экран выведется результат выполнения команды. Если вы зададите опцию `` -а ", то получите более детальную информацию, а если задать опцию `` -r ", то можно получить список удаленных пользователей в обратном алфавитном порядке. Замечание: rwho команда работает только на тех машинах, где запущена специальная системная задача rwho daemon .
Выполнить rdist команды можно из командной строки или из командного файла. По умолчанию, rdist будет искать командный файл под именем `` distfile ", затем под именем `` Distfile ".
Определить список файлов или машин в командном файле можно в одном из следующих форматов:
var_n = name_l
или
[label:] source_l -> dest_l
command_list
где
var_n - Имя переменной, которая будет использоваться в последующих ссылках.
name_l - Список файлов, директорий или машин.
label - Метка для дальнейших ссылок.
source_l - Список файлов или директорий на локальной машине, которые будут выступать как главные копии.
dest_l - Список машин, на которых главные копии будут устанавливаться.
command_list - Команды программы rdist.
Например, команда
FILES = (.login .cshrc .mailrc .logout .rhosts )
назначает переменной FILES список файлов, указанных в скобках. А команда
HOSTS = ( aries gemini libra pisces )
назначает переменной HOSTS список имен машин. А затем эти переменные можно использовать в подкомандах программы rdist. Последовательность команд:
dotfiles: ${FILES} -> ${HOSTS} install -y;
установит копии, определенные переменной FILES на удаленные машины, заданные переменной HOSTS . Опция `` -y " предотвращает обновление удаленных файлов, которые модифицировались позднее, чем соответствующие исходные файлы на локальной машине.
Программа rdist может быть также использована для копирования файлов с одной системы на другие, причем ее использовать предпочтительнее, чем команду rcp , поскольку rdist сохраняет режимы доступа владельца и группы, а также время последней модификации. Для таких целей rdist используется с ключом -c . Например, скопировать содержимое директории tuna_fish в директорию big_store на удаленной машине с именем harpo:
rdist -c tuna_fish harpo:big_store