Читаем Свободные программы и системы в школе полностью

На «/dev/null» можно также переназначить и стандартный ввод; из него всегда читается пустой файл: подача команды «cat пустой_файл» приведет к появлению в текущем каталоге пустого файла «пустой_файл» (или опустошению существующего файла с таким именем).

Еще один интересный специальный файл-устройство – «/dev/tty». Это весьма абстрактное устройство, соответствующее терминалу, с которого запущена оболочка. Перенаправление вывода в или ввода из этого устройства не дает никакого видимого эффекта, поскольку совпадает с умолчанием (можно считать, что, если в команде явным образом не присутствуют перенаправления, ввод-вывод неявным образом направлен так: «/dev/tty 2>/dev/tty»), но его указание может пригодиться для команд, вводящих текст из файла, указанного в качестве операнда, или выводящих текст в такой файл.

Если Алиса взглянет на перечисленные файлы с помощью команды «ls -l» (Рис. 1-36), она обнаружит, что в поле «тип» присутствует не встречавшийся до сих пор символ «c».

Рис. 1-36

Символ «c» означает «устройство с посимвольным вводом-выводом»28.

Эти файлы устройств должны присутствовать в любой стандартной открытой системе, так же, как и содержащий их каталог «/dev/». Кроме них, в большинстве реализаций этот каталог содержит множество (сотни или даже тысячи) файлов (иногда организованных в подкаталоги), представляющих различные физические или виртуальные устройства. Любое устройство в открытой ОС представлено в виде файла. Некоторые из них (например, терминалы) представляют собой устройства с посимвольным вводом-выводом, некоторые (например, магнитные диски) – с поблочным. Тип файла-устройства с поблочным вводом-выводом обозначается буквой «b».

Оболочка как команда

Пожалуй, наиболее убедительной демонстрацией единства принципов открытых систем является следующий пример. Запишем в файл «сценарий» строки, соответствующие каким-либо уже известным нам командам (например, «date», «cal») и дадим команду «sh <сценарий» (Рис. 1-37).

Рис. 1-37

Команда «sh» является ни чем иным, как запуском еще одной оболочки, такой же29, как та, с которой Алиса работает, вводя команды с терминала. Поскольку ввод перенаправлен, команды читаются не с терминала, а из файла.

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

«Владение» файлом и «права» на него

Рассмотрим следующий пример (Рис. 1-38).

Рис. 1-38

Алиса известными нам уже командами «touch» и «ls» создает файл «файл» и убеждается в том, что он на самом деле создан. Затем она выполняет команду «chmod u-w файл» и обнаруживает, что поле «тип и права доступа» в выдаче «длинного» списка файлов претерпело некоторые изменения. Попытка перенаправить в этот файл ввод порождает сообщение оболочки «В доступе отказано».

Вспомним еще раз значения полей в «длинном» формате списка файлов, получаемого по команде «ls -l» (Рис. 1-39).

Рис. 1-39

Вот как устроено поле «тип и права» (Рис. 1-40).

Рис. 1-40

Оно всегда содержит десять символов. Значение первого символа нам уже известно: это «тип файла», которому могут соответствовать «-» (обычный файл), «d» (каталог) и некоторые другие символы, соответствующие специальным файлам (таким, как файлы устройств).

Остальные девять символов составляют три триады, выражающие права на файл в так называемой «rwx»-нотации. Они соответствуют трем категориям пользователей, определяемым относительно каждого файла.

В первую категорию «владелец» входит один пользователь, являющийся «владельцем» данного файла. Это пользователь, чье имя указано в соответствующем (третьем) поле «длинного» формата списка файлов. Обычно владелец файла – это создавший его пользователь.

Во вторую категорию входят все пользователи, входящие в группу пользователей. Группы пользователей – это механизм, введенный в стандарт открытых систем специально для распределения прав на файлы. Создание групп, включение в них пользователей и исключение пользователей из групп – административные действия. Файл имеет группу-владельца, совпадающую с текущей группой создавшего его пользователя на момент создания, а текущая группа обычно совпадает с первичной группой пользователя (пользователь может входить более, чем в одну группу).

В примере имя группы совпадает с именем пользователя31, но это разные сущности.

В третью категорию входят все остальные пользователи, т.е. все пользователи за исключением владельца и членов группы-владельца.

Для каждой категории определяются отдельные «правомочия» доступа к файлу.

Правомочие чтения разрешает чтение содержимого файла. Значение этого символа может быть «-» (запрещено) или «r» (разрешено; от англ. «read» («читать»)).

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT