Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#4| Adjudicator & Tower Knight
Demon's Souls |#3| Cave & Armor Spider
Demon's Souls |#2| First Boss
SCP-077: Rot skull

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Сэйдж Рас Весь текст 822.4 Kb

Приемы профессиональной работы в Unix

Предыдущая страница Следующая страница
1 ... 28 29 30 31 32 33 34  35 36 37 38 39 40 41 ... 71
       предыдущем примере.
            Awk читает  каждый  раз одну строку из файла данных и сверяет ее с
       шаблоном,  пытаясь установить соответствие.  Для каждой  строки,  соот-
       ветствующей шаблону,  awk выполняет заданную программу. Первое, что де-
       лает ctags,- изменяет подразумеваемый разделитель полей утилиты  awk  с
       пробела  на  левую скобку.  Благодаря использованию этого символа в ка-
       честве разделителя полей, строка определения функции разбивается на два
       поля: имя функции и остаток строки.
            Шаблон поиска утилиты awk соответствует синтаксису имени  Си-функ-
       ции.  Оно может начинаться с символов a-z,  A-Z или символа подчеркива-
       ния.  Далее в имени могут быть любые символы из набора a-z,  A-Z, 0-9 и
       _. Между именем и скобкой нельзя использовать пробелы. Поиск начинается
       от начала строки (^),  за которым следует последовательность допустимых
       символов (a-z, A-Z, 0-9), а затем левая скобка.
            Когда строка соответствует данному шаблону,  генерируется выход  с
       помощью оператора printf.  Первое поле - строка, представленная обозна-
       чением $1.  В данном случае $1 - это только имя функции, исключая левую
       скобку.  Печатается символ табуляции,  затем следующая строка,  которая
       является переменной FILENAME из утилиты awk. Эта переменная должна быть
       получена из командной строки, иначе awk не будет знать имя файла, в ко-
       тором размещена данная функция,  и файл признаков потеряет  информацию,
       необходимую  для доступа к файлу,  содержащему функцию.  Печатается еще
       одна табуляция,  затем строка поиска.  Строкой поиска является $0,  что
       представляет  всю строку,  с которой работает awk.  Строке предшествует
       символ ^, а за строкой следует символ $.
            Выход пропускается по конвейеру через sort с той целью,  чтобы все
       признаки шли в отсортированном порядке. Опции сортировки указывают ути-
       лите sort проверять только первое поле и печатать только одно появление
       строки, если имеется несколько записей.

            МОДИФИКАЦИИ ДЛЯ ctags

            Теперь, когда мы знакомы с  общим  форматом  редактируемого  файла
       признаков, можем ли мы применить его для других полезных целей? Мы зна-
       ем,  что мы можем идентифицировать регулярные структуры в программах на
       Сии  создать  признаки,  с помощью которых можно получить доступ к этим
       структурам в редакторе.  В программах на Си  имеются  не  только  имена
       функций,  но и другие интересные конструкции,  например имена структур.
       Их  можно  обслуживать  с  помощью   модифицированной   версии   ctags.
       Единственное, что нам нужно знать,- это официальный синтаксис структуры
       данных.  Структура данных,  которая нас бы заинтересовала,  часто имеет
       такой формат:

struct name {
        int val1;
        char val2;
};

            Все, что мы должны сделать,- это заставить awk искать все  появле-
       ния определения структуры.  Затем мы можем построить файл признаков,  в
       котором признаком является имя структуры.  Этот файл, видимо, будет та-
       ким  же,  как и прежде,  а строка поиска будет обнаруживать определение
       структуры,  а не имя функции. Фактически, комбинация утилиты awk, приз-
       наков  и  редактора может быть использована для любого вида информации,
       которую вы можете захотеть хранить в файле специального формата, напри-
       мер для адресов,  заметок,  библиографических ссылок и т.д.  Вам просто
       нужно подобрать соответствующие разделители и  правильно  их  использо-
       вать.
            Мы надеемся,  что облегчили сопровождение ваших программ и предло-
       жили  вам  идеи для других способов автоматической обработки документа-
       ции.  Вы можете без особого труда учреждать  и  поддерживать  локальные
       соглашения  о  документации  с  помощью  командных файлов,  аналогичных
       представленным здесь.  Примером проекта,  за который вы можете взяться,
       является  согласование  наших  программ  извлечения информации (stripf,
       stripc,  strips) и других программ,  которые вы пишете,  таким образом,
       чтобы они могли читать файл-формирователь (makefile, см. Make(1)) и вы-
       давать полную документацию по всем исходным файлам,  участвующим в дан-
       ном проекте.
      * ГЛАВА 5. УПРАВЛЕНИЕ ЛИЧНОЙ ИНФОРМАЦИЕЙ I: *

     УПРАВЛЕНИЕ ВРЕМЕНЕМ

     И ДЕЛОПРОИЗВОДСТВОМ

     УПРАВЛЕНИЕ ВРЕМЕНЕМ

  at        выполнение задач в указанное время
  b         порожденный shell фоновых задач
  greet     своевременное приветствие с терминала
  lastlog   сообщение времени последней регистрации
  timelog   учет и статистика сеансов работы
  today     печать календаря с отмеченной текущей датой

     УПРАВЛЕНИЕ ДЕЛОПРОИЗВОДСТВОМ

  jargon    генератор технических терминов
  phone     база данных с телефонными номерами
  office    делопроизводитель

                   УПРАВЛЕНИЕ ЛИЧНОЙ ИНФОРМАЦИЕЙ I:
     УПРАВЛЕНИЕ ВРЕМЕНЕМ

     И ДЕЛОПРОИЗВОДСТВОМ

     ВВЕДЕНИЕ

     Мы уже  многое  знаем  о  файлах и о том,  как управлять файловой
структурой.  Пора рассмотреть,  как мы можем использовать систему UNIX
для управления множеством задач, которые составляют наш рабочий день и
держат нас в курсе того,  что делают другие пользователи.  Термин "уп-
равление личной информацией" (personal management) подразумевает,  что
вы хотите  создать  свою  собственную  ПЕРСОНАЛЬНУЮ  рабочую  среду  и
инструментальные средства.  Мы предлагаем вам пакет программ,  которые
вы можете приспособить к вашим требованиям.  Фактически мы  в  этой  и
следующей главе представляем четыре отдельных набора программ,  каждый
из которых посвящен определенному аспекту управления личной информаци-
ей.
     Средства управления временем помогают нам спланировать выполнение
задач компьютером,  а также контролировать наше личное время. Управле-
ние делопроизводством имеет дело с хранением и извлечением информации,
а также с организацией  доступа  к  различным  функциям  системы  UNIX
посредством простого в использовании интерфейса в виде меню.
     Для каждой из этих областей деятельности мы даем ее обзор,  а за-
тем представляем соответствующую группу средств.

     УПРАВЛЕНИЕ ВРЕМЕНЕМ

     Поскольку система UNIX имеет встроенные функции поддержки времени
и часы,  она может следить за временем.  Объединение функций поддержки
времени с возможностью автоматического запуска группы команд означает,
что мы можем настроить их так,  чтобы компьютер выполнял  многие  наши
рутинные  работы,  связанные со временем.  Мы также можем использовать
компьютер для отслеживания нашего собственного времени.
     В данном разделе представлены инструментальные  средства  at,  b,
greet, lastlog, timelog и today.
     Командный файл at дает нам возможность сказать машине о том,  что
в указанное время необходимо сделать то-то и то-то (вывести  на  экран
сообщение или выполнить какие-то другие команды). Задача запускается в
фоновом режиме,  так что мы можем продолжать другую работу,  а фоновая
задача  выполнится  автоматически в указанное время.  Эта задача может
состоять из любых разрешенных в UNIX команд,  поэтому  ее  возможности
очень  гибкие.  Мы  просто  предлагаем некоторые идеи,  связанные с ее
использованием.
     Вторым средством является командный файл b.  Это обработчик фоно-
вых задач.  Очень часто при порождении фоновых процессов мы  не  можем
узнать, когда они закончились. Для того, чтобы это определить, нам не-
обходимо вручную просмотреть таблицу процессов или найти какой-то иной
признак того,  что данная работа завершена. Командный файл b запускает
задачу,  управляет операциями ввода-вывода и затем сообщает нам о том,
что задача завершена.
     Командный файл greet показывает,  каким образом переводить  внут-
