HTML Diff
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" &gt; pipe1<p>В примере выше мы создали туннель и передали в него информацию, а оболочка стала неинтерактивной. Прочитать данные можно на другом конце туннеля:</p>
24 mkfifo pipe1 echo "test test test" &gt; pipe1<p>В примере выше мы создали туннель и передали в него информацию, а оболочка стала неинтерактивной. Прочитать данные можно на другом конце туннеля:</p>
25 while read line ;do echo "Data: '$line' "; done&lt;pipe1<p>5.<strong>Файлы сокетов</strong>. Создают прямую связь между процессами в системе. Передают данные между процессами, которые запущены в различных средах либо даже на различных машинах. Означает это следующее: посредством сокетов программы могут осуществлять обмен информацией даже по сети. Работа сокета похожа на работу туннеля, но в обе стороны.</p>
25 while read line ;do echo "Data: '$line' "; done&lt;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