Брайан Керниган - 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содержатся сведения о составе всех групп.
Интервал:
Закладка: