Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по Fedora Core / 2008-03-11-12-12-Екатерина-Fedora_наша.doc
Скачиваний:
45
Добавлен:
01.05.2014
Размер:
1.18 Mб
Скачать

Файлы физических устройств

Все подключенные к компьютеру устройства понимаются операционной системой как файлы: вывод информации на терминал, печать на принтере, отправка почты - все это, с точки зрения ОС, есть запись в файл. Технически файл устройства - это коммуникационный интерфейс драйвера, ведающего взаимодействием с этим устройством. Большинство таких файлов располагается в каталоге /dev.

Заглянем в этот каталог, введя команду Is -I /dev. Вывод этой команды займет несколько экранов, что создает повод для знакомства с командой-фильтром more, выводящей поступающие к ней на вход данные по одному экрану за раз:

$ Is -I /dev I more

Чтобы увидеть следующий экран, нажмите пробел; чтобы прервать работу команды - Ctrl+С. В следующей таблице приведена краткая справка по именам часто используемых устройств. Символ N означает номер устройства в группе однотипных с ним устройств.

Наиболее часто используемые стандартные имена устройств

Файл

Устройство

null

Пустое устройство. Все данные, выводимые в него, просто исчезают.

Удобно использовать его для вывода ненужных сообщений

console

Системная консоль, т.е. физически подключенные клавиатура и монитор

ttyN

Пользовательская (виртуальная)консоль. Linux поддерживает до 6 таких консолей, для переключения между которыми служит комбинация клавиш Alt+Fn, где п - число от 1 до 6

pts/N

Виртуальный терминал.

Программа графического режима, в окне которой можно работать как в консоли

mouseN

Мышь

audioN

Звуковая карта

ttySN

Последовательный порт. Файл /dev/ttySO соответствует порту СОМ1 в MS-DOS, /dev/ttyS1 — порту COM2

IpN

Параллельный порт

cuaN

Специальное устройство для работы с модемом

ethN

Сетевая плата

fdN

Дисковод для гибких дисков.

Первому, то есть А:, соответствует /dev/fdO, для В: используется имя /dev/fd1

hdxN

Жесткий диск с интерфейсом IDE, где х — буква, обозначающая номер такого диска (начиная с а), N — номер раздела на диске

sdxN

Жесткий диск с интерфейсом SCSI

Вместо размера файла команда Is выдает два числа. Это так называемые старший и младший номера устройства. Старший номер несет информацию о драйвере, к которому относится данный файл, а младший номер указывает, к какому именно из однотипных устройств следует обращаться.

Жесткие и символические ссылки

Жесткая ссылка является просто другим именем для исходного файла. После создания такой ссылки ее невозможно отличить от исходного имени файла. «Настоящего» имени у файла нет, точнее, все такие имена будут настоящими. Команда Is показывает количество именно таких жестких ссылок. Удаление файла по любому из его имен уменьшает на единицу количество ссылок, и окончательно файл будет удален только тогда, когда это количество станет равным нулю. Поэтому удобно использовать жесткие ссылки для того, чтобы предотвратить случайное удаление важного файла.

Создадим жесткую ссылку на файл README и посмотрим, что измени-

лось в его свойствах:

$ln /home/den/README /home/den/readme_too

$ls -1 /home/den/README

-rwxr-xr-- 2 den users 0 Feb 14 19:08 /home/den/README

Жесткую ссылку можно создавать в любом каталоге, но обязательно на

том же физическом носителе (то есть в той же файловой системе), что и

исходный файл.

Другой тип ссылок представляют собой символические ссылки. По назначению они аналогичны ярлыкам в ОС Windows: указывают на файл, расположенный где угодно (например, на съемном носителе), и после удаления такого файла или размонтирования съемного носителя становятся бесполезны.

Символическая ссылка создается той же командой In с ключом -s:

$ln -s /home/den/README /home/den/do.not.readme

$ls -1 /home/den/do.not.readme

lrwxrwxrwx 1 den users 16 Feb 14 19:17 /home/den/do.not.

readme -> /home/den/README

В поле имени файла после стрелки указано его настоящее имя. Права доступа у всех символических ссылок одинаковы и не значат ничего: возможность доступа к файлу определяется правами исходного файла.

Заметим, что в отличие от файла-оригинала файл-ссылка имеет ненулевую длину: в нем хранится абсолютное имя исходного файла. Попытаемся вывести файл-ссылку на экран с помощью команды cat, и мы увидим содержание исходного, пустого, файла:

$ cat /home/den/do.not.readme

$

Значение самой ссылки, то есть имя файла, на который она ссылается, можно узнать с помощью команды readlink.

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

Можно даже закольцевать такую цепочку:

$ touch al

$ In -s al a2; rm al

$ In -s a2 al

$ Is -1 a? # это шаблон имени. Ему соответствуют все имена из двух букв, первая «а»

al -> а2

а2 -> al

$ cat al

cat: al: Too many levels of symbolic links

Практический смысл этого - убедить в том, что Linux корректно справляется с разрешением ссылок даже в намеренно некорректной ситуации.

Символическая ссылка на каталог может участвовать в образовании полного имени файла, но есть одна тонкость: по ссылке нельзя проследовать обратно в направлении корня дерева каталогов. Вместо псевдоподкаталога «..» подставляется родительский каталог каталога-оригинала. Так, если в домашнем каталоге пользователя ivan есть ссылка на домашний каталог пользователя den, то путь /home/ivan/link_to_den_home/.. эквивалентен не /home/ivan, a /home/den/.., то есть /home.