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


ОСВЕДОМЛЕННОСТЬ ПОЛЬЗОВАТЕЛЯ - часть 10


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

ARG Аргументы командной строки
COMMAND Команда, которую следует выполнить при использовании команды who со списком имен
CUT1 Содержит синтаксис для выделения первого поля строки
CUT5 Содержит синтаксис для выделения пятого поля строки
CUT6 Содержит синтаксис для выделения шестого поля строки
DISPLAY Определяет, какой режим отображения использовать
ENTRY Запись в файле паролей для указанного пользователя
EXTRA Данная переменная содержит полный цикл shell-команд, хранимых в виде одной строки
KB Входные данные от клавиатуры, полученные в цикле
NAME Содержит в каждый данный момент времени одно имя из списка всех регистрационных имен
SORT Содержит выполняемый тип сортировки
XTRA Флаг, определяющий, должны ли быть активизированы дополнительные опции

ОПИСАНИЕ

Зачем нам нужен командный файл whox?

Как уже ранее обсуждалось в других местах этой книги, система UNIX стремится обеспечить минимум возможностей в любой заданной области интересов. Это не значит, что UNIX плохая система. Наоборот, она делает гораздо больше, чем большинство других операционных систем. Но очень часто мы хотим сделать немного больше того, что нам предоставляет базовая система.

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

Что делает whox?

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

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

Whox имеет четыре различных режима отображения. Первый это формат обычного выхода команды who. Whox позволяет вам сортировать его двумя разными способами. Опция -n сортирует по именам, а опция -t (которую не нужно указывать, поскольку она используется по умолчанию) сортирует по времени регистрации.

Второй режим отображения состоит из режимов указания и паролей, включаемых опциями -f и -p. Основное отличие от первого режима заключается в том, что выход команды who не печатается, а используется для генерации списка имен пользователей, который применяется для других целей. Мы указываем каждого пользователя или печатаем парольную запись каждого пользователя. Выполняемая команда хранится в переменной, поэтому мы можем иметь общий цикл, использующий особым образом переменные. (Команда finger имеется в системе Berkeley UNIX и в некоторых других, но не во всех реализациях. Посмотрите руководство, чтобы выяснить, что выводится на экран по этой команде.)

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

Последний режим - это режим записи на терминал. Режим записи (опция -w) показывает информацию о файле терминала для каждого зарегистрированного терминального устройства. Эта информация полезна, если вы хотите использовать команду UNIX'а write. Посмотрев на права доступа к файлу устройства пользователя, вы можете сказать, имеется ли у вас возможность записать текст на его экран. Некоторые пользователи, которые не хотят, чтобы их прерывали, закрывают право записи на их терминал, выполняя команду "mesg n". Вопрос о праве записи касается любого способа посылки текста в другой файл, а не только с использованием команды write. Право записи также защищает от таких вещей, как "echo hello > /dev/tty00".

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

Например, мы хотим указать каждого пользователя. Мы используем опцию -f. Опция -f устанавливает в качестве режима отображения режим указания. Если мы поместим опцию -w справа от -f, как в команде "whox -f -w", то установится режим записи на терминал. Команда whox будет считать, что вы вообще не указывали опцию -f. На самом деле это не представляет большую проблему, если вы знаете, что делает каждая опция. Случайно смешивая их в одной команде, вы можете получить несколько странные выходные данные.

ПРИМЕРЫ




Начало  Назад  Вперед



Книжный магазин