Глава 8. Приложения Linux
Linux: богатство возможностей
Использование emacs Команды emacs
Режимы emacs
Создание и редактирование файлов
Краткий курс emacs
Xedit
Textedit
Другие текстовые редакторы
Настройка текстовых редакторов Настройка emacs
Настройка jed
Средства обработки текста Groff: классический стандарт
ТеХ
Texinfo
Sed
Шрифтовые утилиты
Менеджеры файлов Midnight Commander
Xfm
Tkdesk
Сжатие и архивация файлов Gzip
Gunzip
Bzip2
Zip
Tar
Создание резервных копий системы
Создание архивов на гибких дисках
Создание архивов на магнитных лентах
Команды MTools Просмотр каталога DOS (команда mdir)
Изменение текущего каталога (команда mcd)
Копирование файлов (команда mсору)
Переименование файлов DOS (команда mren)
Удаление файлов DOS (команда mdel)
Просмотр файлов DOS (команда mtype)
Создание каталога DOS (команда mmd)
Удаление каталога DOS (команда mrd)
Копирование файлов DOS в Linux (команда mread)
Копирование файлов Linux в DOS (команда mwrite)
Форматирование диска (команда mformat)
Назначение метки тома (команда mlabel)
Изменение файловых атрибутов DOS (команда mattrib)
Графические программы Bitmap
Xfig
Xfractint
Xpaint
Xv
Утилиты JPEG
Утилиты PhotoCD
Разные утилиты Часы
Xdpyinfo и xev
Xlock
Xmag
Xman
Sc и xspread
Эмуляторы Эмуляторы с SunSITE
Эмуляция DOS в Linux
Некоторые математические утилиты Команда bc
Dc
Calculator
Игры Терминальные игры
Игры для Х Window
Телекоммуникации Seyon и телекоммуникации в Linux
Minicom и xminicom
Rzsz
Итоги

 
 
 
 
 
 
 
 
 
 
  Глава 8. Приложения Linux


 
 

Итак, ваша система Linux готова к работе. Настало время познакомиться со многими замечательными приложениями, которые поставляются вместе с ней.

Linux: богатство возможностей В главе 7 мы рассмотрели многие средства Linux, используемые в повседневной работе. Однако эта глава лишь едва затрагивает обширный инструментарий Linux ≈ особенно программы, входящие в поставку Slackware Linux.

В этой главе мы продолжим знакомство с инструментарием Linux и уделим особое внимание некоторым конкретным темам. Однако мы не пытаемся рассмотреть все инструменты Linux и в особенности те, которые входят в большинство версий UNIX. Вместо этого мы описываем программы, уникальные для Linux или отличающиеся от своих аналогов из мира UNIX (например, gzip или tar ≈ вы поймете, о чем идет речь, при обсуждении tar и сжатия файлов). Так как в Linux входит большинство стандартных команд UNIX, мы настоятельно рекомендуем купить руководство по UNIX (список книг приводится в приложении А) для освоения основных команд. Мы не рассматриваем многие полезные утилиты (например, grep) ≈ они достаточно подробно описаны в других книгах, и Linux-версии этих команд почти не отличаются от эталонных версий UNIX.

Учитывая все сказанное, мы переходим к рассмотрению многих инструментов, которые делают Linux уникальным на фоне других операционных систем и других версий UNIX.

Использование emacs Редактор vi/elvis, рассмотренный в главе 7, работает исключительно на текстовом уровне. Все, что в нем можно сделать, ≈ создать текстовый файл и отредактировать его в полноэкранном режиме (впрочем, даже это делается очень запутанно, с разделением режимов команд и ввода).

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

Хотя мы не собираемся вступать в перепалку между сторонниками редакторов vi и emacs, этот редактор определенно заслуживает вашего внимания, особенно если вам не приходилось помногу работать в другом редакторе. Emacs обладает многими возможностями, отсутствующими в vi:

Вероятно, начинающему пользователю работать с emacs будет легче, чем с другими редакторами Linux, ≈ хотя бы из-за того, что все основные команды всегда могут вызываться из раскрывающихся меню. Кроме того, emacs обладает множеством других функций, включая чтение электронной почты и новостей Usenet, а также редактирование исходных текстов программ на С, Lisp и ТеХ.

Наше описание относится к версии emacs для Х Window, которая входит в поставку Linux от Slackware (emacs версии 20.2). Если радости Х вас не прельщают, вам следовало во время установки Linux выбрать обычную версию emacs (не предназначенную для X). Если вы не используете X, вернитесь и установите эту версию; но если версия emacs для Х Window была установлена, ее необходимо удалить перед установкой обычной версии.

Основной материал этого раздела подойдет и для обычной версии emacs. Для всех перечисленных ниже команд приводятся клавиатурные сокращения.

Чтобы запустить emacs без загруженного файла, введите следующую команду в окне xterm:

gilbert:/# emacs На рис. 8.1 показано, как выглядит экран emacs без загруженного файла.
Рис. 8.1.Текстовый редактор emacs без загруженного файла
Кроме того, при запуске emacs можно загрузить конкретный файл. Для этого его имя указывается в командной строке (помните: если файл находится не в текущем каталоге, необходимо ввести его абсолютное имя): gilbert:/# emacs имя_файла Если вы уже работали на другом компьютере или с другим приложением Х Window, то emacs не вызовет у вас особых затруднений. Впрочем, некоторые изменения в терминологии могут сбить с толку: например, вы редактируете не отдельные файлы, а буферы (buffers). Кроме того, вместо привычного термина ⌠курсор■ (cursor) для обозначения текущей позиции применяется термин ⌠point■ (в этой главе мы используем термин ⌠курсор■, но вы должны помнить об этом при чтении документации по emacs). Команды emacs В emacs (и особенно в версии для Х Window) команды обычно можно выполнять несколькими способами.

Один из способов ≈ специальные комбинации клавиш. Любую функцию emacs можно вызвать с клавиатуры. Обычно в этих комбинациях участвуют клавиши Ctrl и Alt. Иногда в документации по emacs вместо Alt упоминается клавиша Meta; это относится к пользователям компьютеров UNIX, у которых на клавиатуре нет клавиши Alt. Конечно, к пользователям Linux это не относится. Главное ≈ запомните, что вместо Meta везде следует подставлять Alt. Как правило, клавиши Ctrl и Alt используются в качестве сокращений для полных команд, которые при желании можно было бы ввести.

При использовании комбинаций клавиш необходимо помнить еще об одном:

