Главная · Поиск книг · Поступления книг · 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 2 3 4 5  6 7 8 9 10 11 12 13 14 ... 71
библиотеки,  код ядра, код машинного языка и автономные утилиты. Часто
в /usr/src хранится также исходный код для локальной машины.
     Каталог sys  традиционно хранит файлы,  необходимые для генерации
нового ядра.  Это файлы-заголовки, конфигурационный файл, библиотеки и
командный файл для создания нового ядра из всех этих файлов.
     Последний каталог - tmp.  Это вторичная временная область  хране-
ния,  которая используется не так часто, как /tmp. Ее, однако, исполь-
зует утилита sort.

     ЖИЗНЬ СИСТЕМЫ UNIX: НЕКОТОРЫЕ МЕТАФОРЫ

     UNIX -  это  особый  мир,  живущий  своей жизнью.  Его социальная
структура имитирует реальную жизнь,  с правительством, содержащим пра-
вителя (корень root),  штатом поддержки (bin, cron, lp, sys) и массами
(/usr/*).  Массы не имеют доступа к мощи правителя, если не используют
предварительно  установленных средств (/bin/su) или не занимаются кри-
минальными действиями и нарушением мер безопасности. Как и в любом об-
ществе, большая многопользовательская система UNIX устанавливает права
и обязанности своих пользователей.
     При входе  в  систему пользователь получает свое "место под солн-
цем" (регистрационный каталог - $HOME ).  Это место зависит  от  того,
что  было  раньше (от родительского каталога ..),  а будущие места за-
висят от того, что происходит позже (каталоги, подчиненные $HOME).
     Работа распределяется  по  организациям и иерархиям в зависимости
от их функций в обществе (все пользователи в /usr, все транзитные фай-
лы в /usr/spool,  все функции безопасности в /etc).  Посмотрите вокруг
себя в вашей системе,  чтобы ознакомиться с  вашим  миром.  Вы  можете
после  этого выбрать,  участвовать ли в некоторой части этого мира или
игнорировать ее.
     Движение людей  в системе UNIX происходит параллельно.  Некоторые
области (/tmp) доступны всем, а некоторые области сильно охраняются от
большинства  людей (/etc/passwd).  Транспортная служба может перевезти
наши вещи (передача файлов по сетям uucp).  Мы даже  можем  воспользо-
ваться общественным транспортом, чтобы добраться в разные части города
(вход в другие системы (rlogin),  эта  особенность  имеется  только  в
BSD).
     В мире UNIX нам доступны различные пути.  Эти пути  помогают  нам
сформировать  свою  судьбу  (дисковые  разделы,  монтированные в любое
место файлового дерева).  Когда дисковый пакет монтируется,  он стано-
вится доступным нам. Когда он демонтируется, мы теряем доступ к нему.
     Когда запускаются процессы,  они проходят через  различные  этапы
своей жизни. Они рождаются (ответвляются), растут (становятся планиру-
емыми и помещаются в таблицу процессов) и,  наконец, становятся произ-
водительными  рабочими в обществе (переходят в состояние запуска и вы-
полняются).
     Все процессы  имеют фамильное дерево.  Порожденный процесс всегда
имеет родителя, а родительские процессы могут порождать много "детей".
В зависимости от приложения, они могут быть "дедами" и "внуками". Про-
цессы "умирают" так же легко,  как создаются. Одной из необычных вещей
в мире UNIX является то, что "дети" почти всегда "умирают" раньше сво-
их "родителей".
     Правительство (ядро)  проводит  в жизнь параметры среды,  которые
выглядели бы в довольно тоталитарном духе, если бы это было в реальном
мире.  Только  определенное число рабочих допускается к рабочему месту
одновременно (это максимальное количество ячеек в таблице  процессов).
Рабочие  ограничены  в числе "детей",  которых они могут иметь (макси-
мальное количество процессов на пользователя).  Поскольку рабочие  на-
капливают материальные ценности,  они ограничены в количестве товаров,
которые они могут поместить в комнаты своих домов (максимальный размер
файла, или ulimit). Хотя не установлен лимит на число различных файлов
(комнат) максимального размера, которые могут существовать, вся систе-
ма  имеет  предел  (df показывает свободное пространство),  и одна не-
насытная персона может нанести удар  по  окружающим.  Здесь  возникает
своего рода экология.
     Так же,  как компьютерный век проходит под присмотром электронной
автоматики,  так  и UNIX ведет таблицы о деятельности всех пользовате-
лей. Механизмы учета организованы правительством (внутри ядра) и всег-
да записывают действия каждого пользователя. Тем не менее, это свобод-
ное общество в той мере,  что вы можете получить  распечатку  о  вашем
кредитном состоянии (используя acctcom для печати учетных записей).
     Хотя система UNIX имеет негативные аспекты  (как  и  человеческое
общество),  в  ней  есть также некоторые очень позитивные особенности.
Гибкость системы и богатство инструментов дает нам очень  продуктивную
и детально разработанную рабочую среду. Наша производительность в этом
смысле ограничена в основном нашим собственным воображением. Когда ра-
бота становится слишком утомительной и скучной, мы всегда можем создать
средства, делающие за нас эту работу. Это обстановка свободной инициа-
тивы, в которой хорошие идеи могут дать значительное увеличение произ-
водительности.

      * ГЛАВА 2. Доступ к файлам *

       СОДЕРЖАНИЕ

     Введение
     2.1. Поиск файлов
     2.1.1. tree - визуализация файлового дерева
     2.1.2. thead - печать начала каждого файла
     2.1.3. tgrep - поиск строк в дереве файловой системы
     2.1.4. paths  -  нахождение пути доступа к исполняемым файлам,  со
            специальными опциями
     2.2. Вывод информации
     2.2.1. lc - вывод файловой информации на экран по столбцам
     2.2.2. ll - вывод файловой информации в длинном формате
     2.2.3. kind - вывод однотипных файлов
     2.2.4. m - простой доступ к команде more
     2.2.5. mmm - обработка программой nroff макрокоманд для рукописей
     2.2.6. pall - печать всех файлов в дереве

     ВВЕДЕНИЕ

     В главе 1 был представлен обзор общей структуры  системы  UNIX  и
показано, как взаимодействуют ее различные части. Это похоже на введе-
ние в географию, когда на глобусе показывают континенты и крупные вод-
ные пространства.  Такая информация, хотя и является хорошим фундамен-
том для  общих  знаний,  вряд  ли  поможет  найти  наилучший  путь  из
Сан-Франциско в Лос-Анжелес.  Необходим следующий уровень детализации:
названия поселений, дорог, развилок, улиц, адресов.
     Файловая система  UNIX  похожа на континент со множеством городов
и,  действительно,  с адресами внутри городов.  Каталоги  и  различные
уровни подкаталогов можно сравнить с маршрутами между различными пунк-
тами назначения,  названия файлов - с адресами.  Большое число путей и
мест  назначения может выглядеть пугающе,  но благодаря регулярности и
логичности,  файловая система UNIX   позволяет вам легко  перемещаться
из  одного  места в другое,  если вы знаете несколько основополагающих
принципов.
     Будучи пользователями UNIX,  все мы научились пользоваться основ-
ными командами файловой информации, как, например, ls с различными оп-
циями.  Мы  знаем,  как перемещаться между каталогами и копировать или
перемещать файлы. Тем не менее, находить нужную информацию о файлах из
всей массы информации не так-то легко.  Нам необходимо создать инстру-
ментальные средства, которые используют древовидную структуру файлов в
UNIX,  чтобы находить то, что мы ищем, и, соответственно, выводить ин-
формацию о файлах на экран,  печатать листинги  содержимого  файлов  и
т.д.
     Эта глава знакомит с инструментальными средствами, которые облег-
чают  задачу  поиска  и  доступа к файлам.  Доступ к файлам может быть
обеспечен различными способами,  поэтому техника и стиль  меняются  от
одного командного файла к другому.  Например,  в некоторых случаях вам
нужно найти имена всех файлов в данном сегменте  файлового  дерева,  в
других  случаях  вас  будут  интересовать файлы только заданного типа:
текстовые файлы вообще или исходные файлы на языке Си в частности.

     КОМБИНИРОВАНИЕ ПРОДУКТИВНЫХ ИДЕЙ

     Две концепции являются общими почти для всех файловых  инструмен-
тальных средств.  Первая - это идея рекурсивного поиска, которая озна-
чает, что некоторые команды системы UNIX (например, find) просматрива-
ют  все файловое дерево,  начиная с некоторой заданной начальной точки
(или с текущего каталога). Если в данном каталоге встречается подката-
лог,  то  его  содержимое тоже исследуется - и так далее вниз к самому
нижнему под-подкаталогу.  Так проходятся маршруты ко всем файлам в це-
лом дереве.
     Стандартные команды системы UNIX обеспечивают только ограниченное
число  основных  функций,  которые  могут работать рекурсивно по всему
файловому дереву. Наша стратегия при создании инструментальных средств
в  этой главе - воспользоваться преимуществами такого рекурсивного по-
иска и распространить их на многие другие функции.
     Вторая ключевая идея,  связанная с полезными файловыми инструмен-
тальными средствами - это возможность соединения команд с программными
каналами и управление потоком данных с помощью переадресации.  Вероят-
но,  вы уже встречались с подобными особенностями в вашей  собственной
работе с UNIX и эффективно их использовали.  Возможно, вы еще не осоз-
нали,  что соединение рекурсивного поиска, предоставляемого некоторыми
стандартными командами,  со специфическими функциями, предоставляемыми
другими командами,  позволяет нам создать команды,  которые  автомати-
чески обходят обширные файловые деревья и извлекают нужную информацию.
(В следующей главе мы выйдем за пределы распечатки и  отображения  ин-
формации на экран и научимся работать с файлами так, что мы сможем ко-
пировать, перемещать и восстанавливать их по мере надобности.)
     Для удобства  мы сгруппируем инструментальные средства в два раз-
дела:  поиск файлов и  распечатка  файловой  информации.  Имеет  смысл
представлять их в таком порядке, так как вы сначала должны найти файл,
чтобы потом с ним работать.

     ПОИСК ФАЙЛОВ

     Этот раздел посвящен поиску файлов, где бы они ни находились, вы-
воду на экран выбранной информации и поиску  символьных  строк  внутри
файлов.
     Первая программа,  tree,  обходит все файловое дерево и  печатает
имена всех файлов в формате визуального дерева. Она рекурсивно спуска-
ется в каждый каталог и находит все его файлы,  обеспечивая тем  самым
глобальный осмотр файловых областей и их вложенной по глубине структу-
ры.
     Другое инструментальное  средство  -  это  thead.  Thead печатает
несколько первых строк текстовых файлов,  которые находятся  в  данном
сегменте   файлового   дерева.  Просматривая  заголовок,  т.е.  первые
несколько строк файла, вы можете получить достаточно информации, чтобы
идентифицировать содержимое файла. При вызове thead вы можете явно за-
дать каталог либо передать команде thead по  конвейеру  список  полных
имен  файлов.  Это делает команду thead фильтром - особым видом команд
системы UNIX, который мы обсудим позже.
     Следующее инструментальное средство - tgrep.  Как следует из наз-
вания,  это еще одна команда,  связанная с файловым  деревом,  которая
использует утилиту grep.  Tgrep ищет символьные строки в каждом файле,
который находится в данном сегменте файлового дерева.  Tgrep также яв-
ляется фильтром,  так что имена файлов можно передавать ей по конвейе-
ру.
     В нашем последнем проекте в этом разделе мы обратимся к использо-
ванию каталогов как средства "навигации".  Сначала мы опишем  основной
алгоритм  для  утилиты,  которая для каждого файла из заданного списка
файлов проверяет, находится ли этот файл в каком-либо каталоге по ука-
занному  маршруту поиска.  Затем мы построим paths - утилиту,  которая
дополняет функцию поиска полезными опциями.

     РАСПЕЧАТКА ФАЙЛОВОЙ ИНФОРМАЦИИ

     Этот раздел знакомит вас с инструментальными средствами, предназ-
наченными для вывода на экран имен файлов и их содержимого. Инструмен-
ты такого рода весьма полезны, так как они могут значительно уменьшить
количество  необходимых символов,  набираемых с клавиатуры при запуске
Предыдущая страница Следующая страница
1 2 3 4 5  6 7 8 9 10 11 12 13 14 ... 71
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (52)

Реклама