Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСС.docx
Скачиваний:
8
Добавлен:
12.11.2019
Размер:
546.05 Кб
Скачать

Тема 5.6. Функциональные возможности Unix

Цель занятия: знать принципы подготовки файлов к печати, иметь понятие об архивации файлов и взаимодействии пользователей, уметь подготавливать и отправлять файлы на печать, работать с дискетами, пользоваться электронной почтой.

План изложения материала

  1. печать файлов

  2. работа с дискетами

  3. архивация файлов

  4. электронная почта

  5. прямое сообщение другому пользователю

Печать файлов.

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

Для того, чтобы вывести содержимое всех файлов, перечисленных в списке в виде, подходящем для устройства печати, введите:

pr poem test

Каждый файл будет напечатан с новой страницы с указанием имени файла и нумерацией страниц.

Для печати каждого из файлов, например, в 3 столбце, нужно задать опцию, равную желаемому количеству столбцов:

pr -3 poem test.

Можно заменить число 3 любым разумным числом.

Для отправки файлов на печать используется отдельная команда lp (line print - печать строк):

lp [имя_файла]

Если в командной строке не задано имя файла, то lp обеспечивает печать информации со стандартного ввода. Это означает, что lp может стоять на последнем месте конвейера.

Так как программа lp не изменяет пеатаемый текст, то при необходимости разбить текст на страницы, снабдить его заголовками и т.д., нужно использовать конвейер из программы pr, обеспечивающий подготовку текста и команды lp:

pr -2 file1| lp

текст разбивается на страницы и размещается в 2 колонки, а затем отправляется на печать.

lp file1 file2 file3

распечатываются последовательно файла.

Работа с дискетами.

Системный администратор root имеет возможность, в отличие от простых пользователей, подмонтировать файловую систему дискеты к некоторому подкаталогу корневого каталога. После этого любой пользователь системы может использовать файлы, записанные на дискете, так же как файлы корневой файловой системы. Ссылки на каталог дискеты будут являться ссылками на /dev/fd0 (специальный файл устройства).

В некоторых системах Unix существуют команды, доступные обычным пользователям, которые позволяют работать с дискетами DOS. Это команды чтения и записи файлов DOS, а также просмотра файловой системы DOS: dosread, doswrite, dosdir.

Команда dosdir позволяет вывести на экран список файлов и каталогов, сохраненных в формате DOS. Для того, чтобы увидеть, какие файлы находятся на дискете DOS, необходимо ввести команду:

dosdir /dev/fd0

на экран будут выведены имена файлов и каталогов (/dev/fd0 - специальный файл устройства, используемый для обращения к первому дисководу для гибких дисков). Для того, чтобы увидеть, какие файлы являются каталогами, нужно воспользоваться опцией -r команды dosdir:

dosdir -r /dev/fd0

Вы также можете вывести на экран список файлов конкретного каталога, указав в качестве параметра команды dosdir его имя:

dosdir /dev/fd0 < имя_каталога >

В случае задания имени файла

dosdir /dev/fd0 < имя_файла >

выведется сообщение об ошибке:

dosdir: Not a directory: < имя_файла >

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

dosread /dev/fd0 < имя_файла >

где в качестве второго параметра указано конкретное имя файла.

Используя символ перенаправления, можно сохранить содержимое файла DOS в заданном файле MINIX:

dosread /dev/fd0 < имя файла DOS > < имя файла MINIX >

Команда doswrite записывает стандартный выходной поток на дискету DOS (дискеты должна быть отформатирована):

doswrite /dev/fd0 < имя файла DOS > < имя файла MINIX > .

Архивация файлов.

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

В Unix-системах архивированием данных, необходимых для обеспечения работоспособности системы, обязан заниматься системный администратор.

Наиболее часто для архивации файлов используется команда tar. Она имеет следующий формат:

tar c[v][w][f] архив файл ...

tar r[v][w][f] архив [файл ]...

tar t[v][f] архив

tar u[v][w][f] архив [файл] ...

tar x[m][o][v][w][f] архив [файл] ...

где tar- команда, сохраняющая и восстанавливающая файлы на магнитной ленте или другом файле (если задана опция f). Ее действиями управляют:

первый аргумент - цепочка символов, содержащая по крайней мере один символ, определяющий выполняемую функцию (c,r,t,u,x) и необязательные символы-спецификации режима выполнения этой функции.

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

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

Опции:

c - создает новый архив; файлы начинают записываться с начала архива, а не за последним файлом. Включает опцию r.

r - указанные файлы записываются в конец архива.

x - указанные файлы извлекаются из архива, если задан каталог, содержимое которого было записано в архив, то этот каталог восстанавливается. Имя владельца, время модификации, режим доступа также восстанавливаются. Если не указано ни одно имя файла или каталога, то извлекается все содержимое архива.

t - архив просматривается и выводятся имена содержащихся в нем файлов.

u - указанные файлы добавляются в архив, если их там не было или они были модифицированы после последней записи в архив. Включает опцию r.

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

v - обычно tar выполняет указанное действие без сообщения пользователю. Опция v заставляет tar выводить имена всех файлов, которые она обрабатывает, причем перед именами выводится буква, обозначающая действие.

w - если указан этот символ, то команда tar указывает действие, которое она собирается сделать, затем выводит имя файла и ждет подтверждения от пользователя. если введено слово, которое начинается с буквы v, то действие выполняется. Любое другое введенное слово рассматривается как "нет".

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

