С точки зрения UNIX-подобных ОС, файл представляет собой поток или последовательность байтов. Такой подход позволяет распространить понятие файла на множество ресурсов не только локального компьютера, но и удаленного, связанного с локальным сетью любого рода. Доступ к любому такому ресурсу осуществляется через универсальный интерфейс, благодаря чему запись данных в файл, отправка их на физическое устройство или обмен ими с другой работающей программой происходит аналогично. Это очень упрощает организацию данных и обмен ими.
В ОС Linux можно выделить следующие типы файлов:
♦ обычные файлы — последовательность байтов (текстовые документы, исполняемые программы, библиотеки и т.п.);
♦ каталоги — именованные наборы ссылок на другие файлы;
♦ файлы физических устройств, подразделяющихся на:
• файлы блочных устройств, драйверы которых буферизуют ввод-вывод с помощью ядра и
• файлы байт-ориентированных, или символьных, устройств, позволяющих связанным с ними драйверам выполнять буферизацию собственными средствами;
♦ символические ссылки (symlink, symbolic link);
♦ именованные каналы (named pipes);
♦ гнезда (sockets).
Обычные файлы и каталоги
Свойства (атрибуты) файлов и каталогов можно вывести на терминал с помощью команды lsс ключом -l
:
$ls -l /home/den/README
-rwxr-xr-- 1 den users 0 Feb 14 19:08 /home/den/README
Что это за свойства?
Первый символ выведенной строки, в данном случае дефис, обозначает тип файла. Другие значения этого свойства: d — каталог, b — блочное устройство, с — символьное устройство, l — символическая ссылка, p — именованный канал и s — гнездо.
Следующие 9 символов означают права доступа к файлу. Они делятся на три тройки, обозначающие права: владельца, членов его группы и всех остальных. Внутри каждой тройки может присутствовать или отсутствовать: право чтения (r), записи (w) и исполнения (x, от execute ). Отсутствие права обозначается символом дефиса. С файлом README из нашего примера владелец (в общем случае, пользователь, создавший его) имеет право делать все, что угодно; члены его группы — только читать и запускать файл на выполнение; все остальные — только читать.
О следующем свойстве, количестве ссылок на файл, будет сказано в параграфе о символических ссылках.
Далее указаны имя владельца файла и имя его группы; размер файла в байтах; дата и время последней модификации и имя файла.
Для каталога вывод команды lsвыглядит так же, но значение некоторых свойств отличается.
$ls -l -a /home/den
drwx------ 3 den users 4096 Feb 14 19:02 .
drwxr-xr-x 4 root root 4096 Feb 02 11:32 ..
[...]
Ключ -а нужен, чтобы увидеть псевдоподкаталоги «.» и «..» (их имена начинаются с точки, поэтому эти файлы скрыты).
Бит чтения в правах доступа означает право просматривать содержание каталога, записи — право создавать и удалять файлы в каталоге, исполнения — право переходить в этот каталог (делать его своим текущим каталогом).
Файлы физических устройств
Все подключенные к компьютеру устройства понимаются операционной системой как файлы: вывод информации на терминал, печать на принтере, отправка почты — все это, с точки зрения ОС, есть запись в файл. Технически файл устройства — это коммуникационный интерфейс драйвера, ведающего взаимодействием с этим устройством. Большинство таких файлов располагается в каталоге /dev
.
Загляните в этот каталог, введя команду ls -l /dev
. Вывод этой команды займет несколько экранов, что создает повод для знакомства с командой-фильтром more, выводящей поступающие к ней на вход данные по одному экрану за раз:
$ ls -l /dev | more
Чтобы увидеть следующий экран, нажмите пробел; чтобы прервать работу команды — Ctrl+С. О символе вертикальной черты, разделяющей команды lsи more, подробнее сказано в п. 3.3.1.
Об именах устройств, соответствующих разделам жесткого диска, сказано в главе 1. В следующей таблице приведена краткая справка по именам других часто используемых устройств. Символ N означает номер устройства в группе однотипных с ним устройств.
Наиболее часто используемые стандартные имена устройств Таблица 2.2
Файл |
Устройство |
null |
Пустое устройство. Все данные, выводимые в него, просто исчезают. Удобно использовать его для вывода ненужных сообщений |
console |
Системная консоль, т.е. физически подключенные клавиатура и монитор |
ttyN |
Пользовательская (виртуальная) консоль. Linux поддерживает до 6 таких консолей, для переключения между которыми служит комбинация клавиш Alt+Fn, где n — число от 1 до 6 |
pts/N |
Виртуальный терминал. Программа графического режима, в окне которой можно работать как в консоли |
mouseN |
Мышь |
audioN |
Звуковая карта |
ttySN |
Последовательный порт. Файл /dev/ttyS0 соответствует порту COM1 в MS-DOS. /dev/ttyS1 — порту COM2 |
lpN |
Параллельный порт |
cuaN |
Специальное устройство для работы с модемом |
ethN |
Сетевая плата |
fdN |
Дисковод для гибких дисков. Первому, то есть А:, соответствует /dev/fd0, для В: используется имя /dev/fd1 |
hdxN |
Жесткий диск с интерфейсом IDE, где x — буква, обозначающая номер такого диска (начиная с а), N — номер раздела на диске |
sdxN |
Жесткий диск с интерфейсом SCSI |
Вместо размера файла команда lsвыдает два числа. Это так называемые старший и младший номера устройства. Старший номер несет информацию о драйвере, к которому относится данный файл, а младший номер указывает, к какому именно из однотипных устройств следует обращаться.
Читать дальше
Конец ознакомительного отрывка
Купить книгу