- •Министерство образования и науки Украины
- •Практическое занятие №1
- •1.1. Сокращенная запись двоичных чисел в восьмеричной и шестнадцатеричной системах счисления
- •1.2. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные
- •1.3. Преобразование двоичных, восьмеричных и шестнадцатеричных чисел в десятичные
- •1.4. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №2
- •1.1. Вход в систему
- •1.2. Редактирование командной строки
- •1.3. Память командных строк
- •1.4. Переключение виртуальных консолей
- •1.5. Изменение консольных шрифтов
- •1.6. Основные команды
- •Выполнение некоторых команд
- •2. Команда просмотра содержимого каталогов -ls (LiSt) – выдает на экран перечень файлов и каталогов (по умолчанию из текущего каталога).
- •Жесткая ссылка обозначает ся так же, как файл, на который она ссылается, счетчик ссылок при этом будет иметь значение больше 1.
- •3. Команда создание новых каталогов - mkdir.
- •5. Команда копирование файлов -cp (CoPy).
- •6. Команда перемещение файлов - mv (MoVe).
- •7. Команда удаление файлов - rm (ReMove).
- •8. Команды просмотра содержимого файлов more и cat.
- •Подстановочные символы
- •1.7. Выход из системы
- •2. Упражнения
- •Используя справочную информацию из п.1.6 Основные команды, изучите работу рассмотренных команд с различными параметрами и опциями:
- •1.2. Перенаправление ввода и вывода
- •1.3. Перенаправление с добавлением
- •1.4. Использование конвейера
- •2. Упражнения
- •3. Содержание отчёта
- •Справочная информация
- •Практическое занятие №4 Псевдонимы команд в ос qnx Цель – создание псевдонимов команд для облегчения работы в среде ос qnx
- •1. Краткие теоретические сведения
- •1.1. Управление связями файлов
- •1.2. Жесткие связи
- •1.3. Символические связи
- •1.4. Права доступа к файлам
- •1.5. Зависимости
- •1.6. Изменение прав доступа
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Сравнение файлов (команда diff)
- •1.3. Подсчет числа слов, строк и байт в файле (команда wc)
- •1.4. Потоковый редактор sed
- •2. Упражнения
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •/Usr/xpg4/bin/grep
- •Операнды
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •Использование
- •Работа с большими файлами
- •/Usr/bin/who
- •/Usr/xpg4/bin/who
- •Операнды
- •1.1. Ввод текста
- •1.2. Редактирование текста
- •1.3. Сохранение файлов и выход из VI
- •1.4. Редактирование еще одного файла
- •1.5. Включение других файлов
- •1.6. Выполнение команд Shell
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №7 Работа с текстовыми файлами Цель – знакомство с командами, работающими с текстовыми файлами (awk-интерпретатор скриптовый)
- •1. Краткие теоретические сведения
- •1.1. Язык awk
- •1.2. Регулярные выражения
- •Метасимволы, используемые в регулярных выражениях
- •1.3. Действия
- •1.4. Awk-переменные и выражения
- •1.5. Использование операций
- •1.6. Использование массивов
- •1.7. Селекторы
- •1.8. Использование операторов
- •1.9. Ввод и вывод данных
- •1.10. Встроенные функции
- •2. Упражнения
- •Структура файла query1
- •Структура файла query2
- •3. Содержание отчёта
- •1.2. Граматика языка shell
- •2. Упражнения
- •3. Содержание отчёта
- •Выполнить:
- •2. Упражнения
- •Примечание:
- •3. Содержание отчёта
- •1.1. Компоновка объектных модулей
- •1.2. Отладка
- •2. Упражнения
- •Задание №1
- •Задание №2
- •Задание №3
- •Задание №4
- •Задание №5
- •Задание №6
- •Задание №13
- •Задание №14
- •Задание №15
- •Задание №16
- •Задание №17
- •Практическое занятие №11
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Создание каталога
- •1.3. Биты режима для прав доступа
- •1.4. Удаление каталога
- •1.5. Создание жесткой связи
- •1.6. Создание символической связи
- •1.7. Чтение символической связи
- •1.8. Переименование файла
- •1.9. Удаление файла
- •1.10. Обработка ошибок
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Проверка возможностей управления работой и процессами в shell
- •2. Упражнения
- •3. Содержание отчёта
- •1.3. Ошибки, связанные с именами файлов
- •1.4. Доступ к файлу
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №15 Организация процессов вQnx
- •1. Методические указания по выполнению практической работы
- •1.1. Файл main.O
- •1.2. Файл input.C
- •1.3. Файл output.C
- •1.4. Файл process.C
- •1.5. Используемые функции
- •1.6. Получение информации о процессах
- •2. Упражнения
- •1.2. Клиент
- •1.3. Определение идентификаторов узла, процесса и канала (nd/pid/chid) нужного сервера
- •1.4. Применение обмена сообщениями
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №17 Организация потоков в qnx
- •1. Краткие теоретические сведения
- •1.1. Запуск потока
- •1.2. Администрирование атрибутов потока
- •Текст программы
- •Результаты
- •1.2. Текст программы
- •1.3. Последовательность действий
- •1.4. Результаты
- •2. Упражнения
- •3. Содержание отчёта
1.2. Граматика языка shell
Единицей действия в языке является команда. Различаются одиночные команды, списки команд, конвейеры, составные команды, управляющие конструкции. Если специально не оговаривается, значением команды служит выходной статус (код завершения) последней выполненной команды.
1.2.1. ОДИНОЧНЫЕ КОМАНДЫ.
Это любая внешняя или встроенная команда или операция присваивания за которой следует необязательная переадресация ввода/вывода.
1.2.2. КОНВЕЙЕРЫ КОМАНД.
Последовательность команд соединенных управляющей операцией "|",образует конвейер. Стандартный выход каждой команды конвейера, кроме последней, направляется в стандартный ввод следующей команды.
1.2.3. СПИСКИ КОМАНД.
Один или несколько конвейеров соединенных управляющими операциями ";" "&" "&&" "||" образуют список команд. Функции операций:
; - последовательное выполнение конвейеров;
& - асинхронное выполнение; оба конвейера выполняются асинхронно не дожидаясь завершения друг друга;
&& - конвейер стоящий после "&&" выполняется только в том случае, если предшествующий конвейер вырабатывает нулевое значение статуса("истина"); || - конвейер стоящий после "||" выполняется только в том случае, если конвейер стоящий до "||", вырабатывает ненулевое значения статуса ("ложь").
1.2.4. КОМАНДНЫЕ ПОДСТАНОВКИ.
Командные подстановки позволяют вместо команды подставить выходное сообщение данной команды; имя команды заключается в круглые скобки которым предшествует символ "$":
$(command)
1.2.5. МАНИПУЛЯЦИЯ С ИМЕНАМИ ФАЙЛОВ.
Для манипуляции с именами файлов используют три символа "*" "?" []. Если один или несколько из этих символов используется в командной строке, каждое слово содержащее символ трактуется как шаблон который заменяется набором имен включающих данный образ.
* - заменяет любую символьную строку;
? - заменяет один символ в строке;
[...] заменяет один символ который находиться в лексическом интервале указанном в скобках.
Пример, [a-c] - один символ заменяется каждым символом из интервала a-c;
Вариантом данной конструкции является использования функции дополнения "!".
Пример [!abc] - один символ заменяется всеми символами за исключением a b c.
1.2.1. ВСПОМОГАТЕЛЬНЫЕ КОМАНДЫ
КОМАНДА test.
test expression [expression]
test команда вычисляет выражение и возвращает нулевой статус если
"истина" и ненулевой статус если "ложь". Эта команда обычно используется в управляющих конструкциях if, while.
Следующие выражения допустимы (выборочно):
-r file - файл существует и доступен по чтению;
-w file - файл существует и доступен по записи;
-x file - файл существует и доступен по исполнению;
-f file - файл есть регулярный файл;
-d file - файл есть директорий;
file1 -ot file2 - файл1 старше чем файл2;
string - строка не пустая;
string1 = string2 - строка1 равна строке2;
string1 != string2 - строка2 не равна строке2;
num1 -eq num2 - число1 равно числу2;
num1 -ne num2 - число1 не равно числу2;
num1 -ge num2 - число1 больше или равно числу2;
num1 -gt num2 - число1 больше числа2;
num1 -le num2 - число1 меньше или равно числу2;
num1 -lt num2 - число1 меньше числа2
Возможны также комбинации выражений связанные логическими операциями:
expr -o expr - логическое "ИЛИ";
expr -a expr - логическое "И";
!expr - логическое отрицание;
(expr) - группировка.
КОМАНДА read.
read [-r] var...
Команда read читает строку из стандартного устройства ввода (консоли), строка состоит из нескольких слов разделенных допустимыми разделителями. Первое слово назначается к переменной var, второе слово ко второй переменной var и так далее. Если специфицирована опция -r то символ "\" трактуется, как и любой другой символ, в противном случае он считается escape-символом.
Переменные в интерпретаторе shell имеют строковый тип, но есть средство (команда expr) позволяющее выполнять арифметические операции над текстовыми переменными, заданными в виде целых чисел.