m - при использовании этого символа время последней модификации файлов, извлекаемых из архива, устанавливается равным времени извлечения, а не тому времени, которое записано в архиве.

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

Например, команда:

tar cvf factmv.tar ctmv

упакует все файлы, содержащиеся в ctmv, в архив tar под именем factmv.tar. первый аргумент команды tar - "cvf". с указывает tar создать новый файл архива. Опция v заставляет tar выводить имя каждого архивируемого файла. Опция f говорит, что следующий аргумент - factmv.tar - имя создаваемого архивного файла. Последний аргумент команды tar - имя добавляемого в архив каталога.

Если вы попробуете восстановить из архива каталоги, которые не были удалены, то ваша попытка окончится неудачей - вы получите сообщение о существовании восстанавливаемых каталогов:

tar xvf factmv.tar

Поэтому прежде удалите каталог ctmv:

rm -r ctmv

Затем повторите попытку:

tar xvf factmv.tar

Опция v сообщит вам, что удаленные файлы и каталоги вновь созданы. Данная команда извлекает архивный файл в текущий каталог. Это может быть иногда и небезопасным занятием, когда извлеченные из архива файлы затирают существующие (в случае совпадения имен).

Поэтому перед извлечением архивных файлов важно знать, где файлы следует распаковывать.

Электронная почта.

Отправка почтового сообщения другому пользователю Unix и его получение производятся командой mail:

mail person

mail [-pqr] [-f file]

где person - имя пользователя;

f file - файл-почтовый ящик.

Если употребляется формат команды mail person, то пользователь может отправить почту одному или нескольким пользователям. Используется стандартный ввод, но можно, применив переадресацию ввода, передавать почтовые сообщения из заранее подготовленного файла. Информация может вводиться в интерактивном (диалоговом) режиме с использованием клавиш Ctrl-D после ввода сообщения.

Если в вашей системе работаю несколько пользователей, то можно послать сообщения сразу всем:

mail Robert Nina John Raymond

нажмите клавишу Enter и напечатайте сообщение:

good morning, ladies and gentlemen.

Снова нажмите клавишу Enter и можете продолжить ваше послание. Для отправления почты нужно нажать Ctrl-D.

Получатели почты при входе в систему будут уведомлены о наличии этого сообщения (на терминале появится "You have mail".

Если перечисленные пользователи не работают в системе, то на ваш экран выведется сообщение:

mail: user Robert not known

mail: user Nina not known

Если в процессе составления письма вы передумали и решили его не посылать, то следует нажать Delete вместо Ctrl-D.

Вы можете отправить почтовое сообщение из файла. Допустим это файл my_mail. Для его отправки нужно ввести строку:

mail Robert John < my_mail

Команда mail дает возможность прочитать почтовые сообщения в прямом и обратном порядке в зависимости от времени получения. Опции позволяют по разному обрабатывать полученные сообщения:

p - выводит все сообщения подряд;

q - прекращает работу команды mail без изменения содержимого файла-почтового ящика;

r - выводит сообщение по принципу: послано раньше - читается раньше. По умолчанию почтовые сообщения читаются наоборот.

После входа в систему в ответ на сообщение "You have mail" нужно ввести команду mail и на экран выводятся заголовки всех сообщений, которые были посланы пользователю. При чтении почтовых сообщений имеется возможность использовать следующие команды:

Enter - перейти на новую строку;

+ - то же, что и Enter;

d - удалит данное почтовое сообщение и перейти к следующему;

вернуться к предыдущему сообщению;

s [files] - записать сообщение в файлы files, по умолчанию - в файл-почтовый ящик;

w[files] - записать сообщение без заголовка в файл-почтовый ящик;

m[person] - переслать сообщение пользователю person, по умолчанию - себе;

q - вернуть сообщение в почтовый ящик и закончить выполнение команды mail;

Ctrl-D - тоже, что и q;

х - выход без изменения содержимого почтового ящика;

! - временный выход в shell для выполнения какой-либо команды Minix;

* (или ?) - вызвать сообщение help (сводка команд mail).

Прямое сообщение другому пользователю

Команда write посылает сообщение на терминал другого пользователя. Сообщение сразу появляется на экране:

write user [tty_name]

где user - имя пользователя; tty_name - имя терминала.

Имена пользователей можно узнать с помощью команды who или просмотрев файл /etc/passwd. Можно использовать команду с указанием конкретного терминала (в случае, если пользователь входит в систему несколько раз на разных терминалах):

write Nina tty09

в этом случае связь с пользователем Nina устанавливается через файл /dev/tty09.

Команда write не накладывает никаких ограничений, поэтому необходим протокол общения, чтобы ваш ввод не перемешивался с тем, что вводит другой пользователь. Существует соглашение, что ввод следует осуществлять порциями, оканчивающимися символами -о-, что означает конец ввода (over), а для сигнализации о прекращении связи используется -оо- (over и out - конец и выход).

Команда msgn (n)/(y) устанавливает у или запрещает n возможность посылать сообщения с помощью команды write. Например, если пользователь Nina не хочет, чтобы его отвлекали, он должен набрать:

msgn n

Для того, чтобы разрешить поступление сообщений, пользователь Nina должен ввести:

msgn y