Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Практическая работа по предмету UNIX

ре  задает  вариант,
выбираемый по умолчанию: если число аргументов не 0 и не 1,  будет  выполнен
последний вариант. (Поскольку шаблоны выполняются  по  порядку,  вариант  по
умолчанию должен  быть  последним.)  При  наличии  двух  аргументов  m  и  у
принимают значения месяца и года, и новая  команда  должна  выполняться  как
исходная команда.
Первый оператор case  включает  пару  нетривиальных  строк,  содержащих  set
`date`. Хотя сразу это и не очевидно,  легко  установить  действие  команды,
запустив ее. Вы помните, что команда date выводит на экран информацию о  дне
недели, месяце и числе, времени и годе. Для большей  наглядности  Вы  можете
сначала выполнить команду
                                    date
а затем ввести
                                 set `date`
А после проверьте результаты ее выполнения, введя следующие команды:
                                   echo $1
на эране должно появиться название текушего дня недели;
                                   echo $4
Вы должны увидеть текущее время.
Команда  set  -  встроенная  команда  интерпретатора,  возможности   которой
многообразны.  При  отсутствии  аргументов  она  выдает,  как  Вы   помните,
значения переменных среды.  В  случае  обычных  аргументов  переопределяются
значения $1, $2 и т.д. Поэтому set `date` присваивает $1 - день  недели,  $2
- название месяца и т.д. Таким образом, при отсутствии аргументов  в  первом
операторе case месяц и год устанавливаются из текущей даты. Если задан  один
аргумент, он используется в качестве месяца, год берется из текущей даты.
Теперь осталось только перевести значение месяца, если  оно  представлено  в
строковом виде, в число. Это делается  с  помощью  второго  оператора  case,
который практически очевиден. Единственный нюанс состоит в том,  что  символ
|  в  шаблонах  оператора  case  означает  альтернативу:  малый  |   большой
соответствует варианту малый или большой. Конечно, эти варианты  можно  было
бы задать с помощью [jJ]an* и т. д.
Программа допускает задание месяца строчными буквами, поскольку  большинство
команд работает с входным потоком, где данные  записаны  строчными  буквами,
иногда первая буква—прописная, поскольку так выглядит вывод команды date.
Правила сопоставления шаблонов в интерпретаторе
* задает любую строку, включая пустую
? задает любой одиночный символ
[ссс] задает любой из символов в ссс [a-d0-3] эквивалентно [abcd0123]
        " ... " задает в точности  ...;  кавычки  защищают  от  специальных
        символов. Аналогично действуют '...'
с задает с буквально (т.е. отвергает специальное значение символа)
a | b только для выражений выбора; задает а или b
Два последних варианта второго оператора  case  относятся  к  случаю,  когда
единственный аргумент может быть годом; напомним,  что  в  первом  операторе
case предполагалось, что аргументом является месяц. Если это число,  которым
может быть задан месяц, то ничего не происходит (иначе  предполагается,  что
задан год).
Наконец, в последней строке вызывается /usr/bin/cal (исходная команда

cal) с преобразованными аргументами.
Не забудьте сделать файл выполняемым.
Проверьте, правильно ли работает новая версия команды.
Месяц должен распознаваться по названию, поэтому команды
                                   cal oct
                                 cal octber
обязаны выдать календарь на октябрь месяц текущего года. То же самое  должна
сделать команда
                                   cal Oct
При наличии двух аргументов команда должна делать то же, что делала  прежняя
версия, за  исключением  перевода  названия  месяца  в  его  номер,  поэтому
следующие команды
cal 2 1996
cal feb 1996
cal Feb 1996
обязаны выдать на экран календарь февраля месяца1996 года.
В случае одного аргумента следует печатать  календарь  месяца  или  года  (в
зависимости от того, что Вам требуется), поэтому команда
                                   cal feb
должна печатать календарь февраля текущего года, а
                                  cal 1998
- всего 1998 года.
И, наконец, при отсутствии аргументов
                                     cal
должен быть выдан календарь текущего месяца.
Если новая версия команды cal находится в  подкаталоге  bin  Вашего  личного
каталога, а он прописан первым в PATH,  то,  обращаясь  к  команде  cal,  Вы
будете использовать новую версию команды. В каком  случае  при  обращении  к
cal будет использована  исходная  команда?  Как  этого  избежать?  Можно  ли
назвать новую версию команды иначе?
   1. Печать файлов.
      Прежде чем послать файл  на  печать,  его  нужно  специальным  образом
      отформатировать. Для подготовки файла к печати служит команда pr.  Она
      записывает в стандартный выходной поток заданные  файлы,  разбитые  по
      страницам с указанием номера страницы, имени файла и времени  создания
      файла. Если имена файлов (аргументы команды) не заданы,  преобразуется
      стандартный входной поток. Команда pr позволяет осуществлять печать  в
      несколько столбцов; устанавливать ширину страницы равную определенному
      количеству символов и  длину  страницы  равную  указанному  количеству
      строк;  начинать  печать  с  заданной  страницы;  подавлять  вывод  5-
      строчного заголовка и пяти последних строк на каждой странице.
      Итак, для того чтобы вывести содержимое всех файлов,  перечисленных  в
      списке в виде, подходящем для устройства печати, введите
                                pr poem test
      Каждый файл будет напечатан с новой страницы с указанием имени файла и
      нумерацией страниц.
      Для печати каждого из файлов,  например,  в  3  столбца  нужно  задать
      опцию, равную желаемому количеству столбцов:
                               pr -3 poem test
      Можно  заменить  число  3  любым  разумным  числом,   и   команда   pr
      "постарается" исполнить задание.
      Следует отметить, что pr - это не программа форматирования текста: она
      не разбивает текст на строки и не выравнивает поля.
      Для отправки файлов  на  печать  используется  отдельная  команда,  но
      прежде  чем  воспользоваться  ею  следует  убедиться,  что  печатающее
      устройство установлено, в противном случае не следует вводить  команды
      посылающие  файлы  на  печать,  т.к.  кроме  сообщений  о   неполадках
      (например,  о  том,  что  в  принтере  отсутствует  бумага)   никакого
      результата они не дадут.
      На печатающем устройстве файлы можно распечатывать командой  lp  (line
      print — печать строк):
                              lp [имя файла]...
      Если в командной строке не задано имя файла, то lp обеспечивает печать
      информации со стандартного ввода. Это значит, что lp может  стоять  на
      последнем месте конвейера.
      Т.к. программа lp не изменяет печатаемый текст, то  при  необходимости
      разбить текст на страницы, снабдить его заголовками  и  т.  д.,  нужно
      использовать конвейер из команды pr, обеспечивающей подготовку текста,
      и команды lp:
                              pr -2 file1 | lp
      текст разбивается на страницы и  размещается  в  2  колонки,  а  затем
      отправляется на печать.
                            lp filel file 2 file3
      распечатываются последовательно файлы filel, file 2, file3.
   2. Работа с дискетами.
      Системный администратор root имеет возможность, в отличие  от  простых
      пользователей, подмонтировать файловую систему  дискеты  к  некоторому
      подкаталогу корневого  каталога,  например,  каталогу  /vocant.  После
      этого любой пользователь системы может использовать файлы,  записанные
      на дискете, так же как файлы  корневой  файловой  системы.  Ссылки  на
      каталог /vocant будут являться ссылками на  /dev/fd0  (Вы  помните,  в
      UNIX все устройства, в том числе дисководы, представлены  специальными
      файлами).
      Однако в некоторых системах 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
      (диске
Пред.678910След.
скачать работу

Практическая работа по предмету UNIX

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