Введение в UNIX. Лекции

Автор работы: Пользователь скрыл имя, 29 Декабря 2011 в 20:20, курс лекций

Краткое описание

Способы организации файловой системы, списки команд и т.д. ОС Unix

Вложенные файлы: 1 файл

практика.doc

— 387.00 Кб (Скачать файл)

Рекурсивно распечатайте содержимое вашего домашнего каталога:

%find .

 

Завершите сеанс  работы выходом из X-Windows по кнопке Exit.

2. Полезные утилиты

(продолжение)

2.2. Архивирование и  сжатие

Войдите в систему в  среде X-Windows. Запустите  окно терминала

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

Архивирование - tar

Команда tar предназначена для создания архивов на магнитной ленте, а также в файлах. Признак tar-архива: расширение файла ".tar" или буква "t" в расширении ".tgz". На профессиональном слэнге файл с tar-архивом часто называется tarball. Примеры работы с tar следуют ниже.

создать архив  arh.tar, поместив в него файл b.txt и каталог prog со всеми его файлами и подкаталогами:

%tar cvf arh.tar b.txt prog 

%rm -rf prog b.txt

вывести оглавление архива arh.tar:

%tar tvf arh.tar

извлечь файл prog/a.c из архива arh.tar (создается каталог prog {если его не было} и в него записывается файл a.c из архива):

%tar xvf arh.tar prog/a.c    

%ls -al prog

извлечь все файлы из архива arh.tar:

%tar xvf arh.tar  

%ls -l b.txt. prog

добавить файл uran к архиву:

%tar uvf arh.tar uran  

%tar tvf arh.tar

Сжатие - gzip, compress, zip

Наиболее широко используемым компрессором файлов под Unix является утилита gzip (обратная ей утилита - gunzip). Однако, эти утилиты необязательно входят в поставку операционной системы. Признак файла, сжатого програмой gzip - расширение ".gz" или ".tgz" (tar+gzip).

Формат команды  

%gzip file 

%gunzip file.gz 

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

С ОС Unix поставляется стандартный компрессор compress (uncompress). Работа с этими утилитами аналогична работе с gzip (gunzip), но используется расширение ".Z"

Для ОС Unix также имеются программы zip и unzip, которые работают аналогично DOS-версиям, в том числе, в дополнение к сжатию, производят архивирование и распаковку архивов. Формат архивов совместим с форматом DOS pkzip и WinZip. (Для DOS/Windows также уже написаны утилиты gz и tar.)

Формат команды  

%zip file.zip список_файлов 

%gunzip file.zip

%gunzip file.zip список_файлов 

Для более подробной  информации обо всех утилитах см. справочник man.

 

%cp b.txt Z.txt

%cp b.txt gz.txt

%cp b.txt zip.txt 

%gzip gz.txt

%compress Z.txt

%zip zip.txt.zip zip.txt 

%ls -l *txt* 

Сравните степень  компрессии.  
 
 

Справочная  таблица по быстрой  распаковке архивов

Вид файла  Действия
file.tar tar xvf file.tar
file.gz gunzip file.gz
file.tar.gz gunzip -c file.tar.gz | tar xvf -
file.tgz gunzip -c file.tgz | tar xvf -
file.Z uncompress file.Z
file.taz gunzip -c file.taz | tar xvf -
file.tar.Z uncompress -c file.tar.Z | tar xvf -
file.zip unzip file.zip
 
 
 

2.3. Калькулятор - bc

Программа bc - basic calculator предназначена для проведения простых математических рассчетов. Программа запускается в интерактивном режиме и вычисляет выражения, введенные пользователем. Выражения представляют собой арифметические выражения (допускаются скобки, возведение в степень - ^, остаток от деления - %) или специальные операторы и функции. Примеры специальных операторов и функций:

ibase=N

    установить  систему счисления, в которой  вводятся числа;

obase=N

    установить  систему счисления, в которой  выводятся числа;

scale=N

    установить  число знаков после запятой при выводе дробных чисел (по умолчанию - 0);

