- •Кафедра автоматики и электроники в машиностроении
- •Введение
- •Лабораторная работа № 1
- •Контрольные вопросы
- •Методические указания к работе
- •Основные назначения командного интерпретатора в ос unix
- •Синтаксис языка Bourne Shell
- •Общий синтаксис скрипта
- •Переменные
- •Встроенные переменные
- •Перенаправление ввода-вывода
- •Логические операции в контексте test
- •Условный оператор "if"
- •Оператор выбора case
- •Оператор цикла с перечислением for
- •Оператор цикла с истинным условием while
- •Задание 4.
- •5. Команда cat.
- •Задание 5.
- •6. Простейшие команды работы с файлами: cp, rm, mkdir, mv
- •Задание 6.
- •Задание 7.
- •Системные вызовы getuid и getpid
- •Задание 8.
- •Контрольные вопросы
- •Лабораторная работа № 3.
- •Методические указания к работе Иерархия процессов
- •Прототипы системных вызовов
- •Создание процесса в unix
- •Прототип системного вызова
- •Завершение процесса. Функция exit() Прототип функции
- •Описание функции
- •Параметры функции main() в языке с Переменные среды и аргументы командной строки
- •Задание 3.
- •Прототипы функции
- •Описание функций
- •Системный вызов wait():
- •Задание 4.
- •Варианты:
- •Контрольные вопросы
- •Лабораторная работа № 4
- •Методические указания Понятие о потоке ввода-вывода
- •Понятие о работе с файлами через системные вызовы и стандартную библиотеку ввода-вывода для языка с
- •Файловый дескриптор
- •Открытие файла
- •Системный вызов open Прототип системного вызова
- •Описание системного вызова
- •Возвращаемое значение
- •Системные вызовы read(), write().
- •Прототипы системных вызовов:
- •Описание системных вызовов
- •Возвращаемые значения
- •Особенности поведения при работе с файлами
- •Описание системного вызова
- •Возвращаемые значения
- •Пример программы для записи информации в файл
- •Понятие неименованного канала. Системный вызов pipe()
- •Важное отличие pip'a от файла заключается в том, что прочитанная информация немедленно удаляется из него и не может быть прочитана повторно.
- •Описание системного вызова
- •Возвращаемые значения
- •Организация связи через pipe между процессом-родителем и процессом-потомком.Наследование файловых дескрипторов при вызовах fork() и ехес().
- •Пример программы для организации однонаправленной связи между родственными процессами через pipe
- •Манипуляция таблицей дескрипторов
- •Описание системного вызова
- •Возвращаемые значения
- •Описание функции
- •Возвращаемые значения
- •Особенности поведения вызова ореn() при открытии fifo
- •Пример программы с fifo в родственных процессах
- •Контрольные вопросы
- •Филоненко Ирина Николаевна
Контрольные вопросы
Структура программы на языке С.
Назначение директивы include.
Функции для управления вводом / выводом на С.
Объясните назначение и использование системной константы EOF.
Организация статического и динамического массива в программе на С.
Организация строки в языке С.
Лабораторная работа № 2
Основы работы в OC UNIX. Работа с командным интерпретатором
Bourn Shell в интерактивном режиме.
Организация командных файлов
Цель работы
Изучить работу команд интерпретатора Bourne Shell в ОС UNIX; освоить синтаксис написания команд и организацию командного файла (скрипта) в ОС UNIX. Освоить работу в одном из текстовых редакторов UNIX (например, KWriter). С помощью языка Bourne Shell научиться составлять скрипты и работать с ними.
Содержание работы
1. Изучить программные средства языка интерпретатора Bourn Shell.
2.Ознакомиться с устройством файловой системы UNIX (упрощенное понятие). Изучить основные команды для работы с файлами, пользуясь методическими указаниями.
Выполнить в интерактивном режиме задания 16.
3. Освоить правила организации и запуска скрипта в OC UNIX.
Выполнить задание 7.
4. Освоить структуру программы на С, функции ввода/вывода.
Выполнить задание 8.
5. Составить отчет и защитить работу преподавателю, ответив на контрольные вопросы.
Методические указания к работе
Работа в современной версии ОС UNIX существенно отличается от работы с ОС UNIX пятнадцатилетней давности. Широкое распространение получил графический интерфейс, множество цветов, всевозможные графические утилиты настройки различных подсистем и т.д. Тем не менее, основой основ пользовательской среды и соответственно взаимодействия между пользователем и ОС является командная строка.
Основные назначения командного интерпретатора в ос unix
1. При регистрации пользователя в системе первой запускаемой программой является командный интерпретатор. С него начинается "жизнь" всех остальных пользовательских процессов. Рассмотрим более подробно примерную схему работы пользователя в ОС UNIX.
После запуска ОС инициализирует процесс getty (1M) (сервер терминального доступа), запускающий программу login (1), запрашивающую у пользователя имя и пароль для входа в систему.
2. Если пользователь ввел корректные имя и пароль, login(1) запустит программу, путь к которой указан в последнем поле файла passwd, как правило, являющейся командным интерпретатором.
Командный интерпретатор исполняет инициализационный файл и выдает системное приглашение на терминал. После этого пользователь может начинать свою обычную работу.
После завершения работы командного интерпретатора (например, командой exit) пользователь завершает свою работу в системе.
3. Командный интерпретатор - это удобный и простой язык программирования очень высокого уровня, позволяющий конструировать из различных утилит UNIX сложные структуры. Исполняемые файлы, содержащие команды Shell, называются скриптами.
4. При входе пользователя в систему командный интерпретатор запускает инициализационный скрипт, устанавливающий конкретное окружение пользователя, такие как тип терминала, пути поиска программ, путь к почтовому ящику и т.д. Естественно, для каждого командного интерпретатора существует свой специальный инициализационный файл.
Для командного интерпретатора Bourne Shell инициализационный файл profile.