
- •Министерство образования и науки Украины
- •Практическое занятие №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.5. Зависимости
Важно заметить, что права доступа, которые имеет файл зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет -rwxrwxrwx, другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл. Например, если Student захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога /home/student на drwx------. Таким образом, никто другой не будет иметь доступ в его каталог, а, следовательно, посторонним будут недоступны и все файлы. Так что Student может не заботиться об индивидуальной защите своих файлов.
Другими словами, чтобы иметь доступ к файлу, вы должны иметь доступ ко всем каталогам, лежащим на пути от корня к этому файлу, а также разрешение на доступ собственно к этому файлу.
Обычно пользователи QNX весьма открыты всеми своими файлами. Обычно файлам устанавливается защита -rw-r--r--, которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа drwxr-xr-x, что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам. Но ничего в них не трогать и не записывать.
Но многие пользователи хотят держать других пользователей подальше от своих файлов. Установив права доступа файла, -rw------- вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает от всех файлы защита соответствующего каталога drwx------ .
1.6. Изменение прав доступа
Команда chmod используется для установки (изменения) прав доступа файла. Только владелец файла может менять права доступа к нему.
Синтаксис команды имеет вид:
chmod {a,u,g,o}{+,-}{r,w,x} <filenames>
Кратко, вы выбираете из all (все), user (пользователь), group (группа) или other (другие). Далее указываете, либо вы добавляете права (+), либо лишаете прав (-). И наконец, вы указываете один или несколько режимов: read, write или execute. Несколько примеров допустимых команд:
chmod a+r stuff
Дает всем пользователям право читать файл stuff.
chmod +r stuff
То же самое, что и ранее (a - по умолчанию).
chmod og-x stuff
Лишает права на выполнение всех, кроме владельца.
chmod u+rwx stuff
Разрешает владельцу все (read, write и execute).
chmod o-rwx stuff
Запрещает все (read, write и execute) пользователям категории другие (other).
2. Упражнения
УПРАЖНЕНИЕ 2.1.
Создайте псевдонимы нескольких команд, в частности, для команд организующих конвейер.
УПРАЖНЕНИЕ 2.2.
Проверьте возможность изменения прав доступа к каталогам и файлам и ограничения на доступ.
УПРАЖНЕНИЕ 2.3.
Для рабочих файлов домашнего каталога проверьте возможность установки жёстких и символических связей. Определите файловые индексы.
УПРАЖНЕНИЕ 2.4.
Просмотрите перечень процессов, запущенных пользователем, и всех процессов, выполняемых на компьютере (команды ps и ps –aux), проведите их анализ.
3. Содержание отчёта
Номер практической работы.
Название и цель работы.
Краткая характеристика рассмотренных в работе команд.
Примеры использования команд, анализ результатов выполнения упражнений 2.1-2.4.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №5
Работа с текстовыми файлами
Цель – знакомство с командами, работающими с текстовыми файлами
1. Краткие теоретические сведения
1.1. Команда-фильтр grep: поиск строки по файлам
Команда
grep – одна из самых полезных и часто
используемых. Она столь же важна для
нахождения файлов с нужным содержимым,
как ls -- для нахождения файлов с нужным
именем. Поэтому стоит хорошо освоить
grep -- умелое владение ей позволяет
сэкономить массу времени и сил. Кроме
того, регулярные выражения широко
используются во многих других программах.
Часто возникает
задача: надо найти, в каком файле
встречается некое слово или фраза. Для
этого служит команда "grep". Она ищет
"образец" в указанных файлах (или
в стандартном вводе, если файлы не
указаны) и печатает все строки, в которых
он встречается. То есть, она предназначена
для поиска строк, соответствующих
шаблону, заданному в параметре Шаблон.
Каждая найденная строка записывается
в стандартный поток вывода.
В шаблоне (образце поиска) могут быть указаны специальные символы *, ^, ?, [, ], \(, \), \{, или \}. Например, для поиска строк в файле pgm.s, начинающихся с любой буквы в любом регистре, введите:
grep "^[a-zA-Z]" pgm.s
Нажмите Enter.
Появится список строк файла pgm.s, которые начинаются с какой-либо буквы.
Вообще-то, образец поиска для grep -- это не просто строка, а так называемое "регулярное выражение", некоторые символы в котором приобретают специальное значение:
"." означает "любой символ".
"*" -- любое количество повторений (0 и больше) предшествующего символа.
"^" -- начало строки.
"$" -- конец строки.
Специальное значение имеют также символы ?, [, ], {, }, |, + , \.
Поскольку большинство этих символов имеют специальное значение и для оболочки, то образец следует указывать в одинарных кавычках (прямых апострофах).
Для просмотра всех строк файла sort.c, которые не совпадают с шаблоном, введите:
grep -v bubble sort.c
Нажмите Enter.
Появится список строк файла sort.c, не содержащих слова bubble.
Для просмотра всех строк вывода команды ls, которые содержат слово staff, введите:
ls -l | grep staff
Нажмите Enter.
Пример (найти строку "no"):
grep no *
errs:/bin/ls: file10: No such file or directory
errs:/bin/ls: file11: No such file or directory
proverbs:Dead men tell no tales.
Каждая строка предваряется именем файла, в котором она найдена, и двоеточием; если указан только один файл (или стандартный ввод), то этого не делается -- просто печатается найденная строка.
С ключом "-i" grep ищет, не различая маленькие/заглавные буквы:
Пример (найти все символьные линки в директории /etc):
ls -l /etc | grep '^l'
lrwxrwxrwx 1 root root 21 Dec 9 20:55 initrunlvl -> ../var/run/initrunlvl
lrwxrwxrwx 1root root 38 Dec 9 21:04 localtime -> ../usr/share/zoneinfo/Asia/Novosibirsk
lrwxrwxrwx 1 root root 11 Dec 9 20:44 rmt -> ../sbin/rmt*
Здесь используется то, что для символьных линков ls первым символом строки (тип файла) выводит букву "l".
Если результат grep слишком большой и не помещается на экран, то его можно "переправить" команде просмотра, например, more. Пример (показать список всех поддиректорий из директории /usr/lib):
ls -l /usr/lib | grep '^d' | more
Вообще говоря, в конвейере может участвовать сколько угодно команд. Так, команда
ls -l /usr/doc | grep '^d' | grep 'lib' | more
делает почти то же, что и в предыдущем примере, но отбирает только те директории, в имени которых есть "lib".