You are on page 1of 11

Федеральное агентство по образованию

Государственное образовательное
учреждение высшего профессионального образования
«Томский политехнический университет»
Факультет Автоматики и Вычислительной Техники
Кафедра Вычислительной Техники
ОПЕРАЦИОННЫЕ СИСТЕМЫ

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


«Основы работы в операционной системе Unix»

Исполнитель
Поданёв В.С.
студент группы 8В51 __________
Согласовано
Замятин А.В.
ассистент кафедры ВТ
__________

Томск — 2008
Цель работы:
Ознакомится с операционной системой Unix, получить практические
навыки работы в наиболее распространенном командном интерпретаторе Bash,
изучить принципы организации файловой системы Unix и базовых команд
управления файлами.

Порядок выполнения работы:


Для ознакомления с операционной системой Unix мною был
использован эмулятор ОС Unix под Windows под названием Cygwin. Данный
программный продукт представляет из себя консольное Win32-приложение,
которое предоставляет интерфейс для использования основных средств
изучаемой ОС Unix.
1.Ознакомиться с теоретическим материалом.
С материалом ознакомился.
2.Зарегистрироваться в системе под именем, выданным преподавателем.

3.Ознакомиться со следующими наиболее используемыми командами для


пользовательской работы в ОС Unix: man, apropos, ls, cd, pwd, mkdir, rmdir, cp,
mv, rm, cat, echo, less, touch, grep, date, history. Определить параметры, которые
следует считать основными при использовании данных команд.
man - эта команда используется для получения справочной информации:
man [раздел] ключ
Для получения справки по использованию команды или программы
аргумент «ключ» должен быть именем соответствующей команды или
программы. Параметр «раздел» может представлять собой цифру (или букву)
номера раздела справочных руководств, в котором находится нужная
страница документации. Как и всякий параметр, указанный при описании
команд в квадратных скобках, номер раздела указывать необязательно, так
как при его отсутствии будет найден первый подходящий раздел, где
встречена нужная тема. Справочная информация man доступна только для
внешних команд.
Чтобы получить справку об использовании самой команды man, введем
man man
Команда apropos позволяет найти и вывести перечень тех страниц
руководств, которые содержат в строке краткого пояснения заданное
ключевое слово ключ:
apropos ключ
Для получения подсказки по внутренним командам оболочки
необходимо использовать команду help:
help ключ
Команда ls позволяет получить листинг указанного каталога. Если имя
каталога не указано (оно является необязательным параметром), то будет
выведен листинг текущего каталога:
ls [имя_каталога]
У команды ls есть два очень полезных и наиболее часто используемых
ключа:
-l - вывести полную информацию о каждом файле;
-a - вывести листинг всех файлов, включая такие, имена которых
начинаются с символа точки.
Таким образом следующая команда выведет полный и подробный
листинг файлов домашнего каталога:
ls –la /home/
Чтобы изменить текущий каталог, используется команда cd (change
directory):
cd [имя_каталога]
Если команда вызвана без аргументов, текущим каталогом станет
домашний каталог пользователя.
Команда pwd используется для вывода на экран полного имени
текущего каталога:
pwd [опция]
Команды mkdir и rmdir необходимы для работы с каталогами, и
позволяют соответственно создать или удалить указанный каталог:
mkdir имя_каталога
rmdir имя_каталога
Команда cp позволяет копировать файлы и имеет следующий
синтаксис:
cp источник приемник
Команда mv используется для перемещения либо переименования
файлов:
mv источник приемник
Команда удаления файлов:
rm имя_файла
С командами cp, mv и rm может использоваться ключ «-r» (recursive),
позволяющий копировать, перемещать или удалять каталоги со всем их
содержимым рекурсивно.
Команда cat принимает в качестве аргументов имя/имена одного или
нескольких файлов, и, объединив их, выводит в поток вывода:
cat [опции] имя_файла
Команда echo отображает в поток вывода строку текста, принятую в
качестве ключа:
echo текст
Команда просмотра файлов less позволяет просматривать файлы
произвольного размера и перемещаться по их содержимому с помощью
клавиш управления курсором (для выхода, как и везде, используется клавиша
«q» (quit)):
less имя_файла
Команда touch (касание) позволяет изменять атрибуты времени
последнего доступа к файлу и последней его модификации, приводя их к
текущему времени:
touch [ключ] имя_файла
Команда grep позволяет пользователю работать с шаблонами и
регулярными выражениями и выводить строки, соответствующие заданному
шаблону:
grep [ключ] шаблон имя_файла
Команда date позволяет пользователю вывести текущие системные дату
и время либо их установить:
date [ключ] формат
date [-u|--utc|--universal] [MMD-Dhhmm[[CC]YY][.ss]]
Команда history дает пользователю возможность работать с историей
введенных им команд, которые, например, для оболочки bash всегда
сохраняются в файле bash_history:
history [смещение]
Смещение дает возможность получить доступ к команде с
соответствующим номером.
Если известен номер некоторой команды в истории, ее можно
использовать вновь, введя «!номер_команды».

