48556

ОСНОВЫ РАБОТЫ В СРЕДЕ ОПЕРАЦИОННОЙ СИСТЕМЫ UNIX

Лабораторная работа

Информатика, кибернетика и программирование

Написать скрипт на языке shell, выполняющий периодический поиск и уничтожение файлов и пустых каталогов с определенным именем (имя файла, каталоги поиска и период поиска должны являться параметрами скрипта).

Русский

2014-07-12

33.68 KB

4 чел.

Министерство образования и науки Российской Федерации

Санкт-Петербургский государственный политехнический университет

Факультет технической кибернетики

Кафедра «Информационная безопасность компьютерных систем»

ОТЧЕТ

по лабораторной работе №1

«ОСНОВЫ РАБОТЫ В СРЕДЕ ОПЕРАЦИОННОЙ СИСТЕМЫ UNIX»

по курсу «Операционные системы»

Выполнил

студент гр. 2088/4    А.А.Чернышев

                           <подпись>

Руководитель     А.С. Коноплев

                           <подпись>

Санкт-Петербург

2011

  1.  Формулировка задания

Цель работы — изучение среды операционной системы (ОС) UNIX, возможностей программирования командного интерпретатора SHELL, а также принципов работы с неинтерактивным текстовым редактором SED.

2. Использованные теоретические сведения

Материалы из методического пособия 01.pdf.

3. Результаты работы

3.1. Выполнение индивидуального задания

1) Написать скрипт на языке shell, выполняющий периодический поиск и уничтожение файлов и пустых каталогов с определенным именем (имя файла, каталоги поиска и период поиска должны являться параметрами скрипта).

#!/bin/bash

echo "Script find and delete files and empty folders with certain name in certain period."

rdir=$1

name=$2

time=$3

while [ -z $rdir ]

do

echo 1st

read rdir

done

while [ -z $name ]

do

echo 2nd

read name

done

while [ -z $time ]

do

echo 3rd

read time

done

OPTIONS="Yes Exit"

echo Remove files $name "in" $rdir every $time s?

select opt in $OPTIONS; do

if [ "$opt" = "Exit" ]; then

echo Exited

exit

elif [ "$opt" = "Yes" ]; then

cd $rdir

while [ true ]; do

for i in  $name;

do

if test -d $i

then rmdir $i

elif test -f $i

then rm $i

fi

done

sleep $time

done

else

clear

echo Incorrect change

fi

done

2) Написать скрипт на языке shell, выполняющий в текущем каталоге переименование всех файлов с именами “ftpd???.log” в файлы с именами “ftp???.log” (три произвольных символа в имени файла перед расширением “.log” должны сохраняться).

if [ $# -ne 1 ]; then

echo Usage: au.sh [ LOGFILE ]

exit 1

fi

days=$(sed 's/[\t].*//' $1 | sort | uniq)

for a in $days; do

echo \\n$a:\\n

sed -n '/'$a'/p' $1

done

echo \\nNumber\\tUsers\\tOperations\\n

sed 's/^[^\t]*[\t][^\t]*[\t]//g;s/[\t].*$//' $1 | sort | uniq -c

echo

sed 's/^[^\t]*[\t][^\t]*[\t]//g;s/[\t][//][^\t]*//' $1 | sort | uniq -c

echo \\nNumber\\tOperations\\n

sed 's/^[^\t]*[\t][^\t]*[\t][^\t]*[\t]//g;s/[\t][^\t]*//' $1 | sort | uniq -c

echo

echo Day of events you want to delete?

read day

echo

sed '/'$day'/d' $1

3) Разработать shell скрипт, использующий sed для анализа готового файла журнала аудита (формат файла приведен в примере)

Скрипт должен выполнять следующие действия:

  1.  сгруппировывать события по дате;
  2.  выводить статистику событий в журнале, а именно:
  3.  количество событий от разных пользователей
  4.  количество событий в зависимости от типа события
  5.  количество событий по типу read;
  6.  удалять строки, содержащие определенную дату события, которая задается переменной в скрипте.

