2.3.1 Некоторые специальные команды

 

Разделители && и ||

 

Это условные разделители. При разделении двух команд с помощью && вторая команда выполнится лишь в том случае когда первая завершится успешно. При разделении команд с помощью || вторая выполнится лишь тогда когда первая закончилась неуспешно (код возврата не равен нулю).

Например при выполнении скрипта:

test –d /usr/tools && cd /usr/tools test –d /usr/tools || echo “directory doesn’t exist”

вход в директорию /usr/tools будет произведен только при ее наличии, в противном случае будет выдано сообщение о ее отсутствии.

Определение функций

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

name () { list; }

где name – это имя функции, а list – список команд из которых состоит тело функции. Ниже приведен пример функции возвращающей 0 если аргумент переданный ей является директорией и 1 в противном случае.

dir_test () {

if [ -d $1 ]

then

echo “$1 is a directory”

return 0

else

echo “$1 is not directory”

return 1

fi;

}

вызов функции осуществляется следующим образом

name [ parameter … ]

например в нашем случае это можно сделать так

dir_test /usr/bin/sh

Перенаправление ввода-вывода

Как было сказано выше для перенаправления ввода-вывода используються символы (> перенаправление вывода, >> перенаправление вывода с добавлением в файл и < перенаправление ввода). Кроме этого существует еще ряд конструкций, одна из которых:

<< [-] word

при этом все линии от первой и до содержащей строчку word будут использоваться как входные данные. Например:

$ cat<<mark

> These words will be printed

> the cat command until the "mark"

> word is found

> mark

These words will be printed

the cat command until the "mark"

word is found

$

Если перед строчкой word стоит минус то все символы табуляции в начале строк будут вырезаны.

Другой часто используемой конструкцией при перенаправлении ввода-вывода является:

<& цифра

>& цифра

При этом задействуется файловый дискриптор ассоциированый с указаной цифрой. В большинстве программ со стандартным вводом связан дискриптор 0, со стандартным выводом дискриптор 1, и со стандартным потоком ошибок дискриптор 2. Все программы которые работают друг с другом через пайпы по умолчанию пользуються дискрипторами 0 и 1. Наиболее часто используемые перенаправления это 1>&2 и 2>&1. Рассмотрим следующий пример из которого станет понятен смысл этих конструкций:

$ ls /no/such/file > out

/no/such/file not found

$ cat out

$

$ ls /no/such/file >out 2>&1

$ cat out

/no/such/file not found

$

первая команда пытается вывести листинг не суцествующего файла перенаправив стандартный вывод в файл out. Файл out при этом оказывется пустым т.к. сообщение об ошибке выводится в стандартный поток ошибок и появляется на терминале. Вторая команда объединяет стандартный поток ошибок со стандартным выводом который перенаправлен в файл out. При этом сообщения об ошибке попадают в файл, о чем свидетельствует команда cat.

Команда exec

exec [arg …]

 

Эта команда выполняет замещение текущего шела новым шелом или программой. Разница между простым запуском шела и запуском через exec становится очевидной на следующем примере:

$ ksh

$ ps

PID TTY  TIME COMMAND

2125 pts/0 0:00 ksh

2094 pts/0 0:00 sh

2126 pts/0 0:00 ps

$

$ exec ksh

$ ps

PID TTY TIME COMMAND

2127 pts/0 0:00 ps

2094 pts/0 0:00 ksh

$

 

Команда expr

expr expression { +, -, \*, /, *, =, \>, \>=, \<, \<=, != } expression

Это очень полезная команда для выполнения арифметических операций в шелл скриптах. Например:

x=10

expr $x + 5

y=`expr $x – 10`

if expr $x \<= $y

then

echo “$x is less or equal than $y”

fi

 

Команда set

Эта команда используется во многих модификациях. Основное назначение – это устанавливать значение параметров. Если Вы просто запустите эту команду без аргументов то увидите все параметры вашего окружения, большинство из которых было установлено при входе в систему из файла .profile.

Наример команда:

set bob brr kab ram

установит параметры $1, $2, $3, $4 следующим образом $1=”bob”, $2=”brr”, $3=”kab”, $4=”ram”. Команда set имеет множество опций, полный список которых можно получить обратившись к man-странице (man set).

 

Команда trap

 

Команда trap ожидает приход сигналов посланных шелу (от внешних процессов или сигнал от шела вследствии неуспешного запуска программы) и выполняет их обработку.

trap [command_list] [s1 …]

Когда trap получает сигнал s1 (сигналы s2 …) она выполняет список заранее предопределенных в command_list команд. Если s1 равен 0, то команды запускаются когда шелл заканчивает свою работу. Команда trap запущенная без аргументов выдает на печать список команд ассоциированных с каждым из номеров сигналов. Ниже приведен краткий список наиболее часто используеиых сигналов.

Номер сигнала

Описание

Возможность перехвата

1 сигнал перезапуска Есть
2 Прерывание процесса Есть (если процесс не в фоне)
3 Сигнал выхода Есть (если процесс не в фоне)
6 Сигнал завершения Есть
9 “Убиение” процесса Не може быть перехвачен в принцыпе
14 Сигнал таймера Нет
15 Програмный сигнал завершения процесса Есть