Для полной информации о перечисленных командах, их аргументах и


вариантах их использования нужно обращаться к страницам руководства
пользователя (команда man).

4. Определить абсолютный путь своего домашнего каталога.


g1u3@linux ~$ pwd
/home/users/g1u3
5. Определить значения следующих переменных окружения: PATH,
MANPATH, PAGER.
g1u3@linux ~$ echo $PATH
/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/users/g1u3/bi
n
g1u3@linux ~$ echo $MANPATH

g1u3@linux ~$ echo $PAGER

6. Определить границы файлового пространства, где система позволяет


создавать собственные файлы и каталоги.
g1u3@linux ~$ cd /home/users
g1u3@linux /home/users$ mkdir Vinny
mkdir: cannot create directory `Vinny': Permission denied
7. Проверить, возможно ли вмешательство в личное файловое пространство
другого пользователя.
g1u3@linux ~$ ls -l /home/users/g1u1
/bin/ls: /home/users/g1u1: Permission denied
g1u3@linux ~$ cd /home/users/g1u1
-bash: cd: /home/users/g1u1: Permission denied
g1u3@linux ~$ ls -la
total 28
drwx-----x 3 g1u3 users 240 Feb 12 19:13 ./
drwxr-xr-x 155 root root 3728 Feb 12 14:49 ../
-rw------- 1 g1u3 users 794 Feb 19 15:31 .bash_history
-rw-r--r-- 1 g1u3 users 24 Jan 30 18:19 .bash_logout
-rw-r--r-- 1 g1u3 users 230 Jan 30 18:19 .bash_profile
-rw-r--r-- 1 g1u3 users 124 Jan 30 18:19 .bashrc
-rw-r--r-- 1 g1u3 users 22 Jan 30 18:19 .inputrc
-rw-r--r-- 1 g1u3 users 238 Jan 30 18:19 .zshrc
drwx------ 5 g1u3 users 120 Jan 30 18:19 Maildir/

8. Ознакомится с командами определения прав доступа к файлам и их


изменения (команды id, groups, ls -l, stat, chmod, chown, chgrp, umask).
Команда id используется для определения UID пользователя, GID и имя
его основной группы, а также списка прочих групп, в которые включен
пользователь. В случае использования команды без аргументов будет выведена
информация о текущем пользователе. Если указать в качестве аргумента имя
зарегистрированного пользователя, вывод команды будет соответствовать
указанному пользователю^
id [имя_пользователя]
Команда groups является частным случаем команды id: она выдает список
имен всех групп, в которые включен текущий или указанный пользователь.
Команда ls позволяет получить листинг указанного каталога. Если имя
каталога не указано (оно является необязательным параметром), то будет
выведен листинг текущего каталога:
ls [имя_каталога]
При использовании ключа –l будет выведена полная информация о
каждом файле, в частности касающаяся прав доступа:
ls –l [имя_каталога]
Команда stat позволяет отобразить статус (информацию) файла, путь к
которому указан в аргументе:
stat имя_файла
Команда chmod (change mode) предназначена для изменения прав доступа к
файлу либо каталогу. Ей может воспользоваться только его владелец, либо
привилегированный пользователь (root). Существует два формата
использования этой команды: с использованием символьного и числового
представления прав доступа. Использование числового представления
позволяет одной командой изменить полный набор прав доступа:
chmod 770 test_dir
Данная команда установит права доступа в числовое значение 770, т. е.
wxrwx---, что даст полные права владельцу и группе владельца, и никаких прав
всем остальным.
Использование символьного представления прав доступа в команде
chmod позволяет манипулировать отдельными битами прав доступа. Например,
чтобы снять бит записи для группы владельца каталога newdir, достаточно
ввести:
chmod g-w test_dir
Условный синтаксис этой команды таков:
chmod {u,g,o,a}{+,-,=}{r,w,x} файлы ...
В качестве аргументов команда принимает указание классов
пользователей: «u» (владелец-пользователь (user)), «g» (владелец-группа
(group)), «o» (остальные пользователи (others)), «a» (все вышеперечисленные
группы вместе (all)), а также операцию, которую необходимо произвести с
правами доступа: «+» (добавить), «-» (убрать), «=» (присвоить), и права доступа
(«r», «w», «x»). Как обычно, здесь тоже может использоваться ключ -r,
позволяющий рекурсивно обрабатывать содержимое подкаталогов.
Команда chown (change owner) предназначена для изменения владельцев
файлов. В современных системах владельца файлов может изменять только
привилегированный пользователь (root). У обычного пользователя существует
возможность изменения только группы владельцев, и то лишь в пределах тех
групп, в которые входит сам пользователь:
chown имя_пользователя имя_файла
Команда chgrp (change group) используется для изменения группы
владельцев:
chgrp имя_группы имя_файла
Существует опять таки возможность рекурсивного изменения владельцев
для всех файлов и подкаталогов заданного каталога. Для этого следует
использовать ключ -r:
chgrp -r имя_пользователя имя_файла
Права доступа, устанавливаемые по умолчанию при создании файла,
определяются значением маски прав доступа, которая устанавливается
командой umask. При вводе команды без аргументов она выведет текущее
значение маски, при использовании восьмеричного числа в качестве аргумента
будет установлено новое значение:
umask [маска]
9. Найти запись в файле /etc/passwd, соответствующую вашему
регистрационному имени.
для этого используем команду less /etc/passwd и просматривая содержимое
днаходим запись соответствующую регистрационному имени нужного
пользователя
g1u3:x:1002:100::/home/users/g1u3:/bin/bash
10. Определить свой UID, узнать к каким группам относится ваше
регистрационное имя, объяснить вывод команд id, groups.

g1u3@linux ~$ id
uid=1002(g1u3) gid=100(users) groups=100(users)
g1u3@linux ~$ groups
users

11. Определить список групп, в которые входит пользователь root.


g1u3@linux ~$ groups root
root : root

12. Узнать, какими правами доступа обладают вновь создаваемые файлы и


каталоги (т. е. создать новый файл и новый каталог, и просмотреть для них
права доступа).
g1u3@linux ~$ echo bugaga>bugaga.txt
g1u3@linux ~$ mkdir MHaha
g1u3@linux ~$ ls
MHaha/ Maildir/ bugaga.txt
g1u3@linux ~$ ls -la
total 32
drwx-----x 4 g1u3 users 296 Feb 19 16:05 ./
drwxr-xr-x 155 root root 3728 Feb 12 14:49 ../
-rw------- 1 g1u3 users 794 Feb 19 15:31 .bash_history
-rw-r--r-- 1 g1u3 users 24 Jan 30 18:19 .bash_logout
-rw-r--r-- 1 g1u3 users 230 Jan 30 18:19 .bash_profile
-rw-r--r-- 1 g1u3 users 124 Jan 30 18:19 .bashrc
-rw-r--r-- 1 g1u3 users 22 Jan 30 18:19 .inputrc
-rw-r--r-- 1 g1u3 users 238 Jan 30 18:19 .zshrc
drwx------ 2 g1u3 users 48 Feb 19 16:05 MHaha/
drwx------ 5 g1u3 users 120 Jan 30 18:19 Maildir/
-rw------- 1 g1u3 users 7 Feb 19 16:04 bugaga.txt
13. Определить значение umask, при котором создаваемые файлы и каталоги
будут недоступны для чтения, записи и исполнения никому, кроме владельца.
Надо определить значение umask, при котором создаваемые файлы и
каталоги будут недоступны для чтения, записи и исполнения никому, кроме
владельца. Это означает, что права доступа должны выглядеть следующим
образом:
-rwx------ для файлов
drwx------ для каталогов
В восьмеричном виде нам необходимо задать маску 700 (400 + 200 + 100),
что опять таки даст все права только владельцу файла либо каталога:
umask 700

14. Сделать свой домашний каталог видимым для всех пользователей группы
users.
Сделаем свой домашний каталог видимым для всех пользователей группы
users. Используем команду chmod:
chmod u+r /home/groups/g1u3

15. Создать в домашнем каталоге подкаталог tmp, файлы в котором сможет


создавать, удалять и переименовывать любой, входящий в группу users, при
этом содержимое этого подкаталога не должно быть видимым всем прочим
пользователям.
g1u3@linux ~$ mkdir tmp
g1u3@linux ~$ ls -la
total 32
drwx-----x 6 g1u3 users 344 Feb 19 16:24 ./
drwxr-xr-x 155 root root 3728 Feb 12 14:49 ../
-rw------- 1 g1u3 users 1257 Feb 19 16:10 .bash_history
-rw-r--r-- 1 g1u3 users 24 Jan 30 18:19 .bash_logout
-rw-r--r-- 1 g1u3 users 230 Jan 30 18:19 .bash_profile
-rw-r--r-- 1 g1u3 users 124 Jan 30 18:19 .bashrc
-rw-r--r-- 1 g1u3 users 22 Jan 30 18:19 .inputrc
drwx------ 3 g1u3 users 144 Feb 19 16:10 .mc/
-rw-r--r-- 1 g1u3 users 238 Jan 30 18:19 .zshrc
drwx------ 2 g1u3 users 48 Feb 19 16:05 MHaha/
drwx------ 5 g1u3 users 120 Jan 30 18:19 Maildir/
-rw------- 1 g1u3 users 7 Feb 19 16:04 bugaga.txt
drwx------ 2 g1u3 users 48 Feb 19 16:24 tmp/
g1u3@linux ~$ chmod a-rwx /home/users/g1u3/tmp
g1u3@linux ~$ ls -l
total 4
drwx------ 2 g1u3 users 48 Feb 19 16:05 MHaha/
drwx------ 5 g1u3 users 120 Jan 30 18:19 Maildir/
-rw------- 1 g1u3 users 7 Feb 19 16:04 bugaga.txt
d--------- 2 g1u3 users 48 Feb 19 16:24 tmp/
g1u3@linux ~$ chmod u+rwx /home/users/g1u3/tmp
g1u3@linux ~$ ls -l
total 4
drwx------ 2 g1u3 users 48 Feb 19 16:05 MHaha/
drwx------ 5 g1u3 users 120 Jan 30 18:19 Maildir/
-rw------- 1 g1u3 users 7 Feb 19 16:04 bugaga.txt
drwx------ 2 g1u3 users 48 Feb 19 16:24 tmp/
g1u3@linux ~$
Вывод:
В ходе выполнения лабораторной работы были изучены основные
принципы работы в командной строке ОС семейства Unix. Они во много
схожи с принципами работы в ОС MS-DOS и в командной строке MS
Windows, хотя системы имеют принципиальные различия в организации
пользовательского интерфейса, в принципах организации дискового
пространства, способах взаимодействия с устройствами и т.д. Главным
преимуществом систем семейства Unix является их надёжность, возможность
работать с множеством устройств и процессоров, сравнительно невысокие
требования к аппаратной части оборудования, что делает их всесторонне
наиболее оптимальными для работы на серверах различного типа; в этом
качестве они, в основном, и используются