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-скриптах путём использования регулярных выражений и достаточно широкого выбора команд редактирования.


 

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

53130. Частини тіла (5 клас) 192.5 KB
  Heute beginnen wir ein neues Thema „Der Mensch“. Wir lernen, wie alle Körperteile heißen. Zuerst hört ihr ein Gedicht und sprecht nach.
53131. Федеративна Республіка Німеччина 70.5 KB
  Частина світу сторона світу країни карлики 25 держав колонізатори країни Західної Європи. Число Андрій Шевченко чудеса світу країни великий Велика сімка. Мотивація навчальної діяльності При знайомстві з регіоном Західної Європи ми зясували що країни цього регіону входять до числа розвинених країн світу а чотири з них Німеччина Італія Франція Великобританія члени Великої сімки. Інструктивна картка №1 Політологи фізико географи Загальні відомості про країну: назва; площа; форма правління; ...
53132. Свята в Німеччині та в Украіні 220.5 KB
  Guten Tag, liebe Kinder und liebe G?ste! Ich freue mich sehr, euch alle zu sehen und ich hoffe, dass ihr gute Zeit haben werdet. Feste und Br?uche spielen eine wichtige Rolle im Leben des Volkes. Und Deutsche haben Feiertage auch sehr gern. Der deutsche Dichter Joseph von Eichendorff hat?ber Feiertage ein Gedicht geschrieben...
53133. Leseverstehen. Das Märchen „Das Salz“ 52 KB
  Die dritte Tochter weinte und verließ ihren Vater. Aber bald sah man keine fröhlichen Menschen mehr. Brot ohne Salz, Fleisch ohne Salz, Gemüse ohne Salz -- das alles schmeckte den Menschen nicht. Sie hatten keinen Appetit mehr, sie wollten nicht mehr essen. Auch die Arbeit bereitete ihnen keine Freude mehr. Der König sah das alles. Das Essen schmeckte ihm auch nicht. Es gab kein Salz im Land mehr.
53135. Йоганн Вольфганг фон Гете – виразник ідей Просвітництва. Творчий і життєвий шлях письменника. Образ Фауста у літературі, музиці, малярстві 82.5 KB
  Liebe Freunde! Ich wünsche euch einen wunderschönen Guten Morgen und freue mich euch wiederzusehen. Wir werden heute über die Gestalt des Faust und den Unterstied dieser Gestalt im Werken von Goethe und Puschkin sprechen und wie diese Gestalt des Faust sich in der Musik und Malerei widergespiegelt hat.
53136. Гетьманщина наприкінці ХVІІ - у першій половині ХVІІІ ст 124.5 KB
  Підручники таблиця Іван Мазепа роздатковий матеріал. Мазепа біографія Дискусійний клуб Обери позицію: дати оцінку діяльності І. Мазепа історична постать неоднозначна таємничо загадкова і до цього часу. В літературних творах оспівано його образ...
53137. Гідросфера. Позакласний захід (КВК) з географії для 6 класу 40.5 KB
  ХІД ГРИ Ведучий: Сьогодні ми проводимо географічний КВК під час вивчення теми Гідросфера. Одиниця вимірювання солоності води проміле. На Дніпрі споруджено 6 великих водосховищ які створюють величезний запас води для більш посушливих південних і східних областей України. Значна кількість дніпровської води подається каналами і трубопроводами в південні і східні регіони України з постійним дефіцитом прісної води.
53138. РОЗРОБКА УРОКУ – ГРИ «СВИСТАТИ ВСІХ НАГОРУ!» (УЗАГАЛЬНЮЮЧИЙ УРОК З ГЕОГРАФІЇ У 7 КЛАСІ) 249 KB
  Мета уроку: навчальна: повторити, узагальнити та систематизувати знання учнів з теми «Гідросфера»; вдосконалювати навички та вміння використовувати набуті знання на практиці у нестандартних ситуаціях; підвищити інтерес до вивчення географії за допомогою ігрової форми,