- •Министерство образования и науки Украины
- •Практическое занятие №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. Сравнение файлов (команда diff)
Команда diff предназначена для сравнения текстовых файлов. С ее помощью можно сравнивать как отдельные файлы, так и содержимое каталогов.
Если в качестве параметров команды diff заданы обычные файлы, расположенные в различных каталогах, то результат работы команды diff - список несовпадающих строк.
Например, для сравнения двух файлов введите:
diff chap1.bak chap1
Нажмите Enter.
Появится список несовпадающих строк файлов chap1.bak и chap1.
Например, для сравнения двух файлов с игнорированием пробелов введите:
diff -w prog.c.bak prog.c
Нажмите Enter.
В этом случае, если две строки будут отличаться только числом пробелов и табуляций между словами, команда diff -w будет считать их одинаковыми.
1.3. Подсчет числа слов, строк и байт в файле (команда wc)
По умолчанию команда wc подсчитывает число строк, слов и байт в файлах, указанных в параметре Файл. Если параметр Файл не задан, то данные читаются из стандартного потока ввода. Результат работы команды записывается в стандартный поток вывода и в нем указывается суммарное число строк, слов и байт во всех заданных файлах. Флаги команды определяют порядок вывода. Под словом понимается символьная строка, отделенная пробелом, символом табуляции или символом новой строки.
Если в команде заданы имена файлов, то эти имена выводятся вместе с результатом подсчета.
Например, для подсчета числа строк, слов и байт в файле с именем chap1 введите:
wc chap1
Нажмите Enter.
Появится число строк, слов и байт в файле chap1.
Например, для подсчета только числа слов и байт введите:
wc -cw chap*
Нажмите Enter.
Появится число байт и слов для каждого файла, имя которого начинается с символов chap, и общий результат.
1.4. Потоковый редактор sed
Команда имеет формат:
sed [ -n ] [ -e script ] [ -f sfile ] [ files ]
Команда копирует файлы (по умолчанию со стандартного входа) на стандартный выход, редактирует их в соответствии со своими(!) командами, размещенными в "script" (в командном файле или строке редактора [а не shell!]). По флагу "-f" берет берет файл команд из файла "sfile"; Если есть только опция "-e script", то флаг "-e" можно опустить. Флаг "-n" подавляет вывод (происходящий по умолчанию). "script" состоит из команд редактирования, по одной в строке, имеющих формат:
[ addr [ , addr ] ] cmd [ args ]
"sed" циклически преобразует входные строки в выходные.
Адреса "[ addr [ , addr ] ]" – это либо номера строк, либо последняя строка (символ "$"), либо регулярные выражения в стиле редактора "ed":
"\" используется в многострочных командах для экранирования продолжения строки.
"." совпадает с любым символом.
Если адреса не указаны - просматриваются все входные строки.
Если один адрес, то выбираются совпадающие строки.
Если заданы два адреса, выбираются строки в заданном интервале.
"!cmd" выполняется команда "cmd", для строк, которые не были выбраны по адресам.
Для следующих (основных) функций (команд) максимальное число допустимых адресов указано в скобках.
(1)a\ text Добавляет text после указанной строки
Команда:
who
Результат:
root tty1 Mar 13 17:23
mas tty2 Mar 13 18:50
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24
Пример:
who | sed '2a\
новая строка'
Результат:
root tty1 Mar 13 17:23
mas tty2 Mar 13 18:50
новая строка
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24
(2)c\ text Удаляет выбранные строки и заменяет их на "text'.
Пример:
who | sed '/sae/ c\
cтрока замены'
Результат:
root tty1 Mar 13 17:23
mas tty2 Mar 13 18:50
строка замены
строка замены
(2)d Удаляет найденные строки
Пример:
who | sed '2,4d'
Результат:
root tty1 Mar 13 17:23
(1)i\ text Вставляет "text" на место выбранной строки. (сравните с "a\")
Пример:
who | sed '2i\
новая строка'
Результат:
root tty1 Mar 13 17:23
новая строка
mas tty2 Mar 13 18:50
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24
(2)p Выводит найденные строки (используется с флагом "-n").
(1)q Выходит из "sed".
(2)r rfile Читает файл "rfile" и выдает на выход.
(2)s/reg_expr/rpl/flags Заменяет регулярное выражение "reg_expr" на "rpl" с учетом флагов "flags":
g |
глобально (по всей строке) |
p |
выводить замены |
w wfile |
сохранять заменяемое в "wfile". |
Пример:
who | sed 's/t/T/'
echo
who | sed 's/t/T/g'
Результат:
rooT tty1 Mar 13 17:23
mas Tty2 Mar 13 18:50
sae Tty6 Mar 13 17:24
sae Tty5 Mar 13 17:24
rooT TTy1 Mar 13 17:23
mas TTy2 Mar 13 18:50
sae TTy6 Mar 13 17:24
sae TTy5 Mar 13 17:24
(2)y/str1/str2/ Заменяет все вхождения символов "str1" соответствующими символами "str2". Длины строк должны быть одинаковыми.
Пример:
who | sed 'y/sae/SAE/'
Результат:
root tty1 MAr 13 17:23
mAS tty2 MAr 13 18:50
SAE tty6 MAr 13 17:24
SAE tty5 MAr 13 17:24
(2)! Cmd Команда(ы) "cmd" применяются к невыбранным строкам.
Пример:
who | sed '2,4!d'
Результат:
mas tty2 Mar 13 18:50
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24
(1)= Выдает номера строк.
Пример:
who | sed =
Результат:
1
root tty1 Mar 13 17:23
2
mas tty2 Mar 13 18:50
3
sae tty6 Mar 13 17:24
4
sae tty5 Mar 13 17:24
(2){ } Скобки группируют команды.