- •Министерство образования и науки Украины
- •Практическое занятие №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. Содержание отчёта
Операнды
Поддерживаются следующие операнды:
-
имя_файла
Имя файла, в котором должен выполняться поиск по образцу. Если файлы не указаны, поиск ведется в стандартном входном потоке.
/Usr/bin/grep
-
образец
Задает образец для поиска во входных строках.
/Usr/xpg4/bin/grep
-
образец
Задает один или несколько образцов для поиска во входных строках. Этот операнд используется так же, как если бы он был задан в виде -eсписок_образцов.
Использование
Опция -epattern_list имеет тот же эффект, что и операнд список_образцов, но позволяет начинать список_образцов с дефиса. Она также пригодится в случаях, когда удобнее задавать несколько образцов в виде отдельных аргументов.
Можно задавать несколько опций -e и -f. При этом утилита grep использует все заданные образцы при сопоставлении с входными строками. (Учтите, что порядок проверки не задается. Если реализация находит среди образцов пустую строку, она может искать сначала именно ее, тем самым, сопоставление будет найдено для каждой строки, а остальные образцы, по сути, - проигнорированы.)
Опция -q дает средства простого определения, находится ли образец (или строка) в группе файлов. При поиске в нескольких файлах она обеспечивает более высокую производительность (поскольку позволяет завершить работу, как только будет найдено первое соответствие) и не требует дополнительных усилий пользователя при формировании набора файлов-аргументов (поскольку grep вернет нулевой статус выхода при обнаружении соответствия даже если при работе с предыдущими операндами-файлами произошла ошибка доступа или чтения.)
Работа с большими файлами
Описание поведения утилиты при работе с файлами размером от 2 Гбайтов (2**31 байтов) см. на странице справочного руководства largefile(5).
ПРИМЕРЫ
Пример 1: Поиск всех вхождений слова
Чтобы найти все вхождения слова "Posix" (независимо от регистра) в файле text.mm и выдать номера соответствующих строк:
example% /usr/bin/grep -i -n posix text.mm
Пример 2: Поиск пустых строк
Чтобы найти все пустые строки в стандартном входном потоке:
example% /usr/bin/grep ^$
или
example% /usr/bin/grep -v .
Пример 3: Поиск строк, содержащих фиксированные подстроки
Обе следующих команды выдают все строки, содержащие подстроки abc, def или и ту, и другую:
example% /usr/xpg4/bin/grep -E 'abc def' example% /usr/xpg4/bin/grep -F 'abc def'
Пример 4: Поиск строк, соответствующих образцу
Обе следующих команды выдают все строки abc или def:
example% /usr/xpg4/bin/grep -E '^abc$ ^def$' example% /usr/xpg4/bin/grep -F -x 'abc def'
ПЕРЕМЕННЫЕ СРЕДЫ
Описание следующих переменных среды LC_COLLATE, LC_CTYPE, LC_MESSAGES и NLSPATH, влияющих на работу команды grep, см. на странице справочного руководства environ(5).
СТАТУС ВЫХОДА
Команда заврешается со следующими статусами выхода:
0 |
Найдена одна или несколько соответствующих строк. |
1 |
Соответствующие строки не найдены. |
2 |
Выявлены синтаксические ошибки или недоступные файлы (даже если были найдены соответствующие строки). |
АТРИБУТЫ
Описание следующих атрибутов см. на странице справочного руководства attributes(5):
/usr/bin/grep
ТИП АТРИБУТА |
ЗНАЧЕНИЕ АТРИБУТА |
Доступен в пакете |
SUNWcsu |
CSI |
включено |
/usr/xpg4/bin/grep
ТИП АТРИБУТА |
ЗНАЧЕНИЕ АТРИБУТА |
Доступен в пакете |
SUNWxcu4 |
CSI |
включено |
ССЫЛКИ
egrep(1), fgrep(1), sed(1), sh(1), attributes(5), environ(5), largefile(5), regex(5), regexp(5), XPG4(5)
ПРИМЕЧАНИЯ
/usr/bin/grep
Строки ограничены только размером доступной виртуальной памяти. Если обрабатывается строка со встроенными нулевыми символами, grep будет вести поиск только до первого такого символа; если эта часть строки соответствует образцу, будет выдана вся строка.
/usr/xpg4/bin/grep
Если файл содержит строки длиннее LINE_MAX байтов или двоичные данные, результаты работы непресказуемы. Значение LINE_MAX определено в файле /usr/include/limits.h.
who - кто работает в системе
СИНТАКСИС
/usr/bin/who [ -abdHlmpqrstTu ] [ файл ] /usr/bin/who -q [ -n x ] [ файл ] /usr/bin/who am i /usr/bin/who am I /usr/xpg4/bin/who [ -abdHlmpqrtTu ] [ файл ] /usr/xpg4/bin/who -q [ -n x ] [ файл ] /usr/xpg4/bin/who -s [ -bdHlmpqrtu ] [ файл ] /usr/xpg4/bin/who am i /usr/xpg4/bin/who am I
ОПИСАНИЕ
Утилита who может выдать имя пользователя, терминальную линию, время регистрации, время, прошедшее с момента последнего обращения с соответствующего терминала и идентификатор процесса командного интерпретатора для каждого пользователя, работающего в настоящий момент в системе UNIX. Для получения этой информации она обращается к файлу /var/adm/utmp. Если указан параметр файл, проверяется именно этот файл (который должен быть в формате utmp(4)). Обычно в качестве файла задается файл /var/adm/wtmp, содержащий хронологию всех регистраций в системе с момента своего создания.
Общий формат выдаваемого результата следующий:
имя [состояние] терминал время [ожидание] [pid] [комментарий] [статус_выхода]
где:
имя – регистрационное имя пользователя.
состояние – возможность записи на терминал.
терминал – имя терминала как устройства в каталоге /dev.
время – время, прошедшее с момента регистрации пользователя.
ожидание – время, прошедшее с момента выполнения пользователем последнего действия.
pid – идентификатор процесса начального командного интерпретатора пользователя.
комментарий – строка комментария из файла inittab(4).
статус_выхода – статус выхода для "мертвых" процессов.
ОПЦИИ
Поддерживаются следующие опции:
-a |
Обрабатывает /var/adm/utmp или указанный файл с включенными опциями -b, -d, -l, -p, -r, -t, -T и -u. |
-b |
Показывает дату и время последней перезагрузки. |
-d |
Выдает все процессы, устаревшие и не перезапущенные процессом init. Поле статуса выхода выдается для "мертвых" процессов и содержит значения их статусов выхода или прекращения (возвращаемые wait(3UCB)). Это может помочь определить причину прекращения работы процесса. |
-H |
Выдает заголовки столбцов перед обычными результатами. |
-l |
Выдает только те терминальные линии, с которых система ожидает регистрации пользователей. В таких случаях в поле имени выдается значение LOGIN. Другие поля имеют те же значения, что и для записей о зарегистрированных пользователях, но поле состояния не выдается. |
-m |
Выдает информацию только о текущем терминале. |
-n x |
Принимает чиловой аргумент, x, которое задает количество выдаваемых в одной строке пользователей. x должно быть не менее 1. Опция -n может использоваться только совместно с опцией -q. |
-p |
Выдает все остальные активные процессы, запущенные ранее процессом init. В поле имя указывается имя программы, выполненной процессом init, указанное в файле /sbin/inittab. Поля состояние, терминал и ожидание в этом случае не имеют значения. В поле комментарий в этом случае выдается идентификатор записи из файла /sbin/inittab, которая использовалась для порождения этого процесса. См. inittab(4). |
-q |
(quick who) Выдает только имена и общее количество зарегистрированных сейчас пользователей. При использовании этой опции все остальные опции игнорируются. |
-r |
Выдает текущий уровень выполнения (run-level) процесса init. |
-s |
(стандартно) Выдает только поля имени, терминала и времени. |