Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1169

.pdf
Скачиваний:
1
Добавлен:
21.11.2023
Размер:
180.52 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

А. И. Домрачев

ОПЕРАЦИОННЫЕ СИСТЕМЫ

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «ОПЕРАЦИОННЫЕ СИСТЕМЫ»

по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля

Нижний Новгород

2016

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

А. И. Домрачев

ОПЕРАЦИОННЫЕ СИСТЕМЫ

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «ОПЕРАЦИОННЫЕ СИСТЕМЫ»

по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля

Нижний Новгород ННГАСУ

2016

УДК 681.3(075)

Домрачев А. И./ ОПЕРАЦИОННЫЕ СИСТЕМЫ [Электронный ресурс]: учеб. – метод. пос./ А. И. Домрачев; Нижегор. гос. архитектур. – строит. ун-т – Н. Новгород: ННГАСУ, 2016. - 11 с. 1 электрон. опт. диск (CD-R)

Приводятся цели, задания и порядок выполнения лабораторных работ, а также контрольные вопросы в конце каждой лабораторной работы.

Предназначено для обучающихся в ННГАСУ по дисциплине «ОПЕРАЦИОННЫЕ СИСТЕМЫ» по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля.

© А. И. Домрачев © ННГАСУ. 2016.

Лабораторная работа № 1. Команды для работы с файлами и каталогами.

Файловая система Linux, в отличии от Windows, имеет один единственный корень – каталог «/». Для каждого процесса, в том числе и для командной строки, один из каталогов является текущим. Для работы с файлами и каталогам используется понятие пути. Путь может начинаться с корневого каталога (абсолютный путь) или с текущего каталога (относительный путь). Внимание, пример. Допустим, в системе есть каталоги /dir1/dir2/dir3/dir4 (т.е. в корневом каталоге – каталог dir1, в каталоге dir1 каталог dir2 и т.д.) и в каталоге dir4 имеется файл с именем file1. Допустим, текущим является каталог dir2. В этом случае абсолютный путь к file1 будет /dir1/dir2/dir3/dir4/file1, он работает независимого от того, какой каталог текущий, а относительный путь dir3/dir4/file1. Он работает только если каталог dir2 является текущим .Абсолютный путь начинается с «/», относительный – с названия каталога.

Как вводить команды. Команды не содержат пробелов. Регистр учитывается. Всё что находится после пробела, рассматривается как параметры команды. Команды могут иметь ключи, которые начинаются с чёрточки (знак минус). Если ключ состоит из нескольких букв, то он начинается с двух чёрточек. Несколько однобуквенных ключей могут идти без пробелов после одной чёрточки. За ключами может следовать параметр, например, путь к файлу. Если команда введена неверно, на экран выводится сообщение об ошибке. Клавиша Tab может дописывать написанные не до конца команды или пути к файлам. Курсоры −↓ вызывают предыдущие команды.

Как пользоваться справкой. Для получения справки по команде используется команда man, в качестве параметра указывается команда. Выход из режима справки – клавиша q. При написании справки используются соглашения: необязательные параметры пишутся в квадратных скобках, если нужно использовать один из нескольких параметров, то они разделены вертикальной чертой. Команды,

используемые в работе.

Команда,

Назначение

Ключи

параметры

 

 

 

 

 

pwd

Показывает текущий каталог

 

 

 

 

cd dir

Делает каталог dir текущим

 

 

 

 

ls

Просмотр содержимого

 

 

каталога

 

 

 

 

cp file1 path

Копирует файл file1по пути path

-r копирует каталог

 

 

 

ln file link

Создаёт ссылку link на файл file

-s символическая ссылка (аналог ярлыка в

 

 

Windows)

 

 

 

rm file

Удаляет файл

-r удаляет каталог

 

 

 

cat file

Выводит содержимое файла

 

 

 

 

du dir

Выводит размер каталога dir

-h выводит размеры в понятном виде

 

 

 

head file

Выводит начало файла

-n N первые N строк (N-число)

 

 

 

tail file

Выводит конец файла

-n N последние N строк (N-число)

 

 

 

touch file

Создаёт файл или изменяет время доступа к существующему файлу

 

 

find

Поиск файлов и каталогов по различным параметрам

 

 

grep шаблон file

Выводит строки файла, содержащие шаблон

 

 

 

echo string

Выводит на экран строку string

 

 

 

Команда > file

Записывает результат команды в файл (>> - в конец файла)

 

 

 

3

Задания по работе.

1.Войдите в систему: пользователь root, пароль 111111 (при наборе не отображается).

2.Откройте и закройте справку по команде grep

