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

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


    Прохождения игр    
Demon's Souls |#15| Dragon God
Demon's Souls |#14| Flamelurker
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero

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


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

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

Предыдущая страница Следующая страница
1 ... 38 39 40 41 42 43 44  45 46 47 48 49 50 51 ... 71
команды ls в строке 67. Печатается также сообщение-заголовок "Calendar
Notifications" (календарные извещения).
     Строка 69 запоминает текущий рабочий каталог переменной PWD.  За-
тем мы переходим командой cd в каталог $HOME,  чтобы находиться в  том
же  каталоге,  что и календарный файл.  В строке 71 вызывается команда
UNIX calendar. Она просматривает календарный файл и выводит все подхо-
дящие по времени сообщения. По команде cd мы возвращаемся в наш исход-
ный каталог для того,  чтобы восстановить порядок.  Строка 73  выводит
сообщение,  чтобы  вы  проверили вашу почту на наличие календарных за-
писей. Как указывалось ранее, команда calendar работает двумя способа-
ми.
     Оператор else в строке 74 выводит вам сообщение,  если у вас  нет
календарного файла.  По завершении оператора if, в строках 76 и 77 пе-
чатается сообщение о том, что нужно нажать возврат каретки, и выполня-
ется оператор read. Это блокирующее чтение, которое означает остановку
и ожидание какого-либо  ввода.  Это  противоположность  неблокирующему
чтению,  или  более  широко известной технике чтения с опросом.  Опрос
возможен в программах,  написанных на Си, но запуск опроса в shell мо-
жет потребовать немного больших усилий.  Для изучения чтения с опросом
ознакомьтесь с главой, описывающей терминальные устройства.
     Строка 78  управляет командой phone.  Она вызывает утилиту phone,
которую мы рассмотрели ранее, после чего управление передается в конец
цикла while. Печатается главное меню, и все начинается сначала.
     Строки 79-97 управляют автоматическими напоминаниями. Сначала за-
пускается программа greet.  Она была описана ранее в этой главе. Затем
в строках 80 и 81 в режиме фонового выполнения вызываются два  команд-
ных файла at,  которые выполнятся позже в течение дня. В строке 84 вам
задается вопрос,  желаете ли вы оставить  какие-то  свои  напоминания.
Если вы отвечаете "y", выполняются строки 87-96. Если вы не ввели "y",
оператор else не выполняется,  поэтому управление передается  главному
меню.  Вы видите, что эта возможность предполагает однократное исполь-
зование в течение дня.
     Строки 87-89 выводят некоторую информацию,  необходимую для того,
чтобы вы завели для себя напоминания.  Выводится  синтаксис  программы
at,  текущая  дата (только время) и затем приглашение вводить вашу ко-
манду. Строка 90 читает вашу команду. Строка 91 означает, что если был
введен не только возврат каретки, то нужно выполнить этот цикл. Поэто-
му цикл while продолжается, пока вы не нажмете только возврат каретки.
Строка 93 пытается выполнить команду,  которую вы ввели.  Команда eval
используется для того, чтобы раскрыть значения тех переменных, которые
могли быть не раскрыты ранее. Строка 94 просит ввести следующую коман-
ду, а строка 95 читает ее. Поскольку чтение стоит в самом конце цикла,
оператор while выполняет проверку нового ввода с клавиатуры.
     Строки 98-102 управляют выходом в shell. Эта часть программы поч-
ти  идентична  циклу,  использованному  для напоминаний.  Нам выдается
приглашение на ввод команды,  она зачитывается в переменную, затем де-
лается  синтаксический  разбор этой переменной с помощью команды eval.
Если вы хотите перейти в shell,  выполните команду sh - и она  породит
shell.  Строки  101 и 102 не дают появиться на экране главному меню до
тех пор, пока вы не нажмете возврат каретки.
     Строки 103-105  выполняют проверку на ошибки ввода.  Любая непра-
