В Unix помимо обычных файлов и каталогов существуют еще и специальные файлы. Они используются для обозначения физических устройств компьютера. (Железок). В сущности, что такое файл? Это
"нечто", куда можно записывать данные, как последовательность
байтов, и считывать их оттуда. И значит, вполне естественным
выглядит, например, файл /dev/console - соответствующий консольному терминалу. Все, что выводится в файл /dev/console,
будет просто появляться на экране терминала. При попытке чтения
из файла /dev/console, вы будете получать (внимание!), не то,
что нарисовано в данный момент на экране, а то, что вводится с
клавиатуры. Попробуйте выполнить команды
su
echo Привет > /dev/console
cat /dev/console
Ctrl-C
Для каждого терминала unix-машины существует соответствующий
ему файл. Обычным терминалам соответствуют файлы, которые
называются примерно так:
/dev/contty01 или /dev/tty02 или /dev/ttyFD02 или /dev/ttyS0
(и т.д., возможны варианты)
Псевдо-терминалам (они эмулируются, когда вы входите в систему
по сети, посредством команд типа telnet, rlogin), соответствуют
специальные файлы
/dev/pty*, или /dev/pty/*
Команда who, или who am i сообщит вам, как называется ваш
собственный терминал.
Существуют специальные файлы, соответствующие жесткому диску в
целом (/dev/rdsk/m197_c0d0s7), и всем его разделам
(/dev/dsk/m197_c0d0s*). Если вы будете читать из этих файлов,
то получите все байтики, как они лежат на жестком диске, с
нулевого цилиндра и до последнего... А если вы в этот файл
/dev/mem | - файл, изображающий оперативную память. |
/dev/audio | - если "закатить" в него файл звукового формата (*.wav, *.au, ...?) - то он будет озвучен динамиком компьютера, а команда cat /dev/audio будет принимать все, что произносится в микрофон. Впрочем я отвлекся, у нас ведь не PC, не Silicon Graphic и не SPARCstation. |
/dev/zero | - из него можно считать сколько угодно нулевых байтов |
/dev/null | - а в него можно писать и читать из него тоже, в неограниченных количествах, и с неизменным результатом: NULL - он и есть null. А в MSDOS его аналог называется NUL ). |