Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
46
Добавлен:
10.05.2014
Размер:
919.55 Кб
Скачать

Интерпретатор команд shell

Shell - одна из наиболее важных и сложных программ операционной системы UNIX. Она обеспечивает интерфейс "пользователь-ядро" и выполняет следующие функции:

  • интерпретация команды;

  • обработка имен файлов, определенных через метасимволы;

  • осуществление переадресации в/в;

  • создание среды пользователя;

  • поддержка командного языка;

Интерпретация команды - проверка команды на синтаксис, если команда набрана не правильно shell выдаст сообщение об ошибке.

Интерпретатор shell разрешает использование большого набора метасимволов, для сокращения записи имен файлов.

Пример:

Пусть в текущем каталоге находится пять файлов: fl...f5, требуется распечатать содержимое этих файлов.. Осуществить это можно следующей командой: Prflf2f3f4f5

Вывести содержимое файлов данного каталога можно, используя метасимвол «*» (произвольная строка символов). Эту запись можно трансформировать:

prf* или prf[1 2 3 4 5] или рг *[1 2 3 4 5]

При этом файл может располагаться в любом каталоге.

Указав в [ ] последовательность цифр или букв символов, можно указать альтернативный символ подстановки.

Метасимвол «?» - соответствует единственному произв. символу.

Осуществление переадресации в/в: если требуется, интерпретатор shell легко перераспределяет устройство в/в.

Перераспределение вывода происходит командами: >, »:

Is > fde.txt - результатом выполнения команды будет являться запись в file.txt. Если файла не было, он автоматически создается, если был - его предыдущее значение будет уничтожено.

Чтобы добавлять в конец уже существующего файла определяется операция слабой переадресации »:

Пример:

cat al.c a2.c> temp, с -al.c и a2.c объединяются и записываются в temp

cat al.c a2.c » temp, с с -al.cn а2.с объединяются и записываются в конец temp, с (если файл уже существовал, если нет - файл будет создан).

Совершенно аналогично переадресация ввода < mail tt0l tty02 tty03 < let все данные из let поступят на все три терминала

Shell допускает объединение нескольких команд в конвейер для их совместного последовательного выполнения. В этом случае информационная связь между командами осуществляется через межпроцессный канал. Результат выполнения одной команды сразу поступает на вход другой.

Пример:

who > temp

выводится список пользователь в алфавитном порядке

sort < temp

С помощью операций и/или можно формировать условную последовательность выполнения. Например: ее а.с && a.out. По сути конвейер является простейшей программой на командном языке. Shell позволяет объединять команды в программы и интерпретировать их как единое целое.

Пример:

С помощью операции &&, || можно формировать условные последовательности: gec а.ехе а.с && Ja.exe

Условная последовательность выполнится, если не будет обнаружена синтаксическая ошибка.

Пример:

who | sort - выдает список пользователей в алфавитном порядке через ls -a | wc-l - выдает количество файлов в текущем каталоге. ls | pr -s - выдает список пользователей в алфавитном порядке

Создание среды пользователя: Для каждого пользователя shell организует доступ к любой команде. Поддержка командного языка: для эффективного взаимодействия команд в рамках программ на командных языках интерпретатора разрешает использование специальных переменных, обычно идентификаторов, которые объявляют и инициализируют присваиванием и которым присваивается значение. =0= $ или %. Помимо переменных, вводимых пользователем shell позволяет использовать такие как =0= # - число аргументов выполнения команды и содержит все необходимые синтаксические конструкции: операторы циклов, условные операторы, операторы переключения и т.д. для полноценного написания программ.

Пример:

Напечатать имена трех файлов каталога is - 40 являются объектными и по объему не превышают некоторой заданной величины:

###

cd.. /home/is - 40 3 - директория /home/is - 40 - текущая files =4s *.o' - присваивается список имен объектных файлов {Is *.oj

for i in Sfiles - переменной i последовательно присваиваются имена файлов и списка, определяющий его размер do

n=size $

if test $ n -lt $ 1; then echo $ i - проверяется не превосходит ли размер установленного значения передаваемого в качестве первого внешнего аргумента

fi

done ### - It - меньше - le - меньше или равно - eq – равно -gl - больше или равно -gt - больше -pе - не равно

Соединение системы установки с помощью конкретного аппаратного интерфейса. Ethernet,Arcnet,TokenRing

Команда ifconfig позволяет конфигурировать сетевые интерфейсы, а команда route обеспечивает маршрутизацию.

При каждом запуске системы сетевые интерфейсы и таблицы маршрутизации конфигурируются заново следовательно для каждого интерфейса команды ifconfig и route записываются в файл инициализации:

/etc/rcd/init. d/inet

ifconfig имеет вид:

1/со_интерфейс_хост_сеть_флаг_адрес_опции

host- свидетельствует о том, что данный IP является адресом хост-машины

net- значит чисто домашний IP, является адресом сети.

Опции:

[-] broadcast - широковещательный адрес сети. Минус значит отмену широковещательной рассылки.

netmask - IP маска сети.

mtu n - максимальное число байтов за одну передачу по данному интерфейсу

interface - имя сетевого интерфейса

ФУР ~ задает имя поддерживаемого семейства адресов

up - активизирует интерфейс

down - деактивизирует интерфейс

[-] агр - активизирует/останавливает работу протокола агр

[-] trailers - включает/выключает режим использования завершителей в Ethernet-кодах

[-] allmulty - включает/выключает режим при котором все поступающие кадры отслеживаются на уровне ядра системы

dstaddr адрес - IP адрес конечного пункта соединения типа точка-точка.

pointtopoint адрес - работа в режиме точка-точка.

Если адрес указан то он присваивается удаленной системе

hw - устанавливает физический адрес интерфейса

Примеры:

ifconfig ethO 192.168.0.1 broadcast 192.104.244.137 netmask 255.255.255.0

ifconfig piipO 199.35.209.72 pointtopoint 204.166.254.14 (конфигурация интерфейса plip, соединение компьютера с адресом 199.35.209.72 с компьютером с адресом 204.166.254.14)

plip - межсетевой протокол для параллельного канала.

Slip - межсетевой протокол для последовательного канала.

Ррр - точка - точка

Двухточечные протоколы для двухсторонней связи (по телефонной линии и др.) ifconfig lo 127.0.0.1 (процедура конфигурации закольцовывающего интерфейса)

ifconfig полезна для проверки статуса.

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

Маршрутизация бывает статическая и динамическая

Маршруты содержатся в файле:

/proc/net/route

Его можно посмотреть: Destimation Gateway Genmask Flags MSS Window Use Iface loopback * 255.0.0.0 v 1936 0 12 lo

miem.edu.ru * 255.255.255.0 v 1936 OOethO

  • Destination - IP адрес конечного пункта;

  • Gateway - IP адрес(хост имя шлюза, использованного на данном маршруте (* - шлюз не используется));

  • Genmask - маска есть;

  • flags - тип/состояние маршрута;

  • U – активный;

  • Н – хост;

  • М – модифицированный;

  • G – шлюз;

  • D – динамический;

  • MMS - максимальное количество данных за один раз;

  • Window - максимальное количество данных которое принимающая сторона может принять;

  • Use - количество пакетов по данному маршруту;

  • Iface - тип интерфейса на данном маршруте.

В файле маршрутизации должна содержаться хотя бы одна запись IP должен быть указан в файле до того как интерфейс будет задействован.

Адрес вводится с помощью команды route add адрес.

add имеет несколько спецификаторов

Если вводится статический маршрут, то эти спецификаторы нужны для ввода таких параметров как маска сети шлюз интерфейс адрес пункта назначения и т.д.

Если интерфейс уже сконфигурирован, то вся необходимая информация будет взята из данных конфигурации интерфейса.

Если система подключена к сети, в файле маршрутизации должна быть сделана хотя бы одна запись, задающая маршрут по умолчанию пункт назначения пункт назначения задается ключевым словом default.

Route -net 192.168.0.1 удаляет один из существующих маршрутов.

Контроль за состоянием сети

ping - позволяет проверить наличие доступа к любому хост-компьютеру в сети.

ping хост-имя [флаги]

netstat - позволяет получить в режиме реального времени информацию о состоянии сетевого соединения а так же статистические данные и таблицу маршрутизации

netstat без опций список сетевых соединений системы. Сначала активные TCP - соединения, а затем активные гнезда домена типа UNIX. Гнезда этого домена заняты процессами обеспечивающими установление соединение системы с другими системами

netstat опции:

