1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>В Unix-подобных системах, куда входит и Linux, существует концепция "Всё есть файл". Согласно ей, работа с системой сводится к работе с файлами. Однако файлы в системе "Линукс" бывают разные. Об этом - наша статья.</p>
1
<p>В Unix-подобных системах, куда входит и Linux, существует концепция "Всё есть файл". Согласно ей, работа с системой сводится к работе с файлами. Однако файлы в системе "Линукс" бывают разные. Об этом - наша статья.</p>
2
<p>К файлам в системе Linux относят и объекты, куда мы записываем наши данные, и исполняемые файлы, и файлы специального назначения (устройств, туннелей, сокетов и пр.). Но всё это неважно, ведь мы в любом случае работаем именно с файлами, которые используются и для обычных данных, и для устройств.</p>
2
<p>К файлам в системе Linux относят и объекты, куда мы записываем наши данные, и исполняемые файлы, и файлы специального назначения (устройств, туннелей, сокетов и пр.). Но всё это неважно, ведь мы в любом случае работаем именно с файлами, которые используются и для обычных данных, и для устройств.</p>
3
<p>Преимущество такой концепции заключается в том, что отпадает необходимость в реализации отдельного набора API для каждого устройства, в результате чего с ним способны работать все стандартные программы системы "Линукс" и API-интерфейсы.</p>
3
<p>Преимущество такой концепции заключается в том, что отпадает необходимость в реализации отдельного набора API для каждого устройства, в результате чего с ним способны работать все стандартные программы системы "Линукс" и API-интерфейсы.</p>
4
<h2>Основные типы файлов Linux</h2>
4
<h2>Основные типы файлов Linux</h2>
5
<p>В системе Linux файлы делят на 3 главных типа: 1) обыкновенные (для хранения информации); 2) специальные (для туннелей и устройств); 3) директории.</p>
5
<p>В системе Linux файлы делят на 3 главных типа: 1) обыкновенные (для хранения информации); 2) специальные (для туннелей и устройств); 3) директории.</p>
6
<p>Теперь рассмотрим каждый из этих типов подробнее.</p>
6
<p>Теперь рассмотрим каждый из этих типов подробнее.</p>
7
<h2>Обыкновенные файлы</h2>
7
<h2>Обыкновенные файлы</h2>
8
<p>С обычными файлами мы работаем ежедневно. Они содержат текст, изображения, инструкции для работы софта и прочие данные. Это наиболее распространённый файловый тип в системе Linux. Сюда входят: 1) текстовые файлы; 2) файлы изображений, архивов, библиотек; 3) исполняемые и другие файлы.</p>
8
<p>С обычными файлами мы работаем ежедневно. Они содержат текст, изображения, инструкции для работы софта и прочие данные. Это наиболее распространённый файловый тип в системе Linux. Сюда входят: 1) текстовые файлы; 2) файлы изображений, архивов, библиотек; 3) исполняемые и другие файлы.</p>
9
<p>Для определения файлового типа в режиме списка используется утилита ls. Обычные файлы будут обозначаться чертой:</p>
9
<p>Для определения файлового типа в режиме списка используется утилита ls. Обычные файлы будут обозначаться чертой:</p>
10
-
<p>Говоря об обычных файлах в системе, обязательно упомянем форматы. Чтобы система понимала, какой утилитой открывать файлы, необходимо, чтобы они были сохранены в конкретном формате. Форматы тоже можно посмотре��ь, но уже с помощью команды file:</p>
10
+
<p>Говоря об обычных файлах в системе, обязательно упомянем форматы. Чтобы система понимала, какой утилитой открывать файлы, необходимо, чтобы они были сохранены в конкретном формате. Форматы тоже можно посмотреть, но уже с помощью команды file:</p>
11
<p>В примере выше система сообщила, что файл является исполняемым. А вот как обстоит дело в случе, если он текстовый:</p>
11
<p>В примере выше система сообщила, что файл является исполняемым. А вот как обстоит дело в случе, если он текстовый:</p>
12
<p>Так вы можете посмореть все файловые форматы:</p>
12
<p>Так вы можете посмореть все файловые форматы:</p>
13
<h2>Специальные файлы</h2>
13
<h2>Специальные файлы</h2>
14
<p>Файлы этого типа обеспечивают обмен информацией с ядром, работу с устройствами либо общение между утилитами. С учётом своего назначения они делятся на несколько видов: 1.<strong>Блочные</strong>. Файлы устройств, обеспечивающие буферный доступ к аппаратным компонентам. В процессе записи информации на жёсткий диск либо съёмный носитель данные не записываются сразу - это нерационально с точки зрения расходования ресурсов. Поэтому данные сначала собираются в буфере, для чего и используются блочные файлы. Они способны передавать большие блоки информации за один раз, и с их помощью файловая система и прочие утилиты получают возможность взаимодействовать с драйверами аппаратных устройств.</p>
14
<p>Файлы этого типа обеспечивают обмен информацией с ядром, работу с устройствами либо общение между утилитами. С учётом своего назначения они делятся на несколько видов: 1.<strong>Блочные</strong>. Файлы устройств, обеспечивающие буферный доступ к аппаратным компонентам. В процессе записи информации на жёсткий диск либо съёмный носитель данные не записываются сразу - это нерационально с точки зрения расходования ресурсов. Поэтому данные сначала собираются в буфере, для чего и используются блочные файлы. Они способны передавать большие блоки информации за один раз, и с их помощью файловая система и прочие утилиты получают возможность взаимодействовать с драйверами аппаратных устройств.</p>
15
<p>Если вернутся к уже упомянутой программе ls, то блочные файлы обозначаются буквой b. Давайте выведем их из /dev:</p>
15
<p>Если вернутся к уже упомянутой программе ls, то блочные файлы обозначаются буквой b. Давайте выведем их из /dev:</p>
16
<p>Файловые типы также умеет определять и утилита file:</p>
16
<p>Файловые типы также умеет определять и утилита file:</p>
17
<p>2.<strong>Символьные</strong>. С их помощью обеспечивается небуферизованный доступ к ядру и аппаратным компонентам. Это значит, что они могут передавать за раз лишь один символ. В остальном, это те же файлы устройств.</p>
17
<p>2.<strong>Символьные</strong>. С их помощью обеспечивается небуферизованный доступ к ядру и аппаратным компонентам. Это значит, что они могут передавать за раз лишь один символ. В остальном, это те же файлы устройств.</p>
18
<p>Как и в случае с блочными, вы можете отсортировать их посредством ls. Для символьных файлов предусмотрена буква c (character):</p>
18
<p>Как и в случае с блочными, вы можете отсортировать их посредством ls. Для символьных файлов предусмотрена буква c (character):</p>
19
<p>3.<strong>Символические ссылки</strong>. Они указывают на другие файлы по их имени, способны указывать и на обыкновенные файлы, и на каталоги, и на другие файловые типы. Можно сказать, что они аналогичны ярлыкам в системе Windows. Обозначаются буквой l (link):</p>
19
<p>3.<strong>Символические ссылки</strong>. Они указывают на другие файлы по их имени, способны указывать и на обыкновенные файлы, и на каталоги, и на другие файловые типы. Можно сказать, что они аналогичны ярлыкам в системе Windows. Обозначаются буквой l (link):</p>
20
<p>Создать символические ссылки можно посредством утилиты ln:</p>
20
<p>Создать символические ссылки можно посредством утилиты ln:</p>
21
ln -s file1.txt file2.txt<p>4.<strong>Туннели/именованные туннели</strong>. Обеспечивают настройку связи между 2-мя процессами в системе, перенаправляя вывод одного на вход другого. Туннели именованного типа тоже применяются для связи между 2-мя процессами и функционируют, как и обыкновенные туннели.</p>
21
ln -s file1.txt file2.txt<p>4.<strong>Туннели/именованные туннели</strong>. Обеспечивают настройку связи между 2-мя процессами в системе, перенаправляя вывод одного на вход другого. Туннели именованного типа тоже применяются для связи между 2-мя процессами и функционируют, как и обыкновенные туннели.</p>
22
<p>Для их обозначения существует буква p (pipe):</p>
22
<p>Для их обозначения существует буква p (pipe):</p>
23
<p>Для создания именованного туннеля воспользуйтесь утилитой mkfifo:</p>
23
<p>Для создания именованного туннеля воспользуйтесь утилитой mkfifo:</p>
24
mkfifo pipe1 echo "test test test" > pipe1<p>В примере выше мы создали туннель и передали в него информацию, а оболочка стала неинтерактивной. Прочитать данные можно на другом конце туннеля:</p>
24
mkfifo pipe1 echo "test test test" > pipe1<p>В примере выше мы создали туннель и передали в него информацию, а оболочка стала неинтерактивной. Прочитать данные можно на другом конце туннеля:</p>
25
while read line ;do echo "Data: '$line' "; done<pipe1<p>5.<strong>Файлы сокетов</strong>. Создают прямую связь между процессами в системе. Передают данные между процессами, которые запущены в различных средах либо даже на различных машинах. Означает это следующее: посредством сокетов программы могут осуществлять обмен информацией даже по сети. Работа сокета похожа на работу туннеля, но в обе стороны.</p>
25
while read line ;do echo "Data: '$line' "; done<pipe1<p>5.<strong>Файлы сокетов</strong>. Создают прямую связь между процессами в системе. Передают данные между процессами, которые запущены в различных средах либо даже на различных машинах. Означает это следующее: посредством сокетов программы могут осуществлять обмен информацией даже по сети. Работа сокета похожа на работу туннеля, но в обе стороны.</p>
26
<p>Для обозначения предусмотрена буква s:</p>
26
<p>Для обозначения предусмотрена буква s:</p>
27
<p>Создадим Unix-сокет с помощью утилиты nc:</p>
27
<p>Создадим Unix-сокет с помощью утилиты nc:</p>
28
<p>И теперь подключимся к этому сокету из другой консоли:</p>
28
<p>И теперь подключимся к этому сокету из другой консоли:</p>
29
<p>Связь функционирует в обоих направлениях, поэтому после нажатия Enter вся информация, которую вы будете вводить в одной из консолей, станет отправляться в другую.</p>
29
<p>Связь функционирует в обоих направлениях, поэтому после нажатия Enter вся информация, которую вы будете вводить в одной из консолей, станет отправляться в другую.</p>
30
<h2>Каталоги</h2>
30
<h2>Каталоги</h2>
31
<p>Каталог может содержать и обычные, и специальные файлы, то есть любые файловые типы в системе Linux. Они объединяют файлы (а также другие каталоги) в группы, чтобы упростить навигацию и поиск. В системе Linux файлы организовываются в папки, начиная от корня (/).</p>
31
<p>Каталог может содержать и обычные, и специальные файлы, то есть любые файловые типы в системе Linux. Они объединяют файлы (а также другие каталоги) в группы, чтобы упростить навигацию и поиск. В системе Linux файлы организовываются в папки, начиная от корня (/).</p>
32
<p>Каталоги обозначаются буквой d (directory):</p>
32
<p>Каталоги обозначаются буквой d (directory):</p>
33
<p>Для создания каталога используют команду mkdir:</p>
33
<p>Для создания каталога используют команду mkdir:</p>
34
<h2>Вывод</h2>
34
<h2>Вывод</h2>
35
<p>В статье мы рассмотрели довольно простые вещи, которые касались типов файлов в Linux. Но если вы хотите освоить администрирование операционной системы Linux на продвинутом уровне, имеет смысл ознакомиться со специализированным курсом от практикующих администраторов. Не пропустите:</p>
35
<p>В статье мы рассмотрели довольно простые вещи, которые касались типов файлов в Linux. Но если вы хотите освоить администрирование операционной системы Linux на продвинутом уровне, имеет смысл ознакомиться со специализированным курсом от практикующих администраторов. Не пропустите:</p>
36
<p><em><a>Источник</a></em></p>
36
<p><em><a>Источник</a></em></p>
37
37