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

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

Жанры

Командная строка Linux
Шрифт:

[me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | head

.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.35.

.TH LS "1" "April 2008" "GNU coreutils 6.10" "User Commands"

.SH NAME

ls \- list directory contents

.SH SYNOPSIS

.B ls

[\fIOPTION\fR]... [\fIFILE\fR]...

.SH DESCRIPTION

.\" Add any additional description here

.PP

Если сравнить содержимое страницы с ее нормальным представлением на экране, можно заметить определенную корреляцию

между языком разметки и результатом его интерпретации:

[me@linuxbox ~]$ man ls | head

LS(1) User Commands LS(1)

NAME

ls - list directory contents

SYNOPSIS

ls [OPTION]... [FILE]...

Этот пример интересен тем, что страницы справочного руководства отображаются программой groff с использованием макропакета mandoc. В действительности работу команды man можно сымитировать с помощью следующего конвейера.

[me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc -T ascii | head

LS(1) User Commands LS(1)

NAME

ls - list directory contents

SYNOPSIS

ls [OPTION]... [FILE]...

Здесь использована программа groff с множеством параметров, определяющих макропакет mandoc и драйвер вывода для ASCII. groff может выводить информацию в нескольких форматах. Если формат не задан, по умолчанию вывод производится в формате PostScript:

[me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc | head

%!PS-Adobe-3.0

%%Creator: groff version 1.18.1

%%CreationDate: Thu Feb 2 13:44:37 2012

%%DocumentNeededResources: font Times-Roman

280 Chapter 21

%%+ font Times-Bold

%%+ font Times-Italic

%%DocumentSuppliedResources: procset grops 1.18 1

%%Pages: 4

%%PageOrder: Ascend

%%Orientation: Portrait

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

[me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc > ~/Desktop/foo.ps

После выполнения этой команды на рабочем столе появляется пиктограмма файла. После двойного щелчка мышью на этой пиктограмме должен запуститься инструмент просмотра страниц и отобразить содержимое файла (рис. 21.1).

Рис. 21.1. Отображение содержимого PostScript-файла в окне обозревателя страниц в GNOME

Здесь мы видим прекрасно отформатированную страницу справочного руководства для команды ls! В действительности PostScript-файл можно преобразовать в формат PDF (Portable Document Format — формат переносимых документов), как показано ниже:

[me@linuxbox ~]$ ps2pdf ~/Desktop/foo.ps ~/Desktop/ls.pdf

Программа ps2pdf входит в состав

пакета ghostscript, который устанавливается в большинстве систем Linux для поддержки печати.

ПРИМЕЧАНИЕ

Системы Linux включают множество программ командной строки для преобразования файлов из одного формата в другой. Они традиционно получают названия в соответствии с соглашением: формат2формат. Попробуйте выполнить команду ls /usr/bin/*[[:alpha:]]2[[:alpha:]]*, чтобы найти все такие программы. Также попробуйте поискать программы с именами форматtoформат.

В последнем упражнении с программой groff мы вновь вернемся к нашему старому доброму другу — файлу distros.txt. На этот раз мы воспользуемся программой tbl, которая применяется для форматирования таблиц, чтобы сформировать наш список дистрибутивов Linux. В этом упражнении мы задействуем сценарий для sed, созданный ранее, и с его помощью добавим разметку в поток текста, который затем передадим программе groff.

Сначала изменим сценарий для sed, добавив в него вызовы, необходимые программе tbl. Откройте сценарий distros.sed в текстовом редакторе и измените его, как показано ниже:

# Сценарий для sed, создающий отчет о дистрибутивах Linux

1 i\

.TS\

center box;\

cb s s\

cb cb cb\

l n c.\

Linux Distributions Report\

=\

Name Version Released\

_

s/\([0-9]\{2\}\)\/\([0-9]\{2\}\)\/\([0-9]\{4\}\)$/\3-\1-\2/

$ a\

.TE

Обратите внимание, что для корректной работы сценария слова Name Version Released должны разделяться символами табуляции, а не пробелами. Сохраним получившийся файл с именем distros-tbl.sed. Программа tbl использует запросы .TS и .TE как метки начала и конца таблицы. Строки, следующие за запросом .TS, определяют глобальные свойства таблицы, в нашем случае выравнивание по центру страницы и окружение внешней рамкой. Остальные строки описывают форматирование строк таблицы. Если теперь снова запустить наш конвейер составления отчета с новым сценарием для sed, мы получим следующее:

[me@linuxbox ~]$ sort -k 1,1 -k 2n distros.txt | sed -f distros-tbl.sed | groff -t -T ascii 2>/dev/null

+------------------------------+

| Linux Distributions Report |

+------------------------------+

| Name Version Released |

+------------------------------+

|Fedora 5 2006-03-20 |

|Fedora 6 2006-10-24 |

|Fedora 7 2007-05-31 |

|Fedora 8 2007-11-08 |

|Fedora 9 2008-05-13 |

|Fedora 10 2008-11-25 |

|SUSE 10.1 2006-05-11 |

|SUSE 10.2 2006-12-07 |

|SUSE 10.3 2007-10-04 |

|SUSE 11.0 2008-06-19 |

|Ubuntu 6.06 2006-06-01 |

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

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6

Сердце Дракона. Предпоследний том. Часть 1

Клеванский Кирилл Сергеевич
Сердце дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Сердце Дракона. Предпоследний том. Часть 1

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Под маской, или Страшилка в академии магии

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.78
рейтинг книги
Под маской, или Страшилка в академии магии

Мой любимый (не) медведь

Юнина Наталья
Любовные романы:
современные любовные романы
7.90
рейтинг книги
Мой любимый (не) медведь

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия

Играть, чтобы жить. Книга 3. Долг

Рус Дмитрий
3. Играть, чтобы жить
Фантастика:
фэнтези
киберпанк
рпг
9.36
рейтинг книги
Играть, чтобы жить. Книга 3. Долг

Виконт. Книга 4. Колонист

Юллем Евгений
Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.50
рейтинг книги
Виконт. Книга 4. Колонист

Вечный Данж. Трилогия

Матисов Павел
Фантастика:
фэнтези
юмористическая фантастика
6.77
рейтинг книги
Вечный Данж. Трилогия

Мужчина не моей мечты

Ардова Алиса
1. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.30
рейтинг книги
Мужчина не моей мечты

Последний Паладин. Том 7

Саваровский Роман
7. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 7

Истинная со скидкой для дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Истинная со скидкой для дракона

Волк 7: Лихие 90-е

Киров Никита
7. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк 7: Лихие 90-е

Кровь Василиска

Тайниковский
1. Кровь Василиска
Фантастика:
фэнтези
попаданцы
аниме
4.25
рейтинг книги
Кровь Василиска