Чтение онлайн

на главную - закладки

Жанры

UNIX — универсальная среда программирования
Шрифт:

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

В

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

Во первых, пусть машина работает. Используйте программы типа

grep
,
wc
и
awk
, чтобы автоматизировать задачи, которые бы вам пришлось делать вручную в других системах.

Во вторых, пусть работает и человек. Используйте программы, которые уже существуют как "строительные блоки" в ваших программах, с

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

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

В-четвертых, создавайте инструментарий. Пишите программы, которые "стыкуются" с существующей средой, усиливая их, а не просто расширяя их возможности. Хорошо построенные, такие программы сами становятся частью чьего либо инструментария.

Разумеется, система не вполне совершенна. Читая книгу, вы сталкивались со многими условностями, бессмысленными различиями в программах и произвольными ограничениями. Однако, несмотря на все свои недостатки, UNIX, в самом деле, хороша в том, для чего она предназначена: в обеспечении удобной среды программирования. И хотя система уже начала обнаруживать признаки "среднего возраста", она все еще жизнеспособна и все еще популярна. Это заслуга нескольких одаренных человек, которые в 1969 г. набросали на доске проект удобной среды программирования, получившей впоследствии высокую оценку целого поколения программистов.

Приложение 1

Краткое описание редактора

Стандартный текстовый редактор UNIX создан К. Томпсоном в начале 70-х годов для вычислительной среды на малых машинах (первая система UNIX ограничивала предельный размер программ пользователя до 8К байт) с терминалами "твердой копии", работавшими при очень низких скоростях (10-15 символов в секунду). Этот редактор написан на базе более ранней версии

qed
, которая была в то время популярна.

С развитием технологии

ed
постигла та же судьба. Почти наверняка вы найдете в своей системе другие редакторы с интересными свойствами, в частности с возможностью "визуального", или "экранного", редактирования, при котором на экране терминала
отражаются все вносимые вами коррективы.

Почему же тогда мы тратим время на, казалось бы, устаревшую программу? Дело в том, что

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

Редактор

ed
предоставляет регулярные выражения для поиска по образцу. Регулярные выражения, на которых основан
ed
, присутствуют во всех частях системы:
grep
и
sed
применяют почти такие же, a
egrep
,
awk
,
lex
расширяют их. Shell использует для сравнения имен файлов иной синтаксис, но те же самые идеи. Некоторые экранные редакторы имеют "строчный режим", который предусматривает обращение к регулярным выражениям ed.

И, наконец,

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

Основные сведения

Программа

ed
редактирует один файл за один раз. Она работает с копией файла. Чтобы внести исправления в первоначальный файл, вы должны дать явную команду. Редактор предоставляет команды для манипуляций с последовательными строками или строками, соответствующими образцу, а также команды для внесения в строки изменений.

Каждая команда

ed
представляет собой символ (обычно букву). Большинству команд может предшествовать один или два номера строки, которые указывают, на какую строку или строки должна воздействовать команда: в противном случае подразумевается номер, принятый по умолчанию. Номер строки можно специфицировать абсолютной позицией в файле (1, 2 ...), символами
$
для последней строки и "
.
" для текущей, процедурой поиска по образцу, использующей регулярные выражения, и их аддитивными комбинациями.

Рассмотрим, как с помощью

ed
можно создавать файлы, используя стихи Де Моргана из первой главы.

$ ed poem

? poem
Предупреждение: файл poem не существует

а
Начать добавление строк

Great fleas have little fleas

 upon their backs to bite 'em,

And little fleas have lesser fleas,

 and so ad infinitum.

.
Печатаем '.' чтобы закончить ввод

Поделиться:
Популярные книги

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Его огонь горит для меня. Том 2

Муратова Ульяна
2. Мир Карастели
Фантастика:
юмористическая фантастика
5.40
рейтинг книги
Его огонь горит для меня. Том 2

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Совершенно несекретно

Иванов Дмитрий
15. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Совершенно несекретно

Ваше Сиятельство 2

Моури Эрли
2. Ваше Сиятельство
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Ваше Сиятельство 2

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Единственная для темного эльфа 3

Мазарин Ан
3. Мир Верея. Драконья невеста
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Единственная для темного эльфа 3

Жандарм

Семин Никита
1. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
4.11
рейтинг книги
Жандарм

Долгий путь домой

Русич Антон
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
6.20
рейтинг книги
Долгий путь домой

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Наследие Маозари 6

Панежин Евгений
6. Наследие Маозари
Фантастика:
попаданцы
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Наследие Маозари 6

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Лолита

Набоков Владимир Владимирович
Проза:
классическая проза
современная проза
8.05
рейтинг книги
Лолита