-а - информация о всех гнездах + гнезда работающие только на прием -/ - информация обо всех сетевых устройствах -п - ip адреса удаленной и локальной системы -г - хранящаяся в ядре таблица маршрутизации t - информация только о TCR гнездах и работающих на прием - информация только о UDP гнездах -х - информация только о доменных гнездах -о - информация о количестве повторно переданных байтов и состояние таймера

Протокол SLIPи РРР

Для подсоединения к телефонным линиям используют протоколы SLIP(Serial Line Internet Protocol) и PPP(Point-to-Point Protocol)

Чтобы установить соединение по одному из этих протоколов необходимо активировать поддержку TCP/IP и конфигурировать закольцовывающий интерфейс

Надо выяснить IP серверов доменных имен и ввести их в файл /etc/ resolve, conf

ррр соединение устанавливается с помощью программы pppd. Она конфигурирует соединения и устанавливает лимиты mtu и получает IP адреса.

Сначала надо установить соединение с удаленной хост-системой с помощью программы chat, а потом сконфигурировать его с помощью команды pppd.

Синтаксис pppd:

pppd опции имя устройства скорость локальный удаленный адреса опции pppd

Имя устройства - это имя устройства для uon&Ma(/dev/can-0-3)

Скорость - speed число -скорость передачи данных в бодах

Опции: asyncmap карта - задает карту символов которая определяет какие управляющие символы не должны быть переданы в виде символов, а должны передаваться как байтовые escape.

Connect(connect команда) - используется для соединения указанной команды (обычно команда chat) auth- требование аутентификации удаленной системы defaultroute - устанавливает по умолчанию маршрут к удаленному хост-компьютеру

crtscts - используется для аппаратного управления потоком

xonxoff- используется программным управлением потоком

disconnect команда - выполнение команды после того как ррр разорвал соединение

mtu - задание величины максимального принимаемого блока

netmask маска - задание маски сети ррр

noipdefault-выявление значения ip адресов выделенных провайдером. Осуществляется для поиска в потоке данных поступающих из удаленной машины локальных и удаленных IP адресов для данного сеанса связи.

Опция эта обязательна для установления соединения при динамических IP адресах.

Passive - ожидание установления соединения в случае невозмоности установления немедленного соединения

Silent - ожидание установления соединения с удаленным хостом

Modem - управление модемом

Пример:

pppdconnect 'chat-fconf.chat' dev/cual 57600 199.35.209.72:163.179.4.22 mru 1500 defaultroute crtscts modem

Программа использует удаленный и локальный адрес для установления статического соединения. Если провайдер предоставляет только динамические адреса то:

pppd connect 'chat-j con/.chat' dev/cual 57600

После действие pppd во время работы можно в файле: /var/log/messanges

Chat-сценарии

Для установления соединения "chat" должна получить всю информацию о нем: номер телефона, регистрационное приглашение, идентификатор пользователя, приглашение для ввода пароля, пароль, строку инициализации модема. Для этого создается файл с необходимой информацией.

Чат-сценарий состоит из одной строки разбитой на сегменты, соответственно этапам соединения. Каждый сегмент состоит из пары ожидание-ответ. В ответ обычно приходит строка подтверждения соединения или скорость передачи в бодах. После строки соединения удаленной системы посылает в регистр приглашение. "login:"

В ответ высылается идентификатор пользователя после чего ожидается запрос пароля.

Пример сценария:

conf.chat

ABORT 'NO CARRIER' ABBORT BUSY

AT\&FZVIL0

OK ATDP1216323

CONNECT \n Login: m521 Password: mypass

Многие удаленные системы в случае установления проблем соединения начинают сообщать об ошибках. Для выявления такого сообщения можно воспользоваться строкой управления с ключевым словом ABORT

Поверяется получение ответов "по carrier" или "busy". Если они не обнаружены, соединение не установиться.

NFS (Network File Systems) - обеспечивает доступ к файловой системе

REX (Remote Execution Facility) - позволяет выполнять команды на удаленной машине

NLM (Network Lock Manager) - обеспечивает синхронизацию доступа к разделенным файлам

NIS (Network Information Service) - используется для централизованного администрирования доступа в сети

Основные компоненты NS (Network Services) - набор сетевых программ, средств позволяющих объединить компьютеры разных архитектур. Включает в себя:

NFT (Network File Transfer) - обеспечивает передачу файлов между компьютерами в сети VT3K - обеспечивает работу в режиме виртуального терминала

