Автор работы: Пользователь скрыл имя, 29 Декабря 2011 в 20:20, курс лекций
Способы организации файловой системы, списки команд и т.д. ОС Unix
Отправьте письмо преподавателю:
%mail m2@vvsu.ru
Subject: hello
Hello, this is Ivan Petrov
.
Завершите сеанс работы выходом из X-Windows по кнопке Exit.
Введение
в Unix
Лабораторный практикум
6. Программирование в шелле
Шелл (shell) - язык командного интерпретатора /bin/sh. Описание языка и примеры содержатся в документе справочника man. Описание встроенной в шелл команды test находится в отдельном файле.
Войдите в систему в среде X-Windows. Запустите окно терминала. Выполните следующие задания. О выполнении каждого задания доложите преподавателю.
1. Системные
события регистрируются в
Создать скрипт checklog, который выводил бы последние N строк этих файлов: сначала syslog, потом authlog, и наконец maillog. Формат командной строки:
%checklog # вывести по 20 последних строк из каждого файла
%checklog N # из файла syslog вывести N последних строк, из остальных ничего не выводить
%checklog N M # вывести N последних строк из syslog, M - из authlog, из maillog ничего не выводить
%checklog N M K # вывести N последних строк из syslog, M - из authlog, K - из maillog. N и (или) M могут быть нулями.
Весь вывод пропустить через пейджер.
2. Написать скрипт filter, имеющий синтаксис запуска:
%filter [-1] [configfile]
Скрипт предназначен для расщепления (фильтрации) потока данных: строки, в которых обнаружены ключевые фразы, отправляются в один поток вывода, прочие строки - в другой.
Дан конфигурационный файл configfile (если имя файла не указано в командной строке, то по умолчанию берется ./filter.cf), содержащий текстовые строки с регулярными выражениями.
Скрипт читает текстовые строки со стандартного ввода. В каждой строке S, прочитанной со стандартного ввода, ищутся поочередно все регулярные выражения L, находящиеся в файле configfile. В каждом случае обнаружения очередного регулярного выражения L в строке S, строка S выводится в стандартный вывод.
Если первым
параметром командной строки при
запуске скрипта указан ключ "-1",
то строка S, при обнаружении в
ней одного или более регулярных
выражений, перечисленных в
В случае, если ни одно из регулярных выражений L в строке S не обнаружено, строка S выводится в стандартную ошибку.
Далее со стандартного ввода читается очередная строка S.
Пример:
конфигурационный файл содержит:
abc
end$
входной файл содержит:
1 abc end
2 abc fgh abc
3 is this the end?
стандартный вывод при запуске без ключа -1:
1 abc end
1 abc end
2 abc fgh abc
стандартный вывод при запуске c ключом -1:
1 abc end
2 abc fgh abc
стандартная ошибка в обоих случаях:
3 is this the end?