Опубликован: 01.07.2008 | Уровень: специалист | Доступ: платный
Лекция 2:

Какие Unix'ы бывают в природе?

< Лекция 1 || Лекция 2: 123 || Лекция 3 >

Архивирование. Копирование файлов на стример

В Unix для этого можно пользоваться двумя утилитами:

  • tar попроще в использовании, но не все умеет
  • cpio более гибкая, чем tar, и посложнее.

Команда tar (Tape Archiver).

Предназначена для создания архивов на ленте и в файлах.

Ключи: "-c" Create, "-x" eXtract, "-a" Append, "-t" оглавление

tar -cvf arhiw.tar fajl1 fajl2 katalog3 ... - создать архив
tar -tvf /dev/rmt/ctape вывести оглавление ленты
tar -xvf arhiw.tar katalog3/fajl4 извлечь из архива файл
tar -xvf /dev/rmt/ctape архив лежит на магнитной ленте
 извлечь с ленты все файлы
tar -avf arhiw.tar fajl5 добавить файл к архиву

Ключи:

"v" Выводить список файлов в длинном формате (Verbose)
 "f" Указывает на имя файла

Команда CPIO. (Copy In/Out)

Команда cpio -o берет с системного ввода список имен и склеивает эти файлы вместе в один архив, выталкивая его на свой системный вывод.

Сбросить на ленту файлы по списку:

-o - (output) создавать архив.
 -H odc - Записывать в "совместимом формате" (чтобы архив 
          можно было считать на Besta или Sun)
 -c - Записывать в "престарелом" совместимом формате

 cat spisok | cpio -ovB -H odc > /dev/rmt/ctape1
 find katalog -print | cpio -ovc > arhiwnyj-fajl.cpio

Команда cpio -i читает с системного ввода cpio-архив и извлекает из него файлы

# Просмотреть содержание стримера.
 cpio -itB < /dev/rmt/ctape

# Извлечь файлы со стримера.
 cpio -idmvB ["шаблон" ...] < /dev/rmt/ctape

 -B Размер блока 5120 байт - стримерный формат.
 -d Создавать каталоги в случае необходимости.
 -v Вывести список имен обработанных файлов.
 -m Сохранять прежнее время последней модификации.
 -f Брать все файлы, кроме указанного шаблоном.
 -u Безусловно заменять существующий файл архивным.
 -l Где можно, не копировать, а делать ссылки.

Архивация со сжатием.

Архиваторы tar и cpio, в отличие от DOS-овских архиваторов, не занимаются компрессией. Чтобы получить сжатый архив, нужно воспользоваться специализированной командой compress или gzip.

Команда compress читает свой системный ввод, а на свой системный выход подает "прожатые" данные.

Команда zcat ("сжатый cat":-) читает с системного входа "пожатый" файл, а на выход подает "разжатые" данные.

Создать сжатый tar-архив:

tar -cvf - emacs-19.28 | compress > emacs-19.28.tar.Z

Прочитать оглавление сжатого tar-архива:

zcat < emacs-19.28.tar.Z | tar -tvf -

Обратите внимание на ключ минус "-" на том месте, где в tar нужно указывать имя файла с архивом. Он означает "брать данные со стандартного входа" (или выводить архив на стандартный выход).

GNU Zip - достаточно известный упаковщик, имеет степень сжатия более высокую, чем у compress, почти как у arj или pkzip. Создать сжатый cpio архив, используя "компрессор" gzip.

find . -print | cpio -ovcaB | gzip > arhiw.gz

Извлечь файлы из сжатого cpio-архива

gunzip < arhiw.gz | cpio -idmv

mt - управление магнитной лентой

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

Чтобы узнать, что она может делать, наберите:

man mt

В SCO Unix программа управления лентой называется "tape"

Другие утилиты архивации

В зависимости от версии Unix могут существовать и другие программы для бэкапирования и создания архивов.

backup/restore
 dump
 fbackup/frestore (HP/UX)
 pax
 ...

Управление ленточными библиотеками - mc

Для HP-UX/11. Перекомпилировать ядро с поддержкой schngr

ioscan -funC autochange # покажет путь до авточенджера

mc -p /dev/rac/c12t0d0 -r IMDS # посмотреть статус и состояние библиотеки

# Обнуление ленточки в слоте 26

mc -p /dev/rac/c12t0d0 -s S26 -d D2
dd if=/dev/zero bs=48k count=10 of=/dev/rmt/1m
mc -p /dev/rac/c12t0d0 -d S26 -s D2

Графическая оболочка X-Window System

Для начала немного истории и общих мест. Представим, что нам нужно написать программу, которая будет работать в графическом режиме. Нам потребуется: опрашивать клавиатуру, снимать события и координаты мыши, рисовать на экране, ... Как это делалось на MS-DOSе? Очень просто. Пишем одну большую программу, в ней - все: и логика, и обработка событий, и слежение за перемещениями мыши, ну, а когда требуется что-то нарисовать, мы даем команду на запись в порты EGA контроллера, рисуем пиксел... Через год появляется контроллер VGA, еще через год SVGA 800x600, 16 цветов, вслед за ним UVGA 1024x768, 256 цветов, затем XGA 1280x1024, 16Мб цветов...

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Дмитрий Ярцев
Дмитрий Ярцев
Россия
Игорь Зарубин
Игорь Зарубин
Россия