otchet6
.docxМинистерство образования и науки Российской Федерации
ГБОУ ВПО
Тверской государственный технический университет
Кафедра ЭВМ
Отчёт
по лабораторной работе №6
на тему
“ Интерпретатор командного языка shell ”
по дисциплине
“Сетевые операционные системы”.
Выполнили: студенты
группы ВМКСС-0903
Григорьевская Т.Ю.
Лапшинов Д. А.
Приняла: Полтавцева М. А.
Тверь
2013
1. В качестве аргумента командной строки указывается пароль. Если пароль введен верно, постранично отображается в длинном формате с указанием скрытых файлов содержимое каталога /etc.
Программа:
#!/bin/sh
PASS="qwerty"
if [ $1 = $PASS ]
then
ls -la /etc | more
fi
Результат запуска:
buba@buba-desktop:~/lr6$ sh 1 qwerty
total 1344
drwxr-xr-x 123 root root 4096 2013-09-30 13:03 .
drwxr-xr-x 20 root root 4096 2013-09-28 18:10 ..
drwxr-xr-x 8 root root 4096 2008-10-30 02:06 acpi
-rw-r--r-- 1 root root 2986 2008-10-30 01:54 adduser.conf
-rw-r--r-- 1 root root 45 2013-09-30 00:50 adjtime
drwxr-xr-x 2 root root 4096 2013-09-28 18:08 alternatives
-rw-r--r-- 1 root root 395 2008-09-03 03:37 anacrontab
drwxr-xr-x 7 root root 4096 2008-10-30 02:06 apm
drwxr-xr-x 2 root root 4096 2008-10-30 02:05 apparmor
drwxr-xr-x 6 root root 4096 2008-10-30 02:07 apparmor.d
drwxr-xr-x 3 root root 4096 2008-10-30 02:06 apport
drwxr-xr-x 4 root root 4096 2013-09-28 18:11 apt
-rw-r----- 1 root daemon 144 2008-07-10 19:01 at.deny
drwxr-xr-x 3 root root 4096 2008-10-30 02:11 avahi
-rw-r--r-- 1 root root 1733 2008-05-12 22:48 bash.bashrc
-rw-r--r-- 1 root root 216757 2008-06-19 23:18 bash_completion
drwxr-xr-x 2 root root 4096 2008-10-30 02:10 bash_completion.d
drwxr-xr-x 2 root root 4096 2008-10-30 01:53 belocs
-rw-r--r-- 1 root root 332 2008-09-29 13:20 bindresvport.blacklist
-rw-r--r-- 1 root root 309 2013-09-28 18:10 blkid.tab
drwxr-xr-x 2 root root 4096 2008-10-30 02:11 bluetooth
-rw-r--r-- 1 root root 6924 2008-06-19 07:52 bogofilter.cf
--More--
2. Проверить, существует ли файл. Если да, выводится на экран его содержимое, если нет - выдается соответствующее сообщение.
Программа:
#!/bin/sh
if [ -f $1 ] #-f файл - истина, если файл существует и является обычным файлом
then
more $1
else
echo "Не существует!"
fi
Результат запуска:
buba@buba-desktop:~/lr6$ sh 2 2
#!/bin/sh
if [ -f $1 ]
then
more $1
else
echo " Не существует!"
fi
buba@buba-desktop:~/lr6$ sh 2 3
Не существует!
buba@buba-desktop:~/lr6$
3. Если файл есть каталог и этот каталог можно читать, просматривается содержимое этого каталога. Если каталог отсутствует, он создается. Если файл не есть каталог, просматривается содержимое файла.
Программа:
#!/bin/sh
if [ -d $1 ] #-d файл - истина, если файл существует и является директорией
then
if [ -r $1 ] #-r файл - истина, если файл существует и доступен для чтения
then
ls -la $1
else
echo Нельзя читать каталог
fi
else
if [ -f $1 ] && [ -r $1 ]
then
more $1
else
mkdir -p $1 # make parent directories as needed
fi
fi
Результат запуска:
buba@buba-desktop:~/lr6$ sh 3 2
#!/bin/sh
if [ -f $1 ]
then
more $1
else
echo "Не существует!"
fi
buba@buba-desktop:~/lr6$ sh 3 dir1
total 8
drwxr-xr-x 2 buba buba 4096 2013-09-30 13:38 .
drwxr-xr-x 3 buba buba 4096 2013-09-30 13:46 ..
-rw-r--r-- 1 buba buba 0 2013-09-30 13:38 1
-rw-r--r-- 1 buba buba 0 2013-09-30 13:38 2
buba@buba-desktop:~/lr6$ sh 3 dir2
buba@buba-desktop:~/lr6$
4. Анализируются атрибуты файла. Если первый файл существует и используется для чтения, а второй файл существует и используется для записи, то содержимое первого файла перенаправляется во второй файл. В случае несовпадений указанных атрибутов или отсутствия файлов на экран выдаются соответствующие сообщения (использовать а) имена файлов; б) позиционные параметры).
Программа:
#!/bin/sh
if [ -r $1 ] #-r файл - истина, если файл существует и доступен для чтения
then
if [ -w $2 ] #-w файл - истина, если файл существует и доступен для
записи
then
cat $1 >> $2
else
echo Файл $2 не существует, либо не используется для записи
fi
else
echo Файл $1 не существует, либо не используется для чтения
fi
Результат запуска:
Случай 1. Оба файла открыты для чтения и записи (read and write permissions)
buba@buba-desktop:~/lr6$ sh 4 4-1 4-2
buba@buba-desktop:~/lr6$ sh 4 4-2 4-1
Случай 2. Один из файлов доступен для чтения и записи, а другой доступен только для чтения (read-only permission).
Тогда при запуске получаем ошибку.
buba@buba-desktop:~/lr6$ sh 4 4-2 4-3
Файл 4-3 не существует, либо не используется для записи.
Аналогично с отсутствием прав для чтения.
Случай 3. Один из файлов не существует.
Тогда при запуске получаем ошибку.
buba@buba-desktop:~/lr6$ sh 4 4-2 4-4
Файл 4-4 не существует, либо не используется для записи
buba@buba-desktop:~/lr6$ sh 4 4-4 4-1
Файл 4-4 не существует, либо не используется для чтения