Какие Unix'ы бывают в природе?
Архивирование. Копирование файлов на стример
В 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Мб цветов...