Литвек - электронная библиотека >> Дэвид Тейнсли >> Руководства и инструкции и др. >> Linux и UNIX: программирование в shell. Руководство разработчика.
Linux и UNIX: программирование в shell. Руководство разработчика.. Иллюстрация № 1

Введение

Настоящая книга посвящена shell–программированию, или, точнее, программированию в интерпретаторе Bourne shell.

Программирование на языке интерпретатора shell приобретает все большую популярность по мере утверждения Linux в качестве удобной в работе и отказоустойчивой операционной системы. Трудно оценить, какое количество пользователей работают с Linux. Эта операционная система распространяется бесплатно, хотя многие компании разрабатывают ее коммерческие варианты. Кроме того, несмотря на сделанные несколько лет назад неутешительные прогнозы специалистов относительно будущего UNIX, данная ОС также не теряет популярности, и число ее приверженцев продолжает расти.

Если вы хотите изучить shell–программирование, эта книга — для вас. Если же у вас имеется определенный опыт работы с интерпретатором shell, она послужит для вас хорошим справочным руководством. Кроме того, настоящее издание можно рассматривать как сборник советов по администрированию системы и кратких подсказок на все случаи жизни.

При написании книги во внимание принимались шесть основных положений:

   • читатель должен быстро освоить инструментальные средства интерпретатора shell, а также изучить основы программирования на языке shell;

   • книга должна служить не только руководством, но и справочником;

   • для повышения производительности системы читателю следует научиться писать shell–сценарии;

   • необходимо, чтобы shell–сценарии имели четкую и понятную структуру}

   • главы, по возможности, должны быть самодостаточными и независимыми друг от друга, что упрощает их изучение;

   • читатель должен уметь решать ряд административных задач, в частности создавать CGI–сценарии.

Обычно книги данной тематики имеют одну характерную особенность: некоторые примеры сценариев усложнены только ради того, чтобы занимать на несколько строчек меньше. Предлагаемая вашему вниманию книга свободна от подобных ограничений: все программные коды в ней просты, но эффективны.

Если вы приступили к изучению shell–программирования, очевидно, у вас есть на то веские причины. Основные причины изучения shell–программирования заключаются в следующем:

   • язык программирования интерпретатора shell вполне самодостаточен, он содержит все необходимые управляющие конструкции и удобен в применении;

   • открывается возможность быстрого создания сценариев;

   • сценарии позволяют автоматизировать рутинные операции, выполняемые обычно вручную.

Интерпретатор bourne shell

Bourne shell является стандартным интерпретатором команд, который входит в состав всех систем UNIX и совместим с интерпретатором bash в Linux. В книге, посвященной shell–программированию и не привязанной к конкретной операционной системе, в качестве общего знаменателя должен рассматриваться именно Bourne shell. Учтите, что существуют и другие интерпретаторы, такие как bash, Korn shell и С shell. Если в вашей системе установлен интерпретатор bash, сценарии из этой книги будут выполняться в нем, поскольку bash совместим с Bourne shell. Синтаксис интерпретатора Korn shell близок к синтаксису рассматриваемого здесь языка.

Если внимательно изучить сценарии системной инсталляции, то можно обнаружить, что более чем на 95 процентов они являются сценариями Bourne shell. Это объясняется тем, что создатели сценариев знали: они будут выполняться в любой системе UNIX и Linux.

Переносимость интерпретатора shell

Если необходимо, чтобы создаваемый сценарий выполнялся под управлением любой системы, он должен обладать свойством переносимости. Переносимость сценариев определяется двумя основными факторами: • синтаксисом языка применяемого интерпретатора shell; • используемыми командами интерпретатора.

Проблемы, связанные с первым фактором, решаются автоматически, если сценарии создаются для интерпретатора Bourne shell.

Что касается второго фактора, то для большинства shell–сценариев характерна следующая особенность: по крайней мере, 20 процентов (а то и больше) их рабочего времени затрачивается на выполнение таких shell–команд, как cp, mv, mkdir и др. Здесь и заключена проблема переносимости. Дело в том, что поставщики разных операционных систем оснащают эти команды различными наборами опций. В нашей книге используются сценарии общего характера и применяются только те опции и команды, которые присутствуют как в System V, так и в BSD. Если же имеются какие‑либо различия, то приводятся альтернативные команды, но это случается сравнительно редко.

Структура книги

Книга представляет собой как руководство, так и справочник, поэтому ее главы можно читать в произвольном порядке. Если, например, вы хотите научиться включать в свои HTML–страницы CGI–сценарии, можете начать изучение материала даже с последней главы.

Книга состоит из пяти частей, посвященных различным аспектам программирования на языке интерпретатора shell.

Интерпретатор shell

В первой части книги рассматриваются общие вопросы, связанные с работой в интерпретаторе shell.

В главе 1 рассказывается о правах доступа к файлам и каталогам, а также о том, как создавать символические ссылки.

Чтобы на поиск созданного вами файла не уходило много времени, прочитайте

главу 2, посвященную команде find .

Вполне вероятно, что вы захотите выполнять сценарии в ночное или вечернее время. В этом случае вам следует изучить главу 3, в которой изложены сведения о планировании выполнения сценариев.

Первая часть содержит также информацию о том, как работают механизмы ввода–вывода в интерпретаторе shell, как принимать данные с терминала и отображать на нем содержимое файлов, как перенаправлять потоки ввода–вывода и многое другое.

Фильтрация текста

Во второй части дается подробный обзор важнейших инструментов фильтрации текста. Фильтрация может выполняться в разное время: до того как данные поступят на вход сценария, в процессе выполнения сценария и при выводе текста на экран.

В отдельных главах описаны: grep — утилита поиска текстовых файлов (глава 8), awk — текстовый редактор, имеющий собственный язык сценариев (глава 9), sed — потоковый редактор, позволяющий выполнять быстрое редактирование (глава 10), и tr — утилита трансляции символов (глава 12). В главе 11 обсуждаются вопросы сортировки и объединения файлов, а также принципы работы с отдельными фрагментами текста.

Регистрация в системе

Третья часть посвящена вопросам регистрации в системе и настройки пользовательской среды. Каждый пользователь UNIX и Linux
ЛитВек: бестселлеры месяца
Бестселлер - Джон Перкинс - Исповедь экономического убийцы - читать в Литвек width=Бестселлер - Дэниел Гоулман - Эмоциональный интеллект - читать в Литвек width=Бестселлер - Михаил Юрьевич Елизаров - Библиотекарь - читать в Литвек width=Бестселлер - Борис Акунин - Аристономия - читать в Литвек width=Бестселлер - Бенджамин Грэхем - Разумный инвестор  - читать в Литвек width=Бестселлер - Евгений Германович Водолазкин - Лавр - читать в Литвек width=Бестселлер - Максим Валерьевич Батырев (Комбат) - 45 татуировок менеджера. Правила российского руководителя - читать в Литвек width=Бестселлер - Роберт Гэлбрейт - Зов кукушки - читать в Литвек width=