3.Вывести на экран содержимое каталога «/».

4.Перейдите в каталог / и создайте внутри каталога /home каталог dir, создайте внутри каталога /home/dir/ файлы file1 и file2.

5.Создайте символическую ссылку на каталог /home/dir/ в каталоге /

6.Скопируйте файл /home/dir/file1 в каталог /home

7.Запишите в /home/dir/ file1 последние 10 строк из файла /etc/passwd одной командой.

8.Выведите файл /home/dir/file1 на экран.

9.Допишите в конец файла /dir/file1 строки из файла /etc/passwd, содержащие слово «root» одной командой.

10.Допишите своё имя в конец файла /dir/file1 одной командой

11.Узнайте размер каталога /home

12.Удалите все файлы и каталоги, созданные на этом занятии.

Вопросы по работе:

1.Что такое абсолютный и относительный путь к файлу, приведите пример?

2.Перечислите команды (без параметров и ключей), используемые в работе и их назначение

3. Как

получить

справку

по

команде?

4

Лабораторная работа №2. Пользователи системы. Права доступа. Команда sudo.

Система Linux является многопользовательской. Данные о всех пользователях хранятся в файле /etc/passwd. Пример: at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash. Сначала идёт имя пользователя, затем поле для совместимости, идентификатор пользователя, идентификатор основной группы, комментарий, домашний каталог, командный интерпретатор по умолчанию. Зашифрованные пароли хранятся в файле /etc/shadow. Пользователи объединены в группы. Данные о группах в файле /etc/group. Супер-пользователь системы – пользователь root, он может задать себе любые права.

Организация доступа к файлам и каталогам. У каждого файла или каталога имеется два владельца: владелец-пользователь (u) и владелец-группа (g). Права доступа следующие: чтение (r), запись (w) и выполнение (x). Правило на выполнение для файла означает, что если этот файл содержит исполняемый код, то его можно запустить. Для каталога это правило означает, что можно просматривать метаданные его содержимого (размер, владельца и т.д.). Просмотр прав доступа и других метаданных осуществляется командой ls –l (буква L). Пример: ls -l 1.txt выводит -rwxrw-r-- 1 root root 33 Jan 21 14:17 1.txt. Первый символ в этой строке – тип файла. Прочерк означает обычный файл. Второй, третий, четвёртый символы – права пользователя-владельца, следующие три – права группы-владельца, следующие три – права остальных. Затем следует количество жёстких ссылок на файл, пользовательвладелец, группа-владелец, размер в байтах, время последнего доступа и имя файла. Команды.

useradd vasya

Создать пользователя vasya

 

 

userdel vasya

Удалить пользователя vasya

 

 

passwd vasya

Задать пароль пользователю vasya (пароль при вводе не

 

отображается)

 

 

sudo -u vasya команда

Выполнение команды от пользователя vasya

 

 

who

Просмотр вошедших в систему пользователей

 

 

chown vasya 1.txt

Сделать vasya пользователем-владельцем файла 1.txt

 

 

chgrp users 1.txt

Сделать users группой-владельцем файла 1.txt

 

 

chmod u+x 1.txt

Дать пользователю-владельцу право на выполнение файла 1.txt

 

 

chmod g-w 1.txt

Отнять у группы-владельца право на чтение файла 1.txt

 

 

Команда useradd c ключом -m создаёт пользователю домашний каталог со стандартным набором файлов и делает пользователя владельцем своего домашнего каталога.

Для редактирования параметров пользователей и групп необходимо открыть файлы /etc/passwd и /etc/group в любом текстовом редакторе. Редактировать файл /etc/passwd можно с помощью команды nano /etc/passwd.

Давать доступ пользователю root к компьютеру по сети опасно, так как злоумышленники могут подобрать пароль. С другой строны, работая как root можно случайно выполнить необратимое неверное действие. Поэтому вместо работы от пользователя root используют команду sudo. Команда sudo K, где K

– команда будет выполнена с правами root.

Права на использование команды sudo настраиваются в файле /etc/sudoers. Можно разрешить пользователю выполнять любые команды, а можно лишь некоторые.

5

Задания по работе.

1.Создайте в системе пользователя со своим именем, задайте ему пароль, узнайте его домашний каталог, создайте его и назначьте пользователя владельцем своего домашнего каталога.

2.Сделайте так, чтобы никто, кроме нового пользователя не мог просматривать содержимое его домашнего каталога.

3.Создайте группу с названием своей учебной группы, поместите пользователя в эту группу.

