Skip to Content

Операционная система UNIX

(Перед разархивированием убрать из названия файла архива символы между "tar" и ".gz".)

 

Программа практических занятий

  • 14.09.2023

Установочное занятие: изучение приемов повышения эффективности работы (см. ссылку на файл выше). Настройка рабочего места в зале 2444.

  • 28.09.2023

Команда ls с параметрами и без, со всеми ключами во всевозможных комбинациях. Исследование с ее помощью дерева директорий файловой системы.

Глобальные символы и шаблоны с командами ls и echo.

Команды cp, mv, rm. Упражнения на копирование и переименование директорий (обстоятельства, влияющие на результат: существует ли целевая директория, существует ли в целевой директории поддиректория с именем исходной диектории, пуста ли эта поддиректория, какая команда - cp или mv, совпадют ли имена исходной и целевой директорий).

Упражнения на временные штампы в директории /tmp и в своей домашней директории: 1) проследить временные штампы при редактировании и просмотре файлов; 2) при использовании cp сравнить все три временных штампа у оригинального файла до и после применения команды и у файла-копии; 3) проверить, что будет с временными штампами при переименовании - mv.

  • 05.10.2023

Команды работы с директориями: mkdir, cd, rmdir; dirs, pushd, popd.

Вьюеры (cat, more, less, mcview), система команд less.

Новые специальные символы: ; $ {,}. Отмена специального значения символов: \, кавычки ' ' и " ".

Командная подстановка: старый (кавычки ` `) и новый стили.

  • 12.10.2023

Командная подстановка: повторное и кратное применение подстановки (гнездование) для старого и нового стилей.

Команда grep, регулярные выражения. Команда sort, совместное применение sort и ls -l.

Команда find с отдельными ключами и комбинациями ключей. Использование find в виде командной подстановки в команде ls; использование `pwd` при работе с find, пример гнездования при совместном использовании ls, find и pwd.

Команда chmod. Тестовые упражнения на изменение прав доступа. Настроить права доступа к своей домашней директории!

Линки: создание и работа с жесткими и мягкими линками. Мягкие линки в / и /dev. Создание цепей линков.

  • 25.10.2023

Команды diff, tail, head, wc, file.

Работа с устройствами, имеющими файловую систему: команды mount, dmesg и df.
Команда du.

Средства оболочки на специальных клавишах клавиатуры. Завершение (completion); история команд, C-r; листание
выдачи на терминал ([Shift]-[PgUp], [Shift]-[PgDn]). Команды редактирования командной строки: C-a, C-e, M-f (C-[--->]),
M-b (C-[<---]), C-k, C-u, M-d, M-[Backspace]}, C-y, C-_.

Переадресация ввода-вывода. Стандартные устройства stdin, stdout, stderr и стандартный ввод-вывод.
Перенаправление (переадресация) ввода-вывода: операторы переадресации <, >, 2>, сдвоенные операторы >>, 2>>; слияние stdout и stderr с перенаправлением в файл &> и перенаправление stderr в stdout без обязательного перенаправления в файл 2>&1.

  • 02.11.2023

Переадресация ввода-вывода. Конвейер (|). Встроенные документы (<<). Чтение аргументов со stdin: команда xargs. Устройство /dev/null.

Midnight commander. Настройка X-терминала для повышения эффективности работы в mc (см. "Приемы повышения эффективности работы", п. 2). Общий стиль работы под mc: перемещения двух курсоров, F-клавиши, строка подсказки,
выделение списка файлов, [F9] — главное меню mc (другие команды и настройка). Отображение типов и других атрибутов
файлов: включение в залах 2444 (см. "Приемы...", п. 8). Англоизация mc. "Горячие клавиши": C-o; C-r; M-p, M-n; [Esc],[Tab]; M-s; M-[Enter]; C-x,t; C-x,p (M-a), C-x,C-p; M-i; M-y, M-u; C-\ ("горячие директории"); M-t; [F9],c,c,t (детальное сравнение двух директорий); M-? (функции команд find и grep). Стандартные  реакции на расширения.

Переменные оболочки. Заведение переменных, способы ссылки на их значения.
Нестандартное раскрытие  переменной (длина значения, удаление части значения переменной по
шаблону, выделение подстроки). Команда export, cоздание переменных в ~/.bash_profile.

  • 09.11.2023

Отладка и модификации скрипта, написанного в аудитории: реакция на ошибки (отсутствие
параметров, их неполное число), синопсис, усложнения.

  • 23.11.2023

Программирование на языке shell

Переменные оболочки. Присвоение значений для исполнения команды. Общий шаблон simple command.
Команда readonly. Переменные окружения. Команды set и unset. locale как приложение и команда.

Код завершения команды. Специальный параметр ?.

Команды test, true, false, expr, bc, date, sleep, eval, cut, gawk, sed, paste, seq.

Последовательности команд. Работа с разделителями  конвейеров в списке.

Скрипты, способы их выполнения.

Команда alias.

Структуры if, while, until, for, case; операторы прерывания continue, break, exit.

Написание тренировочных скриптов (см. п. "Тренировочные задания..." выше).

Координатор make

Написать и отладить простейший мэйкфайл (makefile), осуществляющий сборку и исполнение программы, состоящей по крайней мере из двух исходных модулей (содержание программы может быть произвольным). В этом варианте можно не использовать средства автоматизации.

На примере написанного мэйкфайла изучить алгоритм работы координатора (программы) make. Использовать команду touch, ключ -n для make и явное (не по умолчанию) указание главной цели (-ей).

  • 30.11.2023

Координатор make

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

  1. Обычные переменные мэйкфайла.
  2. Автоматические переменные.
  3. Шаблонные правила.
  4. Функции манипуляции с текстом wildcard и patsubst. Написать и отладить  вариант мэйкфайла, в котором список объектных файлов,  необходимых для создания исполнимого файла программы, строится автоматически.

Переместить хотя бы один исходный модуль в другую директорию. Написать и отладить два варианта мэйкфайла, правильно собирающего программу, зависящую от исходного модуля (или модулей), не находящихся в текущей директории. Один вариант -  с использованием функции notdir и переменной VPATH, другой - без использования этих функции и переменной. Сравнить результаты  работы двух вариантов.

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

По желанию, освоить модификацию мэйкфайла для работы с фортрановскими модулями (*.mod).

Управление процессами

Команда ps с различными ключами. Поиск процессов по имени команды. Команда top.

Режимы переднего плана и фоновый. Управление процессами в этих режимах: управляющие комбинации C-c и C-z; команды
jobs, fg, bg.

Управление процессами при помощи команды kill.

Освоение запуска программ под приложением screen.

Архивирование и упаковка файлов.  Команда tar, работа с алгоритмами Lempel-Ziv (LZ77/LZ78) и Burrows-Wheeler. Упаковщики gzip, bzip2. Архиватор и упаковщик zip.
 

  • 07.12.2023

Сетевые адреса. Установление адресов локальной и удаленных компьютерных систем: работа с командами hostname, ifconfig, host.

Удаленные команды: ping, ssh (удаленная регистрация) и scp (удаленное копирование). Организация выполненения программы в удаленной системе; работа в удаленной системе с менеджером screen в комбинации с ssh. Средства отслеживания удаленной работы других пользователей на локальной системе (last, ps, top).

Работа с URL. Команда wget (удаленное копирование ресурса сети WWW).

Дополнительное время для освоения ранее пройденного материала.

  • С 14.12.2023

Подготовка к зачету. Очная сдача общей части курса и зачетных программных продуктов (скрипт и makefile).

  • 26.12.2023: день зачета.