всюду, где встречается обозначение вида Ctrl+x Ctrl+f, следует нажать клавишу Ctrl, а затем, не отпуская ее, последовательно нажать клавиши х и f (не отпускайте Ctrl между нажатиями х и f.

Второй способ ≈ раскрывающиеся меню. Как видно из рис. 8.2, в emacs имеется несколько меню (Buffers, File, Edit и Help). Работа с ними отличается от работы с меню в среде Microsoft Windows, Macintosh или OS/2. В этих системах команда меню вызывает другое действие ≈ например, открывает диалоговое окно или другое меню.

Меню emacs фактически обеспечивают доступ к командной строке, расположенной в нижней части экрана. Например, выполните команду Open File из меню File (или воспользуйтесь эквивалентной комбинацией клавиш Ctrl+x Ctrl+f). Вопреки ожиданиям на экране не появится диалоговое окно со списком существующих файлов. Вместо этого в нижней части окна emacs появляется окно с указанием текущего каталога.

Здесь можно выбрать нужный каталог. После этого на экране появляется список файлов (рис. 8.3).
 
 

Рис. 8.2. Раскрывающиеся меню текстового редактора emacs
 
 

Рис. 8.3.Окно emacs с содержимым каталога

Если внимательно присмотреться к рис. 8.3, вы заметите, что количество раскрывающихся меню заметно увеличилось. В зависимости от контекста emacs отображает разные наборы меню.

Список на рис. 8.3 лишь показывает различные варианты. Его содержимое доступно только для чтения, и вы не можете прокрутить его, чтобы выбрать нужный файл или каталог; вместо этого вы снова выбираете команду Open File из меню File (Ctrl+x Ctrl+f) и вручную вводите имя файла или каталога. Короче говоря, команда Open File в действительности предоставляет доступ к командной строке emacs и выполняет команду ls -l.

После того как файл будет выбран, появится нечто похожее на рис. 8.4. Конечно, ваш файл будет содержать более осмысленную информацию.
 
 

Рис. 8.4.Окно emacs с загруженным файлом
И снова строка меню emacs слегка меняется в соответствии с контекстом редактирования простого текстового файла. На рис. 8.4 emacs сообщает имя файла (test), текущий режим (Fundamental) и долю файла, поместившуюся на экране (в нашем примере ≈ 22 percent).

Обратите внимание: строка состояния в нижней части окна emacs тоже изменилась. На предыдущем рисунке в строке состояния был указан режим Lisp Interaction и отсутствовало имя файла (что было вполне оправдано, потому что файл еще не был загружен). Мы подошли к важнейшей особенности emacs ≈ режимам.

Режимы emacs Как вы уже видели, поведение emacs меняется в зависимости от контекста: в разных условиях отображаются разные меню. Еще одно проявление гибкости emacs ≈ поддержка режимов, то есть фактически изменение поведения emacs в зависимости от текущей работы.

Например, на рис. 8.1 и 8.2 emacs находится в интерактивном режиме Lisp. Если вы программируете на Lisp, этот режим вам пригодится. Однако большинство из нас интересуют другие режимы emacs ≈ особенно базовый режим, изображенный на рис. 8.4 (Fundamental mode). Этот режим используется для редактирования ASCII-файлов. В emacs предусмотрены и другие режимы ≈ например, режимы редактирования исходных текстов на языках С и ТеХ.

Создание и редактирование файлов Как правило, emacs работает достаточно прямолинейно; большинство действий выполняется с помощью раскрывающихся меню или эквивалентных комбинаций клавиш.

При запуске emacs из командной строки появляется пустой экран. Если вы создаете новый файл, просто начинайте вводить текст. В конце строки emacs автоматически переносит текст, но несколько необычно ≈ символ ⌠обратная косая черта■ (\) означает, что слово продолжается на следующей строке (рис. 8.5).
 
 

Рис. 8.5.Текстовый редактор emacs с введенным текстом
Перемещение курсора в этой версии emacs происходит так же, как и в любом другом текстовом редакторе. Впрочем, некоторые особенности все же существуют: В табл. 8.1 перечислены дополнительные комбинации клавиш для перемещения по документу. Таблица 8.1. Команды перемещения курсора в emacs
 
Команда
Описание
Ctrl+a Перемещение курсора в начало текущей строки
Ctrl+b Перемещение курсора на один символ назад
Ctrl+e Перемещение курсора в конец текущей строки
Ctrl+f Перемещение курсора на один символ вперед
Ctrl+n Перемещение курсора на следующую строку
Ctrl+p Перемещение курсора на предыдущую строку
Ctrl+v Прокрутка документа на одну страницу вперед
Alt+v Прокрутка документа на одну страницу назад
Alt+< Перемещение курсора в начало документа
Alt+> Перемещение курсора в конец документа

 

Буферы

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

Emacs позволяет работать с несколькими буферами и выполнять копирование/вставку текста между буферами. Чтобы узнать, какие буферы открыты в настоящий момент, откройте меню Buffers (или нажмите Ctrl+x Ctrl+b). Результат показан на рис. 8.6.
 
 

Рис. 8.6.Буферы в emacs

Электронная документация

Существует еще одна область, в которой emacs превосходит большинство других текстовых редакторов Linux: наличие полноценной электронной документации. Чтобы вызвать справку, откройте меню Help и выберите нужную команду. Некоторые элементы справки учитывают текущий контекст и относятся к операции, выполняемой в данный момент (например, справка по режимам). Также существуют общие справочные разделы и обучающее руководство.

Чтение электронной документации удобно начать с команды Info (Ctrl+h i), которая выводит общие сведения об электронной документации emacs (рис. 8.7). Комбинация Ctrl+h t запускают удобную обучающую программу.
 
 

Рис. 8.7.Буферы в emacs
Мы вернемся к обсуждению справочной системы emacs позднее, в разделе ⌠Тех-info■. Краткий курс emacs Многие пользователи Linux не интересуются ⌠наворотами■ emacs; все, что им нужно, ≈ это возможность создавать и редактировать документы. Исходя из этого, мы подготовили небольшой учебный курс, посвященный процессу создания и редактирования текстовых файлов в emacs.

Вы уже знаете, как запустить emacs. Если вы хотите создать новый файл, приступайте к набору текста после загрузки редактора. Если вы хотите загрузить существующий файл и не указали его имя в командной строке, откройте его командой File|0pen File (Ctrl+x Ctrl+f).

В процессе редактирования файла используются основные клавиши перемещения курсора и редактирования. Когда настанет время сохранить файл, выполните команду File|Save Buffer (Ctrl+x Ctrl+s).

Чтобы выйти из emacs, выполните команду File|Exit Emacs (Ctrl+x Ctrl+c). Если вы не сохранили внесенные изменения, emacs предложит сохранить файл перед выходом.

Отмена Emacs позволяет отменить последнее действие. Конечно, для этого используется команда Edit|Undo (эквивалентная комбинация клавиш ≈ Ctrl+_). Редактирование текста При редактировании существующего текста можно пойти одним из двух путей. Консервативные пользователи UNIX и emacs обожают громоздкие команды, предназначенные для удаления и правки текста. Мы, ⌠модернисты■, привыкли к более современным (и удобным) способам.

Например, существует множество команд для выделения существующего текста, сохранения его в буфере и последующей вставки буфера в существующий или новый файл. Нам кажется, что значительно удобнее выделить текст мышью и затем воспользоваться нужной командой меню Edit для выполнения следующей операции (вырезание/копирование/вставка). Если вы знакомы с этой тройкой по работе в Windows, Macintosh или OS/2, то и в Linux проблем не будет:

Обратите внимание на два обстоятельства: во-первых, комбинации клавиш отличаются от тех, что используются в Windows, Macintosh или OS/2. Во-вторых, помеченный текст подсвечивается при его выделении мышью, но не после того, как вы отпустите кнопку мыши. При этом текст остается выделенным, просто вы этого не видите.

Удаление текста происходит аналогичным образом: сначала текст помечается мышью, а затем стирается командой Edit|Clear (у которой почему-то нет собственной комбинации клавиш). Для удаления помеченного текста нельзя использовать клавишу Backspace или Delete. В табл. 8.2 перечислены комбинации клавиш для удаления текста (специально для закоренелых ⌠клавишников■, которые ненавидят работать с мышью).

Таблица 8.2. Команды удаления в emacs
 
Клавиши
Результат
Delete Удаление символа в позиции курсора
Backspace Удаление символа слева от курсора
Ctrl+d Удаление символа в позиции курсора
Ctrl+k Удаление всех символов до конца строки
Alt+d Удаление символов до начала следующего слова
Alt+Delete Удаление символов до начала предыдущего слова

  Наконец, в emacs существует немало возможностей для модификации существующего текста. Большинство этих команд отсутствует в меню, поэтому их приходится вызывать с клавиатуры. Эти команды перечислены в табл. 8.3. Таблица 8.3. Дополнительные команды редактирования в emacs
 
Клавиши
Результат
Ctrl+t Переставляет символ в позиции курсора с предыдущим символом
Alt+t Переставляет слово под курсором с предыдущим словом
Ctrl+x Ctrl+t Переставляет текущую строку со следующей строкой документа; помните о том, что в emacs строка может представлять собой абзац, если в ее конце нет символа возврата курсора
Alt+l (буква l!) Преобразует слово к нижнему регистру; если курсор расположен в середине слова, emacs изменяет регистр только в оставшейся части слова
Alt+u Преобразует слово к верхнему регистру; если курсор расположен в середине слова, emacs изменяет регистр только в оставшейся части слова
Alt+c Начинает слово с прописной буквы (при условии, что курсор находится в начале слова)

 

Поиск и замена

Emacs не обладает изощренными возможностями поиска и замены текста, но расширенные средства поиска/замены, встречающиеся в коммерческих текстовых редакторах, используются достаточно редко.

Чтобы найти конкретную последовательность символов, выполните команду Edit|Search. В нижней части окна появляется приглашение:

Search: Здесь вводится последовательность символов, которая ищется в прямом направлении от текущей позиции курсора (а не от начала файла).

Если нажать Ctrl+S на клавиатуре, механизм поиска будет несколько иным. В нижней части окна появляется приглашение:

I-Search: Поиск выполняется последовательно. Это означает, что emacs начинает перемещение по документу после ввода первого символа (например, после ввода t происходит перемещение к первому найденному экземпляру t).

Поиск с заменой выполняется командой Edit|Query-Replace. Вам будет предложено ввести искомую и новую строку. После этого emacs переходит к первому экземпляру искомой строки в буфере и спрашивает, хотите ли вы заменить текст (клавиша у производит замену, клавиша n отказывается от нее).

Проверка правописания В emacs присутствует модуль проверки правописания, который в действительности является расширением ispell ≈ GNU-версии почтенной команды spell из системы UNIX. Если выполнить команду Edit[Spell, на экране появляется список возможных вариантов ≈ проверка буфера, проверка конкретного слова или проверка с использованием другого или иностранного словаря. Кроме того, меню позволяет внести изменения в словарь (полезная возможность, особенно если вы пишете книгу и используете множество слов, отсутствующих в стандартном словаре).

Linux также позволяет запустить команду spell из командной строки.

Печать Чтобы напечатать файл в emacs, выполните команду File|Print Buffer (эквивалентной комбинации клавиш не существует). Эффект будет тем же, что и при запуске lpr из командной строки. Выход Комбинация Ctrl+x Ctrl+c сохраняет текущий буфер и завершает работу с emacs. Кроме того, можно воспользоваться командой File) Exit Emacs.

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

Xedit Редактор xedit обладает существенно меньшими возможностями, но при случае может пригодиться и он. Xedit ≈ простой текстовый редактор, в котором экран делится на несколько областей для редактирования текста и создания черновиков.

Xedit можно запустить из меню fvwm или в окне xterm. Если в командной строке указано имя файла, этот файл будет загружен в xedit. Для приложения Х Window мышь выполняет не так уж много функций: загрузка и сохранение файла, а также выделение текста. Однако комбинации клавиш с Ctrl и Alt, перечисленные в табл. 8.4, позволяют выполнять множество других действий.

Таблица 8.4. Операции редактирования в xedit
 
Комбинация клавиш
Операция
Alt+Delete Удаление предыдущего слова
Alt+Backspace Удаление следующего слова
Alt+< Перемещение фрагмента в начало файла
Alt+> Перемещение фрагмента в конец файла
Alt+] Перемещение фрагмента на один абзац вперед
Alt+[ Перемещение фрагмента на один абзац назад
Alt+b Перемещение курсора к началу предыдущего слова
Alt+d Удаление слова после текущей позиции курсора
Alt+f Перемещение курсора к началу следующего слова
Alt+h Удаление слова перед текущей позицией курсора
Alt+i Вставка файла
Alt+k Удаление текста до конца текущего абзаца
Alt+q Преобразование фрагмента в абзац с отступом на новой строке
Alt+v Перемещение курсора к началу предыдущей страницы
Alt+y Вставка выделенного фрагмента в текущей позиции курсора
Alt+z Прокрутка выводимого текста на одну строку вниз
Ctrl+a Перемещение курсора в начало строки
Ctrl+b Перемещение курсора на один символ назад
Ctrl+d Удаление символа после курсора
Ctrl+e Перемещение курсора в конец строки
Ctrl+f Перемещение курсора на один символ вперед
Ctrl+h Удаление символа перед курсором
Ctrl+j Вставка символа перевода строки и создание отступа в следующей строке
Ctrl+k Удаление до конца строки
Ctrl+l Перерисовка экрана
Ctrl+m Вставка символа перевода строки
Ctrl+n Перемещение курсора на следующую строку
Ctrl+o Вставка символа перевода строки и перемещение курсора к предыдущей строке
Ctrl+p Перемещение курсора к предыдущей строке
Ctrl+r Поиск и замена перед текущей позицией курсора
Ctrl+s Поиск и замена после текущей позиции курсора
Ctrl+t Перестановка символов до и после курсора
Ctrl+v Переход на следующую страницу
Ctrl+w Удаление выделенного фрагмента
Ctrl+y Отмена последней операции удаления, выполненной клавишами Ctrl+w

  За дополнительной информацией об xedit обращайтесь к электронной документации, для просмотра которой желательно использовать xman. Textedit Если вам приходилось работать с продуктами Sun Microsystems, вероятно, редактор textedit покажется вам знакомым: gilbert:~$ textedit В этом редакторе для открытия файлов и управления ими используются знакомые кнопки Open Look. Textedit представляет собой несложный текстовый редактор с возможностями поиска и замены, а также копирования выделенных фрагментов в буфер.

За дополнительной информацией о textedit обращайтесь к страницам руководства.

Другие текстовые редакторы Если описанные редакторы вас не устраивают, попробуйте другие: Настройка текстовых редакторов Как правило, текстовые редакторы Slackware Linux можно запускать практически без настройки. Тем не менее в некоторых ситуациях все же следует произвести настройку для расширения функциональных возможностей редактора (особенно emacs и jed). Настройка emacs Версия emacs, включенная в Slackware Linux, не настроена на использование цветов и цветовое выделение элементов синтаксиса при работе в X. Чтобы включить обе возможности, включите следующие строки в файл .emacs, находящийся в вашем основном каталоге: (global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
Настройка jed Для настройки jed используется скрытый файл .jedrc. Иногда jed отказывается правильно работать (особенно на портативных компьютерах), поэтому вам придется создать небольшой файл и заставить клавиши работать так, как вы хотите. Создайте в каталоге /usr/lib/jed/lib/ файл defaults.sl, состоящий всего из одной строки: () = evalfile("linux"); Затем отредактируйте файл /usr/lib/jed/lib/linux.sl и снимите комментарий со следующей строки: Info_Directory = "/usr/info" Если вы хотите использовать jed для написания электронной почты, добавьте следующую строку: UCB_Mailer = "/bin/mail" Пользователи VMS нередко хотят, чтобы jed был похож на EDT. Для этого необходимо внести некоторые изменения в файл конфигурации .jedrc. Например, чтобы клавиша + на цифровой клавиатуре удаляла целые слова вместо отдельных символов, вставьте следующий фрагмент в файл .jedrc, за строкой evalfile("edt");; : unsetkey("\e01");
unsetkey("\e0P\e01");
setkey("edt_wdel, "\e01");
setkey("edt_uwdel", "\e0P\e01");
Чтобы сделать то же самое в редакторе xjed при работе в X, вставьте следующий фрагмент в файл .Xmodmap: keycode 77 = KP_F1
keycode 112 = KP_F2
keycode 63 = KP_F3
keycode 82 = KP_F4
keycode 86 = KP_Separator
Кроме того, включите в файл /etc/X11/X86Config следующий фрагмент: # ServerNumLock # make sure this is commented out
XkbDisable Если у вас возникнут проблемы с клавиатурой, попробуйте удалить строку XkbDisable. Обычно такие проблемы возникают на портативных компьютерах и у пользователей за пределами США.
Xjed не выбирает цветной режим автоматически, поэтому вам придется включить в файл .Xdefaults следующий фрагмент: xjed*Geometry: 80х32+150+50
xjed*font: 10х20
xjed*background: midnight blue
Если вам не нравится темно-синий фон, выберите другой цвет.
Средства обработки текста В Linux, как и в других вариантах операционной системы UNIX, кроме уже описанных текстовых редакторов существует немало других средств для обработки текста. Однако знакомство с ними потребует небольшого вступления.

Система UNIX (а соответственно, и Linux) построена на основе набора специализированных команд, при этом различные аспекты задачи делятся между мелкомасштабными, конкретными командами. Например, чтобы создать документ, нельзя запустить текстовый редактор (скажем, WordPerfect) и создать весь документ с изощренным форматированием. Хотя emacs делает многое из того, что делают хорошие текстовые редакторы для Windows и Macintosh, в вопросах нетривиальной обработки текста и простейшего макетирования его возможности весьма ограничены.

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

В этой и предыдущей главах вы познакомились с основными текстовыми редакторами Linux. В этой главе мы займемся программами обработки текста, а затем рассмотрим процесс печати в Linux. Groff: классический стандарт На ранних стадиях своего развития UNIX рассматривалась как идеальный интерфейс к мощным системам печати (именно так мотивировались первые разработки UNIX в Bell Labs). В результате в UNIX появилось много различных средств обработки текстов. Некоторые из них исчезли под натиском коммерческих пакетов редактирования/обработки текста с достоверным воспроизведением документа на экране (например, Framemaker и WordPerfect). Тем не менее groff и его собратья прекрасно справляются с большинством несложных задач обработки текстов.

Roff ≈ так называлась исходная программа обработки текста, появившаяся в UNIX при участии Bell Labs. Co временем на ее основе были созданы другие утилиты (такие, как troff и psroff). Roff и ее потомки выполняли функции фильтров, которые получали из текстового редактора входные данные (конечно, заранее отформатированные командой roff) и отправляли их на конкретный принтер. Команды форматирования обеспечивали разбивку на столбцы, выбор шрифтов, вывод рамок и другие виды оформления.

В Slackware Linux входит groff ≈ GNU-версия troff. Программа groff и сопровождающие утилиты позволяют форматировать документы для широкого спектра устройств, включая принтеры PostScript (с использованием драйвера ps), ТеХ, программ Х Window и устройств построчной печати.

Использование groff Программа groff получает входные данные от текстового редактора (например, из elvis или emacs) и готовит их к выводу на другое устройство. Вы со своей стороны должны включить команды форматирования groff в текстовый документ.

Команды форматирования groff начинаются с символа ⌠обратная косая черта■ (\) или ⌠точка■ (.). Groff интерпретирует эти команды для выходного устройства. Например, вы можете ввести некоторый текст (рис. 8.8) в elvis или emacs и затем сохранить его под именем rules в своем основном каталоге.
 
 

Рис. 8.8.Входные данные для groff
Документ, отформатированный groff, отправляется на стандартный принтер следующей командой: gilbert: ~$ groff rules | Ipr Чтобы увидеть результат форматирования на экране, воспользуйтесь следующей командой: gilbert:~$ groff rules После того как текст на рис. 8.8 будет обработан groff, документ принимает вид, показанный на рис. 8.9.

Используя groff, необходимо помнить о некоторых фактах:

Рис. 8.9.Документ, обработанный программой groff
Некоторые полезные команды groff перечислены в табл. 8.5. Таблица 8.5. Полезные команды форматирования groff
 
Команда
Результат
.ad Запрет выравнивания текста по ширине
.Ьр Вставка разрыва страницы
.ce n Выравнивание по центру следующих n строк; если количество строк не указано, выравнивается всего одна строка
.fi Включение режима заполнения (отмена .nf)
.ft n Изменение начертания (n = В для полужирного шрифта и т. д.)
\fn Изменение начертания (n = В для полужирного шрифта и т. д.)
.in n Установка отступа для последующих строк величиной n пробелов
.Is n Установка межстрочных интервалов в документе. Например, команда .Is 2 устанавливает двойные интервалы. По умолчанию используются одинарные интервалы
.na Разрешение выравнивания текста по ширине (отмена .ad)
.nf Запрет режима заполнения
.pl n Количество строк на странице устанавливается равным п; по умолчанию на странице выводится 66 строк
.po ni Установка левого поля. Значение 1l (один - буква l) устанавливает размер поля равным 1 дюйму. Это значение необходимо задать, иначе печать начнется с физического левого края страницы (вместо дюймов можно использовать сантиметры, для этого 1 заменяется на с)
.ps n Установка размера шрифта n
\sn Установка размера шрифта п
.sp n Пропуск п строк. Чтобы пропустить полосу конкретного размера, используйте обозначение ni (для дюймов) или nс (для сантиметров)
.ti n Создание отступа в первой строке последующих абзацев величиной n пробелов
.un n Подчеркивание следующей строки. Если числовой параметр (n) задан, подчеркиваются следующие п строк. Подчеркивание должно использоваться для целой строки, вы не можете подчеркнуть конкретное слово

  Как всегда, за справкой следует обратиться к странице электронной документации. Для этого используется следующая команда: gilbert:~/$ man groff Создание man-страниц в groff Программистов или системных администраторов может заинтересовать применение для создания страниц электронной документации. Страницы создаются так же, как и документы в предыдущем разделе ≈ сначала они форматируются в elvis или emacs, а затем полученные документы обрабатываются groff. Однако для создания man-страниц необходимо при запуске groff указать два параметра: -Tascii (вывод результатов в виде ASCII-текста вместо форматирования текста для принтера; по умолчанию используется формат PostScript) и -man (использование макросов man-страниц).

Программа groff также может осуществлять вывод на другие устройства и программы. Параметр
-Tdvi создает файлы для ТеХ в платформонезависимом формате DVI.

ТеХ Великий наставник и знаток программирования Дональд Кнут (Donald Knuth) разработал ТеХ (произносится ⌠тех■, а не ⌠текс■) для решения сложных задач макетирования, с которыми не справлялись компьютерные программы того времени (например, математические формулы или использование иностранных языков). ТеХ работает по тому же принципу, что и groff: вы создаете исходный файл в elvis или emacs, а затем ⌠прогоняете■ его через ТеХ. В Linux также включен LaTeX ≈ набор полезных макросов для работы с ТеХ, а также огромное количество шрифтов (для тех, кто занимается подготовкой публикаций, одни эти шрифты оправдают установку Linux; в них представлены все крупные и большинство мелких диалектов и даже такая экзотика, как шрифты клингонского языка).

Мы не будем подробно рассматривать ТеХ. Во время установки Slackware Linux с CD-ROM вам было предложено установить ТеХ и прилагаемые шрифты. Если вы не сделали этого, запустите программу установки снова и установите программы ТеХ. Работа с ТеХ ≈ занятие нетривиальное; если в вашей работе используется точное математическое форматирование, найдите одну из многочисленных книг по ТеХ.

Texinfo Программа форматирования текста texinfo была любезно предоставлена той же организацией, от которой мы получили emacs. Texinfo ≈ относительно недавняя попытка обеспечить полезной документацией всех пользователей UNIX/Linux. Программа texinfo создает файлы, доступные для справочных систем приложений, в командной строке или даже в виде печатного руководства. Конечно, главное преимущество состоит в том, что документация изменяется всего в одном исходном файле. Поскольку это упрощает процесс создания толковой электронной документации, мы аплодируем авторам ≈ система UNIX известна своей запутанностью, a texinfo помогает донести справочную информацию до широких масс.

Приятная подробность: Фонд бесплатных программ использует те принципы, которые он распространяет, и оформляет большую часть электронной документации в виде файлов texinfo. Если вы работаете с emacs, обратите внимание на файлы texinfo, использованные в меню Help (те же файлы можно вызвать комбинаций Ctrl+h I).

Справочные файлы верхнего уровня изображены на рис. 8.10.
 
 

Рис. 8.10. Справка по emacs
Хотя на рисунке видна лишь часть страницы, в этой части документации emacs описываются продукты Фонда бесплатных программ, большая часть которых была включена в Slackware Linux. Например, после прокрутки страницы вы найдете описание самой программы texinfo (рис. 8.11).
Рис. 8.11.Электронная документация по системе texinfo
Для работы с этими файлами необязательно запускать emacs. To же самое можно сделать следующей командой: gilbert:/$ info Результат изображен на рис. 8.12.
Рис. 8.12.Команда info в действии
Как видно из рис. 8.11, по texinfo имеется полная электронная документацией. Благодаря ей дальнейшее описание излишне. Из файлов, перечисленных на рис. 8.11, можно узнать все необходимое о создании страниц texinfo. Sed Команда sed (Streams EDitor) в действительности не является ни текстовым редактором, ни программой обработки текста. Впрочем, ее можно использовать для интерактивной обработки текста. А можно рассматривать sed как фильтрующий текстовый редактор. С технической точки зрения команда sed выполняет следующие операции: Все эти операции определяются в командной строке. Типичная команда sed выглядит так: gilbert:~$ sed -n [-е операция |-f имя_сценария] имя_файла где -n ≈ номер строки или строк, операция ≈ одна из допустимых операций sed, имя_сценария ≈ файл с расширенным списком операций sed, а имя_файла ≈ файл, с которым работает sed.

Параметры командной строки sed перечислены в табл. 8.6.

Таблица 8.6. Параметры командной строки sed
 
Параметр
Назначение
Сообщает sed о том, что следующий параметр является операцией; если используется всего одна операция, -е можно опустить
-f Определяет файл сценария; если некоторые операции должны использоваться регулярно, сохраните их в файле сценария для последующего использования
-n Определяет номер строки или диапазона строк

  Чтобы узнать, как работает sed, создайте текстовый файл с именем test: This is a test of the Emergency Linux system. This is a test.
If this were an actual document, we probably would take it more
seriously than we do in this flippant, unorganized memo.
Для начала воспользуемся sed для вывода части файла test ≈ например, второй и третьей строки. Выполните следующую команду: $ sed -n '2.3p' test На экране появляется следующее: If this were an actual document, we probably would take it more
seriously than we do in this flippant, unorganized memo.
Если бы мы захотели сохранить результаты в файле, это можно было бы сделать следующей командой: $ sed -n '2.3p' w имя_файла test где имя_файла ≈ имя сохраняемого файла.

В нашем маленьком примере обратите внимание на следующее:

Конечно, вывод или сохранение ≈ далеко не единственная возможность. В табл. 8.7 перечислены основные операции sed. Таблица 8.7. Основные операции sed
 
Операция
Результат
а\строка Добавление последовательности строка
с\строка Замена указанных строк последовательностью строка
d Удаление заданных строк или последовательностей символов
i Вставка заданной последовательности символов перед заданными строками
l Вывод файла или его части, при этом отображаются символы, обычно используемые для форматирования. Например, символы табуляции отображаются в виде символа >
p Передача результатов на стандартный вывод ≈ то есть на экран, если явно не указано обратное
r имя_файла Вставка файла с заданным именем после заданной строки
s/cmpoкa1/строка2/ Замена строки1 на строку2
w имя_файла Запись строк в файл с заданным именем

  Как и большинство команд UNIX, sed может использоваться при перенаправлении ввода/вывода и в сочетании с другими командами. За дополнительной информацией о sed обращайтесь к справочникам, перечисленным в приложении А. Кроме того, сведения о sed можно почерпнуть из man-страницы: gilbert:~$ man sed Шрифтовые утилиты В распоряжении пользователей Х Window оказывается большой набор шрифтов. Чтобы узнать, какие шрифты имеются на вашем компьютере, выполните команду xlsfonts: gilbert:~$ xlsfonts Вероятно, перед вами промелькнет длинный список шрифтов. Вот почему вывод команды обычно направляется в файл или на ввод команды more, которая отображает список шрифтов постранично: gilbert:~$ xlsfonts | more
-adobe-соurier-bold-i-normal-0-0-0-0-m-0-iso8859-1
Чтобы узнать, какие шрифты поддерживаются вашим сервером шрифтов (при условии, что он был установлен, ≈ см. главу 3), выполните команду fslsfonts: gilbert:~$ fslsfonts В этом случае вывод также желательно направить в файл или на ввод команды less.

Для получения информации о конкретном сервере шрифтов используется команда fsinfo:

gilbert:~$ fsinfo Команда xfd отображает все символы конкретного шрифта (рис. 8.13); gilbert:~$ xfd -fn имя_шрифта
Рис. 8.13.Команда xfd в действии
Также для просмотра шрифтов можно воспользоваться командой xfontsel (рис. 8.14).
Рис. 8.14.Команда xfontsel в действии

Менеджеры файлов

В главе 3 мы познакомились с менеджерами файлов ≈ программами, обеспечивающими графический интерфейс к операционной системе Slackware Linux (как при работе в режиме командной строки, так и в Х Window System). В этом разделе рассматриваются некоторые менеджеры файлов, входящие в Slackware Linux. Midnight Commander Midnight Commander ≈ клон Norton Commander, одной из самых полезных программ, написанных для операционной системы MS-DOS. Midnight Commander приближается к функциональным возможностям Norton Commander ≈ он также позволяет перемещать, переименовывать и копировать файлы и каталоги.

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

Работа с мышью Чтобы в Midnight Commander стала возможна работа с мышью, следует установить пакет gpm. Одна из самых удобных возможностей заключается в том, что щелчок мышью на файле и каталоге выделяет их для последующих действий. Из Midnight Commander можно выполнять любые повседневные действия Slackware Linux. Приложения запускаются двойным щелчком на исполняемом файле. Если вы хотите связать расширение файла с конкретным приложением (например, все файлы, имена которых заканчиваются на .doc и .txt ≈ с редактором emacs), Midnight Commander позволяет это сделать. Запуск Midnight Commander Midnight Commander запускается следующей командой: gilbert: ~$ mc Если вы используете Midnight Commander в X, введите следующую команду в окне xterm: gilbert:~$ mc -x В табл. 8.8 перечислены некоторые параметры командной строки Midnight Commander. Таблица 8.8.Параметры командной строки Midnight Commander
 
Параметр
Результат
-b Переход от цветного изображения к черно-белому
Переход от черно-белого изображения к цветному
-C arg Замена цвета
-d Запрет поддержки мыши
-f Midnight Commander может быть построен с указанием конкретного набора путей для поиска; данный параметр выводит эти пути
-V Вывод номера текущей версии
-x Midnight Commander узнает о том, что он работает в окне xterm. Это позволяет организовать поддержку графических режимов и мыши

  Midnight Commander обладает многочисленными возможностями, которые далеко не всегда очевидны, поэтому лучше потратить немного времени на просмотр электронной документации, чем пытаться все выяснить методом проб и ошибок. Полное описание Midnight Commander приведено на странице руководства: gilbert:~$ man mc Xfm Xfm представляет собой аналог Midnight Commander для X Window и обеспечивает графический интерфейс к вашим приложениям и файлам.

Перед тем как работать с xfm, его необходимо настроить. Для этого запустите небольшой сценарий xfm.install:

gilbert:~$ xfm.install Сценарий копирует файлы конфигурации в ваш основной каталог. Xfm можно запустить из окна xterm: gilbert:~$ xfm Xfm открывает два окна: в одном выводится содержимое текущего каталога, а в другом ≈ список приложений. Обычные файлы изображаются в виде пустых страниц (как в операционной системе Macintosh); ссылки ≈ в виде страниц с цепочкой; приложения ≈ в виде страниц с маленьким окном. Родительский каталог изображается в виде папки с двумя стрелками, направленными вверх, а другие каталоги ≈ в виде обычных папок.

В главном окне xfm присутствуют три раскрывающихся меню: File, Folder и View. В меню File перечислены основные операции с файлами (создание файлов; удаление, перемещение и создание ссылок; выбор группы файлов для выполнения последующих действий). Меню Folder выполняет аналогичную функцию для каталогов, а меню View управляет отображением файлов (вывод расширенной информации, скрытых файлов и т. д.). Значки (icons), изображающие файлы, можно перетаскивать мышью.

Менеджер приложений После настройки xfm в окне Application появляется список приложений. Это не означает, что на вашем компьютере Slackware Linux имеются все эти приложения; просто если вы установите приложение, соответствующий значок будет в вашем распоряжении (например, Mosaic не входит в Slackware Linux, хотя соответствующий значок имеется).

Чтобы изменить содержимое окна Applications, следует отредактировать файл .xfm (обратите внимание на точку ≈ признак скрытого файла), находящийся в вашем основном каталоге:

gilbert:~$ xedit .xfm Впрочем, многие указанные приложения поставляются в составе Slackware Linux ≈ xterm, emacs, textedit, mail, calculator и manual (другое название xman). Кроме того, значок Toolbox открывает новое окно для вызова команд exec, xxgdb, make, gzip, tar -cfv, tar -cfvz, zip, uuencode, grep, find и xfmtype. Значок Graphics открывает новое окно для вызова различных графических утилит (о которых будет рассказано ниже в этой главе).
Параметры командной строки У xfm имеются всего три параметра командной строки: За дополнительной информацией о xfm обращайтесь к электронной документации: gilbert:~$ xman Tkdesk Хотя xfm ≈ превосходный менеджер файлов, в Slackware Linux был включен еще один очень хороший менеджер, tkdesk. Это одно из лучших и самых полезных приложений для Linux. При работе с файлами Tkdesk использует интерфейс, несколько напоминающий Windows Explorer (рис. 8.15).
Рис. 8.15.Работа с файлами в tkdesk
Настройка Tkdesk может выполняться прямо во время работы с приложением ≈ на фоне других приложений Linux это является существенным достижением. Из удобной панели задач запускаются другие приложения. Тип файла можно связать с определенной программой ≈ например, двойной щелчок на GIF-файле будет запускать xv (программу просмотра графических файлов). Сжатие и архивация файлов Во время странствий по Интернету вам наверняка встречались файлы с загадочными суффиксами .gz и .tar. Многие знают, что эти файлы ≈ наследие прошлых версий UNIX, которые существовали еще до появления PC и Macintosh.

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

Суффикс .gz означает, что файл был сжат утилитой GNU gzip. В мире программ Linux это делается очень часто. Gzip ≈ не единственная утилита сжатия файлов в UNIX/Linux; также поддерживается традиционная команда compress. Кроме того, в этой версии Slackware Linux представлены команды zip и unzip, совместимые со знаменитым форматом сжатия PKZip от PKWare. В сущности, все эти команды делают одно и то же: они берут двоичный или ASCII-файл (или заданный набор файлов) и сжимают их в один файл меньшего размера. Полученный файл будет передан по Интернету или электронной почте быстрее, чем необработанный файл.

В Slackware Linux существует третья утилита сжатия, bzip2, которая рассматривается ниже в этой главе. Поскольку команды gzip, bzip2 и zip поставляются с системой Linux, именно им мы уделим основное внимание. Утилита gunzip (парная к gzip) может применяться для файлов, сжатых compress и pack, а следовательно, она будет работать с подавляющим большинством сжатых файлов UNIX. Zip работает с файлами, которые сжимались программами для MS-DOS, Macintosh и Windows. Поскольку в Интернете преобладает именно этот формат, с ним стоит познакомиться поближе, если вы собираетесь регулярно получать файлы из Интернета. Вам даже не обязательно знать, какой командой был сжат файл. Иначе говоря, неважно, какое расширение имеет файл ≈ .z, .Z или .gz; gzip будет работать в любом случае. Аналогично, zip используется для файлов с суффиксом .zip. Если вы собираетесь распространять свои сжатые файлы, подумайте, стоит ли использовать gzip; эта утилита есть не у всех пользователей UNIX. Впрочем, у большинства пользователей Интернета она, похоже, имеется ≈ судя по количеству файлов, обработанных gzip, на различных FTP-узлах.

Мы не собираемся рекомендовать конкретную утилиту сжатия. Версии утилиты gzip существуют и в других операционных системах (в частности, в MS-DOS), поэтому сжатые ей файлы будут доступны для любого пользователя с подключением к Интернету. Аналогично, поскольку для любой операционной системы можно найти бесплатную версию PKZip или аналога (например, WinZip), в мире MS-DOS и Windows стандартным стал именно этот формат (основная утилита сжатия в мире Macintosh, StuffIt, практически не встречается в других операционных системах). А поскольку большинство информации в Интернете хранится в формате .zip, вероятно, он превратился в основной формат сжатия в компьютерном мире. Обе утилиты находятся в вашем распоряжении, и вы можете выбрать ту, которая лучше подходит для ваших целей.

Подробная документация по gzip присутствует в документации GNU texinfo, описанной выше. Дополнительные сведения о zip можно найти в соответствующей man-странице:

gilbert:~$ man zip В двух последующих разделах рассматриваются утилиты gzip и zip.
Gzip Команда gzip выполняет следующие операции: Допустим, у вас имеется каталог со следующими файлами: fig7_11.xwd test test3 Предположим, вы хотите сжать файл test. Для этого вводится следующая команда: gilbert:/home/kevinr# gzip test Новое содержимое текущего каталога будет выглядеть так: fig7_11.xwd test. gz test3 Вместо файла test появился файл test.gz. Если вы привыкли работать на PC или Macintosh, вероятно, вам хорошо знакома утилита PKZip от PKWare. Однако работа gzip несколько отличается от PKZip. Прежде всего, gzip не умеет сжимать несколько файлов в один архив с использованием универсальных символов, как это делает PKZip. После выполнения следующей команды: gilbert:/home/kevinr# gzip te* содержимое каталога будет выглядеть так: fig7_11.xwd test. gz test3.gz Каждый исходный файл, имя которого начиналось с символов te, заменяется одноименным файлом с суффиксом .gz.

Чтобы узнать, насколько уменьшился файл в результате сжатия, выполните команду gzip с параметром -l (буква 1) и именем сжатого файла:

gilbert:/home/kevinr# gzip -l test.gz
compressed uncompr. ratio uncompressed_name
122 245 59,5% test
Некоторые большие файлы хранятся в сжатом виде (в частности, графические файлы формата JPEG и GIF) и потому практически не сжимаются утилитой gzip.
Gunzip Команда gunzip восстанавливает любой сжатый файл независимо от того, какой командой выполнялось сжатие ≈ gzip, compress или pack. При вызове команде передается имя сжатого файла: gilbert:/home/kevinr# gunzip test.gz При восстановлении файла сжатый файл автоматически удаляется из системы. Если вы не до конца уверены в содержимом восстанавливаемого файла, скопируйте его в другой каталог и оставьте исходный сжатый файл на прежнем месте. Bzip2 Утилита bzip2 похожа на gzip ≈ она также предназначена для сжатия файлов. Однако в отличие от gzip, bzip2 может применяться для сжатия нескольких файлов. Кроме того, поддержка bzip2 встроена в tar и less.

Заслуживает внимания и такая возможность bzip2, как ограниченное восстановление архива после ошибок носителя. Если чтение данных с резервной ленты или диска будет произведено с ошибками, возможно, bzip удастся восстановить неповрежденные участки файла.

Параметры командной строки bzip2 в основном те же, что и у gzip. Если вы умеете работать с gzip, то и с bzip2 проблем не будет. Командная строка bzip2 выглядит так:

gilbert:~$ bzip2 параметры имя_файла(-ов) Архивы распаковываются утилитой bunzip2: gilbert:~$ bunzip2 параметры имя_файла(-ов) Для восстановления поврежденных файлов применяется утилита bzip2recover: gilbert:~$ bzip2recover имя_файла Чтобы узнать, чем параметры командной строки отличаются от gzip, обратитесь к странице руководства по bzip2. Формат файлов bzip2 несовместим с форматом gzip или zip. Следовательно, bzip2 нельзя использовать для распаковки файлов, сжатых gzip или zip, и наоборот.
Zip Команда zip сжимает набор файлов в один компактный архив, который можно распаковать или просмотреть в версии zip для MS-DOS, Windows, Windows 95, Windows NT, Macintosh, OS/2 и VMS. Впрочем, совместимость все же ограничена; zip для Linux создает архивные файлы, которые читаются только PKZip 2.04g или более новых версий (ни Фил Катц (Phil Katz), ни PKWare не принимали участия в создании zip, поэтому на поддержку от них рассчитывать не приходится).

Чтобы заархивировать набор файлов (в данном примере ≈ все файлы текущего каталога), воспользуйтесь следующей командной строкой:

gilbert:~$ zip file.zip * Отличие от gzip налицо: если gzip сжимает всего один файл, zip позволяет выбрать несколько файлов с помощью символов подстановки. По мере обработки файлов zip выводит данные о ходе сжатия на экран. После сжатия исходные файлы остаются без изменений (тогда как zip удаляет файлы после архивации).

Утилита zip имеет много параметров командной строки. Например, для преобразования символа перевода строки UNIX в комбинацию ⌠возврат курсора/перевод строки■ (CR/LF), используемую в MS-DOS (бывает полезно при обмене текстовыми файлами с пользователями MS-DOS/Windows; не используйте этот параметр для двоичных файлов!), применяется параметр -l (буква l):

gilbert:~$ zip -l *.с Кроме того, при передаче файлов пользователям MS-DOS/Windows следует учесть, что MS-DOS не работает с длинными именами или файлами, в именах которых присутствуют две точки. Параметр -k приводит имена файлов UNIX в соответствие со стандартами MS-DOS: gilbert:~$ zip -k file.zip *.c Параметр -g добавляет файлы в существующий архив: gilbert: ~$ zip -g file.zip *.c Иногда в процессе пересылки в архиве повреждается один-два байта. У zip хватает сообразительности на то, чтобы обнаружить повреждения и предоставить вам возможность исправить их. Если zip сообщит о повреждении архива, используйте параметр -F для его восстановления: gilbert:~$ zip -F damaged.zip Если вы хотите запустить zip в ⌠тихом■ режиме (то есть запретить выдачу информации о сжатии каждого файла ≈ может пригодиться при конвейерном запуске zip или в сценарии), воспользуйтесь параметром -q: gilbert:~$ zip -q zipfile.zip *.c За дополнительной информацией о zip обращайтесь к электронной документации: gilbert:~$ man zip Однако учтите, что документация не всегда идеально точна. Не удивляйтесь, если некоторые указанные параметры (например, параметры -е и -ее, применяемые при шифровании файлов) не будут работать в вашей версии zip.

Распаковка архивов выполняется командой unzip:

gilbert:~$ unzip zipfile.zip Для конвейерной распаковки файла применяется команда funzip: gilbert:~$ funzip zipfile.zip | команда Команда zipgrep выполняет поиск в архиве с использованием команды egrep: gilbert:~$ zipgrep образец zipfile.zip Пакет включает еще несколько команд ≈ zipdoak, zipinfo, zipnote и zipsplit.
Tar Команда gzip не работает с наборами файлов; она вызывается для одного отдельного файла. Если вам потребовалось сжать несколько файлов, сначала необходимо создать один общий архив, а затем сжать его. Эта задача решается командой UNIX/Linux tar (Tape ARchive).

Утилита tar не сжимает файлы, входящие в архив. Она просто объединяет файлы и сохраняет структуру каталогов в одном большом архиве.

Вероятно, в странствиях по Интернету и различным FTP-узлам вам встречались файлы с именами, заканчивающимися символами .tar.gz. Это означает, что набор файлов был объединен утилитой tar, а затем сжат утилитой gzip. Если вы создаете резервные копии своей системы (что мы настоятельно рекомендуем делать), создание архива начинается с команды tar.

Команда tar ≈ не из простых. Пользоваться ей нетрудно, однако параметры выглядят непонятно. Несколько примеров практической работы с tar помогут вам разобраться в ситуации.

Предположим, вы хотите создать резервную копию всех файлов важного каталога (/home/patrick), чтобы ваша работа случайно не пропала. Убедитесь в том, что текущим каталогом является /home/patrick, и выполните следующую команду:

gilbert:/home/Patrick$ tar cvf archive.tar . Обратите внимание на пробел и точку в конце командной строки; присутствие точки обязательно. Также следует заметить, что перед параметрами не ставится дефис (-).

Эта командная строка создает объединенный файл arcnive.tar в текущем каталоге, при этом используются следующие функции и параметры:

Порядок параметров не важен; в старых версиях tar требовалось, чтобы параметры немедленно следовали за командой, но в версии tar, поставляемой с Linux, это требование снято. Тем не менее параметр f желательно указывать в последнюю очередь, потому что после него следует имя файла.

Tar оставляет существующие файлы без изменений (в отличие от утилиты gzip, удаляющей исходные файлы). Tar не требует ставить дефис (-) перед функциями и параметрами. Впрочем, наличие дефисов не повлияет на работу команды.

Командная строка завершается пробелом и точкой (.); тем самым вы сообщаете tar о том, что входными данными для архива должно быть все содержимое текущего каталога (tar архивирует и скрытые файлы). Вместо точки в конце командной строки можно использовать универсальные символы (например, строка с* архивирует все файлы текущего каталога, имена которых начинаются с буквы с). Кроме того, можно указать архивируемый каталог, задавая либо путь (home/patrick), либо его расположение относительно текущего каталога (например, patrick, если текущим каталогом является/home). Однако при создании архива нельзя использовать абсолютные имена; tar удаляет ведущий символ / из имени, чтобы предотвратить случайное стирание важных файлов во время распаковки файла (вскоре вы узнаете, почему это происходит). При указании архивируемого каталога tar также архивирует все подкаталоги и сохраняет иерархическую структуру каталогов. Для архивных материалов обычно создаются специальные подкаталоги; в этом случае у пользователей не возникнет проблем с восстановлением архивов на их компьютерах.

После выполнения tar у вас появляется файл Linux, на который распространяются все общие правила Linux. Файл можно скопировать на гибкий диск или в другой каталог файловой системы Linux, сохранить его на магнитной ленте или записываемом CD-ROM, а также сжать утилитой gzip (см. выше). Поскольку утилита tar доступна для всех пользователей UNIX, можно передать файлы другим пользователям и не сомневаться в том, что архив будет распакован. В операционных системах MS-DOS и Macintosh также существуют свои версии tar, поэтому большинство пользователей сможет работать с вашим архивом.

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

В командной строке tar должны быть заданы функции и параметры. Если ввести командную строку без функции, tar выдает сообщение об ошибке. В нашем примере была использована основная функция с, за которой следовали дополнительные параметры v и f.

Важнейшие параметры и функции tar перечислены в табл. 8.9 и 8.10. Мы приводим их на случай, если вам понадобятся какие-нибудь из редких функций; в основном используются только функции с, х и t.

Таблица 8.9.Основные функции tar
 
Функция
Результат
А Добавление файлов в существующий архив
с Создание нового архива
d Сравнение текущих файлов с содержимым архива для предотвращения стирания существующих файлов
r Добавление указанных файлов в конец существующего архива
t Вывод содержимого существующего архива
U Обновление текущих файлов в том случае, если в архиве хранятся более новые версии
х Извлечение файлов и каталогов из архива

 

Таблица 8.10.Основные параметры tar
 
Параметр
Результат
f имя_файла Указание имени архива
k Сохранение существующих файлов
М Создание многотомного архива
V Расширенный режим вывода, при котором tar перечисляет архивируемые или извлекаемые из архива файлы. Мы всегда указываем этот параметр, чтобы убедиться в том, что tar работает с нужными файлами
Z Сжатие архива утилитой gzip после его создания (см. ниже)

 

В таблицах перечислены основные функции и параметры tar, однако этим возможности не исчерпываются. Следующая команда выводит полный список всех функций и параметров GNU-версии tar: gilbert:~$ man tar Также можно воспользоваться командой info для просмотра описания tar в texinfo. Распаковка архива Распаковка файла tar осуществляется командной строкой следующего вида: gilbert:~$ tar xvf archive.tar Команда извлекает из архива файлы и создает все каталоги, находящиеся в архиве. Однако каталоги будут созданы в виде подкаталогов текущего рабочего каталога. Например, если в архиве из приведенного примера имеется каталог stuff, он будет создан в основном каталоге пользователя. В процессе архивации файлов tar автоматически удаляет ведущий символ /, который является признаком абсолютного пути к файлу. Если вы знакомы с правилами хорошего тона в Linux, то все архивируемые файлы были выделены в специальный подкаталог, поэтому все распакованные файлы также будут находиться в отдельном подкаталоге.

Функция t выводит список файлов, находящихся в архиве:

gilbert:~$ tar tvf archive.tar
drwxr-xr-x kevinr/users 0 Apr 23 00:57 1995 home/kevinr/
-rw-r--r-- kevinr/users 164 Mar 30 02:59 1995 honie/kevinr/.kermrc
-rw-r--r-- kevinr/users 34 Jun 6 15:16 1993 home/kevinr/.less
-rw-r--r-- kevinr/users 114 Nov 23 19:22 1993 home/kevinr/.lessrc
drwxr-xr-x kevinr/users 0 Mar 29 09:31 1995 home/kevinr/.term
-rwxr-xr-x kevinr/users 2730 Mar 30 02:59 1995 home/kevinr/.bash_history
-rw-r--r-- root/root 197 Apr 21 00 04 1995 home/kevinr/test3
-rw-r--r≈ root/root 247 Apr 20 03 33 1995 home/kevinr/#test#
-rw-r--r-- root/root 197 Apr 21 00 18 1995 home/kevinr/#test3#
-rw-r≈r≈ root/root 268399 Apr 22 11:48 1995 home/kevinr/fig7_10.xwd
-rw-r--r≈ kevinr/users 122 Apr 6 10:13 1995 home/kevinr/test.gz
-rw-r≈r≈ root/root 325889 Apr 22 12:03 1995 home/kevinr/fig7_11. Xwd
-rw-r--r≈ root/root 252107 Apr 22 12:01 1995 home/kevinr/fig7_12.xwd
-rw-r≈r≈ kevinr/users 245 Apr 8 09:22 1995 home/kevinr/test.bk
Функция t предназначена только для вывода сведений о содержимом архива; файлы при этом не извлекаются. Однако полученная информация позволяет выбрать нужные файлы и извлечь их. Например, файл test.bk извлекается из архива следующей командой: gilbert:~$ tar xvf archive.tar home/kevinr/test.bk
Параметр Z Как мы неоднократно говорили, команду tar лучше всего использовать в сочетании с командой gzip ≈ в результате создается архивированный и сжатый файл. Поскольку в Linux используются многие утилиты Фонда бесплатных программ, можно рассчитывать на определенную интеграцию взаимодействующих инструментов (например, emacs и texinfo). К этой интеграции относится и параметр z, уникальный для GNU-версий tar и gzip. Эта удобная функция позволяет заархивировать и сжать файл или набор файлов при вызове tar. Например, следующая команда архивирует и сжимает набор файлов: gilbert:~$ tar cvZf archive.tar.gz . При создании архива с параметром z следует указывать суффикс .tar или .gz (в отличие от самостоятельного вызова gzip, при котором суффикс .gz добавляется автоматически).

Для распаковки сжатых архивных файлов используется следующая команда:

gilbert:~$ tar xvZf archive.tar.gz
Создание резервных копий системы Во время обсуждения tar и gzip мы не коснулись темы резервного копирования системы. Каждому, кто имел дело с компьютерами, хорошо известно о необходимости регулярно создавать резервные копии системы. На компьютерах иногда происходят сбои (хотя не так часто, как в прошлом), поэтому резервное копирование важнейших данных должно войти у вас в привычку.

Конечно, вопрос о том, какие данные считать важнейшими, зависит от вашей точки зрения. Некоторые пользователи для пущей уверенности архивируют всю систему, особенно при внесении многочисленных изменений в конфигурацию Linux (например, в случае перекомпиляции ядра). Другие ограничиваются архивацией некоторых системных файлов, зная, что при необходимости Linux легко переустанавливается с CD-ROM.

Архивы делятся на две категории: архивы системных файлов или файлов данных. К системным файлам относятся конфигурационные файлы, настроенные для ваших конкретных условий, в том числе скрытые и используемые в Х Window. Файлы данных ≈ это ваша непосредственная работа; например, если вы пишете программу, то исходные тексты желательно почаще архивировать. Если вы являетесь системным администратором, сохраняйте файлы (как скрытые, так и общедоступные) в своем основном каталоге и основных каталогах ваших пользователей.

Не существует твердых правил, определяющих особенности создания резервных копий. Системные администраторы для сохранения большого количества файлов используют tar, gzip и магнитную ленту. Если вам потребовалось сохранить несколько маленьких файлов или содержимое одного каталога, воспользуйтесь tar и gzip и создайте один архивный файл, после чего скопируйте его на гибкий диск.

Создание архивов на гибких дисках Linux умеет записывать информацию непосредственно на гибкий диск. Вам не придется подключать дисковый том или создавать на диске файловую систему UNIX. Если диск отформатирован в MS-DOS, Linux стирает его текущее содержимое. Другими словами, если на диске находятся важные файлы и вы не хотите потерять их, не пытайтесь работать с диском через драйвер устройства. Позднее мы рассмотрим команды Linux для работы с гибкими дисками, отформатированными в MS-DOS.

Linux предполагает, что первый флоппи-дисковод на PC соответствует устройству /dev/fd0. Например, следующая командная строка tar направляет результаты работы на это устройство, а не в файл:

gilbert:~$ tar cvf /dev/fd0 . Если содержимое архивного файла не помещается на одном гибком диске, следует создать многотомный архив с помощью параметра М (помните о том, что в Linux учитывается регистр символов; m вместо М даст другой результат!) команды tar: gilbert:~$ tar cvMf /dev/fd0 . Внимательно следите за дисками: если хотя бы один из них выйдет из строя или потеряется, вы лишитесь всего архива.

Конечно, использование параметра Z команды tar поможет уместить весь архив на одном гибком диске.

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

Если вы используете стример, подключаемый к флоппи-контроллеру (как большинство стримеров типа QIC), достаточно указать в командной строке устройство /dev/rtf0:

gilbert:~$ tar cvf /dev/rtf0 . Эта команда создает архив на магнитной ленте.

Однако в действительности работа со стримерами не обходится без проблем. Например, если вы используете стример QIC, вам не удается отформатировать ленту в Linux; для этого придется воспользоваться утилитами DOS (не зря мы оставили раздел DOS!) или приобрести заранее отформатированную ленту.

Кроме того, остается неприятный вопрос ≈ сколько данных можно записать на ленту? Многие новые стримеры QIC автоматически перематывают ленту при каждом использовании. Однако Linux не поддерживает перемотку, поэтому вам не удастся создать на ленте маркер, а следовательно ≈ разместить на ней несколько архивов. Насколько это расточительно? Все зависит от того, кто платит за ленту. Честно говоря, вполне можно обойтись двумя лентами и поочередно создавать на них еженедельные архивы.

Другая возможность ≈ использовать драйвер стримера без перемотки, который обозначается /dev/nrft0 (в зависимости от настройки системы число может быть другим). Командная строка выглядит так:

gilbert:~$ tar cvf /dev/nrft0 . В этом варианте на ленте удается создать несколько архивов.

При использовании /dev/nrft0 вам придется перемотать ленту вручную и затем найти нужный архив. Чтобы перемотать ленту в начало после того, как архивы будут созданы, воспользуйтесь следующей командой:

gilbert:~$ mt /dev/nrft0 rewind Команда mt чрезвычайно полезна. Каждый, кому приходилось работать со стримерами, знает, что при частичном использовании лента ⌠провисает■ и заедается механизмом. Команда mt может промотать ленту до конца, вернуться, а затем выполнить обратную перемотку: gilbert:~$ mt /dev/nrft0 retension Наконец, команда mt позволяет выбрать нужные файлы на ленте в случае, если вы не хотите восстанавливать их все командой tar. Как говорилось выше, Linux не распознает файловые маркеры на ленте, поэтому вам придется немного помочь своей системе. Допустим, лента отмотана к началу и вы хотите прочитать с нее второй файл. Для этого вы приказываете Linux найти следующий файл на ленте (в терминологии mt ≈ первый файл после текущего): gilbert:~$ mt /dev/nrft0 fsf 1 Следующие команды: gilbert:~$ mt /dev/nrft0 fsf 2 и gilbert:~$ mt /dev/nrft0 fsf 3 находят на ленте третий и четвертый файл соответственно.

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

gilbert:~$ mt /dev/nrft0 fsf 4 После вызова tar вводится следующая команда (поскольку шестой файл является первым после пятого): gilbert:~$ mt /dev/nrft0 fsf 1 Также возможна запись на стример, подключенный к контроллеру SCSI (например, QIC или DAT). В этом случае команда выглядит так (для стримера с перемоткой и номером SCSI, равным 0): gilbert:~$ mt /dev/rst0 . или так (для стримера без перемотки и номером SCSI, равным 0): gilbert:~$ mt /dev/nrst0 . Команда mt также позволяет работать с лентами, созданными на других устройствах. Как правило, чтение лент DAT, записанных в другой системе, не вызывает особых трудностей. Однако если при записи ленты был использован другой размер блока, при попытке чтения появляется сообщение об ошибке. Проблема решается указанием нового размера блока в командной строке mt: gilbert:~$ mt setblk размер_блока У команды mt имеется немало других параметров; как обычно, мы рекомендуем обратиться к электронной документации: gilbert:~$ man mt
Команды MTools Mt ≈ лишь одна из многих команд Linux, разработанных с учетом странностей архитектуры PC (в частности, для работы с гибкими дисками в формате DOS). Пакет MTools поможет справиться с этими трудностями при выполнении многих повседневных задач.

Эти команды появились из-за различий в структуре файлов DOS и UNIX. Об этом необходимо помнить, особенно при работе с НГМД. Копирование файла командой UNIX может испортить рабочий гибкий диск DOS (мы узнали об этом на собственном опыте). Обязательно познакомьтесь с командами МТоols ≈ они помогут избежать многих проблем, обусловленных различиями в архитектурах DOS и Linux.

Просмотр каталога DOS (команда mdir) Эта тривиальная команда выводит содержимое каталога DOS: gilbert:~$ mdir По умолчанию в mdir (и остальных командах MTools) используется диск А: (то есть первый флоппи-дисковод). Поскольку разделы DOS можно подключить к файловой системе Linux, команды MTools не работают с диском С:. Изменение текущего каталога (команда mcd) Команда mcd изменяет текущий каталог на гибком диске (по умолчанию им является корневой каталог диска А:). Если команда вызывается без аргументов, она выводит сведения о текущем устройстве и рабочем каталоге: gilbert:~$ mcd А:/ Копирование файлов (команда mсору) Команда UNIX cp способна разрушить файловую структуру MS-DOS на гибком диске. Чтобы скопировать файл из Linux на гибкий диск DOS, воспользуйтесь командой mсору: gilbert:~$ mсору -t textfile a:textfile В команде mсору использована конвенция имен дисков DOS (в отличие от имен устройств UNIX). В приведенном примере файл textfile (вероятно, текстовый) копируется на диск А. В текстовых файлах UNIX и DOS по-разному обозначается переход на новую строку, поэтому в командной строке указывается параметр -t, преобразующий формат файла в ходе копирования.

Количество параметров у команды mсору невелико. Разработчики были людьми милосердными, поэтому mсору предупреждает о замене одноименных файлов. Чтобы избавиться от их заботы, запустите mсору с параметром -n:

gilbert: ~$ mcopy -n textfile a:textfile В расширенном режиме вывода (параметр -v) команда выводит сведения о копировании каждого файла: gilbert:~$ mcopy -v textfile a:textfile Также помните о том, что при работе с файлами DOS необходимо использовать стандартные имена в формате 8.3.
Переименование файлов DOS (команда mren) Команда mren переименовывает файлы DOS: gilbert:~$ mren oldfile.nam newfile.nam При работе с файлами DOS должны использоваться стандартные имена в формате 8.3. Удаление файлов DOS (команда mdel) Команда mdel удаляет файлы из каталогов DOS. Например, файл textfile с диска А: удаляется следующей командой: gilbert:~$ mdel a:textfile Просмотр файлов DOS (команда mtype) Чтобы просмотреть файл DOS, находящийся на гибком диске, воспользуйтесь командой mtype: gilbert:~$ mtype имя_файла Для ASCII-файлов следует указывать параметр -t: gilbert:~$ mtype -t имя_файла Создание каталога DOS (команда mmd) Каталоги DOS создаются командой mmd: gilbert:~$ mmd newdirec.tor При работе с файлами DOS должны использоваться стандартные имена в формате 8.3. Удаление каталога DOS (команда mrd) Если вас не устраивает каталог, созданный командой mmd, его можно удалить командой mrd. Копирование файлов DOS в Linux (команда mread) Команда mread переносит файл DOS в Linux, при необходимости выполняя соответствующие преобразования. Команда может применяться как для переноса отдельного файла в файл UNIX, так и для переноса набора файлов DOS в каталог Linux. В первом варианте задаются имена файлов DOS и Linux: gilbert:~$ mread dosfile linuxfile Чтобы скопировать набор файлов в некоторый каталог Linux, укажите нужные файлы DOS (допускается использование символов подстановки) и каталог Linux: gilbert:~$ mread *.* /home/kevinr Если в каталоге уже существует одноименный файл, mread предупредит вас о перезаписи.

Команда mread имеет несколько параметров:


Копирование файлов Linux в DOS (команда mwrite)

Команда mwrite записывает файл Linux на диск, отформатированный в DOS: gilbert:~$ mwrite linuxfile dosfile Если одноименный файл уже существует на диске, mwrite предупредит вас о перезаписи.

Команда mwrite имеет несколько параметров:

Для копирования файлов между DOS и Linux также используется команда mсору. Форматирование диска (команда mformat) Команда mformat создает на диске, отформатированном в UNIX, элементы файловой системы DOS (FAT, загрузочный сектор и корневой каталог). Чтобы отформатировать диск в устройстве А, воспользуйтесь следующей командой: gilbert: ~$ mformat a: Команда mformat имеет несколько параметров: Команда mformat работает только с дисками, ранее отформатированными в UNIX. В действительности пользы от нее меньше, чем может показаться с первого взгляда. Назначение метки тома (команда mlabel) Команда mlabel выводит текущую метку тома DOS и запрашивает новую метку. Если на приглашение ничего не ввести, mlabel просто удаляет существующую метку тома, не создавая новой. Единственный параметр mlabel, -v, запускает команду в режиме расширенного вывода (это всегда полезно при работе с незнакомыми командами). Изменение файловых атрибутов DOS (команда mattrib) При обмене файлами с компьютерами DOS иногда (впрочем, довольно редко) возникают конфликты с файловыми атрибутами ≈ отдаленными аналогами прав доступа Linux. Файлы DOS могут быть доступными только для чтения (r), архивными (а), системными (s) или скрытыми (h). Команда mattrib позволяет изменить значения атрибутов; ⌠плюс■ (+) означает установку атрибута, а ⌠минус■ (-) ≈ снятие. Например, чтобы сделать скрытый файл видимым, выполните следующую команду: gilbert:~$ mattrib -h имя_файла Атрибут доступа только для чтения снимается следующей командой: gilbert:~$ mattrib -r имя_файла Следующая команда превращает системный файл в обычный: gilbert:~$ mattrib -s имя_файла Если вам захочется снять архивный атрибут, воспользуйтесь следующей командой: gilbert:~$ mattrib -а имя_файла Установка атрибутов во всех приведенных примерах осуществляется заменой - на +.

Во всех командах предполагается, что вы работаете с диском А:. При работе с файлами на жестком диске в командной строке указывается абсолютное имя (с разделением каталогов стандартным для DOS символом \), однако оно должно быть заключено в апострофы, в противном случае оболочка Linux не воспримет его.

Графические программы Одной из основных целей Х Window System было внедрение графических возможностей в текстовую операционную систему. Поэтому в Х существует столько программ, предназначенных для создания и редактирования графики. Мы познакомимся лишь с некоторыми из них. Bitmap Программа bitmap предназначена для создания растров (bitmaps) ≈ небольших прямоугольных изображений, которые вставляются прямо в программный код на языке С и могут использоваться в качестве значков, курсоров, элементов мозаичных узоров и пунктирных линий и т. д. Окно программы bitmap изображено на рис. 8.16.
Рис. 8.16.Окно программы bitmap
После запуска команды bitmap на экране появляется решетка, соответствующая пикселям изображения. С помощью инструментов программы можно рисовать фигуры (например, кривые). Если растр предназначен для создания курсора, в нем можно назначить активную точку (hot spot), точно определяющую позицию курсора. С растрами выполняются операции инвертирования и складывания.

Дополнительные утилиты преобразуют растровый файл в последовательность ASCII-строк (bmtoa) и обратно (atobm).

Xfig Программа xfig удобна для создания небольших рисунков с использованием кругов, квадратов, многоугольников, других фигур и текста (например, диаграмм). Работа начинается с пустого экрана или с существующего файла. Результаты сохраняются в форматах LaTeX, PostScript, PIC или PiCTeX. Xfractint Программа генерирует фракталы ≈ многоцветные изображения, которые строятся по набору заданных параметров. В числе параметров задается количество цветов и размер окна, а также шаблон фрактала (xfractint содержит немало готовых фракталов).

Это необычная программа получает данные в окне xterm и отображает результаты в отдельном окне X. Вероятно, при первом запуске xfractint ваше внимание переключится на новое окно X. Но когда станет ясно, что новое окно остается черным и ждет ввода данных в окне xterm, все становится на свои места.

Xfractint запускается следующей командой:

gilbert:~$ xfractint У команды имеется несколько параметров, описанных в электронной документации.
Xpaint Простой графический редактор для создания и редактирования графических файлов. Если вам приходилось работать с MacPaint для Macintosh, вы быстро освоитесь в xpaint (тем более, что некоторые курсоры из MacPaint встречаются и в Xpaint). В числе поддерживаемых форматов ≈ Portable Bitmap (PPM), растры Х (ХВМ), TIFF, GIF, PostScript, ХРМ и многие другие. Окно Xpaint показано на рис. 8.17.

При запуске xpaint появляется окно, в котором изображены различные графические инструменты ≈ сплошная кисть, распылитель, средства редактирования и текстового ввода. Вы либо создаете новый ⌠холст■, либо открываете существующий файл, после чего открывается новое окно. Обычно при работе в xpaint используются эти два окна (как минимум два ≈ вы можете открывать дополнительные ⌠холсты■).

Дополнительную информацию можно почерпнуть из электронной документации.
 
 

Рис. 8.17.Окно xpaint

Xv

Замечательный графический пакет xv был разработан Джоном Брэдли. Он может отображать файлы в форматах GIF, JPEG, TIFF, Portable Bitmap (PBM, PGM, PPM), растры X, BMP, PCX, Iris RGB, XPM, XWD и PostScript. Окно xv изображено на рис. 8.18.
Рис. 8.18.Пакет xv при загрузке нового файла
Xv используется для просмотра и выполнения операций с графическими файлами. Например, с файлами поддерживаемых форматов возможны следующие действия: Вместе со Slackware Linux поставляется незарегистрированная условно-бесплатная (shareware) версия. Если вы используете xv, мы настоятельно рекомендуем зарегистрировать ее у Джона Брэдли. Дополнительная информация о xv приведена в usr/doc/xv/xv.blurb. Полная документация в формате PostScript (которую предварительно необходимо распаковать утилитой gunzip) находится в файле /usr/doc/xv/xvdocs.ps.gz. Утилиты JPEG Целая серия команд, предназначенных для обработки и преобразований файлов в формате JPEG. JPEG (наряду с GIF) становится основным форматом графических файлов World Wide Web. Если в ваши планы входит просмотр или публикация Web-документов, с утилитами JPEG стоит познакомиться поближе. Cjpeg Команда cjpeg сжимает графический файл (в формате GIF, PBM, BMP, Targa или RLE) и преобразует его в формат JPEG, широко распространенный в мире World Wide Web. Например, преобразование файла image.gif в формат JPEG выполняется следующей командой: gilbert:~$ cjpeg -gif image.gif > image.jpg Djpeg Команда djpeg распаковывает файл JPEG и преобразует его к формату, более удобному для работы в Slackware Linux (PBM, BMP, GIF, Targa или RLE). Формат файла задается в командной строке. Например, преобразование файла image.jpg в формат GIF выполняется следующей командой: gilbert:~$ djpeg -gif image.jpg > image.gif Rdjpgcom и wrjprgcom Команда rdjpgcom выводит комментарии, находящиеся в файле JPEG. Комментарий описывает изображение для того, кто его просматривает, однако он также облегчает ведение коллекций графических файлов. Для просмотра комментариев в файле image.jpg используется следующая командная строка: gilbert:~$ rdjpgcom image.jpg И наоборот, команда wrjpgcom записывает комментарий в файл JPEG. Комментарий можно ввести непосредственно в командной строке, однако при этом необходимо задать новое и исходное имя графического файла (команда не перезаписывает существующие файлы): gilbert:~$ wrjpgcom -comment "This is a comment" old.jpg > new.jpg Кроме того, можно указать файл с текстом комментария: gilbert:~$ wrjpgcom -cfile comment.txt < old.jpg > new.jpg Утилиты PhotoCD Формат PhotoCD широко используется для хранения фотографических изображений. Если ваш дисковод CD-ROM поддерживается Slackware Linux, он должен нормально работать с PhotoCD CD-ROM.

Программа ImageMagick (распространяемая через Интернет) также поддерживает формат PhotoCD.

Разные утилиты Вместе со Slackware Linux поставляется много различных утилит командной строки и Х Window. Ниже перечислены некоторые полезные утилиты. Часы Чтобы постоянно знать текущее время, запустите программу oclock или xclock (рис. 8.19).
Рис. 8.19.Утилиты oclock (слева) и xclock (справа)
Часы, изображенные на рис. 8.19, запущены без указания параметров командной строки. Параметры позволяют настроить внешний вид часов. Некоторые из параметров oclock и xclock перечислены в табл. 8.11 и 8.12 соответственно. Таблица 8.11. Некоторые параметры утилиты oclock
 
Параметр
Назначение
-bd цвет Выбор цвета границы окна
-bg цвет Выбор цвета фона приложения
-fg цвет Выбор основного цвета
-hour цвет Выбор цвета часовой стрелки
-jewel цвет Выбор цвета метки, обозначающей 12 часов
-minute цвет Выбор цвета минутной стрелки
-transparent Прозрачный циферблат (видны только стрелки, граница и метка)

 

Таблица 8.12. Некоторые параметры утилиты xclock
 
Параметр
Назначение
-analog Аналоговое отображение времени
-chime Звуковой сигнал (часы дважды звонят каждый час и один раз ≈ каждые полчаса)
-digital или -d Цифровое отображение времени
-hands Выбор цвета стрелок

 

Xdpyinfo и xev

Команда xdpyinfo выводит информацию о Х Window System: gilbert:/# xdpyinfo
name of display: :0.0
version number: 11.0
version string: The XFree86 Project, Inc
vendor release number: 3120
maximum request size: 4194300 bytes
motion buffer size: 0
bitmap unit, bit order, padding: 8, MSBFirst, 32
image byte order: LSBFirst
number of supported pixmap formats: 2
supported pixmap formats:
depth 1, bits_per_pixel 1, scanline_pad 32
depth 4, bits_per_pixel 8, scanline_pad 32
keycode range: minimum 8, maximum 134
focus: window 0xc00d, revert to Parent
number of extensions: 10
BIG-REQUESTS
MIS-SCREEN-SAVER
MIT-SHM
MIT-SUNDRY-NONSTANDARD
Multi-Buffering
SHAPE
SYNC
XC-MISC
XFree86-VidModeExtension
XTEST
default screen number: 0
number of screens: 1
Вероятно, большая часть этих данных вам ни о чем не скажет, если только вы не принадлежите к числу опытных пользователей X. Но если вы хорошо разбираетесь в X, команда xdpyinfo сообщит много полезных сведений о вашей системе. Поскольку мы не собираемся описывать все нюансы X, мы лишь порекомендуем обратиться к одному из текстов по Х Window, рекомендуемых в приложении А.

Команда xev полезна примерно в той же степени, что и xdpyinfo ≈ она открывает окно и возвращает информацию о событиях, сгенерированных этим окном. Если вы ничего не знаете об X, эта информация окажется бесполезной; но если вы разбираетесь в Х и в событиях, она может пригодиться.

Xlock Команда xlock блокирует систему до того, как будет введен пароль. Те, кто заботится о безопасности, таким образом предотвращают посторонний доступ в систему во время своего отсутствия. Однако будьте осторожны ≈ вы можете случайно запустить xlock и забыть пароль. Xmag Команда xmag (вызывается из окна xterm или меню fvwm) увеличивает часть экрана (рис. 8.20).
Рис. 8.20.Увеличение части экрана утилитой xmag

Xman

Мы неоднократно ссылались на xman в этой книге. Вероятно, вы уже научились пользоваться этой утилитой. В ней нет ничего сложного. При запуске xman из окна xterm или меню fvwm появляется небольшое окно. В нем вызывается диалоговое окно, которое используется для загрузки страницы электронной документации, получения справки или выхода из приложения. После активизации этого окна можно нажать Ctrl+S и вызвать другое диалоговое окно, в котором непосредственно загружается страница. В этом диалоговом окне присутствует текстовое поле для ввода имени команды и две кнопки ≈ одна загружает указанную man-страницу (Manual Page), а другая ищет нечто похожее на введенную строку (Apropos).

Когда страница руководства будет выбрана, она отображается в новом окне.

Sc и xspread Команда sc, работающая в режиме командной строки, запускает полноэкранную программу для работы с электронными таблицами. В действительности sc ≈ весьма сложная команда, информация о ней приведена в электронной документации: gilbert: ~$ man sc Электронная таблица xspread построена на основе sc и обладает некоторыми усовершенствованиями для Х Window System. Эмуляторы Членам сообщества Linux присущ некоторый идеализм ≈ они мечтают о более совершенном мире, в котором Linux сможет работать с любыми программами, для какой бы операционной системы они не были написаны.

Поэтому в Linux появился целый набор программных пакетов, позволяющих запускать программы, написанные для Windows, DOS, CP/M и Macintosh. Сейчас это может показаться глупым - зачем запускать программу для работы с приложениями Windows в Linux, когда можно просто запустить Windows? Однако эти проекты начинались еще в те дни, когда жесткие диски дорого стоили и большинство пользователей не хотело устанавливать несколько операционных систем на одном компьютере. Сейчас иметь на PC жесткий диск емкостью менее 3,2 Гбайт считается неприличным, поэтому проблем стало меньше.

Эмуляторы с SunSITE Существует немало программ-эмуляторов для запуска приложений Windows и DOS. Многие из этих программ находятся на узле ftp://sunsite.unc.edu, в каталоге /pub/Linux/system/emulators. В табл. 8.13 перечислено содержимое этого каталога на момент написания книги; мы не включили в список различные эмуляторы Commodore, находящиеся в отдельном подкаталоге commodore, a также эмуляторы Sinclair ZX80. Кроме того, имеется подкаталог dosemu с различными эмуляторами DOS. Таблица 8.13.Содержимое каталога /pub/Linux/system/emulators
 
Файл
Описание
68k-simulator.tar.gz Имитатор МС-68000 для Х Window System
apple2-emul-v005-linux.tar.gz Эмулятор Apple IIe для Х и Linux
bsvc-2.0-src.tar.gz Имитатор микропроцессоров (Motorola 68000, Hector 1600)
cpm-0.2.1.tar.gz Эмулятор Z80 и CP/M
flexemu-0.80.tgz Операционная система FLEX
mz700em-0.2.tar.gz Эмулятор Sharp MZ700
nc100em.tar.gz Эмулятор Amstrad NC100
ti4linux-0.2.tar.gz Эмулятор TI-99/4A, требует модулей памяти (ROM)
x48-0.4.0.tar.gz Программный эмулятор для калькулятора HР48
Win3.1_Dosemu.HOWTO.gz Информация о применении dosemu для запуска Windows
dosemu0.64.3.tgz Исходный текст dosemu
garrot02.tar.gz Возврат свободного процессорного времени системе в dosemu
xdos0.4a.tgz Эмулятор DOS, разработанный для Х и запускаемый в окне xterm

 

Эмуляция DOS в Linux

Если вам хочется запускать в Linux DOS-программы, попробуйте воспользоваться dosemu или xdos (в сущности, это одна и та же программа с одним отличием: xdos запускается в окне Х Window с поддержкой мыши, a dosemu ≈ нет).

Строго говоря, ни dosemu, ни xdos в действительности не являются эмуляторами DOS, хотя в документации они называются именно так (emu в dosemu является сокращением отemulator). Dosemu создает виртуальную DOS-машину на компьютере PC на базе Intel (по аналогии с тем, как реализованы DOS-сеансы в OS/2). Вам придется откомпилировать dosemu для своего компьютера; подробности приведены в файле HOWTO.

Некоторые математические утилиты Slackware Linux и UNIX широко распространены в научном мире, в котором математика играет важную роль. Большинству рядовых пользователей не нужны мощные математические программы, однако некоторые простейшие утилиты вам все же пригодятся. Команда bc Из-за повсеместного применения недорогих калькуляторов команда bc несколько устарела, и все же она (особенно версия Фонда бесплатных программ, включенная в Linux) способна заменить калькулятор с широким набором функций. Выглядит она так: gilbert: ~$ bc
1+1
2
quit
Общение с bc организовано следующим образом: вы вводите командную строку, нажимаете Enter (или Return) и читаете результат. Сеанс работы завершается командой quit. Конечно, предусмотрены и более сложные возможности ≈ например, вычисление квадратных корней, преобразование чисел из одной системы счисления в другую, разложение на простые множители и управляющие команды для написания программ. За дополнительной информацией обращайтесь к документации по системе и электронным man-страницам.
Dc В калькуляторе dc применяется обратная польская нотация, а также имеется возможность определения и вызова макросов. Calculator Программа calculator (вызывается из окна xterm или меню fvwm) имитирует инженерный калькулятор с расширенными возможностями. Окно программы изображено на рис. 8.21.
Рис. 8.21.Программа calculator

Игры

Только зануда способен все время работать, не обращая внимания на игры. Когда вам надоест писать программы или создавать документы, в операционной системе Linux найдется немало развлечений. Одни игры работают в терминальном режиме, другие ≈ в Х Window System. Терминальные игры Эти игры не требуют Х Window и работают либо в текстовом режиме, либо с собственными графическими средствами. Они находятся в каталоге /usr/games, если в тексте прямо не сказано обратного. Если вам понадобится дополнительная информация по любой из этих игр, обращайтесь к соответствующим man-страницам. Arithmetic У того, кто справился с установкой Slackware Linux, не возникнет проблем с простыми математическими задачами, заданными arithmetic. Программа выводит серию уравнений, вы их решаете. Чтобы завершить тестирование, нажмите Ctrl+C. Оценка зависит от количества правильных ответов и от скорости ответов на вопросы. Atc He хватает стресса в реальной жизни? Попробуйте себя в atc ≈ игре Air Traffic Controller. Ваша задача ≈ принимать и отправлять самолеты из загруженного аэропорта. Backgammon Тот, кто хотя бы раз играл в нарды, легко освоит backgammon. А если эта игра вам совершенно незнакома, попробуйте запустить обучающую программу teach-gammon (см. ниже в этом разделе). Bcd Программа преобразует вводимые данные в код перфокарт. Caesar Если верить электронной документации, эта странная утилита ⌠пытается расшифровать шифр Цезаря с использованием частотной статистики английского алфавита■ (что бы это ни значило). Возможно, кому-нибудь это покажется хорошей шуткой. Попробуйте сами. Canfield Разновидность карточного пасьянса. Обязательно прочитайте рекомендации перед тем, как браться за игру. Cribbage Текстовая версия криббеджа (запускается командой cribbage) играет в коротком или длинном варианте. Учтите, что это не самая надежная программа для игры в криббедж ≈ она неоднократно пыталась дать нам меньше очков, чем мы заслуживали (в колледже мы провели за криббеджем довольно много времени, поэтому неплохо разбираемся в игре). И все же тот, кто увлекается криббеджем, не пожалеет о потраченном времени. Factor Программа раскладывает целые числа на простые множители. Первоклассное развлечение! Fish Компьютерная версия почтенной игры Go Fish, в которую вы наверняка играли в далеком детстве. А если не играли ≈ можете попробовать сейчас. Fortune При каждом запуске эта команда выдает какую-нибудь глубокомысленную фразу. В процессе установки Linux можно потребовать, чтобы программа fortune автоматически вызывалась при каждой регистрации пользователя в системе. Hangman Детская игра ⌠виселица■, перенесенная в мир Linux. Hunt Ваша цель ≈ расправиться с коллегами по сети. Lizards Аркадная игра: стильная графика, лабиринт с падающими камнями и враги, которые двигаются вверх-вниз и вправо-влево. Определенно стоит попробовать. Mille Если вы помните игру Mille Bornes (насколько нам известно, сейчас она уже не встречается), вам понравится эта карточная игра. А если нет ≈ не обращайте на нее внимания. Моnор Любители настольной ⌠Монополии■ сильно удивятся при виде текстовой версии этой почтенной игры. Впрочем, играть в нее не очень интересно ≈ вы можете залезть в долги и купить все участки, на которых окажется ваша фишка. Morse Если программа bcd превосходит ваши потребности, команда morse преобразует ввод с клавиатуры в азбуку Морзе. Развлечение завершается клавишами Ctrl+C. Number Команда преобразует числа в текстовое представление (например, 12 преобразуется в twelve). Paranoia В этой текстовой игре вы выбираете один из ответов ⌠да/нет■ в попытке разгадать тайну. В какой-то момент игры вы заведомо умрете (если задуматься, то же самое происходит и в реальной жизни), но до этого вы пройдете через серию ситуаций и примете верные решения. Роm Команда роm выводит текущую фазу луны. Как утверждается в электронной документации, она ⌠может пригодиться при выборе даты завершения программных проектов и предсказаний поведения начальства■. Ppt Команда ppt получает данные и показывает, как они будут выглядеть на перфоленте. Вспоминается период студенчества и ⌠Орегонская тропа■ на больших компьютерах с разделением времени. Primes Команда primes выводит список простых чисел, начиная с введенного вами числа. Rain Команда rain генерирует на экране случайный узор, имитируя падение дождевых капель. Robots В robots играют на прямоугольной сетке. Ваша цель ≈ уничтожить злых роботов, но несколько необычным способом. У вас нет никакого оружия, и чтобы уничтожить роботов, нужно заставить их сталкиваться друг с другом. Когда враги окажутся близко, можно телепортироваться в другую точку сетки. Sail Еще одна двумерная игра, в которой вы принимаете командование боевым кораблем и сражаетесь с другими пользователями сети. Можно выбрать одну из множества исторических битв и даже сценарий из ⌠Звездного похода■. Игра sail старше, чем компьютеры PC; впервые она была написана для мини-компьютеров DEC PDP 11/70 в 1980 году (кстати говоря, электронная документация интереснее самой игры). Sasteroids Клон игры Asteroids для Atari, на которой мы все выросли. В этой версии вместо милых нашему сердцу контуров используются цвета и оттенки. Snake В игре snake вы собираете доллары ($) и убегаете от цепочки ползущих s (которые изображают змею). Teachgammon Программа обучает игре в нарды. Trek Игра по мотивам сериала ⌠Звездный поход■ (хотя по юридическим соображениям термин Star Trek нигде не используется). Ваша цель ≈ патрулировать квадрант Галактики и преследовать врагов. Впрочем, действие происходит задолго до времен ⌠Следующего поколения■; вы должны истребить как можно больше клингонов. Wargames Интересная вариация на тему ⌠стрелялок■, встречающихся в системе Linux. Worm В игре worm вы перевоплощаетесь в червяка, который ползает по плоскости. Съешьте как можно больше букв и посмотрите, насколько вам удастся вырасти. Worms В отличие от предыдущей игры, программа worms рисует на экране червяков, извивающихся в экстазе. Wump В этой классической текстовой игре вы охотитесь на Вампуса в пещере, состоящей из 20 комнат. Остерегайтесь летучих мышей и бездонных ям. Игры для Х Window Вместе со Slackware Linux поставляется несколько игр, предназначенных для X. Большинство из них находится в каталоге /usr/XllR6/bin. Некоторые игры запускаются прямо из меню Games менеджера fvwm. У большинства игр имеется электронная документация, которую лучше всего просматривать в xman. Ico Программа ico открывает окно, в котором летает геометрическая фигура. Обычно продавцы компьютеров используют ее для оценки скорости работы компьютера в Х ≈ как будто элементарная задача обсчета сетчатого объекта позволяет судить о вычислительной мощи компьютера. Workman Приложение Х Window для воспроизведения музыкальных компакт-дисков в дисководе CD-ROM. В электронной документации ошибочно утверждается, что программа работает только с дисководами SunCD; как выяснилось, она работает с любыми дисководами CD-ROM, поддерживаемыми Slackware Linux. Однако при работе с workman необходимо помнить о некоторых правилах (кстати, недокументированных).

Вы должны иметь право использования CD-ROM (помните ≈ мы говорили о том, что Linux интерпретирует как файлы все, даже устройства?). Большинство пользователей не обладают правами использования workman. Чтобы изменить права, выполните команду chmod в качестве привилегированного пользователя root.

После запуска workman вы не сможете открыть дисковод CD-ROM.

Программу workman также можно запустить в текстовом режиме (то есть без запуска Х Window), для этого используется следующая командная строка:

gilbert:$ workbone
Xboard Программа xboard отображает шахматную доску для GNU Chess ≈ весьма серьезной шахматной программы (с которой будет нелегко справиться даже хорошим шахматистам). В игре учитывается время, а также задаются другие параметры. Xlander Похоже, разработчики Linux проводили слишком много времени в залах игровых автоматов в 70-х и начале 80-х годов. Такое впечатление возникает после игры в xlander ≈ Х-версию старой аркадной игры Lunar Lander. Ваша задача -успешно посадить спускаемый аппарат на Луну и избежать крушения. Xlogo Команда открывает окно с официальной эмблемой X. В основном используется продавцами компьютеров ≈ чтобы доказать, что Х действительно работает на расхваленной машине. Xmaze Программа (запускается командой maze) тоже используется в основном продавцами компьютеров. Обычно с ее помощью демонстрируют скорость работы компьютера в Х ≈ как будто элементарная задача прохождения лабиринта позволяет судить о вычислительной мощи компьютера. Xeyes Не совсем игра, а скорее Х-версия традиционного упражнения для программистов ≈ пары глаз, следующих за курсором. Xmahjongg Впечатляющая версия древней настольной игры для Х Window. Xroach После запуска xroach вы увидите, как таракан пробегает по экрану и прячется под одним из окон. Если через некоторое время свернуть окно, вы увидите, что тараканы размножаются. Насекомые бегают по экрану и находят убежище под другими окнами или значками. Обитатели городских квартир, населенных тараканами, почувствуют себя как дома.

Если запустить игру из окна xterm с параметром -squish, вы сможете давить тараканов мышью.

Xspider Довольно сложный пасьянс, в который играют двумя колодами. Xvier Цель этой настольной игры ≈ выстроить четыре камня в ряд, по диагонали или в столбец. Игра начинается с низа доски и постепенно продвигается вверх. Телекоммуникации Даже если вы используете Linux на автономном компьютере, не стоит думать, что вы изолированы от внешнего мира. Многочисленные средства Linux позволяют подключаться по модему к другим компьютерам, будь то электронные доски объявлений (BBS), коммерческие службы или Интернет. Благодаря хорошей программной базе UNIX Linux также содержит средства для подключения к текстовым службам (например, CompuServe или локальные BBS).

В оставшейся части этой главы мы познакомимся с коммуникационными средствами Linux. Начнем с очень полезной телекоммуникационной программы seyon, затем рассмотрим пакеты minicom, xminicom и term, а в конце поговорим о старых телекоммуникационных средствах UNIX (например, rzsz). Все описанные программы присутствуют в поставке Slackware Linux.

Seyon и телекоммуникации в Linux Телекоммуникационная программа seyon была разработана Мухаммедом М. Саггафом, который увековечил свой облик в программе (рис. 8.22). Seyon представляет собой на удивление функциональный пакет эмуляции терминала для Х Window.
Рис. 8.22.Портрет автора seyon в диалоговом окне
Seyon обладает многими возможностями, присутствующими в популярных телекоммуникационных пакетах (таких, как Procomm), в том числе имеет телефонный справочник, поддержку различных протоколов (включая Zmodem), различные режимы эмуляции (включая DEC VT102, Tektronix 4014 и ANSI) и режимы трансляции (для взаимодействия со службами на базе PC).

Для работы с seyon необходимо иметь модем и подключение к телефонной линии. Во время установки Linux вы ввели информацию о своем модеме ≈ то есть номер СОМ-порта, к которому он подключен (на большинстве PC используются порты СОМ1 и COM2). Затем эта информация была преобразована в файл устройства /dev/modem, из которого seyon получает исходные данные.

Seyon запускается следующей командой:

gilbert:~$ seyon -modems /dev/modem Толковый пользователь создаст псевдоним для этой громоздкой командной строки. Если просто запустить seyon без параметров, вы получите сообщение об ошибке. После загрузки seyon появляются два окна, похожие на рис. 8.23.
Рис. 8.23.Программа seyon при запуске
Вся основная работа в seyon происходит в окне Command Center. В верхнем ряду кнопок отображается информация, полученная от модема. DTR, DSR, RTS и CTS ≈ стандартные телекоммуникационные сигналы. RNG сообщает об установлении связи, а число определяет время сеанса, что очень удобно при повременной оплате услуг.

Ниже расположено большое текстовое поле, в котором сообщается о том, активна ли программа seyon, ожидает ли она звонка или дозванивается сама. Если seyon остается неактивной в течение некоторого промежутка времени, появляются различные сообщения (в основном чисто декоративные).

Следующий ряд кнопок мы пропускаем, потому что с этими кнопками не связаны никакие действия. Однако последний ряд кнопок представляет для нас интерес, поскольку именно в нем сосредоточена суть функциональных возможностей seyon:

Рис. 8.24.Диалоговое окно Settings
Кнопка Dial вызывает список телефонных номеров. При первом использовании seyon будет выведен длинный список, содержащий всего один телефонный номер. Перед вами ≈ пример телефонного справочника, который вы должны приспособить для своих целей. Сделать это несложно (воспользуйтесь кнопкой Edit в диалоговом окне Dialing Directory), в процессе настройки можно пользоваться многочисленными примерами из файла. Изменившийся список телефонных номеров изображен на рис. 8.25.
Рис. 8.25.Диалоговое окно Dialing Directory
Окно также позволяет вручную ввести нужный номер, для которого будут использованы текущие системные настройки seyon.

Диалоговое окно File Transfer (рис. 8.26) предназначено для отправки и получения файлов. В нем перечисляются внешние протоколы, хотя различные варианты Zmodem входят в стандартную установку seyon. Установка новых протоколов в seyon описана в справочных файлах.
 
 

Рис. 8.26.Диалоговое окно File Transfer
Диалоговое окно Shell позволяет выполнить команду оболочки прямо из seyon.

Окно Miscellaneous (рис. 8.27) открывает доступ к дополнительным средствам, среди которых ≈ запись экранного текста в файл, текстовый редактор и программа просмотра файлов.
 
 

Рис. 8.27.Диалоговое окно Miscellaneous
Кнопка Hangup разрывает текущее соединение. Кнопка Exit завершает seyon. Наконец, кнопка Cancel отменяет текущую операцию.

После краткого обзора программы seyon вы получили некоторое представление о ее возможностях. Однако этим дело не ограничивается: например, программа поддерживает множество параметров командной строки (слишком многочисленных, чтобы рассматривать их здесь). Если вы собираетесь регулярно использовать seyon, рассмотрите механизм создания сценариев, которые напоминают традиционные языки программирования (операторы if/then и т. д.). В справочных файлах, вызываемых из окна Command Center, содержится полная информация о сценариях seyon.

Minicom и xminicom Программа seyon написана для Х Window. Если вам не хочется работать только в X, придется найти текстовый телекоммуникационный пакет. Таким пакетом является программа minicom, написанная Михелем ван Сморенбургом. Кроме того, можно воспользоваться xminicom -- интерфейсным модулем для Х Window к базовому пакету minicom. Обе программы работают одинаково. Мы рассмотрим minicom, однако те же команды будут работать и в xminicom.

Minicom ≈ полноэкранный телекоммуникационный пакет. Он работает аналогично другим телекоммуникационным пакетам для PC и в нем имеется меню (вызывается клавишами Alt+z) ≈ см. рис. 8.28. Каждая команда вызывается комбинацией, начинающейся с Alt+z.

Чтобы побыстрее приступить к работе с minicom, нажмите d на экране со сводкой команд. После этого можно вручную ввести телефонный номер или вызвать телефонный справочник клавишей Enter. В этом меню также происходит добавление новых телефонных номеров, редактирование существующих или удаление ненужных.

Чтобы изменить коммуникационные параметры, нажмите Alt+z p ≈ открывается диалоговое окно, изображенное на рис. 8.29.
 
 

Рис. 8.28.Сводка команд minicom
 
 

Рис. 8.29.Настройка коммуникационных параметров в minicom

Поскольку программа minicom работает в текстовом режиме, в ней интенсивно используются комбинации клавиш. Большинство соответствующих команд также может быть вызвано из меню, показанного на рис. 8.28. Впрочем, вызывать меню для любой мелкой операции нежелательно ≈ комбинации клавиш перечислены в табл. 8.14. Таблица 8.14. Комбинации клавиш в minicom
 
Клавиша
Результат
а Включение символа перевода строки (LF) в каждую строку
b Обратная прокрутка буфера окна терминала
с Очистка экрана
d Вывод телефонного справочника
е Включение/отключение эхо-вывода; используется в тех случаях, когда каждый символ в строке дублируется или вообще не отображается
f Отправка сигнала прерывания удаленному хосту
g Запуск сценария
h Разрыв связи
i Выбор режима клавиш управления курсором
j Временный выход в оболочку, при этом minicom остается в памяти
k Запуск сеанса kermit
I Сохранение текущего сеанса в файле (по умолчанию используется файл minicom.сар, хотя можно выбрать другой файл)
m Инициализация модема
о Настройка minicom (требует регистрации в качестве привилегированного пользователя root)
p Настройка параметров связи (скорость обмена, стоп-биты, проверка четности и т. д.)
q Выход из minicom без сброса модема
r Получение файла от удаленного хоста; поддерживаются протоколы Zmodem, Ymodem, Xmodem и Kermit
s Отправка файла; поддерживаются протоколы Zmodem, Ymodem, Xmodem и Kerrmt
t Выбор режима эмуляции терминала (VT100, Minix или ANSI)
w Включение/выключение переноса строка
x Выход из minicom со сбросом модема
z Краткая сводка команд

  Одна из приятных особенностей minicom ≈ сценарии. Хотя сам сценарий может представлять собой сценарий оболочки (документация объясняет, как это делать), minicom позволяет установить для сценария пароль и предотвратить его использование посторонними. Однако в minicom существуют и другие проблемы безопасности, в основном связанные с запуском в режиме привилегированного пользователя. Если на вашем компьютере Linux приходится принимать особые меры безопасности, подумайте о том, стоит ли пользоваться minicom.

Электронная документация по minicom весьма обширна. Вероятно, вы найдете в ней ответы на любые возникающие вопросы.

Rzsz Практически всем пользователям PC с опытом телекоммуникаций приходилось работать с программными пакетами, которые делали все сами: управляли процессом дозвона и регистрации, следили за пересылкой файлов и фактически осуществляли централизованное управление всеми коммуникациями. Однако Linux, как и положено хорошему UNIX-аналогу, предоставляет различные средства для решения одних и тех же задач. В сундуках UNIX найдутся команды, которые обеспечивают коммуникации через последовательный порт без каких-либо изощренных программ и вообще без всякого интерфейса.

Команда UNIX cu используется для подключения к другому компьютеру. На автономных компьютерах вместо cu лучше использовать minicom или seyon. Но если вы работаете в сети с предварительно настроенным UUCP, для установки исходного соединения можно воспользоваться командой cu (которая входит в число команд UUCP).

После подключения к удаленному компьютеру можно воспользоваться набором команд rzsz для приема и отправки документов. Фактически эти команды реализуют протоколы Zmodem, Ymodem и Xmodem для командной строки при наличии установленного соединения. Выбранный протокол должен поддерживаться удаленным хостом. Поскольку протокол Zmodem уже приобрел популярность в большинстве коммерческих служб и BBS, его полезно иметь на своем компьютере.

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

Чтобы получить краткое описание каждой команды, запустите ее с параметром -h (кроме того, в этой поставке Linux существует электронная документация для команд rz и sz ≈ см. рис. 8.30). Например, команда sb -h выводит следующую информацию: gilbert:~# sb -h
Send file(s) with ZMODEM/YMODEM/XMODEM Protocol
(Y) = Option applies to Ymodem only
(X) = Option applies to Xmodem only
Usage: Isz [-2+abdefklNnquvwYy] [-] file ...
Isz [-2Ceqv] -c COMMAND
Isb [-2adfkquv] [-] file ...
Isz [-2akquv] [-] file
and much more...
Рис. 8.30.Электронная документация для команд rz/lrz

Конкретное использование этих команд отчасти зависит от удаленного хоста. Некоторые хосты (особенно на базе UNIX) требуют, чтобы при приеме файла вы сначала запустили rz на удаленном хосте, а затем ≈ sz на локальном компьютере. На других хостах (особенно на базе PC) прием файлов имеет свою специфику.

Итоги

В начале этой главы мы представили некоторые полезные приложения Linux, a затем перешли к углубленному рассмотрению текстового редактора emacs. Редактор emacs, принадлежащий Фонду бесплатных программ, представляет собой полноценный текстовый редактор, работающий как в текстовом режиме, так и в Х Window System. Хотя к emacs необходимо привыкнуть, это удобная и мощная программа ≈ такое сочетание не так уж часто встречается в мире Linux.

В Linux входит несколько программ обработки текста, которые получают исходные данные от текстового редактора и преобразуют их в язык, понятный для принтера. Среди этих программ лидируют groff, GNU-версия troff; TeX, выдающаяся программа обработки текстов, написанная Дональдом Кнутом; и texinfo, утилита форматирования от Фонда бесплатных программ. Кроме того, в этой категории рассматривалась программа sed, которая обладает возможностями как текстовых редакторов, так и программ обработки текста.

Slackware Linux содержит несколько утилит для сжатия и архивации файлов, в числе которых ≈ gzip, bzip2, zip и gunzip, а также команда UNIX tar (версия Фонда бесплатных программ). Эти утилиты пригодятся для распаковки программ, полученных из Интернета, а также для создания резервных копий системы на случай сбоев.

Кроме того, в Linux представлены некоторые утилиты, разработанные с учетом особенностей архитектуры PC. Эти команды, входящие в пакет MTools, позволяют Linux работать с информацией DOS (например, гибкими дисками, отформатированными в DOS), а также выполнять некоторые базовые функции DOS (например, создавать и удалять каталоги). Пакет MTools в общем и целом предназначен для работы с гибкими дисками.

В поставку Linux от Slackware также входит несколько игр.

Глава завершается обсуждением коммуникационных программ операционной системы Linux. Основное внимание уделяется утилитам seyon, minicom, xminicom и пакету rzsz.

Следующая глава посвящена системному администрированию Linux.