Что считается файлами в oc unix
Структура файловой системы Linux
Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.
Структура каталогов
Подключение внешних носителей
В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.
Понятие файла
Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.
Принцип установки программ
Если в Windows программы, зачастую, хранят все данные в одной папке, например в «C:Program FilesProgramName», то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.
Регистр имен
Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.
Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:
Типы файлов в Linux
Пространство нашего жесткого диска занято файлами разных типов. Например, взять даже наш корневой раздел (/), при создании файла, файловая система записывает его в определенном формате на нужное физическое место жесткого диска. Всегда, для работы с файлами используется файловая система, но не всегда она записывает файлы на диск, файловая система может работать на лету, генерируя файлы, например, как procfs, с помощью которой может быть выполнена настройка ядра linux или записывать файлы в оперативную память, как tmpfs расположенная в папке /tmp. Но все это не имеет значения, ведь в любом случае мы имеем дело именно с файлами.
В системе Linux нет различий между каталогами и файлами. Но каталоги могут объединять другие файлы в группы, чтобы их было легче найти и использовать. Все аппаратные устройства представлены в виде файлов и находятся в каталоге dev, только через эти файлы программы могут работать с ними.
Преимущество использования файлов как для обычной информации, так и для устройств, в том, что не нужно реализовать отдельный набор API интерфейсов для каждого устройства, с ним могут работать все стандартные утилиты Linux и API интерфейсы.
Типы файлов в Linux
Файлы в операционной системе Linux можно поделить на три основных типа:
Дальше рассмотрим более подробно эти типы файлов linux.
Обычные файлы
Это файлы, с которыми мы привыкли работать каждый день, они могут содержать текст, исполняемые инструкции для программ, изображения или другую информацию. Это самый распространенный тип файлов, которые вы можете найти в системе Linux. Рассмотрим небольшой список относящихся сюда файлов:
Утилита ls может определять тип файла в режиме списка, обычные файлы обозначаются черточкой, например:
Эта статья была бы неполной, если бы мы рассматривали типы файлов, но не упомянули о форматах. Дело в том, что все обычные файлы сохранены в определенном формате, это нужно, чтобы система знала какой программой нужно открывать файл.
Посмотреть форматы файлов linux можно с помощью утилиты file. Например:
Система сообщила что это исполняемый файл, а теперь посмотрим обычный, текстовый:
Утилита умеет распознавать все известные форматы файлов. Чтобы узнать вывести все доступные форматы файлов linux наберите:
Специальные файлы
Специальные файлы намного интереснее, они предназначены для обмена информации с ядром, работы с устройствами или общения между программами. Такие файлы могут тоже быть нескольких типов, в зависимости от назначения.
Утилита ls обозначает блочные файлы буквой b, например, выберем все блочные файлы из каталога /dev:
Утилита file, которую мы рассматривали в предыдущем разделе тоже умеет определять типы файлов:
Символьные файлы обеспечивают не буферизованный доступ к аппаратным компонентам и ядру. Поскольку у них нет буфера, они позволяют передавать только по одному символу за один раз. А в остальном, это такие же файлы устройств, как и блочные файлы.
Вы также можете отфильтровать их с помощью ls. Символьные файлы обозначаются буквой c (character):
Но вернемся к символическим ссылкам. Утилита ls обозначает их буквой l (link):
Создавать символические ссылки можно с помощью утилиты ln. Например:
Обозначаются такие типы файлов linux буквой p (pipe):
Чтобы создать именованный тоннель вы можете использовать утилиту mkfifo:
echo «test test test» > pipe1
После создания туннеля мы передали в него данные, и оболочка стала не интерактивной. Она будет ожидать пока данные будут прочитаны на другом конце туннеля. Открываем другую оболочку и читаем данные:
while read line ;do echo «Data: ‘$line’ «; done
Файлы сокетов обозначаются буквой s:
Создать сокет можно с помощью функции socket() на языке программирования Си, чтение и запись выполняется системными вызовами read() и write(). Но нам сейчас не нужно писать реальную программу, будет достаточно немного поиграться. Поэтому воспользуемся утилитой nc. Создаем Unix сокет:
Подключаемся к нему из другой консоли:
Все данные, которые вы будете набирать в одной из консолей будут отправляться на другую после нажатия Enter, связь работает в обоих направлениях.
Каталоги
Это специальные файлы, которые позволяют объединять другие и каталоги в группы для более простой навигации и поиска. Естественно, они могут содержать как обычные, так и специальные файлы, одним словом любые типы файлов ос linux. В системе Linux, файлы организуются в папки начиная от корня (/)
Обозначаются каталоги буквой d (directory):
Создать каталог в linux можно с помощью команды mkdir:
Заключение
Теперь у вас более четкое представление о том, почему в linux все является файлами, а также какие типы файлов в linux существуют в вашей системе. Вы можете найти более подробную информацию по каждому виду файлов в интернете, но если у вас остались вопросы, можете задать их в комментариях!
Типы файлов в Linux
При навигации по файловой системе в Linux, вы обязательно столкнетесь с различными типами файлов. Наиболее часто используемые и очевидные типы — это обычные файлы и каталоги. Однако помимо их в Linux также существуют еще 5 специальных типов.
Идентификация типов файлов в Linux
Для определения типа файла достаточно воспользоваться всего одной командой:
Типы файлов в Linux
Ниже представлено краткое описание 7 различных типов файлов в Linux:
c — символьное устройство;
b — блочное устройство;
s — (локальный) сокет;
p — именованный канал;
l — символьная ссылка.
Обычный файл
Обычный файл — это наиболее распространенный тип файлов в Linux. Текстовые файлы, изображения, двоичные файлы, общие библиотеки и т.д. — все они относятся к обычному типу файлов. Вы можете создать обычный файл с помощью команды touch :
$ touch ravesli.txt
diego@debian:
$ rm ravesli.txt
diego@debian:
Каталог
Обозначается как d
Каталог — это второй по распространенности тип файлов в Linux. Каталог можно создать с помощью команды mkdir (сокр. от «make directory»):
$ mkdir ravesli
diego@debian:
$ rmdir ravesli
diego@debian:
При попытке удалить каталог, содержащий внутри себя файлы, вы получите сообщение об ошибке:
$ mkdir ravesli
diego@debian:
$ touch /home/diego/ravesli/ravesli.txt
diego@debian:
$ rmdir ravesli
rmdir: не удалось удалить ‘ravesli’: Каталог не пуст
Символьное устройство
Обозначается как c
Символьные и блочные файлы устройств позволяют пользователям и программам взаимодействовать с аппаратными периферийными устройствами. При этом символьные устройства обеспечивают последовательный поток ввода или вывода:
В этом примере символьным устройством является генератор псевдослучайных чисел.
Блочное устройство
Обозначается как b
Блочные устройства похожи на символьные. Чаще всего они управляют аппаратными устройствами, такими как: жесткие диски, память и т.д. Большинство из них располагаются в каталоге /dev :
Локальные сокеты
Обозначаются как s
Как правило, локальные сокеты используются для связи между такими службами, как: X Window, syslog и т.д.
Именованные каналы
Обозначаются как p
Символьные ссылки
Обозначаются как l
С помощью символьных ссылок администратор назначает файлу или каталогу несколько идентификаторов. Символьную ссылку можно рассматривать как указатель на исходный файл.
Существует два типа символьных ссылок в Linux:
Мягкая ссылка является указателем на некоторый файл или каталог (сродни ярлыкам в Windows). Если вы переместите файл, связь с символьной ссылкой разорвётся (но сама ссылка все еще будет существовать, указывая на файл, которого нет). Если вы замените файл другим, сохранив имя, символьная ссылка будет указывать на новый файл. Символьные ссылки могут охватывать различные разделы файловой системы.
Жесткая ссылка привязывается только к файлам, охватывает только один раздел файловой системы и, по сути, является тем же файлом, на который ссылается.
$ echo file1 > file1
diego@debian:
$ cat file2
file1
diego@debian:
Заключение
Как системный администратор вы, в основном, будете иметь дело с обычными файлами, каталогами и символьными устройствами. Как разработчик программного обеспечения вы будете сталкиваться с сокетами и именованными каналами.
Поделиться в социальных сетях:
Типы пользователей и Права доступа в Linux
Добавить комментарий Отменить ответ
Unix / Linux — Основы файловой системы
Файловая система — это логическая коллекция файлов на разделе или диске. Раздел представляет собой контейнер для информации и при желании может охватывать весь жесткий диск.
Одна файловая система на раздел позволяет логически обслуживать и управлять различными файловыми системами.
Все в Unix считается файлом, включая физические устройства, такие как DVD-диски, USB-устройства и дисководы.
Структура каталогов
Unix использует иерархическую структуру файловой системы, очень похожую на перевернутое дерево, с корнем (/) в основе файловой системы и всеми остальными каталогами, распространяющимися оттуда.
Файловая система Unix — это набор файлов и каталогов, который имеет следующие свойства:
У него есть корневой каталог ( / ), который содержит другие файлы и каталоги.
Это автономно. Нет никаких зависимостей между одной файловой системой и другой.
У него есть корневой каталог ( / ), который содержит другие файлы и каталоги.
Это автономно. Нет никаких зависимостей между одной файловой системой и другой.
Каталоги имеют конкретные цели и, как правило, содержат одинаковые типы информации для удобного поиска файлов. Ниже приведены каталоги, которые существуют в основных версиях Unix —
Sr.No. | Каталог и описание | ||||||||
---|---|---|---|---|---|---|---|---|---|
1 |
Sr.No. | Команда и описание | |||||
---|---|---|---|---|---|---|
1 |
Sr.No. | Колонка и описание | ||
---|---|---|---|
1 |
Sr.No. | Команда и описание |
---|---|
1 |