sqrt(выражение)

    вычислить квадратный корень;

s(выражение)

    *вычислить синус;

c(выражение)

    *вычислить косинус;

e(выражение)

    *вычислить экспоненту;

l(выражение)

    *вычислить натуральный логарифм.

*) Для того, чтобы были подключены 4 последние функции надо запустить bc с ключом -l (буква "эль").

Выше перечислены  наиболее полезные функции, но вообще программа bc обладает гораздо более широкими возможностями. Фактически, она представляет собой интерпретатор С-подобного языка программирования, предназначенного для математических вычислений. За подробными справками обращайтесь к man bc.

Произведите в  программе bc разнообразные вычисления.

Как сделать  перевод из одной системы счисления  в другую?

2.4. Полезные программы

Самостоятельно  разберитесь со следующими командами/программами. Изучите документы man по этим программам. Запустите каждую из них. Не нужно изучать все ньюансы поведения программы, достаточно понять ее базовую функциональность. (Не забудьте, что документы man по некоторым программам могут находиться в /usr/local/man - используйте ключ -M.)

Составьте отчет  с кратким (один абзац на программу) описанием функций каждой программы. Отчет отправьте преподавателю  по электронной почте m2@vvsu.ru с указанием своих имени, фамилии и номера группы. Отчет можно составлять в текстовом редакторе X-Windows. Из одинаковых отчетов засчитывается первый по времени отправления, остальные игнорируются.

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

    • pico
    • cal
    • banner
    • echo
    • script
    • wc
    • dirname
    • basename
 
    • diff
    • dircmp
 
    • split, csplit, cat
    • fold
    • pr
    • sort
    • tr
    • uniq

 

Завершите сеанс  работы выходом из X-Windows по кнопке Exit.

3. Процессы

Войдите в систему в  среде X-Windows. Запустите  окно терминала

3.1. Запуск процессов  и управление вводом-выводом

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

#!/usr/bin/sh

или

#!/usr/local/bin/perl -w

и т.п. В этом случае шелл запускает указанный  интерпретатор и передает ему  имя текстового файла для исполнения. Если строка с указанием интерпретатора не найдена, то шелл запускает свою копию, которая пытается исполнить файл как последовательность команд командной строки.

Запуск  в фоновом режиме

Если сама программа  не предусматривает иное, процесс  запускается в интерактивном  режиме, т.е. шелл ожидает завершения процесса, прежде чем вернуть приглашение командной строки. Для запуска процесса в фоновом режиме, командную строку следует заершить символом '&' (амперсанд):

%ls &

Обратите, внимание, что шелл выдал номер процесса ls и сразу же вернул приглашение командной строки. Тем не менее, команда ls, хотя и запущенная в фоновом режиме, вывела данные как обычно на терминал, поскольку стандартный вывод этой команды по-прежнему связан с терминалом. То же касается и вывода в стандартную ошибку.

Сложнее обстоит  дело, если процесс, запущенный в фоновом  режиме пытается считать данные со стандартного ввода. В этом случае, если шелл поддерживает управление заданиями (bash, jsh; об управлении заданиями позже в этом разделе), то процесс будет остановлен по сигналу SIGTTIN и будет возобновлен после того, как пользователь переведет его в интерактивный режим. Если шелл не поддерживает управления заданиями (sh), то стандартный ввод в процесс будет пуст (процесс сразу считает символ конца файла).

Запуск  в режиме демона

Для запуска  процесса в режиме демона, следует  в начале командной строки ввести префикс nohup, а в конце - амперсанд. При этом, если пользователем не указано иное, стандартный вывод напраляется в файл nohup.out в текущем каталоге или в домашнем, если у пользователя нет прав записи в текущий каталог.

%nohup ls &

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

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

Перенаправление вывода

Для перенаправления  стандартного вывода программы в  файл используется символ '>':

%ls -l >list

%more list

%rm list

Информация о работе Введение в UNIX. Лекции