Работа в сети по протоколу TCP/IP

FTP - передача файлов по сети

Подкоманды:

open (сетевое имя машины) - установить сеанс связи с указанной машиной

close - завершить сеанс связи

disconnect - завершить сеанс связи без выхода из ftp

bye; quit - завершить сеанс связи и выйти из команды ftp

ascii - установить режим передачи текстовых файлов

binary - установить режим передачи двоичных файлов

get удаленный файл [локальный файл]

recv - копирование файла с удаленной машины на локальную

mget - копирование нескольких файлов с удаленной машины на локальную

put локальный файл [удаленный файл] - копирование файлов с локальной машины на удаленную

mput локальные файлы - копирование нескольких файлов с локальной машины на удаленную

append локальный файл [удаленный файл] - добавление файла с локальной машины в конец файла на удаленную машину

/ [команда[аргументы]] - выполнить команду shell на локальной машине

cd директория - сменить рабочий каталог на удаленной машине

led директория - сменить рабочий каталог на локальной машине

dir [удаленная директория] [локальный файл] - записать содержимое удаленной директории в локальный файл

Is //

mdelete [удаленные файлы] - удаление файлов на удаленной машине

delete [удаленные файлы/удаленная директория] - удаление файлов/директорий на удаленной машине

mkdir - создание директории на удаленной машине

Пример:

ftp> put

(local) ? а: \ olga. с

(удаленная машина)? olgaTelnet

telnet - работа с удаленной машиной в режиме виртуального терминала(/е/ие? [сетевое имя]) Синтаксис основных подкоманд:

open [сетевое имя машины]- установление связи с указанной машиной

closeзавершить сеанс связи без выхода из команды telnet

quitзавершить сеанс связи с выходом из telnet

/ [команда[аргументы]] - выполнить команды shell на локальной машине

Поддержка в Unixсетевого обмена

В основном все UNIX системы рассчитаны на работу в сетях, в которых используются протоколы tcpMp (transport control protocol/internet protocol).

tcp - протокол отправления передачи ip - протокол отвечающий за маршрутизацию

Протоколы используемые в сетях:

Udp (User datagram protocol) - протокол пользовательских дейтаграмм

Аrр - протокол разрешения адресов (определяет физические адреса сетевых интерфейсов по unix адресам)

Dns - протокол преобразования доменных имен (преобразует доменные хост-имена в ip адреса)

ICMP (internet control message protocol) - межсетевой протокол управляющих сообщений, осуществляет выдачу сообщений,

позволяющих корректировать маршрутизацию.

RIP (Routing Inform protocol) - протокол маршрутной информации, определяет маршрутизацию.

OSPF (Open short Path First) - более эффективный чем rip (протокол первого кратчайшего пути)

RARP - протокол обратного разрешения адресов (по физическому адресу определяет ip)

ftp (file transfer protocol) - протокол пересылки из одной системы в другую по средствам протокола tcp.

tftp - -//- с использованием udp.

telnet - протокол прикладного уровня для обеспечения интерактивного доступа к ресурсам удаленного компьютера.

SMTP (Simple Mail Transport Protocol) - упрощенный протокол передачи почты между системами.

HTTP (Hyper Text Transport Protocol) - протокол обмена гипертекстовой информацией, т.е. документами HTML (используется

веб серверами; http клиент - браузер).

POP - протокол почтового обмена (протокол получения электронной почты с почтовых серверов).

EGP - протокол внешнего шлюза (маршрутизация по внешним сетям).

GGP - межшлюзовый протокол (маршрутизация при пересылке инфы между Интернет шлюзами).

IGP - протокол внутреннего шлюза (маршрутизация для внутренних сетей).

NFS - сетевая файловая система (позволяет монтировать фс на удаленных машинах).

NIS - сетевая информационная служба (обеспечивает сетевую поддержку функционирования пользователей).

Rpc дистанционный вызов процедуры (позволяет программам на удаленных системах связываться между собой).

snmp - протокол управления сетью (выдает сообщения о состоянии и конфигурации протоколов tcp\ip ).

bootp - протокол начальной загрузки (обеспечивает запуск системы по информации сетевого сервера).