4.Создайте второго пользователя с любым именем, в каталоге / создайте файл со следующими правами: первому пользователю разрешены чтение и запись, второму пользователю всё запрещено, всем остальным разрешено только чтение. Для справки см. man chmod.

5.Запишите права доступа для директории /var и файла /etc/shadow

6.Настройте систему, чтобы первый пользователь мог выполнять любые команды с правами суперпользователя, а второй только команду nano.

Вопросы по работе:

1.Расскажите о правах доступа на файлы и каталоги

2.Для чего используется команда sudo и как настроить права на её использование?

3.Где хранятся данные о пользователях системы?

4.Почему можно сказать, что у файла в Linux два владельца?

6

Лабораторная работа №3. Сценарии на языке shell.

Сценариями называются командные файлы UNIX. Аналог bat-файлов в Windows. В каждой строке такой файл содержит те же команды, что могут вводиться в командной строке. Чтобы запустить сценарий нужно в командной строке набрать путь к файлу сценария. В пути к файлу сценария текущий каталог может обозначаться символом «.». То есть, если вы хотите запустить сценарий из текущего каталога, то можете набрать ./имя_файла_сценария. Если же вы просто наберёте имя файла, то система попытается найти его в одном из каталогов, в котором хранятся системные команды. Список этих каталогов хранится в переменной среды $PATH. Значение переменной можно посмотреть с помощью команды echo $PATH.

Если вы хотите узнать, где именно находится исполняемый файл программы – воспользуйтесь командой which имя_команды.

В начале сценария следует указать, с помощью какого языка должен обрабатываться данный сценарий. Если этого не сделать, то он будет обработан текущим командным интерпретатором. Текущий командный интерпретатор хранится в переменной $SHELL . Командный интерпретатор – это путь к файлу командного интерпретатора, например, /bin/sh. В начале файла следует писать #!/bin/sh. Все остальные строки, начинающиеся со знака “#” являются комментариями.

Если вы хотите, чтобы ваш сценарий получал параметры от пользователя, который его запускает, то эти параметры должны вводиться пользователем после пути к файлу сценария через пробел. Например: ./имя_файла_сценария параметр1 параметр2.

Чтобы использовать эти параметры в сценарии используйте переменные $1 для первого параметра, $2- для второго.

В сценариях можно использовать переменные, например a=5 (без пробелов). В дальнейшем для обращения к переменной используйте $a. Для того, чтобы проверить выполнилась ли команда, используйте команду if-else. Пример

if ls /home/user; then echo OK;else echo “No such directory”; fi

Символ «;» имеет в сценариях то же назначение, что и перевод строки.

Для того, чтобы команды, используемые в сценарии не выводили результат работы и ошибки на экран следует направлять поток результатов и поток ошибок в файл. Обычно для этого используют файл /dev/null. Для того, чтобы направить результат работы и ошибки в этот файл нужно сделать следующее:

Команда 1>/dev/null 2>dev/null

Здесь 1 обозначает поток вывода, а 2 – поток ошибок. Число 1 можно не писать.

Задания по работе:

1.Напишите сценарий, который в качестве параметра принимает путь к файлу и если этот файл существует, то выводит информацию об этом файле, а если файл не существует, то создаёт такой файл. Лишней информации сценарий выводить не должен.

7

2.Сделайте так, чтобы ваш сценарий можно было вызывать одной командой, как любую системную команду.

3.Создайте shell-сценарий, копирующий указанный файл из текущего каталога в домашний каталог пользователя, работающего с системой в данный момент, назначающий пользователя владельцем копии и запрещающий доступ к ней всем, кроме владельца. Для получения имени пользователя можно использовать переменную $LOGNAME

4.Придумайте алгоритм проверки, какими правами доступа к файлам и каталогам обладает сценарий во время выполнения.

Вопросы по работе

1.Где находятся исполняемые файлы команд?

2.Как запустить файл сценария на выполнение?

3.Как узнать, какие пользователи имеют право на выполнение команды, а какие не имеют?

4.Как управлять потоком вывода и потоком ошибок команды?

5.Назовите две любые системные переменные.

8

Лабораторная работа № 4 Работа с жёстким диском

Цель работы: работа с жёстким диском в Linux.

Задания по работе:

1.Добавить в систему новый жёсткий диск.

2.Создать на новом диске файловую систему.

3.Смонтировать новый жёсткий диск и записать на него файл.

4.Настроить систему на автоматическое монтирование нового диска в каталог /home при загрузке.

5.Создать файл-образ системного диска на новом диске.

6.Сделать так, чтобы новый диск стал точной копией системного диска.

7.Написать программу ежедневного архивирования каталога /etc на новый жёсткий диск.

9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]