Рас Сэйдж.
Приемы профессиональной работы в UNIX
* ВВЕДЕНИЕ *
Непрерывное снижение цен, рост производительности в наше время и
ожидаемое появление новых микро- и супер-микрокомпьютеров делают мощь
системы UNIX доступной для все большего круга пользователей. Системы
UNIX или типа UNIX работают на любых машинах, от уровня PC-XT до AT и
выше. Доступность больших объемов оперативной памяти и мощных микроп-
роцессоров привела к возрастанию интереса к многозадачности, системам
мультипроцессирования - сфере, в которой UNIX имеет солидную репута-
цию.
Однако применение UNIX с максимальной отдачей - дело нелегкое.
Люди годами высказывали неудовлетворение тем, что она не является
"дружественной" по отношению к пользователю - и это разумная критика,
хотя на самом деле UNIX содержит средства для построения интерфейсов
любого требуемого уровня сложности. Наиболее важная причина трудоем-
кости эффективного использования UNIX состоит в том, что в системе
используются очень плодотворные идеи, не знакомые многим людям, рабо-
тавшим с более простыми операционными системами. UNIX предоставляет
также гораздо больше инструментальных средств, более гибких и с су-
щественно большими возможностями, чем, например, популярная MS-DOS (в
чем можно убедиться беглым сравнением соответствующих руководств).
Вероятно, Вы, читатель, начинали с изучения UNIX в объеме, доста-
точном для решения конкретных задач в вашей системе, будь то текстовая
обработка и форматирование текстов, программирование или запуск ста-
тистических пакетов. Через некоторое время вы, видимо, накопили (от
других людей или в результате собственной работы) небольшой набор при-
емов, включающий, возможно, некоторый опыт простого программирования
для интерпретатора командного процессора.
Хотя это естественный путь развития, принимая во внимание, что в
UNIX более 200 команд, вы можете не заметить или пропустить многие
мощные и полезные идеи. Более важно то, что вы можете лишиться
перспективного взгляда, который приходит с полным пониманием того, как
работают различные части UNIX, и концепций, которые лежат в их основе.
В книге показаны многие полезные инструментальные средства и при-
емы, которые вы можете сразу применять в работе, чтобы значительно по-
высить производительность UNIX. В отличие от некоторых книг, которые
просто представляют набор командных файлов или других средств, здесь
описываются подробности того, как работает каждая программа, и указы-
ваются некоторые направления адаптации программ для ваших конкретных
нужд. Сочетание инструментальных средств, концепций и техники решения
задач поможет вам стать мастером UNIX.
ЧТО ВЫ ДОЛЖНЫ УЖЕ ЗНАТЬ
Для того, чтобы извлечь пользу из данной книги, вы должны обла-
дать некоторым базовым опытом работы в системе UNIX. Вы должны знать
общие аспекты файловой системы, такие, как каталоги, вложенность и
маршрутные имена. Вы должны знать, как использовать один из редакторов
UNIX, чтобы вводить командные файлы интерпретатора командного про-
цессора и, по крайней мере, слегка знать программирование с использо-
ванием командного процессора. Мы сделали мало допущений, касающихся
того, что вы должны знать о данной команде или особенностях UNIX. Каж-
дая команда или понятие объясняется, когда оно вводится, а периоди-
ческие экскурсы в ваши руководства по UNIX могут прояснить все темные
места. Запомните одно: имеется так много команд с таким большим коли-
чеством опций, что даже мы, профессионалы, должны время от времени об-
ращаться к книге.
Если вы только начинаете использовать UNIX, то книга "UNIX Primer
Plus" ("Расширенный букварь по UNIX") Митчела Уэйта (Mitchell Waite),
Дональда Мартина (Donald Martin) и Стефена Прата (Stephen Prata)
(SAMS, 1983) даст вам исчерпывающее введение в предмет. Если вы уже не
новичок, но все еще не имеете четкого представления о внутренней рабо-
те командного процессора и программировании для него, то вам даст фун-
даментальные основы другая книга - "Advanced UNIX - A Programmer's
Guide" ("Руководство программиста по расширенному UNIX") Стефена Прата
(SAMS, 1985). Фактически эта книга является идеальным спутником и
справочником для дополнительных исследований, которые составляют нашу
книгу.
О КАКОЙ СИСТЕМЕ UNIX ИДЕТ РЕЧЬ
Имеется, конечно, много вариантов UNIX. Помимо основных семейств
реализаций UNIX (AT&T System V, Microsoft XENIX и Berkeley [BSD]),
распространено несколько различных командных процессоров, среди кото-
рых наиболее широко используются два - командный процессор Bourne ко-
мандный процессор Си. Все командные файлы в данной книге были провере-
ны и в System V, и в XENIX с использованием командного процессора
Bourne, за исключением тех случаев, которые специально отмечены. БОЛЬ-
ШИНСТВО наших командных файлов работает также под управлением команд-
ный процессор Bourne в BSD, хотя нескольких команд System V нет в
системе BSD и наоборот. Мы пытались указать те места, в которых эти
две системы существенно отличаются, и дать некоторые альтернативные
подходы для пользователей BSD.
Большинство наших командных файлов было также переписано для за-
пуска под управлением программного процессора Си после учета син-
таксических отличий. Если вы пользуетесь командным процессором Bourne
и хотели бы поэкспериментировать с программным процессором Си, то хо-
рошим введением является указанная ранее книга "Advanced UNIX - A
Programmer's Guide".
Если один из наших командных файлов не работает в вашей системе,
не впадайте в панику. Проверьте, пожалуйста, следующее:
- Какая у вас версия UNIX? Отмечали ли мы что-нибудь относительно
этой версии?
- Какой командный процессор вы используете (Bourne, Си или дру-
гой)?
- Должны ли вы поменять маршрутное имя в силу того, что в вашей
системе что-то находится в другой части?
- Не утратили ли вы прав доступа к определенному файлу? Не нужно
ли вам применить команду su, чтобы получить другой идентифика-
тор пользователя или стать в корень?
- Использует ли данный командный файл предварительно под-
готовленный командный файл, который вы еще не ввели в
вашу систему?
Большинство из этих советов довольно очевидны, но никогда не ме-
шает сделать глубокий вдох и внимательно подумать, прежде чем нырять в
отладочные сеансы.
ОБЗОР ГЛАВ
Давайте бросим беглый взгляд на то, что описывается в данной кни-
ге, чтобы вы получили представление о предмете книги и знали, где най-
ти нужную тему.
Глава 1 - введение в среду выполнения системы UNIX в целом,
способы обращения пользователей к ее различным частям. Вы увидите, ка-
ким образом ваш рост как мастера UNIX позволит вам максимально успешно
применять все аспекты и особенности среды.
В главе 2 рассматривается наиболее важная особенность среды UNIX
- файловая система - и вводятся инструментальные средства для изучения
файловых структур и содержимого файлов.
Глава 3 предоставляет средства для практических каждодневных за-
дач по сопровождению файлов - для копирования и сохранения файлов и
для удаления ненужных файлов.
В главе 4 описываются виды файлов, которые важны для программной
документации, и предоставляются инструментальные средства, которые об-
легчают вам сопровождение вашей растущей коллекции программных
средств.
В главе 5 обращено внимание на вашу собственную среду (home-сре-
ду) и личное администрирование. Сюда относится управление вашим плани-
рованием и задачами. Представлено несколько полезных средств, помогаю-
щих вам.
Глава 6 предоставляет способы получения сведений о других пользо-
вателях и средства для обеспечения безопасности вашего рабочего прост-
ранства в системе.
В главе 7 рассматриваются некоторые аппаратные части устройств
UNIX, особенно, терминалы и диски с некоторыми примерами инструмен-
тальных программных средств. Включены также инструменты для работы с
файловыми системами.
Глава 8 посвящена коммуникациям в UNIX - сфере, значимость кото-
рой быстро возрастает. Этот материал поможет вам работать с несогласо-
ванными модемами, а также с проблемами безопасности и управления, ко-
торые возникают при работе с командами cu и uucp. Предлагаемые
средства помогут вам в работе как с коммуникациями от UNIX к другой
операционной системе, так и от UNIX к UNIX. Приведены также практи-
ческие примеры аппаратных конфигураций.
Глава 9 вводит читателя в системное администрирование и безо-
пасность. Вы можете найти здесь информацию, которую вы могли бы полу-
чать самостоятельно только посредством многолетнего чтения и экспери-
ментирования. Поскольку UNIX становится более распространенным в "ре-
альном мире", безопасность становится очень важным вопросом. Мы
представляем концепции, даем информацию о том, за чем необходимо сле-
дить, и инструментальные средства, помогающие следить.
Глава 10 завершает книгу подборкой специальных приемов UNIX,
включающих одну-две командные строки, которые действуют неожиданно эф-
фективно.
Набор приложений предоставляет информацию, полезную при програм-
мировании с помощью командного процессора и при отладке.
Поскольку некоторые из инструментальных средств используют ко-
мандные файлы, введенные ранее в данной книге, вы должны работать над
книгой в соответствии с последовательностью глав, когда внедряете ко-
мандные файлы в вашу систему. Однако вам не помешает сначала пере-
листать всю книгу.
* ГЛАВА 1. Среда системы UNIX *
Введение
Многообразие сред системы UNIX
Ваш регистрационный каталог: как сделать его комфортным
Теории относительности a la UNIX
Жизнь системы UNIX: некоторые метафоры
СРЕДА СИСТЕМЫ UNIX
ВВЕДЕНИЕ
В данной главе рассматривается среда, которая существует в систе-
ме UNIX и вокруг нее. Освещение всех аспектов среды UNIX было бы слиш-
ком громоздкой задачей и выходит за пределы данной книги. Даже отдель-
ным утилитам, таким как fsdb и sdb, нужны свои собственные книги, что-
бы отдать им должное. Мы пытаемся дать читателю начальные сведения,
философию и ощущение системы UNIX, что лежит в основе исследований и
инструментов, представленных в этой книге.
Читая эту главу, вы, возможно, захотите прочитать (или перечи-
тать) команды profile(4), environ(5), term(5), termcap(5) и termio(7)
в руководствах по UNIX, чтобы ознакомиться с механизмами, которые пре-
доставляет UNIX для установки рабочей среды.
Внутри системы UNIX существует множество различных подсред. Все
вместе они образуют общую картину, в виде которой мы представляем себе
UNIX. Эта книга посвящена наиболее важным аспектам среды UNIX с целью
закладывания фундамента, необходимого для понимания всей системы. Это
даст вам контекст, в котором можно посмотреть на собственную работу в
системе, независимо от того, являетесь вы пользователем, программистом
или администратором системы.
В данной главе рассматриваются различные среды в компьютерах с
теоретической точки зрения, описывается "домашняя" среда и методы ее
установки, способы использования условных обозначений и глобальная
среда.
"МНОГООБРАЗИЕ СРЕД"
Каждая компьютерная система поддерживает много различных сред.
Эти среды используются как строительные блоки для создания функцио-
нальных рабочих систем. Различные уровни необходимы как для сокращения
объема работы по управлению машиной, так и для построения такого ин-
терфейса, чтобы мы могли использовать компьютер на относительно высо-
ком, удобном для человека уровне.
Мы рассматриваем эту модель, так как она помогает выстроить в ряд
уровни, на которых мы можем работать. Имея больше знаний о том, где мы