Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы OC UNIX_часть3.doc
Скачиваний:
21
Добавлен:
18.04.2015
Размер:
543.23 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ МОРСКОЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра вычислительной техники и информационных технологий

И.Н.Акуленок

СРЕДСТВА ПРИКЛАДНОЙ ИНФОРМАТИКИ

Основы программирования на языке shell

Утверждено советом университета

в качестве учебного пособия

Санкт–Петербург

2013

Рецензенты:

Акуленок И.Н. Средства прикладной информатики. Основы программирования на языке shell. Учеб.пособие. Спб.: Изд.центр СПбГМТУ, 2013, 88 с.

Учебное пособие разработано с учетом государственного образовательного стандарта высшего профессионального образования по направлению 230100 «Информатика и вычислительная техника», профиль –«Методы и средства информатики в жизненном цикле сложных технических систем» по дисциплине "Средства прикладной информатики" для студентов, получающих степень магистра вычислительной техники.

В пособии рассмотрены основные приемы создания командных сценариев с помощью конструкций языка программирования shell.

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

Табл.2. Библиогр.: назв.

 СПбГМТУ,

2013

Введение

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

В первой главе дается обзор основных видов редакторов – строковых, экранных и потоковых: ed,ex, vi, red,edit,view,vedit и sed. Особое внимание уделено двум из них ed и vi. Изучение редакторов необходимо для создания и изменения командных сценариев, что является конечной целью данного пособия – научиться писать сценарии на языке программированияshell.

В следующей главе дается обзор командных процессоров UNIX с описанием их достоинств. Рассмотрены предопределенные переменные среды, необходимые для настройки окружения пользователя, а также инструкции по созданию пользовательского профиля регистрации.

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

Четвертая глава является основной, т.к. в ней рассмотрены все необходимые конструкции языка shellдля написания командных сценариев и приведены примеры их использования.

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

Глава 1. Текстовые редакторы

В каждой системе UNIX доступно несколько текстовых редакторов. Их можно использовать для ввода и коррекции документов, командных файлов, программ и записей данных. Стандартным для большинства систем UNIX и самым старым является редактор ed. Он представляет собой строковый редактор. Еще один строковый редакторexявляется почти копией редактораed, но о нем стоит упомянуть, поскольку он является частью более мощного редактораvi. Для работы с редакторомviтребуется знание некоторых командex.

В UNIX имеются также ограниченные учебные версии редакторов под названием red,edit,viewиvedit. Кроме того, UNIX часто поставляется с программой форматирования текстаtroff, написанной Джозефом Осанной (JosephOsanna), или одним из ее вариантов. Более развитый вариант этой программыnroff– это программируемые форматировщики, преобразующие текстовые файлы в формат, пригодный для печати.

Самым современным из редакторов является emacs, первоначаотно разработанный Ричардом Сталлманом (RichardStallman) и перенесенный в UNIX Джеймсом Гослингом (JamesGosling). Этот экранный редактор не имеет режимов, так как команды вводятся комбинациямиControl+клавиша. У него очень много встроенных возможностей.

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

Имеются два важных отличия редакторов друг от друга.

  1. Редакторы, которые не показывают текст, называются строковымиредакторами. Редакторы, которые показывают полный экран текста, так что все операции редактирования видны, называютсяэкраннымиредакторами.

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

Эти два различия проявляются только при изменении текста в ранее сохраненных текстовых файлах. В процессе ввода нового текста текстовые редакторы выглядят почти одинаково.

Строковые редакторыне показывают измененный текст без ввода команды вывода на экран. Такие редакторы одновременно работают только с одной строкой текста, чем и объясняется название «строковый редактор». Так как редактор не показывает строку текста, в процессе редактирования невозможно перемещать курсор взад и вперед. Кроме того, отсутствует команда удаления слова, поскольку редактор работает только с целой строкой.

Экранные редакторывсегда показывают содержимое файла. При изменении слова оно сразу же видно.