
- •Unix: учебный курс Алексей Федосеев
- •Несколько слов об этом курсе
- •Методические рекомендации Введение для лектора
- •Порядок изучения материалов
- •Часть I. Лекции Глава 1. Введение в операционную систему unix
- •Основные концепции операционных систем Обзор компьютерных систем
- •Назначение операционной системы
- •Операционная система как виртуальная машина
- •Операционная система как менеджер ресурсов
- •Архитектура операционной системы
- •Монолитная операционная система
- •Микроядерная операционная система
- •Место unix в истории вычислительных систем
- •Что было до операционных систем
- •Операционные системы для мэйнфреймов
- •Появление операционной системы unix
- •Развитие операционных систем в глобальных сетях
- •Операционные системы для персональных компьютеров
- •Операционные системы для встраиваемых систем
- •Такой разный unix
- •Классификация операционных систем по назначению
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Архитектура unix. Файлы и устройства Особенности архитектуры unix
- •Два кита unix: файлы и процессы
- •Беглый взгляд на архитектуру unix
- •Ядро unix
- •Файловая система unix
- •Особенности файловой системы
- •Виртуальная файловая система
- •Дерево каталогов
- •Устройства и драйверы
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Архитектура unix. Процессы
- •Управление памятью
- •Управление процессами
- •Контекст процесса
- •Планирование процессов
- •Создание новых процессов
- •Процессы и потоки
- •Межпроцессное взаимодействие
- •Разделяемая память
- •Переменные окружения
- •Сигналы
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Глава 2. Использование unix
- •Терминал и командная строка
- •Терминал
- •Управляющие символы
- •Одновременный доступ к системе
- •Командная строка
- •Командная оболочка
- •Приглашение
- •Команды
- •Параметры
- •Шаблоны
- •Перенаправление ввода и вывода
- •Программное окружение
- •Стандартные переменные окружения
- •Служебные символы
- •Процесс выполнения команды
- •Возвращаемое значение
- •Эффективное использование командной строки
- •Редактирование командной строки
- •История команд
- •Автодополнение
- •Средства объединения команд
- •Справочная подсистема
- •Страницы руководства
- •Поиск по руководствам
- •Программа info
- •Документация, поставляемая с программой
- •Интегрированные системы документации
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Введение в безопасность unix
- •Основы информационной безопасности
- •Политика безопасности
- •Управление доступом
- •Аутентификация и авторизация
- •Концепции безопасности unix
- •Пользователи и группы
- •Права доступа
- •Разделяемые каталоги
- •Подмена идентификатора процесса
- •Ограничения базовой модели доступа и её расширения
- •Суперпользователь
- •Аутентификация пользователей
- •Управление пользователями и правами доступа База данных пользователей системы
- •Изменение базы данных пользователей
- •Изменение прав доступа
- •Ограничения сеанса пользователя
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Сеть в unix
- •Введение в сети
- •Семиуровневая модель osi
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Протоколы Internet: tcp/ip
- •Сетевой интерфейс в unix
- •Конфигурация ip-сетей Сетевой адрес
- •Маршрутизация
- •Служебный протокол icmp
- •Информация о соединениях
- •Настройка сети при загрузке системы
- •Службы Internet Служба доменных имён
- •Удалённый терминал
- •Прокси-серверы
- •Межсетевой экран
- •Концепции iptables
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Глава 3. Базовое администрирование unix
- •Управление службами
- •Загрузка операционной системы Этапы загрузки системы
- •Процесс init
- •Конфигурационный файл init
- •Различия в загрузке unix-подобных систем
- •Системы, наследующие System V
- •Системы, наследующие bsd
- •Системы со смешанной схемой загрузки
- •Системные службы
- •Запуск и остановка служб
- •Автоматическая загрузка служб
- •Какие бывают службы
- •Служба планирования заданий
- •Конфигурация планировщика заданий
- •Запуск программ
- •Сетевые службы
- •Мониторинг и журналирование
- •Служба системного журнала
- •Основные системные журналы
- •Ротация системных журналов
- •Мониторинг пользователей
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Управление программным обеспечением
- •Управление программным обеспечением: роли и задачи Основные роли в создании и использовании по
- •Задачи системы управления программным обеспечением
- •Формы распространения программного обеспечения в двоичной форме или в исходных текстах?
- •Сборочные процедуры как средство управления по
- •Дистрибутивы
- •Дистрибутивы, основанные на сборке программ из исходных текстов
- •Дистрибутивы, основанные на двоичных пакетах
- •Управление пакетами
- •Задачи менеджера пакетов
- •Менеджер пакетов rpm
- •Работа с репозитариями пакетов: apt
- •Источники программ (репозитории)
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Часть II. Практические занятия
- •Глава 4. Практические занятия по командам unix
- •Методические указания по основным командам unix
- •Команды по работе с файловой системой
- •Команды по работе с текстом
- •Команды, использующие регулярные выражения
- •Практическое занятие. Работа с файлами в unix
- •Сценарий: Знакомство с каталогами unix
- •Сценарий: Изучение типов файлов в unix
- •Сценарий: Поиск системных журналов
- •Сценарий: Архивирование и деархивирование файлов и каталогов
- •Сценарий: Cоздание новых текстовых файлов
- •Сценарий: Разрезание и склеивание файлов
- •Сценарий: Быстрый анализ текстов
- •Сценарий: Поиск строк по регулярным выражениям
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Работа с файлами в unix
- •Методические указания по командам управления системой в unix Команды получения сведений о системе
- •Команды по работе с процессами
- •Практическое занятие. Сбор сведений о системе и управление процессами
- •Сценарий: Сбор сведений о системе
- •Сценарий: Управление процессами с помощью сигналов
- •Сценарий: Выполнение задач в фоновом режиме
- •Сценарий: Запуск демонов
- •Сценарий: Изменение приоритетов выполняющихся программ
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Сбор сведений о системе и управление процессами
- •Глава 5. Практическое занятие по безопасности unix
- •Методические указания по командам управления безопасностью в unix Команды по управлению правами
- •Команды по управлению пользователями
- •Практическое занятие. Управление доступом. Управление пользователями Сценарий: Вход в систему и завершение сеанса
- •Сценарий: Изучение базовых прав доступа
- •Сценарий: Переход в режим суперпользователя
- •Сценарий: Изучение базы данных пользователей
- •Сценарий: Добавление и удаление пользователей
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Управление доступом. Управление пользователями
- •Глава 6. Практические занятия по сетям в unix
- •Методические указания по командам управления сетью в unix Команды по конфигурированию сети
- •Команды по диагностике сети
- •Сценарий: Настройка таблицы маршрутизации
- •Сценарий: Изучение службы доменных имён
- •Сценарий: Простая диагностика работы сети
- •Сценарий: Работа по удалённому терминалу
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Управление сетью
- •Практическое занятие. Расширенная диагностика и настройка сети
- •Сценарий: Сканирование локальной сети
- •Сценарий: Сканирование удалённых хостов
- •Сценарий: Настройка сетевого экрана
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Расширенная диагностика и настройка сети
- •Глава 7. Обзор прикладных программ
- •Программы сетевого обмена sendmail: программа отправления почты
- •Параметры команды
- •Wget: консольный загрузчик файлов
- •Параметры команды
- •Настройка
- •Глава 8. Практические занятия по базовому администрированию unix
- •Методические указания по командам управления службами и журналами Текстовые редакторы
- •Рабочий экран
- •Управляющие клавиши
- •Встроенные команды
- •Настройка
- •Рабочий экран
- •Управляющие клавиши
- •Встроенные команды
- •Настройка
- •Режимы работы
- •Команды по управлению службами
- •Команды по мониторингу пользователей
- •Практическое занятие. Управление службами
- •Сценарий: Загрузка системы
- •Команды по работе с репозитарием пакетов
- •Установка или обновление пакета
- •Удаление установленного пакета
- •Обновление всех установленных пакетов
- •Поиск пакетов
- •Приложение a. Список вопросов
Рабочий экран
Верхнюю строку занимает строка состояния, в которой содержится следующая информация (слева-направо):
состояние нажатых управляющих клавиш;
имя редактируемого файла;
информация об изменениях (например, «Read Only» или «Modified»);
положение курсора (строка и колонка);
текущее время;
руководство к помощи.
Если открыто несколько файлов, каждый из них будет сопросождаться таким заголовком.
Основной объём экрана занимает рабочая область редактирования текста. Курсор может перемещаться с помощью стандартных клавиш: стрелок, PgUp / PgDn и т.п..
Внизу экрана находится командная строка, в которой выводятся вопросы или сообщения редактора.
Управляющие клавиши
Большинство комбинаций построено на основе сочетания клавиш Ctrl-K. Например, для закрытия файла с сохранением – Ctrl-K-X. Для отмены операций и для выхода без сохранения используется Ctrl-C.
При нажатии Ctrl-K-H можно получить справку по существующим сочетаниям клавиш и командам.
Для выделения областей используются комбинации Ctrl-K-B и Ctrl-K-K. Выделенный текст можно копировать с помощью Ctrl-K-С.
Встроенные команды
Редактор joe имеет ряд встроенных команд. При этом joe может быть запущен в качестве потокового редактора, когда на стандартный вход подаётся последовательность команд по изменению или созданию текста.
Для вычисления простых математических функций и выражений используется встроенный калькулятор, вызываемый по нажатию ESC-M.
Настройка
Конфигурация редактора хранится в директории /etc/joe/ и включает в себя настройки редактора, клавиш управления, подсветки синтаксиса и т.д..
vi
Редактор vi является одним из самых распространённых текстовых редакторов для различных версий UNIX. Администратору необходимо овладеть хотя бы основами этого редактора, так как найти его можно практически в любой UNIX-системе.
Как и с другими экранными редакторами, чтобы открыть файл, достаточно набрать vi имя_файла.
Режимы работы
Основной особенностью редактора vi является наличие режимов работы. Основным режимом является режим команд, в котором нажатия на клавиши задают команду редактору. Для реактирования текста удобно применять режим вставки, в котором курсор может перемещаться по редактируемому тексту, вставлять или удалять символы.
В начале работы редактор находится в командном режиме, а для перехода в режим редактирования необходимо ввести команду i (insert) или a (append) – для вставки текста перед и после курсора соответственно. Для возвращения в командный режим используется клавиша ESC.
В командном режиме все нажатия клавиш воспринимаются как команды. Длинные команды удобно набирать в командной строке – в последней строке экране, куда можно перейти при нажатии «:».
Полезные команды
Для простейшей работы с редакторомv vi достаточно знать несколько команд.
Команда :w сохраняет текущие изменения в файле, при необходимости запрашивая имя файла. С помощью команды :q можно выйти из редактора, но только если файл не был изменён – иначе, придётся добавлять к команде специальный модификатор «!»: :q! – для выхода без сохранения.
Версии редактора
Существует несколько версий редактора vi. Одним из самых распространённых является редактор vim: «усовершенствованный» vi. Возможности его очень широки и включают разнообразные режимы редактирования для разных языков, подсветку синтаксиса и т.п..
Дополнительная информация
Текстовым редакторам vi и vim посвящено множество книг и материалов в сети Internet, рекомендуется обратить внимание на книги указанные в разделе «Дополнительные материалы».
Команды по управлению системой
init
Команда init служит для переключения уровня выполнения операционной системы (см. раздел «Системы, наследующие System V»). init – первая команда, запускаемая сдром операционной системы. Пользователь имеет возможность с помощью её запуска переключать уровень выполнения без перезагрузки. Для запуска этой команды необходимы права суперпользователя.
Команда init имеет следующий вид:
init [уровень]
Параметры загрузки системы на определённых уровнях зависят от конкретной UNIX-системы, и обычно задаются в файле /etc/inittab.
Для переключения системы в альтернативный уровень исполнения, необходимо передать его как параметр запуска init:
desktop test # init 1
...
После выполнения этой команды, система переключается в первый уровень выполнения, так называемый однопользовательский режим (single user mode).
В большинстве Linux-систем чаще всего используются 1-й, 3-й и 5-й уровни выполнения. Переключение между 3-м и 5-м уровнем используется при изменениии вида входа в систему – в текстовой консоли или в графической подсистеме соответственно. Первый уровень исполнения служит для конфигурации системы в ограниченном однопользовательском режиме. Команду init можно использовать также для выключения системы или перезагрузки – переведя её в 0-й или 6-й уровень выполнения соответственно, но чаще для этого используются специальные команды (см. ниже).
В некоторых UNIX-системах для переключения уровня выполнения используется команда telinit, которая может предоставлять более гибкий интерфейс переключения уровня исполнения.
shutdown
Команда shutdown является универсальным интерфейсом для отсановки и перезапуска операционной системы. Команда имеет следующий вид:
shutdown [-t секунды] [-k | -r | -h] [-p] время [сообщение]
Для запуска этой команды необходимы права суперпользователя.
В UNIX-системах с уровнями выполнения команда shutdown в зависимости от параметров фактически переводит систему в один из трёх уровней исполнения:
-k
Не производить переключение или перезагрузку, а только отправить сообщение пользователям системы.
-r
Перезагружает систему (переключает в 6-й уровень выполнения).
-h
Останавливает систему (переключает в 0-й уровень выполнения). Вместе с этим параметром в некоторых системах может использоваться параметр -p, который указывает операционной системе необходимость выключения питания компьютера (с использованием APM или ACPI).
без указанных параметров
Система переключается в 1-й уровень выполнения (однопользовательский режим).
Еще одним возможным параметром выполнения команды является время (-t) в секундах, которое дожно пройти в процессе выключения или переагрузки системы между отправлением процессам сигналов SIGTERM и SIGKILL.
Обязательным параметром команды shutdown является время, в которое необходимо произвести данное выключение или перезагрузку. Если необходимо произвести её в данный момент, то вместо времени можно указать слово «now». Также можно указать сообщение, которое будет отправлено всем пользователям системы – для уведомления пользователей о предстоящей перезагрузке. Если сообщение явно не указывается, система отправит всем пользователям стандартное сообщение.
Рассмотрим примеры использования программы:
desktop test # shutdown -r 22:00 "The system will be rebooted in 30 minutes!"
...
Эта команда производит перезагрузку системы в 22:00.
desktop test # shutdown -ph now
...
Эта команда выключает систему сразу после выполнения команды.
halt, poweroff, reboot
Эти команды являются сокращением указанных выше опций команды shutdown и соответсвенно останавливают систему, останавливают с выключением питания и перезагружают систему непосредственно после выполнения команды. Для запуска этих команд необходимы права суперпользователя.