
- •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. Список вопросов
Практическое занятие. Работа с файлами в unix
Цель занятия: знакомство с командной строкой UNIX, командами по работе с файловой системой и командами обработки текстовых файлов.
Изучаемые команды: cat, cd, cp, cut, echo, find, grep, head, ln, ls, mkdir, mv, paste, pwd, sort, tail, tar, touch, uniq, wc
Сценарий: Знакомство с каталогами unix
В этом сценарии будет освещено знакомство с командами UNIX, изучение файловой системы и базовых каталогов, создание рабочей среды в домашнем каталоге пользователя для выполнения всех последующих команд.
Начальные условия: Командная строка после входа в систему.
Получить имя текущего каталога с помощью команды pwd:
[user@localhost ~]$ pwd
/home/user/
Перейти в корневой каталог с помощью команды cd /:
[user@localhost ~]$ cd /
[user@localhost /]$ pwd
/
Отметить, как изменилась строка приглашения.
Посмотреть содержимое корневого каталога с помощью команды ls:
[user@localhost /]$ ls
bin dev home lib mnt proc sbin sys usr
boot etc image media opt root srv tmp var
Сравнить с использованием «расширенного» вывода команды ls -F:
[user@localhost /]$ ls -F
bin/ dev/ home/ lib/ mnt/ proc/ sbin/ sys/ usr/
boot/ etc/ image/ media/ opt/ root/ srv/ tmp/ var/
Каталоги отмечаются синим цветом и знаком «/» после имени.
Посмотреть содержимое домашнего каталога с помощью команды ls ~:
[user@localhost /]$ ls ~
Documents tmp
Домашний каталог содержит набор стандартных каталогов.
Вернуться в домашний каталог с помощью cd без параметров:
[user@localhost /]$ cd
[user@localhost ~]$
Создать каталог test с помощью команды mkdir test:
[user@localhost ~]$ mkdir test
Посмотреть обновлённое содержимое домашнего каталога ls:
[user@localhost ~]$ ls
Documents test tmp
Создать подкаталог subtest в каталоге test командой mkdir test/subtest:
[user@localhost ~]$ mkdir test/subtest
Посмотреть содержимое домашнего каталога и его подкаталогов с помощью ключа рекурсивного просмотра -R в команде ls -R:
[user@localhost ~]$ ls -R
.:
Documents test tmp
./Documents:
./test:
subtest
./test/subtest:
./tmp:
Сценарий: Изучение типов файлов в unix
В этом сценарии рассматриваются типы файлов в UNIX: простые файлы, каталоги, ссылки. Изучаются команды создания и копирования файлов. Показывается разница между жесткими и символическими ссылками, между копированием и переносом файла.
Начальные условия: Командная строка. Каталог test после предыдущего сценария.
Cоздать пустой файл с помощью команды touch first.txt:
[user@localhost test]$ touch first.txt
[user@localhost test]$ ls
first.txt subtest
Добавить строку текста в конец файла с помощью команды echo "Hello, world" >> first.txt и перенаправления вывода:
[user@localhost test]$ echo "Hello, world" >> first.txt
Посмотреть содержимое файла с помощью команды cat first.txt:
[user@localhost test]$ cat first.txt
Hello, world
[user@localhost test]$
Посмотреть расширенную информацию о каталоге, используя ключ -l команды ls. ls -l test:
[user@localhost test]$ ls -l
total 4
-rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt
drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest
Добавить псевдоним командной оболочки, чтобы сократить размер команды, с помощью команды alias ls='ls -F -l':
[user@localhost test]$ alias ls='ls -F -l'
[user@localhost test]$ ls test
total 4
-rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt
drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest
Посмотреть глубже на каталог test, используя ключи -a и -i. ls -a -i
[user@localhost test]$ ls -a -i
total 4
1014 drwxr-xr-x 3 user user 100 Feb 14 20:07 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Первый столбец — номера индексных узлов файловой системы. Третий столбец — число жёстких ссылок файла.
Скопировать файл с помощью команды cp first.txt copy1.txt:
[user@localhost test]$ cp first.txt copy1.txt
[user@localhost test]$ ls -a -i
total 8
1014 drwxr-xr-x 3 user user 120 Feb 14 20:33 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt
1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 first.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Новый файл имеет свой собственный индексный узел.
Переименовать файл с помощью команды mv first.txt orig.txt. mv first.txt orig.txt:
[user@localhost test]$ mv first.txt orig.txt
[user@localhost test]$ ls -a -i
total 8
1014 drwxr-xr-x 3 user user 120 Feb 14 20:37 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt
1081 -rw-r--r-- 1 user user 13 Feb 14 20:12 orig.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Отметим, что изменилось только имя файла, все остальные атрибуты остались прежними.
Создать жёсткую ссылку командой ln orig.txt copy2.txt:
[user@localhost test]$ ln orig.txt copy2.txt
[user@localhost test]$ ls -a -i
total 12
1014 drwxr-xr-x 3 user user 140 Feb 14 20:41 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt
1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 copy2.txt
1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 orig.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Добавилась ещё одна ссылка на тот же файл, число ссылок увеличилось на 1.
Создать символическую ссылку командой ln -s orig.txt orig.lnk:
[user@localhost test]$ ln -s orig.txt orig.lnk
[user@localhost test]$ ls -a -i
total 12
1014 drwxr-xr-x 3 user user 160 Feb 14 20:45 ./
941 drwx------ 8 user user 340 Feb 14 19:28 ../
1082 -rw-r--r-- 1 user user 13 Feb 14 20:33 copy1.txt
1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 copy2.txt
1083 lrwxrwxrwx 1 user user 8 Feb 14 20:45 orig.lnk -> orig.txt
1081 -rw-r--r-- 2 user user 13 Feb 14 20:12 orig.txt
1015 drwxr-xr-x 2 user user 60 Feb 14 19:42 subtest/
Новый файл имеет новый индексный узел и размер, равный имени файла orig.txt.
Сравним содержимое файлов при обращении к ним по имени:
[user@localhost test]$ cat orig.txt
Hello, world.
[user@localhost test]$ cat copy2.txt
Hello, world.
[user@localhost test]$ cat orig.lnk
Hello, world.
К одним и тем же данным можно обратиться через жесткую или символическую ссылку.