Мы предполагаем, что у читателей есть определенный опыт работы с Linux или UNIX. В частности, необходимо иметь общее представление о системе с точки зрения пользователя, поскольку мы не будем на этом останавливаться. Книги, перечисленные в разделе 1.14, помогут заложить необходимый фундамент знаний.
Даже в дни композитных оконных 3D-менеджеров (например, Compiz Fusion) GUI-инструменты для UNIX- и Linux-систем остаются довольно простыми по сравнению с навороченными базовыми программами. На практике большинство задач администрирования по-прежнему решается путем редактирования конфигурационных файлов и написания сценариев, поэтому читатели должны быть знакомы как с оболочкой командной строки, так и с каким-нибудь текстовым редактором.
Ваш редактор может иметь графический интерфейс (как у gedit) или работать в среде интерпретации командной строки (как vi или emacs). Такие текстовые процессоры, как Microsoft Word и OpenOffice Writer, кардинально отличаются от упомянутых текстовых редакторов и практически бесполезны для решения задач администрирования. Командные редакторы имеют неоспоримое преимущество, поскольку они могут преодолевать простые SSH-соединения и работать на слабых системах, которые отказываются выполнять начальную загрузку; поэтому в оконных системах нет никакой необходимости. Кроме того, они действуют гораздо быстрее маленьких проворных редакторов, которые часто создают администраторы.
Рекомендуем изучить редактор vi (или его версию vim). Он является стандартным для всех UNIX- и Linux-систем и, хотя выглядит несколько “бледным” на фоне более мощных программ (в частности, emacs), абсолютно пригоден для работы. Нам также нравится GNU-редакгор nano, который прост и прекрасно подходит новичкам, к тому же он оснащен экранными подсказками. Остерегайтесь нестандартных редакторов. Если отдать предпочтение одному из них, очень быстро надоест устанавливать его в каждой новой системе.
Одним из важнейших инструментов системного администратора являются сценарии для автоматизации основных задач. Примеры такого рода сценариев приводятся на протяжении всей книги. Для того чтобы стать профессионалом, необходимо научиться читать и модифицировать сценарии, написанные на языке интерпретатора sh (в Linux его эквивалент — интерпретатор bash).
Подробнее о написании сценариев рассказывается в главе 2.
Для новых проектов мы рекомендуем применять язык Perl или Python. Как язык программирования Perl несколько необычен, однако содержит много средств, необходимых администраторам. В качестве учебника по этому языку советуем прочесть книгу Ларри Уолла Programming Perl; она также представляет собой образец профессионального технического руководства. Библиографическое описание этой книги приведено в разделе 1.14.
Многие администраторы предпочитают иметь дело с языком Python. В определенном смысле это более элегантный язык, чем Perl, и его сценарии обычно легче читать и сопровождать. (Вот что сказал по этому поводу бывший сотрудник издательства Amazon Стив Йег: “Python уже давно стал пристанищем для тех, кто, наконец, принял красную пилюлю и освободился от Perl-матрицы”.) Статьи, посвященные сравнению языка Python с другими языками (включая Perl), можно найти по следующему адресу: https://wiki.python.org/moin/LanguageComparisons
В большинство дистрибутивов сейчас входит Ruby (в переводе с англ. “рубин”) — перспективный язык программирования, в котором сохранена мощность языка Perl и который при этом освобожден от его синтаксических “подводных камней”. Но главное то, что он обладает современными объектно-ориентированными свойствами. Ruby еще не стал для системных администраторов традиционным языком написания сценариев, но, по всей вероятности, станет таковым в ближайшие несколько лет.
Мы рекомендуем также изучить expect, который представляет собой скорее интерфейс для управления интерактивными программами, а не язык программирования. По сути, это эффективная интегрирующая технология, которая может заменить традиционный процесс написания сценариев. Освоить expect можно достаточно быстро.
Все самое важное, что необходимо знать о написании сценариев на языках bash, Perl и Python, можно почерпнуть в главе 2. В ней также рассматриваются регулярные выражения (шаблоны, задающие правило поиска) и некоторые идиомы оболочки, полезные для системных администраторов.
