Занятие 2.
Тема: Файловая система Linux.
Вид занятия: лекция, практическое занятие.
Учебные вопросы:
1. Основные понятия: корневой каталог, точка монтирования,
домашний каталог.
2. Типы файлов. Обычные файлы. Каталоги. Файлы устройств.
Команды ls.
3. Навигация по файловой системе: команды cd, pushd,
popd, pwd.
4. Создание, удаление и копирование файлов. Команды
touch, rm, cp.
5. Операции с каталогами. Команды mkdir и rmdir.
6. Важнейшие каталоги файловой системы Linux.
Время: 90 минут
Литература:
1. Робачевский А.М. «Операционная система Unix®». – СПб.:
БВХ – Санкт-Петербург, 1999. – 528 с., ил.
2. Армстронг (мл.) Джеймс. «Секреты Unix®» : 2-е изд.: Пер. с
англ.: Уч. пос. – М.: Издательский дом «Вильямс», 2000. –
1072 с.: ил. – Парал. тит. англ.
3. Паркер Тим. «Linux 5.2. Энциклопедия пользователя»: Пер. с
англ. – К.: Издательство «ДиаСофт», 1999. – 688 с.
Ход занятия.
1. Файловая система Linux, в отличие от операционных систем семейства Windows
не не разделена по томам (дискам, устройствам), а имеет единую древовидную структуру,
в основе которой лежит корневой каталог. Корневой каталог - это уровень файловой
системы, выше которого по дереву каталогов подняться невозможно. В Linux корневой
каталог обозначается как / (именно / - слэш, а не - обратный слэш). Система позволяет
устанавливать много корневых каталогов. Так например для некоторого пользователя ftp
/home будет корневым каталогом и при обращении к клиенту ftp на смену каталога на
корневой пользователь будет попадать в /home.
Возникает вопрос, а как тогда разные физические устройства участвуют в
формировании единой файловой системы? Сделаем небольшой экскурс в историю. В то
время, когда создавалась ОС Юникс устройства – накопители информации представляли
собой ящик размером с письменный стол и назывались магнитными барабанами. В то
время не было необходимости подключать и отключать его по нескольку раз в час.
Поэтому не был выработан и механизм быстрой смены. Для подключения любого
устройства к файловой системе используется так называемая точка монтирования –
каталог, все вложенные уровни которого являются файловой системой на устройстве-
носителе. Например, при монтировании дискеты обычно используется каталог
/media/floppy. То есть, все каталоги и файлы, находящиеся внутри /media/floppy на самом
деле содержаться на дискете, вставленной в дисковод компьютера. Для подключения, или
монтирования, устройств используется специальная команда, которую мы изучим на
следующих занятиях. Таким образом подключаются и сетевые файловые системы, то есть
такие системы, которые реально находятся где-то на сервере сети, однако различий в
работе с ними пользователь не ощущает и видит сетевые файлы и каталоги, как если бы
они были расположены на локальном компьютере.
Есть у файловой системы Linux и еще одна особенность. Каждому пользователю в
ней выделяется домашний каталог – специальный каталог, необходимый для хранения
пользователем своих личных данных. При входе пользователя в систему, он сразу
оказывается в своем домашнем каталоге. Обычно права доступа к домашнему каталогу
пользователя выставлены таким образом, что доступ к каталогу запрещен всем кроме
владельца и администратора.
2. В файловой системе Линукс различают несколько типов файлов. Понятие «файл»
включает в себя также и интерфейсы работы с периферийными устройствами, и каналы,
позволяющие разным процессам в системе обмениваться данными.
[student@ns lesson_2]$ ls -l
total 40
-rwxr-xr-x 1 root root 2872 Aug 27 2001 arch
-rw-rw-rw- 1 root root 612 Jun 25 2001 chain.b
brw-rw---- 1 root disk 3, 1 Feb 3 15:38 hda1
drwxrwxrwx 2 root root 32768 Feb 3 15:38 ida
Преподаватель объясняет, как различить разные типы устройств, перечисляет
основные типы:
- простой файл
d каталог
l ссылка
b блочное устройство
с символьное устройство
Объясняет понятие скрытых файлов, а также каталогов «.» и «..». Показывает
разницу между командой ls и ls –a.
3. Навигация по файловой системе является одним из самых важных навыков при
работе с операционной системой Linux. Основными командами, используемыми при
навигации по файловой системе, являются:
pwd – показывает полное имя каталога, в котором находится пользователь.
[student@ns student]$ pwd
/home/student
[student@ns student]$_
cd – изменяет текущий каталог на указанный. cd без параметров или с параметром
~ изменяет текущий каталог на домашний. cd с параметром .. изменяет каталог на тот,
который находится на один уровень выше по дереву каталогов.
[student@ns student]$ pwd
/home/student
[student@ns student]$ cd primer
[student@ns primer]$ pwd
/home/student/primer
[student@ns primer]$ cd ..
[student@ns student]$ pwd
/home/student
[student@ns student]$ cd /home/student/primer
[student@ns primer]$ pwd
/home/student/primer
[student@ns primer]$ cd
[student@ns student]$ pwd
/home/student
[student@ns student]$ cd /bin
[student@ns bin]$ pwd
/bin
[student@ns bin]$ cd ~
[student@ns student]$ pwd
/home/student
[student@ns student]$_
pushd, popd – эти команды работают в связке. Команда pushd изменяет каталог на
указанный. pushd c параметром .. изменяет каталог на тот, который находится на один
уровень выше по дереву каталогов. Основное отличие этой команды от cd в том, что вся
история смены каталогов запоминается в стек и потом может быть использована для
быстрой обратной навигации с помощью команды popd.
[student@ns student]$ pushd /var
/var ~
[student@ns var]$ pushd log
/var/log /var ~
[student@ns log]$ popd
/var ~
[student@ns var]$ popd
~
[student@ns student]$
4. Пользователю Linux ежедневно приходиться создавать, копировать и удалять
файлы. Эти операции являются такими же важными, как перемещение по файловой
системе.
Команда cp используется для копирования файлов. Её синтаксис таков:
cp [параметры] <имя файла источника> <имя каталога приемника>
Наиболее часто используемым параметром является параметр -R, позволяющий
рекурсивно копировать каталоги, т.е со всем их содержимым.
[student@ns primer_3]$ cd ../primer_1/in_primer_1
[student@ns in_primer_1]$ ls
[student@ns primer_3]$ cd ../primer_3
[student@ns primer_3]$ cp in_primer_3 ../primer_1/in_primer_1/
[student@ns primer_3]$ cd ../primer_1/in_primer_1
[student@ns in_primer_1]$ ls
in_primer_3
[student@ns primer_2]$ cd ../primer_2
[student@ns primer_2]$ ls
in_primer_2 in_primer_2_2
[student@ns primer_3]$ cp -R * ../primer_2
[student@ns primer_3]$ cd ../primer_2
[student@ns primer_2]$ ls
in_primer_2 in_primer_2_2 in_primer_3
[student@ns primer_2]$
Команда touch позволяет создавать файлы. Её применение наиболее просто: touch
<имя файла>. Если файл с заданным именем существует в текущей директории, команда
touch обновит его время создания на текущее.
[student@ns lesson_3]$ ls
primer_1 primer_2 primer_3
[student@ns lesson_3]$ touch file
[student@ns lesson_3]$ ls
file primer_1 primer_2 primer_3
[student@ns lesson_3]$_
Команда rm используется для удаления файлов. Основные параметры,
используемые с командой rm это -i (удаление с подтверждением удаления), -r (рекурсивное
удаление) и -f (удаление всех файлов без подтверждения), -v (подробный описание
производимых действий). Параметры -r и -f используются для удаления большого
количества файлов. Но при их использовании необходимо быть предельно осторожным,
т.к. с помощью этих параметров можно уничтожить систему.
[student@ns lesson_3]$ rm -iv ./file
rm: remove `./file'? y
removing `./file'
[student@ns lesson_3]$_
5. Операции с каталогами также важны для пользователя Linux, как и основные
операции с файлами. Основные команды, используемые при работе с каталогами это –
rmdir и mkdir.
Команда mkdir позволяет создать каталог:
[student@ns student]$ ls
file primer_1 primer_2 primer_3
[student@ns student]$ mkdir catalog
[student@ns student]$ ls
catalog file primer_1 primer_2 primer_3
[student@ns student]$_
rmdir, наоборот, позволяет удалить каталог:
[student@ns student]$ ls
catalog file primer_1 primer_2 primer_3
[student@ns student]$ mkdir catalog
[student@ns student]$ ls
file primer_1 primer_2 primer_3
[student@ns student]$_
Обращаю ваше внимание на то, что команда rmdir, без использования дополнительных
параметров, может удалять ТОЛЬКО ПУСТЫЕ КАТОЛОГИ.
6. Файловая система Linux, как и любой другой unix-подобной операционной
системы, имеет строгую структуру каталогов. Каждый дистрибутив Linux может
несколько изменять структуру в зависимости от предпочтений разработчиков. Мы
рассмотрим те каталоги, которые используются в каждом дистрибутиве:
Имя каталога Описание
/bin в этом каталоге находятся основные исполняемые файлы, жизненно
необходимые для функционирования системы
/boot содержит ядро операционной системы и карты загрузки, а также
конфигурационные файлы загрузчиков (lilo, grub)
/dev содержит файлы, которые являются интерфейсом с периферийными
устройствами
/etc содержит основные файлы настроек приложений Linux
/home содержит дамашние папки пользователей
/lib содержит основные библиотеки, необходимые для нормальной работы
системы
/lost+found информация, восстановленная при проверке файловой системы на
наличие ошибок
/media точки монтирования отключаемых устройств (usb-диски, CD, floppy)
/mnt точки монтирования ISO-образов, сетевых файловых систем, других
постоянных файловых систем
/opt альтернатива usr, для коммерческого ПО или ПО, не входящего в
основной дистрибутив
/proc внутри этого каталога находится виртуальная файловая система proc,
создаваемая ядром Linux “на лету”. Содержит общую информацию о
системе и подробную о процессах.
/root домашний каталог пользователя root
/sbin утилиты суперпользователя
/srv файлы, выкладываемые для доступа всевозможных внешних служб
(например, tftp)
/sys внутри этого каталога также находится виртуальная файловая система,
только она содержит подробную информацию о процессах
/tmp в этом каталоге находятся временные файлы, используемые
запущенными в данный момент процессами
/usr программы, библиотеки и другие данные пользовательских приложений
/var/log содержит файлы журналов
К содержанию