if [ $# -ne 1 ]; then

echo Usage: au.sh [ LOGFILE ]

exit 1

fi

days=$(sed 's/[\t].*//' $1 | sort | uniq)

for a in $days; do

echo \\n$a:\\n

sed -n '/'$a'/p' $1

done

echo \\nNumber\\tUsers\\tOperations\\n

sed 's/^[^\t]*[\t][^\t]*[\t]//g;s/[\t].*$//' $1 | sort | uniq -c

echo

sed 's/^[^\t]*[\t][^\t]*[\t]//g;s/[\t][//][^\t]*//' $1 | sort | uniq -c

echo \\nNumber\\tOperations\\n

sed 's/^[^\t]*[\t][^\t]*[\t][^\t]*[\t]//g;s/[\t][^\t]*//' $1 | sort | uniq -c

echo

echo Day of events you want to delete?

read day

echo

sed '/'$day'/d' $1

4) Используя редактор SED и скриптовый язык SHELL, разработать программу, которая осуществляет просмотр текущего каталога и выводит на экран его содержимое группами в порядке возрастания числа ссылок на файлы (в том числе, имена каталогов). Группа представляет собой объединение файлов с одинаковым числом ссылок на них.

ls -g | sed -n '/[^ ]*[ ]\([^ ]*\)/s//\1/p' | sort -n

echo

3.2. Ответы на контрольные вопросы

Что такое процесс и что такое файл?

Процессы являют собой динамическую сторону системы, это субъекты; а файлы - статическую, это объекты действия процессов. Процесс определяется как “программа в стадии исполнения”. Одна программа (как правило, с различными данными) может выполняться в разных процессах, с другой стороны для исполнения одной программы может потребоваться несколько процессов. Некоторые процессы (демоны) существуют в системе постоянно, другие уничтожаются после выполнения всех необходимых им операций. Почти весь интерфейс взаимодействия процессов с ОС и друг с другом выглядит как запись/чтение файлов.

Будет ли включена в исполняемый файл отладочная информация, если команды для создания объектных файлов из файлов на языке С не были явно определены?

Да, будет.

Как осуществить установку контрольных точек при отладке программ? 

Установка контрольной точки осуществляется посредством команды break. Например:

(gdb) break main.

4. Выводы

Shell – достаточно мощный командный интерпретатор, позволяющий писать простые скрипты для выполнения определённых заданий. Редактор sed позволяет значительно расширить возможности для обработки файлов в shell-скриптах путём использования регулярных выражений и достаточно широкого выбора команд редактирования.


 

А также другие работы, которые могут Вас заинтересовать

62694. Мировая экономика (МЭ), урок 34.59 KB
  Существуют глобальные то есть охватывающие все страны мира ВТО региональные совещание стран АТЭС и локальные ШОС организации. В системе ООН принято делить все страны на 3 группы: развитые страны развивающиеся страны и страны с переходной экономикой.
62695. Вправляння у розборі дієслова як частини мови 32.33 KB
  Хто мені їх прочитає Згаяного конем наздоженеш часу не Спробуйте скласти з цих слів прислів’я. Згаяного часу конем не наздоженеш Як ви думаєте що воно означає Дітки назвіть дієслово в прислів’ї. Згаяного часу конем не наздоженеш...
62696. Дзеепрыслоўе як асобная форма дзеяслова 19.17 KB
  Мэты: пазнаёміць вучняў з неазначальнай формай дзеяслова дзеепрыслоўем, даць яму пэўнае азначэнне і характарыстыку; закрапіць атрыманыя падчас урока веды, уменні, навыкі; выхоўваць матывы навучання.
62697. Музика передає почуття людини 60.56 KB
  Обладнання: загадки про дзвіночок ілюстрації дзвіночка школи та школярів аудіо записи двох мелодій Віктора Косенко: €œНе хочуть купити ведмедика і Купили ведмедика малюнки ведмедика. Прослухайте твори Віктора Косенка...
62699. Музика польського народу 28.84 KB
  Розвивати уміння: працювати з текстом знаходити в ньому головні думки і опорні слова виразно виконувати музичний твір звуковедення дикція спів в унісон фразування динаміка інтонація ритм; аналізувати музичний твір.
62700. Спорідненість музики словянських народів. Розучування пісні «Не щебечи соловейку» (слова Н. Забіли, муз. М. Глінки). Слухання музики: концерт для оркестру «Пустотливі частівки» Р. Щедріна, українські коломийки 20.95 KB
  Мета: поглиблювати тему семестру; розвивати ритмічне і ладове відчуття учнів слух память вокально хорові навики дикцію частоту інтонування; прививати любов до народної пісні збагачувати музичний кругозір.
62701. Современный урок музыки, его типы и структура 23.05 KB
  В организации процесса музыкального образования решающее значение приобретают вопросы построения урока музыки. Конкретная реализация любой темы урока предполагает множественность решений.
62702. Театр оперы и балета 20.05 KB
  Введение новой темы Ребята кто нибудь из вас был в театре А что такое театр как вы думаете Театр мир сказок удивительных приключений и превращений мир добрых и злых волшебников. Ребята а как вы думаете что это за театр...