Попытка перехватить 11-й сигнал (memory fault) приводит к ошибке. Сигнал с номером 9 не может быть перехвачен т.к. он не перехватывается в принципе.

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

trap “echo ‘removing temporaty file’ rm /tmp/temp” 0 1 2 3 15

Команда pwd

Эта команда показывает текущую рабочую директорию.

Команда type

type [ prog_name …]

 

Эта команда ищет каталог в котором находится запускаемая программа указанная в аргументе команды.

Команда times

Эта команда выдает информацию о времени выполнения процесса запущеного из шелла.

Параметры устанавливаемые шеллом
Параметр

Описание

$# Количество аргументов командной строки
$? Значение кода возврата предыдущей команды
$$ Номер процесса шела в системе
$! Номер процесса в системе последней команды запущеной в фоне

Основные опции для запуска Bourn Shell

Опция

Описание

-с string Выполнять команды из файла string
-s Выполнять команды полученные со сотандартного ввода (в случе запуска шела без опций он ведет себя также)
-r Запустить шелл в ограниченном режиме (restricted mode)

При запуске шела в restricted mode запрещается:

·     Изменение директории командой cd

·     Устанавливать переменную окружения PATH

·     Запускать программы содержащие в имени символ /

·     Перенаправлять ввод-вывод


C Shell .

2.3.1 Общие сведения.

2.3.2 История команд

2.3.3 Алиасы, подстановка команд, метасимволы

2.3.4 Переменные csh

2.3.5 Задания

2.3.6 Скрипты

2.3.7 Управляющие структуры скриптов.


2.3.1 Общие сведения.

csh это командный интерпретатор HP-UX и язык программирования высокого уровня используемый для трансляции команд вводимых пользователем в системные действия такие как запуск программ, перемещение по директориям файловой системы, управление информационными потоками между программами. csh в отличии от Bourne Shell имеет ряд дополнительных полезных возможностей

·     Буфер истории команд

·     Механизм алиасов

·     Расширеный, С-подобный командный язык

Выход из шелла может осуществляться несколькими способами: по команде exit (либо logout если это логин шелл) и также в зависимости от переменной окружения ignoreoff если она не установлена, то по комбинации клавиш Ctrl-D.

Запуск шелла

 

В зависимости от того является ли csh Вашим логин-шеллом возможны различные сценарии его запуска. При запуске csh проверяет файлы:

/etc/csh.login Если csh это логин-шелл и этот файл существует, то он

выполняется

.cshrc Если этот файл существует в вашем домашем каталоге,

то он выполняется в любом случае.

.login Если csh это логин-шелл и этот файл существует в

домашнем каталоге то он выполняется

.logout Если этот файл существует в домашнем каталоге, то он

выполняется всякий раз при выходе из шелла если это

логин-шелл

Установка переменных

Существуют два типа переменных которые могут быть устаовлены в .cshrc и .login, это локальные переменные, которые не передаются дальше порождаемым из шелла процессам и носят название локальных переменных и глобальные переменные, которые становяться доступными всем процессам порожденным из шелла и носят название переменных окружения. Локальные переменные устанавливаются командой set , глобальные – командой setenv.


Информация о работе «Администрирование локальных сетей»
Раздел: Компьютерные науки
Количество знаков с пробелами: 374863
Количество таблиц: 43
Количество изображений: 0

Похожие работы

Скачать
36318
2
2

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

Скачать
68403
1
1

... надёжность системы, данный стандарт с успехом применяется в магистральных каналах связи. Сравнительный анализ существующих технологий представлен в Приложении А. 2. АНАЛИЗ И КОМПЛЕКС МЕРОПРИЯТИЙ ПО ОБСЛУЖИВАНЮ ЛОКАЛЬНОЙ СЕТИ СЛУЖБЫ ПО ДЕЛАМ ДЕТЕЙ СЕВЕРОДОНЕЦКОЙ ГОРОДСКОГО СОВЕТА   2.1 Административные, технические и программные характеристики Службы по делам детей Северодонецкой городской рады ...

Скачать
59974
6
46

... концентратора, требуется также сетевой кабель, так называемый двужильный провод Ethernet RJ-45 (10BaseT или 100BaseT), который немного больше обычного телефонного кабеля. 3. Создание локальной сети 1. Обнаружение параметров сети. 2. Выбираем параметры настроек. 3. Задание корня DNS-имени ZALMAN. local. 4. Настраиваем IP-адрес и адрес DNS-сервера. 5. Локальные ...

Скачать
44395
3
16

... разнообразием активного коммутационного оборудования, которое применяется для локальных и глобальных связей. В данном разделе были рассмотрены стандарты беспроводного доступа к сети Интернет. Так же был рассмотрен вопрос о назначении локальной сети. 2. Конструкторская часть   2.1 Выбор и обоснование технологий построения ЛВС Исходя из технического задания, для связи рабочих станций в ...

0 комментариев


Наверх