Брайан Керниган - UNIX — универсальная среда программирования
- Название:UNIX — универсальная среда программирования
- Автор:
- Жанр:
- Издательство:Финансы и статистика
- Год:1992
- Город:Москва
- ISBN:5-289-00253-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Брайан Керниган - UNIX — универсальная среда программирования краткое содержание
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.
Для программистов-пользователей операционной системы UNIX.
UNIX — универсальная среда программирования - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
$ mv junk sameoldjunk $ ls -li total 2
15274 drwxrwxrwx 4 you 64 Sep 27 09:34 recipes
15768 -rw-rw-rw- 1 you 29 Sep 27 13:16 sameoldjunk
$
sameoldjunk
— это тот же самый файл, что и наш старый файл junk
, вплоть до индекса файла, который связан с записью каталога с номером 15768; изменилось только его имя.
Все описанные выше манипуляции с файлами происходили в одном каталоге, однако команды применяются и в других каталогах. Команда ln
часто используется для того, чтобы установить связь с одним именем в разных каталогах; это бывает в тех случаях, когда несколько пользователей работают с одной программой или над одним документом. Команда mv может переслать файл или каталог из одного каталога в другой. На самом деле, это довольно стандартный прием, так что у команд mv
и cp
есть специальный синтаксис для такой ситуации:
$ mv
(или cp
) file1 file2 ... directory
Здесь показана пересылка (или копирование) одного или нескольких файлов в каталог, который является последним аргументом. Связи или копии файлов получаются под теми же именами. Например, если вы хотите "набить руку" в работе с редактором, то можете начать с
$ cp /usr/src/cmd/ed.с .
получив свою копию исходного текста редактора для экспериментов. Осваивая интерпретатор shell
, исходные тексты которого находятся в нескольких каталогах, задайте
$ mkdir sh
$ cp /usr/src/cmd/sh/* sh
и команда cp
скопирует все исходные тексты shell
в ваш вложенный каталог sh
(мы считаем, что в /usr/src/cmd/sh
нет вложенных каталогов, так как команда cp
не слишком "умна"). В некоторых случаях команду ln
допустимо применять с несколькими именами файлов в качестве аргументов, но имя каталога по-прежнему является последним аргументом. В ряде систем команды mv
, cp
и ln
сами служат связями, ссылающимися на один файл, который анализирует имя команды, чтобы узнать, какое задание выполнить.
Почему команда ls -l
выдает четыре связи у каталога recipes
?
Подсказка : попробуйте ввести
$ ls -ld /usr/you
Чем эта информация полезна?
В чем состоит разница между
$ mv junk junk1
и
$ cp junk junk1
$ rm junk
Подсказка : установите связь с junk
и затем используйте ее.
Команда cp
не производит копирования во вложенных каталогах, а ограничивается файлами первого уровня вложенности. Каковы будут ее действия, если один из аргументов окажется каталогом? Насколько это хорошо и осмысленно? Обсудите возможные преимущества трех вариантов: включить еще один флаг в cp
, чтобы работать с вложенными каталогами, ввести отдельную команду rcp
(рекурсивную cp
) для данного случая или просто предъявить к cp
требование копировать все файлы из каталога, если он встретится среди аргументов (см. гл. 7). Что получат другие программы, если они смогут перемещаться по дереву каталогов?
2.6 Иерархия каталогов
В первой главе рассмотрение иерархии файловой системы, начиная с каталога /usr/you
, носило несколько неформальный характер. Теперь мы хотим изучить ее последовательно, начиная от корня дерева.
Корневой каталог называется /
:
$ ls /
bin
boot
dev
etc
lib
tmp
unix
usr
$
Программа /unix
— это программа ядра UNIX: когда система начинает работу, /unix
считывается с диска в память и начинает выполняться. Все происходит за два шага: вначале считывается файл /boot
, а затем он считывает /unix
. Более подробно о таком процессе раскрутки можно узнать в справочном руководстве по boot(8)
. Остальные файлы каталога /
, по крайней мере в нашей версии, являются каталогами, каждый из которых представляет законченный раздел файловой системы. После дальнейшего краткого обзора иерархии читателю будет предоставлена возможность поэкспериментировать с упоминаемыми здесь каталогами. Чем лучше вы разберетесь в устройстве файловой системы, тем более эффективно сможете ею пользоваться. В табл. 2.1 указаны подходящие места для поиска, хотя некоторые имена каталогов зависят от системы.
/ |
Корень файловой системы |
/bin |
Основные программы, готовые к выполнению (двоичные) |
/dev |
Файлы устройств |
/etc |
"Разное" системы |
/etc/motd |
Сегодняшнее сообщение при входе в систему |
/etc/passwd |
Файл паролей |
/lib |
Основные библиотеки и т.п. |
/tmp |
Временные файлы; обновляется при запуске системы |
/unix |
Операционная система в форме, готовой к выполнению |
/usr |
Файловая система пользователей |
/usr/adm |
Системная служба: справочная информация и т.п. |
/usr/bin |
Команды для пользователей: troff и т.п. |
/usr/games |
Игровые программы |
/usr/include |
Файлы определений Си-программ, например math.h |
/usr/include/sys |
Системные файлы определений Си-программ, например inode.h |
/usr/lib |
Библиотеки для Си, Фортрана и т.п. |
/usr/man |
Диалоговое справочное руководство |
/usr/man/man1 |
Страницы справочного руководства раздела 1 |
/usr/mdec |
Диагностика ошибок аппаратуры, программы раскрутки и т.п. |
/usr/news |
Служба сообщений пользователей |
/usr/pub |
"Всякая всячина": см. ascii(7) и eqnchar(7) |
/usr/src |
Исходные тексты служебных функций и библиотек |
/usr/src/cmd |
Исходные тексты команд из /bin и /usr/bin |
/usr/src/lib |
Исходные тексты библиотечных функций |
/usr/spool |
Рабочий каталог для взаимодействующих программ |
/usr/spool/lpd |
Временный каталог для печатающего устройства |
/usr/spool/mail |
Почтовые ящики |
/usr/spool/uucp |
Рабочий каталог программ uucp |
/usr/sys |
Исходный текст ядра операционной системы |
/usr/tmp |
Альтернативный временный каталог (редко используется) |
/usr/you |
Ваш начальный каталог |
/usr/you/bin |
Ваши собственные программы |
Таблица 2.1: Интересные каталоги (см. также hier(7)
)
Каталог /bin
вам уже известен: в нем находятся основные программы типа who
или ed
.
Каталог /dev
(device — устройства) мы обсудим в следующем разделе.
Каталог /etc
(et cetera — и т.д.) также уже вам встречался ранее. В нем находится различная служебная информация, например файл паролей, и некоторые системные программы, такие, как /etc/getty
, которая инициирует связь с терминалом для команды /bin/login
, /etc/rc
— это файл команд, выполняющихся после раскрутки системы. В файле /etc/group
содержатся сведения о составе всех групп.
Интервал:
Закладка: