ние файлов. Команду mv в UNIX можно использовать двояко: для перемеще- ния файлов и для их переименования. Перейдите в ваш начальный каталог по команде cd. Переименуйте ваш файл catfile, созданный в 4.5.3, в catfile2, для этого введите: mv catfile catfile2 После выполнения этой команды catfile закончит свое сущест- вование. Файл catfile2 будет размещен на его месте. Убедитесь в этом: lc . 4-18 4.5.5 Перемещение файлов. Для перемещения файла в другой каталог используйте в коман- де mv в качестве последнего аргумента имя нужного каталога. Не обязательно указывать имя файла в новом каталоге. Например, сле- дующая команда перешлет файл catfile2, созданный в 4.5.4, в ка- талог /tmp: mv $HOME/catfile2 /tmp Чтобы быть уверенным, что файл catfile2 находится в /tmp и его нет в текущем каталоге, введите: lc . /tmp (Помните, что в большинстве команд UNIX может быть исполь- зовано больше одного аргумента, и точка (.) обозначает текущий каталог.) Наконец, верните назад в текущий каталог файл catfile2 с помощью следующей команды: mv /tmp/catfile2 Команда mv всегда проверяет, является ли последний ее аргу- мент именем каталога. Если это так, то все файлы, являющиеся ар- гументами этой команды, пересылаются в этот каталог. Однако, ес- ли в этом каталоге вы не имеете режима доступа по записи, ваши попытки пересылки файлов не увенчаются успехом. 4.5.6 Копирование файлов. Команда cp служит для копирования файлов. Эта команда су- ществует в двух вариантах: первый - когда файлы копируются в ка- талог, и второй - когда файл копируется в другой файл. Перейдите в ваш начальный каталог с помощью команды cd. За- тем с помощью следующей команды скопируйте содержание файла catfile2, созданного в 4.5.4, в файл catfile3: cp catfile2 catfile3 Теперь вы имеете два файла с идентичным содержанием. Чтобы скопировать файлы catfile2 и catfile3 в каталог /tmp, введите: cp catfile2 catfile3 /tmp . 4-19 Упростим эту последнюю команду с помощью использования уни- версального символа: cp catfile* /tmp Подобно команде mv, cp всегда проверяет, является ли ее последний аргумент именем каталога. Если это так, то все файлы, имена которых являются аргументами этой команды, будут скопиро- ваны в этот каталог. Однако, в отличие от команды mv, cp остав- ляет обработанные файлы без изменений. Теперь в системе будет по две копии файлов catfile2 и catfile3, по одногй копии каждого в текущем каталоге, и по одной - в /tmp. 4.5.7 Нахождение файлов. Файловая сисема UNIX может содержать тысячи файлов. Поэто- му довольно просто потерять файл. С помощью команды find можно организовать просмотр файловой системы для поиска файла. Эта ко- манда имеет вид: find pathname -name filename -print pathname - маршрут к каталогу, который вы хотите просмот- реть. Просмотр рекурсивный: он перебирает все файлы и просматри- вает все подкаталоги каталога, имя которого вы указали. Опция -name сообщает, что вы проводите поиск файлов, имена которых - filename. Опция -print позволяет напечатать на экране дисплея маршруты ко всем файлам, имена которых указаны в этой команде. Введите следующую команду для поиска всех тех каталогов и подкаталогов, где есть файл catfile2, созданный в 4.5.4: find / -name catfile2 -print Выполнение этой команды займет, быть может, несколько ми- нут. Выдача этой команды покажет, что файл catfile2 встречается по меньшей мере в дважды: один в каталоге /tmp и один в вашем начальном каталоге. Удалим catfile2 и catfile3 из /tmp и вашего начального каталога путем ввода команды: rm /tmp/catfile* $HOME/catfile* . 4-20 4.6 Обработка текстовых файлов. UNIX включает утилиты, позволяющие обрабатывать текстовые файлы. Эти утилиты предоставляют возможности сопоставлять содер- жание двух файлов, сортировать файлы, осуществлять поиск по шаб- лону, подсчитывать символы, слова и строки в тексте. Обо всех этих возможностях вы прочтете ниже. 4.6.1 Сопоставление файлов. Команда diff позволяет сопоставлять содержание двух файлов и печатать те строки, которые в этих файлах различаются. Чтобы попробовать эту возможность в работе, войдите в редактор vi для создания двух файлов и работы с ними. Пусть эти файлы называются men и women. Сначала войдите по команде cd в ваш начальный ката- лог. Затем на приглашение UNIX введите следующую команду: vi men Теперь, попав в редактор, войдите в режим вставки - нажмите i - и наберите следующий текст: Настало время всем добрым мужчинам Прийти на помощь своей партии. Перейдите в режим команд (Esc) и сохраните файл men, введя :w. Находясь в режиме команд, создайте файл women: :n women Вы увидите следующее сообщение: "women" No such file or directory Вы находитесь теперь в файле women. Нажмите i для перехода в режим вставки и введите следующие строки: Настало время всем добрым женщинам Прийти на помощь своей партии. Нажмите Esc для возврата в режим команд, затем наберите :x и выйдите из редактора vi. Теперь у вас есть два файла: men и women. Введите следующую команду для сопоставления содержания двух файлов: diff men women . 4-21 Выполнение команды diff вызовет печать такого текста: _________________________________________________________ | | lcl | < Настало время всем добрым мужчинам | --- | > Настало время всем добрым женщинам | Эти две строки - то, чем различаются два файла men и women. 4.6.2 Сортировка файлов. Одной из наиболее полезных команд обработки файлов является команда sort. Команда  sort без параметров располагает строки файла в алфавитном порядке, рассматривая строки с самого левого символа. Рассортированные таким образом строки выводятся затем на экран или, в случае переадресации вывода, в файл. Данная ко- манда не воздействует на содержимое текущего файла. Введите следующую команду для распечатывания на экране в алфавитном порядке списка всех пользователей, имеющих систем- ный бюджет: sort /etc/passwd Команда sort может работать с каналами. Введите следующую команду для выдачи на экран в алфавитном порядке имен всех ра- ботающих в данный момент пользователей: who | sort 4.6.3 Поиск шаблонов в файле. Команда grep выбирает и отделяет строки файла, печатая лишь те из них, которые содержат совпадающие с данным шаблоном части. С помощью следующей команды распечатайте строки файла /etc/passwd, содержащие вашу регистрационную информацию. Возмож- но, вся эта информация уместится в одной строке: grep login /etc/passwd . 4-22 Замените в этой команде login на ваше регистрационное имя. Выведенная информация будет иметь примерно такой вид: _______________________________________________________________ | | markt:0V/WE/utnUkpc:6005:104:Mark Taub, Docland:/u/markt:/bin/csh | Заметим, что всегда, когда в команде grep используется универсальный символ, шаблон должен быть заключен в одинарные кавычки ('). Заметим также, что использование шаблонов требует большой тщательности. Набрав в команде "joe", вы никогда не найдете "Joe". Другой пример: предположим, что у вас есть файл - телефон- ная книжка phonelist, содержащий имена и телефонные номера вла- дельцев телефонов. В этом файле может быть несколько тысяч строк. Вы можете использовать команду grep для поиска телефон- ного номера какого-либо человека по имени Joe, чей номер начи- нается с цифр 822: grep 'Joe' phonelist | grep '822-' > joes.number Сначала утилита grep найдет в файле phonelist все строки, содержащие слово "Joe". Вывод этой команды будет просмотрен другой командой grep, которая среди всех этих строк найдет те, в которых номер начинается с "822-". Наконец, искомые строки (скорее всего, лишь одна) будут помещены в файл joes.number. Еще две команды UNIX производят поиск шаблонов. Это ко- манды egrep и fgrep. Для более подробной информации о команде grep обращайтесь к UNIX User's Reference. 4.6.4 Подсчет слов, строк и символов. Утилита wc подсчитывает количество слов в файле. Под сло- вами эта команда подразумевает все то, что отделено знаками пунктуации, пробелами, знаками табуляции и переходом на новую строку. Кроме слов, команда wc подсчитывает строки и символы. . 4-23 Перейдите в ваш начальный каталог по команде cd. Затем введите следующую команду для подсчета строк, слов и символов в файле men, созданнго в 4.6.1: wc men Выдача этой команды будет следующей: __________________________________________________________ | | 2 10 55 men | Эти числа означают следующее: первое - число строк в файле men, второе - число слов и третье - число символов. Теперь уда- лите файлы men и women с помощью следующей команды: rm *men Для спецификации подсчета символов, слов и строк по от- дельности существуют опции -c, -w и -l соответственно. Напри- мер, с помощью следующей команды вы сможете подсчитать число зарегистрированных в данный момент пользователей: who | wc -l Команда who создает список работающих с системой пользова- телей, по одному на строке. Команда wc -l подсчитает получивши- еся строки. Это и будет искомое число. 4.7 Использование режимов доступа к файлам и каталогам. Система UNIX дает возможность владельцу файлов ограничить доступ к своим файлам и каталогам. Это позволяет делать поддер- живаемая UNIX система режимов доступа. Пользователям могут быть выданы разрешения на чтение, редактирование и выполнение файлов. В отношении каталогов ограничения накладываются на вход в каталог по команде cd, просмотр содержания каталога, а также на создание и удаление файлов в этом каталоге. Для определения режимов доступа к данному файлу или катало- гу используйте команду l. Перейдите в ваш начальный каталог по команде cd и затем введите l, после чего на экране терминала по- явится список файлов данного каталога в длинном формате. . 4-24 Первые 10 символов, выведенных по команде l, определяют ре- жим доступа. Первый символ идентифиицирует тип файла и должен быть одним из следующих: - Обычный файл. b Блок специальных устройств - твердый и гибкий диск. И твердый, и флоппи-диск могут быть представлены этим символом. c Специальные устройства типа строчного принтера или терминала. d Каталог. m Совместно используемый файл данных. n Имя специального файла. p Имя канала. s Семафор. Следующие 9 символов интерпретируются как три тройки, представляющие соответственно три режима доступа: . Доступ владельца, . Доступ группы и . Доступ всех прочих пользователей. В каждой тройке содержится информация о разрешении на чте- ние, редактирование и выполнение файла, закодированная соответс- твенно в трех символах. Для каталога разрешение на выполнение означает возможность поиска в данном каталоге файлов и подката- логов. . 4-25 Для обычного файла разрешение имеет следующий смысл: r Файл можно читать. w Файл можно редактировать. x Файл можно выполнять. - Нет никакого доступа. Для каталогов это трансформируется следующим образом: r Файлы данного каталога могут быть просмотрены; каталог в этом случае должен иметь также "x" разрешение. w В данном каталоге можно создавать и удалять файлы. Ка- талог должен также иметь "x" разрешение. x Каталог может быть просмотрен. Он должен иметь "x" разрешение, прежде чем в него можно попасть по команде cd, обратиться к файлам данного каталога или пролис- тать их. Помните, что каталог должен иметь "x" рареше- ние, чтобы вы могли сделать что-либо полезное в нем. Вот несколько типичных комбинаций, представляющих различные режимы доступа: d--------- Ни для кого нет доступа. Этот режим запрещает доступ всем, кроме привилегированного пользо- вателя. drwx------ Доступ только для владельца каталога. Владе- лец может просмотреть содержание каталога и файлов в нем (если они имеют соответствующее разрешение), попасть в каталог по команде cd, добавлять и удалять файлы в нем. Это типичный режим для владельца каталога. drwxr-x--- Кроме разрешения для владельца каталога, опи- санного выше, здесь добавляется доступ для группы на просмотр содержания каталога и фай- лов в нем, а также на вход в данный каталог по команде cd. Однако, члены группы не могут создавать или удалять файлы в этом каталоге. Это типичный пример доступа к файлам, который предоставляет владелец каталога членам группы. . 4-26 drwxr-x--x Помимо доступа владельца и членов группы, опи- санного выше, этот режим доступа позволяет прочим пользователям входить в данный каталог по команде cd. Однако, так как для них не ус- тановлено "r" разрешение, прочие пользователи не могут просматривать содержание каталога с помощью команды  lc. Этот режим используется редко, однако он может оказаться полезным, если вы хотите разрешить доступ кому-либо к какому-либо специфическому файлу, при этом не давая возможности обращаться к остальным фай- лам. Каталог /etc содержит файлы с различными режимами доступа. Проверьте эти режимы с помощью введения следующей команды: l /etc | more 4.7.1 Изменение режимов доступа к файлам. Команда chmod изменяет разрешение на чтение, запись, выпол- нение и поиск в файлах и каталогах. Она имеет вид: chmod instruction filename Аргумент instruction показывает, какой режим и для какого класса пользователей вы хотите изменить. Есть три класса пользо- вателей и три уровня доступа. Пользователи специфицируются сле- дующим образом: u Пользователь - владелец файла или каталога. g Группа, использующая файлы, принадлежащие их владельцу. o Прочие, т.е. все пользователи, кто не вошел в u или g. a Все пользователи системы. Доступ специфицируется следующим образом: r Чтение, или разрешение на просмотр, но не на изменение или удаление файлов. . 4-27 w Запись, что позволяет пользователям редактировать и даже удалять файлы. x Выполнение - разрешение на выполнение файлов как команд. Перейдите в ваш начальный каталог по команде cd. Затем вве- дите следующую команду для создания файла tempfile: touch tempfile Вероятно, режим доступа к tempfile будет следующим: -rw-r--r-- Убедитесь в этом путем ввода следующей команды: l tempfile Введите команду для назначению вам (т.е. владельцу файла) режима доступа по выполнению относительно файла tempfile: chmod u+x tempfile С помощью команды l проверьте, что режим доступа изменен. (Конечно, если файл tempfile не является объектным или загрузоч- ным, что по умолчанию предполагает разрешение на выполнение). С помощью следующей команды задайте доступ по записи к фай- лу tempfile для членов группы и прочих пользователей: chmod go+w tempfile Проверьте с помощью команды l, что режим доступа изменен. Вы имеете возможность и на отмену доступа, что позволяет делать все та же команда chmod. Например, введя следующую коман- ду, вы снимете разрешение с прочих пользователей на запись в файле tempfile: chmod o-w temfile Удалите tempfile с помощью команды rm: rm tempfile . 4-28 4.7.2 Изменение режимов доступа к каталогам. Для каталога разрешение на выполнение нужно не только в том случае, когда в нем содержатся объектные и загрузочные файлы. Для любой полезной работы с каталогом необходимо иметь режим доступа по выполнению. Пользователи, не имеющие данного разреше- ния при работе с каталогом, не могут даже попасть в него по ко- манде cd, не говоря уже о просмотре имен файлов или их копирова- нии. Для вашего начального каталога режим доступа установлен, скорее всего, так: drwxr-xr-x Убедитесь в этом, введя следующую команду: l -d $HOME Вы, вероятно, видите теперь следующее: ___________________________________________________________ | | drwxr-xr-x 4 markt pub 240 Feb 10 09:09 /u/markt | Установленный таким образом режим доступа позволит вам, как владельцу каталога, входить в него по команде cd, просматривать содержание каталога и файлов в нем (если, конечно, для файлов есть соответствующее разрешение), а также создавать и удалять файлы в данном каталоге. Для других членов группы и всех прочих пользователей этот режим доступа позволяет переходить в данный каталог по команде cd, просматривать содержание каталога и всех тех файлов в нем, что имеют соответствующее разрешение. Чтобы лишить других пользователей доступа для полезной ра- боты в вашем каталоге, введите следующую команду: chmod o-x $HOME Убедитесь, что режим доступа изменился. Для этого введите следующую команду: l -d $HOME . 4-29 Вы должны увидеть следующее сообщение: __________________________________________________________ | | drwxr-xr-- 4 markt pub 240 Feb 10 09:09 /u/markt | Теперь только для вас и членов вашей группы сущестует дос- туп в ваш каталог. Если у вас есть горячее альтруистическое же- лание возобновить доступ всем прочим пользователям в ваш ката- лог, введите следующую команду: chmod o+d $HOME . Ч А С Т Ь 5. Сопровождение системы ____________________________________________________________ 5.1 Введение 5-1 5.2 Создание резервных копий 5-1 5.2.1 Форматирование дискет и лент 5.2.2 Использование команды tar для создания ре- зервных копий 5.2.3 Просмотр содержимого копий 5.2.4 Извлечение файлов из копий 5.2.5 Стенографическая запись команды tar 5.3 Копирование дискет 5-9 5.4 Как узнать информацию о статусе системы 5-10 5.4.1 Кто сейчас работает в системе? 5.4.2 Распознавание обращений к диску 5.5 Управление процессами 5-12 5.5.1 Установление фонового режима выполнения ко- манд 5.5.2 Отсрочка выполнения команд 5.5.3 Какие процессы сейчас выполняются? 5.5.4 Прерывание процессов 5.6 Программирование на языке Shell 5-17 . 5-1 5.1 Введение. В пятой части описываются вспомогательные задачи системы UNIX. Вы периодически пользуетесь сопровождающей частью систе- мы, например, узнаете информацию о системных ресурсах, что поз- воляет вам организовать более эффективную работу в среде UNIX. В данной части мы расскажем о следующих задачах сопровождения: . Создание копий особо значимых файлов и каталогов, . Извлечение файлов из резервной среды, . Создание копий флоппи-дисков, . Определение размера использованного/свободного дисково- го пространства, . Выполнение команд в фоновом режиме, . Отсрочка и прерывание выполнения команд, . Использование языка shell для автоматизации выполнения рутинных задач. Эта часть построена как самоучитель. Лучший способ изучения данной части - читать ее непосредственно за дисплеем, выполняя все приведенные в тексте примеры. Команды описываются без подробностей. Для выяснения тонкос- тей обращайтесь к UNIX User' Reference. 5.2 Создание резервных копий. Копирование всей файловой системы - прерогатива системного администратора. Однако, зачастую и индивидуальные пользователи считают целесообразным создавать копии отдельных файлов в про- цессе своей работы. Такие копии создаются с помощью команды tar. Наиболее часто копируются флоппи-диски и кассеты с магнит- ными лентами. Однако, прежде чем создавать копии флоппи-дисков и некоторых кассет с лентами, их необходимо сформатировать. Ниже вы прочтете, как можно сформатировать дискеты и ленты и восполь- зоваться командой tar для создания копий. . 5-2 5.2.1 Форматирование дискет и лент. Чтобы сформатировать дискету 5.25 дюйма на 360К (double- sides, double-density) на первом флоппи-драйвере, введите следу- ющую команду: format Вы прочтете, что нужно вставить дискету и нажать RETURN. Если нужно сформатировать дискету 5.25 дюйма на 1.2 мега- байт (double-sides, high-density), введите следующую команду: format /dev/rfd096ds15 Для форматирования дискеты 3.5 дюйма на 720K (первый драй- вер), введите: format /dev/rfd096ds9 Чтобы производить форматирование на втором драйвере, заме- ните 0 после rfd на 1. Нет необходимости форматировать все кассеты с лентами. Однако, те из них, которые используются на ленточных мини-драй- верах, необходимо форматировать. Для этого введите: format /dev/rctmini 5.2.2 Использование команды tar для создания резервных копий. Для создания копий используется команда tar. Ее синтаксис: tar [key] [files] Аргумент key управляет действием команды tar. Аргумент files специфицирует те файлы, для которых создаются копии. . 5-3 Наиболее часто используются следующие аргументы key: c Создание копий. x Извлечение файлов из резервной среды. t Просмотр содержания резервной среды. v Высвечивание имен всех текущих процессов. f Создание копий специальных устройств. Создание копий. Далее приводится описание процесса копирования всех файлов вашего начального каталога на дискету. Проделайте все шаги этого процесса с командой tar. Для копирования другого каталога перейдите в него по коман- де cd и выполните все следующие шаги. Для копирования на ленту подставьте на место арумента files имя файла специального уст- ройства, ассоциированного с лентой: dev/rctmini или /dev/rct0. 1. Загрузитесь с консоли. Это позволит работать с флоп- пи-драйвером вручную. 2. Определите, сколько дискет вам необходимо, и отформати- руйте их, используя команду format, описанную выше в 5.2.1. Для определения нужного количества дискет введи- те следующую команду: du -a . 5-4 Вывод будет выглядеть примерно так: __________________________________________________________ | | 12 ./1.intro.s | 74 ./2.concepts.s | 14 ./2.concepts.err | 0 ./.err | 60 ./5.house.s | 32 ./3.log.s | 2 ./err | 2 ./0.title | 30 ./6.desk.s | 112 ./4.files.s | 12 ./4.files.err | 4 ./3.log.err | 356 . | Число внизу - суммарное число 512-ти байтовых блоков, за- нимаемых файлами данного каталога. В данном примере необходимо 356х512 байт, или около 183К. Для создания копии данного ката- лога достаточно одного флоппи-диска. 3. С помощью следующей команды вы создадите на 360-ти байтовой дискете (5.25 дюйма), находящейся на первом флоппи-драйвере, копию вашего начального каталога: tar cvf /dev/fd048ds9 . Если дискета 5.25 дюйма на первом драйвере сформатиро- вана на 1.2 мегабайт, введите: tar cvf /dev/fd096ds15 . Если при выполнении команды tar потребуется более од- ного диска, то появится сообщение о необходимости вставить другой "volume". В этом случае вставьте новую дискету. Выполнение команды tar завершится тогда, ког- да снова появится подсказка системы. Чтобы перенести только один файл на дискету 1.2 мегабайт, введите: tar cvf /dev/fd096ds15 ./filename Заметим, что имя файла (filename) отделено точкой и косой чертой (./). Это заставляет команду tar трактовать filename скорее как "относительное", а не абсолютное имя файла. (Для по- лучения более подробной информации о команде tar см. tar(C).) . 5-5 Команда tar размещает в резервной среде и все подкаталоги данного каталога. Так, если каталог /bin содержится в вашем на- чальном каталоге, tar создаст копию этого каталога и всех его файлов. 5.2.3 Просмотр содержимого копий. Для просмотра содержимого дискеты 5.25 дюйма 360К, разме- щенной на первом дисководе, на которой команда tar создала копию, введите: tar tvf /dev/fd048ds9 . Аналогично, для дискеты 1.2 мегабайт, введите: tar tvf /dev/fd096ds15 . Для дискеты 3.5 дюйма введите: tar tvf /dev/fd096ds9 . Проэкспериментируйте с опциями команды tar, помещая на первый дисковод дискету с копией вашего начального каталога, созданную в 5.2.2. Введите приведенные команды для просмотра содержимого копий. 5.2.4 Извлечение файлов из копий. Мы рекомендуем размещать файлы, извлекаемые из "хранения" в резервной среде, во временном каталоге на твердом диске. А уже оттуда с помощью команды mv можно поместить извлеченный файл на его место в файловой системе. Причина такой осторожнос- ти состоит в том, что могут совпасть имена файлов коренной фай- ловой системы и извлекаемых из резерва, и команда tar может при записи затереть нужный файл по недосмотру пользователя. Для возврата файлов из резервной среды с дискеты 5.25 дюй- ма 360К, находящейся на первом дисководе, введите: tar xvf /dev/fd048ds9 . 5-6 То же самое для дискеты 1.2 мегабайт: tar xvf /dev/fd096ds15 Чтобы достать только один файл с дискеты 1.2 мегабайт, введите: tar xvf /dev/fd096ds15 ./filename Заметим, что filename отделяется точкой и косой чертой (./), так как команда tar копировала filename на дискету с точ- кой (.), как в примерах в 5.2.2. Когда вы копируете файлы с по- мощью команды tar на флоппи-диск с точкой, имени файла должны предшествовать символы "./". Так как вы должны были вводить имя файла точно в таком виде, как было указано, то вы должны ввести ./filename, если filename было скопировано на диск с точкой. Поместите дискету с созданной там копией (5.2.2) на первый дисковод и попробуйте применить команду tar. Для этого проде- лайте следующее: 1. Перейдите в каталог /tmp по команде cd /tmp 2. Создайте в /tmp подкаталог: mkdir login Замените login на ваше регистрационное имя. 3. Введите: cd login 4. Если вы работаете со средой Bourne shell, и на перовм дисководе у вас стоит дискета 1.2 мегабайт, попробуйте извлечь файл .profile с помощью следующей команды: tar xvf /dev/fd096ds15 ./.profile . 5-7 Если вы пользователь C shell, введите: tar xvf /dev/fd096ds15 ./.login Если у вас дискета не 1.2 мегабайт, укажите соответст- вующее имя файла для специального устройства. 5. Чтобы проверить, какие именно файлы скопировались на твердый диск, введите: lc -a Опция -a заставит команду lc распечатать скрытые фай- лы, т.е. начинающиеся с точки (.). 6. Попробуйте с помощью команды tar извлечь все файлы с дискеты 1.2 мегабайт, находящейся на первом дисководе: tar xvf /dev/fd096ds15 Если у вас дискета не 1.2 мегабайт, укажите соответст- вующее имя файла для специального устройства. 5.2.5 Стенографическая запись команды tar. UNIX поддерживает стенографическую нотацию команды tar. Эта нотация позволяет вам специфицировать необходимые файлы специальных устройств. Файл /etc/default/tar содержит информа- цию о различных устройствах флоппи-дисков и лент. Введите сле- дующую команду для выдачи на экран содержимого /etc/default/tar: more /etc/default/tar . 5-8 Вы увидите примерно следующее: _________________________________________________________ | | # device block size tape | archive0=/dev/rfd048ds9 18 360 n | archive1=/dev/rfd148ds9 18 360 n | archive2=/dev/rfd096ds15 10 1200 n | archive3=/dev/rfd196ds15 10 1200 n | archive4=/dev/rfd096ds9 18 720 n | archive5=/dev/rfd196ds9 18 720 n | archive6=/dev/rfd0135ds18 18 1440 n | archive7=/dev/rfd1135ds18 18 1440 n | archive8=/dev/rct0 20 0 y | archive9=/dev/rtcmini 20 0 y | # The default device... | archive=/dev/rfd096ds15 10 1200 n | После букв rfd цифра 0 означает первый драйвер 360К, 1 - второй драйвер 360К, 2 - первый драйвер 1.2 мегабайт, 3 - вто- рой драйвер 1.2 мегабайт , и т.д. Чтобы скопировать все файлы текущего каталога на дискету 360К (5.25 дюйма), первый дисковод, введите: tar cv . (По умолчанию, текущее устройство есть устройство 0. Его не нужно явно указывать.) Для копирования всех файлов текущего каталога на дискету 5.25 дюйма 1.2 мегабайт на первом дисководе, введите: tar cv2 . Для извлечения файла с дикеты 3.5 дюйма 720К (перывй дис- ковод), введите: tar xv4 ./filename Заметим, что версия /etc/default/tar вашей системы может отличаться от приведенной выше. Системный администратор по сво- ему усмотрению может редактировать этот файл. Прежде чем ис- пользовать стенографическую нотацию, дважды проверьте, какая запись соответствует какому устройству в вашей системе. . 5-9 5.3 Копирование дискет. Чтобы уменьшить вероятность утраты данных, хранящихся на флоппи-диске, вы можете использовать команду diskcp(C) для соз- дания копий ваших дисков. Мы советуем вам копировать все выде- ленные вам ресурсы UNIX. Копировать информацию необходимо на уже сформатированный диск. Если диск сформатирован в UNIX, его можно использовать сразу. Если диск сформатирован в другой операционной системе, его необходимо переформатировать в UNIX, прежде чем переносить туда копии дисков UNIX. Вы должны знать также, что диски, сформатированные в некоторых операционных системах, не могут быть использованы в других системах даже после переформатирова- ния. Команда diskcp может форматировать дискеты перед перенесе- нием копий. Использование команды diskcp может быть описано следующими пунктами: 1. Поместите в ваш основной дисковод тот флоппи-диск, ко- торый вы хотите копировать. Если вы, как описано в 5.2.2, создали на дискете резервную копию вашего на- чального каталога, попробуйте все описываемые действия проделать с этой дискетой. 2. Поместите другой диск на другой дисковод. Это диск-ад- ресат. Заметим, что информация, уже содержащаяся на данном диске, будет утрачена. Если в вашей машине только один дисковод, оставьте там исходный диск. В этом случае копия будет переслана на твердый диск, а уже оттуда - на диск-адресат. 3. Для форматирования нового диска на 360К перед перене- сением туда копии введите команду: diskcp -f Для форматирования на 1.2 мегабайт введите: diskcp -f -96 . 5-10 Если у вас нет необходимости форматировать новый диск, и если исходный диск 360К, введите: diskcp Если диск 1.2 мегабайт, введите: diskcp -96 Если ваш компьютер имеет два дисковода, введите следу- ющую команду для копирования дискеты 360К на сформати- рованный диск: disk -d 4. Затем на вашем экране появятся инструкции по дальнейшим действиям. Так, если ваша система имеет только один дисковод, появится просьба вынуть исходный диск и вставить диск-адресат. 5. Если вы копировали резервную копию вашего начального каталога, поместите диск с только что созданной копией в первый дисковод и проверьте, что копирование завер- шилось удачно, вводя следующую команду: tar tvf /dev/fd096ds15 Если дискета 360К, введите: tar tvf /dev/fd048ds9 Заметим, что вы можете использовать стенографическую нотацию команды tar, о чем можно прочесть чуть выше. 5.4 Как узнать информацию о статусе системы. Поскольку система UNIX есть достаточно большая, загружен- ная в компьютер среда, то многие вещи о ее состоянии можно уз- нать у нее самой, например, кто из пользователей дольше всего работает в ней или какое количество дискового пространства сво- бодно. Ниже вы сможете прочесть о том, как это сделать. . 5-11 5.4.1 Кто сейчас работает в системе? Команда who выдает список имен, номер терминала и время регистрации всех пользователей, работающих в системе в данный момент. Введите следующую команду: who На экране появится примерно такая информация: ________________________________________________________ | | arnold tty1a Apr7 10:02 | daphne tty1b Apr7 07:47 | elliot tty1c Apr7 14:21 | ellen tty2a Apr7 08:36 | gus tty2b Apr7 09:55 | adrian tty2c Apr7 14:21 | Для тех же целей - узнать, кто работает в системе, может быть использована команда finger. Она выдаст более детальное сообщение. Для ее использования просто введите finger. 5.4.2 Распознавание обращений к диску. Команда df выводит информацию о свободном дисковом прост- ранстве. Использованная без опций, эта команда выдает сводку о числе свободных блоков и свободных индексных дескрипторов фай- лов. Блок - это 512 байтов. Введите следующую команду для выда- чи информации о свободном пространстве: df Вы увидите примерно такую строку: _________________________________________________________ | | / (/dev/root): 5956 blocks 1437 inodes | Это означает, что в файловой системе /dev/root 5956 блоков и 1437 индексных дескрипторов файлов свободны. 5956 блоков сос- тавляют около 3 мегабайт. . 5-12 Используемая с опцией -v, команда df сообщает процент ис- пользуемых блоков наряду с числом занятых и свободных блоков. Введите следующую команду: df -v Вывод будет аналогичен следующему: _________________________________________________________ | | Mount Dir Filesystem blocks used free % used | / /dev/root 80152 70192 9960 88% | /y /dev/y 82194 34314 47880 42% | /u /dev/u 50000 37840 12160 76% | Видно, что в файловой системе /dev/root 88%, или 70192 блока из общего количества 80152, использованы; остальные 9960 свободны. 5.5 Управление процессами. Выполнимые команды рассматриваются как процессы. Пользова- тель UNIX может запускать несколько процессов одновременно, один из которых будет идти в приоритетном режиме, а остальные - в фоновом. Приритетный процесс - один из тех, что идут в данный момент на вашем терминале. Он единственный способен принимать ввод с клавиатуры. Например, когда вы работаете в редакторе vi, единственным прцессом, идущем в приоритетном режиме, будет прог- рамма-редактор. Ввод с клавиатуры не может быть получен процессами, идущими в фоновом режме. В фоновом режиме поэтому целесообразно запус- кать те процессы, которые редко требуют обмена с клавиатурой. Ниже приведено обсуждение управления приоритетными и фоновыми процессами. 5.5.1 Установление фонового режима выполнения команд. Обычно команды, посылаемые с клавиатуры, должны иметь стро- гую последовательность. Не может начаться выполнение команды прежде, чем закончится выполнение предыдущей. Однако, если вы поместите выполнение команды в фоновый режим, вы сможете вводить команды для приоритетного выполнения, даже если выполнение фоно- вых команд еще не завершено. . 5-13 Для помещения команды в фоновый режим напечатайте знак ам- персанда (&) в конце командной строки. Например, введите следую- щую команду для создания и подсчета символов в большом файле. Заметьте, что эта команда занимает две длинные строчки. Тем не менее команда будет воспринята как одна благодаря обратной косой черте, помещенной в конце первой строчки. Обратная косая черта сообщит выполняющей оболочке shell о том, что команда будет про- должена на следующей строке: cat /etc/tempcar /etc/tempcar /etc/tempcar > lagefile; \ wc -c lagefile > characters & Вывод команды wc будет переадресован в characters. Если не задатьэтой переадресации, то вся информация будет выведена на экран, хотя вы можете быть заняты в это время выполнением совсем других процессов. Это может оказаться очень некстати для выпол- няющихся команд. Переадресация вывода этой команды - простой путь избежать этих неприятностей. Просмотрите содержание characters с помощью команды cat. Когда закончите, удалите characters и largefile с помощью коман- ды rm. Помещая выполнение процесса в фоновый режим, вы уже не смо- жете прервать его выполнение с помощью нажатия клавиши INTERRUPT, что можно проделать с приоритетным процессом. Для прерывания фонового процесса вы должны использовать команду kill. Эта команда описана ниже, в части 5.5.4. 5.5.2 Отсрочка выполнения команд. Кроме помещения команд в фоновый режим для выполнения, UNIX позволяет отсрочить выполнение команды. Это достигается с помощью команды at. Команда at позволяет назначать время начала выполнения команд целой серии. Для команды at требуется стандартный ввод. Ее синтаксис та- ков: at time day < file Аргумент file является именем файла, содержащего команду или команды, подлежащие выполнению. Аргумент time - время дня, записанное цифрами, за которыми следует указание am (первая по- ловина дня), или pm (вторая половина дня). Одна или две цифры этого числа интерпретируются как час, а три или четыре цифры - как час и минуты начала выполнения. Нельзя, чтобы этот аргумет содержал более чем четыре цифры. Аргумент day является опцией. Она может выглядеть следующим образом: имя месяца, следующего за номером дня, или день недели. Если day специально не указывает- ся, команда будет выполнена в ближайшее указанное время. . 5-14 Представьте, что вам нужно напечатать большой файл, но вы не хотите делать это в рабочее время, т.к. эта работа монопольно займет принтер на долгое время. Вы можете использов