Мы предполагаем, что у читателей есть определенный опыт работы с 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. В ней также  рассматриваются регулярные выра­жения (шаблоны, задающие правило поиска) и некоторые идиомы оболочки, полезные для системных  администраторов.