Устройство файловой системы линукса

Устройство файловой системы линукса

Тема: Файловая система Linux .

Вид занятия: лекция, практическое занятие.

1. Основные понятия: корневой каталог, точка монтирования,

2. Типы файлов. Обычные файлы. Каталоги. Файлы устройств.

3. Навигация по файловой системе: команды cd , pushd ,

4. Создание, удаление и копирование файлов. Команды

5. Операции с каталогами. Команды mkdir и rmdir .

6. Важнейшие каталоги файловой системы Linux .

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. В файловой системе Линукс различают несколько типов файлов. Понятие файл включает в себя также и интерфейсы работы с периферийными устройствами, и каналы, позволяющие разным процессам в системе обмениваться данными.

Читайте также:  Мортал комбат для mac os

[student@ns lesson_2]$ ls -l

-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

Преподаватель объясняет, как различить разные типы устройств, перечисляет основные типы:

b блочное устройство

с символьное устройство

Объясняет понятие скрытых файлов, а также каталогов . и . Показывает разницу между командой ls и ls — a .

3. Навигация по файловой системе является одним из самых важных навыков при работе с операционной системой Linux . Основными командами, используемыми при навигации по файловой системе, являются:

pwd — показывает полное имя каталога, в котором находится пользователь.

[student@ns student]$ pwd

cd — изменяет текущий каталог на указанный. cd без параметров или с параметром

изменяет текущий каталог на домашний. cd с параметром .. изменяет каталог на тот, который находится на один уровень выше по дереву каталогов.

[student@ns student]$ pwd

[student@ns student]$ cd primer

[student@ns primer]$ pwd

[student@ns primer]$ cd ..

[student@ns student]$ pwd

[student@ns student]$ cd /home/student/primer

[student@ns primer]$ pwd

[student@ns primer]$ cd

[student@ns student]$ pwd

[student@ns student]$ cd /bin

[student@ns bin]$ pwd

[student@ns bin]$ cd

[student@ns student]$ pwd

pushd , popd — эти команды работают в связке. Команда pushd изменяет каталог на указанный. pushd c параметром .. изменяет каталог на тот, который находится на один уровень выше по дереву каталогов. Основное отличие этой команды от cd в том, что вся история смены каталогов запоминается в стек и потом может быть использована для быстрой обратной навигации с помощью команды popd .

[student@ns student]$ pushd /var

[student@ns var]$ pushd log

[student@ns log]$ popd

[student@ns var]$ popd

4. Пользователю Linux ежедневно приходиться создавать, копировать и удалять файлы. Эти операции являются такими же важными, как перемещение по файловой системе.

Команда 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

[student@ns primer_2]$ cd ../primer_2

[student@ns primer_2]$ ls

[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

[ student @ ns lesson _3]$_

Читайте также:  Linux первые символы строки

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

Обращаю ваше внимание на то, что команда rmdir, без использования дополнительных параметров, может удалять ТОЛЬКО ПУСТЫЕ КАТОЛОГИ.

6 . Файловая система Linux, как и любой другой unix- подобной операционной системы, имеет строгую структуру каталогов. Каждый дистрибутив Linux может несколько изменять структуру в зависимости от предпочтений разработчиков. Мы рассмотрим те каталоги, которые используются в каждом дистрибутиве:

в этом каталоге находятся основные исполняемые файлы, жизненно необходимые для функционирования системы

содержит ядро операционной системы и карты загрузки, а также конфигурационные файлы загрузчиков ( lilo, grub )

содержит файлы, которые являются интерфейсом с периферийными устройствами

содержит основные файлы настроек приложений Linux

содержит дамашние папки пользователей

содержит основные библиотеки, необходимые для нормальной работы системы

информация, восстановленная при проверке файловой системы на наличие ошибок

содержит каталоги — точки монтирования переносимых файловых систем ( floppy, cdrom, etc. )

каталог предназначен для коммерческого программного обеспечения

внутри этого каталога находится виртуальная файловая система proc , создаваемая ядром Linux “ на лету ”

в этом каталоге находятся временные файлы, используемые запущенными в данный момент процессами

программы, библиотеки и другие данные пользовательских приложений

Источник

Структура файловой системы Linux

Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.

Структура каталогов

В ОС Windows жесткие диски называются латинскими буквами (С:, D:, . ), и каждый из дисков представляет собой корневой каталог с собственным деревом папок. Подключение же нового устройства приведет к появлению нового корневого каталога со своей буквой (например, F:). В ОС Linux файловая система представлена единым корневым каталогом, обозначаемым как слэш (/). Соответственно, при данной файловой структуре не диски содержат каталоги, а каталог — диски.

Подключение внешних носителей

В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.

Понятие файла

Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.

Принцип установки программ

Если в Windows программы, зачастую, хранят все данные в одной папке, например в «C:Program FilesProgramName», то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.

Читайте также:  Обновление сервера 2012 r2 до windows server 2019

Регистр имен

Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.

Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:

Стандарт иерархии файловой системы

  • / — root каталог. Содержит в себе всю иерархию системы;
  • /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
  • /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
  • /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
  • /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
  • /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
  • /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
  • /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
  • /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
  • /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
  • /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
  • /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
  • /root — директория, которая содержит файлы и личные настройки суперпользователя;
  • /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
  • /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
  • /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
  • /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
  • /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
  • /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
  • /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.

Источник

Оцените статью