Андрей Робачевский - Операционная система UNIX

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Операционная система UNIX"
Описание и краткое содержание "Операционная система UNIX" читать бесплатно онлайн.
Книга посвящена семейству операционных систем UNIX и содержит информацию о принципах организации, идеологии и архитектуре, объединяющих различные версии этой операционной системы.
В книге рассматриваются: архитектура ядра UNIX (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс UNIX (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка в UNIX (протоколов семейства TCP/IP, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).
Для широкого круга пользователей
$ find -name myfile.txt.1 -print >/tmp/myfile.list 2>/dev/null &
$
Пока утилита find(1) производит поиск файла с именем myfile.txt.1, сканируя файловую систему, вы сможете выполнить еще массу полезных дел, например, отправить почту или распечатать документ на принтере. Мы вернемся к этой схеме запуска программ далее в этой главе при обсуждении системы управления заданиями.
Наконец, командный интерпретатор предоставляет возможность условного запуска команд. Например, если необходимо выполнить команду только в случае успешного завершения предыдущей, следует воспользоваться следующей синтаксической конструкцией:
cmd1 && cmd2
В качестве примера рассмотрим поиск имени пользователя в файле паролей, и в случае успеха — поиск его имени в файле групп:
$ grep sergey /etc/passwd && grep sergey /etc/group
Успехом считается нулевой код возврата программы, неудачей — все другие значения.
Можно назначить выполнение команды только в случае неудачного завершения предыдущей. Для этого команды следует разделить двумя символами '|':
$ cmd1 || echo Команда завершилась неудачно
Приведенный синтаксис является упрощенной формой условного выражения. Командный интерпретатор имеет гораздо более широкие возможности проверки тех или иных условий, которые мы рассмотрим в следующем разделе.
Условные выражения
Язык Bourne shell позволяет осуществлять ветвление программы, предоставляя оператор if. Приведем синтаксис этого оператора:
if условие
then
command1
command2
...
fi
Команды command1, command2 и т.д. будут выполнены, если истинно условие. Условие может генерироваться одной или несколькими командами. По существу, ложность или истинность условия определяется кодом возврата последней выполненной команды. Например:
if grep sergey /etc/passwd >/dev/null 2>&1
then
echo пользователь sergey найден в файле паролей
fi
Если слово sergey будет найдено программой grep(1) в файле паролей (код возврата grep(1) равен 0), то будет выведено соответствующее сообщение.
Возможны более сложные формы оператора if.
set `who -r`
Установим позиционные параметры равными значениям полей вывода программы who(1)
if [ "$9" = "S" ]
Девятое поле вывода — предыдущий уровень выполнения системы; символ 'S' означает однопользовательский режим
then
echo Система загружается
elif [ "$7" = "2" ]
Седьмое поле — текущий уровень
echo Переход на уровень выполнения 2
else
echo Переход на уровень выполнения 3
fi
Данный фрагмент скрипта проверяет уровень выполнения, с которого система совершила переход, и текущий уровень выполнения системы. Соответствующие сообщения выводятся на консоль администратора. В этом фрагменте условие генерируется командой test, эквивалентной (и более наглядной) формой которой является "[]". Команда test является наиболее распространенным способом генерации условия для оператора if.
Команда test
Команда test имеет следующий синтаксис:
test выражение
или
[ выражение ]
Команда вычисляет логическое выражение (табл. 1.10) и возвращает 0, если выражение истинно, и 1 в противном случае.
Таблица 1.10. Выражения, используемые в команде test
Выражения с файлами -s file Размер файла file больше 0 -r file Для файла file разрешен доступ на чтение -w file Для файла file разрешен доступ на запись -x file Для файла file разрешено выполнение -f file Файл file существует и является обычным файлом -d file Файл file является каталогом -с file Файл file является специальным файлом символьного устройства -b file Файл file является специальным файлом блочного устройства -р file Файл file является поименованным каналом -u file Файл file имеет установленный флаг SUID -g file Файл file имеет установленный флаг SGID -k file Файл file имеет установленный флаг sticky bit Выражения со строками -z string Строка string имеет нулевую длину -n string Длина строки string больше 0 string1 = string2 Две строки идентичны string1 != string2 Две строки различны Сравнение целых чисел i1 -eq i2 i1 равно i2 i1 -ne i2 i1 не равно i2 i1 -lt i2 i1 строго меньше i2 i1 -le i2 i1 меньше или равно i2 i1 -gt i2 i1 строго больше i2 i1 -ge i2 i1 больше или равно i2Более сложные выражения могут быть образованы с помощью логических операторов:
!выражение Истинно, если выражение ложно (оператор NOT) выражение1 -а выражение2 Истинно, если оба выражения истинны (оператор AND) выражение1 -o выражение2 Истинно, если хотя бы одно из выражений истинно (оператор OR)Приведем несколько примеров использования выражений.
Фрагмент скрипта, используемый при регистрации нового пользователя. Скрипт проверяет наличие в домашнем каталоге инициализационного скрипта .profile и в случае его отсутствия копирует шаблон:
if [ ! -f $НОМЕ/.profile ]
then
echo "файла .profile не существует - скопируем шаблон"
cp /usr/lib/mkuser/sh/profile $НОМЕ/.profile
fi
Фрагмент скрипта, проверяющего наличие новой почты в почтовом ящике пользователя
if [ -s $MAIL ]
then
echo "Пришла почта"
fi
Фрагмент скрипта инициализации системы — запуска "суперсервера" Internet inetd(1M). Если исполняемый файл /etc/inetd существует, он запускается на выполнение.
if [ -х /etc/inetd ]
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Операционная система UNIX"
Книги похожие на "Операционная система UNIX" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Андрей Робачевский - Операционная система UNIX"
Отзывы читателей о книге "Операционная система UNIX", комментарии и мнения людей о произведении.