Искусство программирования на языке сценариев командной оболочки
Шрифт:
pr
Подготовка файла к печати. Утилита производит разбивку файла на страницы, приводя его в вид пригодный для печати или для вывода на экран. Разнообразные ключи позволяют выполнять различные манипуляции над строками и колонками, соединять строки, устанавливать поля, нумеровать строки, добавлять колонтитулы и многое, многое другое. Утилита pr соединяет в себе функциональность таких команд, как nl, paste, fold, column и expand.
pr -o 5 --width=65 fileZZZ | more– - выдаст хорошо оформленное и разбитое на страницы содержимое
Хочу особо отметить ключ – d, который выводит строки с двойным интервалом (тот же эффект, что и sed -G).
gettext
GNU утилита, предназначена для нужд локализации и перевода сообщений программ, выводимых на экран, на язык пользователя. Не смотря на то, что это актуально, прежде всего, для программ на языке C, тем не менее gettext с успехом может использоваться в сценариях командной оболочки для тех же целей. См. info page.
iconv
Утилита преобразования текста из одной кодировки в другую. В основном используется для нужд локализации.
recode
Может рассматриваться как разновилность утилиты iconv, описанной выше. Универсальная утилита для преобразования текстовой информации в различные кодировки.
TeX, gs
TeX и Postscript– - языки разметки текста, используемые для подготовки текста к печати или выводу на экран.
TeX– - это сложная система подготовки к печати, разработанная Дональдом Кнутом (Donald Knuth). Эту утилиту удобнее использовать внутри сценария, чем в командной строке, поскольку в сценарии проще один раз записать все необходимые параметры, передаваемые утилите, для получения необходимого результата.
Ghostscript (gs) -- это GPL-версия интерпретатора Postscript.
groff, tbl, eqn
groff– - это еще один язык разметки текста и форматированного вывода. Является расширенной GNU-версией пакета roff/troff в UNIX-системах.
tbl– - утилита обработки таблиц, должна рассматриваться как составная часть groff, так как ее задачей является преобразование таблиц в команды groff.
eqn– - утилита преобразования математических выражений в команды groff.
lex, yacc
lex– - утилита лексического разбора текста. В Linux-системах заменена на свободно распространяемую утилиту flex.
yacc– - утилита для создания синтаксических анализаторов, на основе набора грамматик, задаваемых разработчиком. В Linux-системах, эта утилита заменена на свободно распространяемую утилиту bison.
12.5. Команды для работы с файлами и архивами
Архивация
tar
Стандартная, для UNIX, утилита архивирования. Первоначально -- это была программа Tape ARchiving, которая впоследствии переросла в универсальный пакет, который может работать с любыми типами устройств (см. Пример 3-4). В GNU-версию tar была добавлена возможность одновременно
производить сжатие tar-архива, например команда tar czvf archive_name.tar.gz * создает tar-архив дерева подкаталогов и вызывает gzip для выполнения сжатия, исключение составляют скрытые файлы в текущем каталоге ($PWD) [ 30 ] .30
Команда tar czvf archive_name.tar.gz * включит в архив все скрытые файлы (имена которых начинаются с точки) из вложенных подкаталогов. Это недокументированная "особенность" GNU-версии tar.
Некоторые, часто используемые, ключи команды tar:
1. – c– - создать (create) новый архив
2. – x– - извлечь (extract) файлы из архива
3. – -delete– - удалить (delete) файлы из архива
4. – r– - добавить (append) файлы в существующий архив
5. – A– - добавить (append) tar– файлы в существующий архив
6. – t– - список файлов в архиве (содержимое архива)
7. – u– - обновить (update) архив
8. – d– - операция сравнения архива с заданной файловой системой
9. – z– - обработка архива с помощью gzip
(Сжатие или разжатие, в зависимости от комбинации сопутствующих ключей – c или – x)
10. – j– - обработка архива с помошью bzip2
shar
Утилита создания shell-архива. Архивируемые файлы объединяются в единый файл без выполнения сжатия, в результате получается архив -- по сути полноценный сценарий на языке командной оболочки, начинающийся со строки #!/bin/sh, который содержит полный набор команд, необходимый для разархивирования. Такого рода архивы до сих пор можно найти в некоторых телеконференциях в Internet, но в последнее время они активно вытесняются связкой tar/gzip. Для распаковки shar-архивов предназначена команда unshar.
ar
Утилита создания и обслуживания архивов, главным образом применяется к двоичным файлам библиотек.
rpm
Red Hat Package Manager, или rpm– - набор утилит, предназначенных для построения и обслуживания пакетов программного обеспечения как в исходном коде, так и в собранном (откомпилированном) виде. Среди всего прочего, включает в себя утилиты, производящие установку ПО, проверку зависимостей пакетов и проверку их целостности.