вильная команда попадает сюда.  Выводится сообщение об ошибке и  выда-
ется приглашение "hit " (нажмите возврат каретки).

      * ГЛАВА 6. УПРАВЛЕНИЕ ЛИЧНОЙ ИНФОРМАЦИЕЙ II: *

     ОСВЕДОМЛЕННОСТЬ ПОЛЬЗОВАТЕЛЯ

     И ЗАЩИТА ЛИЧНОЙ ИНФОРМАЦИИ

     ОСВЕДОМЛЕННОСТЬ ПОЛЬЗОВАТЕЛЯ

  activ   показать активность терминалов
  info    показать информацию о паролях пользователей
  uchk    посмотреть процессы других пользователей
  watch   наблюдать за регистрацией в системе
  whox    команда who с дополнительными возможностями

     ЗАЩИТА ЛИЧНОЙ ИНФОРМАЦИИ

  acme    показать учетную информацию
  inuse   запретить использование терминала
  lock    блокировать и разблокировать файлы

                  УПРАВЛЕНИЕ ЛИЧНОЙ ИНФОРМАЦИЕЙ II:
     ОСВЕДОМЛЕННОСТЬ ПОЛЬЗОВАТЕЛЯ

     И ЗАЩИТА ЛИЧНОЙ ИНФОРМАЦИИ

     ВВЕДЕНИЕ

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

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

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

     Поэтому мы  здесь представим две группы инструментальных средств.
Средства ОСВЕДОМЛЕННОСТИ ПОЛЬЗОВАТЕЛЯ помогают нам следить за тем, что
делают другие, и тем самым упростить связь с ними. Средства ЛИЧНОЙ ЗА-
ЩИТЫ важны для защиты нашей учетной информации и наших  данных  и  для
получения информации о наших собственных действиях.

     Первая группа  рассматриваемых здесь средств,  относится к "осве-
домленности пользователя".  Этими  средствами  являются  activ,  info,
uchk, watch и whox.

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

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

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

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

     Последняя утилита  в  данном  разделе  - это whox.  Whox дает вам
исчерпывающие сведения обо всех пользователях, зарегистрировавшихся на
машине.  Вы  можете получить информацию,  похожую на результат команды
who,  которая отсортирована различным образом, отобразить информацию о
терминалах или даже передать почтовое сообщение любому пользователю.

     ОСВЕДОМЛЕННОСТЬ ПОЛЬЗОВАТЕЛЯ

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

ИМЯ: activ
---------------------------------------------------------------------------

activ    Показывает активность терминалов

     НАЗНАЧЕНИЕ

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

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

activ

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

activ     Выводит на экран информацию об активности
          пользователей на своих терминалах

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

1  :
2  # @(#) activ v1.0  Display terminal activity  Author: Russ Sage
2а                    Показать активность терминалов

4  if [ $# -gt 0 ]
5    then echo "activ: argument error" >&2
6         echo "usage: activ"          >&2
7         exit 1
8  fi

10 who -u | cut -c1-17,38-42

       ОПИСАНИЕ

                ЗАЧЕМ НАМ НУЖЕН КОМАНДНЫЙ ФАЙЛ activ?

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

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

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

                          ЧТО ДЕЛАЕТ activ?

     Activ печатает информацию об активности всех пользователей систе-
мы.  Распечатка содержит имя пользователя, номер терминала, на котором
он зарегистрировался,  и время последнего обращения к клавиатуре. Если
клавиатура была использована в течение последней минуты, этот терминал
отмечается точкой.  Если терминал не был использован в течение послед-
них 24 часов,  напротив него печатается слово "old". Во всех остальных
случаях выводится время последнего использования терминала в минутах и
секундах. Вот пример такой распечатки:

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

|
|    root      tty01  01:23
|    sage      tty05   .
|    batch     tty12  old
|    nuucp     tty16   .
|

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

     То, что  мы ищем,  уже есть в системе.  Это опция -u команды who.
Эта опция, однако, существует только в системе AT&T UNIX System V, по-
этому команда activ, по крайней мере в представленном виде, может быть
реализована только в этой системе.  Activ берет выход команды "who -u"
и "отрезает" некоторые данные, не имеющие отношения к нашей цели.

     Путем проб и ошибок, а затем проверки исходного кода я обнаружил,
что значение,  используемое в команде "who -u", является временем "мо-
дификации" файла устройства, которое сообщает системный вызов stat(2).
На страницах руководства по stat дается полная таблица системных вызо-
вов,  которые  изменяют временные характеристики файлов.  В табл.  6.1
представлены эти характеристики:

                             Таблица 6.1
                    Временные характеристики файла

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

 Временные           Системные вызовы, изменяющие временные
 характеристики      характеристики
---------------------------------------------------------------------------
Предыдущая страница Следующая страница
1 ... 38 39 40 41 42 43 44  45 46 47 48 49 50 51 ... 71
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (52)

Реклама