Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на shell и awk

  Все выпуски  

Что такое shell и что такое awk?


Информационный Канал Subscribe.Ru


Выпуск #1

Здравствуйте!
Рад приветствовать
читателей первого выпуска почтовой рассылки,
посвященной программированию на shell и awk!

Сегодня мы обсудим два вопроса. Первый про взаимопонимание, второй - "что такое shell и что такое awk?".

Условные обозначения

Курсивом
в тексте выделяются названия программ, файлов, каталогов, хостов, адресов, имен пользователей, а также терминов, втречающихся первый раз.
Полужирным начертанием
в тексте выделяются зарезервированные слова, имена переменных и функций, а также обозначаются клавиши и их комбинации.
Ctrl+V, Esc
символ плюс используется при описании комбинаций клавиш, нажимаемых одновременно; клавиши нажимаемые последовательно, перечисляются через запятую.
Моноширинный шрифт
используется для выделения примеров исходного кода и вывода результатов работы этого кода либо программ.
Моноширинный полужирный шрифт
в примерах используется для выделения пользовательского ввода.
< >
в примерах в угловых скобках указывается часть командной строки или программного кода, которая должна быть заменена пользователем на его усмотрение.
[ ]
в описании синтаксиса в квадратных скобках указываются необязательные параметры; в конце цитат или абзацев число в квадратных скобках используется для ссылки на номер источника.
|
в описании синтаксиса через вертикальную черту перечисляются несколько значений параметра, из которых должно быть выбрано только одно.
...
в описании синтаксиса троеточие, указанное после параметра, говорит о том, что этот параметр может повторяться необходимое число раз.
/ /
между символами наклонной черты указывается перевод иноязычного термина на русский либо оригинальное написание переведенного понятия или собственного имени.

Введение

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

Любая современная ОС способна обеспечить диалог с пользователем при помощи интерфейса командной строки. Для реализации этого интерфейса используют различные программы-оболочки, называемые также командными интерпретаторами.

В DOS Windows 3.x/9x/Me это command.com,
в Windows NT/2000/XP - cmd.exe,
в UNIX - sh, bash, csh, tcsh, ksh и другие.

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

Надо отметить, что командные языки UNIX-систем являются языками программирования в значительно большей степени, чем аналогичные командные языки распространенных операционных систем. Пользователь может вводить переменные и присваивать им значения, выполнять простые команды, строить из них составные и управлять ходом их выполнения с помощью условных операторов и операторов цикла. Такие последовательности команд чаще всего называют сценариями /script/ либо "скриптами". Сценарии можно помещать в командные файлы и передавать в них при вызове фактические параметры.

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

Говоря по-другому, командный язык shell это инструмент, который позволяет пользователям создавать из различных (уже существующих) программ новые - более гибко приспособленные к решению насущных задач пользователя. Помните, в рекламе конструкторов фирмы LEGO использовался слоган "найди способ и только небо станет тебе границей"? Отличный эпиграф для нашей рассылки!

О каком же командном интерпретаторе UNIX мы поведем речь? О стандартном. О sh и его усовершенствованной версии bash (в современных версиях UNIX /bin/sh, как правило, является ссылкой на /bin/bash).

Что значит стандартный? Это значит, что он есть в любой версии UNIX и практически все системные сценарии (начальной загрузки например) написаны на его языке. Однако, не следует думать, что написанные на нем сценарии автоматически становятся переносимыми (выполняемыми в любой системе).

Создал эту программу Стив Борн /Steve Bourne/, она была впервые включена в состав 7-й редакции ОС UNIX, которая увидела свет в 1979 году. Затем появились оболочки с дополнительными возможностями и/или другим синтаксисом командного языка, такие как ksh Дэвида Корна /David Korn/ и csh Билла Джоя /Bill Joe/.

Историческая справка.

Надо ометить, что на 7-ю редакцию UNIX приобрела лицензию одна, уже тогда известная, фирма из Редмонта и разработала на ее основе ОС XENIX, которая в дальнейшем была продана фирме SCO. Там XENIX "научили" работать с TCP/IP и он дорос до SCO Open Server пятой версии, который со временем достался фирме Novell. Затем Novell продала свой UNIX-бизнес фирме Caldera, той самой, что с недавних пор зовется SCO Group.
Также на базе 7-й редакции UNIX была разработана 3BSD, первая версия BSD UNIX, работающая на компьютерах VAX.

И коротко о awk. Это утилита-фильтр, способная обрабатывать текст по заданному вами сценарию, простая в освоении и мощная в работе. Названа она по первым буквам фамилий ее создателей: Ахо /Aho/, Вайнбергера /Weinberger/ и Кернигана /Kernighan/. К ее детальному обсуждению мы приступим позднее. Кстати, сущевствуют windows-версии этой программы.

В завершение выпуска хочу порекомендовать вам, уважаемые подписчики, обзавестисть каким-нибудь справочником по командам UNIX или хотя бы для начала загрузить перевод man'а по bash (незабудьте сказать спасибо Валерию Кравчуку за проделанную им немалую работу).

Что такое man? Это программа для отображения страниц руководства /manual pages/. Чаще всего их называют man-страницами или просто "манами". Эти страницы имеют специальный формат и хранятся в нескольких каталогах. Каждый каталог соответствует определенному тематическому разделу /section/.


Ведущий рассылки Big Shadow

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное