
Министерство образования Российской Федерации
Саратовский государственный технический университет
Работа с пакетными файлами в среде qnx
Методические указания к лабораторной работе
по курсу «Операционные системы»
для студентов специальности 220200
дневной формы обучения
Одобрено
редакционно-издательским советом
Саратовского государственного
технического университета
Саратов 2010
РАБОТА С ПАКЕТНЫМИ ФАЙЛАМИ
В СРЕДЕ QNX
Методические указания к лабораторной работе
по курсу «Операционные системы»
-
Составили:
ПЕТРОВ Дмитрий Юрьевич
МАКСИМОВА Наталия Николаевна
БАРЫШНИКОВА Елена Сергеевна
Рецензент А.Ф. Резчиков
Редактор О.А. Панина
Лицензия ИД № 06268 от 14.11.01
Подписано в печать 27.10.10 Формат 60х84 1/16
-
Бум. тип.
Усл. печ. л. 0,93 (1,0)
Уч.- изд. л. 0,9
Тираж 100 экз.
Заказ
Бесплатно
Саратовский государственный технический университет
410054 г. Саратов, ул. Политехническая, 77
Введение
В методических указаниях рассматриваются структура пакетных файлов, методика создания этих файлов.
Методические указания содержат описание интерпретатора команд, структуры пакетных файлов, описание функций, используемых в командных файлах, примеры решений учебной задачи, задание для выполнения лабораторной работы, требования к оформлению отчета по лабораторной работе, а также список литературы, необходимой для выполнения данной лабораторной работы.
Методические указания предназначены для студентов специальности 220200, а также могут быть использованы студентами других специальностей, связанных с разработкой системных программ.
Цель работы: создание пакетных файлов, автоматизирование выполнение нескольких заданий, оптимизация и повышение надежности функционирования системы.
Интерпретаторы команд и пакетные файлы в qnx
Командных интерпретаторов существует несколько. В QNX стандартным считается интерпретатор Korn Shell (ksh). Хотя, вы можете использовать и другие, такие как C-Shell (csh) или Bourn Vgain Shell (bash). Для систем с ограниченными ресурсами можно использовать Embedded Shell (esh) или Fat Embedded Shell (fesh).
Если регистрация пользователя в системе была выполнена с помощью командно-строковой утилиты login, то программа регистрации запустила входной Shell. Она определяет какой командный интерпретатор запускать на основе информации записаной в базе данных пользователей. По умолчанию в систем есть только один пользователь "root" и его интерпретатор — ksh.
Пользователей, привыкших работать в Windows, обычно не вдохновляет работа в командной строке. Командная строка в UNIX-подобных системах — весьма мощное средство управления системой. Некоторые наиболее используемые команды приведены в табл. 1.
Большинство стандартных QNX-утилит содержат краткую информацию об аргументах запуска утилиты. Для просмотра этой информации существует команда use. Например, для просмотра информации по использованию утилиты ls выполните такую команду: use ls.
При работе в командной строке важную роль играют так называемые переменные системного окружения. Список этих переменных можно получить командой set.
Таблица 1
Основные команды QNX
Что нужно сделать? |
Команда |
Что нужно сделать? |
Команда |
В каком каталоге находимся Просмотр содержимого каталога Перейти в другой каталог Создать пустой файл Создать каталог Информация о потоках Информация о процессах Запуск текстового редактора Запуск в режиме демона Запуск связи с целевой системой |
pwd ls cd touch mkdir pidin ps ped ped & qconn |
Копировать файл Копировать каталог Удалить файл Удалить каталог Просмотреть файл Переименовать файл Удалить процесс Удалить процесс Справка по команде Управление выводом |
cр cр –r rm rmdir, rm –r cat mv kill slay use >, >>, <, | |
Таблица 2
Имя переменной |
Что означает переменная |
НОМЕ Path LD_LIBRARY_PATH IFS LOGNAME PWD PS1 PS2 UID TZ ? |
Домашний каталог пользователя Перечень каталогов для поиска запускаемых программ Перечень каталогов для поиска динамических библиотек Разделитель полей ввода Имя пользователя Имя текущего каталога Вид первичного приглашения Вид вторичного приглашения (для ввода незаконченной команды) Идентификатор пользователя Временной пояс Код завершения последней выполненной команды |
Изменять значения переменных в Korn Shell очень просто — надо выполнить присваивание:
ПЕРЕМЕННОЙ=значение переменной
Однако присвоенное таким образом значение будет иметь смысл только в данной работающей оболочке. Для того чтобы переменная распространялась на все запущенные процессы, используют такую команду:
port ИМЯ_ПЕРЕМЕННОЙ
Можно экспортировать переменную непосредственно при создании:
Export ИМЯ_ПЕРЕМЕННОЙ= ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ
Просмотреть значение одной из переменных (чтобы не выводить весь список) можно такой командой:
echo $ИМЯ__ПЕРЕМЕННОЙ
При запуске в качестве входной оболочки (login shell) Korn Shell выполняет команды, содержащиеся в файле /etc/profile, затем команды, содержащиеся в файле $номе/.profile. Разумеется, если эти файлы существуют и доступны по чтению. Для того чтобы при входе в систему автоматически устанавливались необходимые переменные, необходимо откорректировать файл .profile, лежащий домашнем каталоге. Для этого можно, например, воспользоваться редактором vi.
Для создания нового командного файла необходимо выполнить команду touch <имя файла> (например, touch d) и затем открыть созданный пустой файл в текстовом редакторе ped (например, ped d). В текстовом редакторе необходимо набрать следующий текст:
#!/bin/sh
ls
touch cc
ls
rm cc
ls
Затем сохранить файл, закрыть редактор. Если запустить пакетного файла так: # d, то ОС не находет файл и он не выполниться. Если указать полный путь, так: # ./d, то файл ОС найдет, но не сможет исполнить, так как у него не установлен атрибут исполняемого файла. Команда chmod 777 d устанавливает все необходимые атрибуты. Теперь запуск пакетного файла: # ./d обеспечит его успешное выполнение.
Таблица 3
Сравнение команд QNX и MS-DOS
QNX |
Назначение команды |
MS-DOS |
mkdir a1 |
Создать каталог с именем a1 |
md a1 |
ls |
Вывод на экран содержимого каталога |
dir |
cd a1 |
Перейти в каталог a1 |
cd a1 |
pwd |
Выводит имя текущего каталога |
- |
touch aa |
Создание нового файла |
copy con aa |
ls |
Вывод на экран содержимого каталога |
dir |
cat aa |
Вывод содержимого файла на экран |
type aa |
ped aa |
Отредактировать файл aa |
edit aa |
cat aa |
Просмотреть на экране содержимое файла aa |
type aa |
ls > bb |
Перенаправить вывод команды ls в файл bb |
dir > bb |
cat bb |
Просмотреть на экране содержимое файла bb |
type bb |
ls |
Вывод на экран содержимого каталога |
dir > bb |
ls >> bb |
Перенаправить вывод команды ls в файл bb |
dir >> bb |
cat bb |
Просмотреть на экране содержимое файла bb |
type bb |
ls > bb |
Перенаправить вывод команды ls в файл bb |
dir > bb |
cat bb |
Просмотреть на экране содержимое файла bb |
type bb |
rm bb |
Удаление файла bb |
del bb |
cd . |
Переход из каталога сам в себя |
cd . |
cd .. |
Переход в родительский католог |
cd .. |
cd / |
Переход в корневой католог |
cd / |
Подробнее примеры работы в командной строке и применения потоков ввода/вывода и конвееров рассмотрено в книге «QNX Momentics. Основы применения» [1 стр. 40-51].