ПРИЕМЫ ПРОФЕССИОНАЛЬНОЙ РАБОТЫ В 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, включающих одну-две командные строки, которые действуют неожиданно эф- фективно. Набор приложений предоставляет информацию, полезную при програм- мировании с помощью командного процессора и при отладке. Поскольку некоторые из инструментальных средств используют ко- мандные файлы, введенные ранее в данной книге, вы должны работать над книгой в соответствии с последовательностью глав, когда внедряете ко- мандные файлы в вашу систему. Однако вам не помешает сначала пере- листать всю книгу.