ip адрес состоит из 4 сегментов чисел, разделенных точками. Одна из частей - адрес сети (первые 3 сегмента), другая для обозначения конкретного хост компьютера в этой сети (последний сегмент). Кроме ip адреса необходимо знать:

1. адрес сети ip (*. *. *. 0)

Сетевая часть ip адреса хост машины + 0. Система определяет адрес сети по адресу хост машины с помощью маек сети путем поразрядной операции «и» (поразрядное сложение).

2. широковещательный адрес (*. *. *.255)

Позволяет системе посылать сообщения всем системам сети одновременно. Его легко определить как (*.*.*.255, Машинная часть в нем устанавливается равной 255.

Пример:

192.168.14.30

192.168.14.255

3. адрес шлюза (*. *. *. 1) если есть

Шлюз - один из компьютеров сети, обеспечивающий взаимодействие с другими сетями. Все соединения из данной сети с какой-либо другой сетью осуществляются через этот шлюзовой компьютер. Как правило адрес шлюза имеет ту же сетевую часть адреса что и хост компьютер, но в его машинной части стоит 1. Во многих сетях, включая Интернет, есть компьютеры, которые работают как серверы доменных имен (позволяют преобразовывать доменные имена сетей и хост машин в ip адреса). Это позволяет идентифицировать компьютер не пользуясь ip адресом. Обычно dm серверов несколько, узнать их адреса можно у провайдера или администратора.

Доменное имя состоит из 2х частей: хост имени и имени домена. Хост - имя - собственное имя компьютера, а домен обозначает сеть, частью которой этот компьютер является. Домены обычно имеют расширение которым обозначается страна или ориентация сети.

4. маска сети

Используется для получения адреса сети, к которой подключен данный компьютер сети. При определении маски сети адрес хост компьютера выступает в качестве трафарета. Все числа в сетевой части устанавливаются равными 255, а в машинной части становится 0. (255.255.255.0)

5. Адрес сервера имен (DNS)

Адресов обычно несколько. Их можно узнать у провайдера или системного администратора.

Настройка и поддержка работы сети в ОС UNIX

Адрес сети, ip адрес компьютер, широковещательный адрес, адрес шлюза, адрес сервера имен и маска сети вводятся во время инсталляции системы. Они автоматически заносятся в соответствующие конфигурационные файлы:

1) /etc/hosts - отвечает за связь хост имен с ip адресами.

Сначала ведение списка хост имен с адресами ip было обязанностью всех компьютеров сети. Этот список до сих пор хранится в файле /etc/hosts. За ведение этого списка отвечал системный администратор. Вследствие большого объема сетей функции преобразования доменных имен в ip адреса были переданы серверам доменных имен. Тем не менее файл /etc/hosts продолжает использоваться для хранения доменных имен и ip адресов хост машин, соединение с которыми устанавливается наиболее часто, т.е. это своеобразная КЭШ память системы. Перед тем как обращаться к серверу имен система будет обращаться к файлу /etc/hosts и искать в нем ip адрес заданного ей доменного имени. Первоначально в /etc/hosts всегда будет присутствовать запись для локального компьютера localhost с ip адресом 127.0.0.1 Это зарезервированный ip адрес, который позволяет пользователям системы связываться друг с другом в локальном режиме («закольцованный интерфейс»)

Пример:

127.0.0.1 turtle, trek.com

192.168.0.14 rose.miem.ru

2) /etc/networks - связь доменных имен с адресами сетей.

В файле /etc/networks содержатся доменные имена и ip адреса сетей, с которыми есть соединение loopback 127.0.0.0 miem.ru 192.168.0.0

В файле/etc/rc.d/init.d/inetl находятся команды, обеспечивающие конфигурирование сетевого соединения. Многие записи в этом файле автоматически создаются при использовании команды netcfg (netconfig) и конфигурировании сетевого соединения в процессе инсталляции. В этом же файле находятся и команды ifconfig и route, заданное хост имя системы, адрес сети и все другие необходимые адреса, этот файл можно редактировать.

3) /etc/hostname - содержит хост имя вашей системы.

В файле etc/hostname содержится хост имя вашей системы. Этот файл можно редактировать при помощи iftconfig.

  1. /etc/rc.aVinit.d/inet - содержит команды конфигурирования сетевого интерфейса при начальной загрузке.

  2. /etc/host, conf- содержит опции конфигурирования

  3. /etc/resolv.conf - содержит список серверов доменных имен.