Операционная система UNIX
Операционная система UNIX читать книгу онлайн
Книга посвящена семейству операционных систем UNIX и содержит информацию о принципах организации, идеологии и архитектуре, объединяющих различные версии этой операционной системы.
В книге рассматриваются: архитектура ядра UNIX (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс UNIX (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка в UNIX (протоколов семейства TCP/IP, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).
Для широкого круга пользователей.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
fi
Команды
<i>command1</i>
<i>command2</i>
<i>условие</i>
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 <i>выражение</i>
или
[ <i>выражение</i> ]
Команда вычисляет логическое выражение (табл. 1.10) и возвращает 0, если выражение истинно, и 1 в противном случае.
Таблица 1.10. Выражения, используемые в команде test
Выражения с файлами | |
---|---|
-s <i>file</i> | Размер файла <i>file</i> |
-r <i>file</i> | Для файла <i>file</i> |
-w <i>file</i> | Для файла <i>file</i> |
-x <i>file</i> | Для файла <i>file</i> |
-f <i>file</i> | Файл <i>file</i> |
-d <i>file</i> | Файл <i>file</i> |
-с <i>file</i> | Файл <i>file</i> |
-b <i>file</i> | Файл <i>file</i> |
-р <i>file</i> | Файл <i>file</i> |
-u <i>file</i> | Файл <i>file</i> |
-g <i>file</i> | Файл <i>file</i> |
-k <i>file</i> | Файл <i>file</i> |
Выражения со строками | |
-z <i>string</i> | Строка <i>string</i> |
-n <i>string</i> | Длина строки <i>string</i> |
<i>string1</i> = <i>string2</i> | Две строки идентичны |
<i>string1</i> != <i>string2</i> | Две строки различны |
Сравнение целых чисел | |
<i>i1</i> -eq <i>i2</i> | <i>i1</i> <i>i2</i> |
<i>i1</i> -ne <i>i2</i> | <i>i1</i> <i>i2</i> |
<i>i1</i> -lt <i>i2</i> | <i>i1</i> <i>i2</i> |
<i>i1</i> -le <i>i2</i> | <i>i1</i> <i>i2</i> |
<i>i1</i> -gt <i>i2</i> | <i>i1</i> <i>i2</i> |
<i>i1</i> -ge <i>i2</i> | <i>i1</i> <i>i2</i> |