реннее  время  компьютера в более понятные пользователю категории.  Он
различает три перида суток (утро,  день и вечер) и  реагирует  на  них
соответствующими  сообщениями.  Это  довольно просто,  но обеспечивает
неплохое основание для подхода к решению других проблем,  связанных со
временем.
     Далее мы представляем два средства, которые образуют базис систе-
мы управления временем.  При выполнении множества работ нам необходимо
подсчитать время, которое мы потратили на данный проект, чтобы мы мог-
ли  выставить  нашему  клиенту  соответствующий  счет.  Командный файл
lastlog запускается автоматически, когда вы регистрируетесь в системе.
Поддерживается  база  данных,  в которую каждый раз записывается время
вашей регистрации для последующего анализа или хранения записей.
     С этим  инструментальным  средством  соседствует  командный  файл
timelog.  Это утилита,  которая выполняет подсчет времени.  Она  может
следить за общим временем,  затраченным на любой указанный проект. За-
тем можно сгенерировать статистику, которая показывает, когда и сколь-
ко времени вы работали над каждым проектом.
     Последнее средство,  относящееся ко времени - это командный  файл
today.  Это утилита, которая изменяет вид выходных данных команды UNIX
cal.  Она печатает обычный календарь,  только текущая дата выводится в
инверсном виде.  Это очень наглядно. Вы можете развить этот инструмент
для того, чтобы отмечать праздники или другие особые дни.

---------------------------------------------------------------------------

     ИМЯ:  at
---------------------------------------------------------------------------

at - выполнить команду или файл в указанное время

     НАЗНАЧЕНИЕ

     Переводит любую командную строку в фоновый режим и выполняет ее в
заданное время.

     ФОРМАТ ВЫЗОВА

at hr:min cmd [;cmd ...]

     ПРИМЕР ВЫЗОВА

at 12:00 echo "time for lunch!"

     В двенадцать часов дня выводит сообщение на экран терминала.

     ТЕКСТ ПРОГРАММЫ at

1  :
2  # @(#) tree v1.0  Execute command line at specific time
Author: Russ Sage
2а            Выполнить командную строку в указанное время

4  if [ $# -lt 2 ]
5    then echo "at: wrong arg count"             >&2
6         echo "usage: at hr:min cmd [;cmd ...]" >&2
7         exit 1
8  fi

10 ITS=$1; shift

12 while :
13 do
14       TIME=`date | cut -c12-16`

16       if [ "$ITS" = "$TIME" ]
17         then  eval $@
18               exit 0
19         else  sleep 35
20       fi
21 done &

     ПЕРЕМЕННЫЕ СРЕДЫ ВЫПОЛНЕНИЯ

ITS        Время, в которое следует выполнить указанные команды
TIME        Текущее время в системе

       ОПИСАНИЕ

     ЗАЧЕМ НАМ НУЖЕН  at?

     На протяжении  рабочего  дня  мы выполняем много небольших работ,
которые нужно делать через различные интервалы времени. Некоторые вещи
просто  должны  быть сделаны один раз в любое время,  тогда как другие
должны делаться в определенное время каждый день.  Например, вам может
понадобиться запускать процедуру копирования файлов каждую ночь,  вхо-
дить в другую систему раз в день и проверять почту или сообщения поль-
зователей сети по заданной теме раз в несколько дней.
     Командный файл at предоставляет механизм  для  выполнения  задач,
связанных со временем.  Мы можем сказать системе, что и когда мы хотим
сделать.  Задача остается "спящей" в фоновом  режиме  до  назначенного
времени.  Это  дает  нам возможность превратить компьютер в будильник,
секретаря, администратора встреч и т.д.
     Данная концепция не нова и уже существует в системе Berkeley UNIX
под тем же именем. Она реализована также в последних версиях System V.
     Почему же  тогда  мы  представляем здесь нашу собственную версию?
Одна из причин в том,  что многие из вас  имеют  более  ранние  версии
UNIX,  в которых это средство отсутствует. Но важнее, видимо, другое -
наша цель не в том, чтобы сделать существующие команды at устаревшими,
а в показе того,  как легко отслеживать время и реализовывать обработ-
Предыдущая страница Следующая страница
1 ... 28 29 30 31 32 33 34  35 36 37 38 39 40 41 ... 71
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (52)

Реклама