КулЛиб - Классная библиотека! Скачать книги бесплатно 

Ubuntu и Debian Linux для продвинутых: более 1000 неэаменимых команд [Кристофер Негус] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]
Ubuntu® Linux®
TOOLBOX
1000+ Commands for Ubuntu
and Deblan Power Users

Christopher Negus
Fran�ois Caen

81C8NT8NNIAL

�1807�
=�WILEY =
�2007�
.

.

-

.

881C8NT8NNIALr

Wiley PuЬiishing, lnc.

КРистоФЕР НЕгУс ФРАНСУА КАэн

UвuNтu·
DEBIAN"
LINux·
и

-----�1 ДЛЯ ПРОДВИНУТЫХ 1�-----

�nnTEP(!)
Москва Санкт-Петербург Нижний Новгород Воронеж
Ростов-на-Дону Екатеринбург Самара Новосибирск
Киев Харьков Минск
2011
















ББК 32.973.2-018.2
УДКОО4.451
К98

Heryc К., Каэн Ф.
К98

Ubuntu и Deblan Linux для продвинутых: более 1000 неэаменимых команд. СПб.: Питер, 2011. - 352 с.: ил. -(Серия «Для профессионалов» ).
ISBN

978-5- 94807-027-8

Это руководство научит вас использовать Ubuпtu Liпux так, как это делают настоящие профес­
сионалы, то есть с помощью командной строки. Вы сможете применять более 1000 команд и получите все
необходимое Программное обеспечение - начиная с системных утилит, отслеживающих работу вашего
ПК и его безопасность, и заканчивая программами для работы в сети и разграничения доступа. Книга дает
незаменимые знания и навыки для использования и администрирования настольных ПК и серверов, рабо­
тающих под управлением Ubuпtu, Deblan, КNOPPIX и других дистрибутивов Liпux.

ББК 32. 973.2-018.2
УДКОО4.451

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

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

ISBN 978-0-470-08293-5
ISBN 978-5-94807-027-8

(англ.)

© 2008 Ьу Wiley PuЫishiпg, lпс., lпdiaпapolis, lпdiaпa
© Перевод на русский язык 000 Издательство «Питер», 2011
© Издание на русском языке, оформление 000 Издательство
«Питер», 2011

К р а ткое сод ержа н ие
06 авторах

................................................................................................

&пагодарности ...................... ,

.................................................................

13
14

Введение ................................................................................................... 15
Глава 1. Знакомство с Ubuntu Linux

.........

22

....................

37

..................................

69

..........................................................

90

.................

. ............................

Глава 2. Установка Ubuntu и nрограммнога обеспечения
Глава З. Использование командного процессара
Глава 4. Работа с файлами

...........

.

.

Глава 5. Обработка текстовой информации

.

110

. .................... ...................

Глава 6. Использование мультимедийных данных
Глава 7. Администрирование файловых систем

..............

128

.

................

...................................

143

Глава 8. Соэдание резервных копий и работа со сьемными

носителями

173

.......................................................................................................

Глава 9. Проверка запущенных процессов и управление ими
Глава 10. Администрирование системы

............

191
209

................................................

Глава 11. Управление сетевыми подключениями
Глава 1 2. Подключение к сетевым ресурсам
Глава 13. Удаленное администрирование

....................

233

. ...........

256

........................................

276

............................................

Глава 14. Повышение уровня безопасности

294

.........................................

Приложение 1. Использование редакторов vi и vim

..........................

310

Приложение 2. Специальные символы и переменные
........................

317

Приложение З. Получение информации с помощью
файловой системы /proc

...........................................................................

321

Алфавитный указатель

326

интерпретатора команд

...................................................

.

.......................................................................

О гл а вл ен ие
Об авторах

....................................................................

Благодарности
Введение

.

.

........................

..

........................................................................................

.

.........................................................................................

.

....

...

13 14

. 15

15
16
Какие темы раскрываются в издании
.
. .. .. 16
Как nостроена книга
.
18
Что нужно для исnользования данной книги
.
.. .. ... . .. 19
Условные обозначения
20
От издательства ....................................................................................... 21

Ubuntu берет Linux штурмом

....................................................................

Для кого nредназначена книга

.................................................................
.............................

..............

.

.........................................................................
..............

..............

.

...

..

.......

..

.

.

.............................................................................

Глава 1. Знакомство с Ubuntu Linux

........................................................

22

Ubuntu, Debian и Linux
23
Ubuntu в сравнении с другими дистрибутивами Linux ...................... 24
..............................................................................

Ссылки на ресурсы Ubuntu .............................................................. 25
Программное обесnечение для Ubuntu

............................................

27

Оnисание команд для Linux ...................................................................... 28
Поиск команд
..
30
..........................................................................

Сnравочная информация по Ubuntu
Работа со сnравкой
МАN-страницы
Документы info
Резюме

.

..............

.........................................................

. 31

.........................................................................

................................................................................
...............................................................................

.....................................................................................................

Глава 2. Установка Ubuntu и nрограммнога обеспечения

....................

32
33
35
35
37

37
Подготовка к установке
39
Выбор nараметров установки
39
Ответы на воnросы nрограммы установки ....................................... 40
Работа с nрограммными nакетами Deblan
41
Исnользование nрограммных nакетов
. .
43
Открытие большого количества реnозиториев для АРТ
.
.
44
Уnравление nрограммным обесnечением с nомощью АРТ
.. ...
. 46
Приобретение и установка Ubuntu

........................................ ....................

..................................................................

..........................................................

.................................................
...............

..

............. . ............
.... . ..

.....

.

....

......

.

.

. .. .

....

...

Добавление неnроверенных реnазитария и ключа
электронно-цифровой nодnиси ....................................................... 47
Поиск nрограммных nакетов
. . 48
.....................................................

Установка nакетов

.....................................................

.

.....

.

.

...

..............

48

7

Оглавление

49
50
Удаление программных пакетов
50
Очистка программных пакетов
51
Управление программным обеспечением с помощью dpkg
51
Установка программнаго пакета
52
Удаление программнаго пакета
53
Распаковка файлов из DЕВ-файла
53
Сбор информации о программных пакетах DEB ............................... 54
Управление программным обеспечением с помощью aptitude
56
Обновление программных пакетов
57
Сбор информации о программных пакетах
58
Установка программных пакетов
58
Удаление программных пакетов ...................................................... 59
Очистка диска ................................................................................. 59
Полезные сочетания параметров aptitude
60
Проверка установленных пакетов с помощью программы debsums ........... 61
Создание DЕВ-архивов
65
Резюме
68
Обновление пакетов

.......................................................................

Обновление одного программнаго пакета

.......................................

......................................................

........................................................

.......................

................................... . ..................

.......................................................

...................................................

...................

..................................................

......................................

.....................................................

........................................

.............................................................................

.....................................................................................................

Глава 3. Использование командного процессара

..................................

69

69
69
Работа с виртуальными терминалами
71
Работа в командном процессоре
72
Журнал bash
73
Функция дополнения командной строки
75
Переназначение stdiп и stdout
75
Алиасы
78
Наблюдение за командами .............................................................. 79
Наблюдение за файлами ................................................................. 79
Получение прав суперпользователя
79
Использование команды su
80
Распределение прав с помощью команды sudo
82
Переменные среды
83
Создание простых сценариев для командного процессора........................ 84
Редактирование и запуск сценария
85
Добавление содержимого в сценарий
85
Резюме
89

Окна терминала и доступ к командному процессору
Использование окон терминала

.................................

......................................................

..............................................

...............................................................

...................................................................................
..........................................

........................................................

............................................................................................

.........................................................

.............................................................

...............................

...................................................................................

.................................................

.............................................

.....................................................................................................

Глава 4. Работа с файлами
Типы файлов

......................................................................

..... .......................................................................................

Обычные файлы

.............................................................................

Каталоги
Символьные и жесткие ссылки

.........................................................................................
........................................................

Файлы устройств

.............................................................................

Именованные каналы и сокеты

.......................................................

90
90
90
91
92
93
94

8

Оглавление

Установление прав доступа к файлам и папкам

94
95
97
98
98
100
102
103
103

........................................

Изменение прав доступа с помощью команды chmod
Команда umask

......................

...............................................................................

Изменение прав собственности
Навигация по файловой системе

.......................................................

..............................................................

Копирование файлов
Изменение атрибутов файла

...............................................................................

...................................................................

Поиск файлов
Поиск файлов с помощью команды locate

..........................................................................................

......................................

Определение местонахождения файлов с помощью
команды find

104
106
107
107
108
109

..................................................................................

Другие команды для поиска файлов

..............................................

Получение более подробной информации о файлах
Отображение списка файлов

................................

.........................................................

Проверка файлов
Резюме

...........................................................................

....................................................................................................

Глава 5. Обработка текстовой информации
Редактирование текстовых файлов
Использование редактора JOE

110

.........................................

Поиск в тексте с помощью регулярных выражений

110
111
112
114
116
116
117
118
119
119
121
121
122
122
123
124
126
127
127

..................................

.........................................................

.......................................................

Работа с редакторами Pico и папо

..................................................

Графические текстовые редакторы

................................................

Отображение, упорядочивание и редактирование текста
Отображение текстовых файлов

Постраничный просмотр всего текста
Разбиение текста на страницы
Поиск в тексте

........................

....................................................
............................................

.......................................................

...............................................................................

Определение количества элементов

..............................................

Упорядочивание выводимых данных

..............................................

Поиск текста в бинарных файлах
Замена текста

...................................................

................................................................................

Преобразование и удаление символов

...........................................

Определение различий между двумя файлами

...............................

Использование команд awk и cut для столбцов процессов
Конвертирование текстовых файлов в различные форматы

.............

Резюме

Глава 6. Использование мультимедийных данных
Звук

.. . ........

....................................................................................................

128

...............................

128
128
130
131
132
135
137

........................................................................................................

Проигрывание музыки

....................................................................

Управление уровнем звука

.............................................................

Оцифровка музыки с компакт-дисков
Конвертирование музыки

.............................................

...............................................................

Стриминг музыки
Конвертирование аудиофайлов

...........................................................................

......................................................

9

Оглавление

Преобразование изображений

Конвертирование изображений

......................................

......................................................

Конвертирование пакетов изображений
Резюме

138
138
139
141
142

.................................................................

Получение информации об изображениях

.........................................

....................................................................................................

Глава 7. Администрирование файловых систем
Введение в основы файловых систем

143
145
145
149
150
152
153
155
155
156
160
160
163
164
166
167
169
170
170
171
171

......................................................

Создание файловых систем и управление ими
Разбиение жестких дисков

143

...................................

........................................

.............................................................

Работа с метками файловых систем

...............................................

Форматирование файловой системы

..............................................

Просмотр и изменение атрибутов файловой системы
Создание и использование разделов подкачки
Монтирование и демонтирование файловых систем

........ .............

...............................

................................

Монтирование файловых систем из файла fstab

.............................

Команда mouпt

..............................................................................

Демонтирование файловых систем
Проверка файловых систем
Проверка дисков RAID

.............................. . ...... ...........

........................................ .............................

.............................................................................

Получение информации об использовании файловой системы
Программа управления логическими томами (LVM)
Создание томов LVM

........................ ..............................................

Использование томов LVM
Увеличение тома LVM

..............................................................

................................. . ...................................

Уменьшение размера тома LVM

................... ............................... . ...

Удаление логических томов и групп LVM
Резюме

................

........................

........................................

...................................................................................... . .............

Глава 8. Создание резервных копий и работа

со сьемными носителями

173

................................... .............................................

Резервное копирование данных в архивы

Создание резервных архивов с помощью инструмента tar
Использование приложений для сжатия

..............

........................................

Просмотр, объединение и добавление файлов в архивы tar
Удаление файлов из архивов tar

173
173
175
178
179
179
180
181
182
184
184
187
189
190

... . ...... ........... . ..........................

...........

....................................................

Резервное копирование файлов через сеть

.............................................

Резервное копирование архивов tar через ssh

...............................

Резервное копирование файлов с помощью rsync

....................................

Команда unison

...... ........................................................................

Резервное копирование данных на съемные носители
Создание резервных образов
Запись образов

..............................................................................

Создание и запись DVD
Резюме

...................

.........................................................

..................................................................

.......................·.............................................................................

10

Оглавление

191

Глава 9. Проверка запущенных процессов и управление ими

............

Отображение активных процессов
Команда ps

.

......

....................................................................................

Команда top

...................................................................................

Поиск процессов и управление ими
Команда pgrep
Команда fuser

.........................................................

...........................................................................

...

................................................................................

Изменение запущенных процессов
Резюме

191
192
197
199
. 199
200
.
201
: ..........................................208

...................................................

..................

.........................................................

..............................

Глава 1 0. Администрирование системы ................................................209
209
. 210
Процессор ......................................................................................214
Запоминающие устройства .............................................................217
Управлением временем
.
.
219
Изменение даты/времени с помощью графических утилит
219
Отображение и установка системного времени
220
Отображение и настройка аппаратного времени
221
Приложения для контроля

Оперативная память

......................................................................

.................................................................

....................................................

...........

....

..........

.............

..............................
............................

Использование сетевого протокола времени для установки даты

. 222
22З
Загрузчик GRUB
.
224
Исправление неполадок основного псевдодиска (initrd)
. 225
Контроль уровней загрузки и выполнения ...............................................225
Ядро
228
Запись устройств по машинному адресу
: ......................................2ЗО
Резюме
232
и времени

...................................................................................

Управление процессом загрузки

..

..............................................................

................................................................

............

.. . ............

.

........................................................................................................
... . .......

....................................................................................................

Глава 1 1. Управление сетевыми подключениями
Настройка сетей с помощью GUI
Карты сетевого интерфейса

.

..... ............ . ...

233

..........

233
234
.238
238

. . ...........................................................

....................................................................

Управление подключениями к сети

........................................................

Запуск и остановка Еthегnеt-подключений

.

..............

.......... . ...........

240
242
Использование модемов коммутируемой линии передач
244
Установка разрешения имен
.
247
Устранение неполадок в работе сети
.
.
. 248
Проверка соединения с элементом сети .........................................248
Проверка протокола разрешения адресов ......................................249
Отслеживание маршрутов к хостам
251
Просмотр соединений и статистики
.
253
Полезные утилиты для работы с сетью ..........................................254
Резюме
.
255
Просмотр информации об Еthегnеt-подключениях

Беспроводные соединения

...................... . ..

..

............... ..............................................

.

......

.. . ...... . ...............

............................................................
...............................

............

.......

.....

....

................................................
.. . .......................................

.............................................................................

.....

......................

11

Оглавление

Глава 1 2. Подключение к сетевым ресурсам

............... . ........................

Запуск программ для просмотра информации в Сети
Передача файлов

256
257
258
259
260
262
264
264
264
266
270
270
272
272
274
275

.................................. . ................ . ................................

Закачка файлов с помощью команды wget
Передача файлов с использованием curl

.................. ...................

........................................

Передача файлов с помощью FТР-команд

......................................

Использование инструментов SSH для передачи файлов
Утилиты для передачи файлов в Windows

...............

.. . ............... ....................

Предоставление общего доступа к удаленным директориям
NFS

256

...............................

.............. ......

............................................................................. ...................

Samba

.......... . ................ . ................................................................

SSHFS

..... .......................................................................................

Общение с друзьями через IRC

................................. . .............................

Работа с почтовыми программами на основе текстовых приложений
Команда mail

Команда mutt
Резюме

......

..................................................................................

.................................................................................

....................................................................................................

Глава 13. Удаленное администрирование

276

............................................

Регистрация в удаленной системе и туннелирование с помощью SSH

276
278
279
284
285
286
286
286
287
288
288
290
290
291
291
292
293

......

Настройка SSH

...............................................................................

Использование команды ssh для удаленного входа в систему
Применение screen: богатый удаленный интерпретатор команд
Повторное подключение к сессии screen
Имена сессий screen

... . ....................................

.......................................................................

Предоставление общего доступа к сессиям

....................................

Использование удаленного рабочего стола Windows
Команда tsclient

........

..............

...............................

.............................................................................

Команда rdesktop

... . .......................................................................

Удаленный рабочий стол и приложения Linux

. . ................ . ......................

Предоставление общего доступа к Рабочим столам с помощью VCN

........

Настройка VNC-cepвepa
Запуск VNС-клиента

............................................ . ....................

.......................................................................

Использование VNC вместе с SSH в ненадежных сетях
Пакет программ Vino
Резюме

...................

...................... . ................. ..............................

. . .......................................................................... ........................

Глава 14. Повышение уровня безопасности
Работа с пользователями и группами

294

.........................................

Добавление учетных записей пользователей
Изменение учетных записей пользователей
Удаление учетных записей пользователей
Управление паролями
Добавление групп

294
295
295
297
298
298
301

.......................................... . ....... . ...

Управление пользователями из графической оболочки

.................

.................................

............ . ......................

................................ . ....

........................................................ ............

...... ................................... . ................................

12

Оглавление

Наблюдение за пользователями

.......................................................

Работа с файлами системного журнала

...................................................

Продвинутые утилиты по обеспечению безопасности
Резюме

301
303
307
308
309

..............................................................

Настройка встроенного брандмауэра

..............................

....................................................................................................

Приложеине 1. Использование редакторов vi и vim
Начало работы
Навигация

310

..........................

310
311
313
314
314
314
316

........................................................................................

...............................................................................................

Изменение и удаление текста
Вспомогательные команды

..................................................................

......................................................................

Модификация команд с помощью чисел
Ех-команды

..................................................

.............................................................................................

Работа в графическом режиме

................................................................

Приложеине 2. Специальные символы и переменные
интерпретатора команд

317

............................................................................

Специальные символы интерпретатора команд
Переменные интерпретатора команд

317
318

.......................................

.......................................................

Приложеине 3. Получение информации с помощью
файловой системы /proc

321

...........................................................................

Просмотр информации

321
325

............................................................................

Изменение информации

..........................................................................

Алфавитный указатель

326

.......................................................................

Ка� обычно, моя работа над книгой
посвящается моей жене Шерри.
Кристофер Негус (Christopher Negus)
Моей жене Тоне, которая поддерживает
меня во всех моих стараниях.
Франсуа Каэн (Fran�ois Caen)

Об а вто ра х
Кристофер Heryc является автором бестселлеров F edora and Red Hat Linux Bihles,
Linux Toys, Linux Trouhleshooting BiЬle и Linux Bihle 2007 Edition. Сейчас он ра­
ботает в компании Madison Linux Users Group. Прежде чем посвятить себя напи­
санию книг, Крис восемь лет проработал в команде разработчиков операционной
системы Linux в компании АТ & Т, где и была разработана система UNIX. Он также
работал в компании Novell над разработкой UNIX и Caldera Linux.
Франсуа Каэн - владелец компании Turbosphere LLC, занимающейся обслу­
живанием и управлением инфраструктурой бизнес-приложений, которая на 95 %
основана на Linux. Будучи сторонником открытых исходных кодов, он читал лек­
ции по администрированию сетей OSS и интернет-сервисам, а также был директо­
ром компании Tacoma Linux User Group. Франсуа является сертифицированным
инженером Red Hat ( RHCE). Свободное время он посвящает управлению компа­
нией Cisco networks.

Бл а год а рности
Я хотел бы поблагодарить Canonical Ltd

и команду Ubuntu за их непрерывную
и неизменно качественную работу по созданию операционной системы Ubuntu
на базе Linux. Особую благодарность хочется выразить Франсуа Каэну, который
большую часть прошлого года помогал мне в написании этой книги, закрывая
глаза на свои основные профессиональные обязанности. Спасибо Томасу Блей­
деру (Thomas Blader), который шагнул гораздо дальше своих основных обязан­
ностей технического редактора, проявив аккуратность и исключительную про­
ницательность при редактировании этой книги. Кроме того, благодарю Эрика
Фостер-Джонсона ( Eric Foster-Johnson), который присоединился к нам почти
в конце работы над книгой, однако существенно помог улучшить описание тех­
нических характеристик Ubuntu. Я хотел бы также поблагодарить Дженни У от­
сон Uenny Watson), сотрудницу издательства, за то, что она терпела нас на про­
тяжении всего срока работы над книгой. Наконец, последний, но не менее важный
человек, которого я хотел бы поблагодарить, - Сара Шлаер ( Sara Shlaer). Спа­
сибо ей за помощь в составлении графиков и бесконечных списков того, что нуж­
но сделать, чтобы эта книга была издана.
Кристофер Негу с

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

быть соавтором этой книги. Уже несколько лет мы хотели вместе написать книгу,
и данное руководство пользователя послужило прекрасным предлогом для совмест­
ной работы. Я не смог бы работать над этой книгой без неистощимой поддержки
со стороны моей жены Тони. Спасибо ей за то, что мыла посуду все это время, не­
смотря на то, что мы оба знаем, что это моя работа. Спасибо техническому редак­
тору Томасу Блейдеру за его скрупулезную работу. Спасибо Эрику Фостеру-Джон­
сону за то, что он привнес в эту книгу свои экспертные знания в области Ubuntu.
Спасибо Саре Шлаер за координирование процесса написания книги, а также
Дженни Уотсон за проявленное спокойствие. Особую благодарность хочется вы­
разить Уэйну Такеру (Wayne Tucker) за то, что все эти годы он делился со мной
своим опытом работы с Deblan, в особенности, когда речь шла о последних разра­
ботках, таких как kern�l 2.4. Наконец, я хотел бы выразить признательность Марку
Шаттлворсу ( Mark Shuttleworth), компании Canonical Ltd и команде Ubuntu за то,
что они делают Ubuntu доступнее и помогают распространять Linux.
Франсуа Каэн

В вед ен и е
Огромное Ubuntu-cooбщecтвo благодаря своему энтузиазму воспитало многие
тысячи новых пользователей Ubuntu Linux. Если вы являетесь одним из них, то,
скорее всего, вам очень скоро захочется лучше освоить приложения и графические
средства Ubuntu. Вы захотите стать продвинутым пользователем.
Стать продвинутым пользователем любой системы Linux - значит уметь рабо­
тать с командной строкой: не всякий графический интерфейс может предложить
вам те возможности и гибкость, которые доступны при использовании командной
строки.
В руководстве пользователя Ubuntu Linux описано более 1000 команд, позво­
ляющих лучше разобраться в системе Linux, и неважно, кем вы являетесь: систем­
ным администратором или простым пользователем, - в этой книге рассмотрены
команды для создания файловых систем, исправления неполадок в сети, повыше­
ния безопасности, а также все, что необходимо знать о Linux.
Эта книга сконцентрирована на изучении команд командной строки Linux
(в частности, Ubuntu, дистрибутива Linux, распространяемого через свободное
сообщество Ubuntu и спонсируемого компанией Canonical Ltd), а также системы
Dehian GNU/Linux, на которой и основана Ubuntu. Приобретение навыков, необ­
ходимых для управления этими системами, может позволить вам впоследствии
работать в собственной системе Linux, а также научиться всему, что необходимо,
чтобы быть профессионалом в среде Linux.

buntu

бе рет Linux штурмом

Со времени своего первого издания в 2004 году Ubuntu ( www. ubuntu.com}cтaл са­
мым популярным и, возможно, самым любимым среди пользователей дистрибу­
тивом Linux. Само название дистрибутива, которое переводится как �челове­
чество для других• , и то внимание, которое его создатели уделяют поддержке
множества других языков и специальных возможностей, отражают основной прин­
цип Ubuntu - принцип бесплатного распространения программнаго обеспечения
за пределами привычного рынка распространения Linux (обычно его формируют
приверженцы этой платформы либо люди, которым необходимо обеспечить рабо­
ту корпоративных серверов).
Разработчики Ubuntu делают все возможное, чтобы операционная система
Ubuntu на платформе Linux стала доступнее для неопытных пользователей.
Live CD с Ubuntu позволяет ознакомиться с системой перед ее установкой. Если
пользователю понравится Ubuntu, то достаточно будет одного щелчка кнопкой
мыши, чтобы начать ее установку на жесткий диск; а поскольку дистрибутив Ubuntu
создан на базе Dehian GNU /Linux, он может использовать огромное количество

16

Введение

программ из репозиториев Deblan, являющихся абсолютно бесплатными для поль­
зователей Ubuntu.
То, что разработчики Ubuntu уделяют большое внимание разработке простой
в использовании графической оболочки, не значит, что Ubuntu не обладает ком­
мерческой значимостью Linux. Компания Canonical Ltd предлагает разработчи­
кам финансирование через свои службы всемирной поддержки ( www. ubuntu.com/
supporl:/paid), а также учебные курсы, чтобы помочь вам стать тренинг-партнером
Ubuntu (Ubuntu Tгaining Partneг) ( www . ubuntu.com/supporl:/training). Другими сло­
вами, для тех, кто учится работать с Ubuntu, существуют перспективы профессио­
нального роста.

Для ко rо предназна че на кни rа
Эта книга предназначена для всех, кто хочет в качестве системного администрато­
ра или простого пользователя получить доступ к неограниченным возможностям,
предоставляемым Linux. Вы можете быть приверженцем платформы Linux, спе­
циалистом по Linux или просто профессиональным пользователем, который все
чаще отдает себе отчет в том, что Windows вытесняется системами на платформе
Linux.
Основным критерием является то, что вы хотите найти быстрые и эффективные
способы максимально продуктивной работы в Ubuntu и других системах на базе
Deblan. Эти системы могут функционировать на нескольких настольных компью­
терах на работе, в качестве файл-сервера или оринт-сервера в школе, в качестве
веб-сервера дома или использоваться просто для развлечения.
Желательно, чтобы вы уже имели опыт работы с Linux. Однако если вы профее­
сиопальный пользователь с навыками работы в других системах, например Windows,
вам не составит труда освойть использование описываемых в этой книге специфических команд.

Каки е те мы раскрыва ются в издан и и
Эта книга не �вляется пособием для новичков в сфере Linux. Прежде чем серьезно
начать изучение данного руководства, необходимо получить общие представления
о том, что такое Linux, как рабщает командная оболочка (shell), а также что пред­
ставляют собой процессы, файловые системы и сетевые интерфейсы. Впоследствии
эта книга дополнит ваши знания информацией, с помощью которой вы сможете
выполнять следующие действия.

О У станавливать программвое обеспечение - Ubuntu предоставляет возмож­
ность использовать для добавления и удаления программ утилиту GUI, с по­
мощью которой можно получать новое Программное обеспечение. Вы научитесь
с помощью таких инструментов, как a pt - get, искать, скачивать, устанавливать,
обновлять и управлять программным обеспечением из командной строки.
О Использовать командную оболочку - в книге доступно описаны способы и при­
ведены подробные рекомендации по использованию командной оболочки.

·

какие

17

темы раскрываются в издании

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

О Работать с файлами
вы сможете использовать различные типы файлов
в Linux, управлять ими, конвертировать и обеспечивать их защиту.
-

О Администрировать файловую систему вы научитесь управлять правами
доступа, размечать и создавать разделы, а также контролировать состояние
запоминающих устройств (жестких дисков, СD/DVD-приводов, дискет, USВ­
накопителей и т. д.), а затем создавать, размечать и проверять файловые систе­
мы на этих устройствах.
-

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

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

-

О Контролировать сети вы научитесь создавать и управлять проводными и бес­
проводными сетями, а также соединениями с использованием те.7,1ефонной ли­
нии через модем; проверя-rь маршрутизацию, DNS (Domain Name Service) и ин­
формацию о хает-машине, следить за сетевым трафиком.
-

О Получать доступ к сетевым ресурсам прочитав книгу, вы сможете подклю­
чаться к удаленным файловым системам Linux и Windows с помощью FTP, NFS
и административных средств Samba, а также использовать консольные команды
для работы в Интернете.
-

О Осуществлять удаленное администрирование вы сможете получать доступ
и администрировать другие компьютеры, используя удаленный до�туп (ssh,
telnet и т. д.) и удаленный экран, узнаете об интерфейсах удаленного админи­
стрирования, таких как Webmin, SWAT и CUPS.
-

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

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

18

Введение

Будем надеяться, что если мы все сДелали правильно, то для поиска нужных
команд или GUI-приложений эту книгу будет испольэовать удобнее, чем Интернет.
После того как вы освоите большую часть того, что описано в книге, вы получите
в свое распоряжение следующее.

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

О Важную информ8ЦИ10 по Linux в этой книге приводятся ссылки на интернет­
ресурсы, которые помогут вам преусrtеть в изучении Linux вообще и Ubuntu
в частности.
-

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

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

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

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

Как построе на книга
Эта книга не является на 1 00 % ни справочником (в котором элементы, как прави­
ло, перечислены в алфавитном порядке), ни учебным пособием (в котором обычно
приводятся пошаговые рекомендации по выполнению тех или иных задач). Вместо
этого книга разделена по темам, и мы постарались включить в нее столько полез­
ных команд и параметров, сколько было возможно.
В самом начале гл. 1 дается общая информация о том, что представляет собой
Ubuntu и как эта система взаимодействует с другими системами на базе Linux,
такими как, например, дистрибутивы Deblan. Затем в ней описываются некоторые
ресурсы, которые призваны помочь укрепить приобретенные с помощью этой
книги знания (например, МАN-страницы, пояснительные тексты и инструкции).
В гл. 2 осуществлен краткий обзор процесса установки, а затем описаны полезные

Что нужно для использо вания данной книги

19

команды, такие как, например, a pt - get, позволяющие загружать Программное обес­
печение для Ubuntu и управлять им.
В гл. 3-6 описаны команды, которые могут показаться полезными постоянному
пользователю Linux. В гл. 3 рассмотрены способы использования командной обо­
лочки, в гл. 4 - команды, предназначеннЫе для работы с файлами, в гл. 5 - опера­
ции по работе с текстом, а в гл. 6 рассказывается, как работать с изображениями
и музыкой.
Начиная с гл. 7 приводятся разделы, посвященные администрированию систе­
мы. Вопросы по созданию и проверке файловых систем раскрываются в гл. 7, в то
время как команды, используемые для создания резервных копий данных, описы­
ваются в гл. 8. Глава 9 посвящена управлению текущими процессами, а в гл. 1 0
описывается работа приложений, с помощью которых можно управлять основны­
ми компонентами и параметрами, такими как аппаратные модули, использование
процессара и оперативной памяти.
С гл. 1 1 начинается обучение управлению сетевыми ресурсами. В ней расска­
зывается, как установить и использовать проводную и беспроводную сети, а также
модемное подключение. В гл. 1 2 описываются текстовые команды, предназначен­
ные для поиска и просмотра информации в Интернете, передачи файлов и предо­
ставления их для общего пользования, использования служб передачи текстовых
сообщений и электронной почты. Средства осуществления удаленного системного
администрирования описаны в гл. 13.
В гл. 14 речь идет о средствах ограничения доступа в целях обеспечения безопас;­
ности, таких как защитные экраны и ведение журналов. В самом конце книги есть
три приложения, содержащие справочные сведения, касающиеся редактирования
текста, компонентов центрального процессара ( метасимволы и переменные), а так­
же сведения о настройках системы (из файловой системы / p roc).

Что нуж но для использования данной кн и ги
Хоть мы и надеемся, что вам понравится наше красноречие, это не значит, что вы
должны устроиться поудобнее с этой книгой и бокалом вина у камина. Мы наде­
емся, что вы сядете напротив монитора компьютера и попытаетесь подключиться
к сети, отладить файловую систему или добавить пользователя. Вино - по жела­
нию.
Другими словами, предназначение этой книги - быть вашим товарищем во
время изучения операционных систем Ubuntu или DeЬian. Если ни одна из этих
систем еще не установлена у вас на компьютере, обратитесь за необходимой ин­
формацией по их установке к гл. 2 .
Все команды, описанные в этой книге, были протестированы н а Ubuntu на
архитектурах х86 и х86_64. Однако, поскольку многие из этих команд активно
использовались длительное время (некоторые из них уже на 30 лет старше совре­
менных приложений UNIX), большинство из них будет работать на системах
DeЬian именно так, как описано в этой книге, независимо от архитектуры про­
цессора.

20

Введение

Кроме того, многие из описаннЫх в этой книге команд будут точно так же ра­
ботать и на других операционных системах Linux и UNIX. Поскольку данная кни­
га сосредоточена именно на Ubuntu, наиболее заметно отличаться от других опе­
рационных систем Linux будут только описания созданияпакетов щ)ограмм,
установки и использования средств управления GUI.

Услов ные обозна че ния
Чтобы помочь вам почерпнуть как можно больше информации из текста и успевать
отслеживать выполняемые операции, на протяжении всей книги мы использовали
некоторое количество сокращений. В частности, мы создали свой способ написа­
ния команд, который позволил нам включить в эту книгу максимальное количе­
ство командных строк.
В примерах команд данные, выводимые компьютером (указания и сообщения,
выводимые на командную строку), напечатаны обычным шрифтом, данные, вво­
димые в компьютер (текст, набираемый пользователем), напечатаны полужирным
шрифтом, а краткие пояснения (если они есть) - курсивом. Например:
$ l s *jpg
hat . j pg
dog . j pg

Перечисли ть все JРЕG-файлы в данной папке

Данные, выводимые компьютером, для уменьшения объема иногда даются в со­
кращенном виде (или полностью опускаются). Содержащиеся в текстах команд
многоточия ( . . . ) означают, что дополнительные выводимые данные были опущены.
Если команда слишком длинная, то в конце каждой строки ставится обратный слэш,
обозначающий, что ввод данных продолжается до следующей строки, например:
# oggenc NewSong . wa v -о NewSong . ogg \
-а Bernstei n - G Cl assi cal
\
- d 06/15/1972 - t " S i mpl e Song" \
\
- 1 " Bernstei ns Mass "
- с i nfo-" From Kennedy Center"
Подобная запись обозначает одну команду. Для получения всей содержащейся
в приведеином примере информации в виде одной строки просто введите ее, не
используя слэши.
Хотя обычный пользователь в Ubuntu может использовать множество команд,
для выполнения некоторых из них необходимо обладать rооt-привилегиями.
Поскольку Ubuntu устанавливается без пароля root, для выполнения администра­
тивных команд допускается использование команды sudo, не требующей заверше­
ния текущего сеанса пользователя, например:
chri s@host l : / tmp$ sudo useradd -m joe

Для большей ясности и с целью экономии места в качестве маркера начала
строки обычного пользователя в книге используется значок доллара ($):
$ . Обоз начает командную строку обычного поль з ова теля

От издательства

21

Время от времени в книге будет встречаться и символ в виде решетки (#), ука­
зывающий, что команда должна быть выполнена с гооt-привилегиями. Таким об­
разом, если вы увидите символ #, то должны будете либо ввести в начале команд­
ной строки команду sudo, либо получить rооt-привилегии с помощью одного из
способов, описанных в гл. 3.
Замечания и предупреждения выглядят следующим образом:
ПРИМЕЧАНИЕ

-------­

Предуnреждения, за мечания и советы будут оформлены так же, как и эдесь.

ВНИМАНИЕ

-----­

Такая врезка привлекает внимание к главной информации, которая не должна быть nропущена.

Что касается внешнего вида текста, то:

О впервые встречающиеся важные термины и слова в книге выделены курсивом;
О клавнатурные сокращения мы показываем следующим образом: Ctri+A (если
в соответствии с командой нужно будет ввести прописную букву, сочетание
будет выглядеть следующим образом: Ctri+Shift+A);
О имена файлов, названия команд выделены моношири н ны м шрифтом ;
О названия папок, меню, элементов интерфейса, URL-aдpeca выделены специаль­
ным шрифтом для названий;
О наконец, для акцентирования внимания на следующей далее команде исполь­
зуется еще один способ выделения текста. Например, может быть написано
что-то вроде �используйте следующую команду для отображения содержимо­
го файла•. В данном случае выделение используется для того, чтобы дать чи­
тателям быстрые наглядные подсказки. Таким образом, вы сможете быстро
найти нужную команду на странице, если точно знаете, что она находится имен­
но на этой странице.

От

издательства

Ваши замечания, предложения и вопросы отправляйте по адресу электронной поч­
ты gromakovski@minsk.piter.com (издательство �питер• , компьютерная редакция).
Мы будем рады узнать ваше мнение!
На сайте издательства http://www. piter.com вы найдете подробную информацию
о наших книгах.

1

З н а ко м ство
с U bu ntu Li n ux

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

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

О репозитории с программным обеспечением - кроме того, в книге вы найдете
описания методов загрузки и установки программнога обеспечения, специаль­
но разработанного для Ubuntu;
· О онлайн-ресурсы здесь рассказано, где можно найти полезную информацию
по Ubuntu: рассылки по электронной почте, на которые можно подписаться,
I RС-каналы и другие онлайн-ресурсы;
-

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

23

UЬuntu, DeЬian и Linux

возможность максимально быстро научиться использовать богатые возможности
Ubuntu.
Знания, которые вы почерпнете из этой книги, помогут -вам стать более опыт­
ным пользователем операционных систем Ubuntu, Deblan, а также Linux. Если это
кажется вам заманчивым, тогда начнем.

U buntu, Debian

и Linux

Ubuntu - это операционная система на базе Deblan GNU/Linux (www . deblan.org).
Система Deblan была очень популярна в начале 1 990-х годов и, будучи полностью
самодостаточной, считалась лидирующим дистрибутивом Linux с точки зрения
стабильности и безопасности. Deblan также известна верностью прцнципам рас­
пространения бесплатного программнаго обеспечения (www . deblan.org/intro/free) .
Система Ubuntu формировалась именно на ее основе.
Если вы представите себе, что Linux - это что-то вроде торта в кондитерской,
то ядро и файлы операционной системы будут не чем иным, как мягким вязким
тестом, используемым для приrотовления этого торта. Мож�т. это сравнение не
дает полного представления, но зато оно наглядно. В случае с дистрибутивами
Linux все наоборот: с их помощью делают окантовку •торта• сверху и снизу,
раскрашивают его, выкладывают слоями, выравнивают по краям, покрывают гла­
зурью, добавляют ароматические добавки, украшают, ставят свечи, посыпают оре­
хами и присыпкой. Ubuntu, оформленная Canonical Group (www . canonical.com) ,
является глазурью и J(расителем дистрибутива Linux, построенного на самой вер­
шине торта Deblan.
Система Deblan дала начало не только Ubuntu, но и многим другим дистрибу­
тивам Linux (www.deblan.org/misc/children-distros):

О Xubuntu
Xfce;

-

переопальная операционная система на базе Ubuntu, основанная на

О Kubuntu - переанальная операционная система на базе Ubuntu, основанная на
KDE;
О Edubuntu - производпая от Ubuntu операционная система для учебных учре­
ждений;
О Knoppix - Live CD с переанальной операционной системой на базе Deblan,
основанный на KDE;
О Kanotix - Live CD на базе Deblan;
О Damn Small Linux - миниатюрный (50 Мбайт) Live CD на базе Knoppix;
О Mepis - Live CD с переанальной операционной системой на основе Ubuntu
и Deblan.
Xubuntu, Kubuntu и Edubuntu являются, по сути, одинаковыми дистрибутива­
ми Ubuntu на базе Deblan. Единственное их отличие состоит в используемой по
умолчанию среде Рабочего стола и пакетах поставляемого с ними программнога
обеспечения. Например, система Kubuntu укомплектована графической оболочкой
KDE и менеджером программных пакетов Adept, которыми не укомплектована

24

Гла ва 1 . Знакомство с Ubuntu Linux

Ubuntu. Edubuntu же предназначена для работы с учебными приложениями, мно­
гие из которых не установлены по умолчанию на другие дистрибутивы Ubuntu.
Поскольку Deblan и Ubuntu являются открытыми операционными системами,
многие составные части которых созданы проектом GNU на основе общедоступной
лицензии ( General Public Licerise, www. gnu.org/copyleft/gpl .html), любой желающий
может получить исходный текст или любую часть системы GPL и изменять, раз­
бирать по частям, достраивать, расширять, внедрять, переделывать и впоследствии
бесплатно распространять эти изменения или модификации. Единственным усло­
вием является то, что вы должны соблюдать требования, предписываемые GPL,
согласно которым любые изменения, произведенные в существующей продукции
GPL, должны быть доступны другим для равного использования (для ознакомле­
ния с другими лицензиями, признаваемыми Deblan, посетите сайт www .deblan.org/
social_contract).
Таким образом, вы получаете не просто систему с .бесплатной онлайн-базой
технической поддержки, доступной во всем мире, но и постоянно развивающийся
продукт, силы в который вкладывают люди, которым действительно нравится то,
что они делают. Многие другие дистрибутивы Linux имеют те же преимущества,
однако, если говорить о популярности, Ubuntu вырвалась вперед.
ПРИМЕЧАНИЕ

-------­

Никогда не эадумывались, откуда у UЬuntu (Edgy Eft) и Deblan (Woody)' такие странные названия? Ответ
вы можете найти на странице https://wiki.ubuntu.com/DevelopmentCodeNames или www. deblan.org/
doe/manuals/project-history/ch-releases.en.html.

Ubuntu в сравнении с д ругими
д и сr рибут ивами Linux
Если вы откроете командную строку Ubuntu, Linux или Fedora от Red Hat Enterprise,
то увидите, что между ними очень мало различий. У обеих систем одинаковые
папки и приложения, по функциональности они абсолютно идентичны. Так что же
тогда отличает Ubuntu от других дистрибутивов Linux? Единственное отличие
состоит в программе установки.
Весь запуск и установка Ubuntu сведены к нескольким щелчкам кнопкой мыши,
поскольку многие этапы установки были автоматизированы на основании требо­
ваний и желаний среднестатистического пользователя. Система Red Hat же, на­
оборот, предоставляет пользователю массу настроек установки: например, можно
выбирать между рабочей станцией и сервером, отдельно выбирать устанавливае­
мые пакеты и настраивать параметры администрирования.
Другим важным критерием отличия дистрибутивов Linux друг от друга явля­
ются приложения по управлению программным обеспечением. Цель приложений
и систем по управлению программными пакетами является общей для Deblan
и других дистрибутивов Linux, однако существенно отличаются действия с ними
и их реализация. Ubuntu и большинство других дистрибутивов на базе Deblan для
управления программным обеспечением используют приложения группы АРТ
(Advanced Package Tool), которые могут быть использованы для установки, уда-

Ubuntu, Deblan и Unux

25

ления, поиска и обновления пакетов Deblan (DEB). В Red Hat для выполнения тех
же задач с программными пакетами RPM используется система RPM.
Другим существенным отличием является внешний вид систем: их �;с�ид при
загрузке, экран входа в систему, графическая оболочка, стоящая по умолчанию,
•обои• для Рабочего стола, набор значков и т. д. Есть довольно много различий по
этим внешним признакам. Хотя и Red Hat, и Ubuntu в каче�тве администратора
многооконного режима используют среду Рабочего стола GNO ME, приложения
GUI для администрирования системы и их расположение в раскрывающихся меню
полностью различаются.
К тому же экран входа в систему Ubuntu и предлагаемая по умолчанию тема,
оформлеJ{ная в осенних тонах, довольно сильно отличают этот дистрибутив от
других. Если вы раскроете меню на Рабочем столе Ubuntu, то увидите не длинный
список приложений и служб, а простой и изящный набор функЦиональных про­
грамм из всех доступных на Рабочем столе Linux. Это сделано, чтобы избавить
пользователя от ощущения загромождения, и этот подход хорошо характеризует
Ubuntu.
Другой уНикальной характеристикой Ubuntu является блокирование учетной за­
писи суперпользователя, что требует использования команды sudo (www. gratisofl:.us/
sudo/intro.html), позволяющей выполнять команды на правах суперпользователя
с целью осуществления задач по системному администрированию (в гл. 3 вы най­
дете подробное описание команд sudo ). Вход в систему Linux на правах ее админи­
стратора дает возможность получать неограниченный доступ практически ко всем
компонентам системы - имея права суперпользователя, было бы слишком просто
удалить целую файловую систему, поэтому в Ubuntu использование этой учетной
записи ограничено и возможно только для разумных целей. В большинстве ди­
стрибутивов Linux от пользователя требуется войти в систему под собствен н ым
именем или использовать команду su, чтобы иметь возможность выполнять адми­
нистративные задачи, в то время как пользователь Ubuntu осуществляет это по­
средством команды sudo, используя свой собственный параль входа в систему, а не
отдельный, предназначенный для суперпользователя.
Ubuntu обладает уникальными свойствами, хотя и имеет свои недостатки и пре­
имущества. Ubuntu содержит подходящие средства, позволяющие индивидуально
настраивать систему, модифицировать ее, экспериментировать и вдаваться во все
сложности системы сколько душе угодно, если это на самом деле необходимо.
Иными словами, основная идея состоит в том, что это должна быть простая в обра­
щении, безопасная система с попятным и кратким набором прикладных программ,
которая не должна ни ограничивать, ни быть перегруженной. Все это делает Ubuntu
весьма гибкой системой, работу с которой можно начать без глубокого ее изучения
и очень скоро стать специалистом по ее использованию.

Сс ыпки на ресу рс ы Ubuntu
Сообщество Ubuntu обладает обширным комплексом знаний, которые доступны
в форме онлайн-ресурсов. Ниже приведены ссылки на некоторые наиболее по­
пулярные и полезные сайты.

26

Глава 1. Знакомство с Ubuntu Linux

О http://ubuntuforums.org на этом форуме со встроенными параметрами поиска
и модерируемой социальной сетью обитает разноплановое, талантливое и мо­
дерируемое сообщество пользователей Ubuntu, а также служба поддержки.
Здесь люди делятся своими успехами и неудачами, предоставляют друг другу
помощь и поддержку. Если у вас возникнут какие-либо трудности с освоением
Ubuntu, то вполне возможно, что кто-то на этом форуме уже сталкивался с теми
же проблемами и нашел их решение.
-

О http://www. ubuntu.com/support этот сайт предоставляет платные услуги компа­
нии Canonical Ltd, которая и создала Ubuntu. Если вы не хотите тратить время
на поиск информации на форумах или ожидать ответов на свои вопросы, то
можете обратиться в данную компанию по телефону, задать вопрос по электрон­
ной почте или на сайте компании. Стоимость этих услуг составляет $20 в месяц.
На этом сайте также доступны тренинги, предназначенные для компаний и кор­
поративных пользователей.
-

О https://help.ubuntu .com - этот сайт содержит самую свежую официальную он­
лайн-документацию по каждой версии Ubuntu.
О http ://screencasts. ubuntu .com
здесь можно найти обучающие видеоролики,
призванные помочь вам научиться выполнять различные команды в Ubuntu:
начиная с установки принтера и заканчивая настройкой совместного доступа
к файлам через Samba и установкой обновлений для поддержания системы
в надлежащей форме. На этом сайте пользователям Ubuntu также предлагается
сотрудничество с командой Ubuntu Screencasts Launchpad (https://launchpad.net/
-

"'ubuntu-screencasts).

О https://lists.ubuntu.com/mailman/listinfo/ubuntu-users здесь вы можете подписаться
на рассылки по электронной почте для пользователей Ubuntu и обсуждать и ре­
шать любые проблемы, начиная от касающихся вопросов управления базами дан­
ных mysql и заканчивая установкой сложных сетевых устройств. С архивом обсу­
ждений можно ознакомиться по адресу https://lists.ubuntu.com/arthlves/ubuntu-users.
-

О https://wiki .ubuntu .com/IRCResourcePage - если вам нужна поддержка I RС-чата,
то можете посетить сайт компании Ubuntu I RC, на котором содержатся руко­
водства, программы-клиенты и чат-серверы. Все они являются бесплатными
и доступными в любое время источниками информации. Если вы еще не при­
нимали участия в I RС-чатах, советуем посетить страницу, посвященную пра­
вилам поведения в них ( www . ubuntullnux.org/communlty/conduct/).
Если вы планируете приобрести аппаратные средства для использования с Ubuntu
или другой системой на базе Linux, то следующие сайты могут помочь определить­
ся с покупкой.

О http://www. linux-usb.org целью данного сайта является поддержание практиче­
ских знаний об USВ-устройствах, совместимых с Linux. Здесь предусмотрена
поисковая система, куда вы можете ввести название или модель интересующе­
го вас устройства и сразу же получить отчет о его .совместимости с Linux.
-

О http ://www. linuxfoundation.org/en/OpenPrinting - система печати CUPS ( http://
cups.org) является стандартной и используется сегодня на большинстве систем

27

Ubuntu, Deblan и Linux

на базе Linux, однако если модель вашего принтера не отображается при попыт­
ке добавления его в систему, то попробуйте скачать с данного сайта обновленный
РРD-файл и добавить его в свою систему CUPS. На сайте www. linuxfoundation.org/
en/OpenPrinting/Dataьase/SuggestedPrinters можно также ознакомиться со списком
всех производителей поддерживцемых устройств.

О http://www . sane-project.org этот сайт посвящен решению вопросов сканирова­
ния докумеt�тов в Linux. Если вы планируете приобретение сканера или много­
функционального устройства, посетите этот сайт и узнайте, какие производи­
тели уделяют внимание вопросу совместимости с Linux.
-

О http://tldp.org - данный сайт принадлежит проекту, занимающемуся сбором
информации о Linux. Здесь представлен самый больш9й архив руководств,
статей, F AQ, отвечающих на все вопросы, начиная с того, как с помощью Linux
сварить чашку кофе, и заканчивая тем, как настроить QoS (quality of service качество обслуживания) и контролировать трафик.
Конечно, это не полный список доступных ресурсов, но именно эти сайты мы
рекомендуем посетить в первую ечередь. Информацию о совместимости с Linux
устройства, которое вы хотите' приобрести, можете также получить непосредствен­
но на сайте производителя. Если производители позиционируют свою продукцию
как совместимую с Linux, то у них на сайте должны быть доступные для скачивания
драйверы или инструкции. Не забывайте также об огромном количестве справоч­
ной информации по Linux, которую вы можете найти с помощью поисковой сис­
темы.
Наконец, попытайтесь найти общество пользователей Linux (LUG - Linux
User's Group) в стране своего проживания. LUG - это локальное сообщество лю­
дей, увлекающихся Linux и его усовершенствованием. Вы найдете разных людей
с различным уровнем'знаний: от системных администраторов, разработчиков и ру­
ководителей компаний до обычных пользователей Linux. Члены LU G регулярно
встречаются, чтобы совместно обсудить проблемы и продемонстрировать свои
пути усовершенствования Linux и связанные с этим технологии.
Некоторые L U G финансируют события местного масштаба, как, например,
инсталл-фесты (http://en.wikipedia.org/wiki/Install_fest) или другие мероприятия по
продвижению Linux. Скорее всего, если вы зададите вопрос на встрече членов
LUG, кто-нибудь из них (и наверняка не единственный) будет знать ответ. Если
вы решите присоединиться к местному LUG, то найти его сможете с помощью
поиска в Интернете. У большинства LU G есть сайты или интернет-рассылки, ко­
торые без труда могут быть найдены в Сети.

Программное обес печение дпя Ubuntu
Большинство программ для Ubuntu можно найти на сайте, содержащем пакеты
программнога обеспечения (http://packages.ubuntu .com). Наиболее распространен­
ным способом установки программ на Ubuntu является использование стандарт­
ных приложений - Synaptic, АРТ и Update Manager (в гл. 2 подробно описан про­
цесс поиска и установки программнога обеспечения).

28

Глава 1. Знакомство с Ubuntu Unux

Возможно, когда-нибудь вы захотите поэкспериментировать и найти програм­
мы, не входящие в состав стандартных пакетов. Большинство таких пакетов будет
содержать ключи MD5s um или GPG, чтобы вы могли определить, что они являются
подлинными ( www. deblan-administration.org/articles/375). При этом вы также можете
столкнуться с вопросами совместимости с нестандартным программным обеспе­
чением, что может усложнить процесс выполнения обновлений. При работе с не­
стандартным программным обеспечением ключ необходим, чтобы можно было
проверить программы и убедиться, что они не наносят вред системе. Ниже приве­
ден список сайтов, на которых можно найти разнообразные программы.
ВНИМАНИЕ

--------­

Следует внимательно относиться к воnросу совместного исnользования оригинального nрограмм­
нога обесnечения Ubuntu и nрограмм иэ других источников и nроверять nодлинность за гружаемого
nрограммнога обесnечения.

О http://www. happypenguin.org содержит архив игр для Linux. Здесь размещена
нескончаемая коллекция игр для Linux: от экспериментальных демо-версий до
коммерческих игр от компаний-разработчиков, предоставляющих исходные
коды или бинарные файлы, чтобы их игры могли быть совместимы с Linux
(спасибо вам, коммерческие компании-разработчики игр!).
-

О http://www.freshmeat.net этот сайт по праву гордится самой большой коллек­
цией программ, тем, заставок, а также программнога обеспечения для Palm-OS,
работающего в UNIX и UNIХ-подобных системах. Для каждой программы
'
здесь создан раздел, предназначенный для обсуждения, что облегчает сам про­
цесс обсуждения и дает возможность обратной связи. Эти ребята активно рабо­
тают уже очень долгое время.
-

О http://sourceforge.net - когда разработчики открытых кодов собираются вместе
для запуска нового проекта, многие из них обращаются к ресурсу SourceForge,
чтобы разместить здесь свой проект. SourceForge предоставляет как интернет­
пространство, так и приложения, необходимые для управления проектами,
ресурсами, коммуникациями и кодом. Если вы ищете программное обеспече­
ние, обязательно загляните на этот сайт.
О http://www. linux.org/apps - данный сайт активно работает с 1994 года. Его появ­
ление было связано с потребностью размещения информации о Linux. Этот сайт
является постоянно пополняющимся источником информации относительно
всего, что касается Linux. Раздел, посвященный приложениям, содержит ссыл­
ки на большое количество разнообразного программнога обеспечения для опе­
рационных систем Linux.

Описани е команд для Linux
Сегодня многие важные задачи в Linux можно выполнять как через графический
интерфейс, так и с помощью команд, однако командная строка всегда была и оста­
ется тем интерфейсом, который выбирают опытные пользователи Linux.

Описание команд для Unux

29

Графические интерфейсы пользователя ( GU I) подразумевают под собой ин­
туитивность. Имея некоторый опыт пользования компьютером, вы, вероятно, пой­
мете, как, к примеру, добавить пользователя, изменить время и дату и настроить
звуковую карту через GUI. В таких случаях мы просто будем называть, каким
графическим приложеннем необходимо воспользоваться в ходе вашей работы.
Однако в следующих случаях вам, вероятно, придется отдать предnочтение ко­
мандной строке.

О Почти всегда что-нибудь работает неправильно - задать вопрос на онлайн­
форуме или попросить помощи - все это осуществляется через командную
строку. К тому же запросы, выполняемые через командную строку, являются
значительно более продуктивными, если речь идет о пробл.еме с настройкой
какого-нибудь устройства или получения доступа к файлам и справочникам.
О Удаленное системное администрирование - если вы администрируете удален­
ный сервер, вполне возможно, что графические приложения вам недоступны.
Но даже если приложения удаленного доступа к GUI ( Х-приложения или
VNC) и приложения, доступные через Сеть, будут вам доступны, они, как пра­
вило, работают значительно медленнее, чем командная строка.
О Элементы, не поддерживаемые GUI, - административные средства GUI спо­
собны предложить лишь самые общие путИ выполнения задачи. Для выполне­
ния более сложных операций часто требуются использовать параметр,ы, доступ­
ные только при использовании командной строки.
О GUI вышел из строя или не установлен - если недоступна ни одна графиче­
ская оболочка или если установленный GUI работает неверно, вам придется
работать с командной строкой. Некорректная работа GUI может быть вызвана
рядом причин: например, если вы используете бинарный драйвер NVIDIA или
АTI от стороннего разработчика, а обновление ядра делает драйвер несовмес­
тимым с системой.
Можно лишь добавить, что для того, чтобы раскрыть все возможности Linux,
необходимо уметь пользоваться командной оболочкой. Для контроля и управления
операционной системой Linux существуют тысячи команд, но, независимо от того,
кем вы являетесь - опытным пользователем Linux или новичком, - одна пробле­
ма выглядит угрожающе: как вспомнить самые важные команды и параметры,
когда командная оболочка выдает лишь следующее:
$
Данная книга представляет собой не просто очередной сборник команд или
изложение MAN -справочника. Здесь команды описываются таким образом, чтобы
вы могли их попутно использовать. Другими словами, вместо того, чтобы перечис­
лять команды в алфавитном порядке, мы поместили описания команд, предназна­
ченных для работы с файловыми системами, подключения к сетям и управления
процессами, в отдельные главы книги. Таким образом, если вам понадобится най­
ти какую-либо команду, то необязательно будет искать ее лишь по названию.
Точно так же мы не будем перечислять и все параметры, доступные для каж­
дой команды, - вместо этого мы наглядн о покажем, как работают самые важные

30

Глава 1. Знакомство с Ubuntu Unux

параметры той или иной команды, а затем продемонстрируем быстрые способы
поиска дополнительных параметров на МАN-страницах, в информационной базе
info или справке.

Поиск команд
Некоторые команды, описываемые в этой книге, могут не быть установлены по
умолчанию в вашем дистрибутиве Ubuntu, но они наверняка будут доступны через
АРТ или другие источники. Если вы попытаетесь выполнить команду, которую
командная оболочка не сможет найти, то увидите сообщение об ошибке примерно
следующего содержания:
$ s i l l yco11111a nd
- bash : s i l l ycomma nd : command not found
Может быть несколько причин вывода на экран такого сообщения:

О была допущена опечатка при наборе текста команды;
О команда не находится ни в одном из каталогов, путь к которым указан команд­
ной оболочке;
О команда может быть доступна только для суперпользователя (с помощью ис­
пользования команды sudo или другого подобного метода);
О команда или программный пакет Ubuntu, содержащий эту команду, просто не
установлены.
В табл. 1 . 1 приведены команды, доступные для использования во всех дистри­
бутивах Linux, чтобы проверить, какие из введенных вами команд присутствуют
в системе. В табл. 1 .2 приведены те же команды, но применимые только к системам
Ubuntu и Deblan.
Если вы обнаружите команду на выходе поиска, написанную через a pt - cache,
или вам покажется, что нужная команда не установлена, то можете установить ее
через Интернет, выполнив следующую команду:
$ sudo apt · get i nstal l

н а з в а н ие_п акета

Здесь н а з в а н ие_nа кета - название того программнога пакета, который необхо­
димо установить.
Табпица 1.1. Типичные команды Unux для поиска уже установленных команд
Команда и пример вывода

Описание

$ echo $РАТН
/usr/local/sbln :/usr/local/bln:/usr/sbln :/usr/bln:/
sbln :/Ьin:/usr/games

nоказывает текущий путь

$ which mount
/bln/mount

Отображает путь первого использования
команды mount

$ find /usr -name umount
/usr/lib/kliЬc/bln/umount

Ищет в файловой системе /usr файл или
каталог с названием umount

31

Справочная информация по Ubuпtu

Команда и пример вывода

Описание

Отображает адрес пер1Юго бинарного
$ whereis mouпt
mouпt: /blп/mouпt /usr/share/maп/maп8/mouпt.8.gz файла и МАN-страницы для команды mount
$ locate mouпt
/usr/Ьiп/fdmouпtd

Использует команду locate для поиска
списка папок (настраиваемых) для команды
mouпt

umouпt (8) - uпmouпt file systems

Ищет в МАN-справочнике описание копий
ключевого слова; в данном случае это
umouпt

$ mап 8 umouпt
Reformattiпg umouпt(8), please wait. . .

Ищет umouпt в разделе 8 МАN-справочника
(для выхода нажмите клавишу Q)

$ apropos umouпt

Таблица 1.2. Команды Ubuпtu/Deblaп для поиска уже установленны·х команд
Команда и пример вывода

Описание

$ apt-cache search umouпt
gпome-mouпt - wrapper for (uп)mouпtiпg апd
ejectiпg storage devices

Ищет кэшираванные пакеты, которые
могут содержать команду или описание
для umouпt

$ dpkg-query -s umouпt

Ищет в установленных пакетах файл
с именем umouпt, праверяя содержимое
па кетов

iпitscripts: /etc/iпit.d/umouпtпfs.sh
$ dpkg -L iпitscripts

Отображает список всех файлов,
содержащихся в пакете iпitscripts

/Ьiп/mouпtpoiпt
$ sudo apt-get update
Password :
Get: l http://securlty.ubuпtu.com feisty-security
Release.gpg [ 19 1 В]

Обновляет список кэшираванных пакетов

С п равочная ин формация по U bu пtu
Оригинальная документация по Linux и UNIX представлена в виде справочных
страниц, которые обычно называются МАN-страницам.и. Документация, содержа­
щая несколько более сложную информацию, появилась позже в виде информаци­
онной базы GNU info. Кроме того, для каждой конкретной команды почти всегда
доступна справка (help messages - справочные сообщения).
Эта справочная информация ориентирована на различные компоненты. Для ка­
ждой команды, установленной на системе, существуют отдельные МАN-страницы.
В справочнике также присутствует документация по устройствам, форматам

32

Глава 1 . Знакомство с Ubuntu Unux

файлов,- системе, а также информация о многих других компонентах Linux и раз­
работчике. Документация, более подробно описывающая целые пакеты, находится
в подпапках папки / u s r / sha re/doc.
Ubuntu запаковывает большинство документации, поэтому, перед тем как ее
прочесть, ее приходится распаковать. Для этого может использоваться программа
gzip, которая не распаковывает файлы на жесткий диск, а лишь отображает их со­
держимое на экране монитора. Команда для распаковки документации, описываю­
щей команду mount, выглядит следующим образом:
$ gz; p - dc /usr/ share/doc/mount/READНE . mount . gz
mount/ umount for L i nux 0 . 97 . 3 and 1 ater

МАN-справочник, информационная база info и папки /doc доступны на боль­
шинстве систем Linux.

Работа со справкой
Почти для всех команд в Linux доступно в случае необходимости что-то вроде
краткого руководства по их применению. Зачастую, чтобы получить эту информа­
цию, достаточно лишь ввести в команду аргумент - h или - - he 1 р. Следующая коман­
да позволяет получить руководство по применению команды 1 s:
$ l s · - hel p
Usage : 1 s [OPTION] . . . [ F I LE ] . .
Li st i nforma t i on a bout the F I LEs ( the current d i rectory Ьу defau1 t ) .
.

Если информация, выводимая с помощью параметра - - he 1 р, не помещается на
экране, вы можете-воспользоваться командой постраничного вывода для ограни­
чения количества выводимой информации:
$ l s · · he1 p 1 more
ПРИМЕЧАНИЕ

-------­

Команда more является наиболее расnространенной командой nостраничного вывода, которую мож­
но встретить на любой исnользуемой сейчас системе UNIX. В системах Unux чаще исnользуется
команда less, которая, несмотря на странное название (доел. «меньше»}, по иронии является более
функциональной, чем more. Она позволяет пролистывать выводимые данные как вверх, так и вниз,
использовать клавиши управления курсором для прокрутки, перемещаться по тексту и осуществл ять
поиск в нем с помощью тех же клавищ, что и в редакторе vi.

В предыдущих примерах было показано, как вывести справку команды 1 s на
экран, однако, используя команду c a rd, выводящую справку на печать через уста­
новленный по умолчанию принтер, вы можете также форматировать получен­
ные справочные данные. Кроме того, эти данные могут быть сохранены в виде
Postscript-фaйлa, который впоследствии можно открыть любой программой для
просмотра файлов или с помощью программы ps2pdf конвертировать в РDF­
файл.

Справочная информация по Ubuпtu

33

М А N - сrраницы
В табл. 1 . 1 был кратко изложен процесс использования команды apropos для поис­
ка соответствующего раздела МАN-справочника, касающегося команды umount.
Кроме того, команда apropos может использоваться для поиска нужной страницы
справочника по ключевому слову или нескольким буквам. На выходе команды
будут показаны МАN-страницы, содержащие введенное слово.
$ apropos crontab
/etc/anacrontab ( 5 ) [ a nacrontab] - confi gurat i on fi l e for anacron
- confi gurat i on fi l e for anacron
anacrontab ( 5 )
- ma i nta i n c rontab fi l es for i nd i v i dua l users ( VЗ )
crontab ( 1 )
- taЫ es for dri v i ng c ron
c rontab ( 5 )
В данном случае на выходе команды a p ropos показаны разделы и названия
МАN-справочников, в которых было найдено слово c rontab, при этом разделы
МАN-справочников сгруппированы по темам. МАN-страницы раздела 1 относятся
к теме •Выполняемые программы или команды для командной оболочки•, разде­
ла 5 к теме •Форматы файлов и условные обозначения•. Разделы МАN-спра­
вочника одинаковы для всех систем Linux, но могут немного отличаться на других
UNIХ-подобных системах. Выполнить запрос на поиск ma n в справочнике, чтобы
определить, какие их разделы присутствуют на вашей системе, можно с помощью
следующей команды:
-

$ man man
Reformatt i ng ma n ( l ) . pl ease wa i t . . .
В табл. 1 .3 приведены номера разделов справочника и их названия.
Та&nица 1.3. Разделы МАN-страниц
Номер Н uuние puдena
1

Выполняемые программы или команды для командной оболочки

2

Обращение к операционной системе (функции, предоставляемые ядром)

3

Обращение к библиотеке (внутренние функции программных библиотек)

4

Специальные файлы (обычно можно найти в /dev)

5

Форматы файлов и условные обозначения типа /et.c/passwd

б

Игры

7

Прочее (включая макрапакеты и условные обозначения), например man(7), groff(7)

8

Команды по администрированию системы (обычно только для root)

9

Программы ядра [нетипичные]

Итак, мы видим, что введенное слово c ront a b встречается в разделе 1 ( • Вы­
полняемые программы или команды для командного процессора• ), а также в раз­
деле 5 ( •Форматы файлов и условные обозначения• ). Вводя номера разделов

34

Глава 1. Знакомство с Ubuntu Unux

в качестве аргумента команды ma n, можно просматривать данные разделы МАN­
справочника.
$ man 5 crontab
Reformatt i ng c ronta b ( 5 ) . pl ease wa i t
CRONTAB ( 5 )
CRONTAB ( S )
NАМЕ
c rontab - taЫ es for d r i v i ng c ron
DESCR I PТ I ON
А crontab fi l e conta i ns i nst ruct i ons t o the cron ( 8 ) daemon o f the
general form : " run thi s comma nd at thi s t i me on thi s date " .
.

.

.

Если опустить номер, будет отображена МАN-страница первого найденного
командой ma n раздела. В следующем примере команда ma n переходит в раздел 1
справочника, в котором упоминается c rontab.
$ man crontab
Reformatt i ng c ronta b ( l ) . pl ease wa i t
CRONTAB ( l )
CRONTAB ( l )
NАМЕ
c rontab - ma i nta i n c rontab fi l es for i nd i v i dua l users ( VЗ )
.

.

.

Помимо номеров разделов, для выполнения других задач в команду man можно
добавлять еще некоторые аргументы, примеры использования которых приведены
в табл. 1 .4.
Табпица 1.4. Параметры команды man
Параметр

Оnисание

man -а crontab

Последовательно отображает все разделы сnравочника man, в которых
уnоминается aontab

man 5 crontab

Отображает части раздела 5 сnравочника man, в которых уnоминается
crontab

man crontab -Р more

Исnользует nораметр more для nостраничного nросмотра часте й
сnравочника man, содержащих crontab

man -f crontab

Эквивалент команды whatis

man -k crontab

Эквивалент команды apropos

Команда what i s - это еще одна утилита поиска в ma n. Ее отличие от команды
a propos состоит в том, что она отображает лишь описание страницы МАN-справоч­
ника, содержащей указанное ключевое слово. Выполнение команды apropos для
поиска команды route выводит результат в виде трех страниц справочника, в кото­
рых было обнаружено слово route:
$ apropos route
N ETL I NK_ROUTE ( 7 )
route ( 8 )
tracerouteб ( 8 )

- L i nux I Pv4 rout i ng socket
- s how 1 ma n i pul ate the IP rout i ng tаЫ е
- traces path to а network host

35

Резюме

Если же для поиска информации о команде route запустить команду what i s, на
экран будет выведена документация только из раздела 8:
$ what; s route
route ( 8 )
show 1 ma n i pul ate the I P rout i ng tаЫ е
-

До кументы info
Для некоторых команд, форматов файлов, устройств и других компонентов Linux
разработчики привели более подробное описание, включив эту информацию в базу
данных info. Это описание выполнено в виде набора ссылок на справочные онлайн­
ресурсы. Войти в базу данных info можно, просто выполнив команду i n fo или от­
дельно открыв саму утилиту (для выхода из утилиты info используйте клави­
шу q).
$ ; nfo l s

Приведеиная выше команда выводит информацию о команде 1 s . Перемещаться
по программе info можно, используя клавиши t, J.. , � и --+, а также Page Up и Page
Down. В табл. 1 .5 приведены сочетания клавиш, предназначенные для навигации
в утилите info.
Среди пакетов программ, особенно подробное описание которых содержится
в базе данных info, можно назвать gimp, festival, libc, automake, zsh, sed, tar, bash.
Файлы, используемые info, находятся в каталоге / u s r / s h a re/ i nfo.
Та611 ица 1.5. Навигация в программе iпfo
Кпавиwи

дeiic:ntиe

?

Отобразить основные команды, используемые в утилите iпfo

Shifl:+L

Возвратить к предыдущему просмотренному элементу

N, Р, U

Перейти к следующему, предыдущему элементу или вверх соответственно

Eпter

Перейти по гиперссылке, находящейся под курсором

Shifl:+R

Перейти по перекрестным ссылкам

Q или Shifl:+Q

завершить работу iпfo и выйти

ИЗ

приложения

Рез ю м е
В одной короткой главе мы описали некоторые сходства и различия между Ubuntu
и другими дистрибутивами Linux и UNIХ-подобными системами. Вы узнали про
некоторые онлайн-ресурсы, касающиеся Linux вообще и Ubuntu в частности.
Вы также узнали, где можно найти программпае обеспечение для Linux и, в част­
ности, для Ubuntu. Используя Deblan Advanced Package Tool (АРТ) , вы устано­
вили некоторые пакеты программ и увидели, где в системе можно найти нужные
команды или страницы МАN-справочника. Вы также смогли поработать со
стандартными потоками ввода и вывода stdin и stdout, перенаправляя вывод

36

Гла ва 1 . Знакомстао с Ubuntu Unux

команды (stdout) во временные файлы, а входящие потоки (stdin) - в другие ко­
манды.
Конечно, вы можете, если хотите, прочитать эту книгу от корки до корки, но
она была написана в первую очередь с целью создать справочник, содержащий
сотни команд для Ubuntu и Deblan Linux, которые наиболее полезны продвину­
тым пользователям и системным администраторам. Поэтому, поскольку инфор­
мация в книге организована по темам, а не' в алфавитном порядке, нет необходи­
мости заранее знать команду, чтобы найти ее в книге и выполнить необ ходимую
операцию с ней.
Большинство описанных в книге команд с одинаковым успехом работают во
всех операционных системах на базе Linux, а многие также совместимы с система­
ми UNIX прежних версий.

2

Уста н о в ка U bu ntu
и п ро г ра м м н о го
о б есп еч е н ия

АРТ (Advanced Package Tool) и dpkg ( Deblan package) являются провереиными
временем приложениями, используемыми по умолчанию для установки программ­
ного обеспечения и последующего управления им. Это стандартные утилиты
по управлению пакетами программ в Ubuntu и других системах, основанных на
Deblan, которые могут работать и в графическом режиме через самые простые G UI.
Эти программы работают с DЕВ-файлами из интернет-репозиториев или DЕВ­
файлами, хранящимися на жестком диске.
Эта глава освещает наиболее важные вещи, которые вам необходимо знать,
чтобы установить Ubuntu. В ней также есть информация, касающаяся интернет­
репозиториев Ubuntu. Ниже приведены подробные примеры практического ис­
пользования АРТ и dpkg в виде командных строк.

риобрете ни е и установка U buntu
Ubuntu и ее сестры Kubuntu, Xubuntu и Edubuntu оформлены таким образом, что­
бы пользователю было максимально просто в них освоиться и начать работать. Эти
дистрибутивы направлены на то, чтобы предотвратить появление пробелов в зна­
ниях в ходе изучения новой операционной системы.
Программа-установщик Ubuntu ( Ublquity), которая сводит процесс установки
к десяти щелчкам кнопкой мыши, является своеобразным введением в простой
мир операционной системы Ubuntu. Компания Canonical Ltd, спонсирующая
Ubuntu, облегчила даже сам процесс получения установочного CD, который мож­
но бесплатно заказать по почте (не уплачивая даже налоги) (https://shipit.ubuntu.com/
login). Если же вы являетесь обладателем высокоскоростного доступа в Интернет,
то можете скачать с любого из многочисленных сайтов один из множества образов
ISO (www.ubuntu.com/getubuntu/downloadmirrors). Список сайтов очень велик, что

38

Глава 2. Установка Ubuntu и nрограммнога обесnечения

обусловлено желанием предоставить людям необходимое количество серверов,
с которых они могли бы скачивать систему. Если один сайт недоступен или не
найден, попробуйте другой.
Сайты, с которых доступно скачиванне Ubuntu, могут быть несколько непо­
нятны, поэтому существует также расширенная страница загрузки (www. ubuntu.
com/getubuntu/download) , которая призвана помочь прояснять некоторые вещи. На
момент написания книги последней предлагаемой версией Ubuntu являлась
Ubuntu 7.04 ( Feisty Fawn), а к октябрю 2007 года ожидалась Ubuntu 7. 1 0, поэто­
му, возможно, вам уже будет доступна более новая версия. Расширенная страни­
ца загрузки предоставляет на сегодняшний день установочные пакеты, в которых
есть возможность выбора между установкой системы на пер�ональный компью­
тер и сервер. Вариант установки на сервер предназначен для людей, которым не
нужен весь предлагаемый комплект приложений для переопального компью­
тера.

О Ubuntu 7 .04 - наиболее стабильная на сегодняшний день версия Ubuntu.
Именно ее выбирают чаще всего.
О Ubuntu 6.06 LTS - сопровождается длительной технической поддержкой (The
Long Term Support), предоставляемой тем, кто оплатил трехлетнюю (для пер­
еопальных компьютеров) или пятилетнюю (для серверов) поддержку.
Ниже описаны другие варианты системы, которые доступны на расширенной
странице загрузки.

О Standard personal computer (Стандартный переопальный компьютер) - этот па­
раметр является стандартным для большинства пользователей. 64-битные про­
цессары AMD и Intel длянастольных компьютеров и ноутбуков будут работать
в случае, если отсутствуют специальные требования для оперативной памяти
или приложений.
О 64-Ьit AMD and Intel computers ( Компьютеры на базе 64-битных процессорав AMD
и Intel) - этот параметр следует выбрать в случае, если при работе с приложе­
ниями на компьютере необходимы большие объемы оперативной памяти или
в особенности 64-битная платформа.
О Sun UltraSPARC-based - этот вариант Ubuntu предназначен для компьютеров на
платформе Sun Micro-systems UltraSP ARC RISC и является прекрасной аль­
тернативой Sun Solaris (отлично работает на Ultra 60).
При выборе параметра Alternate Desktop CD (Альтернативный компакт-диск для
настольных компьютеров) вы получите очень полезный набор утилит, например
Logical Volume Management ( LVM) (эта программа подробно описана в гл. 7). Если
вам нужна LVM, то установите соответствующий флажок и лишь затем нажмите
кнопку Download (Загрузить).
После того как загрузка будет завершена, вы сможете просмотреть указанный
выше список сайтов и загрузить файл MD5SUM для скачиваемой версии Ubuntu
(https://help.ubuntu.com/community/HowToMDSSUM). Он может помочь вам проверить
подлинность образа ISO. Для большинства программнога обеспечения с открытым
исходным кодом также доступна цифровая подпись, и мы рекомендуем проверить
ее перед установкой или записью образа на CD или DVD.

39

Приобретение и установка Ubuntu

ПРИМЕЧАНИЕ --------�---­
Если вы хотите обесnечить большую надежность загружаемых файлов, чем nри исnользовании
ключей MDS, nоnробуйте восnользоваться SecureApt. Для nолучения более nодробной информации
об исnользовании АРТ цифровой идентификации и шифрования nосетите раздел SecureApt сnра­
вочного сайта Ubuntu (https://help.ubuntu.com/community/SecureApt).

Под готов ка к уста новке
Если вы перед установкой Ubuntu собираетесь удалить всю информацию с жесткого
диска, то вам не требуется производить никаких предварительных операций. Если
вам все же нужно сохранить некоторые данные, создайте их резервную копию. Чтобы
установить Ubuntu, не удаляя никаких данных с жесткого диска, вам может попадо­
биться изменить размер локальных дисков и перераспределить место на жестком
диске, создав новые разделы. Для получения полной информации, касающейся изме­
нения размера локальных дисков и команд по созданию разделов, обратитесь к гл. 7.

В ыбор параметров установки
После запуска стандартного установочного комnакт-диска откроется меню с пара­
метрами, которые представлены в табл. 2. 1 .
Табпица 2.1. Параметры установки Ubuntu (стандартный комnакт-диск)
Параметр установки

Оnисание

Start or Install Ubuntu (заnустить
или установить Ubuntu)

Начинает nроцесс установки

Start Ubuntu in safe graphics mode
(Заnустить Ubuntu в безоnасном
графическом режиме)

загруЖает систему с комnакт-диска, не исnользуя nри
этом жесткий диск (nрименяетсЯ , если нужно что-то
отладить или вы хотите что-либо изменить в структуре
жесткого диска)

Install with driver update CD
(Установить, исnользуя
комnакт-диск с драйверами)

Процесс установки Ubuntu nрекратится, и будет
nредложено вставить сnециальный комnакт-диск
с драйверами, чтобы nродолжить установку

Check CD for defects (Проверка
комnакт-диска на наличие ошибок)

Проверяет комnакт-диск, чтобы выявить nроблемы
заранее, а не в nроцессе установки

Меmогу test (Тест nамяти)

Если у вас есть nодозрения на наличие неnоладок
оnеративной nамяти, Ubuntu может nредложить
nровести Memtest86 (www. memtest.org). Эта лрограмма
nроведет тестирование вашей оnеративной nамяти
с возрастающей нагрузкой, чтобы выявить в ней ошибки

Вооt from first hard disk (загрузка
nервого жесткого диска)

Если вы случайно начали загрузку с комnакт-диском
в nриводе, nросто щелкните кноnкой мыши на этом
nункте меню, и загрузка будет выnолнена с nервого
жесткого диска

с

На альтернативном установочном CD (Alternate CD) нет ни безопасного гра­
фического режима, ни режима Driver update CD ( Обновить драйверы с компакт­
диска). Альтернативные им параметры описаны в табл. 2.2.

40

Глава 2. Установка Ubuntu и nрограммнога обесnечения
Таlпица 2.2. Параметры установки Ubuntu (альтернативный комnакт-диск)

Пареметр усrановки

Оnисание

Install in text mocle (Установка
в текстовом режиме)

Установка nроизводится с nомощью текстовой
консоли (исnользуется, когда nодсистема VGA
недостуnна или ее исnользование
нежелательно)

Text mocle install for manufacturers
(Установка в текстовом режиме
для nроизводителей)

Устанавливает Ubuntu через nользовательскую
учетную заnись oem (original equipment
manufacturer - самостоятельный nроизводитель
оборудования) для индивидуальной настройки
системы. После заnуска команды удаления учетной
заnиси oem система nри следующей загрузке
nоnросит nользователя создать новую учетную
заnись

Install а CQmmand-line system
(Установить систему с базовым набором
консольных nриложений)

Устанавливает Ubuntu только с основными
nриложениями (серверы, сетевые экраны,
межсетевые интерфейсы, nриложения с низким
nотреблением системных ресурсов)

Более подробную информацию о способах установки Ubuntu вы можете найти
на странице Ubuntu wiki (https://wiki .ubuntu .com/Тesting/InstaiiMethods).

Ответы на вопросы программы установки
После запуска установочного диска с Ubuntu чаще всего задают вопрос: • Ну и что
дальше?• Поскольку загрузка Ubuntu, как правило, производится из Интернета
в виде файла-образа Live CD, значит, вы можете запустить Ubuntu с компакт-дис­
ка без ее установки, на жесткий диск. В этом случае следующим после запуска
Ubuntu шагом является попытка поработать в системе. Если же вы решите уста­
новить Ubuntu, нажмите кнопку Install (У становить) на Рабочем столе, после чего
будет запущена программа установки.
Большинство окон программы-установки выполнены в полностью попятной
форме. В табл. 2.3 представлен краткий обзор этих экранов, а также некоторые
советы, которые могут вам помочь в определенных случаях.
Табпица 2.3. Краткий обзор окон nрограммы установки Ubuntu
Название окна

Оnисание

I nstall welcome (Вас
nриветствует nрограмма
установки)

Выберите нужный язык

Where are you? (Где вы
находитесь?)

Укажите свое месторасnоложение для оnределения
временной зоны

КеуЬоаrd lауоut (Раскладка
клавиатуры)

Выберите исnользуемую вами раскладку клавиатуры

Работа с программными пакетами Deblan

41

Название окна

Оnисание

Prepare dlsk space (Подготовьте
дисковое пространство)

Если хотите автоматически разбить жесткий диск на
разделы, выберите Gulded partltionlng (Автомати"'еское
разбиение). Если же вы хотите самостоятельно определить
способ разбиения диска на разделы, выберите вариант
Manual (Вручную) (для работы с LVM вам понадобится
альтернативный установочный диск - Altemate lnstall CD)

Mlgrate Documents and Settl ngs
(Перемещение документов
и установок)

Этот параметр может помочь вам сохранить важную
информацию (и учетные записи пользователей) Windows
и перенести их в Ubuntu

Who are you? (Кто вы?)

Введите имя пользователя, имя учетной записи, параль и имя
компьютера

Ready to lnstall (Готовность
к установке)

Нажмите кнопку Advanced (Дополнительные параметры),
если хотите определить параметры загрузчика и участвовать
в сборе информации . Для завершения установки нажмите
кнопку Install (Установить)

Если вы в целях безопасности выполнили загрузку с Рабочего стола Ublquity, то
у вас должно быть шесть вариантов терминальных сессий, переключаться между
которыми можно с помощью сочетаний клавиш Qri+Ait+F# (от Fl до Fб), необхо­
димых для вызова командной консоли. Кроме того, для отображения информации
об ошибках в ходе установки вы можете воспользоваться сочетанием клавиш
Qri+Ait+FB. Для возврата к Рабочему столу Ublquity нажмите сочетание Qri+Ait+F7.

Ра бота

с

п ро r рам м ными па кета м и Debian

Если для установки программнога обеспечения вы предпочитаете использовать
приложения GUI, то с Рабочего стола или из сессии ssh (при использовании пара­
метра - Х s s h туннеля Х 1 1 (см. гл. 1 3 ) ) доступна ПJХ>Грамма Synaptic Package
Manager. Утилита aptitude является графической оболочкой АРТ, которая способ­
на работать как в текстовом, так и в командном режимах. Оболочка утилиты dpkg dselect ( www. debian.org/doe/manuals/dselect-Ьeginner) - также доступна на большин­
стве систем, выполненных на основе Deblan, но при ее изучении могут возникнуть
трудноСТfl.
Для получения более подробной информации о форматах программных пакетов
Deblan ознакомьтесь с руководством Deblan Programmers Manual ( www.deblan.org/
doe/manuaiS/programmer) и Deblan F AQ (www.deblan.org/dOC/FAQ/ch-pkg_ьasics.en.html).
В программных пакетах Ubuntu используется формат Deblan (обычно архив
AR), который является стандартным способом архивирования программнога обес­
печения для операционных систем на базе Deblan. Поскольку компоненты про­
граммнога обеспечения помещаются в отдельные программные пакеты Deblan
(с расширением DEB), программное обеспечение может не только представлять
собой самостоятельные архивы с программами, но и предоставлять большое коли­
чество информации о содержимом пакета. Эти метаданные могут включать в себя

42

Глава 2. Установка Ubuntu и nрограммнога обесnечения

информацию о программнам обеспечении, взаимозависимости, архитектуре ком­
пьютера, продавце, размере, лицензии и др.
После установки основных компонентов Ubuntu вы можете добавлять, удалять
и производить другие операции по управлению файлами DEB для повышения
удобства использования системы. Ubuntu, Kubuntu, Xubuntu, Edubuntu и боль­
шинство других операционных систем на базе Deblan используют файлы D ЕВ для
установки остальных внутренних компонентов системы. Приложеине aptitude
очень удобно использовать для повседневных нужд по управлению программным
обеспечением, однако для управления программными пакетами существует мно­
жество других приложений, и, возможно, вам понадобится время от времени их
использовать.
О АРТ - используется для загрузки и установки программных пакетов из интер­
нет-репозиториев. Команды АРТ ( a pt - get, apt - cache и т. д.) можно использовать
также и для установки программных пакетов из папок, хранящихся на локаль­
ном диске, но все же чаще эта программа используется для работы с программ­
ным обеспечением, находящимся в Интернете.
О dpkg - применяется для работы с DЕВ-файлами, находящимися на CD или дру­
гих запоминающих устройствах. Команда dpkg предлагает параметры настройки,
установки И получения информации о системном программнам обеспечении.
О aptitude - используется при работе в командной консоли с интернет-репозито­
риями. Эта программа рекомендуется в первую очередь, поскольку автомати­
чески выполняет некоторые операции, которые в противном случае при работе
с dpkg или АРТ вам придется совершать вручную.
В этой главе представлены разделы, в которых описывается каждая из этих
утилит, причем мы выделили наиболее характерные случаи использования этих
приложений.
ПРИМЕЧАНИЕ -------­

Для nолучения более nодробной .информации об этих приложениях посетите страницу АРТ НОWТО
(www . deblan.org/dOC/manuals/apt-howto/ch-ьasico.en.html#s- dpkg-scanpackages) или прочтите раз­
делы МАN-руководства, касающиеся АРТ и dpkg .

Ubuntu (и другие дистрибутивы *buntu) устанавливается с одного компакт­
диска или DVD. После завершения установки системы для получения отчета об
общем количестве доступных программных пакетов вы можете запустить команду
a pt - cache stats:
$ apt - cache stats
Tot a l package names : 27748 ( 1 1 1 0 k )
Norma l packages : 21 182

Как можно заметить, для базового варианта Ubuntu существует более 20 000 на­
именований программ, доступных в Сети. Сообщество Deblan очень тщательно
отбирает программмое обеспечение, чтобы включать в пакеты лишь то, которое
подходит для перераспределения. В инструкции Deblan на сайте www . debian.orgj
doc/manuals/deblan-tutorial/ch-introduction. html отмечено следующее: «Хотя Deblan

Работа с программными пакетами Deblan

43

придает большое значение распространению бесплатного программнога обеспече­
ния, бывает, что кому-то хочется (или необходимо) установить на компьютер
частное (запатентованное) программпае обеспечение. Сообщество Deblan учиты­
вает и по мере своих сил поддерживает это. Поэтому, несмотря на то, что платные
программы не включаются в основные дистрибутивы системы, их иногда можно
найти на ftр-сайтах в платных разделах. Кроме этого, существует постоянно рас­
тущее количество пакетов, созданных именно для того, чтобы устанавливать част­
ное программпае обеспечение,. которое мы не имеем права самостоятельно распро­
странять•.
Компания Canonical придерживается похожих стандартов относительно Ubuntu
(www. ubuntu.com/community/ubuntustOry/licensing), предлагая программпае обеспече­
ние четырех категорий (www. ubuntu.com/community/ubuntustory/components).
О Main - программпае обеспечение, которое свободно распространяется и под­
держивается командой Ubuntu. Большая часть этого программнога обеспечения
устанавливается при установке Ubuntu.
О Restricted - программпае обеспечение, общее для всех операционных систем
на базе Linux, поддерживаемое командой Ubuntu, но необязательно имеющее
абсолютно свободную лицензию.
О

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

О

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

Более подробную информацию о компонентах программнаго обеспечения Ubuntu
вы можете найти на сайте www. ubuntu.com/community/ubuntustory/components.

с попьзование программн ы х па кетов
Ниже описываются основы работы с программными пакетами. Здесь рассказыва­
ется о процессах, скрытых от пользователя, и о том, как устанавливать пакеты.
Изучение этих основ является важным первым шагом перед началом освоения
работы других приложений, как, например, aptitude.
Команда dpkg является очень мощным инструментом, предназначенным для
установки одиночных программных пакетов DEB, но она не обладает полным
спектром возможностей и взаимозависимостей, которые необходимы для работы
с различными программами, а также не может работать с репозиториями, как выше­
перечмсленные компоненты Ubuntu. С другой стороны, АРТ разрешает и устанавли­
вает зависимости и работает с настроенными репозиториями, но не может быть
использован, для установки файлов DEB, хранящихся на жестком диске.

44

Глава 2. Установка UЬuntu и nрограммнаго обеспечения

Что делать, если поивилось сообщение о локальной ошибке
Если вы работаете в командной строке Ubuntu ( Feisty Fawn), то при по­
пытке установить программные пакеты на экране может появиться сооб­
щение о локальной ошибке, например одно из нижеперечисленных:
perl : wa rni ng : Sett i ng l oca l e fa i l ed .
perl : wa rn i ng : Pl ease check that your l oc a l e setti ngs :
l ocal e : Cannot set LC_CTY PE to defa u l t l oca l e : No such fi l e or d i rectory

Проблема, скорее всего, связана с используемыми языковыми парамет­
рами или международными кодировками вообще. Чтобы решить эту про­
блему, можно пойти по обходному пути: экспортировать переменную сре­
ды LC_ALL и приравнять ее к языковым настройкам (LANG setting):
$ export LC_ALL• " SLANG "
На сайтах поддержки предлагаются еще некоторые способы решения
этой проблемы, но данный путь является простейшим. Это решение долж­
но работать в любом случае, вне зависимости от используемого вами язы­
ка, но помните, что вам нужно будет выполнять эту команду каждый раз
при открытии локальной командной оболочки или оболочки ssh. Тем не
менее, поместив команду в файл -/ . ba s h rc, можно автоматизировать эту
задачу.

Некоторые другие дистрибутивы Linux для работы с программными' пакетами
также используют похожие на АРТ системы. Дистрибутивы, основанные на Red
Hat или производные от них (включая CentOS, Fedora и Mandriva), для управления
программным обеспечением исhользуют такие приложения, как yum, rpm, urpmi
и smart. Несмотря на то что все эти приложения значительно отличаются от тех,
которые используются в Ubuntu, идея у них одна и та же: сначала устанавливается
конфигурационный файл, указывающий приложению, где в Сети расположены
самые свежие программные пакеты, а затем приложение в связке с программой
установки загружает программное обеспечение в систему.
Такая система из программных онлайн-пакетов и внутреннего приложения по
управлению ими является очень мощной комбинацией, легко снабжающей опера­
ционную систему последними достижениями, позволяющей разработчикам быст­
ро и массово распространять внесенные ими изменения в программы, а также
решать задачи взаимозаменяемости, цифровой идентификации и целостности
программнаго обеспечения.

Открытие бол ьшого копичесr ва
репозиториев дпя АРТ
В предыдущих версиях Ubuntu multiverse- и univеrsе-репозитории по умолчанию
были недоступны. Сейчас они по умолчанию открыты для Ubuntu, и, таким обра-

Работа с программными пакетами Deblan

45

зом, обновление программ и их поиск могут осуществляться со значительно боль­
шим количеством параметров. Единственным недостатком является тот факт, что
поддержка, лицензирование и файлы с исправлениями недоступны для universe­
и multiverse-peпoзитopиeв. Это может быть проблемой, если при установке про­
граммнаго обеспечения вы придерживаетесь определенной политики и определен­
ных процедур.
Чтобы отключить 'Univеrsе- или muliverse-peпoзитopии, откройте в текстовом
редакторе файл /etc/ a pt / sources . 1 i st и закомментируйте строки, имеющие вклю­
ченные multiverse- или univеrsе-компоненты. При желании, чтобы отметить заком­
ментированные элементы, добавьте к строкам комментарии. В следующих приме­
рах подпись отмечена знаком #cn:
#cn
#cn
#cn
#cn
#cn
#cn
#cn
#cn

deb http : / / us . a rch i ve . ubuntu . com/ ubuntu/ fei sty uni verse
deb - s rc http : / /us . a rchi ve . ubuntu . com/ ubuntu/ fei sty uni verse
deb http : / / us . a rchi ve . ubuntu . com/ ubuntu/ fei sty mu1 t i verse
deb - s rc http : / / us . a rchi ve . ubuntu . com/ ubuntu/ fei sty mu1 t i verse
deb http : / / securi ty . ubuntu . com/ ubuntu fei sty - secur i ty uni verse
deb - s rc http : / / securi ty . ubuntu . com/ ubuntu fei sty - securi ty uni verse
deb http : / / securi ty . ubuntu . com/ ubuntu fei sty - securi ty mu 1 ti verse
deb - src http : / / secu ri ty . ubuntu . com/ ubuntu fei sty - secu r i ty mu 1 ti verse

Аналогично, если вы захотите добавить дополнительные репозитории, которые
могут быть предложены частными лицами или компаниями, добавьте соответ­
ствующую строку в файл /etc / a pt / sources . 1 i st. Для редактирования этого файла
вы должны обладать правами суперпользователя:
$ sudo v; /etc/apt/sources . 1 ; st
Добавьте строку, начав с deb (если речь идет об уже готовых пакетах) или deb - s rc
(если речь идет об исходном коде), затем U RL-aдpec репозитория вместе с ди­
стрибутивом (как fei sty в предыдущем примере) и описания компонентов (при­
меры uni verse). Обычно компоненты описываются как сqntriЬ-предоставленные
(то есть не имеющие отношения к проекту Ubuntu) и free (свободные) или non-free
(несвободные). Обычно подобная информация содержится на сайте, предостав­
ляющем репозиторий.
Если вы решите добавить непроверенные репозитории, убедитесь в подлин­
ности и целостности предлагаемого программнога обеспечения, прежде чем
вносить изменения в свою операционную систему. Хотя сегоднЯ это уже не явля­
ется проблемой для пользователей Linux, по невнимательности все же очень
просто добавить в систему некачественное или вредоносное программмое обеспе­
чение.
Используйте программмое обеспечение только из провереиных источников
и всегда проверяйте скачаиные программы, перед тем как их установить. Для по­
лучения более подробной информации о репозиториях с программным обеспече­
нием посетите страницу Deblan Repository H OWTO (www. deblan.org/doc/manuals/
repository-howto/repository-howto ).
Вот пример из одного документа H OWTO:
deb ftp : / /suns i te . cn1 a b - swi tch . ch/mi r ror/debi a n / unsta Ы e ma i n cont r i b non - free

46

Глава 2. Установка Ubuntu и nрограммнаго обесnечения

У пра вп ен ие �рограм м ны м обеспечение м
с по м ощь ю АРТ
Хотя dpkg и АРТ могут работать в связке, одной программы АРТ вам будет вполне
достаточно для работы в любой системе на основе Deblan: загружать любые необ­
ходимые программы, обновлять их, проверять или выполн"я ть поиск. В табл. 2.4
продемонстрированы варианты использования команд АРТ для выполнения раз­
личных задач. Для быстрого вывода справки относительно возможностей АРТ
служит параметр h командной строки.
-

ПРИМЕЧАН ИЕ
Хотя для выnолнения данных задач nредnочтительнее исnользовать утилиту aptitude, а не АРТ, мы
все же решили начать с оnисания nоследней, чтобы вы могли nолучить более основательные зна­
ния.

-------­

Таблица 2.4. Некоторые nримеры исnользования Advanced Package Tool
Команда АРУ

Выnолняемое деАсrвие

sudo apt-get update

Проверяет файл /etc/apt:,/sources.list и обновляет базу данных
достуnных nрограммных nакетов. Выnолняйте эту команду
nри каждом изменени и sources.list

apt-cache search

Выnолняет nоиск no ключевому слову в базе данных
nрограммных nакетов (нечувствителен к регистру). Названия
nакетов и их оnисания выводятся nосле нахождения ключевого
слова

sudo apt-get install < package>

загружает и устанавливает nрограммный nакет no заданному
названию, если таковой найден в базе данных. Начиная
с АРТ О. б, эта команда автоматически nроверяет nодлинность
nакета, исnользуя известные ей ключи gpg (http://
wiki.deblan.org/SecureApt)

sudo apt-get -d install


Загружает nрограммный nакет и nомещает его в nanкy /var/
cache/apt/archives

apt-cache show
< название nрограммнога
nа кета >

Отображает информацию о nрограммах требуемого nакета

sudo apt-get upg rade

Проверяет наличие обновлений для всех установленных
nакетов и nредлагает загрузить и уста новить их

sudo apt-get dist-upgrade

Обновляет всю систему, даже если для этого требуется
удаление' nакетов nрограмм. Примеча ние: этот метод
обновления системы является нежелательным

sudo apt-get autoclean

Удаляет не nолностью загруженные или еще не установленные
nакеты

sudo apt-get clean

Удаляет из nаnки /var/cache/apt/archives все кэшираванные
nакеты для освобождения места на диске

sudo apt-get --purge remove
< название nрограммнаго
nакета >

Удаляет указанный nакет и все конфигурационные файлы.
Для сохранения конфигурационных файлов удалите из команды
ключевое слово --purge

Управление программным обеспечением с помощью АРТ

47

Кома нд8 АРТ

Выпопняемое деiiсrвие

sudo apt-get -f iпstall

Ищет неработающие программные пакеты и пытается отладить
те, которые отмечены сообщением «uпmet dерепdепсу»
(взаимозависимости не удовлетворены}

apt-coпfig -v

Выводит информацию о версиях установленных приложений АРТ

sudo apt-key list

Отоб ражает ключи gpg, известные АРТ

apt-cache stats

Выводит статистику по всем установленным пакетам

apt-cache depends

Выводит взаимозависимости программнога пакета
(установленного или нет}

apt-cache pkgпames

Выводит список всех установленных пакетов

В качестве примера мы установим бесплатную программу Google Picasa ( http://
picasa.google.com ), разработанную компанией Google и предназначенную для управ­
ления цифровыми фотографиями и предоставления их для общего просмотра.
В этом примере будет установлено программное обеспечение из непроверенного
репозитория, использованы некоторые приложения АРТ для проверки подлинно­
сти и качества загружаемой программы и установлена сама программа.

Доба вл ение непроверен ных репозитория и кл ю ча
эле ктронно-ци ф ровой подпи си
Чтобы приступить к использованию репозитория Google, откройте файл /etc / a pt/
sources . 1 i st в текстовом редакторе (nano, vi), используя команду s udo:
$ sudo vi /etc/apt/sources . 1 i st
Затем в начало файла sou rces . 1 i st добавьте следующие две строки:
# cn - added for goog 1 e softwa re
deb http : / /d 1 . goog 1 e . com/ 1 i nux/deЫ staЫ e non - free

Кроме того, нужно загрузить ключ электронно-цифровой подписи Google для
подтверждения подлинности программных пакетов Google. Этот цифровой ключ
может быть загружен с помощью команды wget и помещен в папку / tmp, которая
далее будет использована для хранения загружаемых файлов.
$ wget https : / /d1 · ss1 . googl e . com/l i nux/l i nux_si gni ng_key . pub ·О /tmp/key . pub
08 : 26 : 46 https : / /d1 - s s 1 . goog 1 e . com/ 1 i nux/ 1 i nux-s i gni ng- key . pub
' /tmp/key . pub '
- -

- -

Команда wget (описанная в гл. 1 2 ) загружает файл с сайта Google и помещает его
в папку /tmp/key . pub. Здесь важно, чтобы данный файл являлся общим зашифрован­
ным ключом, используемым для проверки пакетов, загружаемых с сайта Google.
Затем, используя команду apt - key, импортируйте ключ в АРТ:
$ sudo apt · key add /tmp/key . pub
Password :

ок

48

Глава 2. Установка Ubuntu и nрограммнога обесnечения

Чтобы убедиться, что цифровая подпись Google была загружена полностью (без
недостающих данных), проверьте через АРТ ключи безопасности:
$ sudo apt - key l i st
ui d
.Goog l e . I nc . L i nux Package S i g n i ng Кеу

sub 2048g/C0 7C8649 2007 - 03 - 08

Затем, чтобы обновить новый репозиторий, обновите кэш пакетов АРТ.
Для этого используйте команды s udo и apt - get update. Проверьте репозиторий
Google следующим образом:
$ sudo apt - get update
Get : 1 http : / /d l . goog l e . com staЫ e Rel ease . gpg [ 1898]
Ign http : / /dl . goog l e . com sta Ы e/non- free Trans l ati on - en-US
Get : 2 http : / / d l . goog l e . com staЫ e Rel ease [ 1 0268]

Поиск программных пакетов
Теперь, когда новый репозиторий установлен, вы можете выполнить запрос на
H8JDIЧИe нового программкого обеспечения:
$ apt - cache search pi casa
pi casa - Pi casa i s softwa re t h at hel ps you i nstant l y fi nd . ed i t a nd sha re a l l the
pi ctu res on your РС .
Кроме того, вы можете выполнить информационный запрос о данном пакете
Picasa через АРТ:
$ apt - cache show pi casa
Package : pi casa
Vers i on : 2 . 2 . 2820 - 5
Сколько дополнительного программнога обеспечения потребуется для обнов­
.
ления Picasa ? Проверить взаимозависимости можно следующим образом:
$ apt - cache depends pi casa
pi casa
Depends : l i bcб

Установка пакетов
С помощью команды s udo, используя АРТ или другие приложения для работы
с пакетами программ, вы уже можете устанавJIИВать JПОбое доступное для UЬuntu
программвое обеспечение Google. В следующем примере продемонстрирован
процесс установки Picasa с помощью АРТ:
$ sudo apt - get i nstal l pi casa
Readi ng package . l i sts . . . Done
8ui l d i ng dependency t ree

Уп равление программным обеспечением с помощью АРТ

49

Readi ng state i nformati on . . . Done
The fol l owi ng N EW packages wi l l Ье i nstal l ed :
pi casa
О upgraded . 1 newly i nsta l l ed . О to remove and 1 1 5 not upgraded .
Need to get 2 1 . 7МВ of a rchi ves .
After unpack i ng 82 . ЗМВ of add i t i on a l d i sk space wi l l Ье used .
Get : 1 http : / /d l . goog l e . com sta Ы e/ non - free pi casa 2 . 2 . 2820 - 5 [ 2 1 . 7MBJ
Fetched 21 . 7МВ i n lmЗs ( 340kB/ s )
Sel ect i ng previ ous l y desel ected package pi casa .
( Read i ng database . . . 880 15 fi l es a nd d i rectori es current l y i nsta l l ed . )
Unpack i ng pi casa ( from . . . /pi ca sa_2 . 2 . 2820 - 5_i 386 . deb ) . . .
Sett i ng up pi casa ( 2 . 2 . 2820 - 5 ) . . .

Теперь вы можете запустить программу Picasa, щелкнув кнопкой мыши на ее
названиИ в меню Applications • Graphics (Приложения � Графика) нg Рабочем сrоле
Ubuntu или выполнив в командной строке команду pi c asa.

Обно вп ение пакетов
С течением времени программные пакеты изменяются, появляются новые их вер­
сии с улучшенными инструментами и исправленными ошибками. Для обновления
своей системы до последней вы можете воспользоваться инструментами АРТ. Этот
процесс осуществляется в два этапа.
Сначала проверьте наличие обновлений для программных пакетов вашей сис­
темы Ubuntu, применив параметр update a pt - get:
$ sudo apt - get update
Эта команда производит в репазитариях поиск новых версий программных
пакетов, доступных для скачивания, и обновляет список кэшираванных пакетов
и версий вашей операционной системы.
Затем обновите программные пакеты, используя параметр upg rade a pt - get.
$ sudo apt - get upgrade
Перед тем как обновлять сами пакеты, вы всегда можете обновить список до­
ступных пакетов, но возможно также успешно использовать обе эти команды
одновременно. Если разделить эти команды точкой с запятой, они будут выполне­
ны обе, одна за другой:
$ sudo apt - get update : sudo apt - get upgrade
Get : l http : / /dl . goog l e . com sta Ы e Rel ease . gpg [ 1898]
The fol l owi ng packages wi l l Ье upgraded :
app - i nstal l - data app - i nsta l l - data - commerci a l a pport a pport - gtk bi nd9 - host cappl ets ­
data dbus dbus - 1 - ut i l s
112 upgraded . О nep l y i nsta l l ed . О to remove and 3 not upgraded .
Need to get 140МВ of a rchi ves .
After unpack i ng 3891kB of add i t i on a l d i s k space wi l l Ье used .
Do you want to cont i nue [ Y / n ] ? n

50

Глава 2. Установка Ubuntu и nрограммнога обесnечения

О бновпение одного программного пакета
Обновление отдельного системного пакета в Ubuntu является очень простой опе­
рацией, которую можно осуществить с помощью команды apt - get i nsta 1 1 . Данная команда должна выполняться через s udo. После ее
выполнения старая версия автоматически изменяется на доступную новую.
ПРИМЕЧАНИЕ

-------­

Это может nокаэаться достаточно странным, но nараметр upgrade apt-get обновляет

все nакеты.
Параметр же lnstall усrанавли вает новый nакет или обновляет один или более сnециальных nакетов.

Сначала определите версию используемого программною обеспечения (в дан­
ном примере определяется версия приложения minicom, отвечающего за передачу
данных по линиям последовательной передачи). Как и в большинстве случаев,
программа minicom поддерживает функцию вывода на монитор номера текущей
версии:
$ mi ni com - · versi on
mi n i com vers i on 2 . 1 ( compi 1 ed Nov 5 2005 )
Теперь воспользуйтесь АРТ для установки из репозиториев последней версии
пакета minicom. АРТ информирует о запуске процесса обновления:
$ sudo apt · get i nstal l mi ni com
The fo1 1 owi ng packages wi 1 1 Ье upgraded :
mi n i com

Теперь выполните запрос текущей версии программы minicom, и вы увидите,
что вместо прежнего номера версии отображается новый:
$ mi ni com · · versi on
mi n i com vers i on 2 . 2 ( compi 1 ed Ma r 7 2007 )

Удапение програ м м н ых па кетов
С помощью параметра remove команды a pt - get вы можете удалить пакет из опера­
ционной системы Ubuntu. Для этого вам нужно будет подтвердить удаление про­
граммнога обеспечения:
$ sudo apt · get remove pi casa
Rea d i ng package 1 i sts . . . Done Bui 1 di ng dependency t ree
Read i ng state i nformati on . . . Done
The fo1 1 owi ng packages wi 1 1 Ье REMOVED :
pi casa
О upgraded . О new1 y i nsta1 1 ed . 1 to remove a nd 115 not upg raded .
Need to get ОВ of a rchi ves .
After unpack i ng 82 . ЗМВ d i s k space wi 1 1 Ье freed . .
D o you want t o cont i nue ( Y / n ] ? n

Управление программным обеспечением с помощью dpkg

51

Оч истка программных пакетов
Перед установкой новой версии Ubuntu все загруженные ранее программные
пакеты кэшируются в папке / v a r / cache/ a pt / для ускорения их закачки в случае,
если они вам понадобятся в будущем. Со временем они могут начать занимать
много места на диске. Вы можете удалить эти пакеты, но затем, если они потре­
буются для удовлетворения зависимостей, вам придется снова их загружать.
Очистка кэша производится с помощью параметра c l e a n команды a pt - get. В сле­
дующем примере продемонстрирована работа этой команды. Сначала для опре­
деления имеющихся кэшираванных пакетов применим команду fi nd к папке /va r 1
cache/ a pt / :
$ fi nd /var/cache/apt/ - name \* . deb
/va r/cache/apt / a rch i ves /pi ca sa_2 . 2 . 2820 - 5_i 3 B б . deb
/ v a r/cache/apt / a rch i ves /mi ni com_2 . 2 - 4bui l d l_i 386 . deb
Teriepь очистим кэшираванные пакеты, находящиеся в папке АРТ, и проверим,
все ли удалено, снова выполнив команду fi nd:
$ sudo apt - get cl ean
$ fi nd /var/cache/apt/ - name \* . deb
Теперь папка пуста.
ПРИМЕЧАНИЕ

-------­

Если вы используете параметр -h вместе с командой apt-get, то должны знать, что в версии АРт,
используемой в Ubuпtu, применяется программа Super COw Powers. Чтобы больше узнать об этом,
выполните запрос moo в apt-get.

Уп равп е н и е п рограммным обес п е ч е ни е м
с

помощью d pkg

Приложеине dpkg работает на более низком уровне, чем утилиты АРТ, который
лишь косвенно использует dpkg для управления программным обеспечением
Ubuntu. В то же время АРТ и dpkg используют похожие принципы работы с ути­
литами YUM и RPM дистрибутивов на основе Red Hat Linux. Однако, хотя обыч­
но возможностей АРТ хватает для выполнения практически всех необходимых
операций, все же иногда необходимо использовать и dpkg (например, чтобы выяс­
нить, какой программный пакет ассоциирован с конкретным файлом в вашей сис­
теме). В табл. 2.5 приведены некоторые основные команды и операции dpkg.
ПРИМЕЧАНИЕ -------­
dрkg для обозначения отладочной информации, которую нужно вывести в ходе выполнения отдель­
ных операций, использует параметр -D. Если же вам нужна более подробная информация, чем та,
которая предлагается по умолчанию, попробуйте воспользоваться параметром -D l . В разделе mап,
посвященном dpkg, перечислены уровни выхода, используемые с меткой -D.

52

Глава 2. Установка Ubuntu и nрограммнаго обесnечения
Таблица 2.5. Некоторые общие nримеры исnользования утилиты dpkg

Команда dpkg

Выnопняемое деiiсrвие

dpkg -с < файл DEB>

Отображает файлы, установленные с nомощью заданного
DЕВ-файла (файл DEB должен быть указан в таком виде:
nуть к файлу/имя файла)

dpkg -1

Выводит информацию о заданном DЕВ-файле

dpkg -р < название nрограммнаго
nакета >

Отображает информацию о заданном nрограммнам nакете

dltpg -s < имя файла>

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

dpkg _,

Отображает установленные nакеты, а также может
nредоставлять более nодробную информацию о них

dpkg -L

Отображает все файлы, установленные из заданного
nрограммнаго nакета (nакет должен быть уже установлен)

dpkg -s

Выводит статус nакета

sudo dpkg -1

Устанавливает указанный DЕВ-файл

sudo dpkg -r < название
nрограммнога nакета >

Удаляет из системы указанный nакет, но оставляет файлы

sudo dpkg -Р < название
nрограммнаго nакета >
sudo d pkg -х
< nanкa >

Удаляет nакет вместе с конфигурационными файлами
Расnаковывает файлы, содержащиеся в DЕВ-файле,
в указанную nanкy. После заве"wения оnерация
восстановит nрава достуnа к указанной nanкe

Команда dpkg позволяет любому пользователю выполнять запрос по базе дан­
ных программных пакетов, но, чтобы использовать эту команду для установки или
удаления программнога обеспечения со своего компьютера, необходимо обладать
привилегиями суперпользователя.

Уста новка програ ммнога п а кета
Команда dpkg работает только с пакетами, в то время как a pt - get способна выпол­
нять любые задачи, связанные с поиском в репозитории, в котором хранится необ­
ходимый программный пакет, а также загрузкой пакета из этого репозитория. Что­
бы вам было проще разобраться, в следующем примере мы используем сначала
команду a pt - get для загрузки программнаго пакета, а затем dpkg для его установки,
что позволит подчеркнуть отмеченную особенность команды dpkg.
Сначала с помощью a pt - get загрузите файл DEB ( параметр - d в команде необ­
ходим только для загрузки). Следующая команда загружает, но не устанавливает
пакет minicom:
$ sudo apt - get · d i nstal l mi ni com
Fetched 168kB i n ls ( 131kB/ s )
Down l oad compl ete a nd i n down l oad on l y mode

53

Уп ра вление программным обеспечением с помощью dpkg

Таким образом, вы получили DЕВ-файл для установки (данная команда загру­
жает программвый пакет в папку / v a r/cache/apt/a rch i ves ) .
Затем, используя команду dpkg - i (для установки), установите ааrруженный

DЕВ-файл:

$ sudo dpkg · 1 /var/cache/apt/arch1 ves/m1 п1 com_2 . 2 · 4bu1 l dl_1 386 . deb
Sel ect i ng prev i ou s l y desel ected package mi n i com .
( Readi ng database . . . 89127 fi l es and d i rectori es current l y i nstal l ed . )
Unpack i ng mi n i com ( from . . . /mi n i com_2 . 2 - 4bu i l d 1_1 386 . deb )
Setti ng up mi n i com ( 2 . 2 - 4bu i l d1 ) . . .

Удап е ни е про г раммнога пакета
Чтобы удалить установленный проrраммный пакет с помощью dpkg, воспользуй­
тесь параметром - r следующим образом:
$ sudo dpkg · r m1п1 com

( Readi ng database . . . 89182 fi l es and d i rectori es current l y i nstal l ed . )
Remov i ng mi n i com . . .

Если вы решите удалить и пакет, и его конфигурационные файлы или удалить
конфигурационные файлы после удаления самого пакета, выполните следующую
команду:
$ sudo dpkg . р mi пi com
( Readi ng database
89126 fi l es and d i recto ri es current l y i n sta l l ed o )
Removi ng mi ni com
Purg i ng confi gurat i on fi l es for mi n i com
о

о

о

о

о

о

о

о

о

Распаковка фа йпав из DЕВ - фа йпа
Программвые пакеты и Deblan, и Ubuntu упаковываются в один D Е В-архив.
Каждый DЕВ-файл может содержать один и более файлов, из которых состоит
соответствующий пакет. К этим файлам относятся предварительно подготовлен­
ная команда, файлы поддержки, документация и, возможно, исходный код. Таким
образом, файл DEB, по существу, является архивом с файлами, которые устанав­
ливаются на компьютер, а также пекоторой важной и проверочной информацией,
идентифицирующей программвое обеспечение (описание, контрольные числа и т. д.).
Используя команду dpkg, вы можете извлечь всю эту информацию в программный
пакет. В следующем примере извлекаются файлы из DЕВ-архива, находящегося
в заданной папке, в пакет rsync в папку /tmp:
$ mkdi r /tmp/rsync_contents
$ sudo dpkg · х rsync_2 . 6 . 9 · 3ubuntul . l_i 386 . deb /tmp/rsync_contents
$ l s /tmp/rsync_contents/
etc usr
Вы можете заменить файл rsync_2 б 9 - Зubuntu1 0 1_i 386 deb, используемый в этой
команде, на любой загруженный вами архив DEB.
о

о

о

54

Глава 2. Установка Ubuntu и nрограммнога обесnечения

Сбор информации о программн ых пакетах DEB
Следующий пример показывает, как среди установленных программных пакетов
найти пакет rsync и вывести на экран монитора информацию о версии этого па­
кета:
$ dpk.g · Р rsync
Vers i on : 2 . 6 . 9 - Зubuntu1 . 1

Для получения информации
воспользуйтесь параметром - I :

о

DЕВ-архиве, находящемся в текущей папке,

$ dpk.g · 1 rsync_2 . 6 . 9 · 3ubuntul . l_i 386 . deb
new debi a n package , vers i on 2 . 0 .

Чтобы получить список всех программных пакетов, установленных в системе,
выполните следующую команду:
$ dpk.g · 1 1 1 ess
i i acpi 0 . 09 - 1 d i spl ays i nfo rmat i on on ACP I devi ces

Чтобы же просто вывести информацию о конкретном пакете, воспользуйтесь
параметром - 1 и укажите название пакета:
$ dpk.g · 1 rsync
i i rsync 2 . 6 . 9 - Зubuntu1 fa st remote fi l e сору program ( 1 i ke rcp )

Проверь те, относится ли заданный файл к программкому пакету, и если отно­
сится, то к какому:
$ dpk.g · S /usr/bi n/rsync
rsync : / u s r / b i n / rsync

Теперь, когда вы знаете, как выбрать программный пакет (или пакеты), запрос
на который необходимо сформировать, можно перейти к изучению дополнитель­
ной информации. В следующем примере показавы стандартные элементы уста­
новленного программкого пакета:
$ dpk.g · s rsync
Package : rsync
Status : i nsta 1 1 ok i nsta l 1 ed
Pri ori ty : opt i ona l
Sect i on : net
I nsta 1 l ed - Si ze : 500

Ниже приведено содержимое D ЕВ -архива, находящегося в локальной папке:
$ dpk.g · С rsync_2 . 6 . 9 · 3ubuntul . l_i 386 . deb
О 2007 - 08 - 1 7 20 : 48 . /
d rwxr - xr - x root/ root

Управление программным обеспечением с помощью dpkg

drwxr - xr - x
drwxr - xr - x
- rwxr - xr - x
drwxr - x r - x
drwxr - x r - x

root / root
root / r.oot
root / root
root / root
root / root

О
О
294864
О
О

2007 - 08 - 17
2007 - 08 - 17
2007 - 08 - 1 7
2007 - 08 - 1 7
2007 - 08 - 17

20 : 48
20 : 48
20 : 48
20 : 48
20 : 48

55

. / usr/
. /usr/bi n/
. / u s r / bi n/ rsync
. / u s r / s h a re/
. / u s r / s h a re/doc/

В этом примере показан процесс извлечении контрольных документов из
DЕВ-архива на локальный диск в указанную папку. Будьте внимательны при
распаковке, так как эта команда устанавливает права доступа к указанной папке
посредством значении 0755 (цифра 55 указывает, что все пользователи, за исклю­
чением тех, у кого уже были ограничены права доступа к папке / tmp, а также
большинство приложений получат неограниченные права доступа к папке / tmp )
В следующем примере будет создана папка вида /tmp/my_ $RANDOM для работы в ней:
.

$ sudo dpkg -е rsync_2 . 6 . 9 · 3ubuntu1 . 1_i 386 . deb /tmp/my_SRANDOМ
$ l s - l art /tmp/my_25445/
tota l 28
-rwxr - xr - x 1 root root 491 Aug 17 20 : 47 prerm
- rwxr - xr - x 1 root root 1 1 0 Aug 17 20 : 47 postrm
- rwxr - xr - x 1 root root 523 Aug 17 20 : 47 post i nst
- rw- r - - r - - 1 root root 37 Aug 17 20 : 48 conffi l es
- rw- r - - r - - 1 root root 926 Aug 17 20 : 48 cont rol
drwxr - xr - x 2 root root 4096 Aug 1 7 20 : 48 .

Чтобы извлечь все неуправтпощие файлы, содержащиеся в О ЕВ-архиве, в пап­
ку, используйте параметр - х, как показано в следующем примере (здесь нужно

знать, что права доступа к папке также будут возвращены в значение 0755 ) :
$ sudo dpkg - х mi ni com_2 . 2 - 4bui l d1_i 386 . deb /tmp/dx_SRANDOН
S l s - l art /tmp/dx_4921/
total 16
drwxr - xr - x 4 root root 4096 Ma r 7 09 : 1 0 u s r
drwxr - xr - x 3 root root 4096 Ma r 7 09 : 10 etc
drwxr - xr - x 4 root root 4096 Ma r 7 09 : 10
drwxrwxrwt 1 1 root root 4096 Sep 1 08 : 19 . .

Чтобы просмотреть установленные файлы программкого пакета, используе­
системой, воспользуйтесь параметром - L:

мого

$ dpkg ·L mi ni com
1.

/usr
/us r / s h a re
/usr/sha re/man
/usr/sha re/ma n/ma n 1
/usr/ sha re/man/ma n 1 /mi ni com . 1 . gz
/usr/share/man/ma n 1 / xmi n i com . 1 . gz
/usr/sha re/man/ma n 1 / a sc i i - xfr . 1 . gz

56

Глава 2. Установка Ubuntu и nрограммнаго обеспечения

Если пакет не был полностью удален, вы увидите оставшиеся после него кон­
фигурационные файлы:
$ dpkg · L m1 n1 com
/ etc
/etc/mi n i com
/ etc/mi n i com/mi n i com . users
Эти примеры описывают лишь стандартные случаи использования dpkg, поэтому
приведенный перечень нельзя назвать исчерпывающим. Среди других доступных
функций можно назвать следующие: изменение конфигурации ( dpkg - reconfi gure ) ,
выбор пакетов, которые следует игнорировать dpkg ( dpkg ho 1 d ) , и определение па­
раметров отбора. Для получения более полной информации ознакомьтесь с мате­
риалами, содержащимвся на МАN-странице, посвященной dpkg.

Упра впе ни е про г рамм н ы м обесп еч е ни ем
с помо щ ь ю a ptitude
Приложепия dpkg и АРТ применяются уже давно и хорошо себя зарекомендовали,
но обе эти программы требуют от пользователя обладания достаточными знания­
ми, чтобы разбираться в Приложениях и правильно с ними работать. Приложеине
aptitude упрощает работу, автоматизируя некоторые важные операции с программ­
ными пакетами (например, запуск команды a pt - get update перед обновлением или
установкой), и в то же время обладает достаточной гибкостью, чтобы быть полез­
ным. Именно поэтому мы рекомендуем по возможности всегда использовать в ко­
мандной строке именно данное приложение.
Главная цель программы aptitude - быть приложеннем одновременно и графи­
ческой оболочки, и командной строки. В этом разделе будет подробно рассмотрено
использование этого приложения в командной строке. В табл. 2.6 представлен
анализ способов управления программным обеспечением с помощью aptitude.
Стоит отметить, что большинство его параметров дублируют параметры команды
apt - get.
ПРИМЕЧАНИЕ -------­

Для получения более подробной информаци и об использовании графического интерфейса aptitude
или других деталей, посетите страницу https://help.ubuntu.com/communlty/AptitudeSurvivaiGuide
(Aptitude Survival Guide) или http://people.deЫan.org/,.,dburrows/aptitude-doC/en/ (Aptitude user's
manual) или выполните в командной строке команду man aptitude.
Таблица 2.6. Некоторые общие случаи использования aptitude
Команда

В ыпопняемое деiiсrвие

sudo aptitude

Включает графический интерфейс. Для получения доступа к меню
нажмите сочетание клавиш Ctrl+Т, а для выхода - клавишу q

aptitude help

Отображает текстового помощника по работе в aptitude

aptitude search

Управление программным обеспечением с помощью aptitude

57

Команда

Выnолняемое деiiсrвие

sudo aptitude update

Обновляет доступные индексы программных пакетов на основе
информации, содержащейся в источниках Аf1Т

sudo aptitude upgrade

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

aptitude show

Отображает информацию об указанном пакете (неважно,
установлен он или нет}

sudo aptitude dowпload


загружаетзаданный пакет, но не устанавливает его

sudo aptitude сlеап

Удаляет все загруженные DЕ8-архивы из папки /var/cache/arЦarchives

sudo aptitude autocleaп

Удаляет все устаревшие DЕВ-архивы из папки /var/cache/apt/
archives. Эта команда позволяет не допустить перезаполнения
дискового пространства кэшираванными файлами

sudo aptitude install
< название программнога
па кета >

Устанавливает указанный программный пакет (для выбора
конкретных версий и использования специальных символов могут
использоваться различные параметры}

sudo aptitude remove
< название п рограммнога
пакета >

Удаляет из системы указанный пакет

sudo aptitude dist-upgrade

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

Обн овпение программных пакетов
По умолчанию aptitude всегда перед установкой или обновлением пакетов выпол­
няет команду apt - get update, однако вы, если необходимо, все равно можете вы­

поJJНить только команду update:
$ sudo apti tude update
Get : l http : / / securi ty . ubuntu . com fei sty - secu ri ty Rel ease . gpg [ 19 1 8 ]
I g n http : / / secur i ty . ubuntu . com fei sty - securi ty /ma i n Trans l ati on - en_US
Get : 2 http : / / u s . a rch i ve . ubuntu . com fei sty Re l ease . gpg [ 1918]

Если вы хотите обновить все пакеты системы, то можете ввести параметр
upgrade. В этом случае будут установлены все новые пакеты из репозиториев (в дан­
ном примере рассматривается ситуация, когда на жестком диске отсутствовали
новые версии программных пакетов ).
$ sudo apti tude upgrade
Readi ng package l i sts . . . Done
Bui l d i ng dependency tree
Readi ng state i nfo rmati on . . . Done
Readi ng extended state i n format i on
l n i t i a l i z i ng package states . . . Done
Bui l d i ng tag database . . . Done
No pack ages wi l l Ье i nsta l l ed . upgraded . o r removed .
О pack ages upg raded . О newl y i nsta l l ed . О to remove and О not upg raded .
Need to get 08 of a rc h i ves . After unpack i ng 08 wi l l Ье used .

58

Глава 2. Установка Ubuntu и n рограммнога обесnечения

С бор информации о про rраммны х пакетах
Используя ключевые слова или поJIНые названия пакетов, вы можете произво­
дить поиск в aptitude точно так же, как и в других приложениях, предназначенных
для работы с программными пакетами. Следующий. пример демонстрирует поиск
по ключевому слову �minic•, с помощью которого можно отобразить информацию
о пакете minicom и подключаемом расширени.и оконного менеджера xfce.
$ apti tude search mi n i c
i mi n i com - fri end l y menu d r i ven seri a l communi cati on
program
р xfce4 - mi n i cmd - pl ugi n - Mi n i - command l i ne pl ugi n for the X fce4 panel
$ apti tude show mi n i com
Package : mi n i com
State : not i nsta l l ed
Vers i on : 2 . 2 - 4bui l d l
Pri ori ty : opt i onal
Sect i on : comm

Установка программных пакетов
Ранее вы уже загружали программный пакет, используя команду apt - get. Сейчас
для этих же целей будет использована команда apti tude, которая позволяет загру­
зить программвый пакет, не устанавливая его:
$ sudo apti tude downl oad mi ni com
Get : l http : / / u s . a rchi ve . ubuntu . com fei sty/ma i n mi n i com 2 . 2 - 4bui l d l [ 168k8]
Fetched 18 i n Os ( 28/s )

Если же вы хотите установить пакет minicom, то можете выполнить следующую
команду:
$ sudo apti tude i nstal l mi ni com
Need to get 08/265k8 of a rchi ves . After unpack i ng 140 1k 8 wi l l Ье used .
Do you want to cont i nue? [ Y / n / ? J n

Если у вас есть несколько пакетов, которые нужно установить, можете вос­
пользоваться специальным символом. В данном случае будут установлены все
программные пакеты, содержащие слово cminic• (как и в случае, описанном выше,
когда производился поиск с помощью команды apti tude ) . Эта программа также
определяет для каждого пакета все взаимозависимости, используя то, что на языке
aptitude называется matcher ( собнаружителем совпадений• ). Чтобы установить все
пакеты, содержащие слово cminic•, используйте matcher -n, поставив его в начале
ключевого слова:
$ sudo apti tude i nstal l "-nmi ni c "
T h e fol l owi ng N E W packages wi l l Ь е a utomat i ca l l y i nsta l l ed :
l i bxfce4mcs - c l i ent3 l i bxfce4mcs - ma nager3 l i bxfce4uti l 4 l i bxfceg u i 4 - 4 l rzsz

Уп ра вление программным обеспечением с помощью aptitude

59

xfce4- pane1
The fo1 1 owi ng N EW packages wi 1 1 Ье i nsta 1 1 ed :
1 i bxfce4mcs - c 1 i ent3 1 i bxfce4mc s - ma nager3 1 i bxfce4ut i 1 4 1 i bxfcegui 4-4 1 rzsz
mi n i com xfce4-mi n i cmd - p1 ug i n
xfce4- pane1
О packages upg raded . 8 new1y i nsta 1 1 ed . О to remove a nd О not upg raded .
Need to get 702kB/ 967kB of a rchi ves . After unpack i ng 4645kB wi 1 1 Ье used .
Do you want to cont i nue? ( Y / n / ? J

Удаление программных пакетов
УдаJ1ИТЬ проrраммные пакеты с помощью aptitude даже проще, чем их установить.
Просто попробуйте это сделать следующим образом:
$ sudo apti tude remove mi ni com
The fo1 1 owi ng packages a re unused and wi 1 1 Ье REMOVED :
1 rzsz
The fo1 1 owi ng packages wi 1 1 Ье REMOVED :
mi n i com
О packages upg raded . О new1y 1 nsta 1 1 ed . 2 to remove a nd О not upg raded .
Need to get ОВ of a rchi ves . After unpa cki ng 140 1kB wi 1 1 Ье freed .
Do you want to cont i nue? ( Y / n / ? ]

Очисrка д иска
Каждый раз, когда вы будете устанавливать программы с помощью команды
a pt i t ude, будет загружаться DЕВ-архив и помещаться в папку / v a r / c a c he / a pt /
a rchi ves. Через какое-то время, возможно, вам понадобится удалить эm кэширо­
ванные файлы, чтобы освободить место на диске. Для этого необходимо исполь­
зовать параметр c 1 ean или autoc 1 ean. Если вы посмотрите, то увидите, что в этой
папке уже есть кэшираванные файлы:
$ 1 s /var/cache/apt/archi ves/
1 ock 1 rzsz_O . l2 . 21 - 4� 1_i 386 . deb mi n i com_2 . 2 - 4bui 1 d l_i 386 . deb pa rt i a 1
Remov i ng these wi th a pti tude on 1 y requ i res u s i ng t h e c 1 ean or a utoc 1 ean opti on :
$ sudo apti tude cl ean
Readi ng package 1 i sts .
Done
Bui 1 di ng dependency tree
Readi ng state i nformat i on .
Done
Readi ng extended state i nformati on
I n i ti a 1 i zi ng package states .
Done
Bui 1 di ng tag database .
Done
Повторное выполнение команды 1 s покажет, что пакеты на самом деле удалены,
но если у вас низкая скорость интернет-соединения и вам необходима неделя,
чтобы загрузить последние версии программных пакетов, то следует подумать
дважды, прежде чем выполнять действия, описанные выше, либо воспользоваться
параметром a utoc 1 ean, который удаляет только устаревшие пакеты.

60

Глава 2. Установ ка Ubuntu и программнога обеспечения

Полезн ые сочетания параметров aptitude
Параметр - v расширяеt: возможности действий, выполняемых приложеннем
aptitude. Используя его много раз, вы можете получить больше, чем просто ин­
формацию, выводимую на экран после выполнения той или иной операции. Если
вы выполните команду apti tude с параметром - v, то будет отображен ключ md5sum
программнога пакета - своего рода универсальный цифровой отпечаток пальцев,
который можно использовать, если пакет был подделан или поврежден. Исполь­
зование параметра -vv позволяет получить еще более подробную информа­
цию:
$ apti tude show - vv mi ni com
Package : mi n i com
State : i nsta l l ed
Fi l ename : poo l /ma i n /m/mi n i com/mi n i com 2 . 2 - 4bui l d 1- i 386 . deb
MD5sum : c408085cd37dfced2d3060 b94ececd46

Чтобы еще до выполнения операции имитировать ее результат, можно вос­
пользоваться параметром - s, который работает независимо от типа исполняемой
команды.
$ sudo apti tude - s i nstal l mi ni com
Read i ng package l i sts . . . Done
Do you wa nt to conti n ue? [ Y / n / ? J у
Wou l d down l oad / i nsta l l / remove packages .

Сочетание параметров - v и - s позволяет получить еще больше данных:
$ sudo apti tude - vs i nstal l mi ni com
Readi ng package l i sts . . . Done
Do you want to cont i nue? [ Y / n / ? J у
I nst l rzsz ( 0 . 12 . 21 - 4 . 1 Ubuntu : 7 . 04/ fei sty )
I n s t mi n i com ( 2 . 2 - 4bui l d1 Ubuntu : 7 . 04/ fei sty )
Conf l rzsz ( 0 . 12 . 2 1 - 4 . 1 Ubuntu : 7 . 04/ fei sty )
Conf mi n i com ( 2 . 2 - 4bui l d 1 Ubuntu : 7 . 04/fe i sty )

Если вам надоест каждый раз подтверждать выбор действия, отвечая на во­
прос «Хотите продолжить? • , то можете ответить на него заранее, добавив параметр
-у в исполняемую команду:
$ sudo apti tude - vs -у i nstal l "-ni nc "
Read i ng package l i sts . . . Done
Bui l d i ng dependency t ree
Read i ng state i nformati on . . . Done
Readi ng extended state i nformati on
I n i t i a l i zi ng package states . . . Done

Используя параметр -у, будьте предельно осторожны, поскольку команда
apti tude не предусматривает возможности отката.

Проверка установленных пакетов с помощью программы debsums

61

Наконец, параметр - h команды apti tude выводит отношение параметров, кото­
рое может быть использовано в любой момент, если требуется обновить информа­
цию. Стоит отметить, что нам удалось найти недостаток в версии aptitude, исuоль­
зуемой в Ubuntu:
$ apti tude - h
apti tude 0 . 4 . 4
Th i s apti tude does not have Super Cow Powers .

Нет Super Cow Powers? Однако мы любопытны и спрашиваем aptitude с по­
мощью параметра moo:
$ apti tude moo
There a re no Easter Eggs i n thi s prog ram .
Easter eggs (дословно с пасхальные яйца•) представляют собой скрытые эле­
менты программы. Хм. Может, попробуем воспользоваться параметром - v, чтобы
получить более подробную информацию?
·

S apti tude · v moo
There rea l l y a re no Easter Eggs i n thi s prog ram .

Возможно, нужны еще более узкие параметры. Мы уже давим на apt i tude, чтобы
получить более подробную информацию:
$ apti tude · Vv moo
Di dn ' t I a l ready tel l you that there a re no Easter Eggs i n thi s prog ram?
Тут уже начинает просматриваться некая система. Возможно, использование
этих параметров в другом случае будет более успешным.

ро вер ка устано вп е нны х па кето в
по м о щ ью программы debsums
Иногда возникают сомнения в качестве установленного н а систему бинарного или
открытого программнаго пакета. Они могут работать некорректно или в о все не
запускаться. Проблемы с поврежденными программными пакетами могут быть
вызваны нестабильным интернет-соединением и перепадами в электропитании.
Помимо этого, встречаются пользователи, которые могут попытаться заменить
ключевые команды своими собственными, чтобы в дальнейшем наносить вред сис­
теме. Поэтому полезно сравнивать файлы файловой системы с информацией про­
граммнога пакета.
Программа debsums является утилитой Ubuntu и других операционных систем
на базе Deblan, которая сверяет информацию ключей MDS каждого установлен­
ною пакета с файлами md5sum, найденными в папке /va r/ 1 i Ыdpkg / i n f.
С помощью следующей команды вы можете установить эту прогр�му:
$ sudo apti tude i nstal l debsums
В табл. 2. 7 приведены наиболее полезные параметры команды debsums. Более
подробную информацию о debsums можно получить в МАN-руководстве.

62

Глава 2. Установка Ubuntu и программнога обеспечения
Та&nица 2.7. Некоторые общие параметры утилиты debsums

Команда deЬsum

Выnолняемое деiiсrвие

debsums -а

Проверяет все файлы (включая конфиrурационные, которые обычно
располагаются слева)

debsums -е

Проверяет только конфиrурационные файлы пакетов

deЬsums -с

Выводит список измененных на stdout файлов

deЬsums -1

Отображает файлы, в которых отсутствует информация о mdSsum

deЬsums -s

Выводит только ошибки; при их отсутствии не производит никаких
действий

debsums < название
программнога пакета >

Отображает пакеты, которые необходимо проверить с помощью
deЬsums

ПРИМЕЧАНИЕ

-------­

Для выполнения большинства операций необязательно обладать правами суперпол ьэователя (ис­
пользовать команду sudo), однако к некоторым файлам простой пользователь не имеет доступа,
поэтому, если появится сообщение «deЬsums: can't open at file /etc/at.deny (Permission denied)», вам
придется использовать sudo.

Если выполнить команду debsums без дополнительных параметров, будет про­
верен каждый известный ей файл системы. При необходимости результат может
быть переадресован в файл. Если md5s um проверяет выход для файла, название
файла, выводимое утилитой debsums, сопровождается надписью ОК, распош>жен­
ной справа от сообщения. Кроме того, могут выводиться и другие сообщения:
md5s ums mi ss i ng ( •md5sums потерян•) для отдельного файла или слово REPLACED
( • Перемещен• ), если утилита не нашла требуемого соответствия md5sum. Позже,
если вы решите использовать это приложение в качестве основной программы
получения нужной информации, чтобы все было установлено именно так, как вы
хотите, вы сможете восстановить md5sum для отсутствующих или неработающих
приложений. Таким образом, вы будете уверены, что у вас установлены наиболее
свежие приложения.
Эта команда сверяет все файлы системы с имеющимвся в наличии файлами
md5sum. В приведеином ниже примере видно, что некоторые файлы отсутствуют
или перемещены. Перед тем как восстановить файлы md5sum, убедитесь, что в сис­
теме отсутствуют проблемы с этими файлами:
$ debsums
/ u s r / b i n / a cpi
/ u s r / s h a re/man/ma n l / acpi . l . gz
/ u s r / s h a re/doc / acpi / README
/ u s r / s h a re/ doc /acpi /AUTHORS
/ u s r / sha re / a pp - i nsta l l / i cons / pyЬl i ograph i c . png
debs ums : no md5s ums fo r bsduti l s
debsums : no md5sums for bz i p2
debsums : no md5s ums for cd record

ОК
ОК
ОК
ОК
ок

Проверка установленных пакетов с помощью программы debsums

63

REPLACED
/usr/share/ l oca l e - l a ngpack/en_AU/ LC_MESSAGES/adduser . mo
/usr/share/l oca l e - l a ngpack/en_AU/LC_MESSAGES/a l sa - uti l s . mo ОК

Если вы хотите сохранить эту информацию в файл, а также сохранить сообще­
ния stdout и stderr, переадресуйте stdout- и stderr-пoтoки в файл. Чтобы впослед­
ствии можно было продолжить работу в командной оболочке, в конце команды
установлен знак &:
$ debsums &> /tmp/ foo &

Чтобы проверить конфигурационные файлы каждого программноrо пакета
на наличие мзменений, выполните команду debsums с параметром - а :
$ debsums - а
/usr/bi n/ acpi
/usr/sha re/man/ma n l /acpi . l . gz

ОК
ОК

Чтобы проверить только конфигурационные файлы, пропуская остальные,
воспользуйтесь параметром - е. Данный способ позволяет убедиться, что вы не
изменили случайно какой-либо конфигурационный файл. Ниже видно, что неко­
торые Х-конфигурационные файлы были изменены:
$ debsums



/etc / X l l / X resou rces /xl l - common
/etc/ X l l / Xses s i on
/etc / X l l / rgb . txt
/etc/ i n i t . d/xll - common
/etc / X l l / Xses s i on . d/50xll - common_determi ne - sta rtup
/etc / X l l /Xses s i on . d/ЗOxll - common_xresou rces .
/etc/ X l l / Xses s i on . d / 20xll - common_process - a rgs
/etc / X l l / X s es s i on . opti ons

ок

FA I LED

ок
ок
ок
ок
ок

FAI LED

По умолчанию debs ums отображает достаточно большое количество информа­
ции, однако вы можете отобразить и только измененные файлы. Результат выпол­
нения команды debs ums с параметром - с показан ниже:
$ debsums - с
debsums : n o md5sums for at
debsums : no md5sums fo r base - fi l es
debsums : no md5sums for Ьс
Предыдущая команда отображает сообщения о файлах, содержащих информа­
цию о md5sum. Выполнив команду debs ums с параметром - 1 , вы сможете искать фай­
лы, которые не содержат информации о md5sum:
$ debsums - 1
at
ba se - fi l es
Ьс

64

Глава 2. Установка Ubuntu и nрограммнога обесnечения

Ьi nuti 1 s
Ьi nuti 1 s - stati с

Если вы захотите, чтобы debsums вывел информацию только об оmибках, вос­
пользуйтесь параметром - s :
$ debsums - s
debs ums : no md5sums
debs ums : no md5sums
debsums : no md5s ums
debsums : no md5s ums

for
for
for
fo r

at
ba s e - fi 1 es
Ьс
bi nuti 1 s

Чтобы проверить конкретный пакет, в качестве аргумента debsums укажите имя
соответствующего пакета:
$ debsums coreuti l s
/ Ь i n/cat ОК
/ Ь i n/chgrp ОК
/Ьi n/chmod ОК
Следующая команда проверяет только те файлы, которые перечислены в файле
md5sum пакета, содержащегося в папке / va r 1 1 i Ы dpkg/ i nfo, поэтому, если в программ­
ном пакете отсутствует файл md5sum, будет выведено сообщение об ошибке:
$ debsums rsync
debsums : no md5sums fo r rsync
Для генерации недостающих данных md5sum для rsync воспользуйтесь комбина­
цией из dpkg и утилиты md5sum и простым сценарием для командного процессора.
Сначала для получения списка всех известных dрkg-файлов в пакете rsync выпол­
ните команду dpkg - L. В полученном списке будут, помимо имен файлов, содер­
жаться другие строки данных. Далее необходимо будет передать полученные дан­
ные g rep и отфильтровать все записи, которые не начинаются со знака 1. Затем
определите, чем является строка выводимых dрkg-данных - папкой или файлом
(названия папок также начинаются с символа / ). Если это файл, значит md5 s um
будет выполнена на строке вывода, которая на этом этапе будет являться именем
файла. Наконец, сохраните все данные в текстовый файл с тем же соглашением об
именах, что и файлы md5sum в папке / v a r / l i Ь/dpkg / i nfo.
$ for fi l e in ' dpkg - L rsync 1 grep А/ ' ; do
test - f " $ fi l e " && md5sum " $ f1 l e " ;
done > /tmp/ rsync . md5sums
Эта команда полезна тем, что позволяет получить базу данных md5sum, которая
затем может быть записана на компакт-диск и использована для последующей
проверки системы. Если файлы md5sum записаны на компакт-диск, они не могут
быть случайно удалены или стать причиной возникновения проблем с файловыми
системами жесткого диска. Если вы решите позже проверить ключи md5suffit. то

65

Соэдание DЕВ-архивов

воспользуйтесь командой md5sum вместе с параметром -с и добавьте к ней имя фай­
ла данных mdSsum:
$ md5sum



/tmp/rsync . md5sums

/usr/bi n / rsync : ОК
/usr/ sha re/doc/ rsync/ exampl es/ rsyncd o conf : ОК
/usr/sha re/doc/ rsync/ README o gz : ОК
/usr/share/ doc/ rsync/ TODO o gz : ОК

Чтобы воспользоваться файлом rsync md5sum с приложеннем debsums, потребу­
ется внести одно изменение, которое может повлечь за собой проблемы с mdSsum,
но все же является обязательным условием для работы с debsums, - убрать первый
слэш в имени файла. Сделать это можно в текстовом редакторе либо командном
процессоре:
о

$ cat /tmp/rsync . md5sums
3029161 14c2919lcd9c8cb5 1d67ee60a /usr/bi n / rsync

Чтобы убрать первый слэш в начале / u s r / Ь i n/ rsync, попробуйте воспользовать­
ся текстовым или потоковым редактором (Stream Editor):
$ sed - е ' s# 1# #g ' /tmp/rsync . md5sums > /tmp/ rsync . debsums
$ cat /tmp/rsync . debsums
3029161 14c2919lcd9c8cb5 ld67ee60a usr/bi n/ rsync

Теперь, удалив первый слэш в rsync debsums , вы можете скопировать этот файл
в папку /var/ 1 i Ь/dpkg / i nfo, после чего debsums сможет использовать его:
о

$ sudo mv /tmp/rsync . debsums /var/l i Ь/dpkg/ i nfo/rsync . mdSsums
$ debsums rsync
/usr/bi n/ rsync ОК
/usr/sha re/doc/ rsync/exampl es/ rsyncd o conf ОК
/usr/share/doc/ rsync/ README o gz ОК

Создание D ЕВ- арх ивов
Посредством реорганизации DЕВ-архива, используемого для формирования про­
граммнога пакета Deblan, вы можете изменять его, чтобы было удобнее пользо­
ваться программным обеспечением (например, включив в архив файл md 5 s um ) .
Для этого необходимо распаковать DЕВ-архив, который вы планируете изменить,
в рабочую папку, после чего вы сможете изменять дерево файлов и управляющие
файлы в соответствии со своими потребностями. Например, выполнив следующие
команды, вы можете загрузить и распаковать пакет rsync и управляющие файлы
в текущую папку (используемая в данном случае папка $RANDOM у вас будет, есте­
ственно, другой):
$ apti tude downl oad rsync

66

Глава 2. Установка Ubuntu и программнаго обеспечения

Теперь извлеките из загруженного архива его содержимое и управляющие фай­
лы (папку $RANDOM можно найти, введя /tmp/ rsync_ и нажав клавишу ТаЬ):
$ sudo dpkg -х rsync_2 . 6 . 9 - 3ubuntu1 . 1_i 386 . deb /tmp/rsync_SRANDOМ
$ sudo dpkg - е rsync_2 . 6 . 9 - 3ubuntu1 . 1_i 386 . deb /tmp/rsync_17197/

Затем перейдите в папку с программными пакетами, в которую вы распаковали
DЕВ-архив, и проверьте его содержимое. Вы должны будете найти папку, имею­
щую структуру, подобную следующей:
$ cd /tmp/rsync- 17197
$ l s - l art
- rwxr - x r - x 1 root root 49 1 2007 - 0 8 - 1 7 20 : 47 prerm
- rwxr - x r - x 1 root root 1 1 0 2007 - 08 - 17 20 : 47 postrm
- rwxr - xr - x 1 root root 523 2007 - 08 - 17 20 : 47 post i nst
d rwxr - x r - x 4 root root 4096 2007 - 0 8 - 1 7 20 : 48 usr
d rwxr - xr - x 4 root root 4096 2007 - 0 8 - 1 7 20 : 48 etc
- rw - r - - r - - 1 root root 37 2007 - 08 - 1 7 20 : 48 conffi l es .
- rw- r - - r - - 1 root root 985 2007 - 0 9 - 02 12 : 02 control
d rwxr - xr - x 4 root root 4096 2007 - 09 - 02 12 : 02 .
d rwxrwxrwt 1 0 root root 4096 2007 - 09 - 02 13 : 24 . .

Теперь необходимо настроить папку таким образом, чтобы согласовать форма­
ты, требующиеся dpkg для формирования DЕВ-архива. Это предполагает создание
подпапки rsync_2 . 6 . 9 - 3cn 1 . 1 / DEB IAN и перемещение в нее установочных файлов.
Сам управляющий файл представляет собой особым образом форматированный
файл, содержащий поле заголовка и поле содержимого (header field, content field).
Он анализируется приложениями, предназначенными для работы с пакетами, для
последующего вывода информации о пакете:
$ sudo mkdi r - р rsync 2 . 6 . 9 - 3cn1 . 1/DEB IAN
$ sudo mv control conf fi l es prerm postrm posti nst rsync 2 . 6 . 9 - 3cn1 . 1/DEB IAN

Вам также должны переместять папки etc / и usr/ в папку rsync_2 . 6 . 9 - 3cn1 . 1:
$ sudo mv usr etc rsync_2 . 6 . 9 - 3cn1 . 1

Скорее всего, вы правильно завершили процесс добавления в архив и, если так,
вся информация находится в подпапке rsync_2 . 6 . 9 - 3cn1 . 1 текущей папки.
Теперь переместяте ранее созданный файл md5sum в подпапку DEBIAN и переиме­
нуйте ее (папку) в md5s ums. Это укажет программе debsums путь к файлам md5sums,
которые необходимо проверить:
$ sudo mv /var/l i Ь/dpkg/ i nfo/ rsync . md5sums rsync_2 . 6 . 9 - 3cnl . l/DEB IAN/md5sums

Теперь, чтобы изменить некоторую информацию, необходимо отредактировать
управляющий файл. Естественно, вы не захотите устанавливать измененную вер­
сию rsync, содержащую оригинальную информацию о программнам пакете.
Откройте управляющий файл в редакторе vi или другом и измените строку Vers i on
так, как показано ниже. Если вы обратите внимание, то заметите, что после слова
Vers i on стоит двоеточие - это головное поле. Информационное поле следует сразу
за ним. Убедитесь, что после двоеточия стоит пробел, и не добавляйте больше до­
полнительных пробелов (и не удаляйте их) в файле. Это является очень важным
в процессе форматирования.

Соэдание DЕВ-архивов

67

$ sudo vi rsync_2 . 6 . 9 - Зcnl . l/DEB IAN/contro .
Vers i on : 2 . 6 . 9 - Зсn1 . 1

Немного ниже вы можете добавить поле Desc r i pt i on. Оно будет отображаться
в описании, когда потребуется узнать какие-либо детали программного пакета.
Обратите внимание, что перед словами fast remote стоит пробел. Пробел является
частью особого форматирования, на языке dpkg - текстом описания из много­
строчного заголовка. Если добавленное вами описание переносится на следующую
строку, убедитесь, что в первом столбце стоит пробел:
Descri pt i on : Mod i fi ed Ьу CN 2007 - 09 - 02 to i nc l ude md5s ums .
fa st remote fi l e сору program ( l i ke rcp )

Теперь, используя команду dpkg - Ь и имя созданной вами для управляющего
файла подпапки, создайте новый пакет. Программа предупредит вас, что Ori gi na 1 Ma i ntai ner является полем, определяющим пользователя. Можете не обращать на
это сообщение внимания.
$ sudo dpkg - Ь rsync_2 . 6 . 9 - Зcnl . l
wa rn i ng . ' rsync 2 . 6 . 9 - Зcn 1 . 1 / DEBIAN/control ' conta i ns user- defi ned fi el d
' Or i g i nal - Ma i nta i ner '
dpkg - deb : bui l d i ng package ' rsync ' i n ' rsync_2 . 6 . 9 - Зcn1 . 1 . deb ' .
dpkg - deb : i gnori ng 1 wa rn i ngs a bout the cont rol fi l e ( s )

Теперь у вас есть новый О ЕВ-архив, и вы можете через dpkg отобразить инфор­
мацию о нем. Для этого просто выполните команду dpkg с параметром - I , и увиди­
те информацию о пакете:
$ dpkg 1 rsync 2 . 6 . 9 - Зcnl . l . deb
new debi a n pack age . vers i on 2 . 0 .
s i ze 1004 bytes : cont rol a rchi ve= 7 1 2 bytes .
970 bytes . 21 l i nes
cont rol
Package : rsync
Vers i on : 2 . 6 . 9 - Зсn1 . 1
-

На данном этапе вы уже можете установить новый пакет rsync. Это упражнение
демонстрирует в основном создание собственного программного пакета и не тре­
бует внесения изменений в систему, если отсутствует на то необходимость. Сле­
дующая команда показывает, что данный пакет будет установлен как обычный
пакет Deblan и будет обладать всеми его свойствами. Однако ведь вы хотите задей­
ствовать и debsums. Обратите внимание на то, что говорит dpkg:
$ sudo dpkg - i rsync 2 . 6 . 9 - Зcnl . l . deb
dpkg - wa rni ng : downg rad i ng rsync from 2 . 6 . 9 - Зubuntu1 to 2 . 6 . 9 - Зсn1 . 1 .
( Readi ng database . . . 88107 fi l es and d i rectori es current l y i nstal l ed . )
Prepa ri ng to repl ace rsync 2 . 6 . 9 - Зubunt u 1 ( us i ng rsync_2 . 6 . 9 - Зcn1 . 1 . deb )
Unpack i ng repl acement rsync . . .
Sett i ng up rsync ( 2 . 6 . 9 - Зсn1 . 1 ) . . .

68

Глава 2. Установка Ubuntu и _программного обеспечения

Сейчас утилита debsums располагает некоторыми файлами для тестирования
md5s um, поэт9му вне зависимости от местоположения нового пакета rsync вы уви­
дите следующее сообщение:
$ debsums rsync
/usr/bi n/ rsync
/u s r / sha re/doc/ rsync/ exampl es/ rsyncd . conf
/ u s r / sha re/doc/ rsync / README . gz

ОК
ОК
ОК

Используя команду dpkg и параметр - 1 , вы можете просмотреть информацию
о пакете и убедиться, что установлена его новая версия:
$ dpkg - 1 rsync
; ; rsync 2 . 6 . 9 - Зcnl . l Mod i fi ed Ьу CN 2007 - 0 9 - 02 to i nc l ude md5sums .
ПРИМЕЧАНИЕ

-------­

Более подробную информацию о формировании DЕВ-архивов вы можете найти в руководстве Debl­
an Binary Package Building НОWТО, размещенном по адресу http://tldp.org/HOWТO/Deblan-Binary­
Package-Building-HOWТO. МАN-страница, посвященная dpkg-deb, также содержит информацию о фор­
мировании DЕВ-архивов.

Рез ю м е
Программное обеспечение Ubuntu и других дистрибутивов на базе Deblan упако­
вывается в архивы формата DEB. По умолчанию для установки Ubuntu использу­
ется установщик Ublquity. Вооt-меню позволяет загружать все необходимые для
установки приложения, устанавливать систему, а также запускать Ubuntu с ком­
пакт-диска. Для загрузки и установки дополнительного программнога обеспечения
из интернет-репозиториев программнога обеспечения вы можете использовать
программы aptitude и АРТ. Для установки программных пакетов, хранящихся на
жестком диске, а также индивидуально сформированных пакетов Deblan вы може­
те пользоваться утилитой dpkg. И АРТ, и aptitude, и dpkg предоставляют возмож­
ность получать информацию о программнам обеспечении. Используя приложения
debsums и md5sum, вы можете проверять установленные пакеты.

3

Испол ьз ова н ие
кома ндно го п р о ц есс ора

Использование интерпретатора командного языка (обычно называется просто ко­
мандным процессором, или консолью) восходит к первым операционным системам
UNIX. Помимо очевидного использования командного процессара для выполне­
ния команд, он имеет множество встроенных параметров, таких как переменные
окружения, псевдонимы, а также множество функций, предназначенных для про­
граммирования. Хотя наиболее часто используемый командный процессор, при­
меняемый в системах Linux, называется Bourne Again Shell (bash), существуют и дру­
гие командные консоли (например, sh, csh, ksh, tcsh и др.). Во многих случаях эти
командные консоли (например, sh) являются символьными ссылками на другие
консоли, такие как bash. В Ubuntu Linux sh является символьной ссылкой на / Ь i n/
dash. Командный процессор sh является важной частью системы, поскольку в боль­
шинстве сценариев командного процессара он определяется как консоль запуска
сценариев. Что касается интерактивного использования, то в качестве командного
процессара по умолчанию используется bash.
В данной главе приведен материал, призванный помочь вам научиться работать
в командны� консолях Linux вообще и консоли bash в частности.

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

Ис пользование окон терминала·
Чтобы открыть окно терминала из графической оболочки GNOME (графическая обо­
лочка Ubuntu по умолчанию), откройте меню Applications � Accessories � Terminal (При­
ложения • Инструменты • Терминал). В результате откроется окно gnome-terminal,

70

Глава З. Использование командного процессора

отображающее командную строку консоли bash. На рис. 3. 1 показан пример окна
gnome-teгminal.
-- -

·

rhrls')lor.1111�

· ·

fole Edot Vt ew
[ chri�localhost
/Dln/ba s h
[chra@toca thOst
chпs
[ r hr l �l nr. В частности, используя знак >, вы можете
направить в файл стандартный поток вывода (stsndsгt output stream - stdout),
а используя сочетание 2>, - стандартный поток ошибки (standart error stream ­
stderr):
$ l s /tmp /tmmp > output . txt
l s : /tmpp : No such fi l e or d i rectory
$ l s /tmp /tmmp 2> errors . txt
/tmp/ :
gconfd - fcaen keyri ng - b41WuB keyri ng - I tEWbz mappi ng - fcaen orbi t - fcaen
$ l s /tmp /tmmp 2> errors . txt > output . txt
$ l s /tmp /tmmp > everythi ng . txt 2>&1

76

Глава 3 . Использование командного процессара

В первом примере stdout перенаправлен в файл output . txt, а stderr выводится
на экран. Во втором же примере stderr направлен в файл errors . txt, а stdout выво­
дится на экран. В третьем примере объединены первые два примера. В последнем
примере оба потока направлены в файл everyt h i ng . txt. Чтобы дописать в файл
информацию, а не переписывать ее, используйте сразу два знака >:
$ 1 s /tmp >> output . txt
Если вам вообще не нужно видеть поток вывода, то можете просто направить
его в специальный файл-•битоприемник• ( /dev /nul l ):

$ 1 s /tmp 2> /dev/nu1 1
совп

------

Другим случаем, при котором может понадобиТЪСЯ перенаправить поток stderr, является ситуация,
когда вы работаете с croпtab. Вы можете перенаправить stderr через электронное сообщение, ко­
торое будет направлено владельцу. В этом случае пользователю не будет возвращаться никаких
сообщений об ошибке.

Вы можете не только направлять поток стандартного вывода команды, но и за­
давать канал стандартного ввода команды. Например, следующая команда на­
правляет файл / etc/ hosts пользователю локальной системы chris в виде электрон­
ного сообщения:
$ mai 1 chri s < /etc/hosts
Используя каналы, вы можете перенаоравлить вывод данных с одного процес­
са на другой, а не просто в другие файлы. В следующем примере данные из коман­
ды l s выводятся в команду sort для упорядочивания выводимых данных:
$ 1 s /tmp 1 sort
В следующем примере одновременно присутствуют и канал, и направление
(поток stdout команды l s упорядочивается, а вывод stderr направляется в 1 dev 1
nul l ):
$ 1 s /tmp/ /tmmp 2> /dev/nu1 1 1 sort
Каналы можно использовать для нескольких задач:
$
$
$
$

dpkg - query - 1 1 grep . ; sq1 1 wc · 1
ps auwx 1 grep fi refox
ps auwx 1 1 ess
wherei s · m bash 1 awk ' {pri nt $2} '

В предыдущем примере первая строка отображает все установленные программ­
ные пакеты, выделяет те из них, которые содержат sql , и подсчитывает количество
пропущенных строк (фактически подсчитывая количество пакетов, содержащих
в своем имени sql ) . Вторая команда отображает процессы Firefox, взятые из длин­
ного списка процессов (если браузер Firefox запущен), а также любые процессы,
командная строка которых содержит ссылку на слово fi re fox. Третья команда
позволяет пролистать весь список процессов. Последняя строка отображает слово
bash, за ним идет путь к странице МАN-справочника, посвященной bash, а затем

77

Работа в командном n роцесса ре

команда, отображающая только путь к данной странице man (второй элемент на
строке).
Используя обратные одинарные кавычки, вы можете сначала выполнить часть
командной строки, а затем вывесm на оставшуюся часть командной строки дан­
ные этой команды. Например:
$ dpkg - query -S 'whi ch ps ·
$ 1 s · 1 'whi ch bash'
Первая строка в предыдущем примере находит полный путь комаНды ps, а так­
же программный пакет, содержащий эту команду. Вторая команда находит полный
путь к команде bash и создает длинный список (1 s · 1 ) этой команды.
Более сложным и эффективным способом выделить 8JJIВОдимые данные одной
команды и применить их в качестве параметров для другой является использова­
ние команды xargs:

$ 1 s /bi n/b* 1 xargs dpkg - query · S
Чтобы показать, что команда xargs сейчас будет запущена, выполните следую­
щую команду:
$ 1 s /bi n/b* 1 xargs t dpkg - query · S
dpkg - query - S /bi n/bash /bi n/bunzi p2 /bi n /bzcat /bi n/bzcmp /bi n/bzd i ff
/bi n/bzeg rep /bi n/bzexe /bi n / bzfgrep /bi n / bzg rep /bi n/bzi p2 /bi n/bzi p2recover
/bi n / bz1 ess /bi n/bzmore
bash : /Ьi n/bash
bzi p2 : /bi n/bunzi p2
bzi p2 : /bi n / bzcat
bzi p2 : /bi n/bzcmp
bzi p2 : /bi n/bzd i ff
bzi p2 : /bi n/Ьzegrep
bzi p2 : /bi n/bzexe
bzi p2 : /bi n / bzfg rep
bzi p2 : /bi n/bzgrep
bzi p2 : /bi n/bzi p2
bzi p2 : /bi n/bzi p2recover
bzi p2 : /bi n/bz1 ess
bzi p2 : /bi n / bzmore
·

В этом примере все данные, выводимые 1 s, перенаправляются в кoмaндy .dpk g ­
query - S. Если в xa rgs применить параметр - t, то выходные данные команды будут
выведены еще до того, как она будет выполнена. Теперь воспользуемся xa rgs, что­
бы перенаправить выходные данные 1 s для каждой отдельной команды dpkg - query.
Здесь знак { } определен как поле для подстановки строки:
$ 1 s /bi n/b* 1 xargs t 1 {} dpkg - query S {}
dpkg -query - S /bi n/bash
bash : /Ьi n/bash
dpkg - query - S /bi n/ bunzi p2
bzi p2 : /bi n/bunzi p2
dpkg - query -S /bi n/bzcat
bzi p2 : (bi n/bzcat
·

·

·

78

Глава З. Использование командного процессара

dpkg - query - S /bi n/bzcmp
bzi p2 : / b i n / bzcmp
dpkg - query -S /bi n / bzd i ff
bzi p2 : / b i n / bzd i ff
dpkg - query -S /bi n/bzegrep
bzi p2 : / b i n / bzeg rep
dpkg - query -S /bi n/bzexe
bzi p2 : /bi n / bzexe
dpkg - query -S / b i n/bzfg rep
bzi p2 : /bi n / bzfgrep
dpkg - query -S /bi n / bzgrep
bzi p2 : /bi n / bzgrep
dpkg - query - S /bi n/bzi p2
bzi p2 : /bi n / bzi p2
dpkg - query -S /bi n / bzi p2recover
bzi p2 : / b i n / bzi p2recover
dpkg - query -S /bi n/bz1 ess
bzi p2 : /bi n / bz1 ess
dpkg - query - S /bi n / bzmore
bzi p2 : / b i n / bzmore
Как вы можете видеть из выводимых данных, для каждого параметра, касающе­
гося 1 s, запускаются отдельные команды dpk g - query - S.

Ал иасы
Чтобы установить и просмотреть алиасы, необходимо воспользоваться командой
а 1 i as. Некоторые алиасы уже установлены в общесистемных или пользовательских
файлах инициализации консоли, о которых говорилось ранее. Следующий пример
показывает, как отобразить уже установленные алиасы:
$ al i as
a 1 i a s ср= ' ср
a 1 i a s 1 s= ' 1 s
a 1 i a s mv= ' mv
a 1 i a s rm= ' rm

-i '
- - co1 o r=auto '
-i '
-i '

Отметим, что некоторые алиасы установлены просто в качестве способа добав­
ления параметра в изначальные характеристики команды (например, mv - i , при­
меняемый, если необходимо переместять файл).
ПРИМЕЧАНИЕ

-------­

UЬuпtu Liпux работает только с алиасами, определяемыми ls, которые при просмотре файлов выде­
ляют выходные данные цветом. Другие алиасы представляют собой примеры полезных команд,
которыми вы можете эaxanm:; воспольэоватъся , особенно после того, ка к они помогуr вам предотвра­
тить случайное удаление файлов.

Определить собственные алиасы для текущего сеанса bash можно следующим
образом:
$ al i as l a= ' l s · l a '

Получение прав суперпольэовател я

79

Добавьте эту строку в файл -/ . bashrc для определения собственных алиасов
·в каждом новом сеансе bash. Используя команду una 1 i a s , можно уд8JIИТЬ алиас из
текущей сессии bash:

$ unal i as 1 а
$ una1 i as - а

Удаляе т предыдущий созданный алиас конанды 7 а
Удаляе т все соз д анные алиасы

i аблюдение за командами
Если вам необходимо следить з а командами с изменяющимвся выводимыми дан­
ными, используйте команду watch. Например, чтобы следить за средней загрузкой,
выполните следующую команду:

$ watch ' cat /proc/1 oadavg '
Каждые две секунды watch будет запускать команду cat. Для завершения выпол­
нения команды нажмите сочетание клавиш Qri+C. Чтобы увеличить частоту обнов­
ления до 1 О секунд, выполните следующую команду:

$ watch · n 10 ' 1 s · 1 '
Чтобы выделить разницу между обновлениями на экране, выполните:

$ watch · d ' 1 s · 1 '
Чтобы завершить выполнение команды watch, нажмите сочетание клавиш Ctri+C.
Стоит отметить, что для выполнения выделения необходимо, чтобы файлы изме­
нялись.

Н аблюдение за файлами
Для наблюдения за размером файлов также может быть использована команда
watch. Например, чтобы следить за размером большого ISО-файла mydown 1 oad . i so
по мере его загрузки, воспользуйтесь следующей командой:

$ watch ' 1 s · 1 mydown1 oad . i so '
Чтобы наблюдать за содержимым файла с открытым текстом, размер которого
увеличивается с течением времени, воспользуйтесь командой t a i 1 . Например, вы
можете просмотреть сообщения, добавJlенные в файл / v a r / 1 og/message, с помощью
команды:

$ sudo tai 1

·

f /var/1 og/messages

Чтобы завершить выполнеltие команды t a i 1 , нажмите Ctri +C.

П олучение прав суп е рпользовател я
Когда вы запускаете командный процессор, вы можете выполнять команды и полу­
чать доступ к файлам и папкам на основе ID пользователей и групп, а также прав
доступа к этим компонентам. Доступ ко многим системным ресурсам является

80

Глава 3. Использование командного п роцессора

ограниченным и открыт только для пользователя root, также называемого супер­
пользователем.
Существует три основных способа получения прав суперпользователя:

О войти в систему как суперпользователь;
О временно получить права суперпользователя, воспользовавшись командой su;
О выполнить одну •команду на правах суперпользователя, воспользовавшись командой sudo.
В большинстве случаев в систему не входят от имени суперпользователя,
так как это повышает вероятность случайно внести нежелательные изменения
в систему. Большинство пользователей Linux используют либо команду su (для
перехода из обычной учетной записи в учетную запись суперпользователя) , либо
команду sudo (для выполнения одной команды с привилегиями суперпользова­
теля).
Ubuntu Linux предоставляет пользователям возможность выполнять команду
sudo. Поэтому, чтобы выполнить команду, связанную с администрированием (на­
пример, команду useradd, служащую для добавления нового пользователя), можно
сначала ввести команду s udo:

$ sudo useradd -m joe

На правах суперполь зова теля добавляет нового
поль зова теля по имени joe

По умолчанию в операционной системе Ubuntu существуют ограничения, не
позволяющие создать учетную запись суперпользователя. Поэтому в Ubuntu не
предусмотрена и возможность выполнения команды su, которая обычно использу­
ется в других операционных системах Linux и которая дает возможность переклю­
чаться на учетную запись суперпользовате-!lя.
Если вам нужно выполftить некоторое количество команд, используя права
суперпользователя, вы можете выполнить команду, которая позволяет запускать
командный процессор от имени пользователя. root:

$ sudo bash
#

Запускает командную консоль о т ·имени суперполь зова теля

Если же вам нужно создать параль для учетной записи суперпользователя (что
позволит вам как входить в систему через учетную запись суперпользователя,
так и использовать команду su, чтобы временно им становиться), воспользуйтесь
командой sudo:

$ sudo passwd root

Устанавливает пароль уче тной записи суперполь зова теля

Впрочем, большинство пользователей Ubuntu просто используют sudo и нико­
гда не задают rооt-пароль.

Использование команды su
Если в какой-то момент вы все же решите создать параль для учетной записи су­
перпользователя с открытой командной строкой, то, чтобы стать суперпользова-

Получение прав суперпол ьэо вател я

81

телем, воспользуйтесь командой su. Кроме того, вы можете использовать коман­
ду su для переключемня на учетную запись другого пользователя, не являющегося
суперпользователем. В следующих примерах описываются принципы работы
команды su.
Простое выполнение команды su, продемонстрированное ниже, не предостав­
ляет доступа к исходному командному процессору со средой суперпользователя:
$ su
Password : *****
# echo SРАТН
/usr/l oca l /sbi n : / u s r / l oca l / bi n : /usr/sbi n : / u s r / b i n : / s bi n : / bi n : / u s r / games
/usr/kerberos / s bi n : / usr/ kerberos /bi n : / u s r / l oca l / bi n : / u s r / bi n : / bi n : / u s r / X l lRб/ b i n
: / home/fcaen/bi n
После выполнения команды su пользователь все еще обладает переменной РАТН
пользователя fcaen. Чтобы получить доступ к среде суперпользователя, исполь­
зуйте команду su с дефисом ( - ) :
# exi t
$ su Password : *****
# echo $РАТН
/usr/ kerberos/sbi n : /usr/ kerberos/bi n : / u s r/ l oca l / s bi n : / u s r/ l oca l / b i n : / s bi n : / bi n : /
usr/sbi n : /usr/bi n : / root/bi n
В большинстве случаев для получения прав суперпользователя достаточно
использовать su - , если нет острой необходимости воспользоваться другим спосо­
бом. Если не обозначен ни один пользователь, su устанавливает суперпользователя
по умолчанию. Однако команду su можно также применять, чтобы переключать­
си на других пользователей:

$ su - cnegus
ды

Команда su также может быть использована дли выполнения отдельной коман­
от лица конкретного пользователи:

$ su с whoami
Password : ******
root
# su - с ' l ess /var/1 og/messages '
-

Несмотря на то что во втором примере вход в систему изначально был осуще­
ствлен от лица обычного пользователя, выполнение команды whoami с параметром
su -с говорит о том, что вы являетесь суперпользователем. В первом же примере
с обеих сторон командной строки 1 ess необходимо установить кавычки, которые
служат для определения строки /va r 1 1 og/messages как параметра команды 1 ess. Как
уже было сказано, команда whoami может быть полезна для определении исполь­
зуемой дли выполнении текущей команды учетной записи:

$ whoami
fcaen

82

Глава З. Использование командного процессара

Распредел е ние прав с помощью команды sudo
Команда sudo позволяет очень четко разделять права доступа пользователей, не
имеющих доступа к учетной записи суперпользователя. Команда sudo является
прекрасным инструментом для предоставления расширенных привилегий в слу­
чаях, когда в системе используется несколько учетных записей пользователей,
а также для сбора информации о том, каким образом пользователи используют
предоставленные им привилегии.
Если не задано иное, s udo активизирует учетную запись суперпользователя.
В Ubuntu Linux для выполнения команд, требующих обладания привилегиями
суперпользователя, применяется команда sudo, а не su.
Настройки команды s udo хранятся в файле / etc/sudoers.
ВНИМАНИЕ

--------­

Никогда не редактируйте этот файл в обычном текстовом редакторе - вместо этого всегда исполь­
зуйте команду visudo.

Доступ к файлу / etc / s udoers ограничен, поэтому для его редактирования необ­
ходимо использовать команду sudo:
$ sudo vi sudo
Команда v i sudo запускает редактор (по умолчанию nano, про который расска­
зывалось ранее).
Если вы ознакомитесь с содержанием файла sudoers, поставляемого с вашим
дистрибутивом, то увидите пустые разделы, разделенные пр'Имечаниями, и один
активный оператор:
root

ALL= ( ALL )

ALL

Это значит, что пользователь root может выполнить любую команду от имени
любого пользователя на любой хает-машине. Чтобы все пользователи, входящие
в группу администратора, могли получить привилегни суперпользователя, в Ubuntu
Linux добавлена следующая срока:
%admi n

ALL= ( AL L )

ALL

После того как вы установите Ubuntu Linux, учетная запись пользователя, соз­
данная вами, автоматически добавится к этой группе. Чтобы дополнительным
пользователям были доступны rооt-привилегии, добавьте в файл следующую стро­
ку, изменив значение первого поля на имя учетной записи пользователя вашей
системы:
Fcaen

ALL= /usr/bi n / l ess / v a r / l og/mes sages

ПРИМЕЧАНИЕ

-------­

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

83

Переменные среды

Теперь пользователь fcaen (или любой другой добавленный вами пользователь)
может выполнить следующую команду:
$ sudo /usr/bi n/l ess /var/l og/messages
Password :
После того как пользователь fcaen введет свой пароль, он сможет просматривать
файл / v a r / l og/mes sages. Одновременно с этим будет установлена и временная мет­
ка, что позволит этому пользователю в следующие пять минут (время по умолча­
нию) вводить команды в командную строку и выполнять их без необходимости
указывать пароль.
Однако обычно приходится добавлять определенных пользователей в группу
admin, а не создавать индивидуальные записи в файле / etc / s udoers.
Каждое использование sudo регистрируется в файле / va r / l og/ secure:
Feb 24 21 : 58 : 57 l ocal host sudo : fcaen : TTY=pts / 3 ; PWD=/home / fcaen
USER=root ; COMМAND=/ usr/bi n / l ess / v a r / l og/messages
Далее добавьте следующую строку в / etc / s udoers:
Fcaen

serverl= ( chri s )

/bi n / l s /home/chri s

Теперь пользователь fcaen может выполнить следующую команду:
$ sudo - u chri s /bi n/l s /home/chri s
Команда sudo, приведеиная выше, будет выполнена от имени пользователя chris
и будет работать только на хает-сервере 1. В некоторых организациях управление
файлом /etc/ sudoers осуществляется централизованно и он используется на всех
хает-машинах, поэтому может оказаться полезным на отдельных машинах точно
определить права доступа к sudo.
Команда sudo также позволяет задавать алиасы или заранее заданные группы
пользователей, команд и хает-машин. Поищите соответствующие примеры в фай­
ле /etc/sudoers своей операционной системы Linux.

П ере м е нны е среды
Небольшие фрагменты информации, которые могут быть полезны для конфигу­
рации командной консоли, находятся в так называемых переменных среды. Обыч­
но имена переменных среды всегда пишутся с заглавных букв (хотя у этого прави­
ла есть исключения). Если вы используете командный процессор bash, то исходя
изразличных начальных сценариев bash, описанных ранее, некоторые переменные
среды будут уже установлены.
Чтобы отобразить все переменвые среды, уже установленные для вашей кон­
соли, в алфавитном порядке, выполните следующую команду:

$ set 1 l ess
BASH=/ bi n /bash COLORS•/etc / D I R_COLORS . xterm COLUMNS=118
D I SPLAY= : O . O

84

Глава 3. Использование командного процессара

HOME=/home / fcaen
HOSTNAМE=ei nstei n
Приведеиные выходные данные составляют лишь небольтую часть перемен­
ных, которые будут отображены у вас. Команда set также отображает и функции.
Команда env отображает только переменные среды.
Кроме того, вы можете устанавливать или сбрасывать переменные самостоя­
тельно. Например, чтобы присвоить переменной АВС значение 123 (а затем отобра­
зить содержимое АВС), выполните следующую команду:
$ АВС•123
$ echo $АВС
123
Переменная АВС существует только в той командной консоли, в которой она
была создана. Если вы выполните команду из другой консоли (ls, cat, firefox и т. д.),
то этому новому процессу созданная переменная не будет доступна. Запустите
новый процесс bash и проверьте это:
$ bash
$ echo $АВС
$
Кроме того, экспортировав переменные, вы можете сделать их частью среды,
которая передается дочерними процессами:
$ export АВС•123
$ bash
$ echo $АВС
1 23
Вы также можете объединить строку и существующую переменную:
$ export
PATН=SPAТН : /home/ fcaen
1
Чтобы отобразить все переменвые окружения bash, выполните следующую
команду:
$ env
При создании собственных переменных среды избегайте использования уже
задействованных системой имен. Список переменных среды командного процес­
сара приведен в Приложении 2.

Создани е просты х сценариев
дп я командного процессора
Сценарии командного процессара удобно использовать для автоматизации повто­
ряющихся задач. В bash и другие командные консоли включены базовые компо­
ненты, основанные на различных языках программирования, например: циклы,
условия, операторы варианта и т. д. Главное различие между ними состоит в том,
что есть только один тип переменных - строки.

Соэда ние п ростых сценариев для командного процессара

85

Реда ктирование и зап уск сценария
Сценарии командного процессара являются простыми текстовыми файлами.
Вы можете создавать их, используя любой текстовый редактор (например, vi). Что­
бы запустить сценарий, его файл должен быть исполняемым.
Например, если вы создали сценарий для командного процессара с именем
файла myscri pt . sh, то сделать его исполняемым можно следующим образом:
$ ehmod u+x myser1 pt . sh
При этом первая строка вашего сценария для bash всегда должна выглядеть
следующим образом:
# ! /Ьi n/bash
В данном случае комментарий начинается со знака #. Синтаксис # ! применяет­
ся в качестве комментария для командных консолей, которые не распознают этот
специальный синтакс И с. Часть /Ьi n / ba s h оповещает любой активный командный
процессор (будь то bash или другая консоль), какую программу следует использо­
вать для запуска сценария (поскольку раньше не все системы поставлялись с кон­
солью bash, часто в роли команды для запуска сценария можно увидеть /Ьi n / s h ) .
Как и с любой командой, помимо того, что любой сценарий командного процес­
сара должен быть выполняемым, сценарий, создаваемый вами, должен при запус­
ке являться частью переменной РАТН или определяться по его полному или отно­
сительному пути. Другими словами, как только вы попробуете запустить сценарий,
вы получите следующий результат:

$ щyser1 pt . sh
ba sh : щyscri pt . sh : comma nd not found

Команда не найдена

В этом примере папка, содержащая файл myscri pt . sh, не включена в переменную
РАТН. Для решения этой проблемы достаточно отредактировать путь, скопировать
сценарий в папку переменной РАТН или ввести полный или относительный путь
к вашему сценарию. Все четыре примера приведены ниже:
$
$
$
$

mkd1 r -/b1 n : ер myser1 pt . sh -/b1 n/
ер myser1 pt . sh /usr/l oeal /b1 n
. /myser1 pt . sh
/tmp/myser1 pt . sh

РА1Н-$РАТН : -/Ь1 n

Не следует ставить точку ( . ) в переменной окружения РАТН с целью обозначить,
что команда может бщть выполнена из текущей папки, поскольку ее имя может
совпасть с именем важной и широко используемой команды (например, 1 s или cat ),
что вызовет перезапись старых команд новыми, если у них будут одинаковые име­
на, и они окажутся в одной папке, а это может поставить под угрозу безопасность
всей системы.

Доба вл ен ие содерж имого в сценарий
Хотя сценарии командного процессара могут представлять собой всего лишь по­
следовательности команд, вы можете также по собственному усмотрению исполь­
зовать их в языках программирования. Например, если изменять вводимые данные,

86

Глава 3 . Использование командного процессара

сценарий может возвращать различные результаты. В этом подразделе описыва­
ется, как можно использовать в сценариях командной консоли сочетания команд:
например, операторы i f/then, операторы выбора и циклы for /wh i l е.
Ниже приведена команда, назначающая строку а Ьс переменной MYSTR I NG. Затем,
чтобы узнать, равна ли переменпая строке а Ьс, она проверяет вводимые данные
и далее действует исходя из результата проверки. Сам тест взят в квадратные скоб­
ки ( [ ] ):
MYSTRI NG=a bc
i f [ $MYSTR I NG = а Ьс J : then
echo " The v a r i aЬl e i s аЬс"
fi
Чтобы не проводить проверку, воспользуйтесь сочетанием ! = вместо =:
i f [ $MYSTR I NG ! = а Ьс ] : then
echo " $MYSTR I NG is not а Ьс " :
fi
Далее следуют рримеры тестирования на числа:
MYNUMBER=1
i f [ $MYNUMBER
i f [ $MYNUMBER
i f [ $MYNUMBER
i f [ $MYNUMBER
i f [ $MYNUMBER

- eq
-lt
-le
- gt
- ge

1
2
1
О
1

J
]
]
]
J

then
then
then
then
then

echo
echo
echo
echo
echo

" MYNUMBER
" MYNUMBER
" MYNUMBER
" MYNUMBER
" MYNUMBER

equa l s 1 " : fi
0 " : fi
>=1 " : fi

Теперь взгляните на некоторые примеры тестирования имен файлов. В данном
примере производится Проверка существования указанного файла ( - е) и его типа:
обычный файл ( - f) или папка ( - d). Это осуществляется с помощью операторов
i f/then. Если совпадений нет, то используется оператор е l se.
fi l ename= " $HOME "
[ - е $fi l ename J : then echo " $ fi l ename exi sts " : fi
i f [ - f " $ fi l ename " J : then
echo " $ fi l ename i s а regu l a r fi l e "
el i f [ - d " $ fi l ename " J : then
echo " $ fi l ename i s а d i rectory "
el se
echo " 1 have no i dea what $fi l ename i s "
fi

·н

В табл. 3. 1 приведены примеры тестов, которые могут быть осуществлены
с файлами, строками и переменными.
Та&пица 3.1. Операторы для тестирования
Оnератор

Оnисание теста

-а. file

Проверяет наличие файла (то же, что -е)

-ь file

Контролирует, какой файл является специальным блочным устройством

-с file

Проверяет, какой файл является специальным файлом устройства (например,
устройства последовательной передачи данных)

87

Созда ние простых сценариев для кома ндного процессара

О ператор

О писани е теста

-d file

Контролирует, какой файл я вляется каталогом

-е file

Проверяет наличие фа йла (то же, что -а)

-f file

Проверяет наличие файла и я вляется л и он обычным (напри мер, не я вляется
каталогом, сокетом, каналом, ссылкой или файлом устройства)

-g file

Обследует, какой файл обладает множеством битов set-g roup-id (назначение
идентификатора группы)

-h

file

Проверяет, какой файл и меет символьную ссыл ку (то же, что

-k file

Контроли рует, у ка кого файла есть бит закрепления в памяти

-L file

Проверяет, ка кой файл имеет символ ьную ссылку (то же, что

-п striпg

Проверяет, длина какой строки превы шает

-о file

Контролирует, каким файлом вы владеете

-р file

Проверяет, какой файл я вляется и менован н ы м каналом



file

-s file

О

-L)
-h)

байт

Обследует, какой файл доступен вам для чтения
Проверяет, существует л и файл и превы шает л и его размер

О байт

-s file

Контрол ирует, существует л и файл и я вляется л и он сокетом

-t fd

Проверяет, подключен ли дескриптор файла к терми налу

-u file

Поверяет, какой файл обладает множеством битов set-user-id (уста новка
идентификатора пользователя)

-w

file

-х file
-z

stri пg

exprl -а

Обследует, ка кой фа йл я вляется переза писываемым
Проверяет, какой фа йл является выполняемым
Контролирует, длина какой строки ра вна

О

байт

Проверяет, я вл яются л и спра ведливыми и первое, и второе выражения

expr2
exprl -о

Проверяет, я вляется л и справедл и в ым одно из двух выражени й

expr2
filel -пt file2

Контролирует, является ли первый файл более новым п о отношению к о второму
(используется метка времени созда ния/модифи кации файла)

filel -ot file2

Проверяет, является л и первый файл более старым по отношен ию ко второму
(используется метка времени созда ния/модификации файла)

filel -ef file2

Обследует, какой из двух файлов прикреплен к ссылке (жесткая ссылка или
символьная)

va rl = var2

Проверяет, ра вна ли первая переменная второй

varl -eq var2

Контролирует, равна ли первая переменная второй

varl -ge va r2

Поверяет, больше ли первая переменная второй или они ра в н ы

va rl -gt var2

Контролирует, больше ли первая переменная второй

va rl -le var2

Поверяет, меньше ли первая переменная второй или они ра вны

varl -lt va r2

Обследует, меньше л и первая перемен ная второй

va rl ! = var2

Проверяет нера венство первой и второй переменных

varl -пе va r2

88

Глава 3. Использование командного процессара

Другим часто используемым структурным компонентом является команда case.
Используя оператор case, можно проводить проверку переменных по различным
критериям и исходя из результата действовать дальше. Так же, как и оператор
swi tch, испол�зуемый в языках проrраммирования, оператор case может использо­
ваться вместо совмещенных операторов i f.
case " $VAR " i n
stri ngИ
{ act i onl } : :
stri ng2 )
{ act i on2 } : :
*)

defa u 1 t act i on } : :

esac
Примеры использования case вы можете найти в сценариях, применяемых при
запуске системы и находящихся в папке 1 etcl i ni t . d/. Каждый начальный сценарий
выполняется на основе применеиного ранее параметра (sta rt, stop и т. д.), а его
выбор осуществляется из большого количества вариантов.
ПРИМЕЧАНИЕ

-------­

Сценарии /etC/iпit.d выполняются посредством сценариев, хранящихся в папке /etcteveпt.d.

Командная консоль bash также позволяет выполнять стандартное построение
циклов, что продемонстрировано ниже. В первом примере все значения перемен­
ной NUMBER (от О до 9 включительно) приведены в строке for:
for NUMBER i n О 1 2 3 4 5 б 7 8 9
do
echo The number i s $NUMBER
done
В следующих примерах выходные данные команды 1 s составляют переменные,
в соответствии с которыми действует оператор fo r:
for F I L E i n ' / bi n / 1 s ' : do echo $ F I LE : done
Чтобы не перечислять для оператора for все доступные значения, можно при­
растить необходимое значение и продолжать выполнение через ЦИICJI с проверкой
условия, пока не будет устаноВJiено соответствие. В следующем примере вели­
чина переменной VAR начинается со значения О, и цикл с проверкой условия про­
должает увеличивать его до тех пор, пока оно не возрастет до 3:
" VAR=O "
whi 1 e [ $VAR - 1 t 3 ] : do
echo $VAR
VAR=$ [ $VAR+ l ]
done
Другим способом добиться аналогичного результата оператора цикла с услови­
ем продолжения является использование оператора unti 1 :
" VAR=O "
unt i 1 [ $VAR - eq 3 ] ; do echo $VAR ; VAR=$ [ $VAR+l ] ; done

Резюме

89

Если вы только начинаете осваивать проrраммирование в командной консоли,
ознакомьтесь с руководством Bash Guide for Beginners, доступным по адресу http://
tldp.org/LDP/8ash-Вeginners-Guide/html/index.html. Кроме того, вы можете воспользо­
ваться справочным материалом, например man, для ознакомления с примерами по
разработке качественных сценариев для командного процессора.

Рез ю м е
Несмотря на усовершенствование графического �;�нтерфейса пользователя, ко­
мандный процессор является одним из наиболее распространенных среди продви­
нутых пользователей методов работы в операционных системах Linux. Командная
консоль Bourne Again Shell (bash) является наиболее распространенным команд­
ным процессаром Linux. Она включает в себя множество полезных приложений,
предназначенных для фиксирования и восстановления выполняемых команд
(журнал), дополнения команд, установки алиасов и переназначения выводимых
и вводимых данных. Вы также можете, используя простые техники написания
сценариев для командного процессора, самостоятельно создавать эффективные
команды.

4

Р а б о та
с фа й л а м и

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

Ти пы файл ов
Папки и обычные файлы, несомненно, являются теми типами файлов, которые
будут использоваться вами наиболее часто. Однако в Linux используются и неко­
торые другие типы файлов. Командная консоль предоставляет множество спосо­
бов создавать, находить и просматривать различные типы файлов.
Файлы, предоставляющие доступ к устройствам компьютера, наэываются фай­
лами устройства. Устройства делятся на символьные и блочные. Кроме того, су­
ществуют жесткие ссшки и гибкие (символьные), которые могут использоваться,
чтобы сделать один и тот же файл доступным из раэных мест. Реже обычными
пользователями используются именованные каналы и сокеты, которые предостав­
ляют точки входа для процессов, позволяющих обмениваться данными.

О быч н ые файлы
К обычным файлам относят файлы данных (документы, музыку, изображения
и т. д.) и команды (двоичные и командные файлы). Определить тип файла позво­
ляет команда fi 1 е. Следующий пример демонстрирует способ перехода в папку
с документацией, касающейся командного пpot.teccopa bash, и использование коман­
ды fi 1 е для отображения типов файлов в данной папке:
$ cd /usr/share/doc/
$ fi 1 e doc - base/i nsta1 1 · docs . html
doc - base/ i n sta 1 1 - docs . htm1 : XML 1 . 0 document text
$ fi l e doc · base/copyri ght
doc - ba s e/ copyri ght : ASC I I Eng1 i sh text
$ fi l e doc - base/doc · base . html

91

Типы файлов

doc - base/doc - base . html / : d i гectoгy
$ fi 1 e doc/doc - base/change1 og . gz
doc - base/change1 og . gz : gzi p compгessed data . wa s " change1 og " . fгom Uni x . l a st
mod i fi ed : Thu Feb 22 07 : 29 : 26 2007 . max compгessi on
$ fi 1 e shared - mi me - i nfo/ shared - mi me - i nfo - spec . pdf
sha гed -mi me - i nfo/ sha гed - mi me - i nfo - s pec . pdf : PDF document . veгs i on 1 . 4
Команда fi 1 е отображает файлы-документы различных форматов, находящие­
ся в папках, содержащих документацию по Ubuntu. Эта команда может опреде­
лить, сжат ли текст, формат документа, в котором он может быть выведен на печать
(PDF или PostScript), а также обычный ли это незашифрованный текст или он
содержит метку HTML. Команда способна определить даже по.ztпапки, что являет­
ся достаточно неожиданным, поскольку они имеют дополнительные для них име­
на ( doc - base . html ) .
Создавать обычные файлы можно посредством любого приложения, которое
может сохранять данные. Если вы просто хотите создать пустой файл, чтобы на­
чать работу с него, воспользуйтесь одним из следующих способов:
$ touch /tmp/newfi 1 e . txt
$ > /tmp/newfi 1 e2 . txt

Создает пустой файл
Создает пустой файл

Определение полного описания файла является еще одним способом опреде­
лить его тип:
$ 1 s - 1 /tmp/newfi 1 e2 . txt
Отображает файл для определения его типа
- гw- г - - г - 1 chгi s chгi s О Sep 5 14 : 19 newfi l e2 \
Знак дефиса ( - ) является первым символом десятисимвольной информации
о правах доступа к файлу ( - гw- г - - г - - ) , который свидетельствует о том, что данный
файл является обычным (подробнее о правах доступа рассказывается в следующем
разделе). Команды также являются обычными файлами, но сохраняются как ис­
полняемые. Рассмотрим еще несколько примеров определения типа файла:
$ 1 s - 1 /usr/ b i n/apt - key
- гwхг - хг - х 1 гооt гооt 2230 2007 - 03 - 14 12 : 44 / u s г / b i n / a pt - key
$ fi l e /usr/bi n/apt - key
/usг/bi n / a pt - key : Bouгne shel l scгi pt text executaЫ e
$ fi 1 e /bi n/l s
/bi n / 1 s : ELF 32 - bi t LSB executa Ы e . I ntel 80386 . veгs i on 1 C SYSV ) . fо г GNU/ L i nux
2 . 6 . 0 . dynami c a l l y l i nked ( uses sha гed 1 i bs ) . stгi pped
Как вы могли заметить, команда а ргороs выполняется через свойство х для вла­
дельца, группы и др. Выполнение команды fi 1 е для файла a pt - key позволяет уви­
деdь, что он является сценарием командного процессора. Эта команда противопо­
ставляется исполняемому двоичному коду, как, например, приведеиная выше
команда l s .

Каталоги
Каталог представляет собой место хранения файлов и подкаталогов. Они организу­
ются в иерархическом порядке от корневого ( / ) до многочисленных подкаталогов,

92

Глава 4. Работа с файhами

отделяемых друг от друга символом 1. При работе с каталогами через графические
файловые менеджеры их принято называть папками.
Чтобы создать новый каталог для хранения данных, воспользуйтесь командой
mkdi г. Ниже приведены некоторые примеры использования данной команды, опи­
сывающие различные пути создания каталогов:
$ mkdi r /tmp/new
$ mkdi r - р /tmp/a/Ьic/new
$ mkdi r - m 700 /tmp/new2

Создае т ка талог new в l tmp
Создает по нере необходимос ти ка талог нижнего
уровня для new
Создает ка талог new2 с правани дос тупа drwx - - -

Первая команда mkdi г создает новый каталог в уже существующем катальге /tmp.
Во втором примере каталоги создаются по мере необходимости (подкаталоги
а, Ь и с), чтобы в результате был создан каталог new. В последнем примере, чтобы
установить права доступа к каталогу, добавляется параметр - m.
Поскольку первым символом строки доступа к каталогу является буква d, дан­
ный файл может быть определен как каталог:
$ fi 1 e /tmp/new
/ tmp/ new : d i гectoгy
$ 1 s · 1 /tmp
drwx г - xг - x 2 eгi c fj e г i cfj 4096 2007 - 09 - 1 1 07 : 25 new
Говоря о каталогах, необходимо также отметить, что, если вы хотите, чтоеы
пользователи могли использовать свои каталоги в качестве рабочих, для них долж­
ны быть установлены исполняемые биты (х).

С имвольные и жесткие ссыпки
Чтобы избежать копирования файлов и каталогов в различные части файловой
системы, можно использовать ссылки, позволяющие открывать доступ к одному
файлу из разных мест. Linux поддерживает гибкие (обычно называемые си.мволь­
ны.ми) и жесткие ссшки.
Когда вы пытаетесь открыть символьную ссьUlку, указывающую на файл, или
перейти по ссылке, указывающей на каталог, выполняемая команда перенаправит
вас к соответствующему файлу или каталогу. Объект ссылки обладает собствен­
НЪIМИ оравами доступа и оравами собственности, которые не могут быть опреде­
лены на основании содержащейся в символьной ссылке информации. Символьная
ссылка не обязательно должна располагаться на том же разделе диска, что и сам
объект. На самом деле символьная ссылка может существовать даже при отсут­
ствии объекта.
Жесткая ссьUlка, напротив, может существовать только для файлов (не катало­
гов) и обычно является одним из способов присвоения имени конкретному физи­
ческому файлу. Каждый файл обладает по меньшей мере одной символьной ссыл­
кой, под которой обычно понимается сам файл. Любые дополнительные имена
(жесткие ссылки), указывающие на данный отдельно взятый файл, должны нахо­
диться на том же разделе, что и сам файл-объект ссылки (по большому счету,

93

Типы файлов

чтобы определить, что файлы являются жесткими ссылками, достаточно выявить,
что они обладают одним и тем же номером inode ). Изменение прав доступа, прав
собственности, отметок даты и времени или содержимого любой жесткой ссылки
вызовет соответствующие изменения и в самом файле, однако удаление ссылки не
повлечет за собой удаление самого файла - он будет существовать до тех пор, пока
не будет удалена последняя жесткая ссылка на него.
Ниже приведено несколько примеров использования команды 1 n для создания
жестких и символьных ссылок:
$ touch myfi 1 e
$ 1 п myf1 1 e myfi 1 e - hard1 i nk
$ 1 n - s myfi 1 e myfi 1 e - sym1 i nk
$ 1 s - 1 1 myfi 1 e*
292007
- rw - r - - r - - 3 franco i s
292007
- rw - r - - r - - 3 francoi s
292008
1 rwxrwxrwx 2 francoi s

fra nco i s О Ma r 25 0 0 : 0 7 myfi 1 e
francoi s О Ma r 25 00 : 0 7 myfi 1 e - ha rd 1 i nk
francoi s б Ma r 25 0 0 : 09 myfi 1 e - sym1 i nk

Стоит отметить, что здесь для отображения результатов после создания жестких
и символьных ссылок была использована команда 1 s - 1 i'. Параметр - 1 i отображает
номера inode, сопоставляемые с каждым файлом. Так, вы можете видеть, что и myfi 1 е,
и myfi 1 e - ha rd1 i nk имеют одни и те же номера inode - 29200 7 (точно обозначающие
файл на жестком диске). Символьная ссылка myfi 1 е - sym1 i nk имеет уже другой номер
inode, и, хотя же�ткая ссылка фигурирует просто как файл (знак - ), символьная
ссылка обозначена уже как ссылка ( 1 ) с полностью открытыми оравами доступа.
Вы не сможете определить, разрешен ли вам доступ к файлу, на который указывает
символьная ссылка, пока вы не перейдете по ней или не просмотрите сам файл.

Файлы усr рой сr в
Когда приложениям необходима связь с устройствами компьютера, они направля­
ют данные в файлы соответствующих устройств. По умолчанию файлы устройств
хранятся в папке 1 dev. Сами же устройства обычно делятся на блочные (например,
хранилища) и идентификаторы накопителя (например, последовательные порты
и конечные устройства).
ПРИМЕЧАНИЕ
Файлы устройств часто называют драйверами. В Linux и UNIX операционная система почти все
интерпретирует как файл, откуда и термин «файлы устройств» .
-------­

Каждый файл устройства связывается с технологическим устройством (при
этом указывается тип этого устройства) и номером устройства (указывается номер
экземпляра устройства). Например, конечные устройства представлены техноло­
гическим устройством под номером 4, в то время как жесткие диски SCSI представ­
лены технологическим блочным устройством под номером 8. Вот несколько при­
меров файлов устройств:

$ 1 s - 1 /dev/ttyO /dev/sdal Отображае т специаль ные иден тифика торы накопи теля
brw- rw - - - - 1 root d i sk 8 , 1 2007 - 09 - 05 08 : 34 /dev / s d a 1
crw- rw - - - - 1 root root 4 . О 2007 - 09 - 05 08 : 34 /dev /ttyO

94

Глава 4 . Работа с файлами

Чтобы получить информацию о команде MAKEDEV, предназначенной для отобра­
жения списка номеров и имен устройств в Ubuntu Linux, ознакомьтесь с онлайн­
страницей справочника, посвященной этой команде. Большинство файлов устройств
создается автоматически во время.загрузки, поэтому большинство людей никогда
вручную не создает файлы устройств. Тем не менее, воспользовавшись командой
mknod, вы можете создать собственный файл устройства:
$ sudo mknod /dev/ttyS4

с

4 68

Добавляе т устройс тво для пя того
серийного пор та
Отображае т список новых файлов устройс тв
$ 1 s · 1 /dev/ttyS4
c rw - r - - r - - 1 root root 4 . 68 Sep б 0 0 : 35 /dev/ ttyS4

Именованные каналы и сокеты
Если вам необходимо, чтобы информация из одного процесса передавалась в дру­
гой, достаточно передать выводимые данные одного процесса во вход другого.
Однако, чтобы обеспечить эффект присутствия в файловой системе, из которой
один процесс может осуществлять связь с другим, предназначены именованные
каналы и сокеты. Именованные каналы обычно используются для осуществления
связи между процессами, в то время как сокеты - для обеспечения связи в сети.
Именованные каналы и сокеты часто размещаются Приложениями в папке /tmp.
Ниже приведено нескоJIЬко примеров именованных каналов и сокетов:
$ 1 s · 1 /tmp/ . ТV · chri s/tvti mefi fo · 1 oca1 /tmp/ . Xl l · uni x/XO
prw - - - - - - - 1 c h r i s chri s О Sep 26 2007 /tmp/ . TV - ch r i s /tvti mefi fo - 1 oc a 1
s rwxrwxrwx 1 root chri s О S e p 4 0 1 : 30 /tmp/ . X 1 1 - uni x/ X O
В первом случае речь идет о б именованном канале, установленном в tvtime ТV
card player (символ р в начале означает, что это именованный канал). Во втором
случае речь идет о сокете, установленном GUI Х для связи между процессами.
Чтобы создать собственный именованный канал, воспользуйтесь командой
mkfi fo:
$ mkfi fo mypi pe
$ 1 s · 1 mypi pe
p rw - r - - r - - 1 chri s c h r i s

О

Sep 26 00 : 57 mypi pe

Установление прав доступа к файла м
и па пкам
Возможности доступа к файлам, выполнения команд и перехода к каталогам могут
быть ограничены настройками прав доступа для пользователя, группы пользова­
телей и др. При составлении полного списка файлов и каталогов в Linux (команда
1 s - 1 ) первые 1 О отображаемых символов определяют сам элемент (файл, каталог,
блочное устройство и т. д.), с которым или без которого этот элемент может быть
прочитан, записан и/или выполнен. На рис. 4. 1 показаны значения этих симво­
лов.

95

Установление прав доступа к файлам и папкам
421 421 42 1

Индикато р/
тип а фа йла

\

1

1

drwxrwxrwx


l Груп а"'-

Польэователь

п

Други е

Рис. 4.1. Права доступа, устанавливаемые для файлов и каталогов

Для выполнения примеров, приведеиных в данном разделе, создайте каталог
/tmp/test и файл /tmp/test lhe 1 1 о . txt, а затем отобразите оба эти элемента:
$ mkdi r /tmp/test
$ echo " some text " > /tmp/test/he1 1 o . txt
$ l s - 1 d /tmp/test/ /tmp/test/hel 1 o . txt
d rwxr - xr - x 2 francoi s s a 1 es 4096 Ma r 21 13 : 1 1 /tmp/test
- rw- r - - r - - 2 francoi s s a 1 es 10 Ma r 21 13 : 1 1 / tmp/ test /he1 1 o . txt
Первый символ полученного списка указывает на то, что /tmp/test является
каталогом ( d ) , а he 1 1 о . txt - файлом ( - ). Другими типами файлов, доступными для
Linux и определяемыми первым символом, являются идентификаторы накопителя
(с), блочные устройства (Ь) или символьные ссылки ( 1 ), именованные каналы (р)
и сокеты ( s ) .
Следующие девять симво:1юв определяют права доступа к файлу и каталогу.
Первая группа символов rwx обозначает, что владельцу ( francoi s ) предоставлены
права на чтение, запись и выполнение файлов в данном каталоге. Аналогичным
образом можно сказать, что группа sa 1 es обладает более ограниченным доступом
( r - x ) к каталогу без права записи в него. Все остальные пользователи также обла­
дают оравами только на чтение и выполнение ( r- х) - дефис обозначает отсутствие
прав записи. Что же касается файла he 1 1 о . txt, то здесь пользователь обладает ора­
вами на чтение и запись ( rw - ), а пользователи группы и все остальные - только на
чтение ( r - - ) .
При изменении прав доt:тупа к элементам каждое значение может быть пред­
ставлено в виде восьмеричного числа (чтение - 4, запись - 2, а выполнение - 1 )
или буквенно ( rwx ) . Вообще, право н а чтение предоставляет возможность просмат­
ривать содержимое каталога, на запись - изменять (добавлять или модифициро­
вать) его, а на выполнение - переходить (другими словами, получать доступ)
к нему.
Если вас не устраивают настройки прав доступа к известным вам файлам или
каталогам, то можете поменять их � помощью команды chmod.

:. менение прав доступа с помощь ю команды
1mod
Команда chmod позволяет изменять права доступа к файлам и каталогам. В табл. 4 . 1

приведены некоторые примеры использования команды chmod, а также получения
доступа к каталогам и изменения файлов.

96

Гла ва 4. Работа с файлами

Табпица 4.1.

Изменение прав доступа к файлам и каталогам

Команда chmod
(восьмеричным
чисnом
иnи буквами)

Оригинаnьнь1е
права доступа

chmod 0 700

апу

Н о вые
права
доступа
d rwx- - ----

О писани е

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

chmod 0 7 1 1

any

drwx--x--x

Владелец обладает теми же права м и .
Все остальные могут открывать каталог,
но не могут просматривать или изменять
файлы в нем. Это может быть полезно
для усиления за щиты сервера, когда
необходимо запретить просмотр
содержимого каталога, но требуется
открыть доступ к отдельному файлу

chmod go+r

drwx------

d rwxr- - r--

Доба вление пра в чтения каталога может
при вести к нежелательным результата м,
однако если не выполн ить этого действия,
другие не смогут п росматривать файлы,
содержащиеся в нем

chmod 07 77
chmod a=rwx

any

d rwxrwxrwx

Пол н ы й доступ

chmod оооо
chmod · a-rwx

any

d---------

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

chmod 666

any

-rw-rw-rw-

Открывает п рава на чтение и изменение
файла

chmod go-rw

-rw-rw-rw-

-rw-------

Не позволяет никому, кроме самого
владел ьца, п росматривать, вносить
изменения или удалять файл

chmod 644

any

-rw-r--r--

Только владелец может вносить
изменения в файл или удалять его, но все
могут его п росматривать

Первый ноль в строке режима обычно опускается (то есть допускается исполь­
зование 777 вместо 0777). Этот структурный ноль имеет специальное значение: это
восьмеричная цифра, которая может использоваться в командах (исполнитель­
ных) для обозначения того, что данная команда может выполняться как програм­
ма-установщик идентификатора пользователя ( U I D) (4), программа-установщик
идентификатора группы ( G I D ) ( 2 ) или стать битом закреплен ия в памяти ( 1 ).

97

Установление прав доступа к файлам и папкам

С программами-установщиками UID и GID команда выполняется с правами до­
ступа, назначенными для пользователей или групп (а не с правами пользователя
или группы, запустивших команду).
BHИMAHИE
SUID не должны использоваться в сценариях командного процессора. В разделе справки Liпux,
посвященном безопасности, содержится следующее предупреждение: «SUID-сценарии \ /tmp
$ cd tmp - l i nk/
$ pwd
/ home/ francoi s / tmp - l i nk
$ pwd . р
/tmp
$ pwd L
/ home/ francoi s /tmp - l i nk
$ cd L
$ pwd
/home/ francoi s
$ cd tmp - l i nk
$ cd - Р
$ pwd
·

·

.

.

1

Использование параметров - Р и :- L для команд pwd и cd позволяет работать с ка­
талогами, сввзанiiЬl)lи символьными ссЬIJIК8Ми, из их основных месторасполо­
жений или ссылок на них соответственно. Например, команда cd - L . . перемеща­
ет вас на один уровень вверх относительно вашего основного каталога, тогда как
команда cd - Р
перемещает вас на один уровень выше корневого каталога ( / ).
Аналогично параметры Р и L команды pwd отоб ражают основные месторасполо­
жения каталогов и ссылки на них.
Bash может запоминать и хранить список рабочих каталогов. Этот список может
быть полезен, если вы захотите вернуться к ранее открываемым каталогам. Для до­
бавлении и удаленив каталогов из этого списка используйте команды p u s h d
и popd:
.

.

·

$ pwd
/ home/ franco i s
$ pushd /usr/ share/man/
/ u s r / s h a re/man $ pushd /var/l og/
/ v a r/ l og / u s r / s h a re/man $ di rs
/ v a r/ l og / u s r / s h a re/man
$ di rs - v
О / v a r/ l og
1 / u s r / s h a re/ma n
2 -

·

100
$ popd
/ u s r/.�ha re/ma n
$ pwd
/ us r / s h a re/ma n
$ popd

Глава 4. Работа с файлами

-

$ pwd
/ home/ franeoi s
Команды di rs, pushd и popd также могут б ыть использованы для управления
порядком отображения каталогов в стеке. Например, ком11нда pushd 0 перемещает
последний каталог из стека на самый верх (делая его рабочим), команда pushd - 2
перемещает третий каталог снизу стека н а его верх и т . д.
-

Копиро �;�ани е фа йлов
Если вы обладаете правами доступа на запись в какой-либо каталог, то копирова­
ние файлов и каталогов может осуществляться с помощью нескольких совсем про­
стых команд. Стандартная команда ер осуществляет копирование файла, сохра­
нив его ими или присваивав новое, в новый каталог и создает ему новую отметку
времени. Другие параметры команды ер позволяют сохранять отметки даты и вре­
мени, осуществлять рекурсивное копирование и запрашивать подтверждение на
перезапись:
$
$
$
$
$
$
$

cd : touch i ndex . html
mkdi r /tmp/html
ер - i i ndex . html ·/tmp/html /
ер · i l i ndex . html /tmp //html
mkdi r /tmp/baek
ер - а /tmp /html /mp/back/
ер - R /tmp /html /tmp/baek/

В приведеиных примерах продемонстрированы способ ы копирования файлов.
В первом примере использования команды ер, если файл i ndex . htm 1 уже существу­
ет в папке / tmp/ html , перед перезаписью поверх него нового файла ото б разится
запрос на подтверждение этого действия. В следующем примере файл i ndex . html
является объектом жесткой ссылки, имеющей то же имя и хранящейся в каталоге
/tmp/ html . В данном случае, поскольку обе жесткие ссылки указывают на один и тот
же файл, редактирование файла через лю бую ссылку повлечет за собой изменение
содержимого оригинального файла, где б ы он ни находился (ссылка может рабо­
тать только в том случае, если каталог /tmp/ html и ваш основной каталог находятся
в одной и той же файловой системе).
Команда ер - а копирует все файлы из каталога /tmp/ html , сохраняя все настрой­
ки прав соб ственности и доступа. Если, например, файл /tmp/ baek будет представ­
лен запоминающим USВ-устройством, то с помощью этой команды можно будет
записать содержимое вашего интернет-сервера на данное запоминающее устрой­
ство. Параметр R осуществляет рекурсивное копирование структуры каталога
-

101

Копирование фа йлов

и назначает в качестве владельца каталога текущего пользователя, изменяя теку­
щие отметки даты и времени.
Команда dd также предназначена для копирования данных. Она весьма эффек­
тивна, поскольку в системах Linux все элементы рассматриваются как файлы,
включая периферийные устройства, например:
$ dd 1 f•/dev/zero of•/tmp/mynul l fi l e count•l
1+0 records i n
1+0 records out
512 bytes ( 512 В) copi ed . 0 . 00 0308544 s . 1 . 7 MB/ s
Файл 1 dev 1 zero является специальным файлом, генерирующим н улевые симво­
лы. В предыдущем примере команда dd использовала файл /dev/ zero в качестве
файла входящих данных и выводила данные в файл /tmp/mynu1 1 fi 1 е. Единицей
измерения здесь является количество блоков. По умолчанию размер одного блока
составляет 5 1 2 б айт. Таким образом, в результате выполнения данной команды
получился файл размером 5 1 2 байт, содержащий только нули. Для просмотра со­
держимого файла можно воспользоваться командой 1 ess или v i , однако лучшим
приложеннем для просмотра файла в данном случае будет команда od:
$ od · vt xl /tmp/mynul l fi l e

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

Вот еще один пример использования команды dd:
$ dd i f•/dev/zero of•/tmp/mynul l fi l e count•lO bs•2
10+0 records i n
10+0 records out
20 bytes ( 20 В) copi ed . 0 . 00 05957 14 s . 33 . 6 kB/s
На этот раз размер блока б ыл установлен равным 2 байтам, а скопировано б ыло
10 блоков (20 б айт). Следующая командная строка копирует первый раздел
основного жесткого ID Е-диска на второй раздел подчиненного жесткого IDЕ­
диска (прежде чем приступить к выполнению подоб ной операции, выполните ре­
зервное копирование данных):
$ sudo dd i f•/dev/hdal of•/dev/hdb2
ВНИМАНИЕ -------­
Будьте предельно осто рожны при испол ьзовании этой команды . Вообще, у вас не должно возник­
нуть необходимости перезаписывать части жестких дисков.
Следующий пример демонстрирует резервное копирование ведущего жестко­
го диска ID E со сжатием первого раздела. О б ычно перед подоб ным копировани­
ем раздел демонтируется.
$ sudo umount /dev/hdal
$ sudo dd i f=/dev/hdal 1 gzi p > bootpart . gz
Следующая команда копирует файл-об раз IS O с компакт-диска или DVD на
USВ-носитель (предполагается, что носитель отображен как /dev/ sdЫ ) :

$ sudo dd i f=whatever . i so of=/dev/sdЫ

102

Глава 4. Ра бота с файлами

Стоит отметить, что данная команда создает б инарную копию байтов файла,
что, возможно, не соответствует вашим целям.
В следующем примере главная загрузочная запись копируется из основного
жесткого диска IDE в файл mymbrfi 1 е:

$ dd i f•/dev/hda of-mymbrfi l e bs•512 count•l
Если вам необходимо создать копию об раза ISO, записанного на компакт-диск
или DVD, вставьте диск в C D/DVD-npивoд и выполните следующую команду
(необ ходимо, чтоб ы файл /dev/cd rom соответствовал вашему СD-приводу):

$ dd i f•/dev/cdrom of-whatever . i so
ПРИМЕЧАНИЕ
Помимо файлов устройств /dev/ctJrom, Ubuntu создает файлы устройств /dev/ctJrw и /dev/dvd.

-------­

И зм ене ни е атрибутов фа йла
Все файлы и каталоги в Linux обладают определенными оравами доступа на чтение,
запись и выполнение, основанными на имени пользователя, группы и др. Однако
существуют также другие, присущие только некоторым типам файловых систем
атри буты, которые могут закрепляться за файлами и каталогами.
В файловых системах ext2 и ехtЗ файлы обладают специальными атрибутами,
которые могут использоваться по выб ору. Команда 1 sattr позволяет просмотреть
эm атрибуты. Большинство атрибутов являются скрытыми и не назначаются по
умолчанию. Ниже приведен пример использования команды 1 sattr для просмотра
некоторых атрибутов файлов:

$ l sattr /etc/host*
- - - - - - - - - - - - - /etc /host . con f
- - - - - - - - - - - - - /etc / hosts
- - - - - - - - - - - - - /etc/ host . a 1 l ow
- - - - - - - - - - - - - /etc /host . deny
$ l sattr - aR /tmp/ 1 l ess
Рекурсивно о тображае т все а трибуты ка талога / tтр
Дефисы соответствуют 1 3 атрибутам ext2jext3 , которые могут б ыть установле­
ны. Ни один из них не является отоб ражаемым по умолчанию: а (только добавле­
ние), с (сжатый), d ( б ез дампа), 1 (постоянный), j (регистрация данных), s ( безо­
пасное удаление), t (запрет слияния в конце файла), u (неудаляемый), А ( б ез
об новления atime ), D (синхронные об новления каталогов), S (синхронные об нов­
ления) и Т (верхушка дерева каталогов) . С помощью команды chattr вы можете
изменять эти атрибуты:

$ sudo chattr +i whatever . i so
$ sudo chattr +А - R /home/ francoi s/i mages/*
$ sudo chattr +d ubuntu - 7 . 04 - desktop . i ЗSб . i so
$ l sattr whatever . i so /home/ francoi s / i mages/* ubuntu - 7 . 04 - desktop . i ЗSб . i so
- - - - i - - - - - - - - whatever . i so
- - - - - - - А- - - - - / home/ francoi s / i ma ges /ei nstei n . j pg
- - - - - - -А- - - - - / home/ fra ncoi s / i mages /goth . j pg
- - - - - - d - - - - - - ubuntu - 7 . 04 - desktop . i ЗBб . i so

Поиск файлов

103

Как видно из предыдущего примера, при использовании параметра +i файл
whatever i so становится постоянным, то есть он не может быть удален, переиме­
нован или изменен, а также для него не может быть создана ссылка. Это предот­
вращает любые случайные изменения файла (даже суперпользователь не сможет
внести изменения в файл, пока не будет снят атрибут i . ) Используйте этот атрибут
для обеспечения безопасности системных файлов.
П араметр - R, приведенный в примере, рекурсивно устанавливает параметр +А,
что запрещает всем файлам, хранящимся в каталоге i mages и его подкаталогах, изме­
нять время доступа (atime). Установка атрибута А может помочь сэкономить 1/0
дисков ноутбуков и флэш-накопителей. Если вы для резервного копирования
своих файловых систем ext2/ext3 используете команду dump, то к файлам, обладаю­
щим атрибутом d, копирование Применено не будет. В данном случае мы предпо­
читаем не выполнять копирования больших образов ISO.
Для удаления атрибута воспользуйтесь командой chatter совместно со знаком - :

$ sudo chattr . ; whatever . i so
�МЕЧАНИЕ -------­
Вэломщики, которым успешно удалось проникнуть в систему, часто заменяют некоторые системные
бинарные файлы (например, ls или ps} поврежденными версиями и делают их неотключаемыми .
Поэтому полезно иногда проверять атрибуты, назначенные исполняемым файлам (например, в ка­
талогах /Ьin, /usr/Ьin, /sЬin и /usr/sbln}.

о м с к файлов
Ubuntu с помощью приложений из пакета mlocate создает базу данных всех фай­
лов файловой системы (с несколькими исключениями, заданными в файле /etc/
updatedb . conf ) . Команда 1 ocate позволяет производить поиск по этой базе данных
(в Ubuntu команда 1 ocate представляет собой символьную ссылку на команду
sl ocate ) . Результаты выводятся после завершения поиска по базе данных (а не по
самой файловой системе). До внедрения же команды 1 ocate большинство пользо­
вателей Linux для поиска файлов в файловой системе использовали команду fi nd.
Ниже описаны как команда 1 ocate, так и команда fi nd.
ои с к

файлов с помощь ю команды locate

Поскольку в базе данных присутствуют имена всех элементов файловой системы,
а не только команды, вы можете использовать 1 ocate для поиска команд, устройств,
страниц справочника man, файлов Д81П1ЫХ и любого другого элемента файJ:Iовой
системы, распознаваемого по имени:
$ 1 ocate elOOO
/ l i Ь/modu 1 es / 2 . 6 . 20 - 16- generi c/ kerne1 /dri vers / net /e1000
/ l i Ь/modu 1 es / 2 . 6 . 20 - 16- generi c / kerne1 /dri vers /net/e1000/e1000 . ko
/ l i Ь/modul es / 2 . 6 . 20 - 15 - generi c/ kerne1 /dri vers /net/e1000
/ l i Ь/modu1 es / 2 . 6 . 20 - 1 5 - generi c/ kerne1 /dri vers /net/e1000/e100 0 . ko
/ us r / s rc / l i nux- headers - 2 . 6 . 20 - 1 6 - generi c / i ncl ude/ confi g/e1000
/usr/src / 1 i nux- headers - 2 . 6 . 20 - 1 6 - generi c / i nc 1 ude/confi g/e1000/napi . h
/usr/src/ 1 i nux- headers - 2 . 6 . 20 - 16- generi c / i nc1 ude/confi g/e1000 . h

104

Глава 4. Работа с файлами

/ u s r / s rc / 1 i nux - headers - 2 . 6 . 20 - 15 - generi c / i nc1 ude/con f i g/e1000
/ u s r / s rc/ 1 i nux- headers - 2 . 6 . 20 - 1 5 - generi c/ i nc 1 ude/confi g / e1 0 0 0 / napi . h
/ u s r / s rc/ 1 i nux - headers - 2 . 6 . 20 - 1 5 - generi c / i nc1 ude/confi g/e1000 . h
/ u s r / s rc/ 1 i nux- headers - 2 . 6 . 20 - 15 / i nc1 ude/confi g/e1000 . h
/ u s r / s rc / 1 i nux- headers - 2 . 6 . 20 - 15/dri vers /net/e1000
/ u s r / s rc / 1 i nux- headers - 2 . 6 . 20 - 15/dri vers / net /e1000 /Makefi 1 e
/ us r / s rc / 1 i nux- headers - 2 . 6 . 20 - 16/ i nc1 ude/confi g/e1000 . h
/ u s r / s rc / 1 i nux- headers - 2 . 6 . 20 - 16/dri vers /net/e1000
/ u s r / s rc/ 1 i nux- headers - 2 . 6 . 20 - 16/dri vers / net/e1000 /Makefi 1 e
В приведеином выше примере б ыло найдено две версии модулей ядра е 1 OOO.ko.
Стоит заметить, что команда 1 ocate, если не использовать параметр - i , является
чувствительной к регистру:
$ l ocate - i i tco wdt
/ 1 i Ь/modu 1 es/2 . 6�20 - 1 6 - gener i c / kerne1 /dri vers/cha r/watchdog / i TCO wdt . ko
/ 1 i Ь/modu 1 es / 2 . 6 . 20 - 1 5 - generi c/ kerne1 /dri vers/cha r/watchdog / i TCO=wdt . ko
Пакет s 1 ocate (в некоторых дистрибутивах Linux называемый m1 ocate) включа­
ет в себя c ron j ob, который для об новления б азы данных файлов 1 ocate ежедневно
выполняет команду updatedb.
Чтоб ы немедленно обновить базу данных locate, вручную выполните команду
updatedb:

$ sudo updatedb

О предепение местонахождения файлов с помощью
команды find
До внедрения команды 1 o c a t e поиск файлов производился с помощью команды
fi nd. Хотя команда 1 ocate осуществляет поиск б ыстрее, у fi nd есть множество дру­
гих эффективных параметров, полезных для выполнения поиска файлов, основы­
вающегося не на имени, а на других атрибутах.
ПРИМЕЧАНИЕ -------­
Сканиро ва ние целой файловой системы может занять достаточно много времени, nоэтому, nрежде
чем пристуnить к нему, поnробуйте просканировать nодсистему файловой системы или исключить
некоторые каталоги или удаленно смонтированные файловые системы.
В следующем примере выполняется рекурсивный поиск файла с именем е100
в корневой файловой системе ( / ) :
$ fi nd 1 - name " elOO* " - pri nt
fi nd : / u s r/ 1 i Ь / a ud i t : Permi s s i on den i ed
fi nd : / u s r/ 1 i bexec / utempter : Permi s s i on den i ed
/ sys /modu 1 e/e100
/ sys / bus / pc i /dri vers /e100
Результатом выполнения команды fi nd от имени об ычного пользователя может
стать длинный список сооб щений Permi s s i on deni ed ( Отказано в доступе), посколь­
ку команда fi nd пытается просмотреть каталоги, к которым вы не имеете прав

Поиск файлов

105

доступа. Для из бежания этого вы можете исключить из поиска недоступные ка­
талоги:
$ fi nd 1 - name elOO - pri nt 2>&1 1 grep - v " Permi s s i on deni ed "
Или отправить все сооб щения об оши б ках в б итоприемник ( �корзину•) 1 d e v 1
nu1 1 :
$ fi nd 1 - name elOO - pri nt 2> /dev/nu1 1
Поскольку команда fi nd является чувствительной к регистру и имя необ ходимо
вводить точно (поиск имен е100 и е100 . ko даст различные результаты), вы можете
для более точного поиска испоJIЬзовать регулярные выражения:
$ fi nd 1 - name ' elOO* ' - pri nt
/ 1 i Ь/modu1 es / 2 . 6 . 20 - 16- generi c/ kerne1 /dri vers /net/e1000
/ 1 i Ь/modu 1 es / 2 . 6 . 20 - 16 - generi c/ kerne1 /dri vers / net/e1000/e10 0 0 . ko
/ 1 i Ь/modu1 es / 2 . 6 . 20 - 16 - generi c/ kerne1 /dri vers / net/e100 . ko
/ 1 i Ь/modu 1 es / 2 . 6 . 20 - 15 - generi c/kerne1 /dri vers /net/e1000
/ 1 i Ь/modu 1 es / 2. 6 . 20 - 1 5 - gene r i c / kerne1 /dri vers /net/e1000/e100 0 . ko
/ 1 i Ь/modu1 es / 2 . 6 . 20 - 15 - generi c/ kerne1 /dri vers/net/e100 . ko
/usr/ s rc/ 1 i nux- headers - 2 . 6 . 20 - 16 - generi c/ i nc1 ude/confi g/e100 . h
/ u s r / s rc/ 1 i nux � headers - 2 . 6 . 20 - 16- gener i c / i nc1 ude/ confi g/e1000
/usr/src/ 1 i nux - headers - 2 . 6 . 20 - 16- generi c/ i nc1 ude/confi g/e1000 . h
/us r / s rc/ 1 i nux- headers - 2 . 6 . 20 - 15 - generi c / i nc1 ude/confi g/e100 . h
/usr/src/ 1 i nux- headers - 2 . 6 . 20 - 15 - generi c/ i nc1 ude/confi g/e1000
/usr/src/ 1 i nux- headers - 2 . 6 . 20 - 15 - gener i c / i nc1 ude/confi g/e1000 . h
/usr/src/ 1 i nux - headers - 2 . 6 . 20 - 15/ i nc 1 ude/confi g/e100 . h
/usr/src/ 1 i nux- headers - 2 . 6 . 20 - 15/ i nc 1 ude/confi g / e 1 0 0 0 . h
/usr/src/ 1 i nux- headers - 2 . 6 . 2 0 - 15/dri vers / net/e1000
/ us r/ s rc/ 1 i nux - headers - 2 . 6 . 20 - 16/ i nc1 ude/ confi g/e100 . h
/usr/src/ 1 i nux - headers - 2 . 6 . 20 - 16/ i nc1 ude/confi g/e1000 . h
/usr/src/ 1 i nux- headers - 2 . 6 . 20 - 16/dri vers /net / e 1 0 0 0
Кроме того, в ы можете осуществлять поиск файлов по временным меткам.
Следующая команда осуществляет поиск файлов в каталоге /usr/Ьi n / , к которым
обращались в последние две минуты:

$ fi nd /usr/bi n/ - ami n -2 - pri nt
/usr/Ьi n /
/usr/Ьi n / fi nd
Следующая же команда ищет в каталоге / home/chri s файлы, к которым не обра­
щались более 60 дней:
$ fi nd /home/chri s/ - at i me +60
Для поиска каталогов предназначен параметр - type d. Следующая команда
ищет все подкаталоги 1 etc и перенаправляет stderr в корзину ( 1 dev 1 nu 1 1 ) :
$ fi nd /etc - type d - pri nt 2> /dev/nu1 1
Данная команда находит в каталоге 1 sbl n файлы с правами доступа, соответ­
ствующими 750:
$ fi nd /sbi n/ - perm 750 - pri nt

106

Глава 4. Ра бота с файлами

Параметр ехес команды fi nd является весьма эффективным, поскольку он по­
зволяет воздействовать на найденные с помощью команды fi nd файлы. Следующая
команда ищет в каталоге / v a r все файлы, владельцем которых является francois
(должен б ыть зарегистрированным пользователем), и выполняет для каждого из
них команду 1 s · 1 :
$ fi nd /var - user francoi s

- ехес

1 s - 1 {} \ ;

Альтернативным параметру ехес команды fi nd является параметр xa rgs :

$ fi nd /var - user francoi s - pri nt 1 xargs 1 s · 1
В действиях данных команд есть существенные различия, поэтому и результа­
ты их выполнения очень разные. Команда fi nd - ехес применяет для каждого полу­
ченного результата поиска 1 s. Команда же xa rgs работает более эффективно, по­
скольку в качестве вводимых данных для одной команды 1 s применяет множество
результатов поиска.
Чтоб ы инверmровать критерий поиска, поставьте перед этим критерием вос­
клицательный знак ( ! ) . В следующем примере выполняется поиск всех файлов,
которые не являются собственностью группы root и являются об ычными файлами,
а затем для каждого из них выполняется команда 1 s - 1 :
$ fi nd 1 ! - group root - type f - pri nt 2> /dev/nu1 1 1 xargs 1 s -.1
В следующем примере осуществляется поиск файлов в каталоге /sЬi n, которые
являются об ычными файлами с закрытыми оравами доступа на запись, а затем для
каждого из них применяется команда 1 s - 1 :
$ fi nd / sbi n/ - type f ! - perm /o+w - pri nt 1 xargs 1 s - 1
- rwxr - xr - x 1 root root
3056 2007 - 03 - 07 15 : 44 /sbi n / acpi a v a i 1 aЫ e
- rwxr - xr - x 1 root root
43204 2007 - 02 - 18 20 : 18 / sbi n / a 1 sa ct1

Поиск файлов определенного размера является прекрасным способом опре­
делить, что занимает место на ваших жестких дисках. Следующая команда ищет
все файлы, размер которых превышает 10 М б айт ( +10М ) , составляет список этих
файлов в порядке от самых крупных до наиболее мелких ( 1 s - 1 S) и направляет этот
список в текстовый файл ( / tmp/Ьi gfi 1 es . txt ):
$ fi nd 1 - xdev - si ze +lOH - pri nt 1 xargs 1 s - 1 S > /tmp/bi gfi 1 es . txt

В данном примере параметр - xdev запрещает поиск в люб ых смонтированных
файловых системах, кроме файловой системы суперпользователя. Это способ по­
зволяет запретить команде fi nd производить поиск в каталоге / proc и любой уда­
ленно или локально смонтированной файловой системе.

Другие команды дпя поиска файлов
Среди других команд, предназначенных для поиска файлов, можно назвать коман­
ды wherei s и wh i ch:
$ wherei s man
ma n : / u s r / b i n/man / u s r / X 1 1R6/ bi n/man / u s r / b i n / X 1 1 /ma n / u s r / 1 oca 1 /ma n
/ u s r / s h a re/man / u s r / s h a re/ma n /ma n 1 /ma n . 1 . gz / u s r / s h a re/ma n /man7/ma n . 7 . gz

Получ ение более подробной информации о файлах

107

$ whi ch 1 s
/Ьi n / 1 s
Команда wherei s позволяет осуществлять поиск не только команд, но и страниц
справочника man, а также конфигурационных файлов, связанных с соответству­
ющей командой. Как видно из приведеиного выше примера, запрос команде wherei s
на поиск слова ma n возвращает исполняемый файл man, его конфигурационный
файл, а также месторасположение М АN-страниц для команды ma n. Второй пример
(команда wh i ch ) отображает адрес исполнительного файла 1 s ( / Ь i n / 1 s ) . Команда
whi ch полезна, если необ ходимо определить расположение исполняемого файла
в переменной РАТН:
$ dpkg - query -S ' whi ch ps ·
procps : /Ьi n/ps

П олучение бол ее подробно й ин формации
о фа йлах
Теперь, когда вам известно, каким образом можно искать файлы, вы можете полу­
чать более подроб ную информацию о них. Использование менее об щих параметров
команды 1 s позволяет отображать информацию о файле, которую вы не могли б ы
увидеть б ез их использования. Такие команды, как fi 1 е, помогают определять тип
файла, а используя mdSsum и sha1 sum, можно проверять подлинность файла.

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

$
$
$
$
$
$
$
$
$

1s
1s
1s
1s
1s
1s
1s
1s
1s

-1
-1а
-1t
-1u
-1S
-11
-1n
-1h
-1R

Отображае т список файлов и ка талогов в текущем ка талоге
Отображает файлы и ка талоги . начинающиеся с точки ( . )
Сор тируе т файлы по времени последнего изменения
Сор тирует файлы по времени последне го о ткрытия
Сор тируе т файлы по размеру
Отображает список нонеров inode . связанных с каждым файлом
Отображае т внесто инен числовые идентифика торы поль зова теля / группы
Отображает размеры файлов в удобной для ч тения форме (Кбайт . Мбайт и т . л . )
Рекурсивно отображае т файлы из рабочего ка талога и его подка талогов

Существуют также способ ы по-разному отображать различные типы файлов
в процессе их просмотра:
$ 1s -F
myfi 1 e - sym1 i nk@ confi g/
$ 1 s - - co1 or=a1 ways
$ 1 s -С

Добавляет символ для определения типа файла
memo . txt pi pefi 1 e l scri pt . s h* xpi d . socket=
Выделяет типы файлов различными цветами
Отображает файлы в с толбцах

108

Глава 4. Работа с файлами

В первом примере на выходе .команды отображаются различные типы файлов.
Запись myfi l e - syml i nk@ указывает на то, что это символьная ссылка на каталог,
confi g/ является об ычным каталогом, memo . txt об ычным файлом ( без дополни­
тельных символов) , pi pefi 1 е 1
именованным каналом (созданным с помощью
mk fi fo ), scri pt . sh* исполняемым файлом, а xpi d . socket= сокетом. В следующих
двух примерах типы файлов выделяются цветами и отображаются в стол бцах со­
ответственно.
-

-

-

-

Проверка файлов
Вместе с проrраммными пакетами и образами компакт-дисков или DVD, доступ­
ными в Интернете, часто поставляютс� файлы SHAlSUM или MD5SUM. Эти файлы со­
держат контрольные суммы, которые могут б ыть использованы, чтоб ы убедиться,
что загружаемый файл является подлинным и издан репозиторием.
Ниже приведены примеры использования команд md5sum и shalsum для генера­
ции контрольных сумм файлов :
$ md5sum whatever . ; so
d41d8cd98f00b204e9800998ecf8427e whatever . i so
$ shalsum whatever . ; so
da39a3ee5eбb4b0d3255bfef9560 1 890a fd80709 w h atever . i so
Выбор команды зависит от того, какую информацию предоставляет поставщик
проверяемого вами файла md5sum или sha l s um. Например, файл md5sum . txt для
дистри бутива U buntu Feisty содержит следующую информацию:
-

90537 599d934967 f4de97ee0e7e66eбc . / d i sts / fei sty/ma i n/bi nary - i 386/Rel ease
c531 52b488a9ed52 1c96fdfЫ2albbba . /d i sts / fei sty/ma i n/bi n a ry - i 386/ Packages
ba9a 035c27 0baбdf978097ee68b8d7c6 . /d i sts / fei sty/ma i n/bi n a ry - i 386/ Packages . gz
Этот файл ото б ражает все контрольные суммы M DS для всех файлов на
U buntu 7.04 Live CD.
С помощью параметра -с команды md5sum вы можете проверить сразу всю ни­
формацию о файлах, которая представлена в файле md5sum . txt:
$ md5sum с md5sum . txt
. /d i sts / fei sty/ma i n / b i n a ry - i 386/Rel ease : ОК
. /d i s t s / fei sty/ma i n/bi n a ry - i 386/ Packages : ОК
. / d i sts / fei sty/ma i n/bi n a ry - i 386/ Packages . gz : ОК . . .
-

Чтоб ы проверить только один файл из списка, можно выполнить следующую
команду:
$ cat md5sum . txt 1 grep Rel ease . gpg l md5sum
. /d i sts / fei sty / Rel ease . gpg : ОК



Если для Проверки на соответствие у вас вместо файла md5s um . txt есть только
файл SHAlSUM, вы можете аналогичным о б разом использовать команду s h a l s um.
Используя совместно описанную ранее в данной главе команду fi nd и команду
md5s um, вы можете проверять любую часть файловой системы. Например, можно

109

Резюме

создать контрольную сумму MD5 для всех файлов каталога 1 etc таким об разом,
чтоб ы позже их можно б ыло проверить на наличие изменений:
$ sudo fi nd /etc · type f · ехес md5sum {} \ ; > /tmp/mdS . l i st 2> /dev/nul l
В результате выполнения предыдущей команды создается файл /tmp/md5 . 1 i st,
содержащий 1 2 8 - б итную контрольную сумму для каждого файла каталога / etc.
Теперь, чтоб ы определить, б ыли ли изменены какие-ли б о из этих файлов, вы мо­
жете в любой момент выполнить следующую команду:
$ cd /etc
s md5sum · с /tmp/md5 . l i st 1 grep · v ок
. / hosts . a l 1 ow : FAI LED
md5sum : WARN I NG : 1 of 1668 computed checksums d i d NOT match
·

·

Как вы можете заметить, в данном случае б ыл изменен лишь один файл ( hosts .
а 1 1 ow ) , поэтому теперь необ ходимо будет проверить измененный файл и опреде­
лить, б ыли ли эти изменения намеренными.

Резюме
В Linux существуют десятки команд, предназначенных для получения информа­
ции о файлах и работы с ними. Такие команды, как chmod, могут изменять права
доступа к файлам, тогда как команды наподоб ие 1 sattr и chattr могут использо­
ваться для просмотра и изменения атри б утов, связанных с такими файловыми
системами, как ext2 и ехtЗ.
Для навигации по файловой системе наи более часто используется команда cd,
однако для повторяющегося передвижения по одним и тем же каталогам вы може­
те использовать команды pushd и popd, позволяющие работать с хранилищем ката­
логов.
Копирование файлов чаше всего осуществляется с помощью команды ер, одна­
ко для копирования файлов (таких как об разы дисков) с устройства (например,
CD-R O M ) может б ыть использована и команда dd. Для создания каталогов вы
можете использовать команду mkdi r.
Чтоб ы не создавать множество копий одного и того же файла, раз бросанных по
всей системе, вы можете воспользоваться символьными и жесткими с.сылками,
позволяющими закрепить за одним файлом или каталогом несколько имен. Сим­
вольные ссылки могут присутствовать где угодно в системе, в то время как жесткие
ссылки должны находиться на одном разделе с файлом-оригиналом.
Для поиска файлов в Linux используются команды 1 ocate и fi nd, а для проверки
подлинности файлов, загружаемых из Интернета, - команды md5s um и s h a 1 s um.

5

Об ра б от ка те ксто в о й
и н ф орма ц и и

Использование первых UNIХ-систем (на которых б ыла основана Linux), управ­
ляемых только с помощью командной консоли, требовало тесной работы с коман­
дами и простыми текстовыми файлами. Документы, исходный текст, файлы кон­
фигурации, электронная почта и почти все создаваемые или настраиваемые вами
элементы системы представлены в виде текстовых файлов. Для работы с подоб ны­
ми файлами разраб отчики того времени создали множество приложений, позво­
ляющих редактировать текст.
Несмотря на наличие графических приложений для работы с текстом, наи более
опытные пользователи Linux считают приложении для командной строки более
эффективными и удо б ными. Текстовые редакторы vi (vim), Emacs, J O E , nano
и Pico доступны на б ольшинстве дистри бутивов Linux. Такие команды, как g rep,
sed и awk, могут б ыть использованы для поиска и, возможно, изменения фрагмен­
тов информации, содержащихся в текстовых файлах.
В этой главе рассказывается о способах использования многих популярных
команд, предназначенных для работы с текстовыми файлами в U buntu. Кроме того,
здесь рассматриваются менее известные способ ы применении команд по редакти­
рованию текста, которые могут показаться вам интересными.

Поиск в тексте с помо щ ь ю ре гул ярны х
в ы ра жении
....

Многие приложения, предназначенные для работы с текстом, позволяют исполь­
зовать регулярные вьtра:жения (regular expressions), иногда называемые regex, для
поиска необ ходимого текста на основе определенной схемы. Эти выражения могут
использоваться для поиска текста внутри текстового редактора или же, в совокуп­
ности с командами поиска, для сканирования большого количества файлов на на­
личие нужных строк.
Схема поиска regex может основываться на конкретной текстовой строке
(или всего одном слове, например L i nux) или месторасположении (например, конец
строки или начало слова). Поиск может б ыть узким (найти именно слово hel l o)

Редактирование текстовых файлов

111

или б олее широким (найти лю б ое слово, начинающееся н а h и заканчивающее­
си на о).
Приложеине 3 включает в себя справочную информацию о метасимволах ко­
мандного процессора, которые могут б ыть использованы в сочетании с регулярны­
ми выражениями для осуществления точного поиска. В данном разделе приведены
примеры использования регулярных выражений совместно с некоторыми прило­
жениями, которые будут рассмотрены в этой главе.
В табл. 5. 1 приведены примеры использования некоторых регулярных выраже­
ний для поиска нужных строк в тексте. Многие из представленных здесь примеров
используются в примерах на протяжении всей главы.
Помните, что не каждая команда, основывающаяся на геgех, одинаково исполь­
зует его элементы.
Таблица 5.1. Поиск с помощью регулярных выражений
Выражение

Результат nоиска

а*

а, аЬ, аЬс и aecjejich

ла
*а$

Любое

а.с
[Ьcf]at

Трехсимвольные строки, начинающиеся с «а» и эаканчивающиеся на «С»

Любое

«а», находящееся в начале строки
«а», находящееся 11 конце строки

Ьаt, cat или fat
aat, Ьаt, cat, dat, но не Aat, ваt и т. д.
Aat, ваt, cat и Dat, но не aat, Ьаt и т. д.
137, 147 и 1 57

[a-d]at
[A-D]at
1[3-5]7
\tHello
\. [tТ][хХ][тt]

Символ табуляции, предшествующий слову hello
.txt, .ТХТ, .ТхТ или другие сочетания на основе изменения регистра

Реда кт и рование текстовых файлов
В мире LinuxjUNIX используется множество текстовых редакторов. Наи б олее

широко используемым из них является редактор vi, который можно найти прак­
тически на люб ой современной операционной системе UNIX. Именно поэтому
умение редактировать даже незначительный текстовый файл в vi является обяза­
тельным требованием для администратора Linux. Если однажды вам придется вос­
станавливать онлайн-подключение в незнакомой среде, vi может оказаться прило­
жением, которое всегда будет под рукой.
Уб едитесь, что в вашей версии U b untu установлен расширенный пакет vim.
Редактор vim представляет соб ой наиб олее современный, с б ольшим количеством
функций и дружественный пользователю редактор' vi. Для получения б олее по­
дроб ной информации по использованию vi ознакомьтесь с Приложеннем 1 .
ПРИМЕЧАНИЕ
UЬuпtu устанавливает vim по умолчанию .

-------­

112

Глава 5. Обработка те кстовой информации

Традиционно, другим популярным текстовым редактором для 'UNIX является
Emacs и его вариант, более ориентированный на графическую оболочку, XEmacs.
Emacs является мощным многофункциональным приложением, которое также
может служить для чтения почты или новостей, а также выполнять другие функ­
ции. Emacs также известен своими очень сложными клавнатурными сокращения­
ми, для своб одной раб оты с которыми необ ходимо иметь три руки.
В середине 1 990-х годов Emacs иревзошел vi в отношении характеристик. Сей­
час же, когда широко распространен vim, оба редактора способ ны предоставлять
люб ые необ ходимые функции. Если вы еще недостаточно хорошо знакомы с vi
и Emacs, мы рекомендуем вам начать с изучения vi.
В Linux существует много других команд и приложений GUI для редактирова­
ния текста. Среди консольных редакторов, которые могут вам показаться проще
в об ращении, чем vi или Emacs, можно выделитьjЕD,JОЕ и nano. Запустите любой
из этих редакторов, указав в командной строке его название, при желании дополнив
его в конце именем файла, который хотите отредактировать. В следующих подраз­
делах дано короткое описание использования каждого из перечисленных выше
редакторов.
-

Испопьзование реда ктора ЗО Е
Если вы ранее пользавались классическими текстовыми процессорами, например
Word Star, раб отающими с текстовыми файлами, вам будет комфортно раб отать
и в редакторе J О Е. Для его использования установите программный пакет J О Е.
Для использования средства проверки орфографии в J ОЕ уб едитесь, что установ­
лен программный пакет aspell (U buntu устанавливает его по умолчанию). Для уста­
новки jОЕ выполните следующую команду:
$ sudo apt - get i nstal l joe
Для перемещения по файлу в редакторе J О Е предназначены знаки управления
и клавиши управления курсором. Чтоб ы открыть текстовый файл для редактиро­
вания, просто введите команду j oe и имя необ ходимого файла или воспользуйтесь
одной из следующих команд:
$ joe memo . txt
$ joe - wordwrap me.a . txt
$ joe · l margi n 5 - tab 5 memo . txt
$ joe +25 memo . txt

Открывает файл memo . txt для редактирования
Включает ав тома тический перенос в процессе
редактирования
Ус танавливает левую границу
в положение 5 . а з на чение табуляции на 5
На чинает редактирование на с троке 25

Чтоб ы добавить текст, просто начните печатать. Для многих функций редактор
поддерживает клавнатурные сокращения. Используйте клавиши со стрелками для
передвижения курсора влево, вправо, вверх или вниз.. Используйте клавишу Delete
для удаления текста под курсором или Backspace для удаления текста слева от
курсора. Нажмите Enter для переноса строки. Для вызова справки используйте
сочетание клавиш Qri+K+H. В табл. 5 . 2 приведены наи б олее о б щие примеры ис­
пользования сочетаний клавиш для редактирования текста в J О Е.

1 13

Редактирование текстовых файлов
Тр бпица 5.2. Сочетания клавиш, предназначенные для редактирования в JOE
Сочетание кпавиw

Реэупьтат исnопьэования

Перемещение курсора

Ctri+B
Ctri+P
Ctri+F
ctri+N
Ctri+Z
Ctri+X

Влево
Вверх
Вправо
Вниз
Предыдущее слово
Следующее слово

Поиск

Ctri+K+F
Ctri+L

Найти текст
Найти далее

Абзац

Ctri+K+B
Ctri+K+K
Ctri+K+M
Ctri+K+C
Ctri+K+W
Ctri+K+Y
Ctri+K+/

Переместиться в начало абзаца
Переместиться в конец абзаца
Переместить блок
Скопировать блок
Записать блок в файл
Удалить блок
Установить ф ильтр

Раэное

Ctri+ K+A
Ctri+T
Ctri+ R

Центральная строка
Параметры
Обновить информацию

Файп

Ctri+K+E
Ctri+K+R
Ctri+K+D

Открыть новый файл для редактирования
Вставить файл на место расположения курсора
Сохранить

Переход

Ctri+U
ctri+V
Ctri+A
Ctri+E
Ctri+K+U
ctri+K+V
Ctri+K+L

Предыдущий экран
Следующий экран
Начало строки
Конец строки
Начало файла
Конец файла
Перейти к строке номер

Удапение

Ctri+D
Ctri+Y
Ctri+W

Удалить символ
Удалить строку
Удалить слово справа
Продолжение

rP

1 14

Глава 5. Обработка текстовой информации
Табпица 5.2 (продолжение)

Сочетание ICII a виw

Результат исnопЬ30вания

Ctri+O

Удалить слово слева

Ctri+J

Удалить строку справа

Ctri+­

Отменить действие

Ctrl+ б

Вернуть действие

Выход
Ctri+K+X

Сохранить и выйти

Ctri+C

Отменить

Ctri+ K+Z

Выйти в консоль

Проверка nравоnисания

Ctri+[+N

Слово

Ctri+[+L

Файл

Работа с реда кторами Pico и nano
Pico - это популярный неб ольшой текстовый редактор, распространяемый как
часть почтового клиента Pine. Хотя Pico является бесплатной программой, его код
не открыт. Именно поэтому многие дистри бутивы Linux, включая U b untu, не пре­
доставляют по умолчанию Pico. Вместо него они предлагают клон Pico с открытым
исходным кодом, называемый nano (nano - еще один редактор; от англ. another).
В этом подразделе описывается именно этот редактор.
ПРИМЕЧАНИЕ

�-------­

Команда pico в Ubuпtu ссылается на редактор nano.

Редактор nano (представленный командой nano) является компактным тексто­
вым редактором, который запускается из командной консоли и рассчитан на рабо­
ту с экраном (поскольку он ориентирован на раб оту с регистром). Nano популярен
среди тех, кто раньше использовал почтовый клиент Pine, так как nano использует
те же инструменты редактирования, что и Pico. В некоторых редких случаях, когда
в системе Linux недоступен редактор vi (если, например, вы устанавливаете мини­
мальный набор приложений Gentoo Linux), nano все равно будет доступен. Ubuntu
устанавливает nano по умолчанию. Для осуществления проверки правописания
в редакторе nano используется команда s pe l l , а не a s pe l l .
Как и в случае с редактором jОЕ, редактор nano не требует выполнения специ­
альных команд для начала редактирования - открыв документ, вы можете сразу
начинать печатать. Чтоб ы открыть текстовый файл для редактирования, просто
введите команду nano и имя файла или воспользуйтесь одним из следующих пара­
метров:
$ nano rnemo . txt
$ nano · В memo . txt
$ nano - m memo . txt
$ nano +83 memo . txt

Открывает файл memo . txt для редактирования
При сохранении осущес твляет резервное копирование
предыдущего варианта в файл - . имя файла
Включает управление курсором с помощью мыши
(если э то поддерживае тся )
На чинае т редактирование со с троки 83

115

Редактирование текстовых файлов

Параметр - m командной строки активизирует поддержку мыши, которая может
б ыть использована для вы бора позиции курсора в тексте. Следует помнить, что,
если дважды щелкнуть кнопкой мыши на тексте, будет выделен целый его блок,
что не всегда удоб но.
Чтоб ы перемешать курсор влево, вправо, вверх или вниз, используйте клавиши
со стрелками. Используйте клавишу Delete для удаления выделенного текста под
курсором или 8ackspace для удаления текста слева от курсора. Для переноса стро­
ки нажмите клавишу Enter. Для вызова справки используйте сочетание клавиш
Ctri+G. В табл. 5.3 приведены сочетания клавиш, используемые nano (их описание
также содержится в справке nano) .
Та&nица 5.3. Сочетания клавиш, испольэуемые для редактирования в папо
Сочетание
кпавиw

Функционаnьная Описание
кпавиwа

Ctri +G

F1

Показывает текст помощи (для выхода нажмите Ctrl+x)

Ctri+X

F2

Выходит из папо (или закрывает текущий буфер файла)

Ctri+O



Сохраняет текущий файл

Ctri+J

F4

Выравнивает текст в текущем абзаце

Ctri+R

FS

Вставляет текст в текущий файл

Ctri+W



Запускает поиск в тексте

Ctri+Y

F7

Переходит

Ctri+V

FB

Переходит к следующему экрану

Ctri+K

F9

В!>rреэает (и помещает в буфер обмена) текущий файл
или выделенный текст

Ctri+U

F10

Вставля�т в файл ранее вырезанную строку

Ctri+C

F11

Отображает текущее положение курсора

Ctri+T

F12

к

предыдущему экрану

Начинает проверку правописания

Ctri+­

Переходит к выделенной строке и номерам столбцов

Ctrl+\

Ищет и заменяет текст

Ctrl+ б

Выделяет текст начиная от места расположения курсора
(для снятия выделения нажмите Ctrl+ б)

Ctri+ F

Перемещает курсор на один символ вперед

Ctri+B

Перемещает курсор на один символ назад

Сtri+Пробел

Перемещает курсор на одно слово вперед

Аlt+Пробел

Перемещает курсор на одно слово назад

Ctri+P

Перемещает курсор на предыдущую строку

Ctri+N

Перемещает курсор на следующую строку

Ctri+A

Перемещает курсор в начало текущей строки

Ctri+E

Перемещает курсор в конец текущей строки

Alt+(

Перемещает курсор в начало текущего абзаца

Alt+)

Перемещает курсор к концу текущего абзаца

Alt+\

Перемещает курсор к первой строке файла

Alt+/

Перемещает курсор к последней строке файла

,Продолжение

rP

116

Глава 5. Обработка текстовой информации
Таблица 5.3 (продолжение)

Сочетание
кпавиw

Функционаnьная Оnисание
кпавиwа

Alt+]

Перемещает курсор ко второй скобке

Alt+=

Прокручивает текст вниз на одну строку

Alt+-

Перемещает строку вверх

Графические текстовые реда кторы
Сам факт редактирования текста не означает, что вы используете именно кон­
сольный редактор. Основные преимущества использования графических тексто­
вых редакторов состоят в том, что вы можете использовать мышь для выбора меню,
выделять, вырезать, копировать текст и пользоваться специальными расшире­
ниями.
Если на вашей операционной системе Linux установлена графическая оболочка
GNOME, то наверняка у вас установлен и текстовый редактор для GNOME (gedit).
Инструменты gedit позволяют осуществлять проверку правописания, отображать
статистику документа, изменять шрифты и цвета и распечатывать документы.
В оболочке Рабочего стола KDE также присутствует собственный текстовый редак­
тор KDE (kedit в программнам пакете kdeutils). Он предоставляет тот же набор
функций, что и текстовый редактор GNOME, а также некоторые дополнительные,
например возможность отправлять документы с ш;>мощью kmail или другого кон­
фигурируемого пользователем компонента KDE.
Сам по себе редактор vim входит в версию Х GUI. Он запускается с помощью
команды gvi m, являющейся частью программнога пакета vim-X 1 1 . Если вы хотите
сделать vim для GUI более удобным, то загрузите конфигурацию Cream с сайта
http://cream.sourceforge.net/.
ПРИМЕЧАНИЕ

-------­

Для использования gvim вам придется установить дополнительный пакет - vim-gпome.

Среди других графических текстовых редакторов, которые вы мож�те устано­
вить, можно назвать nedit (предоставляет инструменты для использования макро­
сов и выполнения консольных команд и ориентирован на разработчиков программ­
наго обеспечения) и leafpad (предоставляет те же инструменты, что и Windows
Notepad). Текстовый редактор Scribes (scribes) предоставляет некоторые специ­
альные инструменты для автоматического исправления, замены, сдвига и допол­
нения слов.

Отобра же ни е, упоря дочивани е
и реда кт ировани е текста
Помимо обычного редактирования отдельных текстовых файлов, для отображения,
поиска и управления содержимым одного или более текстовых файлов одновре;
менно вы можете использовать большое количество команд, доступных в Linux.

Отображение, упорядочивание и редактирование текста

117

гображение текстовых файлов
Основным способом просмотра содержимого текстового файла является выпол­
нение команды cat. Команда cat конкатенирует (или выводит данные в виде стро­
ки символов) содержимое текстового файла на экран (по умолчанию). Чтобы раз­
личными способами выводить содержимое файла, вы можете использовать
различные метасимволы командного процессора:
$

$
$
$
$
$

cat
cat
cat
cat
cat
cat

Отображае т содержимое файла на экране
myfi l e . txt
myfi l e . txt > copy . txt
Отправляет содержимое файла в другой файл
myfi l e . txt >> myotherfi l e . txt Прикрепляет содержимое файла к другому файлу
Отображает последова тельные пус тые с троки как одну
- s myfi l e . txt
n myfi l e . txt
Показывае т нонера с трок с выводиными данными
· Ь myfi l e . txt
Отображает нонера толь ко для з аполненных с трок
-

Однако если блок вашего текста превышает длину нескольких строк, исполь­
зование команды cat становится нецелесообразным. В этом случае для просмотра
всего текста или его пролистывания вам понадобится приложении более высокого
уровня.
Для просмотра файла с его начала используйте команду head:
$ head myfi l e . txt
$ cat myfi l e . txt 1 head

В обеих командных строках для отображения первых десяти строк файла ис­
пользуется команда head. Для выведения любого количества строк от начала фай­
ла вы можете определить их количество в качестве параметра:
$ head · n 50 myfi l e . txt
$ ps auwx 1 head - n 15

Отображает первые 50 строк файла
Выводит первые 1 5 с трок выхода команды ps

Выполнить это можно также с помощью следующего устаревшего (но более
короткого) синтаксиса:
$ head · 50 myfi l e . txt
$ ps auwx 1 head · 15

Для аналогичного просмотра конца файла предназначена команда ta i 1 :
$ tai l · n 15 myfi l e . txt
$ tai l · 15 myfi l e . txt
$ ps auwx 1 tai l - n 15

Отображает последние 1 5 строк файла
Выводит последние 1 5 строк файла
Отображае т последние 15 с трок выхода команды ps

Команда ta i 1 также может использоваться для непрерывного просмотра конца
файла, когда файл создается другой программой. Это очень полезно для чтения
файлов журнала в режиме реального времени во время поиска и устранения неис­
правностей в apache, sendmail и многих других системных службах:
# tai l · f /var/l og/messages
# tai l · f /var/l og/mai l l og
# tai l · f /var/l og/httpd/access_l og

Просма тривает сис темные сообщения
в режиме реаль ного времени
Просма тривает сообщения поч тового
сервера в режиме реаль ного времени
Просма тривает сообщения веб -сервера
в режиме реаль ного времени

1 18

Глава s. Обработка текстовой информации

Посr раничный просмотр всего тексrа
Когда у вас есть большой фрагмент текста и вам нужно просмотреть не только его
начало или конец, потребуется приложение длв постраничного просмотра текста.
Изначально системной программой UNIX, предназначенной для постраничного
вывода на экран текста, была команда more:
$ ps auwx 1 more
$ more myfi l e . txt

1 Пос транично о тображае т выход ps (для о тображения
следующей с траницы нажните Пробел )
Постранично о тображае т содержиное файла

Однако у команды more есть некоторые ограничения. Например, в первой коман­
де, представленной выше, more не может осуществлять прокрутку вверх. Команда
1 ess была изначально создана как более эффективная и ориентированная на поль­
зователя, чем more. При описании команды 1 ess обычно говорят: • What is less? less
is more ! • (дословно: •Что такое меньше (less)? Меньше - это больше ( more ) • ).
Мы рекомендуем вам вместо команды more всегда использовать команду 1 ess.
ПРИМЕЧАНИЕ -------­
Команда less обладает еще одним преимуществом, заслуживающим внимания . . В отличие от тексто­
вых редакторов (например, vi), она не прочитывает весь файл сразу при его загрузке, что позволя­
ет быстро загружать и отображать содержимое больших файлов.

В приведеиных ниже примерах команда l es s используется с тем же синтакси­
сом, что и more:
$ ps auwx 1 l ess
$ cat myfi l e . txt 1 l ess
$ l ess myfi l e . txt

Пос транично о тображает выход конанды ps
Пос транично о тображае т Содержиное файла
Пос транично о тображае т текс товый файл

Команда 1 ess позволяет перемещатьсв по файлу с помощью клавиш управле­
ния курсором t и .J.. , а также клавиш Page Up, Page Down и Пробел. Если вы исполь­
зуете команду 1 es s по отношению к файлу, то, чтобы открыть его в редакторе, на­
жмите клавишу V. Тип используемого в данном случае редактора будет определен
исходя из переменных среды, заданных для вашей учетной записи. Редактор бе­
рется из переменной среды V I SUAL, если она определена, или EDI ТOR, если редактор
V I SUAL не определен. Если ни один из редакторов не определен, l ess использует
редактор JОЕ (в Ubuntu).
ПРИМЕЧАНИЕ -----8 подобном случае в других верс�ях Unux в качестве редактора по умолчанию эадействуется vi.

Для выхода из режима просмотра файла нажмите сочетание клавиrn Cti'I+C. Как
и в редакторе vi, при просмотре файла с помощью команды 1 e s s поиск строки
осуществляется нажатием клавиши 1, после чего требуется ввести искомую строку
и нажать клавишу Enter. Для вывода остальных найденных строк последовательно
нажимайте клавиши 1 и Enter.
Для перемещенив по тексту вперед и назад используйте клавиши F и В соот­
ветственно. Например, десять нажатий клавиши F переместит вас на десять строк
вперед, а 1 5 нажатий клавиши В - на 1 5 строк назад. Для перемещения на полови-

1 19

Отображение, упорядочивание и редактирование текста

ну экрана вниз преднаэначена клавиша D, а для перемещения на половину экрана
вверх - клавиша U.

1эбиен и е текста на страницы
Команда pr предоставляет возможность быстро форматировать фрагмент текста
для подготовки его к последующему выводу на печать. Она может быть особенно
полезна, если требуется распечатать результаты выполнения каких-либо команд
без необходимости запускать программу для редактирования или текстовый ре­
дактор. Используя команду pr, вы можете раэбивать текст на части, добавляя в за­
головок каждой страницы текущую дату, время, имя файла и номер страницы:
$ dpkg - query · 1 1 sort 1 pr · · co1 um�2 1 1 ess

Разбивает список программных
паке тов на два с толбца

В данном примере команда rpm - qa отображает список всех программных паке­
тов, установленных �;� вашей системе, передает этот список команде sort, чтобы
рассортировать его в алфавитном порядке, затем направляет этот список команде
pr, преобраэует его список в список из двух столбцов ( - - со 1 umns=2) и разбивает его.
В результате выполняется команда 1 es s , позволяя вам просмотреть отформатиро­
ванный текст.
Вы также можете направить выводимую информацию в файл или на печать,
не просматривая ее:
$ dpkg - query · 1 1 sort 1 pr · · co1 um�2 > pkg . txt
$ dpkg· query · 1 1 sort 1 pr · · co1 um�2 1 1 pr

Направляет выход pr в файл
Направляет выход команды pr
на прин тер

Другие операции с текстом, которые вы можете выполнять с помощью коман­
ды pr, включают в себя увеличение междустрочного интервала в два раэа (пара­
метр - d), отображение управляющих символов ( параметр - с ) и смещение текста на
определенное количество знаков от левого края (например, параметр - о 5 позво­
ляет сместить текст на пять знаков).

оиск в тексте
Команда grep очень удобна, если необходимо выполнить сложный поиск строк
в файле. На самом деле выражение •to grep• уже вошло в компьютерный жаргон,
как и •to Google• ( •гуrлить• ) - в популярный. Вот примеры использования ко­
манды g rep:
$
#
$
$
$

grep francoi s myfi 1 e . txt
grep 404 /var/1 og/httpd/access_1 og
ps auwx 1 grep i ni t
p s auwx 1 grep " \ [*\] "
dmesg 1 grep " [ ] ata\ l "ata "

Показывает
Показывает
Показывает
Показывает
Показывает

с троки . содержащие слово franco i s
с троки . содержащие число 404
с троки i n i t из выхода ps
команды . заключенные в скобки
информацию об устройс тве ядра ata

У этих командных строк, помимо того, что они являются примерами исnользо­
вания команды g rep, есть некоторые частные случаи применения. Выполнив поиск

120

Глава 5. Обработка текстовой информации

числа 404 в файле access_l og, вы сможете просмотреть запросы на поиск ненайденных
страниц, поступивших на веб-сервер на страницы (возможно, кто-то пытается
использовать вашу систему или веб-страницу, которую вы переместили или забы­
ли создать). Отображение строк выхода команды ps , заключенных в скобки, позво­
ляет просмотреть команды, параметры которых команда ps отобразить не может.
Последняя команда проверяет защитное кольцо ядра на наличие любой информа­
ции о любых устройствах АТА, таких как жесткие диски или СD-приводы.
Команда g rep способна также осуществлять одновременный рекурсивный по­
иск нескольких файлов. Следующая команда осуществляет рекурсивный поиск
строки Vi rtu a l Host в каталогах /etc/ httpd /conf и /etc/ httpd/conf . d:
$ grep · R Vi rtual Host /etc/httpd/conf*

Стоит отметить, что в каталоге /etc/ httpd может не быть файлов, начинающих­
ся с conf: это зависит от состава установленных у вас проrрамм. Эта же техника
может быть применена и к другим файла� .
Чтобы найти конкретные строки, в которых встречается элемент поиска, до­
бавьте в команду g rep номера строк ( параметр - n ) :
$ grep - Rn Vi rtual Host /etc/httpd/conf*

Чтобы разбить найденные данные на столбцы разного цвета, добавьте пара­
метр - - col or:
$ grep - - col or - Rn Vi rtual Host /etc/httpd/conf*

По умолчанию в многофайловом поиске имя файла отображается для каждого
результата поиска. Чтобы отключить вывод имен файлов, используйте параметр
- h . Следующий пример демонстрирует выполнение поиска строки sshd в файле
a uth . l og:
$ grep - h sshd /var/l og/auth . l og

Если вы хотите сделать поиск сообщений нечувствительным к используемому
регистру, используйте параметр - i :
$ grep . ; sel i nux /var/l og/messages

Ище т в файле слово se l inux
(независино о т регистра )

Для отображения только имен включенных в поиск файлов добавьте к коман­
де параметр - l :
$ grep · Rl Vi rtual Host /etc/httpd/conf*
Для отображения всех строк, которые не содержат указываемое сочетание,
добавьте параметр - v:
$ grep -v

200

/var/l og/httpd/access_l og*

Отображает с троки .
не содержащие число 200

ПРИМЕЧАНИЕ -------­
При передаче выводимых данных иэ ps в grep для предотвращения появления процесса grep в ре­
зультатах поиска применяют одну хитрость: # ps auwx 1 grep "[i]пit".

121

Отображение, упорядочивание и редактирование текста

О предепение количесr ва эл ементов
Иногда необходимо знать количество строк, содержащихся в искомом фрагменте
текста. Команда wc позволяет подсчитывать количество полученных строк. Напри­
мер, следующая команда отображает количество записей конкретного I Р-адреса
в файле журнала Apache:
$ grep 192 . 198 . 1 . 1 /var/1 og/httpd/access - 1 og 1 wc - 1

Команда wc может быть использована и для других целей. По умолчанию она
отображает количество строк, слов и байт в файле:
Отображает счетчики для одного файла
$ wc /var/1 og/dmesg
436 3847 27984 /va r/ 1 og /dmesg
Отображает о тдель ные з на чения для каждого
$ wc /var/1 og/* . 1 og
файла и общие для всех файлов
3764 257 72 /var/ 1 og / a uth . 1 og
305
780
3517 36647 / v a r / 1 og / bootstra p . 1 og
350
4405 39042 / v a r / 1 og /daemon . 1 og
10109 60654 669687 / v a r / 1 og /dpkg . 1 og
71
419 4095 / va r/ 1 og/ fontconfi g . 1 og
1451 19860 135252 / va r/ 1 og /kern . 1 og
О / v a r/ 1 og / 1 p r . 1 og
О
О
О
О
О /va r / 1 og/ma i 1 . 1 og
О / v a r / 1 og/pycent ra 1 . 1 og
О
О
О
О / va r / 1 og / scro1 1 keeper . 1 og
О
108 1610 13864 / v a r / 1 og / user . 1 og
О / v a r / 1 og / uucp . 1 og
О
О
12
43
ЗОВ /var/ 1 og/wvdi a 1 conf . 1 og
890
6717 461 10 / v a r / 1 og / Xorg . О . 1 og
14076 100989 970777 tota 1

Упорядочивание выводимых дан н ых
Вам также может попадобиться сортировать содержимое файла или резуJIЬтат
выполиенив какой-либо команды для упорядочивания неорганизованно выводи­
мых данных. Следующие примеры отображают названия всех установленных на
данный момент программных пакетов RPM, отбирают из них все, содержащие в на­
звании слово kerne 1 , и отображают полученные результаты в алфавитном порядке
(прямом и обратном):
$ dpkg - query -1 1 grep kerne1 1 sort
Отображает в прянон алфав и тнон порядке
$ dpkg - query - 1 1 grep kerne1 1 sort - r Отображает в обра тн он алфави тнон порядке

Следующая команда сортирует процессы по уровню испоJIЬзованив памяти
(четвертое поле выхода команды ps ). Параметр k используется для указания поля,
используемого для сортировки. Запись 4 . 4 показывает, что именно четвертое поле
(и только оно) является ключевым.
-

$

ps auwx 1 sort - r - k 4 , 4

122

Глава 5. Обра ботка тексто вой информации

Следующая команда отображает загруженные модули ядра в порядке увели­
чения их размера. Параметр n указывает команде sort на необходимость интерпре­
тировать второе поле как номер, а не как строку:
$ l smod 1 sort · k 2 , 2n

П о иск текста в бинарн ых файпах
Иногда возникает необходимость прочесть текст в кодировке ASCII, находящийся
внутри бинарного файла, что позволяет узнавать много информации об исполняе­
мом файле. В этих случаях для извле'lения любого доступного для чтения текста
ASCII используйте команду stri ngs. Эта команда является частью программнога
пакета blnutils и устанавливается в Ubuntu по умолчанию. Вот несколько прнмеров
ее использования:
$ stri ngs /bi n/l s 1 grep · i l i bc
$ cat /bi n/ l s l stri ngs
$ stri ngs /bi n/ l s

Определяет наличие l ibc в l s
Отображае т все тексты ASCII в ls
Отображает все тексты ASCII в l s

Замена текста
Поиск текста в файле часто является первым шагом перед его заменой. Для редак­
тирования потоков текста предназначена команда sed. Команда sed является пол­
ноценным языком сценариев. В примерах, которые приводятся ниже, раскрывают­
ся основные принципы замены текста с помощью команды sed.
Если вы хорошо знакомы с командами редактора vi, позволяющими заменять
текст, то sed покажется вам похожим на них. Команда, приведеиная в следующем
примере, заменяет только первый случай употребления слова francoi s на chri s
для каждой строки. Здесь команда sed получает данные из канала и выводит их
через stdout (экран монитора):
$ cat щyfi l e . txt 1 sed s/francoi s/chri s/

Если добавить в конец строки замены параметр g, как в следующей команде, то
словом chri s будеi заменен каждый случай употребления слова francoi s. В следую­
щем примере ввод даных производится из файла myfi 1 е . txt, а выход направляется
в файл mynewfi 1 е . txt:
$ sed s/ francoi s/chri s/g < myfi l e . txt > щynewfi l e . txt

В следующем примере первые случаи употребления текста / home/ bob заменяют­
ся текстом / home2/ bob из файла 1 etc /pas swd fi 1 е (необходимо отметить, что данная
команда не изменяет файл, а лишь выводит измененный текст). Она может приrо­
диться, например, если учетные записи пользователей были перенесены в новый
каталог (или на новый диск), назваюtый случайно home2. Здесь, чтобы избежать
использования 1 , применяются кавычки и \ , которые не являются знаками-разде­
лителями:
$ sed ' s/\/home\/boЬI\/ home2\/boЬ/g ' < /etc/passwd

Отображение, упорядочивание и редактирование текста ·

123

Хотя 1 является знаком-разделителем команды 5ed по умолчанию, вы можете
назначить вместо него тобой другой символ. Изменение знака-разделителя может
упростить работу с командой, если в строке содержатся знаки 1. Например, преды­
дущая команда, в которой содержится путь, может быть заменена любой из сле­
дующих:
$ sed ' s - /home/ЬoЬI - /home2/boЬ/ - ' < /etc/passwd
$ sed ' sD/home/boЬID/home2/boЫD ' < /etc/passwd

В первом примере знак дефис ( - ) используется в качестве знака-разделителя.
Во второй строке роль разделителя выполняет буква D.
Команда 5ed может одновременно выполнять несколько замен, если перед
каждой из них использовать параметр - е. Ниже, в тексте, извлеченном из файла
myfi 1 е . txt, все случаи употребления francoi 5 были изменены на FRANCO I S, а chri 5
на CHR I S:
-

$ sed



s/ francoi s/FRANCOIS/g



s/chri s/CHRIS/g < myfi l e . txt

Кроме того, команда 5ed может использоваться для добавления в текстовый
поток символов перехода на новую строку. При появлении в ходе выполнения
команды слова Enter нажмите клавишу Enter. Символ > во второй строке сгенери­
рован консолью bash, его вводить не нужно.
$ echo аааЬссс 1 sed ' s/Ы\Enter
> /'
ааа
се с

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

реобраэование и удапение символов
Команда t r предоставляет простой способ выполнения быстрых замен символов
в процессе работы. В следующем примере все знаки перехода на новую строку
заменяются пробелами, в результате чего все отображаемые файлы из данного
каталога выводятся на одну строку:
$ 1 s 1 tr ' \n ' ' '

Заменяет символы перехода на новую с троКУ пробелами

Команда tr может использоваться для замены одного символа другим, но, в от­
личие от 5ed, она не работает со строками. Следующая командазаменяет все про­
писные буквы cf-. заглавными.
$ tr f F < myfi l e . txt

Заменяет каждую f в файле на F

Вы также можете использовать команду t r для удаления символов:
$ l s 1 tr - d ' \n '
$ t r - d f < myfi l e . txt

Удаляет з наки перехода на новую строку
(образуя на выходе одну с троКУ )
Удаляе т из файла все буквы f

124

Гла ва

5.

Обработка текстовой информации

Когда вам необходимо определить ряды символов дли дальнейшей работы,
команда t r может помочь выполнить некоторые трюки. Ниже представлен пример
изменения регистра букв с нижнего на верхний:
$ echo chr1 s 1 tr a · z A · Z
CHR I S

Преобразует chr i s в CHRIS

Тот ж е результат может быть достигнут при выполнении следующей команды:
$ echo chr1 s 1 tr ' [ : l ower : ] ' ' [ : upper : ] '

Преобразует chr i s в CHRIS

О пределение ра зп ичий между дву мя файлами
Если у вас есть две версии одного файла, иногда может быть полезно определить,
имеют ли они p83JIИЧИJI . Например, обновляя программный пакет, вы можете со­
хранить старый конфигурационный файл под новым именем (к примеру, confi g . о 1 d
или confi g . ba k ) и таким образом оставить старую конфигурацию. В этих случаях
для определения различающихся строк в старой и новой конфигурации вы можете
использовать команду d i ff:
$ di ff confi g confi g . ol d

В ы можете перевести выход d i ff в так называемый унифицированн:ый формат,
который легче воспринимается человеком. Он добавляет три контекстные стро­
ки до и после каждой группы измененных строк, по которым выводит отчет,
а затем для отображения различий между файлами добавляет символы + и - .
В следующих нескольких командах создается файл ( fl . txt ), содержащий после­
довательность цифр ( 1-7 ) , и файл ( f 2 . txt) с одной из этих цифр, измененных с по­
мощью команды sed, после чего два этих фа�ла сравниваются с помощью коман­
ды d i ff:
Передает последова тель ность цифр в файл fl . txt
$ seq 1 7 > fl . txt
Отображает содержимое файла fl . txt
$ cat f1 . txt
1
2
3
4
5
б
7
$ sed s/4/FOUR/ < fl . txt > f2 . txt
Изменяет 4 на FOUR и передает резуль та т
в файл f2 . txt
$ d1 ff fl . txt f2 . txt
4с4
Отображае т измененную четвер тую строку в файле
< 4
> FOUR
$ di ff · u fl . txt f2 . txt
Отображае т унифицированны� выход команды di ff
- - - f1 . txt 2007 - 09 - 07 18 : 26 : 06 . 000000000 - 0500
+++ f2 . txt 2007 - 09 - 07 18 : 26 : 39 . 000000000 - 0500
@@ - 1 . 7 +1 . 7 @@
1

Отображение, упорядочивание и редактирование текста

125

2
3
-4
+FOUR
5
б
7

В данном примере команда di f f -u отобразила только дополнительную инфор­
мацию: дату и время изменения стандартной команды di f f. Команда sdi f f может
быть использована для выполнения еще одной задачи: она может объединить вы·
ход двух файлов, как показано в следующем примере:
$ sdi ff fl . txt f2 . txt
1
2
3
4
5
б
7

1
2
3
FOUR
5
б
7

Другим вариантом команды di f f является команда v i md i ff, которая одновре­
менно открывает два файла в редакторе vim и выделяет различия между ними
цветом о каждом процессе. Аналоmчным образом команда gvi md i ff открывает два
файла в редакторе gvim.
�МЕЧАНИЕ

-------­

Для запуска программы gvim или выполнения команды gvimdiff вам необходимо установить про­
граммный пакет vim-gnome.

Выход команды di ff u может отображаться и через команду patch. Она исполь­
зует старый и измененный файлы в качестве источников входящих данных, а затем
возвращает измененный файл. В следующем примере команда di f f используется
для сравнения двух файлов, а затем к первому файлу применяются найденные
изменения:
-

$ di ff · U fl . txt f2 . txt > patchfi l e . txt
$ patch fl . txt < patchfi l e . txt
patch i ng fi l e f1 . txt
$ cat fl . txt
1
2
3
FOUR
5
б
7

Именно таким образом многие разработчики OSS ( Operational Support System)
(включая разработчиков ядра) распространяют свои заплатки. Команды patch
и d i ff могут использоваться для целого дерева каталогов, однако эта тема уже
выходит за рамки данной книги.

126

Глава 5. Об ра ботка текстовой информации

Использование команд awk и cut
дпя столбцов про цессов
Другим мощным инструментом редактирования текста является команда awk.
Она представляет собой полноценный язык программирования. В следующих
примерах рассматривается несколько хитростей, связанных только с извлечени­
ем столбцов из текста, хотя с помощью этой команды вы сможете сделать гораз­
до больше:
$ ps auwx
$ ps auwx
$ ps auwx

Отображает столбцы 1 и 1 1 команды ps
Отображает процессы
поль зова теля franco i s
grep francoi s 1 awk ' {pri nt $11} ' То же
awk ' {pri nt $ 1 , $11} '
awk ' / francoi s/ {pri nt $11} '

В первом примере отображается содержимое первого (имя пользователя)
и одиннадцатого столбцов (имя команды) из выходных данных текущих процессов
команды ps ( ps a uwx ) . Следующие две команды выводят те же даннt>Jе, но в первом
случае поиск всех процессов пользователя francois осуществляется с помощью ко­
манды awk, а во втором - с помощью команды grep. В каждом их этих случаев при
отображении процессов пользователя francois выводится также и 1 1 -й столбец (имя
команды).
По умолчанию команда awk в интервалах между столбцами устанавливает раз­
делительный знак. С помощью параметра F вы можете установить любой другой
разделитель:
$ awk · F : ' {pri nt $1 , $5} ' /etc/passwd

В ка чес тве знака -раздели теля
для о тображения столбцов
устанавливается двоеточие

То же самое можно проделать и с помощью команды cut. Как и в предыдущем
примере, в качестве знака-разделителя столбцов для обработки информации из
файла / etc / pa s swd будет установлен знак двоеточия:
$ cut · d : · f1 , 5 /etc/passwd

В ка чес тве з нака -раздели теля для отображения
с толбцов ус танавливается двое точие

Команда cut также может быть использована при работе с несколькими полями
значений. Следующая команда отображает столбцы 1 -5 файла /etc/passwd fi 1 е:
$ cut · d : · f1 · 5 /etc/passwd

Отображае т с толбцы 1 -5

Чтобы отобразить все столбцы от заданного номера и выше, вы можете ис­
пользовать следующий прием. Следующая команда отображает все столбцы файла
/etc/passwd, начиная от пятого:
$ cut · d : · f5 · /etc/passwd

Показывает все с толбцы . начиная от пя того

Команду awk предпочтительнее использовать, если столбцы разделяются раз­
личным количеством интервалов (в выходе команды ps ) , а команду cut - при ра­
боте с файлами, разделенными запятыми ( . ) или двоеточиями ( : ), как в файле
/etc/password.

Реэюме

127

Ко нвертирование текстовых файлов
в различные форматы
Используемые в UNIX символы конца строки ( \ n ) отличаются от тех, которые
используются в MS-DOSjWindows ( \ r\n). Эти специальные символы текстового
файла можно просмотреть, воспользовавшись командой od:
$ od ·с ·t xl щyfi l e . txt

Чтобы эти символы правильно отображались после копирования из одной
среды в другую, необходимо конверmровать файлы:
$ uni x2dos < щyuni xfi l e . txt > mydosfi l e . txt
$ cat щydos fi l e . txt 1 dos2uni x > щyunixfi l e . txt

Продемонстрированная в первом примере команда ( u n i x2do s ) конвертирует
файл открытого текста Linux или UNIX (myuni xfi 1 е . txt) в текстовый формат DOS
или Windows (mydos fi l e . txt). Команда из второго примера (dos2uni x) осуществляет
противоположную операцию - конвертирует файл DOSjWindows в файл Linux/
UNIX. Для использования данных команд у вас должен быть установлен программ­
ный пакет tofrodos.

Рез юме
В операционных системах Linux и UNIX для настройки системы, документации
и возвращаемых данных, а также для многих видов хранимой информации тради­
ционно используются файлы открытого текста. Поэтому было создано множество
команд, позволяющих осуществлять поиск, редактирование и выполнение других
действий над файлами открытого текста. Даже при современных интерфейсах G Ul
умение работать с файлами открытого текста является необходимым для тех, кто
хочет стать продвинутым пользователем Linux.
В данной главе были описаны некоторые наиболее популярные команды, пред­
назначенные для работы с файлами открытого текста Linux. Среди этих команд
присутствуют команды текстовых редакторов (таких как vi, nano и JОЕ), а также
команды, способные редактировать разделяющи;еся данные (например, sed и awk).
Кроме того, здесь были приведены примеры использования команд упорядочива­
ния текста (sort), отображения статистических данных (wc) и иреобразования
символов в тексте (tr).

6

Испол ьзо в а н ие
м ул ьт и меди и н ы х
да н н ы х
"

Если вам необходимо лишь прослушать песню или конвертировать изображение
либо аудиофайл в другой формат, нет необходимости использовать приложения
G U I . Для работы с мультимедиафайлами (аудиофайлы или изображения) су­
ществуют быстрые и удобные консольные команды. Если же вам нужно работать
с целыми пакетами мультимедиафайлов, то для применения одного действия
к нескольким файлам вы сможете использовать команду, которую используете
для преобразования одного файла.
В данной главе рассматриваются консольные .приложения, предназначенные
для работы со звуком и цифровыми изображениями.

Э вук
Для операционных систем Linux предусмотрены команды, позволяющие работать
с десятками форматов аудиофайлов. Для проелушивания аудиофайлов можно ис­
пользовать такие команды, как ogg1 23, mpg321 и р 1 ау. Кроме того, существуют ко­
манды для оцифровки музыки с музыкальных компакт-дисков и ее сжатия для
последующего эффективного хранения. Существуют даже команды, позволяющие
осуществлять стриминг аудио, чтобы каждый пользователь сети мог проелушивать
ваш список воспроизведения.

П рои грыванне музыки
В зависимости от формата воспроизводимой вами музыки вы можете выбирать тот
или иной консольный проигрыватель Linux. Команда р 1 ау (основанная на пакете
sox, описываемом ниже) может проигрывать аудиофайлы многочисленных сво­
бодно доступных форматов. Для воспроизведения музыки популярных открытых
форматов, таких как Ogg VorЬis, Free Lossless Audio Codec (FLAC) и Speex, вы
можете использовать проигрыватель ogg 123. Проигрыватель же mpg321, доступный

129

З вук

через сторонние интернет-репозитории, является популярным проиrрывателем
музыкальных файлов в формате М РЗ.
Для использования команды р 1 ау необходим проrраммный пакет sox, который
можно установить с помощью следующей команды:
$ sudo apt - get 1 nsta1 1 sox

Чтобы просмотреть список доступных для воспроизведения аудиоформатов
и эффектов, выполните команду sox - h:
$ sox · h
Supported fi 1 e formats : Bsvx a i f a i fc a i ff a i ffc а 1 a 1 sa a u a uto a v r cdda cdr cvs
cvsd dat dvms fssd gsm hcom i ma i rcam 1 а 1 u maud n i st nu1 nu1 1 ogg ossdsp prc raw
sЗ sb s f s 1 smp snd sndt sou sph sw txw uЗ u4 ub u1 uw vms voc vorbi s vox wav wve
ха
Supported effects : а 1 1 pa s s band ba ndpa s s bandrej ect ba s s chorus compand dcshi ft
deemph d i ther ea rwa x echo echos equa 1 i zer fade fi 1 ter f1 a n g e r h i ghpa s s 1 owpa s s
mcompand mi xer noi seprof noi sered p a d pa n p h a s e r pi tch po 1 yphase repeat resamp1 e
reverb reverse s i 1 ence speed stat st retch swap synth t reЫ e t remo1 o t r i m v i bro vo1

Для воспроизведения зву�ов команда р Т ау использует кодировку sox. Ниже
приведено несколько примеров использования команды р 1 ау для воспроизведения
музыкальных файлов:
$ р1 ау i nconcei vaЫ e . wav
$ р1 ау * . wav
$ р1 ау hi . au vo1 . б
$ р1 ау · r 14000 short . ai ff

Проигрывает файл WA V (из влеченный
из конпакт -диска в тон числе )
Проигрывает файлы WA V из ка талога (до 32 штук )
Проигрывает файл AU. уменьшает громкос ть
(снижае т уровень искажений )
Проигрывает файл A IFF с часто той дискретизации
14 000 Гц

Для проиrрывания файлов Ogg Vorbls установите проrраммный пакет vorbls­
tools. Ниже приведены примеры воспроизведения ОGG-файлов ( www.vorbls.com)
с помощью ogg l23:
$ oggl23 mysong . ogg
Проигрывает ОGG-файл
$ ogg123 /usr/share/examp1 e - content/ubuntu\ Sax . ogg Проигрывает файл -образец
$ ogg123 http : //vorbi s . com/musi c/Lumme · Bad1 oop . ogg
Проигрывает файл . размещенный
по указанно� интернет -адресу
$ oggl23 · Z * . ogg
Проигрывает файлы в случайнон порядке
Проигрывает файлы из ка талога l varlmus i c
$ ogg123 /var/musi c/
и подка талога d i rs
$ ogg123 ·@ myp1 ay1 i st
Проигрывае т песни из списка воспроиз ведения

Список воспроизведения является обычным списком каталогов или отдельных
ОGG-файлов, которые необходимо воспроизвести. Если каталог занесен в список,
то воспроизводятся все ОGG-файлы, внесенные в него и все его подкаталоги.
При воспроизведении нескольких файлов, чтобы пропустить песню, нажмите со­
четание клавиш Ctri+C. Для выхода дважды нажмите сочетание Ctri+C.

130

Глава б. Испол ьэование · мультимедийных данных

Для использования проигрывателя mpg321 необходимо установить nрограммный
пакет mpg32 1 . Ниже приведено несколько примеров воспроизведения аудио в фор­
мате М РЗ с помощью проигрывателя mpg321:
$ mpg321 yoursong . mpЗ
$ mpg321 @ mpЗl ; st
$ cat mpзl ; st 1 mpg321 @
·

·

$ mpg321 Z *- . mрЗ
$ mpg321 Z * . mрЗ
·
·

Проигрывае т МРЗ -файл
Проигрывае т аудиофайлы из списка воспроиз ведения
Передает список воспроиз ведения в проигрыва тель
mpg321
Проигрывае т файлы в случайнон порядке
То же . ч то и с -z . но аудиофайлы воспроизводятся
бесконечно

Список воспроизведения mpg32 1 является обычным списком файлов. Напра­
вив выход команды 1 s в файл, вы можете создать список воспроизведения. Если
вы не планируете использовать список из мест, к которым требуется указывать
относительный путь, то указывайте полный путь к файлам.

Упра вп ение уровнем зву ка
Вид используемых для активизации аудиоустройств и управления уровнем звука
консольных аудиоприложений зависит от типа используемой вами звуковой сис­
темы. Звуковая система Advanced Linux Sound Architecture (ALSA) ( сулучшенная
звуковая архитектура Linuю�) является системой, используемой сеrодня в боль­
шинстве операционных систем Linux. Звуковая система Open Source Sound System
(OSS) ( •звуковая система Open Source• ) функционирует уже давно и использу­
ется сейчас только с более старым оборудованием. В общем, для управления уров­
нем звука при использовании ALSA предназначена команда a l sami xe r, а при ис­
пользовании OSS a umi х.
ALSA является звуковой системой по умолчанию для большинства операцион­
ных систем Linux. Если добавить загружаемые модули, активизирующие интер­
фейсы устройства OSS, то аудиоприложения, для работы с которыми необходим
интерфейс устройства OSS, будут также работать и с ALSA. Чтобы проверить,
загружены JIИ модули OSS, такие как snd-pcm-oss (имитирует /dev/dsp и /dev/
audi о), snd-mixer-oss (имитирует 1 dev/mi xer) и snd-seq-oss (имитирует 1 dev 1 sequencer ),
выполните следующую команду:
-

# l smod 1 grep snd

Если модули загружены, то для управления уровнем звука приложений OSS
может использоваться проиrрыватель alsamixer, который можно запустить сле­
дующим образом:
$ al sam; xer
$ al sam; xer V pl ayЬack
·

$ al sam; xer V al l
$ al sam; xer с 1
·

·

Отображает экран a l samixer и о тражае т процесс
воспроизведения
Отображает тол ь ко каналы воспроиз ведения
(установленные по умолчанию )
Отображает процесс воспроизведения и вид ввода
Исполь зуе т a l samixer на в торой (1 ) з вуковой кар те

Полоски, отражающие уровень звука, доступны для каждого звукового канала.
Для выделения отдельных каналов ( Master (главный), РСМ, Headphone (науш-

131

Звук

пики) и др. ) используйте клавиши управления курсором � и +-- . Для увеличения
и уменьшения уровня звука каждого из каналов используйте клавиши t и .J.. . Вы­
делив канал, нажмите клавишу М для вЬIКЛюченив или включении воспроизведе­
НИJI этого канала. Чтобы назначить канал в качестве входящего (для записи с ау­
диовхода), нажмите Пробел при выделенном входном канале ( Mic (микрофон), Line
(линейный вход) и т. д.). Для выхода из alsamixer нажмите сочетание клавиш Alt+Q
или клавишу Esc. Для переключения между настройками воспроизведения, ввода
и общим видом используйте клавишу ТаЬ.
Приложеине микширования звука aumix (для использования которого необхо­
димо установить программный пакет aumix) может работать в режиме, ориентиро­
ванном на работу с экраном или в командном режиме. В текстQВом режиме ДJlJI
измененив или отображенив настроек вы можете использовать параметры соот­
ветствующей команды:
$ aumi x $ aumi x - 1 q - m q
$ aumix - v 80 - m

О

$ aumi x - m 80 - m R - m q
$ aumi x

Отображает уровень левого и правого каналов
Отображае т текvщие нас тройки толь ко для линейного
и микрофонного входов
Ус танавливает уровен ь з вука на 70 Ж. а уровень
микрофонного в хода - на О
Ус танавливае т уровень микрофонного вх ода на ВО Ж.
активиз ирует его для записи и о тображает его сигнал
Если не исполь зов а ть паране тры , aumix запускае тся
в экраннон режиме

В экранном режиме приложение aumix отображает все доступные аудиоканалы.
В этом режиме дли измененив отображаемых настроек звука используйте кла­

виши на клавиатуре. Для выбора каналов используйте клавиши Page Up, Page Down
и клавиши управления курсором t и .J.. . Для изменения громкости используйте
клавиши +-- и �. Для выключения звука текущего канала нажмите клавишу М. Что­
бы выбрать текущий канал в качестве источника записи, нажмите Пробел. Исполь­
зуя мышь, вы можете управлять уровнем звука, балансом и текущим каналом
записи.

О ц и ф ровка м узы к и с компа кт-дисков
Чтобы вы могли проигрывать свою музыкальную коллекцию с жесткого диска,
в Linux существуют различные приложения, позволяющие конвертировать музыку,
записанную на компакт-диски, в W АV -файлы, а затем копировать ее на жесткий
диск. После этого, используя такие приложения, как oggenc ( Ogg Vorbls ), flac
(FLAC) или lame ( М РЗ), оцифрованные файлы можно сжимать для уменьшения
занимаемого на диске места.
ПРИМЕЧАНИЕ

---­

--

Для оцифровки и сжатия аудиоданных, записанных на компакт-диски, существуют прекрасные
графические приложения, такие как grip и souпd-juicer. Поскольку эти приложения поддерживают
CDDB, они, чтобы отображать выходные данные (имя исполнителя, название альбома, песни и т. д.},
также могут использовать информацию о музыке, записанной на компакт-диск. Однако в данном
разделе описывается только использование этих команд для ручной оцифровки и сжатия музыкаль­
ных компакт-дисков.

132

Глава б . Использование мультимедийных данных

С помощью команды cdparanoi а вы можете проверить, способен ли ваш СD-при­
вод оцифровывать Compact Disc Digital Audio ( CDDA), извлекать аудиодорожки
и копировать их на ваш жесткий диск. Для этого вставьте музыкальный компакт­
диск в привод и выполните следующую команду:
$ cdparanoi a - vsQ
Check i ng /dev/cd rom for cd rom . . .
Check i ng for SCS I emul ati on . . .
Check i ng for ММС styl e command set . . .
Veri fy i ng CDDA command set . . .
Та Ы е of contents ( a udi o tracks onl y ) :
track
1 ength
beg i n
1.
2.

18295 [ 04 : 03 . 7 0 ]
16872 [ 03 : 44 . 7 2 ]

11 .
17908 [ 03 : 58 . 58]
17342 [ 03 : 5 1 . 17 ]
12 .
TOTAL 209837 [46 : 37 . 62]

о [ 00 : 0 0 . 0 0 ]

18295 [ 04 : 03 . 7 0 ]

сору pre ch
n o n.o 2
no no 2

1 74587 [38 : 47 . 62 ] . no no 2
192495 [42 : 46 . 45 ] no no 2
( a udi o on l y )

Сокращенный формат вывода данных позволяет увидеть, что команда cdpa ranoi а
проверяет возможности 1 dev 1 cd rom, выполняя поиск эмуляторов SCSI и поддержки
набора команд ММС, а также проверяет, может ли данный привод обрабатывать
информацию CDDA. Только после этого выводится информация о каждой дорож­
ке. Ниже приведены примеры команд cdpa ranoi а, использующихся для оцифровки
комиакт-дисков и записи их на жесткий диск:
$
$
$
$

cdparanoi a
cdparanoi a
cdparanoi a
cdparanoi a



"5-7"
· · " 3 · 8 " abc . wav
· " 1 : [40] · "
·

$ cdparanoi a - f · · " 3 "
$ cdparanoi a - а

"5"

$ cdparanoi a - w

" 1 " my . wav

Конвер тируе т дорожки в WА V-файлы
Конвер тируе т дорожки 5 - l в раздель ные файлы
Конвер тирует дорожки 3-8 в один файл (abc . wa v )
Конвер тируе т файлы . начиная с 4 0 секvнды
первой дорожки и до конца конпа к т -диска
Конвер тируе т дорожку 3 и сохраняе т ее
в форна те A IFF
Конвер тируе т дорожкv 5 и сохраняет ее
в форна те A IFF
Конвер тируе т первую дорожку и называет ее my . wa v

Конвертирование м узыки
Следующим шагом после записи музыкального файла на жесткий диск обычно
является его сжатие. Среди популярных конвертеров можно назвать oggenc, flac
и lame, конвертирующие файлы в форматы Ogg Voгbls, FLAC и МРЗ соответст­
венно.
С помощью oggenc вы можете работать с исходным форматом или с аудиофай­
лами или потоками аудиоданных в форматах W AV, AIFF, FLAC, а также конвер­
тировать их затем в формат OGG. Хотя формат OGG допускает большие потери
качества, сжатие W АV -файлов позволяет добиваться очень хорошего качества,

133

Звук

несмотря на то что размер файла уменьшается приблизительно в десять раз. Вот
несколько примеров использования команды oggenc:
$ oggenc ab . wav
$ oggenc ab . f1 ac -о new . ogg
$ oggenc ab . wav - q 9

Конвер тируе т WA V в OGG (ab . ogg )
Конвер тируе т FLAC вOgg (new . ogg )
Повышае т ка чество сжа тия до 9

По умолчанию качество ( параметр q) сжатия командой oggenc установлено на
уровень 3, однако вы можете устанВВJiивать любое его значение: от - J.:до 10 ( вклю­
чая дробные числа, например 5 . 5).
-

$ oggenc NewSong . wav - о NewSong . ogg \
- а Bernstei n · G C1 assi ca1 \
- d 06/15/1972 - t " S i mp1 e Song" \
- 1 " Bernstei ns Hass " \
- с i nfo-" From Kennedy Center "

Показаипая выше команда конвертирует песню MySong . wa v в MySong . ogg. Имя
исполнителя Bernstei n, а стиль музыки С1 a s s i са 1 , дата написания композиции опре­
делена как 15 июня 1972 года, композиция называется S i mp 1 e Song, а альбом ­
Bernstei ns Ma s s , комментарий - F rom Kennedy Center. Если вы вводите всю команду
в одну строку, то обратные слэши не нужны, ощiако если вы все же добавите их,
убедитесь, что после них нет пробелов.
В предыдущем примере в заголовок конечного ОGG-файла добаВJIJiется не­
которая информация, просмотреть которую можно, воспользовавшись командой
ogg i nfo:
$ oggi nfo NewSong . ogg
Proces s i ng fi 1 e " NewSong . ogg " . . .
Channel s : 2
Rate : 44100
Nomi n a 1 bi trate : 112 . 000000 kЬ/s
User comments sect i on fol l ows . . .
i nfo�From Kennedy Center
ti t l e=Si mpl e Song
a rt i st=Bernstei n
gen re=Cl a s s i ca l
date=Oб/ 151 1972
a l bum=Bernstei ns Ma s s
VorЬi s st ream 1 :
Tot a l data l ength : 3039484 bytes
Pl ayback l ength : 3m : 25 . 240s
Average bi t rate : 1 1 8 . 475307 kЬ/s
Log i ca l st ream 1 ended

Здесь вы можете видеть, что в процессе сжатия были добавлены комментарии.
Параметр -с использовался для установки произвольно выбранного поля (в данном
случае i n fo) с некоторым значением заголовка. Помимо комментариев, у этого
файла присутствуют два канала, и он был записан при частоте дискретизации
44 100 Гц. Из полученной информации можно узнать объем записанных данных,
продолжительность записи и среднюю частоту дискретизации.

134

Глава б . Использование мультимедийных данных

Команда fl ас похожа на oggenc, отличие состоит лишь в том, что файлы WAV,
AIFF, RAW, FLAC или OGG конвертируются в формат FLAC. Поскольку fl ac
является бесплатным аудиокодеком, не допускающим потерь качества, он являет­
ся популярным методом сжатия у тех, кто хочет сохранить свободное место на
диске, но в то же время ценит высокое качество звука. Если использовать значения
по умолчанию, то конвертирование файлов из формата W AV в формат FLAC
уменьшит и� размер вдвое, что существенно отличается от пропорции 1 : 1 0 при
использовании oggenc. Для использования команды fl ас необходимо установить
программный пакет flac:
$
$
$
$

fl ac now . wav
sox now . wav now . ai ff
fl ac now . ai ff -о now2 . fl ac
fl ac - 8 top . wav - о top . fl ac

Конвер тирует WA V в FLAC (now . flac )
Конвер тирует WA V в A IFF (now . a i ff)
Конвер тируе т A IFF в FLAC (now . flac )
Увеличивает уровень сжа тия до -8

Уровень сжатия по умолчанию равен - 5. Кроме него можно также использовать
уровни от О до - 8, где наибольшее число дает наивысший уровень сжатия, а самое
низкое - наилучшее качество. Чтобы конвертировать файлы в формат М РЗ,
используя команду 1 ame, вам нужно сначала установить программный пакет lame.
Вот несколько примеров сжатия файлов в форматах W АV и AIFF с помощью
команды 1 ame:
$ l ame i n . wav
$ 1 ame i n . wav - - preset standard
$ l ame tune . a i ff



tune . mpЗ

$ l ame - h - Ь 64 - m m i n . wav out . mpЗ
$ l ame - q

О

i n . wav



abcHQ . mpЗ

Конвер тирует файл форма та WA V в МРЗ
( i n . wa v . mp3 )
Конвер тируе т файл в форма т МРЗ .
исполь зуя стандар тные нас тройки
Конвер тируе т файл форма та A lH в МРЗ
( tune . mpЗ )
Ус танавливает высокое качес тво . 64 -b i t .
режим м оно
Конвер тируе т файл со значением
ка чес тва , равным О

Используя команду 1 ame, вы можете устанавливать значения качества от О до 9
(5 является значением по умолчанию). При установке качества, равного О, исполь­
зуются наилучшие алгоритмы сжатия; при использовании же значения 9 большин­
ство алгоритмов сжатия отключается (но процесс сжатия проходит быстрее). Как
и при использовании oggenc, команда 1 ame позволяет добавлять в МРЗ-файл теги,
которые могут использоваться позже пр� воспроизведении файла:
$ l ame NewSong . wav NewSong . mpЗ \
- - ta Bernstei n - - tg Cl assi cal \
- - ty 1972 - - tt " S i mpl e Song " \
- - tl " Bernstei ns Mass " \
- - tc " From Kennedy Center"

Как и в рассмотренном ранее примере конвертирования файла из формата WАV
в формат OGG, приведеиная команда конвертирует файл MySong . wa v в MySong . mpЗ.
Имя исполнителя по-прежнему Bernstei n, стиль музыки C1 assi ca 1 , год 1972, песня на­
зывается S i mp1 e Song, а альбом - Bernstei ns Ma ss, комментарий - From Kennedy Center.

135

Звук

Если вы вводите всю команду в одну строку, то обратные слэши не нужны, однако
если вы все же добавите обратные слэши, убедитесь, что после них нет пробелов.
Информация из тегов отражается на экране в случае использования графиче­
ских оболочек МРЗ-проигрывателей (например, Rhythmbox и Totem), когда они
проигрывают музыку в формате М РЗ. Кроме того, информацию, содержащуюся
в тегах, можно просматривать и при использовании консольных проигрывателей,
например mpg32 1 :
$ mpg321 NewSong . mpЗ
Hi gh Performa nce MPEG 1 . 0 / 2 . 0 / 2 . 5 Aud i o P l ayer fo r Layer 1 . 2 . a nd 3 .
Ti t l e :
Al bum :
Comment :
Pl ayi ng MPEG st ream from NewSong . mp3
MPEG 1 . 0 l ayer I I I . 128 kbi t / s , 441 0 0 H z

S i mpl e Song Arti st : Bernstei n
Bernstei ns Ma s s Yea r : 1972
F rom Kennedy Center Genre : Cl a s s i ca l
joi nt - stereo

Стриминг музыки
Если вы храните свою музыку на одном компьютере, но работаете с другим, то
настройка музыкального сервера дли стриминга может стать наиболее быстрым
способом предоставить вашу музыку для проелушивания с одного или более ком­
пьютеров, находящихся в сети. Стриминг-сервер icecast и клиент аудиоисточника
ices можно установить на Ubuntu, выполнив следующую команду:
$ sudo apt - get i nstal l i cecast2 i ces2

Ниже представлен быстрый алгоритм настройки сервера icecast и клиента ices
для стриминга музыки, который необходимо выполнить на том компьютере, на
котором хранятся аудиозаписи.
1. Чтобы изменить все отобража�мые пароли, измените файл /etc / i cec a s t 2 /
i cecast . xml . Для получения текущих паролей найдите поле hackme. Скорее всего,
вам понадобится установить дополнительные пароли для пользователей и ад­
министратора, особенно если вы планируете открыть для других возможность
предоставлять свою музыку серверу. Запомните установленные пароли, чтобы
иметь возможность впоследствии их использовать. Кроме того, с помощью ре­
дактирования данного файла вы можете изменить и другие настройки, напри­
мер имя хост-системы:
$ sudo vi /etc/i cecast2/i cecast . xml
2. Если у вас есть сетевой экран, проверьте, доступен ли его порт ТСР 8000.
3. Запустите сервер icecast2 от имени суперпользователя, выполнив указанную
ниже команду (на самом же деле сервер будет запущен от имени пользователя
icecast2), и проверьте ее выполнение с помощью команды netstat:
$ sudo /etc/ i ni t . d/ i cecast2 start
$ sudo netstat - top�avel 1 grep 8000
L I STEN
tcp
О О 0 . 0 . 0 . 0 : 8000
0.0.0.0:*
111
35790 21494/ i cecast off ( 0 . 00 / 0 / 0 )

136

Гла ва б . Использо ва ние мультимедийных данных

4. Создайте каталоги, необходимые программе ices2, предоставляющей список
воспроизведения и музыку серверу icecast2:
$ sudo mkdi r /var/1 og/ i ees
$ sudo mkdi r /ete/ i ces2
$ sudo mkdi r /ete/i ees2/musi e
5 . Создайте список воспроизведения, воспользовавшись любым текстовым редак­
тором или направив свой список музыки в файл. Например, если вся ваша
музыка в формате OGG хранится в подкаталогах /va r /mus i с, выполните следую­
щую команду:
$ fi nd /var/mus i e - name * . ogg > p1 ay1 i st . txt
6. Убедившись, что файл р 1 ау 1 i st . txt содержит полные пути к каждому музыкаль­
ному файлу, а сами файлы доступны �ерверу icecast2, скопируйте файл со спи­
ском воспроизведения в каталог 1 etc/ i ces2:
$ sudo ер p1 ay1 i st . txt /ete/ i ees2
Для редактирования файла со списком воспроизведения (удаляя или добавляя
из него файлы или каталоги) можно использовать любой текстовый редактор.
7. От имени суперпользователя отредактируйте файл 1 etc/ i ces2/ i ces - р 1 ау 1 i st . xm1 ,
чтобы проигрывать музыку из списка воспроизведения и направлять ее на
активный сервер icecast2. Начните с редактирования конфигурационного
файла:
$ sudo ер /usr/share/doe/i ees2/examp1 es/i ees - p1 ay1 i st . xm1 /ete/i ees2
$ sudo vi /ete/ i ees2/i ees - p1 ay1 i st . xm1
8. В отдельных случаях вам может помадобиться изменить модули метаданных,
входящих данных или модули instance (в приведеином ниже примере необхо­
димо заменить /etc/ i ces 2/p1 ау1 i st . txt на путь к вашему файлу pl ayl i st . txt ) :

My Musi e Server
Di fferent mus i e sty1 es
Mix of my persona1 musi e


p1 ay1 i st
basi e
/ete/i ees2/p1 ay1 i st . txt
< ! - - ra ndom pl ay - - >
l


1 oea1 host
BOOO
M i eePw
/mymusi e . ogg
< / i nsta nce>

137

Звук

Из показанных выше значений (выделенных полужирным шрифтом) самым
критичным является адрес вашего списка воспроизведения и информация об
экземпляре сервера icecast2. Пароль к серверу должен соответствовать паролю,
добавленному в файл /etc / i ceca st2/ i ceca st . xm1 fi 1 е.
9. Выполнив следующую команду, запустите передачу аудиоданных клиенту
ices:
$ sudo 1 ces2 /etc/ 1 ces2/1 ces - p1 ay1 1 st . xm1 &
10. Чтобы про верить, можете ли вы проигрывать музыку с локального компьютера,
выполните следующую команду:
$ oggl23 http : //l ocal host : SOOO/mymusi c . ogg
1 1 . Если тест будет завершен успешно, попробуйте воспроизвести поток icecast2
с другого компьютера вашей сети, изменив 1 оса 1 host на I Р-адрес или имя хает­
машины.
12. Если же при проведении теста возникнут проблемы, проверьте файлы журнала
/var/ 1 og / i cecast2 и / v a r/ 1 og / i ces, а также парали и адреса конфигурационных
файлов.
13. После завершения настройки удалите сервис icecast2:
$ sudo /etc/ 1 ni t . d/ 1 cecast2 stop
Во время активности серверов icecast и ices любой компьютер, подключенный
к серверу, должен получать транслируемый поток аудиоданных. Для прослушива�
ния музыки может использоваться любой музыкальный проигрыватель, способ­
ный восnроизводить музыку с определенного НТТР-адреса (ogg1 23, Rhythmbox,
XMMS и т. д.). Музыкальные проигрыватели Windows, поддерживающие воспро­
изведение транслируемых форматов, также должны работать.
ПРИМЕЧАНИЕ

-------­

Чтобы пропусnпь проигрываемую песню, выполните на сервере следующую команду: killall -HUP ices.

Конвертирование аудиофайпов
Утилита sox является гибким приложением, позволяющим работать с аудиофай­
лами свободно распространяемых форматов. Ниже представлено несколько при­
меров, демонстрирующих выполнение определенных задач с помощью sox.
Данная команда объединяет два WAV -файла в один:
$ sox head . wav tai l . wav output . wav

Следующая команда микширует два WAV-файла:
$ soxmi x soundl . wav sound2 . wav output . wav

Для отображения информации о файле с помощью sox используйте эффект
stat:
$ sox soundl . wav
Samp1 es read :



stat
208512

138
Length ( seconds ) :
Sca 1 ed Ьу :
Maxi mum amp1 i tude :
Mi n i mum amp1 i tude :
Mi d 1 i ne amp1 i tude :
Mea n norm :
Mea n amp1 i tude :
RMS amp1 i tude :
Maxi mum de1 ta :
Mi n i mum de1 ta :
Mea n de 1 ta :
RMS de 1 ta :
Rough frequency :
Vo1 ume adjustment :

Глава б. Использование мультимедийных данных

9 . 456327
2147483647 . 0
0 . 200592
- 0 . 2247 01
- 0 . 0 1 2054
0 . 030373
0 . 000054
0 . 040391
0 . 060852
0 . 000000
0 . 006643
0 . 0 09028
784
4 . 450

Чтобы удалить звук из аудиофайла, используйте команду tri m:
$ sox soundl . wav output . wav tri m 4
$ sox soundl . wav output . wav tri m 2 б

Удаляе т четыре пер вые секунды
аудиозаписи
Удаляет аудиозапись до в торой
и после шес той сецrнд

В первом примере удаляются первые четыре секунды из файла sound 1 . wav, а ре­
зультат сохраняется в файл output . wav. Во втором примере остается часть файла
sound1 . wa v со второй по шестую секунды, остальное удаляется, а полученный файл
сохраняется под именем output . wa v.

П реобразование изобра жений
Если у вас есть каталоги, хранящие коллекции цифровых изображений, то возмож­
ность управлять ими из командной строки может существенно сэкономить время.
Программный пакет ImageMagick поставляется с некоторыми прилож.е ниями, по­
зволяющими преобразовывать цифровые изображения в формы, удобные для даль­
нейшей работы (чтобы установить данный пакет на Ubuntu, выполните команду
apt - get i nsta 1 1 i magemagi ck ) . В этом разделе описаны некоторые команды, предна­
значенные для работы с цифровыми изображениями, а также приводятся примеры
простых командных строк для пакетной обработки.

Пол учение информации об изобра жениях
Чтобы получить информацию об изображении, используйте команду i denti fy:
$ i denti fy p2090 142 . jpg
p2090 142 . j pg J PEG 2048х1536+0+0 Di rectC1 a s s 8 - bi t 402 . 037kb
$ i denti fy - verbose p2090142 . jpg 1 l ess
Sta nda rd devi ati on : 61 . 1665 ( 0 . 239869 )
Co1 ors : 205713
Renderi ng i ntent : Undefi ned

139

Преобраэова ние и зображений

Resol uti on : 72х72
Uni ts : Pi xel s Pe r l nch
F i l es i ze : 402 . 037kb
I nterl ace : None
Backg round col o r : wh i te
Border col or : rgb ( 223 . 223 . 223 )
Matte col or : g rey74
Transpa rent col or : Ы асk
Page geomet ry : 2048х1536+0+0
Compres s i on : J PEG
Qua l i ty : 44

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

Конвертирование изобра жений
Команда convert является наиболее качественным инструментом конвертирования
изображений. Ниже приведены некоторые способы конверmрованив изображе­
ний из одного формата в друrой с помощью команды convert:
$ convert tree . jpg tree . png
$ convert i con . gi f i con . Ьmp
$ convert photo . ti ff photo . pcx

Конвер тирует файл JPEG в PNG
Конвер тирует файл GIF в ВМР
Конвер тируе т файл TIFF в РСХ

Среди форматов изображений, поддерживаемых командой convert, можно на­
зватьJРG, ВМР, РСХ, GIF, PNG, ТIFF, ХРМ и XWD. Ниже приведены некоторые
примеры конвертирования изображений с изменением их размера:
$ convert - resi ze 1024х768 hat . jpg hat - sm . jpg
$ convert - sampl e 50tx50t dog . jpg dog - hal f . jpg

В первом примере создается изображение (файл hat - sm . j pg ) с разрешением
1 024 х 768 пикселов. Во втором примере изображение dog . j pg уменьшается напо­
ловину (50% х 50%) и сохраняется под именем dog - h a l f . j pg.
Кроме того, вы можете поворачивать изображенИJI на угол от О до 360 ·:

$ convert - rotate 270 sky . jpg sky - f i nal . jpg
Раз ворачивает изображение на 270 о
$ convert - rotate 90 house . jpg house · fi nal . jpg Разворачивает изображение на 90 о

Используя параметр - d raw, вы можете добаВJIJIТЬ к изображению текст:
$ convert - fi l l Ы асk - poi ntsi ze 60 - font he1 veti ca \

- draw ' text 10 , 80 "Copyri ght NegusNet I nc . ' \
plO . jpg plO - cp . jpg
"

140

Глава б . Использование мультимедийных данных

В данном примере к изображению была добавлена информация об авторских
правах, причем для создания надписи на изображении использовался шрифт
Helvetica с размером кегля 60. Текст помещается на 10 пикселов правее и на 80 пик­
селов ниже верхнего левого угла. Полученное изображение было сохранено под
именем p l O - cp . j pg, чтобы обозначить, что в новом изображении добавлена инфор­
мация об авторских правах.
Далее показано несколько интересных способов создания эскизов с помощью
команды convert:
$ convert - thumbnai l 120х120 a . jpg a - a . png

$ convert - thumbnai l 120х120 - Ьorder 8 a . jpg a - b . png
$ convert - thumbna i l 120х120 - Ьorder 8 - rotate 8 a . jpg a - c . png

Во всех трех примерах создаются эскизы с разрешением 1 20 х 120 пикселов.
Во втором случае был добавлен параметр - border, позволяющий создавать рамку

вокруг эскиза, делая его похожим на снимок Polaroid. В последнем примере изо­
бражение также поворачивается. На рис. 6. 1 продемонстрирован результат выпол­
нения. всех трех команд.

a - a .pnQ

а - Ь РП\1
1tо

Рис. 6.1. Использование команды coпvert для создания эскиза,
добавления рамки и лереворота изображения

Кроме того, существуют способы применять к изображениям различные эф­
фекты:
$ convert - sepi a - tone 75% house . jpg ol dhouse . png
$ convert - charcoal 5 house . jpg cha r - house . png
$ convert - col ori ze 175 house . jpg col or - house . png

Параметр - sepi а - tone позволяет создать эффект старой фотографии. Использо­
вание параметра -cha rcoa l создает впечатление, что изображение было нарисовано
от руки углем. При использовании же параметра - со l ori ze цвет каждого пиксела
изображения изменяется в соответствии с заданным числом (в приведеином слу­
чае 175). На рис. 6.2 в верхнем левом углу показано оригинальное изображение
дома, в верхнем правом - то же изображение, но с применением эффекта sepi а - tone,
в нижнем левом - с применением эффекта cha rcoa 1 , а изображение с применением
настроек цвета показано в нижнем правом углу.
Если вы захотите увидеть еще один пример обработки изображений, попробуй­
те применить к изображению эффект спирали:
$ convert - swi rl 300 photo . pcx wei rd . pcx

Преобраэование изображений

141

Рис. 6.2. Оригинальное изображение,
а также с использованием эффектов sepia-tone, charcoal и colorize

Конвертирование пакетов изобра жений
Большинство описанных в данной главе преобразований могут быть выполнены
в Приложениях по работе с изображениями, такими как GIMP. Однако в полной .
мере использовать возможности команды convert можно только при работе через
консоль. В этом случае вы можете применять одну (или все) вышеуказанные опе­
рации одновременно к целому каталогу файлов.
Например, вам может понадобиться создать эскизы для всей коллекции изо­
бражений или, возможно, уменьшить размер всех свадебных фотографий таким
образом, чтобы они могли уместиться на цифровой рамке. Вам может даже поиа­
добиться добавить информацию об авторских правах на каждое изображение, хра­
нящееся в каталоге, прежде чем предqставлять их для общего просмотра в Интер­
нет. Все эти действия можно осуществить с помощью уже описанных параметров
команды convert, а также некоторых простых команд командного процессора.
Ниже приведен пример команды, позволяющей изменить разрешение всех изо­
бражений каталога на 1024 х 768 пикселов, чтобы вместить их в цифровую рамку:
$ cd $НOHE/myi mages
$ ntdi r smal l
$ for pi c i n ' l s * . png '
do
echo "converti ng $pi c"
convert - resi ze 1024х768 $pi c smal l / sm - $pi c
done

142

Глава б. Использование мультимедийных данных

Перед выполнением кода программа переходит в каталог $HOМE/myi mages (в ко­
тором хранятся изображения с высоким разрешением). Затем для помещения
в него уменьшенных изображений создается подкаталог sma 1 1 . Сам код начинается
с петли for, которая отображает каждый файл в текущем каталоге, имеющий раз­
решение PNG (вам может помадобиться указать расширение JPG или другое).
После этого разрешение каждого файла меняется на 1 024 х 768 пикселов и полу­
ченные файлы копируются в каталог sma 1 1 , причем к каждому имени файла добав­
ляется приставка sm- .
С этим же кодом в ы можете использовать любые описанные ранее строки ко­
манды convert или же создавать свои собственные, удовлетворяющие вашим лич­
ным пожеланиям. С его же помощью вы можете конвертировать целые каталоги
с файлами изображений, и это займет у вас лишь несколько минут вместо несколь­
ких часов работы в приложении G UI.

Р ез ю м е
Консоль может предоставить быстрые и эффективные способы работы с аудио­
файлами и цифровыми изображениями. В данной главе описаны различные
консольные способы воспроизведения, оцифровки, сжатия, конвертирования
и стриминга аудиофайлов. Что же касается цифровых изображений, то здесь пред­
ставлено множество примеров использования команды convert для изменения их
размера, разворота, конвертирования, создания записи и выполнения других опе­
раций с ними.

7

Ад м и н ист ри р о в а н и е
ф а й л ов ы х систем

Файловые системы представляют собой структуры, посредством которых можно
получать доступ к файлам, каталогам, устройствам и другим элементам операци­
онной системы Linux. Linux поддерживает много различных типов файловых сис­
тем (ехtЗ, VFAT, IS09660, NTFS и т. д.), а также множество типов носителей, на
которых эти файловые системы могут существовать (жесткие диски, компакт-дис­
ки, USВ-носители, ZIР-дискеты и т. д.).
Создание и управление разделами дисков и файловыми системами на этих
носителях является одной из важнейших задач при администрировании операци­
онной системы Linux. Именно поэтому если вы повредите свою файловую систему,
то, скорее всего, потеряете критически важные данные, хранящиеся на вашем же­
стком диске или съемных носителях.
В данной главе описываются команды, позволяющие разбивать дисковое про­
странство носителя с хранящейся на нем информацией, создавать файловые сис­
темы, монтировать и демонтировать разделы, а также проверять файловые системы
на наличие ошибок и свободного пространства.

В ведение в осно вы файловы х систем
Несмотря на то что Linux поддерживает большое количество типов файловых
систем, тех, на которые вы сможете установить операционную систему Linux, не
так много. Для установки стандартной системы Linux на вашем жестком диске
должно присутствовать только три раздела: раздел подкачки (используется для
предотвращения переполпения оперативной памяти информацией), загрузочный
диск, на котором хранятся загрузчик и ядро, и раздел корневой файловой системы.
В разделах с загрузочной и корневой файловыми системами обычно используется
файловая система типа ехtЗ.
Файловая система ехtЗ основывается на файловой системе ext2, к которой была
добавлена функция журналирования. Журналираванне может упростить процесс
обеспечения сохранности данных и их восстановления, в частности после некор­
ректного завершения работы системы. Во время следующей после некорректного
завершения работы системы перезагрузки не потребуется выполнения длительных
проверок файловых систем, поскольку изменения, произошедшие со времени по­
следней записи на диск, сохраняются и могут легко быть восстановлены.

144

Глава 7. Администрирование файловых си стем

В большинстве примеров данной главы, чтобы продемонстрировать процесс
создания и управления файловой системой, используется файловая система ехtЗ,
однако иногда вам может попадобиться использовать и другие типы файловых
систем. В табл. 7. 1 приведен список различных типов файловых систем и их опи­
сания на случай, если вам понадобится их использовать.
Таблица 7.1. Типы файловых систем, поддерживаемые Liпux
Тиn
фaiinoвoii
сисrемы

Описание

ext3

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

ext2

Файловая система, предшествующая ехtЗ, не поддерживающая функцию
журналирования

lso9660

Развилась из файловой системы High Sierra (была стандартом
для компакт-дисков) и может содержать расширения Rock Ridge для
обеспечения возможности использования длинных имен файлов и других
функций (полномочия доступа к файлу, права собственности и ссылки)

Jffs2

Журналируемая файловая система для флэш-носителей, созданная для
эффективной работы с USВ-накопителями. Продолжательница системы JFFS

jfs

Файловая система, используемая на IBM в OS/2 Warp и настроенная на работу
с большими файловыми системами и средами с высокойпроизводительностью

msdos

Может использоваться для монтирования файловых си сте м на устаревшие
носители MS-DOS, например старые дискеты

ntfs

Может быть полезна, когда есть необходимость передавать файлы в файловые
системы Windows (с двойной загрузкой или на сменных носител ях)

reiserfs

Журналируемая файловая система, иногда используемая по умолчанию
на SUSE, Slackware и других операционных системах Linux, но не
поддерживаемая в Ubuntu

squashfs

запакованная файловая система, предназначенная только для чтения данных
и используемая на многих Live CD Linux

swap

'Используется на разделах подкачки для временного хранения данных, когда
оперативная память временно недоступна

ufs

Популярная файловая система операционных систем Solaris и SunOS
от корпорации Sun Microsystems

vfat

Расширенная файловая система FAT (VFAT}, которая полезна, если файловым
системам нужно обмениваться файлами с более старыми системами Windows
(с двойной загрузкой или на сменных носителях)

xfs

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

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

Соэдание файловых систем и управление ими

145

доступа посредством сетевых протоколов, таких как Samba (тип файловой системы
smbls или cifs), NFS (nfs) и NetWare (ncpfs).
Многие из доступных типов файловых систем либо неспособны создавать новые
файловые системы, либо не поддерживаются во всех версиях Linux. Например,
такие файловые системы, как minix (для операционных систем Minix), befs (для
операционных систем BeOS) и affs (для операционных систем Amiga), очень полез­
ны, когда необходимо смонтировать и получить доступ к старым резервным данным.
Даже популярные файловые системы могут поддерживаться не полностью. Напри­
мер, файловая система reiserfs не полностью поддерживается операционной систе­
мой Kubuntu, по крайней мере на момент написания книги.

Соэдани е файловых сисrе м и управпени е ими
Ubuntu позволяет использовать два варианта разбиения жесткого диска: автома­
тически, используя программу-установщик и схему по умолчанию, и вручную
в процессе первой установки Linux. Программа-установщик позволяет определить,
необходимо ли форматировать весь жесткий диск и разделы, предназначенные для
установки Linux, или же для создания необходимых разделов достаточно исполь­
зовать исключительно свободное место на жестком диске. Для выполнения ручной
настройки необходимо выбрать параметр, позволяющий осуществить индивиду­
альную разбивку.
При разбивке диска вручную приложение для разбиения жесткого диска (не­
когда называемое Disk Druid) предоставляет возможность самостоятельно разби­
вать жесткий диск на разделы. Позже появилось множество консольных утилит,
позволяющих работать с разделами жесткого диска и файловыми системами, соз­
даваемыми на этих разделах.

Разбиение жесrких дисков
Исторически жесткие диски использовали 32-битные таблицы разбиения РС-BIOS
с головной эагруэочной записью (MBR), что ограничивало размер разделов до 2 Тбайт
и позволяло создавать лишь четыре основных раздела на одном жестком диске.
Использование расширенных разделов сняло последнее ограничение. Для преодо­
ления границы в 2 Тбайт таблицы разбиения PC-BIOS были заменены GPT (таб­
лицами разбиения GUID).
Стандартной командой, предназначенной для работы с разделами жесткого
диска, является команда fdi sk, но, поскольку она не может работать с разделами
GPT, она постепенно уступает место другим командам. Более эффективным и под­
держиваемым приложеннем является команда ра rted.
ПРИМЕЧАНИЕ

-------­

Если для разбиения, изменения размера и выполнения других операций с жестким диском вы nред­
почитаете использовать графические приложения, то можете попробовать приложения gparted или
qtparted. Названия команд и программных пакетов одинаковы для обоих приложений, но ни одно
из них не устанавливается по умолчанию.

146

Глава 7. Администрирование файловых систем

Разб ие н ие исесrко rо д иска с помощью команды fdisk
Команда fd i sk является весьма полезным инструментом для просмотра и измене­
ния разделов дисков. Однако помните, что изменение или удаление разделов может
уничтожить ценные данные, хранящиеся на диске, поэтому, прежде чем выполнять
какие-либо действия, убедитесь в их необходимости. Чтобы использовать команду
fd i sk для просмотра информации о разделах жесткого диска, выполните следую­
щую команду от имени суперпользователя:
$ sudo fdi sk. 1
Отображае т все разделы каждого жес ткого диска
Di sk /dev / sda : 82 . 3 GB . 82348277760 bytes
255 heads . 63 sectors /track . 1 0 0 1 1 cy l i nders
U n i t s cy1 i nders of 16065 * 512 8225280 bytes
Dev i ce Boot Sta rt
End B1 ocks
Id
System
/dev / s d a 1 *
1
3 104391
83
L i nux
14
9881 79264710 83
L i nux
/dev / sda2
9882 10011 1 044225
82
L i nux swa p
/dev / sda3
-

=

=

В данном примере выводится информация о жестком диске размером 80 Гбайт,
который разбит на три раздела. Первый раздел ( /dev / sda 1 ) является небольшим
загрузочным разделом / boot, настроенным в файловой системе ехtЗ ( I d 83). Стоит
отметить, что знак * обозначает, что первый раздел является загрузочным. Следую­
щий раздел предназначен для корневой файловой системы и также относится
к ехtЗ. Последний раздел - раздел подкачки Linux.
ПРИМЕЧАНИЕ

-------­

Начиная с версии 2.6.20 ядра Linux, и IDE-, и SСSI-диски используют имена устройств в формате
/dev/sd?, где знак ? заменяется буквой (а, Ь, с и т. д.). В более старых версиях Ubuntu только
SСSI-диски и USВ-накопители используют имена /dev/sd?. Жесткие диски IDE используют формат
имени /dev/hd?.

Если на вашем компьютере установлено несколько дисков, команда fdi sk - 1
отобразит информацию обо всех дисках, если вы не укажете конкретный:
Выводит информацию о разделах выбранного диска
$ sudo fdi sk. - 1 /dev/sdb
Чтобы с помощью команды fd i sk работать с конкретным диском, укажите,
с каким диском необходимо работать, не используя никаких параметров:
$ sudo fdi sk. /dev/sda

Выполняе т команду fdi sk в ин терактивном
режиме для первого диска
Для о тображения помощи нажни те клавишу т

Comma nd ( m for he l p ) : m
Command acti on
а togg l e а ЬооtаЫ е f1 a g
Ь ed i t b s d d i s k 1 a bel
с togg 1 e the dos compati bi 1 i ty f1 ag
d de1 ete а pa rt i t i on
1 1 i st k nown pa rt i ti on types
т pri nt thi s menu
n a dd а new pa rt i t i on
о c reate а new empty DOS part i t i on tаЫ е
р pri nt the parti t i on tаЫ е
q qui t wi thout s a v i ng cha nges

147

Соэдание файловых систем и управление ими

s create а new empty Sun di s k 1 abe1
t cha nge а pa rti t i on ' s system i d
u cha nge d i sp1 ay/ent ry uni ts
v veri fy the pa rt i ti on tаЫ е
w wri te tаЫ е to d i sk and exi t
х extra funct i ona 1 i ty ( experts on 1 y )
Command ( m for he1 p ) :

На основании выведенной на экран информации вы можете использовать лю­
бую указанную команду для работы с жестким диском. В частности, вы можете
использовать параметр р (выполняющий ту же функцию, что и fd i sk - 1 ), n (для
создания нового раздела), d (для удаления существующего раздела), 1 (для отобра­
жения известных типов файловых систем) или t (для изменения типа файловой
системы раздела). В следующих примерах показаны некоторые операции с коман­
дой fdi sk:
Command C m for he1 p ) : d
Parti t i on number ( 1 - 4 ) : 4
Command ( m for he1 p ) : n
Fi rst cy1 i nder ( 1 - 4983 , defau1 t 1 ) : 1
Last cy1 i nder

о

о

о

( defa u 1 t 4983 ) : 4983

Comma nd C m for he1 p ) : а
Parti t i on number ( 1 - 3 ) : 1
Command ( m for he1 p ) : t
Parti ti on number ( 1 - 3 ) : 3
Нех code ( type L to 1 i st codes ) : 82

Запрашивает разрешение
на удаление раздела
Отображае т номер удаляемого
раздела
Создае т новый раздел диска
Выбра ть первый цилиндр
(или нажните клавищу Enter J
Выбра ть последний цилиндр
(или нажни те клавишу Enter )
Делае т раздел з а грузочным
Введ и те номер з а грузочного раздела
Выбери те тип файловой сис темы
Выбери те раздел для изменения
Сдела т ь раздел разделом подка чки

Если вы не укажете иного, команда fdi sk задаст тип нового раздела как ехtЗ (83).
'
Для отображения списка типов файловых систем, отображаемого с помощью параметра 1 , а также соответствующих им и шестнадцатеричных кодов вы можете
воспользоваться параметром L. Как говорилось выше, число 82 соответствует раз­
делу подкачки. Среди других типов разделов Linux, которые могут вас заинтере­
совать, можно назвать Linuх-расширенный (85), Linux-LVM (8е ), Linuх-программ­
ный массив ( fd ) и EFI/GTP ( ее ) .
Для разделов Windows вы можете назначать разделы HPFSjNTFS (7), Win­
dows 95 FAT32 (Ь), FAT 1 6 (6) или Windows 95 FAT32 LBA (с). Среди других по­
добных типов файловых систем UNIX можно назвать Minix (Ье или bf ) , BSD jOS
(е4), FreeBSD ( ее ) , OpenBSD ( ef ) , NeXTSTEP ( fO ) , Darwin UFS ( fl ) и NetBSD (f4).
Вам может пригодиться любой из этих типов файловых систем, если у вас имеют­
ся старые резервные копии данных тех файловых систем, которые вы хотите вос­
становить.
До сих пор нами не производилось никаких изменений в таблице разбиения.
Если вы абсолютно уверены в правильиости вносимых измененИй, то для приме­
нения изменений к таблице разбиения разделов введите w. Для отмены изменений
(или выхода из fd i sk после их применения) введите q.

148

Глава 7. Администр и рование файловых систем

Копирование та бпиц разбиени я посредством
коман д ы sfdisk
Для создании резервной копии или дублированив таблицы разбиении жесткого
диска используйте команду s fd i sk:
$ sudo sfdi sk · d /dev/ sda > sda · taЬl e
$ sudo sfdi sk /dev/sda < sda · taЬl e
$ sudo sfdi sk · d /dev/sda 1 sfdi sk /dev/ sdb

Выполняе т резервное копирование
таблицы разбиения в файл
Восс танавливае т таблицу
разбиения из файла
Копируе т табли цу разбиения
с одного диска на другой

И зменени е ра зделов д иска с помощью
коман д ы parted
Как и fd i sk, команда pa rted может быть использована для отображения или изме­
нения разделов диска. Однако команда ра rted предоставляет еще некоторые полез­
ные функции. С помощью следующей команды вы можете отобразить разделы
диска jdevjsda:
$ sudo parted /dev/sda pri nt
Model : АТА FUJ I TSU MPG3409A ( sc s i )
Di s k /dev/ sda : 41 . 0GB
Sector s i ze ( l og i ca l / p hys i ca l ) : 512В/512В
Pa rti t i on Та Ь l е : msdos
Si ze
End
Numbe r
Sta rt
206МВ
206МВ
32 . 3kB
1
39 . 5GB .
39 . 3GB
206МВ
2
41 . 0GB
1536МВ
39 . 5GB
3

Туре
pri ma ry
pri ma ry
pri ma ry

Fi l e system
ext3
ext3
l i nux- swap

F l ags
boot

Из приведеиной информации видно, Что диск имеет классическую метку (или
таблицу разбиения диска) msdos или gpt. В данном случае приведена таблица раз­
биения msdos.
Чтобы выполнить команду parted в интерактивном режиме, введите ра rted,
а затем, если у вас несколько устройств, имя соответствующего устройства хране­
ния информации, с которым хотите работать (например, /dev / sda):
$ sudo parted
GNU Pa rted 1 . 7 . 1
Usi ng /dev / sda
Wel come to GNU Pa rted ! Туре ' hel p ' to v i ew а l i st of commands .
( pa rted )

При интерактивном использовании команды pa rted вы можете как целиком
вводить команды, так и набирать только несколько первых букв команд и нажимать
клавишу ТаЬ для их дополнения (в консоли bash). Если же вы хорошо знакомы с ис­
пользуемыми командами, то можете просто вводить необходимое количество букв,
чтобы команда ра rted определяла по ним необходимую для выполнения команду
(в Cisco IOS): р для вывода, mk l для mkl a bel и т. д.

СОэдание файловых систем и управление ими

�НИМАНИЕ

149

------

8 отличие от fdisk, parted сразу же применяет изменения к разделам, не выполняя предварительную

запись на диск, поэтому не рассчитывайте на возможность отмены внесенных изменений, прервав
выполнение команды parted .

Для каждой команды ра rted предусмотрена возможность использования со
всеми арrументами (например, mkра гt l og i ca l ехtЗ 1 0 . 7GB 1 7 . 0GВ), однако вы мо­
жете просто выполнить необходимую команду (mk part), и pa rted переведет вас
в интерактивный режим:
( pa rted ) mkpart
Создае т новый раздел
Pa rt i t i on type? [ l ogi cal ] ? pr1 mary
Fi l e system type? [ ext 2 J ? ехtЗ
Sta rt? 17GB
End? 24GB
Старайтесь не использовать команду mkpa rtfs, поскольку она не может пра­
вильно создавать разделы ехtЗ. Вместо нее для создания раздела ехtЗ восполь­
зуйтесь командой mkpa rt (как показано выше), а затем отформатируйте .еrо с по­
мощью pa rted, испольуя команду mk fs . ехtЗ. Вообще, поддержка файловых систем
типа ехtЗ у pa rted отсутствует. Изменение размеров общих разделов Linux
может понадобиться, если нужно освободить место для нового раздела, напри­
мер:
( pa rted ) res1 ze 2
Sta rt? [ 1 . 2GB] 1 . 2GB
End? [ 24GB] 10GB
ВНИМАНИЕ

Изменяе т размер раздела

----­

Если вы не используете LVM, эта команда просто разрушит вашу систему.

Для изменения размера разделов NTFS предназначена команда ntfs res i ze.
В Ubuntu эта команда поставляется с программным пакетом ntfsprogs, в котором
также присутствуют команды для создания (mkfs . ntfs), настройки (ntfsfi x) и по­
лучения информации о разделах NTFS (ntfs i nfo).

Работа

с

метками файл ов ых систем

Термин сметка• в отношении разделов дисков может использоваться для обозна­
чения двух разных вещей: меткой диска называется таблица разбиения (как видно
из возвращаемой командой ра rted информации), а метка раздела используется для
обозначения имени отдельного раздела. Чтобы просмотреть метку раздела, вос­
пользуйтесь командой е21 а Ье 1 :
$ sudo e2l aЬel /dev/sda2
/home

Чтобы назначить метку разделу, выполните следующую команду:
$ sudo e2l aЬel /dev/sda2 mypart;t; on

150

Глава 7. Администрирова н ие файловых систем

Не забывайте, что каталог / etc / fstab, как показано ниже, иногда использует
метку раздела для монтирования раздела. Изменение этой метки может привести
к сбоям при загрузке системы.
LABEL=/boot

/ boot ехtЗ

defa u l ts

1 2

Чтобы найти раздел, если известна только его метка, выполните следующую
команду:
$ sudo f; ndfs LAВEL-mypart; t ; on
/dev / sda2

Форматирован и е файповой си сrемы
Если вы используете несколько разделов дисков, то можете на каждом из них соз­
дать отдельную файловую систему. В большинстве операционных систем Linux
для создания и Проверки файловых систем используются стандартные для Linux
команды. Команды mkfs и fsck позволяют форматировать и проверять файловые
системы соответственно.
Команда mkfs выступает в качестве хранилища многих команд, предназначен­
ных для форматирования отдельных типов файловых систем, например mk fs . ext2,
mkfs . ехtЗ, mkfs . c ramfs, mkfs . msdos, mkfs . ntfs и mkfs . vfat. Если к этим командам доба­
вить пакеты, поддерживающие другие файловые системы, то для беспрепятственной
работы с mkfs будут доступны дополнительные команды, среди которых можно
назвать mkfs . bfs , mkfs . mi n i x, mk fs . xfs и mkfs . xi a fs , допускающие как непосредствен­
ное свое выполнение (например, mkfs . vfat /dev / sdЫ ) , так и посредством команды
mk fs (например, mkfs - t vfat /dev/ sdЫ ) .

Создание файповой системы на разделе жест кого д и с ка
Среди основных программных пакетов, необходимых для создания и проверки
файловой системы Ubuntu, можно назвать util-linux (включает в себя команду mkfs
и другие приложения общего назначения) и e2fsprogs (включает в себя специаль­
ные приложения файловых систем ext2jext3) . Специальные команды mk fs для
различных типов файловых систем входят в программные пакеты ntfsprogs (пред­
назначен для работы в NTFS), dosfstools ( M S - DOS и VF АТ), xfsprogs (XFS), jfsutils
OFS), mtd-utils OFFS и J FFS2) и reiserfs-utils (reiserfs). Основные приложения
устанавливщотся вместе с Ubuntu.
Ниже приведены примерЬ1 использования команды mkfs, позволяющие созда­
вать файловые системы (убедитесь, что добавлен параметр - t ):
$ sudo mkfs ·t ехtЗ /dev/ sdЬl
$ sudo mkfs ·t ехtЗ · v - с /dev/ sdЬl
$ sudo mkfs . extЗ · с /dev/sdЬl

Создает файловую сис тему ехtЗ
на разделе sbal
Расширенная команда . выполняющая
также поиск поврежденных блоков
То же

Параметр - L позволяет добавить метку новому разделу:
$ sudo mkfs . extЗ - с - L mypart ; t ; on /dev/ sdЬl

Добавляе т разделу ме тку

151

Соэдание файловых систем и управление ими

Создание ви ртуально й файп о вой сисrе мы
Если вы хотите лишь ознакомиться с различными типами файловых систем или
сделать файловую систему более гибкой (другими словами, не привязанной к фи­
зическому диску), то можете создать виртушzьную файловую систему. Виртуальная
файловая система - это файловая система, не создающая файлы на существующей
файловой системе, однако вы можете форматировать ее так же, как и файловую
систему любого другого типа, перемешаться по ней и получать к ней доступ с дру­
гих компьютеров.
Виртуальные файловые системы могут использоваться, например, при созда­
нии Live CD или з апуске выделенных виртуальных файловых систем. В следую­
щем примере создается пустой файл-образ диска объемом 500 Мбайт, затем он
форматируется как файловая система и монтируется, чтобы обеспечить доступ
к данным файловой системы:
$ dd i f=/dev/zero of=щydi sk count=2048000
$ du · sh mydi sk
lOOlM mydi sk
$ mkfs · t ext3 mydi sk

mydi sk i s not а Ы осk speci a l dev i ce
Conti nue (y/n ) : у
$ sudo mkdi r /mnt/i mage
$ sudo mount · о l oop mydi sk /mnt/i mage

Создае т заполненный нулями
файл объенон 1 Гбай т
Проверяет размер вир туаль ной
файловой сис темы
Создае т файловую сис тему
на mydi sk
Создает точкv мон тирования
Мон тируе т файл mydi sk
в ка талог lmnt l image

В данном примере команда dd создает пустой файл-образ диска размером
2 048 000 блоков ( приблизительно 1 Гбайт ). Затем команда mk fs создает файловую
систему ехtЗ (вообще же команда mk fs может создать файловую систему любого
необходимого типа). Поскольку файл не является специальным блочным устрой­
ством, как в предыдущем случае форматирования разделов диска, mkfs предупредит
вас о начале создания новой файловой системы. После создания точки монтиро­
вания команда сообщит, что вы смонтировали файл ( myd i sk ) как петлевое устрой­
ство ( - о l oop). Стоит отметить, что из вышеуказанных команда mount является
единственной, требующей привилегий суперпользователя.
После завершения монтирования виртуальной файловой системы вы сможете
получать к ней доступ из любой файловой системы. Когда вы закончите работать
с файловой системой, выйдите из нее и размонтируйте:
$
$
$
$
$

sudo
sudo
sudo
cd
sudo

cd /mnt/i mage
mkdi r test
ер /etc/hosts
umount /mnt/i mage

Переходи т к точке мон тирования
Создает ка талог в файловой сис теме
Копирует файл в файловую сис тему
Выходи т из файповой сис темы
Демон тируе т файловую систему

После завершения процесса демонтирования виртуальной файловой системы
вы можете переместять ее в другую файловую систему или записать на компакт-диск

152

Глава 7. Администр и рование файловых систем

для последующего использования в другом месте. Если вам больше не нужна фай­
ловая система, просто удалите соответствующий файл.

П росмотр и изменение атрибутов фа йло во й
системы
С помощью команд tune2fs и dumpe2fs вы можете просматривать атрибуты фай­
ловых систем ext2 и ext3. Команда tune2fs также может быть использована для
изменения атрибутов файловой системы. Для создания же раздела подкачки ис­
пользуйте команду swa pfs:

$ sudo tune2fs ·1 /dev/sdal

Отображае т настраиваемые а трибуты файловой
систены
То же

$ sudo dumpe2fs · h /dev/sdal
dumpe2fs 1 . 39 ( 29 - Мау - 2006 )
Fi l esystem vol ume name : 1
Last mounted on :
Fi l esystem UU I D : f5f261d3 - 3879-41d6- 8245 - f2153b003204
Fi l esystem mag i c number : OxEF53
Fi l esystem revi s i on #: 1 ( dynami c )
Fi l esystem features : has_journal ext_attr res i ze_i node di r_i ndex fi l etype
needs_recovery spa rse_super l a rge_fi l e
Defaul t mount opt i ons : user_xattr acl
Fi l esystem state : cl ean
Errors beha v i or : Cont i nue
Fi l esystem OS type : Li nux
I node count : 7914368
Bl ock count : 7907988
Reserved Ы осk count : 395399
Free Ы ocks : 5916863
Free i nodes : 7752077
Fi rst Ы осk : О
Bl ock s i ze : 4096
Fragment s i ze : 4096
Reserved GDT Ы ocks : 1022
Bl ocks per g roup : 32768
Fragments per g roup : 32768
I nodes per g roup : 32704
I node Ы ocks per g roup : 1022
Fi l esystem c reated : Fri Jun 15 12 : 13 : 17 2007
Last mount t i me : Tue Jul 24 -06 : 47 : 35 2007
Last wri te t i me : Tue Jul 24 06 : 47 : 35 2007
Mount count : 2
Maxi mum mount count : 29
Last checked : Fri Jun 15 12 : 13 : 17 2007
Check i nterva l : О ( )
Reserved Ы ocks ui d : О ( user root )
Reserved Ы ocks gi d : О ( g roup root )
Fi rst i node : 1 1

153

Соэдание файловых систем и управление ими

I node s i ze : 128
Journa l i node : 8
Fi rst orphan i node : 988413
Defaul t di rectory hash : tea
Di rectory Hash Seed : 4137d20d - b398 -467 b - a47a - a9 1 1 0416b393
Journ a l backup : i node Ы ocks
Journa l s i ze : 128М
Данные команды отображают большой объем информации о файловой системе.
Например, если вы используете файловую систему, для которой нужно создавать
большое количество небольших файлов (например, новостной сервер), то с по­
мощью этих команд можете проверять, остались ли у вас файлы inode. Значение
поля Maxi mum mount count определяет количество проверок файловой системы после
ее монтирования. Среди прочей информации вы можете также найти дату и время
создания файловой системы, ее последнего монтирования, а также изменения.
Чтобы изменить настройки существующей файловой системы ext2 или ехtЗ,
воспользуйтесь командой tune2fs. Следующая команда изменяет количество необ­
ходимых монтирований файловой системы перед ее принудительной проверкой:
$ sudo tune2fs - с 31 /dev/ sda1
Ус танавливает количество мон тирований равным #
tune2fs 1 . 39 ( 29 - Мау - 2006 )
Setti ng maxi ma l mount count to 31
Если же вы хотите выполнять проверки файловой системы на основе заданных
временных интервалов, а не количестве монтирований, отключите проверку mount ­
count, установив его в значение - 1 :
$ sudo tune2 fs - с 1 /dev/ sda1
tune2fs 1 . 39 ( 29 - Мау - 2006 )
Sett i ng maxi ma l mount count to - 1
-

Для активизации динамической ( с временн6й зависимостью) проверки ис­
пользуйте параметр i :
-

$
$
$
$
$

sudo
sudo
sudo
sudo
sudo

tune2fs - 1 10 /dev/ sda1
tune2fs . ; 1d /dev/sda1
tune2 fs - 1 Зw /dev/sda1
tune2fs ; бm /dev/ sda1
tune2fs ; О / dev/ sda1
.

.

Проверяет
Проверяет
Проверяет
Проверяет
Отключае т

сис тему каждые 10 дней
сис тему ежедневно
сис тему каждые 3 недели
сис тему каждые б месяцев
динамическую проверку

У вас всегда должна быть включена либо mount-count, либо динамическая
проверка.
Чтобы иреобразовать файловую систему ext2 в ext3, используйте параметр - j
(с записью действия в журнал):
$ sudo tune2 fs -j /dev/sda1

Включает журналирование изменения ext2 на ехtЗ

Создание и ис п ользование разделов п одкачки
Для хранения избыточных данных системной оперативной памяти в операцион­
ных системах Linux используются разделы подкачки. Если вы не создали раздел

154

Глава 7. Админи стр ирование файловых си стем

подкачки при установке Linux, то можете создать его позже, воспользовавшись
командой mkswap. Раздел подкачки может быть создан либо на стандартном раз­
деле жесткого диска, либо на специально отформатированном для этого разделе:
$ sudo mkswap /dev/sdal
Форма тируе т раздел sdal как раздел подкачки
Sett i ng up swa pspace vers i on 1 . s i ze 205594 kB
=

Чтобы проверить раздел подкачки на наличие поврежденных блоков, вместе
с командой mkswap используйте параметр с :
-

$ sudo mkswap · с /dev/sdal
Если у вас нет свободного раздела, то в качестве обласm подкачки можете
использовать файл:
$ sudo dd ; f•/dev/zero of•/tmp/ swapf; l e count•65536
65536+0 records i n
65536+0 records out
33554432 bytes ( 34 МВ ) copi ed . 1 . 56578 s . 21 . 4 MB/ s
$ sudo chmod 600 /tmp/ swapf1 l e
$ sudo mkswap /tmp/swapf1 l e
Sett i ng u p swa pspace vers i on 1 . s i ze 67 1 04 kB
=

В данном примере команда dd создает файл swa pfi 1 е размером 32 М байт. Затем,
чтобы во время работы не отображались предупреждения от команды swapon, ко­
манда chmod закрывает к этому файлу доступ. После этого, чтобы назначить файл
/tmp/swapfi 1 е разделом подкачки, команда mkswap форматирует его.
После создания раздела или файла подкачки необходимо, воспользовавшись
командой swa pon, заставить систему использовать созданную область подкачки:
$ sudo swapon /dev/sdal
$ sudo swapon - v /dev/sdal

Задействуе т раздел /dev/sdal в ка честве
раздела подкачки
Задействует раздел в ка чес тве раздела
подка чки и о тображает больше информации о нем

swa pon on /dev / sda 1
$ sudo swapon · v /tmp/ swapf; l e

Задействуе т файл l tmp lswap fi le в качес тве
раздела подкачки

swapon on /tmp/ swa pfi 1 e

Кроме того, вы можете использовать команду swapon и
файлов и разделов подкачки:
$ swapon - s
F i 1 ename
/dev / sda5
/ tmp/ swa pfi 1 e

для

просмотра списка

Отображае т список всех задейс твованных
файлов и разделов подка чки
Туре
Si ze
Used
Pri ori ty
142764
pa rti t i on
-1
1020 088
-6
fi 1 е
о
65528

Чтобы деакmвировать область подкачки, воспользуйтесь командой swapoff:
$ sudo swapoff - v /tmp/swapf; l e
swapoff o n /tmp/ swa pfi 1 e
Области подкачки используются в соответствии с их приоритетом. Ядро в пер­
вую очередь задействует области с высоким приоритетом, а затем использует

155

Монтирование и демонтирование файловых систем

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

$ sudo swapon - v - р 1 /dev/sdal

Назначает разделу sdal высший
приорите т подка чки

М о и тирован н е и демонтирование файловы х
с исте м
Перед использованием обычной, не предназначенной для подкачки файловой
системы необходимо добавить ее в каталог в дереве файловых систем вашего ком­
пьютера, смонтировав ее. Ваша корневая файловая система ( / ) , а также другие
файловые системы, которые вы постоянно используете, обычно монтируются ав­
томатически на основе записей в файле /etc/ fstab. Другие файловые системы мо­
гут быть смонтированы вручную по мере надобности с помощью команды mount.

М о и тированне файловых си сrем из фа йла fstab
Во время первой установки Linux файл 1 etc / fstab, содержащий информацию о ва­
шей корневой файловой системе и других файловых системах, обычно устанавли­
вается автоматически. После этого данные файловые системы могут монтировать­
ся автоматически во время загрузки системы либо вручную при необходимости
(с готовыми к использованию точками монтирования и другими параметрами).
Рассмотрим пример файла /etc/ fstab:
/dev / Vol GroupOO/ LogVol OO
LABEL=/ boot
tmpfs
devpts
sysfs
proc
/dev/Vol GroupOO / LogVol 0 1
/dev/ sda 1
ПРИМЕЧАНИЕ

1

/ boot
/ dev/ shm
/dev/pts
/ sys
/ proc
swap
mnt/wi ndows

ехtЗ
ехtЗ
tmpfs
devpts
sysfs
proc
swap
vfat

defa u l ts
defa u l ts
defa u l ts
g i d=5 . mode=62
defa u l ts
defaul ts
defa u l ts
noauto

1 1
1 2

о
о
о
о
о
о

о
о о
о
о
о
о

-------­

Чтобы вам было понятнее, в приведенном выше примере для каждой файловой системы, имеющей­
ся на жестком диске, список номеров UUID был удален. Для любой файловой системы эти номера
имеют вид UUID=da2dЬc48-8б2e-4fЬe-9529-a88b57Ь1 Sbac и записываются перед типом файловой
системы.

Как видно из приведеиного примера, все файловые системы, за исключением
/dev / s d a 1 (параметр noauto), монтируются автоматически. Корневой раздел ( / )
и раздел подкачки ( swap) настраиваются как тома LV M (управление логическими
томами), которые облегчают удаление или добавление физических разделов, со­
держащих ID томов. Среди файловых псевдосистем (не связанных с каким-либо
разделом) можно назвать devpts (интерфейс для псевдотерминалов pty), sysfs

156

Глава 7. Администрирование файловых систем

(информация ядра 2.6) и proc (информация более ранних версий ядра). Раздел
диска 1 dev 1 sda 1 в данном примере был добавлен вручную и предназначен для мон­
тирования раздела Windows, хранящегося на данном устройстве.
Файл /etc / fstab здесь не является хранилищем информации о съемных носи­
телях, используемым по умолчанию, поэтому Hardware Abstraction Layer (HAL)
автоматически определяет съемные носители и монтирует их в специально отве­
денные точки монтирования каталога /med i a (на основании ID тома на носителе).
В табл. 7.2 приведено описание полей файла /etc/ fstab.
Уабпица 7 2 Поля файла /etr./fsUJb
.

.

Попе

Оnисание

1

Имя устройства, содержащего файловую систему. По умолчанию данное поле
оодержит имя устройства раздела для монтирования (например, /dev/sda1}, однако
значение этого поля также может быть равно LABEL или содержать уникальный
идентификатор (UUID}

2

Указывает точку монтирования. Файловая система содержит все данные, начиная от
информации о точке монтирова ния и заканчивая информацией о структуре дерева
каталогов, если в дан ной точке не была ранее смонтирована другая файловая система

3

Указывает тип файловой системы. Для пОлучения большей информации об основных
типах файловых систем ознакомьтесь с табл . 7. 1

4

СОдержит параметры команды mouпt, среди которых можно отметить пoauto
(используется для предотвращения монтирования файловой системы во время
загрузки} и го (монтирует файловую систему, предназначенную только для чтения}.
Чтобы дать возможность всем пользователям монтировать файловую систему,
добавьте в это поле параметр user (пользователь} или owпer (владелец}. Параметры
должны быть разделены запятыми. Для получения более подробной информации
о подде рживаемых параметрах обратитесь к странице справочника, посвященной
команде mouпt

5

Дан ное поле содержит значение только в том случае, если вы использовали для
выполнения резервного копирования данных команду dump. Значение 1 означает, что
файловая система должна быть разгружена, О
что разгрузку выполнять не следует
-

б

Число в этом поле определяет, должна ли файловая система быть проверена
с помощью команды fsck. Значение О означает, что файловая система не нуждается
в проверке, значение 1 - что файловую систему необходимо проверить в первую
очередь (используется в качестве корневой файловой системы}, значение 2 - что
файловая система может быть проверена после за вершения проверки корневой
файловой системы

Вы можете создавать собственные записи в файле /etc / fstab для разделов лю­
бого жестко диска или съемного носителя. Удаленные файловые системы (NFS,
Samba и др. ) также могут содержать записи в файле jetc / fstab, чтобы автоматиче­
ски монтироваться во время загрузки или позже вручную.

Команда mount
Команда mount предназначена для просмотра смонтированных файловых систем,
а также для монтирования любых локальных ( жесткий диск, запоминающее
устройство USB, компакт-диск, DVD и т. д.) или удаленных (NFS, Sa mba и т. д.)

157

Монтирование и демонтирование файловых систем

файловых систем. Ниже приведены примеры использования команды mount для
просмотра смонтированных файловых систем:
$ mount

Отображае т список смонтированных . удаленных
и локаль ных файловых систем
/dev/sda7 on 1 type ехtЗ ( rw )
proc o n /proc type proc ( rw )
sysfs o n / sys type sysfs ( rw )
devpts o n / dev / pts type devpts ( rw . g i d=5 . mode=620 )
/dev/ sdaб on /mnt /debi a n type ехtЗ ( rw )
/dev/ sdaЗ o n /mnt/ s 1 ackwa re type ехtЗ ( rw )
tmpfs o n /dev / s hm type tmpfs ( rw )
nопе o n / proc / sys / fs / b i nfmt_mi sc type bi n fmt_mi sc ( rw )
sunrpc o n / v a r/ 1 i Ь/nfs/ rpc�pi pefs type rpc_pi pefs ( rw )

Для отображения только конкретных смонтированных файловых систем ис­
пользуйте параметр t:
-

$ mount ·t ext3
Отображает смон тированные ехtЗ -файловые сис темы
/dev/sda7 on 1 type ехtЗ ( rw )
/dev /sdaб o n /mnt /debi a n type ехtЗ ( rw )
/dev/ sdaЗ o n /mnt / s 1 ackwa re type ехtЗ ( rw )
Для отображения меток разделов с информацией о монтнровании используй­
те параметр - 1 :
$ mount · t ext3 - 1

Отображает смонтированные ехtЗ -файловые
системы и их метки
/dev/ sda7 on 1 type ехtЗ ( rw ) [ / 123]
/dev / sdaб on /mnt/debi a n type ехtЗ ( rw ) [ /mnt /debi a n ]
/dev/sdaЗ o n /mnt / s 1 ackwa re type ехtЗ ( rw ) [ / mnt/ s 1 ackwa re]

Ниже представлен пример использования команды mount для монтирования
устройства /dev/sda l в существующий каталог /mnt/mymount:
$ sudo mount /dev/sdal /mnt/щymount/
Мон тируе т локальную файловую систему
$ sudo mount - v /dev/sdal /mnt/щymount/ МЬнтирут файловую систе� . выводит
более подробную информацию
mount : you d i dn " t speci fy а fi 1 esystem type for /dev / sdal
I wi 1 1 t ry type ехtЗ
/dev/ sda l on /mnt /mymount type ехtЗ ( rw )

В данном примере команда mount ищет записи в фaйлe/ etc / fstab каталога /dev/
sda l либо же пытается определить тип смонтированной файловой системы.
Для точного определения типа файловой системы, предназначенной для мон­
тнрования, используйте параметр - t:
$ sudo mount -v -t ехtЗ /dev/sdal /mnt/mymount/

Монтируе т файловую
сис тему ехtЗ

/dev/sda l on /mnt /mymount type ехtЗ ( rw )

В ы также можете отобразить метку и имя монтируемого раздела:
$ sudo mount - vl - t ext3 /dev/sdal /mnt/щymount/

МЬнтирует файловую сис тему
и о тображает ее меткv

158

Глава 7. Админи стр и рова ние файловых систем

Если вы захотите смонтировать раздел, информация о котором уже содержится
в файле fstab, то используйте либо точку монтирования, либо имя соответствую­
щего устройства. Например, с помощью записи
/dev / s d a l /mnt /mymount

ехtЗ

defa u l ts

1 2

в файле fsta b вы можете смонтировать файловую систему любым из предло­
женных ниже способов:
$ sudo mount · v /dev/ sdal

МОнтирует файловую сис тему по имени
устройс тва хранения
/dev / sd a l on /mnt/mymount type ехtЗ ( гw )
Монтирует файловую систему на основании
$ sudo mount - v /mnt/mymount/
точки монтирования
/dev / s d a l on /mnt/mymount type ехtЗ ( гw )

Добавив параметр · о и разделив запятыми список параметро в, в ы можете
опредеJIИТЬ параметры монтированив раздела. К этим параметрам относятся те
же, которые могут быть добавлены в четвертое поле файла /etc / fstab. По умолча­
нию разделы монтируются с правами чтения и записи, однако вы можете точно
определить, монтировать ли файловую систему длв чтения и записи ( rw) или
только длв чтении (ro ) :
$ sudo mount - v · t ехtЗ

- о rw

/dev/sdal /mnt/mymount/ Мон тируе т
с правами
/dev / s d a l on /mnt/mymount type ехtЗ ( гw )
$ sudo mount · v · t ехtЗ - о ro /dev/ sdal /mnt/mymount/ Мон тируе т
с правами
/dev / s d a l on /mnt /mymount type ехtЗ ( го )

раздел
ч тения и записи
раздел
только ч тения

Команда mount может использовать еще несколько полезных параметров.
О noat i me не обновляет время доступа к файлам, полезен при работе в файловых
системах с большим количеством входящих и исходящих потоков, таких как
почтовые серверы и журналы.
-

О noexec предотвращает выполнение бинарных файлов, хранящихся на данной
файловой системе. Параметр может использоваться для повышения безопас­
ности , например для каталога / tmp в среде с неавторизованными пользова·
телями.
-

О гemount - изменяет параметры монтированной файловой системы. С помощью
этого паР,аметра вы можете размонтировать файловую систему, а потом снова
ее смонтировать с уже новыми параметрами. В следующем примере изменяют­
ся права чтения и записи только на чтение:
$ sudo mount · v -о remount , ro /dev/sdal
/dev / s d a l on /mnt/mymount type ехtЗ ( го )
О

· Ь i n d - монтирует существующую файловую систему, используя другую точ·
ку монтирования. Если раздел /dev/ sda l уже смонтирован в каталог /mnt/mymount,
выполните следующее:
$ sudo mount · · bi nd · v /mnt/mymount/ /tmp/щydi r/
/mnt/mymount on /tmp/myd i г type none ( гw . bi nd )
·

Монтирование и демонтирование файловых систем

159 ·

Теперь одна и та же файловая система доступна по двум адресам. Новая точка
монтированиЯ обладает теми же параметрами, что и оригинальная.
О

-roove перемещает файловую систему из одной точки монтирования в другую.
Если раздел 1 dev 1 sda 1 уже смонтирован в каталог /mnt/mymount, то использование
данного параметра переместит файловую систему в каталог /tmp/mydi r:
$ sudo mount - v - - move /mnt/mymount/ /tmp/mydi r/
/mnt/mymount on /tmp/mydi r type поnе ( rw )
-

-

Аналогично файлу подкачки в ы можете создать файловую систему в файле,
а затем смонтировать ее. Данная процедура называется петлевы.м, монтированием.
Порядок создания и монтирования файла описан в подразд. • Создание виртуаль­
ной файловой системыj) разД. •Создание файловых систем и управление ими • .
Обычно петлевое монтирование файла используется после загрузки установоч­
ного компакт-диска или Live CD Linux. Выполнив петлевое монтирование образа
компакт-диска, вы можете просматривать его содержимое и копирdвать файлы
с него на свой жесткий диск.
В следующем примере команда mount автоматически выбирает существующее
петлевое устройство при монтировании файла-образа компакт-диска (тип файло­
вой системы iso9660). Из возвращаемой командой информации видно, что было
выбрано устройство 1 dev 1 l оорО:
$ sudo mount -v ·t i so9660 -о l oop /tmp/myi mage . i so /mnt/mymount/
mount : goi ng to use the l oop dev i ce /dev / l oopO
/tmp/myi mage . i so on /mnt/mymount type ехt З ( rw . l oop=/dev/ l oopO )
В следующем примере загрузочный образ запоминающего устройства USB
Linux di skboot . i m g загружается в каталог / tmp. Ниже приведен пример монтирова­
ния загрузочного образа:

$ sudo mount - v - о l oop /tmp/di skboot . i mg /mnt/mymount
mount : goi ng to use the l oop dev i ce /dev / l oopO
mount : you d i dn ' t speci fy а fi l esystem type fo r /dev / l oopO
I wi l l t ry type vfat
/tmp/di skboot . i mg on /mnt /mymount type vfat C rw . l oop=/dev / l oopO )

Для просмотра состояния петлевых устройств используйте команду l osetup:
$ sudo l osetup /dev/l oopO

Отображае т список смон тированных
петлевых устройств
/dev / l oopO : [ 0807 ] : 1009045 C / tmp/d i skboot . i mg )

Если петлевое монтирование прерывается или у вас возникают проблемы в ходе
демонтирования раздела, попробуйте выполнить следующую команду:
$ sudo l osetup -d /dev/l oopl
РИМЕЧАНИЕ

Принул и тель ное демон тирование
смон тированного петпевого устройства

-------­

Команда mount может также использоваться для привязки к ресурсам NFS или Samba/Windows CIFS.
Для получения более подробной информации о монтировании этих типов удаленных файловых
систем обратитесь к гл. 12.

160

Глава 7. Администрирование файловых си стем

Демонтированне фа йловых си сrем
Для размонтирования файловых систем предназначена команда umount. Вы можете
осуществлять демонтираванне файловых систем, используя имя устройства или
точку монтирования, однако точку монтирования использовать предпочтительнее,
поскольку это позволяет избежать проблем при связанном монтировании (одно
устройство, несколько точек монтирования):
$ sudo umount -v /dev/ sdal
/dev / sda 1 umounted
$ sudo umount -v /mnt/щymount/
.

Размон тирует устройс тво по его инени
Размон тируе т устройство по точке
нон тирования

/tmp/ d i skboot . i mg umounted

Если устройство занято, размонтировать его не удастся. Наиболее распростра­
ненной причиной, препятствующе� размонтированию устройства, является от­
крытая консоль с текущим каталогом в зоне монтирования:
$ sudo umount - v /mnt/mymount/
umount : /mnt/mymount : dev i ce i s busy
umount : /mnt/mymount : dev i ce i s busy

Иногда приложение, использующее устройство, неизвестно. В этом случае для
просмотра списка открытых файлов и последующего поиска в этом списке инте­
ресующей точки монmрованив вы можете воспользоваться командой 1 sof:
$ sudo 1 sof 1 grep mymount
bash
9341 francoi s

cwd

Ище т открытые файлы в разделе mymount
DIR
8.1
1024 2 /mnt /mymount

Вы можете видеть, что процесс bash, запущенный пользователем franc:ois с PID 934 1,
препятствует размонтированию раздела mymount.
Другой причиной может является выполнение побочного размонтирования:
$ sudo umount - v1 /mnt/mymount/

Выполнение побочного разнон тирования

Побочное размонтирование в данный момент размонтирует файловую систему
из дерева, но перед началом очистки ожидает полного освобождения устройства.
Размонтирование съемных носителей также можно осуществлять с помощью ко­
манды ej ect, которая раэмонmрует комиакт-диск и извлекает его из привода:
$ sudo eject /dev/cdrom

Размон тируе т и из влекает конпакт -диск

П рове рка файловы х систем
В Linux вместо обычного приложении scandisk, используемого в Windows, поиск
поврежденных на физическом уровне блоков осуществляется с помощью команды
badb 1 ock s , а поиск ошибок на логическом уровне - с помощью команды fsck. Ниже
описывается способ осуществленИJI поиска поврежденных блоков:

$ sudo badЫ ocks /dev/ sdal

Осуществляет поиск физ ически
поврежденных блоков на жес ткон диске

161

Проверка файловых систем

$ sudo badЬl ocks · v /dev/ sdal

Отображае т подробную информацию
о сканировании жес ткого диска

Check i ng Ы ocks О to 200781
Check i ng for bad b1 ocks ( read - on 1 y test ) : done
Pass comp1 eted . О bad b1 ocks found .

По умолчанию команда badb 1 ock тестирует поврежденные блоки на чтение.
Кроме того, с помощью этой команды вы можете выполнять безопасное тестиро­
вание секторов на чтение и запись. Этот тест наиболее длителен, однако позволяет
сохранять хранящиеся на устройстве данные. Для контроля вьmолнения команды
добавьте параметр - s :
$ sudo badЬl ocks - vsn /dev/ sdal

Выполняет безопасную провер КУ дисков
на наличие поврежденных блоков
Check i ng for bad b1 ocks i n non - destruct i ve read -wri te mode
From b1 ock О to 200781
Test i ng wi th random pattern : Pass comp1 eted . О bad b1 ocks found .

Следующая команда выполняет более быстрый, однако уничтожающий данные
тест чтения-записи:
ВНИМАНИЕ

-------­

Эта команда уничтожит все данные на проверяемом разделе.

Проверяет диск на наличие поврежденных
секторов . унич тожая записа нные данные
Check i ng for bad b1 ocks i n rea d - wri te mode
From Ь 1 ock О to 200781
Test i ng wi th pattern Охаа : done
Readi ng and compa ri ng : done
Test i ng wi th pattern Ох55 : done
Read i ng and compa ri ng : done
Test i ng wi th pattern Oxff : done
Readi ng and compa ri ng : done
Testi ng wi th pattern ОхО О : done
Readi ng and compa ri ng : done
Pass comp1 eted . О bad b1 ocks found .
$ sudo badЬl ocks - vsw /dev/sdal

·

Вы можете выполнять сразу несколько тестов на наличие поврежденных сек­
торов; например, следующая команда может быть использована для записи ком­
цакт-дисков и одновременного вывода на экран информации о поврежденных
секторах:
$ sudo badЬl ocks · vswp 2 /dev/sdal

Как и mkfs , команда fsck представляет собой лишь устройство сбора данных
отдельных утилит файловых систем. Чтобы проверить файловую систему ext3
с помощью команды fsck, просто добавьте к ней имя устройства того раздела дис­
ка, который вы хотите проверить:
$ sudo fsck /dev/sdal
fsck 1 . 39 ( 29 - Мау - 2006 )

162

Гла ва 7. Админи стр и рова ние файловых систем

e2fsck 1 . 39 ( 29 - Мау - 2006 )
mypa rt has gone 18 days wi thout bei ng checked . check forced .
Pass 1 : Chec k i ng i nodes . Ы ocks . and s i zes
Pass 2 : Check i ng d i rectory st ructure
Pass 3 : Check i ng d i rectory connect i v i ty
Pass 4 : Check i ng reference counts
Pass 5 : Check i ng g roup summa ry i nformati on
mypa rt : 1 1 / 50200 fi l es ( 9 . 1% non - cont i guous ) . 12002/200780 Ы ocks

Вы можете использовать совместно с командой fsck и другие параметры, на­
пример - Т (скрывает номер версии fsck ) и - V (отображает более подробную инфор­
мацию о выполнении fsck в реальном времени):
Проверяет файловую систему (о тображает
подробную информацию . но скрывает версию )
( / sbi n / fsck . ext3 ( 1 ) - - /dev/ sda 1 ] fsck . ext3 /dev / sd a 1
e2fsck 1 . 39 ( 29 - Мау - 2006 )
mypa rt : c l ean . 1 1 / 50200 fi l es . 12002/200780 Ы ocks
$ sudo fsck

- ТV

/dev/sdal

Если при выполнении команды fsck произойдет какая-либо ошибка, вам будет
задан вопрос, хотите ли вы ее исправить:
-ТV

Отображае т вопрос . нужно ли исправля ть
возникшие ошибки
( / sbi n / fsck . ext3 ( 1 ) - - /mnt /mymount ] fsck . ext3 /dev / sda 1
e2fsck 1 . 39 ( 29 - Мау - 2006 )
Cou l dn ' t fi nd ext2 s uperЬl ock . t ry i ng backup Ы ocks . . .
Res i ze i node not v a l i d . Rec reate? у
$ sudo fsck

/dev/sdal

Если у вас нет достаточного опыта в работе с файловыми системами, отвечайте
всегда •да•. Добавив к команде· параметра -у, этот процесс можно автоматизиро­
вать:
$ sudo fsck - ТVу /dev/sdal
[ / sbi n / fsck . ext3 ( 1 ) - - /mnt /mymount ] fsck . ext3 -у /dev/sda1
e2fsck 1 . 39 ( 29 - Мау - 2006 )
Cou l dn ' t fi nd ext2 s uperЫ ock . t ryi ng backup Ы ocks . . .
Res i ze i node not v a l i d . Rec reate? yes
mypa rt wa s not c l ea n l y unmounted . check forced .
Pass 1 : Check i ng i nodes . Ы ocks . and s i zes
Pass 2 : Check i ng d i rectory st ructure
Pass 3 : Check i ng d i rectory connect i v i ty
Pass 4 : Check i ng reference counts
Pass 5 : Check i ng g roup s umma ry i nformati on
F ree Ы ocks count wrong for g roup #О ( 3552 . counted=3553 ) .
F i x? yes
F ree Ы ocks count wrong ( 188777 . counted=18877 8 ) .
F i x? yes
mypa rt : ***** F I LE SYSTEM WAS MOD I F I ED *****
mypa rt : 1 1 / 50200 fi l es ( 0 . 0% non - cont i guous ) . 12002/ 200780 Ы ocks

163

Проверка дисков RAID

рове рка д исков RAID
Технология резервных массивов данных на независимых дисках ( RAID) позволя­
ет дублировать и хранить данные на нескольких жестких дисках.Использование
технологии RAID может повысить надежность вашего носителя информации.
Команда mdadm, являющаяся составной частью пакета mdadm, может использовать­
ся для проверки устройств softraid:
$ sudo mdadm ·Q /dev/mdl
/dev/md 1 : 1498 . 13Mi B ra i d 1 2 devi ces . О spa res .
Use mdadm - - deta i l for more det a i l .
/dev/md 1 : No md s uper Ы осk found . not a n md component .
Сообщение в последней строке свидетельствует о том, что каталог /dev/md1 не
является частью массива RAID. Однако это нормально, поскольку сам каталог md 1
является массивом данных. Аналогично, если вы с помощью команды mdadm выпол­
ните запрос к члену массива RAID, то получите примерно следующую инфор­
мацию:
$ sudo mdadm ·Q /dev/ sdbЗ
/dev/ sdb3 : i s not an md a r ray
/dev/ sdb3 : dev i ce 1 i n 4 dev i ce act i ve rai d6 mdO . Use mdadm - - exami ne for more
detai l .
Для отображения более подробной информации добавьте параметр

- -

deta i 1 :

$ sudo mdadm · Q · · detai l /dev/mdl
/dev/md 1 :
Vers i on : 00 . 90 . 0 1
C reat i on Ti me : Fri Dec 8 16 : 32 : 12 2006
Ra i d Level
ra i dl
Array Si ze : 1534080 ( 1498 . 38 Mi B 1570 . 90 МВ )
Dev i ce Si ze : 1534080 ( 1498 . 38 Mi B 1570 . 90 МВ )
Ra i d Dev i ces 2
Tota l Dev i ces : 2
Preferred Mi nor : 1
Pers i stence : SuperЫ ock i s persi stent
Update Ti me : Sun Jun 17 02 : 06 : 0 1 2007
State : c l ean
Acti ve Dev i ces 2
Work i ng Dev i ces 2
Fa i l ed Dev i ces О
Spa re Dev i ces
О
UU I D : 49c564cc : 2d3c9a 14 : d93ce1c9 : 07 0663ca
Events : 0 . 42
Mi nor
Ra i dDev i ce State
Number
Ma j o r
2
act i ve sync /dev /hda2
о
3
о
act i ve sync /dev/ hdb2
1
1
3
66

164

Глава 7. Администрирование файловых систем

Кроме того, команду mdadm можно использовать для управления устройствами
softraid. Для получения более подробной информации выполните следующую
команду:
$ sudo mdadm - - manage hel p
$ man mdadm
-

ПРИМЕЧАНИЕ

-------­

Если вы используете аппаратные RАID-контроллеры Зware/AMCC, являющиеся, по нашему мнению,
наилучшими для приводов SATA RAID, убедитесь, что у вас установлен Зware Disk Maпager (Зdm2),
доступный в формате RPM на сайте ATrpms. пet. Пакет Зdm2 включает в себя инструменты для на·
блюдения и сетевые GUI.

Перед установкой пакета mdadm убедитесь, что у вас установлен именно RАI D­
диск. Во время установки mdadm программа попытается произвести настройку
ваших RАID-дисков. Кроме того, программа создаст в каталоге /etc/mdadm файл
mdadm . conf, с помощью которого вы сможете при необходимости удалить пакет
mdadm, однако существование этого файла может стать причиной проблем совмес­
тимости с программным пакетом lvm2 package, что будет описано позже.

Поп учение ин формаци и об использовании
ф ай п овой систе мы
Недостаточный объем свободного дискового пространства может сказываться на
производительности вашей настольной системы, а для ваших серверов это может
стать потенциальной катастрофой. Для определения объема доступного в данный
момент дискового пространства и уровня его использования предназначена коман­
да df, а для определения занимаемого отдельными файлами и каталогами места ­
команда du.
Команда df выводит отчет об испоJIЬзовании смонтированных файловых сис­
тем. С помощью параметра h для упрощения восприятия выводимых данных вы
можете выполнять их пересчет (по умолчанию отображаемых в байтах) в мегабай­
ты (М) и гигабайты (G):
-

$ df - h

Отображает и �формацию о дисковом пространс тве
в удобной для восприя тия форме
Used
Use%
Ava i l
Fi l esystem
Si ze
47%
7 . 6G
3 . 4G
3 . 9G
/dev / sda2
99М
15%
в ом
/dev / sda l
14М
501М
0%
50 1М
Tmpfs
О
59%
352G
197G
137G
/dev / sda5
5722608
3007 068 66%
/ /thompson/chri s
9204796

Mounted on

1

/boot
/dev / s hm
/home
/mnt /mymount

Поскольку в файловых системах ext существует множество файлов inode, соз­
данных во время выполнения команды mkfs, вы можете перед вычислением объема
занимаемого остальными файлами пространства вычислить только объем файлов
inode, при условии, что у вас на диске хранится много небольших файлов. Чтобы
проверить объем файлов inode, воспользуйтесь параметром i :
-

165

Получение информации об использовании файловой системы

$ df · hi
Fi l esystem
/dev/ sda2 2 . ОМ

I nodes I U sed I F ree
1 . 9М
108К

I Use%
6%

Mounted on

1

Если вы используете файловые системы, смонтированные для сетевого исполь­
зования (например, Samba или NFS), они также будут указываться в возвращаемой
командой df информации. Чтобы ограничить объем отображаемой командой d f
информации данными о локальных файловых системах, выполните следующую
команду:
$ df · hl

Отображае т дисковое прос транс тво . занимаемое
толь ко локаль ными файловыми сис темами

Чтобы добавить в список тип файловой системы, используйте параметр - Т:
Добавляет в список информацию о типе файловой сис темы
$ df · hT
Fi l esystem Туре Si ze Used Ava i l Use% Mounted on
/dev/ sda7 ехt З 8 . 8G 5 . 5G 2 . 9G 66% 1

Чтобы определить объем дискового пространства, занимаемого отдельными
файлами или каталогамJJ, используйте команду du. Следующая команда была вы­
полнена от имени пользователя frаnсоis:
$ du · h /home/ Отображает обьен занимаемого ка талогон /hame пространс тва
du : ' / home/chri s ' : Permi s s i on deni ed
4 . 0К / home/ franco i s / Ma i l
52К /home/ francoi s
64К /home/
Из отображенной информации видно, что доступ к одному из каталогов (в дан­
ном случае /home/chri s ) был закрыт из соображений безопасности. В следующих
примерах показано, как с помощью учетной записи суперпользователя обойти
систему прав пользователей и получить верные результаты. Наиболее хорошо это
видно, если для отображения отчета использовать параметр - s :

$ d u · sh /home

Обычному поль зова телю закрыт доступ к домашним
ка тапоган других поль зова телей
du : ' / home/chri s ' : Permi s s i on deni ed
du : ' / home/ horati ol99 ' : Permi s s i on den i ed
64К /home
# du · sh /home
С помощью уче тной записи суперполь зова теля вы може те
вывес ти о тчет об исполь зовании мес та на жесткон диске
/home
1 . 6G

С помощью параметра - с вы можете указать только несколько конкретных
каталогов, а затем вывести общий результат:
$ sudo du · sch /home /var
/ home
1 . 6G
l l lM
/var
1 . 7G
tota l

Отображае т отчет для одного и всех ка талогов

С помощью параметра ехс 1 ude вы можете исключить из поиска файлы, отожде­
ствляемые с образом. В следующем примере файлы-образы дисков (имеющие

166

Глава 7. Админи стр и рова ние файловых систем

расширение ISO) не учитываются в результатах определения свободного места на
диске:
$ sudo du - sh - - excl ude- ' * . i so ' /home/chri s
/ home/chri s
588М

Исключае т файлы образов ISO

Кроме того, вы можете определить количество проверяемых уровней дерева
каталогов. Чтобы в результатах теста учитывать вложенные каталоги, установите
параметр - - ma x - depth в значение больше 1:
$ sudo du ·h - - max - depth-1 /home

l . бG / home/ch ri s
52К
/ home/ francoi s
l . бG / home
$ sudo du · h - - max - depth-2 /home

4 . 0К
52К
l . бG

Определяет исnоль зование дискового
прос транс тва до первого уровня
вложенных ка талогов

Определяет исполь зование дискового
пространс тва до в торого уровня
вложенных ка талогов

/ home/ franco i s / Ma i l
/ home/ francoi s
/ home

П рогра мма управпен ия логическими
томами ( LVM)
Программа управления логическими томами является приложеннем операционных
систем Linux, предназначенным для того, чтобы помочь вам справляться с изме­
няющимися потребностями, связанными с управлением дисковым пространством.
Настроив свои жесткие диски как тома LVM, вы можете получить невероятную
гибкость в управлении дисковым пространством по мере изменения своих потреб­
ностей. Кроме того, LVM позволяет фиксировать мгновенное состояние системы
(этот параметр обычно можно встретить в SAN (сеть устройств хранения данных)
предприятий).
Ubuntu поставляется с LVM2, с помощью которой вы можете получать инфор­
мацию о размещении разделов жесткого диска уже при первой установке Ubuntu.
Используя LVM2, вы можете определять группы томов (vg), логических томов
(lv) и физических томов (pv), а также управлять ими. Каждый логический и фи­
зический том разделяется на логические и физические составляющие соответ­
ственно.
Основное при использовании LVM создание необходимых групп томов и ло­
гических томов, а затем назначение экстентов (небольших фрагментов дискового
пространства) в тех участках, где они нужны. В отличие от старых схем разбиения
дисков, в которых вам приходилось создавать резервные копии данных, изменять
параметры разделов, а затем возвращать данные на измененные разделы, при ис-

Получение информации об использовании файловой системы

167

пользовании LVM вы можете просто добавлять в необходимые места неиспользо­
ванные экстенты.
Чтобы использовать LVM, вы должны установить программный пакет lvm2.
LVM поставляется с набором команд, которые могут быть использованы для ра­
боты 'с томами LVM. Изучив материал следующего подраздела, вы сможете боль­
ше узнать о командах LVM.
ВНИМАНИЕ
Во избежание порчи жестких дисков компьютера во время изучения LVM мы рекомендуем вам вы­

-------­

полнять приводимые далее примеры на второстепенных съемных запоминающих устройствах. На­
пример, для выполнения данных команд мы использовали недорогое запоминающее USВ-устрой­
ство объемом 32 Мбайт (в /dev/sdb}.

Соэдание томов LVM
Для начала, чтобы создать физические разделы на том запоминающем устройстве,
на котором вы хотите создать позже логические разделы, воспользуйтесь командой
fd i s k . В данном случае используется запоминающее USВ-устройство объемом
32 Мбай'I, смонтированное в каталоге /dev/ sdb:
Выполняет команду для управления
разделами диска
Comma nd (m for hel p ) : р
Отображает список (Ущес твующих
разделов ( таких не т )
Di sk /dev/sdb : 32 МВ . 321 12128 bytes
1 heads . 62 sectors /track . 1 0 1 1 cyl i nders
Units cyl i nders of 62 * 512 3 1744 bytes
Dev i ce Boot
Sta rt End
Bl ocks Id
System
Command (m for hel p ) : n
Создает новый раздел
Corпna nd acti on
е extended
р pri ma ry pa rt i t i on ( 1 - 4 )
р
Делае т данный раздел основным
Назначает разделу номер 1
Parti ti on number ( 1 - 4 ) : 1
Fi rst cyl i nder ( 2 - 1 0 1 1 . defa u l t 2 ) : Enter
Usi ng defau l t va l ue 2
Last cyl i nder or +s i ze or +si zeM or +si zeK ( 2 - 1 0 1 1 . defa u l t 1 0 1 1 ) : Enter
Usi ng defaul t v a l ue 1 0 1 1
Command ( m for hel p ) : t
Определяе т тип раздела
Sel ected pa rti ti on 1
Нех code ( type L to l i st codes ) : ВЕ
Код L VМ-раздела
Cha nged system type of pa rt i t i on 1 to 8е ( L i nux LVM )
Command ( m for hel p ) : р
Отображае т информацию о новом разделе
Di sk /dev/ sdb : 32 МВ . 321 12128 bytes
1 heads . 62 sectors / t rack . 1 0 1 1 cyl i nders
Uni ts cyl i nders of 62 * 512 31744 bytes
System
Dev i ce Boot
Sta rt End
Bl ocks
Id
L i nux LVM
/dev/ sdЫ
2
1011
31310

$ sudo fdi sk /dev/sdb

=

=

=

=

168

Глава 7. Администрирование файловых систем

Прежде чем продолжать, убедитесь, что были произведены правильные изме­
нения в правильном разделе! Если все верно, создайте новую таблицу разбиения:
Command (m for he1 p ) : w
The pa rt i t i on tаЫ е has been a 1 tered !
Ca 1 1 i ng i oct1 ( ) to re - read pa rt i ti on tаЫ е .
Sync i ng d i s k s .

Вернувшись в консоль, воспользуйтесь комаНдой s fd i sk для просмотра схемы
разбиения жесткого диска:
Выводит список L VМ-разделов
$ sudo s fdi sk - 1 /dev/sdb
Di sk /dev / sdb : 1 0 1 1 cy1 i nders . 1 heads . 62 sectors/track
Un i ts
cy 1 i nders of 31744 bytes . Ы ocks of 1024 bytes . count i ng from О
#cyl s #Ьl ocks
Dev i ce Boot
Sta rt
End
Id
System
/dev/sdЫ
1
1010
101
31310
Ве
L i nux LVM
/dev/ sdb2
О
О
О
О
Empty
/dev / sdb3
О
О
О
О
Empty
1 dev 1 sdb4
О
О.
О
О
Empty
=

После этого назначьте раздел 1 dev 1 sdЫ в качестве нового физического тома
LVM и воспользуйтесь командой pvs для просмотра информации о существующих
LVМ-томах:
$ sudo pvcreate
Phys i ca 1 vo1 ume
$ s udo pvs V i ew
PV
1 dev 1 sdЫ vgusb

/dev/ sdЬl
Делает носи тель sdЫ физ ическим тоном L VM
" /dev / sdЫ " succes s fu 1 1 y c reated
phys i ca l LVM pa rt i t i ons
VG
Att r
Fmt
PSi ze
PF ree
1 vm2
28 . 00М
20 . 00М
а-

Теперь создайте группу томов vgusb, воспользовавшись командой vgc reate,
и отобразите текущие группы томов:
Создае т груnпу тонов vgusb
$ sudo vgcreate vgusb /dev/ sdЬl
Vol ume g roup " vgus b " succes s fu1 l y c reated
$ sudo vgs
Отображает текущие группы тонов
#PV
#SN
#LV
VG
Att r
VSi ze Vfree
Vgusb 1
О
О
wz - - n - 28 . 0 0М 28 . 00М

Для создания нового LVM -раздела размером 1 О Мбайт из группы томов vgusb
воспользуйтесь командой 1 vcreate. Затем с помощью команды 1 vs просмотрите
информацию о логическом томе, а с помощью команды vgs определите объем из­
менившегося свободного места:
$ sudo l vcreate - - si ze lOM - - name l vm_ul vgusb
Round i ng up s i ze to fu1 1 phys i ca 1 extent 12 . 00 МВ
Log i ca l vo1 ume " 1 vm_u 1 " c reated
Отображает информацию о логическом тоне
$ sudo l vs
Att r
LSi ze Ori g i n Snap% Move Log Сору%
VG
LV
1 vm_u 1 vgusb -wi - a - 12 . 00M
Показывае т . ч то у вас ес ть 16 Мбай т свободного мес та
$ sudo vgs
#PV
#LV
#SN
Att r
VSi ze
VFree
VG
Vgusb
1
1
О
wz - - n 28 . 00М
16 . 00М

Получен ие информации об использовании файловой системы

169

Чтобы создать на LVM -разделе файловую систему ехtЗ, выполните следующую
команду:
$ sudo mkfs . extЗ /dev/mapper/vgusb · l vm_ul
mke2fs 1 . 38 ( 30 - Jun - 20 0 5 )
F i l esystem l a bel =
OS type : Li nux
8l ock s i ze=1024 ( l og=O )
Fragment s i ze=1024 ( l og=O )
3072 i nodes . 12288 Ы ocks
614 Ы ocks ( 5 . 00% ) reserved for the s uper user
Fi rst data Ы осk=1
Maxi mum fi l esystem Ы ocks=12582912
2 Ы ock g roups
8192 Ы ocks per g roup . 8 192 fragments per g roup
1536 i nodes per g roup
SuperЫ ock backups stored on Ы ocks :
8193
Wri ti ng i node taЫ es : done
Creat i ng j ourna l ( 1024 Ы ocks ) : done
Wri t i ng superЫ ocks and fi l esystem accounti ng i nformat i on : done
Thi s fi l esystem wi }l Ье a utomat i ca l l y checked every 35 mounts or
180 days . whi chever comes fi rst . Use tune2fs - с o r - i to overri de .

Теперь файловая система ехtЗ создана и том LVM готов к использованию.

Ис поп ьэование томов LVM
Чтобы приступить к использованию нового тома, представленного /dev /ma ppe r /
vgusb - l vm_u 1 , создайте точку монтирования ( /mnt / u 1 ) и смонтируйте этот том.
Затем для Проверки имеющегося свободного места воспользуйтесь командой df:
$ sudo mkdi r /mnt/ul Создает точцу нон тирования
$ sudo mount ·t ехtЗ /dev/mapper/vgusb - l vm_ul /mnt/u1 Мон тирует тон
$ df -m /mnt/ul
Проверяет объен дос тупного дискового прос транс тва
Fi l esystem 1M - Ы ocks Used Ava i l a Ы e Use% Mounted on
/dev/mapper/vgus b - l vm_u 1
12 2 10 11% /mnt / u 1

На данном этапе файловая система содержит только каталог 1 ost+found:
$ l s /mnt/ul
l ost+found

Скопируйте крупный файл в файловую систему. Например, скопируйте одиn
из файлов ядра из каталога / boot в /mnt/ u 1 :
$ е р /boot/vml i nuz · * /mnt/ul/
$ df ·m /mnt/ul

Копируе т крупный файл в Jmnt lul
Показывае т . ч то ка талог lmnt/u
инее т объен 4 Мбай т
Fi l esystem 1M-Ы ocks Use.d Ava i l a Ы e Use% Mounted on
/dev /ma pper/ vgus b - l vm_u 1
12 4 9 27% /mnt / u 1

170

Гла ва 7. Адми � истр и рова ние файловых систем

Сверьте информацию о скопированном файле с его md5sum и сохраните полу­
ченную контрольную сумму для дальнейшего использования:
$ md5sum /mnt/ul/vml i nuz - 2 . 6 . 20 - 1 . 2316 . fc5
Сверяет информацию с md5sum
8d0dc0347d36ebd3f6f2b49047e1 f525 /mnt /u 1 / vml i nuz - 2 . 6 . 20 - 1 . 2316 . fc5

Увеличен ие тома LVM
Допустим, вы исчерпали доступное свободное место и вам необходимо расширить
объем тома LVM. Чтобы это сделать, демонтируйте том и воспользуйтесь коман­
дой 1 v res i ze. После этого с помощью команды e2fsck проверьте файловую систему
и выполните команду res i ze2fs , чтобы изменить размер файловой системы ехtЗ
данного тома:
$ sudo umount /mnt/ul
Демон тируе т тон
$ sudo l vres i ze · · si ze lбН /dev/vgusЬ/l vm_ul
Изменяет размер тона
Extend i ng l og i ca l vol ume l vm_u 1 to 16 . 0 0 МВ
Log i c a l vol ume l vm_u 1 s ucces s fu l l y res i zed
$ sudo e2 fsck · f /dev/vgusЬ/l vm_ul
e2fsck 1 . 40 ( 12 - J u l - 2007 )
Pa s s 1 : Chec k i ng i nodes . Ы ocks . a nd s i zes
Pass 2 : Check i ng d i rectory st ructure
Pass 3 : Check i ng d i rectory connecti v i ty
Pass 4 : Check i ng reference counts
Pass 5 : Check i ng group summa ry i nformati on
/ dev/ vgusЬ/ l vm_u 1 : 12/3072 fi l es ( 25 . 0% non - cont i guous ) . 3379/ 1 2288 Ы ocks
$ sudo resi ze2 fs /dev/vgusЬ/l vm_ul lбН Изменяет размер файловой сис темы
res i ze2fs 1 . 38 ( 30 - Jun - 2005 )
Res i zi ng the fi l esystem on / dev / vgusЬ/ l vm_u 1 to 16384 ( 1k ) Ы ocks .
The fi l esystem on /dev / vgus Ь/ l vm_u 1 i s now 16384 Ы ocks l ong .

В приведеином примере и размер тома, и размер файловой системы был увели­
чен до 1 6 Мбайт.
После этого снова смонтируйте том, проверьте объем доступного дискового
пространства и сверьте его с созданным ранее md5sum:
$ sudo mount -t ехtЗ /dev/mapper/vgusb - l vm_ul /mnt l ul Зa нo в o мон тирует тон
$ df - m /mnt/ul
Показывае т . ч то исполь зовано 4 Мбай т из 1 6 Мбайт
1M - Ы ocks
F i l esystem
Used Ava i l a Ы e
Use% Mounted on
/dev /mapper/vgus b - l vm_u 1
16
4
13
20%
/mnt l u l
$ md5sum /mnt/ul/vml i nuz - 2 . 6 . 20 · 1 . 2316 . fc5
Заново проверяет md5sum
8d0dc0347d36ebd3f6f2b49047e1 f525 /mnt / u 1 / vml i nuz - 2 . 6 . 20 - 1 . 2316 . fc5

Теперь смонтированный том занимает 16 Мбайт вместо 10 Мбайт.

У меньшен ие размера тома LVM
Вы также можете использовать команду l v res i ze, если хотите уменьшить объем
существующего LVM -тома. Как и в предыдущем случае, перед изменением раз-

Резюме

171

мера тома размонтируйте его, а затем выполните команды e2fsck (чтобы проверить
файловую систему) и res i ze2fs (для уменьшения размера тома):
$ sudo umount /mnt/ul
$ sudo e2fsck - f /dev/vgusЬ/l vm_ul
fsck 1 . 38 ( 30 - J un - 2005 )
e2fsck 1 . 38 ( 30 -Jun - 20 0 5 J
The fi l esystem s i ze ( accord i ng t o t h e s uperЫ ock ) i s 16384 Ы ocks
The phys i ca l s i ze of the dev i ce i s 8192 Ы ocks
Pass 1 : Checki ng i nodes . Ы ocks . and s i zes
/dev / vgusЬ/ l vm_u1 : 12/3072 fi l es ( 8 . 3% non - conti nguous . 353 1 / 1 6384 Ы ocks
$ sudo resi ze2 fs /dev/vgusЬ/l vm_ul 12М Изменяе т разнер файловой сис тены
res i ze2fs 1 . 38 ( 30 - Jun - 2005 )
Res i zi ng the fi l esystem on /dev / vgusЬ/ l vm u1 to 12288 ( 1k ) Ы ocks .
The fi l esystem on /dev / vgus Ь/ l vm_u 1 i s now 12288 Ы ocks l ong .
$ sudo l vresi ze - - si ze 12М /dev/vgusЬ/l vm_ul
WARN I NG : Reduc i ng act i ve l og i ca l vol ume to 12 . 00 МВ
TH I S МАУ DESTROY . YOUR DATA ( fi l esystem etc . )
Do you rea l l y want to reduce l vm u1? [y/ n J : у
Reduc i ng l og i c a l vol ume l vm u 1 to 8 . 0 0 МВ
Log i ca l vol ume l vm_u1 s ucces sful l y res i zed
$ sudo mount -t ехtЗ /dev/mapper/vgusb - l vm_ul /mnt/ul
Заново мон тируе т тон
$ df -m /mnt/ul
Показывае т . ч то исполь зовано 4 Мбай т из 12 Мбайт
1M-Ьl ocks
Used
Ava i l a Ы e
Use%
Mounted on
Fi l esystem
/dev/mapper/vgus b - l vm_u 1
12
4
9
20%
/mnt / u 1

Теперь смонтированный том занимает 1 2 Мбайт вместо 1 6 Мбайт.

Удапение логических томов и групп LVM
Чтобы удалить логический LVМ-том из группы томов, используйте команду
l v remove:
$ sudo l vremove /dev/vgusЬ/l vm_ul
Do you rea l l y want to remove act i ve l og i c a l vol ume " l vm-u 1 " ? [y/ n ] : у
Log i ca l vol ume " l vm_u1 " succes sful l y removed

Для удаления целой группы LVM -томов используйте команду vg remove:
$ sudo vgremove vgusb
Vol ume g roup " vgusb" s uccess ful l y removed

Существует гораздо больше способов работы с LVM, ознакомиться с которыми
вы можете в статье cLVM Н OWTO• (http://tldp.org/HOWТO/LVM-HOWТOI).

Р ез ю м е
Создание файловых систем в Linux и управление ими является очень важной частью
системного администрирования. Linux поддерживает некоторые классические

172

Глава 7. Администрирование файловых систем

типы файловых систем (ext2, ехtЗ, reiserfs и др. ), а также позволяет создавать
и управлять файловыми системами Windows (VF АТ, NTFS и т. д.) и традицион­
ными и специальными типами файловых систем Linux и UNIX (minix, jfs и xfs).
С помощью таких команд, как fd i sk и pa rted, вы можете разбивать пространство
жесткого диска. Среди приложений, предназначенных для работы с файловыми
системами, можно отметить утилиты для их создания ( mkf s ), просмотра и измене­
ния атрибутов файловой системы (tune2fs и mpe2fs ) , монтирования и демонтиро­
вания файловых систем (mount и umount) и проверки на наличие ошибок и повреж­
денных секторов (badЫ ocks и fsck). Чтобы получить информацию о занимаемом
файлами и каталогами пространстве файловой системы, используйте команды
df и du.

8

Соэда н ие рез ервн ы х
коп и й и работа
со съе м н ы м и носи тел я м и

Раньше резервное копир ов ан ие данных в Linux, как правило, осуществлялось пу­
тем сжатия и архивирования данных с последующей записью полученного архива
на ленту. В п осл едни е годы количество утилит для архивирования, способов сжа­
тия и видов копируемых данных существенно возросло. Архивирование с исполь­
зованием ленты было вытеснено Другими способами резервного копирования,
такими как сетевое резервное копирование, копирование на другие жесткие диски,
а также на ко м п акт д и ск и, DVD или другие недорогие съемные носители.
В данной главе под ро бн о рассматриваются приложения, используемые для
резервного копирования и восстановления важных данных. Первая часть главы
посвящена использованию таких основных приложений резервного копирования,
как tar, gzip и rsync.
-

Резе рвное ко п ирова ни е данны х в архивы
Если вы раньше работали в Windows, то вам, скорее всего, пр иход илос ь использо­
вать такие приложения, как WinZip ил и PKZIP, сжимающие группы файл ов в один.
В Linux для помещения групп файлов в один архив ( ta r) и сжатия этого архива для
последующего эффективного хранения ( gz i р, bz i р2 и 1 zop) предлагаются разные
инструменты, однако с помощью дополнительных параметров команды ta r вы мо­
жете выполнять эти две операции совместно.

Создани е резе рвных архивов с помощь ю
и н а рум е нта tar
Команда t a r , выступающая в качестве ленточного архиватора, относится к прило­
жениям ранних систем UNIX. Хотя первоначальным носи теле м, на который запи­
сывала,сь информация с помощью t a r, была еще магнитная лента, t a r и сегодня
используется для создания архивов, которые впоследствии могут быть записаны
на различные носители.
Команда t a r способна выполнять большое количество функций, что отражено
в десятках ее параметров. Однако в основном ta r используется для создания

174

Глава 8. Соэдание резервных копий и работа со съемными носителями

резервных архивов ( с ) , извлечения файлов из архива ( - х), выявления различий
между архивами ( - d) и обновления файлов в архиве ( - u). Кроме того, с помощью
этой команды вы можете добавлять файлы в существующие архивы ( - r или А)
удалять файлы из них ( - d), а также отображать содержимое архива ( - t).
-

-

,

ПРИМЕЧАНИЕ -------­

Хотя команда tar входит в состав практически всех систем UNIX и Uпux, на многих системах она
используется по-разному. Например, операционная система Solaris не поддерживает использование
параметра -z для управления архивами TAR в формате gzip, зато команда Star (ess-tar) поддержи­
вает доступ к контрольным спискам (ACLs) и меткам (для обеспечения расширенных прав доступа
при использовании Samba).

В процессе создания ТАR-архива вы можете добавлять параметры для сжатия
полученного архива. Например, для сжатия архива в формат bzip2 укажите пара­
метр - j , а для сжатия в формат gzip - параметр - z. По определению, обычные
файлы tar имеют расширение Т AR, в то время как сжатые архивы - ТAR. BZ2
(сжат с помощью bzip2) или TAR.GZ (сжат с помощью gzip ). Если же вы сожмете
файл вручную с помощью утилиты lzop (www . lzop.org), то полученный архив будет
иметь расширение ТAR.LZO.
Файлы Т AR, помимо использования для резервного копирования, являются
популярным способом распространения исходных кодов и бинарных файлов про­
ектами по разработке программнаго обеспечения. Именно поэтому вы вправе рас­
считывать, что на любой системе Linux и UNIX будут приложения, необходимые
для работы с файлами tar.
ПРИМЕЧАНИЕ -------­
Особенность работы с командой tar связана с тем, что она была создана еще до возникновения
стандартов использования параметров. Хотя вы можете добавлять параметры для tar с помощью
дефиса, это не всегдв является обязательным условием. Поэтому вы вполне можете встретить ко­
манду tar, например tar xvf, без дефиса, обозначающего ввод параметра.

В качестве классического примера использования команды ta r может служить
комбинирование устаревших параметров и каналов для сжатия информации:
$ tar с * . txt 1 gzi p - с > myfi l es . tar . gz

Создает архив . сжинает его
и воз вращает

Приведенный пример, который вы можете найти в документации к старым
системам UNIX, демонстрирует выполнение стандартного двухшагового процесса.
Команда ta r создает в текущем каталоге архив из всех текстовых ТХТ -файлов (с),
затем направляет выход команде gzi p и выводит результат на stdout ( - с), а уже
после этого направляет информацию в файл myfi 1 es . ta r . gz. Стоит отметить, что
ta r является одной из немногих команд, которая не требует использования знака
дефиса ( - ) для добавления параметра.
Новые версии ta r, используемые на современных системах Linux, способны
создавать архивы и сжимать информацию в рамках одной операции:
$ tar czf myfi l es . tar . gz * . txt

Из ТХТ-файлов создает файл tar .
сжа тый с помощью gz ip

175

Резервное копирование данных в архивы
$

tar czvf myf1 1 es . tar . gz * . txt

При создании архива о тображает более
подробную информацию

textfi 1 el . txt
text fi 1 е2 . txt

Обратите внимание, что в приведеиных примерах имя архива ( myfi 1 es . ta r . gz)
должно следовать сразу за параметром f команды t a r (он определяет имя будуще­
го архива) - иначе выход tar будет направлен в stdout (другими словами, на экран
вашего монитора). Параметр z указывает, что для сжатия необходимо использовать
программу gzip, а параметр v позволяет отображать более подробную информацию
о процессе сжатия.
Кроме того, с помощью команды ta r (и при желании gunzi p) вы можете распа­
ковывать архивы. Выполнить эту операщt:ю можно в один или два этапа:
$
$

gunz i p - с щyf1 1 es . tar . gz 1 tar х
gunzi p щyf1 1 es . tar . gz : tar xf щyf1 1 es . tar

Распаковывает архивы ZIP и TAR
Распаковывае т архивы ZIP и TAR

Чтобы выполнить ту же операцию в одно действие, введите следующую ко- ·
манду:
$

tar xzvf щyf1 1 es . tar . gz textf1 1 el . txt textf1 1 e2 . txt

В результате ее выполнения будут распакованы и скопированы в текущий ка­
талог заархивированные ранее ТХТ -файлы. Параметр х используется для извле­
чения файлов, z - для распаковывания, параметр v расширяет объем отображае­
мой информации, а параметр f указывает, что следующий параметр является
именем обрабатываемого архива ( myfi 1 es . ta r . gz).

:: пользование приложени й для сжатия
Сжатие является важным этапом при резервном копировании файлов. Сжатые
файлы занимают меньше места на носителях (компакт-диске, DVD, магнитной
ленте и т. д.) или сервере, используемом для хранения резервных копий файлов.
Кроме того, для копирования таких файлов на носитель или передачи их по сети
требуется меньше времени.
Сжатие, с одной стороны, сохраняет много пространства на носителях и сокра­
щает время передачи файлов на сервер, но, с другой стороны, может значительно
увеличить нагрузку на центральный процессор. Для примера вы можете озна­
комиться с процедурой аппаратного сжатия данных с использованием ленты
(www . amanda .org/docs/faq .html#id3460 16).
В приведеиных выше примерах вместе с ta r использовалась команда gzi р. Тем
не менее tar может работать и со многими другими Приложениями для сжатия.
В Ubuntu tar работает с утилитами gzip и bzip2. Третьей включенной в данное ру­
ководство утилитой для сжатия является команда 1 zop, которая может использо­
ваться с ta r несколько иначе, чем остальные две. Если выстроить эти приложения
в порядке от самого быстрого, но обеспечивающего наименьшую степень сжатия
к самому медленному, но обеспечивающему наилучшее сжатие, то получится сле­
дующая последовательность: lzop, gzip и bzip2.

176

Глава 8. Создание резервных копий и работа со съемными носи телями

Если вы архивируете и сжимаете большое количество информации, это может
занять значительное время. В этом случае вам стоит иметь в виду, что команда bzi р2
тратит на сжатие примерно в десять раз больше времени, чем 1 zop, а сжимает луч­
ше только в два раза. Однако каждая команда позволяет использовать различные
уровни сжатия, что несколько уравнивает соотношения степени сжатия и времени,
затрачиваемого на него.
Чтобы использовать команду t a r вместе с bzi p2, используйте параметр - j :
$ tar cjvf щyfi � es . tar . bz2 * . txt

Создае т архив и сжина 7 т его с помощью bz ip2

Используя параметр - j , вы можете и распаковывать сжатые с помощью bzip2
файлы (так же, как при использовании параметра - х с командой t a r ) :
$ tar xjvf щyfi l es . tar . bz2

Из влекает файлы . распаковая их с помощью bz ip2

Утилита lzop несколько меньше совместима с tar. Для ее использования вам
потребуется установить пакет lzop. Чтобы вьmолнить сжатие с помощью команды
lzop, воспользуйтесь параметром - - use- compress - program:
$ sudo apt - get i nstal l l zop
$ tar - - use - compress - program-l zop - cf myfi l es . tar . l zo * . txt
$ tar - - use •compress - program-l zop - xf myfi l es . tar . l zo

В данных примерах команда использует синтаксис, обратный старому синтак­
сису команды ta r, располагая параметр перед командой. В остальных примерах мы
использовали современный синтаксис команды ta r, не требующий использования
параметра.
ПРИМЕЧАНИЕ

-------­

Вы также можете столкнуться со сжатыми файлами в формате RAR. Этот формат популярен в сетях
с равноправными узлами и защищен авторскими правами, поэтому не имеет какого-либо широ­
ко распространенного в Uпux приложения для работы с файлами RAR. В Ubuпtu, чтобы получить
возможность работать с командами для файлов в формате RAR, установите программные пакеты
uпrar и rar.

Команда gzip
Как уже было отмечено, вы можете любую команду сжатия использовать отдель­
но (в отличие от команды ta r ) . Ниже приведено несколько примеров использова­
ния команды gzi р, позволяющих создавать сжатые файлы gzip и работать с ними:
$ gzi p myfi l e

Сжинае т щyfi le и переиненовывае т его в myfi le . gz

Следующая команда выполняет те же действия, но отображает более подроб­
ную информацию о ходе выполнения:
$ gzi p - v myfi l e
Сжинает myfi le и о тображает более подробную информацию
myfi l e : 86 . 0% - - repl aced wi th myfi l e . gz
$ gzi p - tv щyfi l e . gz Проверяе т целостнос ть файла gz ip
myfi l e . gz : ОК
$ gzi p - l v myfi l e . gz Отображае т подробную информацию о файле gz ip
method
c rc
date
t i me compressed uncompressed
rat i о
uncompressed name
86 . 0%
defl a
Of27d9e4
J u l 10
04 : 48 46785
334045
myfi l e
·

Резервное копирование данных в архивы

177

Для сжатия всех файлов в каталоге воспользуйтесь любой из следующих
команд:
$ gzi p · rv mydi r
myd i r/fi 1 e1 : 39 . 1%
myd i r/fi 1 e2 : 39 . 5%
$ gzi p · 1 myfi l e
$ gzi p · 9 myfi 1 e

Сжинае т все файлы в ка талоге
repl aced wi th myd i r / fi 1 e1 . gz
rep1 aced wi th myd i r / fi 1 e2 . gz
Обеспечивае т наибольшую скорос ть .
но наименьшую с тепень сжа тия
Обеспечивает наиненьщую скорос ть .
но наибольщую с тепень сжа тия

Для определения уровня сжатия добавьте дефис перед соответствующей циф­
рой (от 1 до 9). Как следует из приведеиного выше примера, число - 1 соответству­
ет наиболее высокой скорости и наименьшей степени компрессии, а число - 9
наименьшей скорости и наибольшей степени компрессии. Уровнем по умолчанию
для gzip является б. Команда 1 zop использует меньшее количество уровней: 1, 3 (по
умолчанию), 7, 8 и 9. Уровни сжатия команды bzi р2 действуют иначе.
Для распаковки файла gzip используйте команду gunzi р и один из следующих
примеров:
-

Распаковывает файл myfi l e . gz
и переиненовывает его в myfi le
myfi l e . gz :
86 . 0% - - rep1 aced wi th myfi 1 e
$ gzi p · dv myfi l e . gz
То же самое
$ gunzi p · v myfi l e . gz

Хотя приведеиные примеры демонстрируют процесс упаковки обычных фай­
лов, те же параметры могут использоваться и для сжатия файлов tar.

Команда bzip2
Команда bzi р2 позволяет достигать максимальной, по сравнению со всеми осталь­
ными приводимыми в данной главе командами, степени компрессии. Ниже пред­
ставлены некоторые примеры использования команды bz i р2:
$ bzi p2 myfi l e
Сжинает файл и переиненовывает его в щyfi 7e . bz2
$ bzi p2 · v myfi l e
То же . но выводит более подробную информацию
myfi 1 e : 9 . 529 : 1 . 0 . 840 bi ts/byte . 89 . 51% sa ved . 334045 i n . 35056 out .
Распаковывае т файл и переиненовывае т его в щyfi l e
$ Ьunzi p2 myfi l e . bz2
$ bzi p2 · d myfi l e . bz2
То же
$ bunzi p2 · V myfi l e . bz2
То же . но выводит более подробную информацию
myfi l e . bz2 : done

Команда lzор
Использование команды 1 zop отличается от использования gzi р и bzi р2. Данная
команда лучше подходит для случаев, при которых скорость сжатия важнее его
степени. Когда 1 zop сжимает содержимое файла, она оставляет исходный файл не­
тронутым (если вы не используете параметр - U), однако создает новый файл с рас­
ширением LZO. Вы можете воспользоваться любым из следующих примеров ис­
пользования команды lzop для сжатия файла myfi 1 е:
$ l zop · V myfi l e
Сохраняе т myfi le и создает сжа тый myfi le . lzo
compres s i ng myfi 1 e i nto myfi 1 e . 1 zo
$ l zop · U myfi l e
Удаляет myfi l e . но создае т сжа тый myfi l e . lzo

178

Глава 8. Соэдание резервных копий и работа со съемными носител ями

Чтобы после создания файла myfi 1 е . 1 zo проверить, отобразить или распако­
вать его, воспользуйтесь любой из следующих команд:
Проверяет целос тнос ть сжа того файла
Отображает заголовок каждого вложенного файла
Отображает информацию о сжа тии для каждого
вложенного файла
method
compres sed uncompr .
rati o
uncompressed_name
LZOlX - 1 59008
99468
59 . 3%
myfi 1 е
Отображает содержимое сжа того файла
$ l zop - - l s myfi l e . l zo
(аналогично команде ls - 7 )
$ cat myfi l e 1 l zop > x . l zo Сжинае т s tandin · и направляет его в s tdout
Сохраняет файл щyfi l e . lzo и распаковывает его
$ l zop - dv myfi l e . l zo
в щyfi l e

$ 1 zop - t myfi l e . l zo
·$ l zop - - i nfo myfi l e . l zo
$ l zop - 1 myfi l e . l zo

В отличие от gz i р и b z i р2 , команда 1 z o p не имеет соответствующей команды для
распаковки архивов. Для распаковки файла просто добавьте к команде 1 zop пара­
метр - d . Если передать команде 1 zop список из файлов и имен каталогов, то она
сожмет все файлы, пропустив при этом каталоги. В полученном запакованном
файле сохранятся все параметры исJtодных элементов: имена, права доступа и подпи­
си даты и времени.

П росмотр, объед инение и добавпение файлов
в архивы tar
До сих пор с помощью t a r мы только создавали и распаковывали архивы, однако
данная команда поддерживает также параметры, позволяющие просматривать со­
держимое архивов, объединять их, добавлять файлы в существующие архивы
и удалять файлы из архива.
Чтобы просмотреть содержимое архива, воспользуйтесь параметром - t:
$ tar tvf myfi l es . tar
Отображае т список вложенных в ТАR -архив файлов
- rw - r - - r - - root / root 9584 2007 - 07 - 05 1 1 : 20 : 33 textfi 1 e 1 . txt
- rw- r - - r - - root/ root 9584 2007 - 07 - 09 1 0 : 23 : 44 textfi 1 e2 . txt
$ tar tzvf myfi l es . tgz
Отображает файлы архива gz ip

Если архив сжат с помощью команды 1 zop и назван myfi 1 е . ta r . 1 zo, то вы може­
те отобразить содержимое этого tarjlzор-файла следующим образом:
$ tar - - use- compress - program-l zop - t f myfi l es . tar . l zo

Отображае т содержимое
архива LZO

Для объединения одного файла tar с другим предназначен параметр -А. Сле­
дующая команда добавляет содержимое a rchi ve2 . t a r к архиву a rchi ve1 . tar:
$ tar ·Af archi vel . tar archi ve2 . tar

Чтобы добавить один или несколько файлов в существующий архив, восполь­
зуйтесь параметром - r. В следующем примере файл myfi 1 е добавляется в архив
a rchi ve . t a r:
$ tar rvf archi ve . tar mуfi l е Добавляет файл в архив tar

179

Резервное копирование файлов через сеть

С помощью специальных символов вы также можете добавить несколько фай­
лов в архив:
$ tar rvf archi ve . tar * . txt

Добавляет несколь ко файлов в архив tar

Удапение фа йлов из архивов tar
Если у вас н а жестком диске имеется файл арх;ива tar, то в ы при необходимости
можете удалить некоторые файлы из этого архива. Отметим, что данный способ
нельзя использовать для удаления файлов архивов tar, записанных на магнитной
ленте. Ниже приведен пример удаленив файлов из архиsа tar:
$ tar - - del ete fi l el . txt - f щyfi l e . tar

Удаляет fi lel . txt из myfi le . tar

Резервное копирование фа йлов
ч е рез сеть
После выполнения резервного копирования файлов и помещения их в архив что
вы будете делать с полученным архивом? Первой причиной, по которой необходи­
мо сделать резервную копию этого архива, является вероятность, например, выхода
из строя жесткого диска, в случае чего вам потребуется восстанавливать файлы из
резервной копии. Сохранить резервные копии можно следующими способами:
О скопировав резервные копии на съемные носители, например ленту, комиакт­
диск или DVD (как было описано ранее в этой главе) ;
О

скопировав их на другой компьютер сети.

Скорость и надежность сетей, а также низкая стоимость жестких дисков боль­
шой вместимости и безопасность, связанная с перемещением данных за пределы
рабочего места, делают популярным резервное копирование через сеть. Для вы­
полпения эффективного и безопасного резервного копирования личных данных
или данных небольшого офиса может быть достаточно сочетания нескольких про­
стых команд. Подобный подход очень хорошо характеризует философию UNIX,
заключающуюся в объединении нескольких простых программ с целью выполне­
ния ими более сложных задач.
Хотя практически любая команда, способная копировать файлы по сети, может
осуществить резервное копирование на удаленный компьютер, некоторые утилиты
особенно хорошо справляются с этой задачей. С помощью инструментов OpenSSH,
таких как ssh и scp, вы можете настроить безопасную и зашифрованную передачу
резервных архивов.
Приложепия наподобие команды rsync могут сохранять ресурсы, копируя
только файлы (или части файлов), измененные со времени последнего резервно­
го копирования. С помощью таких команд, как u n i son, вы можете осуществлять
резервное копирование файлов как в Windows, так и в операционных системах
Linux.
' В следующих подразделах описываются способы резервного копирования дан­
ных по сети на другие компьютеры.

180
ПРИМЕЧАНИЕ

Глава 8. Соэдание резервных копий и работа со съемными носителями

-------­

Кроме того, приложением, которое может вас заинтересовать, является команда rsпapshot (yum
install rsnapshot) (www. rsnapshot.org), которая может работать совместно с rsync и создавать еже­
часные, ежедневные, еженедельные и ежемесячные ( параметр времени настраивается) копии фай­
ловой системы. Для сохранения копий файловой системы используются жесткие ссылки, которые
впоследствии можно синхронизировать с измененными файлами.

У становить данное приложение можно с помощью сл�дующих команд:
$ sudo apt - get i nstal l rsnapshot
$ sudo apt - get i nstal l sshfs

Резервн ое копирование архивов tar через ssh
Пакет OpenSSH (www .openssh.org) предоставляет набор приложений для безопас­
ного удаленного входа в систему, удаленного выполнения и удаленного копирова­
ния файлов через сетевые интерфейсы. Настроив два компьютера на совместное
использование шифров-ключей, вы сможете обмениваться файлами между этими
машинами без необходимости вводить параль при каждой попытке передачи дан­
ных,· что позволит вам создавать коды для автоматического резервного копирова­
ния данных из SSH -клиента на SSH -сервер.
Используя команды OpenSSH и работая на центральной системе Linux, вы
можете собирать резервные копии данных с машин-клиентов. Следующая ко­
манда выполняет команду ta r на удаленном клиенте (для архивирования и сжа­
тия файлов ), направляет поток данных на стандартный выход и использует ко­
манду s s h для локального размещения резервных копий данных посредством
ta r:
$ mkdi r щуЬасkuр : cd щуЬасkuр
$ ssh francoi s@serverl ' tar cf - myfi l e* ' 1 tar xvf
francoi s@serverl ' s pas sword : ******
myfi l el
myfi l e2

-

В пр иведенном примере все файлы, начинающиеся с my fi 1 е, копируются из
рабочего каталога пользователя francois на serverl и помещаются в текущий каталог.
Заметьте, что с левой стороны канала создается архив, а с правой стороны файлы
из архива перемешаются в текущий каталог (запомните, что s s h переписывает
локальные файлы, если таковые существуют, и именно поэтому в примере мы
создали пустой каталог).
Чтобы выполнить обратное действие и скопировать-файлы с локальной систе­
мы на удаленную, необходимо сначала выполнить команду tar, а затем для поме­
щения файлов в выбранный каталог на удаленном компьютере использовать
команду сd:
$ tar cf - myfi l e* 1 ssh francoi s@serverl \
' cd / ,home/ francoi s /myfol der : t a r xvf '
francoi s@serve rl ' s password : ******
myfi l e l
myfi l e2

181

Резервное коnирование файлов с помощью rsync

В следующем примере мы не распаковываем файлы tar на передающей стороне,
а записываем резуJIЬтаты в файлы TGZ:

$ ssh francoi s@serverl ' tar czf · myfi l e* ' 1 cat > myfi l es . tgz
$ tar cvzf · myfi l e* 1 ssh francoi s@serverl ' cat > myfi l es . tgz '

В первом примере файлы из рабочеrо каталога пользователя francois, хранящие­
ся на serverl и начинающиеся на myfi 1 е, заnаковываются в архив Т AR, который
затем сжимается, после чего уже запакованные файлы направляются в файл
myfi 1 es . tgz на локальной системе. Во втором примере выполняется обратное дей­
ствие: из локального каталога выбираются все файлы, начинающиеся на myfi 1 е,
и направляются в файл myfi 1 es tgz, находящийся на удаленной системе.
Приведеиные в этих примерах команды удобно использовать для копирования
файлов через сеть. Помимо сжатия, они позволяют использовать на ваш выбор
разЛичные параметры tar, такие как инкрементные параметры резервного копиро­
вания.
.

Резе рвное копировани е фа йлов
с по м о щ ь ю rsync
Команда rsync поддерживает большое количество параметров для резервного ко­
пирования. У никальной данную команду делает алгоритм, позволяющий сверять
на основании контрольных сумм небольшими блоками локальные и удаленные
файлы и передавать только отличающиеся блоки. Этот алгоритм настолько эффек­
тивен, что используется и в других программах резервного копирования.
Команда rsync может использоваться перед удаленным командным процессо­
ром (ssh) или посредством запуска демона rsync d в конце сервера. В следу,ющем
примере rsync используется через консоль ssh для получения зеркала каталога:
$ rsync · avz · · del ete chri s@serverl : /home/chri s/pi cs/ chri spi cs/

Приведеиная команда предназначена для отражения в локальной системе
структуры удаленного каталога ( J home/chri s / pi cs/). Параметр -а выполняет коман­
ду в режиме архивации (рекурсивного копирования всех файлов из удаленного
каталога), параметр - z сжимает файлы, а - v детализирует возвращаемую информа­
цию. Параметр - - de 1 ete указывает команде rsync на необходимость удалять любые
файлы на локальной системе, которые больше не сущест�уют на удаленной.
Для непрерывного пошагавого резервного копирования с помощью команды
rsync выполните следующую команду:
# mkdi r /var/backups
# rsync · · del ete · backup
· · backup · di r-/var/backups/backup · ' date +%д'
· avz chri s@serverl : /home/chri s/Personal /
/var/backups/current · backup/

\
\
\

При запуске приведеиной команды все файлы из каталога / home/chri s / Persona 1
на удаленном компьютере serverl копируются в локальный каталог / v a r / backups / ,

182

Глава 8. Соэдание резервных копий и работа со съемными носителями

предназначенный для хранения текущих резервных копий. Все изменяющиеся
файлы копируются в каталог с соответствующим дню недели названием, например
/ v a r /backups/ backup - Monday. По окончании недели будет создано семь каталогов,
отражающих все произведенные за это время изменения.
Другой хитростью для выполнения циклического резервного копирования
является использование вместо многочисленных копий файлов жестких ссылок.
Этот процесс осуществляется в два этапа и заключается в циклическом сдвиге
файлов с последующим выполнением команды rsync:
# rm - rf /var/backups/backup · ol d/
# mv /var/backups/backup · current/ /var/backups/backup · ol d/
# rsync · · del ete · · l i nk - dest=/var/backups/backup - ol d - avz \
chri s@serverl : / home/chri s/Personal / /var/backups/backup - current/

В предыдущем примере текущий резервный каталог заменяется предыдущим
посредством удаления резервных копий прошлой недели и замены их резервны­
ми копиями текущей недели. Если любой из файлов, скопированных из лично­
го удаленного каталога и расположенных на компьютере server1, существовал
при предыдущем резервном копировании, то при Запуске посредством команды
rsync с параметром - - 1 i nk - dest нового резервного копирования будет создана
жесткая ссылка, связывающая файлы в текущем и старом резервных катало­
гах.
С помощью жестких ссылок между файлами в старом и текущем резервных
каталогах вы можете сэкономить много места на диске. Так, если у вас в обоих
каталогах есть файл fi 1 е 1 . txt, то, отобразив файлы inodes следующим образом, вы
можете убедиться, что оба файла являются одним физическим файлом:
$ l s . ; /var/backups/backup*/ fi l el . txt
260761 / v a r / backups / backup - c u rrent/ fi l e1 . txt
260761 / v a r / backups/backup - o l d / fi l e 1 . txt

Команда unison
Хотя команда rsync и является удобной для осуществления резервногокопирова­
ния с одного компьютера на другой, однако это предполагает, что данные изме­
няются только на компьютере, с которого осуществляется резервное копирование.
В случае же если у вас есть два компьютера и они оба изменяют один файл, а вам
необходимо синхронизировать эти файлы, придется использовать приложение
unison.
Часто возникает необходимость работать с одними и теми же документами
одновременно на ноутбуке и настольном компьютере. На этих компьютерах могут
даже быть установлены разные операционные системы, однако, поскольку unison
является межплатформенным приложением, оно позволяет синхронизировать
файлы, находящиеся и на системах Linux, и на системах Windows. Чтобы исполь­
зовать приложение unison в Ubuntu, вам потребуется установить одноименный
программный пакет (выполните из учетной записи команду s udo и a pt - get i nsta l l
uni son ) .

Резервное копирование файлов с помощью rsyпc

183

С помощью uni son вы сможете создать учетные записи двух суперпользователей,
тем самым обеспечив два пути си н хронизации. Эти учетные записи могут быть как
локальными, так и удаленными:
$ uni son /home/ francoi s ssh : // francoi s@serverl// home/ fcaen
$ uni son /home/ francoi s /mnt/backups/ francoi s · homedi r
ПРИМЕЧАНИЕ -------­
Убедитесь, что на обоих компь ютерах установлена одинаковая версия uпisoп .

Для осуществления резервного копирования команда uni son позволяет исполь­
зовать как графические, так и консольные приложения. По умолчанию использу­
ется графическая версия. Тем не менее, если у вас не запущен оконный менеджер
или если у вас unison запущен без графической оболочки, то это может вызвать
некоторые ошибки в работе программы. Чтобы запустить unison в режиме команд­
ной строки, воспользуйтесь параметром - u i text:
$ uni son /home/ francoi s ssh : / / francoi s@serverl//home/ fcaen · ui text
Contacti ng server . . .
franco i s@serverl " s pas sword :
Look i ng fo r cha nges
Wa i t i ng for cha nges from server
Reconci 1 i ng cha nges
1 оса 1
serverl
newfi 1 e
> memo . txt [ f] у
Propagat i ng updates
- - - -

После этого утилита utility сравнит две учетные записи суперпользователей
и для каждого зафиксируемого изменения попросит определить вид требуемого
действия. В приведеином выше примере на локальной системе был обнаружен
новый файл memo . txt. От пользователя требуется определить, хочет ли он продол­
жать выполнение обновления (в этом случае файл memo . txt будет скопирован с ло­
кального компьютера на serverl). Чтобы принять обновления, введите у.
Вы также можете добавить к команде параметр - a uto, чтобы утилита выполня­
ла предусмотренные по умолчанию действия, не запраш)Jвая подтверждения
пользователя на их выполнение:
$ uni son /home/ francoi s ssh : // francoi s@serverl//home/ fcaen - auto

Более подробную информацию вы можете получить, ознакомившись с МАN­
страницей, посвященной uni son. Кроме того, воспользовавшись параметром he 1 р,
вы можете просмотреть полный список используемых командой u n i son парамет­
ров, а с помощью параметра - doc а 1 1 - постранично отобразить руководство по
uni son:
-

$ uni son · hel p
$ uni son · doc al l 1 l ess

Отображает список паране тров un i son
Выводит руководство по un i son

Если вам часто приходится синхронизировать учетные записи суперпользова­
теля, создайте профиль, основанный на заготовленных настройках. В графическом

184

Глава 8. Соэдание резервных копий и работа со съемными носител ями

режиме это можно сделать на экране по умолчанию. Профили же хранятся в ка­
талоге -/ . un i son/ в текстовых Р RF-файлах, которые могут быть совсем прос­
тыми:
root
root

=
=

/ home/ francoi s
ssh : / / francoi s@serverl / / home / fcaen

Если настройки хранятся в профиле fc - home . prf, то можете активизировать его
с помощью следующей команды:
$ un; son fc - home

Резервное ко n ировани е дан н ых на съемные
носители
Вместительность компакт-дисков и DVD, а также низкая цена на эти виды носи­
телей сделали их популярными для резервного копирования данных с компьюте­
ров. Используя приложения, входящие в большинство операционных систем Linux,
вы можете собирать файлы в виде образов для их последующего резервного копи­
рования на компакт-диски или DVD.
Приложепия командной строки, такие как mk i sofs (создает и записывает об­
разы на компакт-диски) и cdrecord (создает и записывает образы на комиакт­
диски и DVD), стали наиболее популярными для осуществления резервного
копирования на компакт-диски и DVD. На сегодняшний день существует мно­
жество графических вариантов этих приложений, которые вы также можете ис­
пользовать в качестве утилит для резервного копирования. Например, среди
приложений G U I для подготовки и записи CDjDVD можно назвать КЗЬ (за­
писывает компакт-диски и DVD в KDE) и Nautilus (файловый менеджер для
GNO M E с возможностью записи компакт-дисков). Среди других GUI-приложе­
ний, предназначенных для записи компакт-дисков, можно отметить gcombust,
X-CD- Roast и graveman.
Команды для создания образов файловых систем и их последующей записи
и хранения на компакт-дисках или DVD описаны далее.

Создан ие резервн ы х образов
Большинство компакт-дисков и DVD с данными, поскольку они создаются с ис­
пользованием стандарта IS09660, применяющегося для форматирования инфор­
мации на этих дисках, читаются и в операционных системах Windows, и в опера­
ционных системах Linux. Поскольку большинство современных операционных
систем вынуждено хранить большее количество информации о файлах и каталогах,
чем включает в себя стандарт IS09660, для этого стандарта с целью увеличения
максимального объема хранимой информации были разработаны дополнительные
расширения.
Используя команду mk i sofs, вы можете осуществлять резервное копирование
файлов и структуры каталогов из любой точки файловой системы Linux, а ЗfТем
создавать образ IS09660. Этот образ может включать в себя следующие типы рас­
ширений.

185

Резервное копирование файлов с помощью rsyпc

О Общий протокол Использования системы (SUSP) - это записи, отмеченные
в протоколе обмена Rock Ridge. Записи SUSP могут содержать UNIX -подобные
атрибуты, такие как права собственности, поддержка длинных имен файлов
и специальные файлы (такие как идентификаторы накопителя и символьные
ссылки).
О Joliet - в каталоге с записями joliet записываются длинные имена файлов,
чтобы они могли использоваться в Windows.
О Иерархическая файловая система (HFS) - расширение, которое позволяет
образу ISO восприниматься в виде файловой системы HFS, являющейся исход­
ной для компьютеров Macintosh. Аналогичным образом благодаря использова­
нию данной файловой системы могут быть добавлены ветви данных и ресурсов,
чтобы они были доступны для чтения на компьютерах Мае.
При создании файла-образа ISO цеобходимо учитывать, в какой именно систе­
ме в конечном итоге будет осуществляться доступ к резервируемым с помощью
команды mk i sofs файлам ( Linux, Windows или Мае). Созданный образ может ис­
пользоваться разными спосо�ами, однако чаще всего он используется для записи
на компакт-диск или DVD.
Помимо того, что приложение mkisofs может быть использовано для полного
или частичного создания файловых систем Linux с целью их последующего ис­
пользования юi съемных носителях, оно позволяет создавать Live CD/DVD.
Выполнить это можно, добавив в образ загрузочную информацию, с помощью
которой можно загрузить ядро Linux или другой операционной системы, не ис­
пользуя жесткий диск компьютера.
ПРИМЕЧАНИЕ -------­
Хоrя mkisofs все еще может использоваться на Ubuпtu, она

все чаще заменяется командой geпisoimage.
Она является производной от mkisofs, которая была частью программнаго пакета cdrtools (http://
cdrecord. Ьerlios.de). Развитие genisoimage выполнялось в рамках проекrа cdrkit (www.cdrkit.org).

Поскольку большинство пользователей Linux хранят свои личные файлы в ра­
бочих каталогах, наиболее распространенным способом использования команды
mk i sofs является резервное копирование всей информации, хранящейся в дереве
каталогов ниже каталога /home.
Ниже представлено несколько примеров использования команды mk i sofs для
создания образа ISO из всех файлов и каталогов, расположенных ниже катало­
га /home:
$ cd /tmp
$ sudo mki sofs - о home . i so /home
$ s udo mk i sofs - о home2 . i so J - R /home
-

$ sudo mki sofs



homeЗ . i so - J - R - hfs /home

Создает базовый образ 1509660
Добавляе т расширения
Jo l i et Rock R i dge

Добавляет расширения HFS

При выполнении последней команды вы увидите следующее предупреждение:
gen i soi mage : Warni ng : no Appl e/Uni x fi l es wi l l Ье decoded/ma pped

В каждом из трех приведеиных выше примеров все файлы и каталоги, располо­
женные ниже каталога 1 home, добавляются в образ ISO ( home . i so ). В первом примере

186

Глава 8. Соэдание резервных копий и работа со съемными носителями

не использовалось расширений, поэтому имена всех файлов конвертиравались
в стиле DOS (формат 8.3). Во втором примере использовались расширения jоliеt
и Rock Ridge, поэтому в системе Linux или Windows имена файлов и права досту­
па к ним будут выглядеть так же, как и в исходной системе Linux. В последнем
примере создается образ, читаемый файловой системой Мае.
ПРИМЕЧАНИЕ

-------­

Операционная система Мае OS Х также способна определять расширения Rock Ridge и Jollet.

С помощью следующих команд вы можете добавлять к образу различные ис­
точники:
$ mki sofs ·О home . i so ·R ·J musi c/ docs/ \

Добавляе т несколько
ка талогов /файлов

chri s . pdf /var/spool /mai l
$ mki sofs · о home . i so · J · R \
Присоединяе т файлы к ветви с образом
- graft · poi nts Pi ctures/•/usr/ share/pi xmaps/ \
/home/chri s

В первом примере показаны различные файлы и каталоги, объединенные и по­
мещенные в корень образа ISO. Во втором примере содержимое каталога /va r/pi cs
присоединяется к каталогу /home/ chri s/ Pi ctures, в результате чего на компакт-дис­
ке с образом в каталоге / P i ctures будет находиться все содержимое каталога / us r /
sha re/ pi xma ps.
ДобаВJiение информации в заголовок образа ISO позже может определить
содержимое этого образа, что особенно полезно, если образ сохраняется или рас­
пространяется через сеть, то есть без использования физического диска. Вот не­
сколько примеров:
Добавляет информацию в заголовок ISO
$ mki sofs ·о /tmp/home . i so ·R ·J \
· р www . handsonhi story . com \
- puЫ i sher " Swan Вау Fol k Art Center" \
· V "WebBackup " \
· А " mki sofs " \
· vol set " 1 of 4 backups , Jul y 30 , 2007 " \
/home/chri s

В данном примере параметр Р обозначает ID создателя образа ISO, который
может содержать номер телефона, почтовый адрес или адрес сайта, через который
с ним можно связаться. С помощью параметра pub 1 i sher вы можете добавить до
1 2 8 символов информации о создателе образа (например, название компании или
организации). Параметр V указывает I D тома, который является важной инфор­
мацией, поскольку на многих операционных системах Linux именно он использу­
ется для монтирования компакт-диска после его запуска. Например, на основании
информации, содержащейся в приведеиной выше командной строке, компакт-диск
в Ubuntu и других системах Linux будет монтирован в каталог /med i a / WebBackup.
Параметр А может быть использован для обозначения приложения, с помощью
которого создается образ ISO. Параметр - vol set может содержать строку с инфор­
мацией о настройке образов ISO.
·

·

·

·

187

Резервное копи рование файлов с помощью rsyпc

После создания образа ISO и перед его записью на диск вы можете проверить
образ и убедиться, что ко всем файлам, содержащимся на диске, может быть осу­
ществлен доступ. Проверку можно произвести следующими способами:
Отображает имя тона
$ vol name home . i so
WebBackup
$ i soi nfo -d · 1 home . i so
Отображае т информацию за головка
CD- ROM i s i n I SO 9660 format
System i d : L I NU X
'
Vol ume i d : WebBackup
Vol ume set i d : Al l Webs i te mater i a l on Novembe r 2 . 2007
PuЬl i sher i d : Swa n Вау Fol k Art Center
Data prepa rer i d : www . ha ndsonhi story . com
Appl i cati on i d : mk i sofs
Copyri ght F i l e i d :
Abst ract Fi l e i d :
Bi Ьl i ograph i c Fi l e i d :
Vol ume set s i ze i s : 1
Vol ume set sequence number i s : 1
Logi cal Ы осk s i ze i s : 2048
Vol ume s i ze i s : 23805
Jol i et wi th UCS l evel 3 found
Rock Ri dge s i gnatures vers i on 1 found

При создании файла образа вы можете отобразить и большее количество вве­
денной в командную строку mk i sofs информации. Если образ необходимо опубли­
ковать, то определите на компакт-диске месторасположение файла, закрепляюще­
го авторские права (параметр - copyri ght ), абстрактного файла ( параметр - abst ract)
и файла библиографии ( параметр Ьi Ь 1 i о ) . Убедившись, что заголовок содержит
всю необходимую информацию, попробуйте получить доступ к файлам ISО-об­
раза, для чего смонтируйте его:
·

$
$
$
$

sudo mkdi r /mnt/myi mage
sudo mount - о l oop home . i so /mnt/myi mage
l s - 1 /mnt/my1 mage
sudo umount /mnt/myi mage

Создает точку нон тирования
Циклически мон тирует !50 -образ
Проверяет содержимое !50-образа
Демон тируе т образ после
выполнения операции

Помимо выполнения проверки на наличие доступа 1\ файлам и каталогам образа
ISO, убедитесь, что подписи даты и времени, права собственности и доступа ука­
заны верно. Позже эта информация может оказаться полезной, если понадобится
восстановить прежнюю информацию.

а пись образов
Команда cd record является наиболее популярным в среде Linux консольным при­
ложеннем для записи образов на компакт-диски и DVD. После создания ISО-об­
раза (как было описано ранее) или получения его другим способом (например,
после загрузки установочного компакт-диска или Live CD из Интернета) cd record
позволяет быстро записать этот образ на диск.

188
ПРИМЕЧАНИЕ

Глава 8. Соэдание резервных копий и работа со съемными носителями

------

8 Ubuпtu вместо команды cdrecord используется команда wodlm, созданная на баэе кода cdrecord

и поддерживающая те же параметры . Если вы попробуете выполнить команду cdrecord, то в этой
версии Ubuпtu, скорее всего, запустится wodim. Если у вас возникнут проблемы с этой утилитой,
свяжитесь с проектом CDRkit (http://cdrkit.org).

Создание ISО-образов компакт-дисков и DVD выполняется абсолютно одина­
ково, за исключением того, что образ DVD может быть значительно больше, чем
образ компакт-диска, поэтому проверьте объем имеющихся у вас в наличии носите­
лей. Компакт-диски обычно имеют объем 650 Мбайт, 700 Мбайт или 800 Мбайт,
тогда как мини-СО вмещают 50 Мбайт, 1 80 Мбайт, 1 85 Мбайт или 1 93 Мбайт.
Однослойные DVD имеют объем 4,7 Гбайт, тогда как на двухслойные DVD поме­
щается до 8,4 Гбайт.
ПРИМЕЧАН ИЕ

-------­

Имейте в виду, что производители CD/DVD при расчете вместимости носител ей размер одного
мегабайта принимают равным 1000 Кбайт вместо 1024 Кбайт. Чтобы проверить, поместится ли ISо­
образ на имеющийся у вас носитель, выполните команду du --si home.iso, позволяющую отобразить
размер образа (вместо используемой обычно команды du -sh).

Перед началом записи на компакт-диск или DVD убедитесь, что ваш привод
поддерживает запись CD/DVD, и укажите путь к носителю. Для этого восполь­
зуйтесь параметром - - scanbus команды cd reco rd:
Выводит список приводов . не поддерживающих
функцию записи

$ cdrecord - scanbus
scsi busO :
0 , 0 , 0 0 ) o SAМSUNG
0.0.0 1) *
0 . 0 . 0 2) *

о

O DVD - ROM SD - 616E

' F503 ° Remova Ы e CD- ROM

Отображает список приводов . ко торые могут
записыв а ть компакт -диски или D VD

$ cdrecord - scanbus
scsi busO :
0 , 0 . 0 0 ) o L ITE - ON
0.0.0 1) *
0 . 0 . 0 2) *

о

о

O DVDRW SOHW - 1633S o O BSOC O RemovaЫ e CD - ROM

Первый из приведеиных примеров отображает привод CD/DVD, поддержи­
вающий только чтение и не записывающий диски ( DVD-ROM и C D - ROM).
Команда, приведеиная во втором примере, отображает привод, который способен
осуществлять запись на компакт-диски или DVD ( DVD- RW). Вставьте носитель,
на который хотите произвести запись, в привод. Ниже приведены примеры команд
cd record, позволяющих записывать образы на компакт-диски или DVD:
$ cdrecord - dummy home . i so
$ cdrecord - v home . i so

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

189

Резервное копирование файлов с помощью rsyпc

$ cdrecord - v speed-24 home . i so
$ cdrecord - pad home . i so
$ cdrecord - eject home . i so
$ cdrecord /dev/cdrw home . i so
$ cdrecord dev-0 , 2 , 0 home . i so

Ус танавливае т скорос ть записи
При невозможнос ти ч тения дорожки
добавляет 15 нулевых секторов
Из влекает CDIDVD после завершения
записи
Определяе т привод по имени устройства
(може т о тличаться )
Определяет привод по имени SCSI

Команда cd record позволяет также записывать мульmсессионные CD/DVD:
Открывает муль тисессйю
$ cdrecord - multi home . i so
$ cdrecord - msi nfo
Проверне т номер сессии для следующего прожига
Usi ng /dev/cd rom of unknown capabi l i t i es
0 , 93041
$ mki sofs -J R -о new . i so \
Создает еще один !50-образ для записи
Задает на чаль ную точкv и определяе т новые
- С 0 , 93041 /home/chri s/more
данные для 150
$ cdrecord new . i so
Записывает новые данные на существующий
компакт -диск
·

Вы можете использовать параметр - mu l t i до тех пор, пока не заполните весь
диск. Для последнего прожига, чтобы закрыть сессию записи компакт-диска, не
используйте параметр - mu l t i .

Создание и запись DVD
Используя команду g rowi sofs, вы можете совмещать два этапа создания диска: груп­
пировку файлов в образ ISO (mk i sofs ) и запись этого образа на DVD (cd record ) .
Помимо экономии времени, команда g rowi sofs позволяет оставлять сессию записи
открытой (по умолчанию) до тех пор, пока вы самостоятельно ее не закроете.
Ниже представлены примеры использования команд g rowi sofs для работы
с мультисессиями:
$ growi sofs - Z /dev/dvd - R -J /home/chri s
$ growi sofs - Z /dev/dvd - R - J /home/francoi s
$ growi sofs М /dev/dvd-/dev/zero
·

Под го тавливае т и выполfiяет
запись образа на D VD
Добавляет файлы к образу
Закрывае т сессию

Если вы хотите воспользоваться дополнительными параметрами при записи
образа ISO, то можете просто добавить в командную строку параметры команды
mk i sofs (например, обратите внимание на использование параметров - R и -J в пре­
дыдущих примерах).
Если вы хотите записать с помощью команды growisofs образ DVD, восполь­
зуйтесь параметром - dvd - compat:
$ growi sofs - dvd - compat Z /dev/dvd-i mage . i so
·

Записывает образ 150 на D VD

Выполнение нескольких мультисессионных записей DVD с помощью парамет­
ра - dvd - compat может повысить совместимость с другими приводами DVD.

190

Глава 8. Соэда ние резервных копий и работа со съемными носителями

Рез ю м е
В операционных системах Linux и предшествующих им системах UNIX резервное
копирование данных осуществлялось посредством комбинирования команд, каж­
дая из которых выполняла определенный набор функций. Резервное копирование
важных данных и сегодня может выполняться таким же образом, однако сейчас
уже существует множество приложений, выполняющих эти операции безопаснее
и эффективнее.
Утилита для ленточного архивирования (команда tar), ранее используемая для
резервного копирования данных на магнитную ленту, расширила свои основные
функции. Поскольку практически во всех операционных системах Linux и UNIX
присутствует утилита tar, то именно она стала стандартом программнога обеспе­
чения для упаковки и резервного копирования данных. Существуют различные
способы передачи и хранения полученных архивов.
Для перемещения резервных копий данных на другие компьютеры сети вы
можете использовать службы удаленного исполнения OpenSSH (такие как ssh),
а также приложение rsync, с помощью которого вы можете экономить системные
ресурсы, копируя только изменившиеся файлы (или их части).
Невысокая стоимость компакт-дисков и DVD сделала эти носители популяр­
ными для резервного копирования личных данных или данных небольтого офиса.
Команда mk i sofs может создавать из скопированных резервных данных файловые
системы в формате IS09660, воспринимаемом многими операционными система­
ми ( Linux, Windows или Мае). После создания с помощью команды mk i sofs ISО­
образа он может быть записан на компакт-диск или DVD посредством команды
cd reco rd или g rowi sofs.

9

П ровер ка
за п у ще н н ы х п ро ц есс ов
и у п ра вл ен ие и м и

В Linux любая запускаемая программа выполняется в виде процесса, отображае­
мого в таблице процессов Linux. Linux располагает всеми необходимымц прило­
жениями для просмотра и изменения процессов, выполняющихся в системе.
Для просмотра информации о запущенных процессах наиболее удобны коман­
ды ps и top, для которых существуют десятки параметров, позволяющих отобра­
жать необходимую информацию о процессах.
Кроме того, в Linux существует команда pgrep, которая может помочь в поиске
необходимого процесса.
Существуют также такие команды, как n i ce и ren i ce, используемые для повы­
шения или уменьшения уровня использования ресурсов процессара тем или иным
процессом. Вместе с тем вы можете изменять статус процесса на фоновый ( коман­
да bg) и приоритетный (команда fg).
Одним из способов изменения выполняемых процессами действий или полно­
го их завершения является отправление процессам определенных сигналов.
Используя команды k i 1 1 и k i l l а 1 1 , вы можете отправлять процессам сигналы по
их PID или именам соответственно. Вы можете отправлять процессам и другие
сигналы, заставляющие их выполнять, например повторную проверку конфигура­
ционных файлов или продолжать выполнение ранее остановленного процесса.
Для составления расписания выполнения команд или работы с процессами,
которые не являются частью вашей текущей сессии работы с консолью, вы можете
использовать командь� at и batch. Для запуска команд в установленное время пред­
назначены утилиты cron и anacron. Кроме того, вы можете перемещать тексты колов
(или символьные ссылки на них) в каталог /etc /cron . hourl y (а также cron . d a i l y ,
c ron . week l y или cron . month l y ) .

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

192

Глава 9. Проверка запущенных процессов и управление ими

список запущенных команд, сортируя его по указанным критериям (уровень исполь­
зования времени центрального процессора, оперативной памяти, UID и т. д.).

Коман да ps
В каждой операционной системе Linux (а также во всех системах, провзводных от
UNIX, таких как BSD, Мае OS Х и др.) присутствует команда ps, однако с годами
появилось множество версий данной команды, незначительно отличающихся
от начальной версии некоторыми параметрами. Поскольку команда ps появилась
вместе с первыми системами UNIX, в ней используется нестандартный ввод пара­
метров (например, в некоторых случаях вам потребуется использовать перед па­
раметром знак дефиса).
Различные примеры команд, приведеиные в данной главе и демонстрирующие
способы использования команды ps, применямы как к Ubuntu, так и к большин­
ству других систем Linux. Ниже представлено несколько примеров, которые вы
можете использовать для отображения процессов текущего пользователя (в табл. 9. 1
приведено описание отображаемых командой ps столбцов):
$ ps
PID
2552
3438
$ ps

·

PID
2678
2689
2710

Отображае т в консоли процессы текvщего поль зова теля
TIME
CMD
ТТУ
bash
00 : 00 : 0 0
pts / 0
00 : 0 0 : 00
pts / 0
ps
u chri s Отображае т все процессы . запущенные поль зова телем
chr i s (с тандар тный вывод )
ТТУ
Т I МЕ
COMМAND
tty 1
О : 00
sta rtx
tty1
xi n i t
0 : 00
tty 1
0 : 06
gnome - sessi on

$ ps ·U chri s u
USER
chri s
chri s
chri s
$ ps

PID
2678
2689
2710
·

%CPU
0.0
О.О
0.0

%МЕМ
0.0
О.1
1.1

Отображае т все процессы . запущенные поль зова телем
chri s (с учетом исполь зования CPUIMEM)
VSZ
RSS
ТТУ
STAT START Т I МЕ СОММАND
4328
852
tty1 S+
Aug 14 0 : 0 0 /Ьi n / s h sta rtx
Aug 14 О : 00 xi n i t
2408
488
tty 1 S+
220 16 496
tty 1
S
Aug 14 0 : 06 gnome - sess i on
Отображает все процессы . запущенные поль зова телем

fu chri s

chri s (с учетом РР ID )'

UID
chri s
chri s
chri s
$ ps
UID
chri s
chri s
chri s

PID
2678
2689
2710
·

P P I D С ST IME ТТУ
2645 О Aug14 tty 1
2678 О Aug 14 tty1
2689 О Aug 14 tty1

Fu chri s
PID
2678
2689
2710

PPID
2645
2678
2689

T I ME
0 0 : 00 : 0 0
00 : 00 : 00
00 : 00 : 09

CMD
/bi n / s h / u s r / X 1 1R6/ bi n / st a rtx
xi n i t /etc / X 1 1 / xi n i t / xi n i t rc
/usr/bi n /gnome - sessi on

Отображае т все процессы . запущенные поль зова телем
chr i s (с учетом SZ и PSR )
С S Z RSS PSR ST IME ТТУ T I ME
CMD
О 1082 852 О · Aug 14 tty1 00 : 0 0 : 00 /bi n / s h sta rtx
О 602 488 О Aug 14 tty1 00 : 0 0 : 00 xi n i t
О 5504 5440 О Aug 14 tty 1 00 : 0 0 : 09 gnome - ses s i on

193

Отображение активных п ро цессов

В данных примерах отображаются некоторые процессы, запущенные в сеансе
оконного менеджера GNOME. В первом примере выполняется команда ps, запущен­
ная из окна терминала, поэтому в данном окне вы видите только процессы текущей
консоли. В других примерах демонстрируются способы отображения различной
информацию о процессах (примеры, демонстрирующие порядок формирования вы­
ходной информации команды на основе индивидуально заданных параметров, будут
приведены позже). Описания столбцов ps приведены в табл. 9. 1 .
Ниже показаны примеры использования команды ps для отображения каждо­
го выполняемого в системе процесса:
$ ps е
P I D ТТУ
1 ?
2 ?
3 ?

Отображает каждый выполняемый процесс
CMD
П МЕ
i ni t
00 : 00 : 0 1
mi g rat i on/0
00 : 00 : 0 0
ksoft i rqd / 0
00 : 0 0 : 00

$ p s el

Отображает более подробную информацию
выполняемом процессе
P P I D С PRI N I ADDR SZ WCHAN ТТУ
?
о о 75 о - 53 4 ?
1 о -40
о ?
1 о 94 19 о -

·

·

F
4
1
1

S
s
s
s

PID
1
2
3

UID

о
о
о

Выводит полную информацию о каждом
выполняемом процессе
Т I МЕ
P P I D С SТ IME ТТУ
0 0 : 00 : 0 1
О Aug05 ?
О
00 : 00 : 00
О Aug05 ?
1
О Aug05 ?
0 0 : 00 : 00
1

$ ps ef
·

PID
1
2
3

UID
root
root
root
$ p s eF
·

UID
root
root
root

PID
1
2
3

Отображае т расширенную информацию
выполняемом процессе
P P I D С SZ
RSS
PSR SТ I ME
Aug05
о
о 534 556
о
1
о
о
о
о Aug05
1
о
о
о
о Aug05

ТТУ
?
?
?

$ ps aux
USER
root
root
root

Т I МЕ
0 0 : 00 : 0 1
00 : 0 0 : 00
0 0 : 0 0 : 00

CMD
i ni t
mi g rati on/0
ksoft i rqa / 0

CMD
i ni t [5]
[mi grat i on / 0 ]
[ksoft i rqd/ 0 ]
о каждом
ТТУ
?
?
?

ПМЕ
00 : 0 0 : 0 1
00 : 0 0 : 0 0
00 : 0 0 : 0 0

CMD
i ni t [5]
[mi grat i on / 0 ]
[ k soft i rqd/ 0 ]

Выводит информацию о каждом выполняемом
процессе в сжа том с тиле В50
STAT
T I ME COMМAND
Ss
0 : 01 i ni t [5]
S
0 : 00 [mi grat i on / 0 ]
SN
0 : 00 [ k soft i rqd/ 0 ]

$ ps ах
РID
1
2
3

о каждом

PID
1
2
3

Отображает
процессе в
%CPU %МЕМ
0.0 0.0
0.0 0.0
0.0 0.0

информацию о каждом выполняемом
полном с тиле В50
VSZ RSS TTY STAT START T I ME COMМAND
2136
556 ?
Ss
Aug05 0 : 0 1 i n i t [ 5 ]
S
Aug05 0 : 0 0 [mi g rati on/ O J
О
О ?
SN Aug05 0 : 0 0 [ k soft i rqd / 0 ]
О
О ?

194
$ ps auwx
$ ps auwx

Гла ва 9. Проверка за пущенных процессов и управление ими

Отображае т информацию о каждом выполняемом .
процессе в полнон стиле 850 и расширеннон форна те
Выводит информацию о каждом выполняемом
процессе в полнон с тиле 850 и неограниченной шириной

Некоторые процессы могут заtiускать собственные процессы. Например, веб­
сервер создает множество процессов httpd, которые ожидают запросов на сервере.
Используя различные параметры команды ps, вы можете отображать процессы
в иерархическом порвдке (в виде дерева):
Отображает процессы в иерархическон порядке
на основании IO процессов или сессий
P I D PG I D S I D
ТТУ
T I ME
CMD
1
1
1
?
00 : 00 : 0 1
i ni t
2
1
1
?
00 : 0 0 : 0 0 mi grat i on / 0
2043 2043 2043
?
00 : 0 0 : 0 0
sshd
00 : 00 : 00
s shd
2549 2549 2549
?
2551 2549 2549
?
00 : 00 : 0 0
sshd
2552 2552 2552·
pts / 0
00 : 0 0 : 0 0
bash
7760 7760 7760
?
00 : 0 0 : 00
httpd
7762 7760 7760
?
0 0 : 00 : 00
httpd
00 : 00 : 00
httpd
7763 7760 7760
?
$ ps axj f
Отображае т процессы в иерархическон порядке в с тиле 850
P P I D P I D PG I D S I D ТТУ
TPG I D STAT U I D T I ME COMМAND
- 1 Ss
О
0 : 01 i ni t [5]
О
1
1
1 ?
-1 S
О
0 : 00 [mi grat i on / O J
1
2
1
1 ?
- 1 Ss
О
0 : 0 0 /usr/ sbi n / s shd
1 2043 2043 2043 ?
- 1 Ss
О
0 : 0 0 \_ sshd : chri s [ pri v ]
2043 2549 2549 2549 ?
-1 S
500
0 : 00 1 \_ sshd : chri s@pts
2549 2551 2549 2549 ?
2551 2552 2552 2552 pt s / 0
8398 Ss
500
0 : 0 0 1 \_ - bash
- 1 Ss
О
0 : 0 0 / us r/ sbi n / httpd
1 7760 7760 7760 ?
-1 S
7760 7762 7760 7760 ?
48 0 : 00 \ - / us r/ sbi n / httpd
-1 S
48 0 : 00 , /us r/sbi n/ httpd
7760 7763 7760 7760 ?
$ ps · ef · forest
Отображает процессы в иерархическон порядке в виде леса
T I ME
CMD
P I D P P I D С ST IME ТТУ
UID
root
0 0 : 00 : 0 1 i n i t [ 5 ]
1
О О Aug05 ?
00 : 00 : 00 [mi g rat i on / 0 ]
root
2
1 О Aug05 ?
root
3
1 О Aug05 ?
00 : 0 0 : 0 0 [ k soft i rqd / 0 ]
root
2043
1 О Aug05 ?
0 0 : 0 0 : 00 / us r/ sbi n / s shd
root
2549 2043 О Aug 16 ?
0 0 : 00 : 00 \_ sshd : chri s [pri v ]
0 0 : 00 : 0 0 1 \_ sshd : chri s@pt s / 0
chri s
2551 2549 О Aug 16 ?
00 : 0 0 : 0 0 1 \_ - bash
2552 2551 О Aug 16 pt s / 0
chri s
root
7760
1 О 1 8 : 27 ?
00 : 0 0 : 00 / us r/ sbi n / httpd
apache
7762 7760 О 18 : 27 ?
0 0 : 0 0 : 00 \ - / us r / sbi n / httpd
apache
7763 7760 О 18 : 27 ?
0 0 : 00 : 0 0 , / us"r/sbl n / httpd
$ pstree Отображает процессы в алфави тнон порядке в виде дерева
i n i t - + - Xorg
1 - at - spi - reg i st ry
1 - atd
1 - audi td - + - a ud i spd
1
' - { a ud i td }

$ ps · ejH

195

Отображение активных процессов

1 - sshd - + - sshd - - - sshd - - - bas h - - - pst ree
1
1 - sshd - - - sshd - - - bash - - - s u - - - ba sh
1
· - sshd - - - sshd- - - bash - - - su - - - bash - - - s u - - - ba sh - - - v i m

Показанные примеры демонстрируют различные способы отображения процес­
сов в иерархическом порядке. Чтобы сравнить некоторые одинаковые процессы,
отображающие различную информацию, текст выхода был сокращен. Стоит отме­
тить, что PPID (ID порождающего процесса) является ID процесса, запустившего
соответствующий дочерний процесс. Процессы sshd отображают запущенную ssd
с вошедшим в систему через сеть пользователем и выполняют запуск консоли bash
(и в конечном счете редактор vim). Демон httpd обеспечивает работоспособность
веб-сервера Apache, в котором порождающий процесс запускается суперпользова­
телем, а дочерние процессы - пользователем. В последнем примере приведена ко­
манда pstree, которая обычно используется для отображения дерева процессов.
Если вы предпочитаете самостоятельно определять набор отображаемых ко­
мандой ps данных, то воспользуйтесь параметром - о. После этого для сортировки
отображенной информации по любым данным вы сможете использовать параметр
- - sort. В табл. 9. 1 приведен перечень возможных отображаемых командой ps дан­
ных и соответствующие им параметры, которые необходимо использовать вместе
с параметром - о, чтобы отобразить необходимый столбец.
Табпица 9.1. Отображаемые командой ps данные и соответствующие им параметры
Параметр

Эаrоловок
сrопбца

Описание

%cpu

%CPU

Уровень использования времени центрального процессара
эа время существования процесса в формате 00.0

%mem

use (resideпt
set size)

Уровень использования процессам физической памяти
(в процентах)

args

COMMAND

Команда со всеми аргументами

Ьsdstart

SТART

Время запуска команды в формате ЧЧ:ММ или Месяц:День

Ьsdtime

ТIМЕ

Полное (включая пользователя и систему) время использования
времени центрального процессара

comm

COMMAND

Только имя команды (беэ аргументов)

ер

СР

Уровень использования времени центрального процессара
в десятых долях процента

cputime

ТIМЕ

Полное время использования центрального процессара в формате
[DD-]HH:MM :SS

egid

EGID

Эффективный идентификатор группы процесса (целое число)

egroup

EGROUP

Эффективный идентификатор группы процессов (имя)

etime

ELAPSED

Время запуска процесса в формате [[DD-]HH : ] M M : SS

euid

EUID

Эффективный идентификатор пользователя, запустившего
процесс (одно целое)

euser

EUSER

Эффективный идентификатор пользователя, запустившего
процесс (имя)

Продолжение .Р

196

Глава 9. Проверка запущенных процессов и управление ими
Табпица 9.1 (nродолжение)

Параметр

Заголовок
сrол & ца

Описание

fgid

FGID

Идентификатор группы доступа к файловой системе (номер)

fgгoup

FGROUP

Идентификатор группы доступа к файловой системе (имя)

fname

COMMAND

Первые восемь символов имени команды

fuid

FUID

Идентификатор пользователя, имеющего доступ к файловой
системе (номер)

fuser

FUSER

Идентификатор пользователя, имеющего доступ к файловой
системе (имя)

lstart

SТARTED

Дата и время запуска команды

nice

NI

Уровень загрузки процессара (от 19 (наименьшая) до -20
(максимальная загрузка))

pgid

PGID

Идентификатор группы процесса

pid

PID

Идентификационный номер процесса

ppid

PPID

Идентификатор родительского процесса

psr

PSR

Принадлежность к процессам процессара (первый центральный
процессор соответствует нулю)

rgid

RGID

Текущий идентификатор группы (номер)

rgгoup

RGROUP

Текущая группа (имя)

rss

RSS

Объем используемой физической памяти (без учета области
подкачки) в Кбайт

rtprio

RTPRIO

Приоритет реального времени

ruid

RUID

Идентификатор текущего пользователя (номер)

ruser

RUSER

Текущий пользователь (имя)

s

s

Односимвольный индикатор состояния (D - спящий, не может
быть прерва н; R - выполняющийся; S - спящий, может быть
прерван; Т - оста новленный; W - «слушает»; Х - неактивный;
Z - «зомби»)

sess

SESS

Идентификатор заголовка сессии

sgi_p

р

Текущий используемый процессор

size

sz

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

start

STARTED

Время запуска кома нды в формате ЧЧ : М М :СС или Месяц День

start_time

SТART

Время запуска кома нды : ЧЧ:ММ или Месяц День

stat

SТАТ

Расширенный индикатор состояния: буква «S» совместно
с другими символами ( < - высокий приоритет; N - н изкий
приоритет; L - страницы зафиксирова ны в памяти;
s - определяет, является ли сессия главной; 1 - многопоточный;
+ - находится в группе фоновых процессов)

sz

sz

Размер образа ядра процесса (физические страницы)

tname

ТТУ

Контролирующий tty (терминал)

user

USER

Идентификатор действительного пользователя (имя)

vsize

vsz

Объем виртуальной памяти процесса ( 1024-битные единицы)

197

Отображение активных процессов

Отметим, что некоторые значен-ия, предназначенные для отображения имен
пользователей, могут выводить номера ( U I D), если имя является слишком длин­
ным, чтобы поместиться в имеющемся пространстве.
С помощью параметров столбцов, разделенных запятыми, вы можете сформи­
ровать собственный IОfДИВидуальный формат отображения даннЬIХ. Ниже представ­
лено несколько примеров подобного отображения данных текущих процессов:
$ ps
PPID
1
$ ps
PPID
1
$ ps
PPID
1
$ ps
PPID
1

- ео

ppi d , user , %mem , si ze , vsi ze , comm - - sort= - s i ze Сор тирует процессы
по уровню исполь зования
опера тивной памя ти
USER
%МЕМ
SZ
VSZ COMМAND
27 . 0 68176 84264 yum - updatesd
root
-ео ppi d . user , bsdstart , bsdti me , %cpu , args - - sort=- %cpu Сор тируе т процессы
по уровню исполь зования
процессарного времени
START T I ME %CPU COMмAND
USER
Jul 30 44 : 20 27 . 1 / u s r / b i n / python / u s r / s b i n/yum - updatesd
root
- ео ppi d , user , ni ce , cputi me , args - - sort= - n i ce
Сор тируе т процессы
по приоритету , от мень шего
к большему
USER
NI
T I ME COMМAND
root
19 0 0 : 44 : 26 /usr/bi n / python / us r/ sbi n /yum - updatesd
- ео ppi d , user , stat , tname , sess , cputi me , args - - sort=user Сор тируе т
процессы по имени
поль зова теля
STAT ТТУ
T I ME COMМAND
USER
SESS
2221 00 : 0 0 : 07 avahi - daemon : runn i ng [ exampl e . net ]
avahi
Ss ?

Вот еще несколько примеров использования команды ps:
$ ps - С httpd Отображает запущенные httpd-пpoцeccы
Т I МЕ CMD
P I D ПY
00 : 00 : 0 0 httpd
1493 ?
00 : 00 : 0 0 httpd
1495 ?

Отметим, что для запуска процесса httpd необходимо установить сервер НТТР,
например Apache.
$ ps - р 5413



pi d , ppi d , bsdti me , args

PID PPID T I ME COMМAND
5413
1 0 : 08 gpm - m /dev / i nput/m i ce - t exps2
S ps - U chri s , francoi s - о pi d , ruser , tty , stat , args
ТТ
P I D RUSER
pts / 0
1 0 1 0 chri s
5951 francoi s pts / 1

Отображает информацию
·о процессе PID 5413
Отображает информацию
о двух поль зова телях

STAT COMМAND
- ba sh
Ss
Ss+ /Ьi n / bash

Коман да top
Если вам необходимо непрерывно просматривать запущенные в системе про­
цессы, то воспользуйтесь командой top. Эта команда ориентирована на работу

198

Глава 9. Проверка запущенных процессов и управление ими

с экраном и отображает постоянно обновляющийся список запущенных процес­
сов. Если вы выполните команду top без параметров, то она отобразит время ра­
боты системы, список выполняемых задач, уровень потребления оперативной
памяти и уровень использования процессарного времени, по которому отсорти­
рует полученный список:
$ top
top
0 1 : 39 : 43 up 4 days . 1 : 53 . б users . l oad average : 1 . 25 . 1 . 08 . 1 . 1 1
Ta s k s : 1 1 9 tota l . 1 runn i ng . 1 1 7 s l eepi ng . О stopped . 1 zombi e
Cpu ( s ) : 46 . 8% us . 3 . 3% sy . 0 . 0% n i . 49 . 5% i d . 0 . 0% wa . 0 . 3% h i . 0 . 0% s i
Mem :
482992k tota l .
472688k used .
1 0304k free .
24312k buffers
Swa p : 58637 16k tota l .
5345 12k used .
5329204k free .
68072k cached
-

PID
2690
2778
22279

USER
root
chri s
chri s

PR
15
15
15

N I V I RT RES SHR S %CPU %МЕМ
О 344m 76m 7 1 1 6 S 32 . 2 16 . 2
О 16212 7992 4836 S 1 . 7 1 . 7
О 227m 1 09m 23m S 1 . 0 23 . 3

T I ME+
2349 : 08
4 : 30 . 61
34 : 34 . 00

COMМAND
Х
metaci ty
fi refox - b i n

Ниже приведены еще некоторые примеры параметров, которые вы можете ис­
пользовать для отображения непрерывно обноВЛJiющеrося списка запущенных
процессов:
$ top d 5
-

$ top - u francoi s
$ top - р 190 , 2690
$ top - n 10
$ top Ь
-

Устанавливает время обновпения равным 5 секvндам
(по умолчанию 3 )
Отображае т толь ко процессы действи тель ного
поль зова теля franco i s
Отображает толь ко процессы 1 90 и 2690
После деся ти обновлений завершае т выпо�нение команды
Запускае тся в режиме . не рассчи таннон на рабо ту с экраном

В последнем примере ( top - Ь) выход команды форматируется в подходящей
для выхода файла форме, противоположной формирующейся при повторном вы­
воде того же экрана для интерактивного просмотра. Данная команда может исполь­
зоваться для создания журнала процессов, например для отслеживания процессов,
потребляющих все ресурсы посреди ночи. С помощью следующей команды можно
запустить команду top, фиксирующую информацию о процессах в течение деся­
ти часов:
$ top Ь - n 12000 > myprocessl og
·

Во время выполнения команды top вы можете обновлять и различными способа­
ми сортировать список процессов. Чтобы немедленно обновить список процессов,
нажмите клавишу Пробел или Enter. Для сортировки процессов по их PID нажмите
сочетание клавиш Shift+N, для сортировки процессов по потреблению процессориого
времени Shift+P, для сортировки по потреблению оперативной памяти Shift+M,
а для сортировки по времени потребления процессора Shift+Т. Чтобы изменить
столбец для сортировки, используйте символы < (упорядочить столбец слева) и >
(упорядочить столбец справа) или, указав букву столбца, по которой хотите
отсортировать список, нажмите клавишу f, когда отобразится список столбцов.
Во время выполнения команды top вы можете различными путями изменять
действия команды. Чтобы изменить период обновления данных, нажмите клави-

-

-

199

Поиск процессов и управление ими

шу d и введите число, обозначающее количество секунд. Для отображения процес­
сов только конкретного пользователя нажмите клавишу u и введите имя пользо­
вателя. Чтобы отобразить заданное количество процессов, нажмите клавишу n
и укажите число, обозначающее требуемое количество процессов. Для возврата
в начальный экран программы нажмите
Кроме того, с помощью программы top в ы можете ВJIНЯТ Ь н а многие запущен­
ные процессы. Чтобы отправить работающему процессу сигнал о его завершении,
нажмите клавишу К и затем укажите PID процесса, которому хотите отправить
сигнал. Затем для отправления другого сигнала укажите другое число или нажми­
те клавишу 9 для завершения действия. Чтобы увеличить или уменьшить приори­
тет процесса, нажмите клавишу N, а затем отрицательное число (для повышения
приоритета) или положительное число (для уменьшения приоритета)
Чтобы получить более подробную информацию об использовании команды
top, в ходе ее выполнения нажмите ?. МАN-страница также содержит много полез­
ной информации:
=.

$ man top

Отображае т �N -страничr. посвященную исполь зованию команды top

Для завершения выполнения команды top нажмите клавишу Q.

П оиск п роцессов и у правп е ни е ими
Изменение текущего процесса прежде всего означает поиск соответствующего
процесса и лишь затем уже изменение его приоритета или подачу процессу сигна­
ла об изменении режима работы. Если вы ищете какой-то определенный процесс,
то наиболее простым вариантом будет отобразить расширенный список процессов
с помощью команд ps или top. Команда pgrep позволяет искать необходимые про­
цессы через активные процессы, команда reni се изменять приоритеты текущих
процессов, а команды k i 1 1 , pk i 1 1 и k i 1 1 а 1 1 отправлять сигналы текущим процес­
сам (включая сигналы завершения данных процессов).
-

-

Ко ман да pgrep
С помощью простого использования команды pg rep вы можете осуществлять поиск
по имени команды (или части имени) и отображать ID всех процессов, содержащих
данное имя:
$ pgrep i ni t
1
2689

Отображает ID всех процессов . содержащих «in i t»

Поскольку мы знаем, что существует только одна текущая команда i n � t, то
в дальнейшем, чтобы отобразить все имена команд процессов (а также узнать,
почему обнаружено два процесса ), будет использоваться параметр 1 :
-

$ pgrep - 1 i ni t
1 i ni t
2689 xi ni t

Отображает PID и имена всех процессов . содержащих «in i t»

200

Глава 9. Проверка запущенных процессов и управление ими

Кроме того, вы можете искать процессы, принадлежащие конкретному поль­
зователю:
$ pgrep - l u chri s
2551 sshd
2552 ba s h
2803 v i m

Перечисляе т все процессы . принадлежащие поль зова телю chr i s

Возможно, самым эффективным способом использования команды pgrep явля­
ется поиск ID текущих процессов и передача PID другим командам для форми�
рования отображаемой информации. Вот несколько примеров (если у вас процес­
сы meta ci ty и fi refox не запущены, укажите другие):
$ ps -р ' pgrep metaci ty'

Осущес твляе т поиск процесса metac i ty и выполняет
команду ps (кра ткий вывод )

T I ME CMD
P I D ТТУ
00 : 05 : 00 metaci ty
2778 ?
$ ps - fp $ ( pgrep naut i l us ) Осущес твляе т поиск процесса naut i lus и выполняе т
команду ps (полный вывод )
P I D P P I D С ST IME ТТУ
T I ME CMD
UID
chri s
5907 5840 О Sep05 ?
0 0 : 0 0 : 26 naut i l us - - no - defa u l t -wi ndow s
# sudo# ren i ce - 5 $ ( pgrep fi refox)
Выполняе т поиск процесса fi re fox
и повышает приори тет команды
20522 : o l d pri ori ty О . new pri o r i ty - 5
20557 : ol d pri o r i ty О . new pri o r i ty - 5
- -

Команды, принимающие ID процессов в качестве входящей информации, в дан­
ном случае могут объединяться с командой pgrep. Как видно из предыдущего при­
мера использования команды pgrep, вы можете применять такие команды, как
reni се, чтобы изменять режим работы текущего процесса.

Команда fuser
Другим способом выполнения поиска отдельного процесса является поиск по эле­
менту, осуществляющему доступ к процессу. Команда fuser может использоваться
для определения файлов или со кетов, в которых выполняются какие-либо процес­
сы. П осле обнаружения процесса fu s e r может использоваться для отправления
сигналов этим процессам.
Команда fuser наиболее полезна для поиска файлов смонтированных файловых
систем, используемых процессами (как на локальных жестких дисках или общих
ресурсов Samba). Обнаружение этих процессов позволяет правильно закрыватьих
(или при необходимости уничтожать) и затем безопасно демонтировать файловую
систему.
Вот несколько примеров применения команды fuser для отображенив процес­
сов, использующих файлы в данной файловой системе:
$ fuser - mauv /boot

Отображае т подробный список процессов . открывших lboot
USER
P I D ACCESS COMMAND

20 1

Поиск процессов и управление ими

/ boot/gruЫ :

root
root
root
root
root
root

3853
19760
28 1 7 1
29252
29255
29396

. с.
. .с.
F.c
. .с.
. .с.
F.с.
.

.

.

.
.

.
.
.

( root ) ba s h
( root ) ba s h
( root ) v i
( root )man
( root ) s h
( root ) v i

В приведеином примере отображаются идентификаторы запущенных процес­
сов, ассоциированных с файловой системой / boot. Этим процессам должен соот­
ветствовать открытый файл, консоль, или они должны являться дочерними про­
цессами консоли с рабочим каталогом, расположенным в / boot. В данном примере
в файловой системе / boot присутствуют две открытые консоли bash, а также вы­
полняются две команды vi с открытыми в этой файловой системе файлами и коман­
да ma n. Параметр - а позволяет отобразить полный список процессов, - u отображает
имя пользователя или процесса, запустившего данный процесс, а - v формирует
подробный выход.
Ниже приведены другие примеры использования команды fuser для отображе­
ния процессов с открытыми файлами:
$ fuser /Ьооt

Отображает роди тель ские PID процессов .
исполь зующих файлы в Jboot
/boot :
19760с 29396с
$ fuser · m . /Ьoot
Отображает все PID процессов . исполь зующих файлы в lboo t
/boot :
3853с 19760с 28171с 29396с 29252с 29255с
$ fuser ·U /Ьооt
Отображае т PID или иня поль зова теля консоли .
рабо тающей в /boot
/ boot :
19760c ( root ) 29396c ( root ) 29252c ( root ) 29255c ( root )
·

После определения процессов, открывших файлы, вы сможете приостановить
их вручную или уничтожить (полностью завершить). По возможности всегда вруч­
ную останавливайте процессы, поскольку при уничтожении после них могут оста­
ваться нежелательные файлы. Ниже приведены примеры использования команды
fuser для уничтожения, а также отпраВJiения других сигналов всем процессам,
файлы которых испоJIЬзуются в файловой системе:
Унич тожае т все процессы с открытыми файлани
в Jboot (SIGKILL J
Отображает список поддерживаемых сигналов
$ fuser · 1
HUP I NT QU I T I LL TRAP ABRT I OT BUS FPE K I L L USR1 SEGV USR2 P I PE ALRM TERM STKFLT
CHLD CONT STOP TSTP TT I N TTOU URG XCPU X FSZ VTALRM PROF W I NCH IO PWR SYS UNUSED
$ sudo fuser ·k · HUP /boot Отправляет НUР -сигнал всен процессан .
работающим с файловой систеной lboot
$ sudo fuser · k /Ьооt

И зменение зап у щенн ых процессов
Вы можете различными способами изменять параметры работы процесса даже
после его запуска. Используя команду reni се, описанную ранее, вы можете в пла­
нировщике своей операционной системы определять приоритет запущенного

202

Глава 9. Проверка запущенных процессов и управление ими

процесса. Используя же команду n i ce, вы можете установить приоритет по умол­
чанию, а также повысить или понизить приоритет процесса во время его запуска.
Другим способом управления запущенными процессами является отправление
этим процессам сигналов. Команды k i 1 1 и k i 1 1 а 1 1 могут использоваться для от­
правления процессам сигналов завершения. Кроме того, для этих целей может
использоваться команда pki 1 1 .

Усrановка приоритета процесса ра с помощью
ко ман д ы nice
Каждый запущенный процесс поддерживает возможность управления значением
параметра n i ce, который может использоваться для указания планировщику про­
цессов Linux уровня приоритета данного процесса. Положительные значения па­
раметра ni се об ычно понижают приоритет процесса. Идея использования этого
параметра б ерет свое начало в объемных многопользовательских системах UNIX,
в которых, чтоб ы дать возможность другим пользователям использовать процес­
сор, необ ходимо б ыло понизить приоритет основного процесса, •nоступить пра­
вильно• ( •nice• ).
Параметр n i се не оказывает влияния на приоритет планировщика, а является
лишь вариантом для него. Чтоб ы определить текущее значение параметра nice,
выполните команду ni се б ез параметров:
$ n i ce

о

Определяет текущее з начение n i ce

Значение n i се по умолчанию равно О, однако, используя команду ni се, вы мо­
жете уменьшать или увеличивать это значение. Значение приоритета может варь­
ироваться от - 20 (наивысший приоритет планировщика) до 19 ( низший приоритет
планировщика). Суперпользователь может как уменьшать, так и увеличивать зна­
чение ni се любого пользователя, тогда как об ычный пользователь может только
уменьшать приоритет выполнения процессов (устанавливая б ольшее значение
n i ce).
ВН ИМАН ИЕ

--------­

Устанавливайте отрицател ьные значен ия приоритета выполнения процесса с особой осторож­
ностью. Снижение приоритета системных процессов может привести к потере работоспособности
системы.

Вот несколько примеров выполнения команды ni се для изменения значения
nice определенной команды:
$ ni ce - n 12 nroff - man a . roff 1 l ess
$ sudo n i ce -n - 10 gimp

Выполняе т форма тирование �N-страниц
при пониженнон приори те те
Повышает приоритет конанды giтp

С помощью команды ren i ce . вы можете изменять значение параметра n i ce уже
после запуска процесса:
$ ren i ce +2 - u francoi s

Увеличивает значение n i ce процессов
поль зова теля franco i s на 2

203

Поиск процессов и уп ра вление ими

$ reni ce +5 4737
$ sudo reni ce · 3 ' pgrep - u chri s spamd '

Увеличивает з начение n i ce процессов
поль зова теля PID 4 737 на 5
Понижае т з начение процессов spamd
поль зова теля chr i s на 3

9688 : ol d pri ori ty - 1 . new pri ori ty - 3
20279 : ol d pri ori ty - 1 . new pri ori ty - 3
20282 : ol d pri ori ty - 1 . new pri ori ty - 3
В предыдущей командной строке для обозначения того, что выход команды
pg rep отправляется команде ren i ce (предполагается, что PID процессов spamd за­
пущены пользователем chris), используются косые кавычки.
При выполнении команды top значения n i ce процессов отображаются по умол­
чанию. Кроме того, просмотреть настройки n i ce можно с помощью параметра -о ni се
при индивидуальном формировании выход'а команды ps.

Запуск процессов в фоновом и приоритеТном режимах
По умолчанию процесс из консоли запускается в приоритетном режиме. Это озна­
чает, что вы не можете выполнить другую команду до завершения данного процесса.
Однако, добавив знак & в конец командной строки, вы можете запустить командную
строку в фоновом режиме, а с помощью команд fg, bg и j obs вы можете переключать
команды из фонового режима в приоритетный на всем протяжении всего времени
выполнения управляющих командных строк.
Посредством следующей последовательности команд можно из окна терминала
запустить программу для просмотра изображений GIMP, после чего с помощью
контрольных клавиш осущестВJIЯТЬ запуск и остановку процессов и переклю­
чатьсв между фоновым и приоритетным режимами:
$ gi mp
Запускает gimp в фонавон режине
Ос танавливает процессы и перенещает их в фоновый режин

[ 1 ] + Stopped g i mp
$ bg 1
Заново в фонавон режине запускае т рабо тающие процессы
Продолжает выполнение процессов в фонавон режине
$ fg 1
g i mp
Унич тожает процесс

Стоит отметить, что процессам, работающим в фоновом режиме, присваивается
рабочий идентификационный номер (в данном случае 1 ). Поместив перед номером
знак процента (например, % 1 ) или просто указав номер вместе с командой ( fg 1),
вы можете определить конкретные фоновые процессы для команд bg и fg. При на­
личии одного или более процессов, запущенных в текущей консоли, вы можете
использовать длв управленИJI фоновыми процессами команду j obs:
$ jobs
[ 1]
[2]
[3] [4]+
$ jobs

Runni ng
Runn i ng
Runn i ng
Stopped
·1

Отображае т список процессов текvщей консоли .
выполняющихся в фонавон режине
g i mp &
xпms &
ged i t &
gta l i
Отображает PID внес те с информацией о каждон процессе

204

Глава 9. Проверка запущенных процессов и управление ими

g i mp &
xmms &
ged i t &
gta 1 i
Отображает информацию только для процесса под нонером %2
xmms &

[ 1 ] 31676 Runni ng
[ 2 ] 31677 Runni ng
[ 3 ] - 3 1683 Runni ng
[ 4 ] + 31688 Stopped
$ jobs · 1 .t2
[ 2 ] 31677 Runni ng

Приведеиные выше примеры команд (jobs) моrут использоваться, если необхо­
димо во время входа в удаленную систему (используя ssh) запустить удаленные
приложения G UI на локальном компьютере. Запустив эти процессы в фоновом
режиме, вы можете работать сразу в нескольких приложениях, сохраняя их связь
с текущей консолью. С помощью команды di sown вы можете отделить приложение
от консоли во время его выполнения:
Отделяет процесс ЖЗ от текущей консоли
Отделяет все процессы от текущей консоли
Ограничивает все процеtсы от дейс твия НИР -сигнала .
о тправленного в текvщую консоль

$ di sown .tЗ
$ di sown а
$ di sown h
·

·

Отделив процессы от консоли с помощью команды di sown, вы можете закрывать
консоль без необходимости уничтожать выполняемые процессы.
ПРИМЕЧАНИЕ

-------­

Если при использовании команд fg, Ьg или disown вы не укажете ID процесса, то будgг задействован
текущий процесс, обозначенный знаком +, следующим сразу за его названием.

Команды fg и bg позволяют управлять запущенными процессами, делая их фо­
новыми или приоритетными. Другим способом управления командами является
отправление сигналов процессам напрямую. Наиболее распространенным спосо­
бом отправления сигналов запущенным процессам является использование ко­
манд k i 1 1 и k i 1 1 a 1 1 .

Уни чтожение процессов и отпра вп е м ие им си rнапов
Отправляя запущенным процессам сигналы, вы можете останавливать их или вно­
сить в них изменения. Такие команды, как k i 1 1 и k i 1 1 а 1 1 , моrут отправлять процес­
сам определяемые вами сигналы, заключающие в себе имена процессов. Чаще все­
го данные команды используются для уничтожения процессов.
Каждому сигналу соответствуют определенное число (9, 15 и т. д.) и строка
( S I GK I LL, S I GTERM и т. д.). В табл. 9.2 приведен перечень стандартных сигналов, ко­
торые могут отправляться процессам Linux.
Таlпицв 9.2. Стандартные сигналы, отправляемые процессам
Номе р
сиrнма

Имя сиrнапа

Оnисание

1

SIGHUP

Сигнал завершения процесса терминала или контрольного
процесса

2

SIGINT

Отправка с клавиатуры сигнала прерывания

Поиск процессов и управление ими

Н омер
сиrнапа

Имя сиrнапа

Оnисание

3

SIGQUIТ

Отправка с клавиатуры сигнала прекращения

4

SIGILL

Неразрешенная команда

б

SIGAВRT

запрет на выполнение, отправляемый функцией aЬort

8

SIGFPE

Исключение с плавающей точкой

9

SIGКILL

Сигнал полного завершения (уничтожения) процесса

11

SIGSEGV

Недействительная ссылка на ячейку памяти

13

SIGPIPE

Неработающий канал (нет процессов, которые могут быть
считаны с канала)

14

SIGALRM

Сигнал таймера, обозначающий аварийный системный
вызов

15

SIGТERM

Сигнал завершения

30, 10, 16

SIGUSR1

Определяемый пользователем сигнал 1

31, 12, 17

SIGUSR2

Определяемый пользователем сигнал 2

20, 17, 18

SIGCHLD

завершенный или остановленный дочерний процесс

19, 18, 25

SIGCONT

Возобновление остановленного ранее процесса

17, 19, 23

SIGSТOP

Сигнал остановки процесса

18, 20, 24

SIGТSТP

Сигнал остановки, введенный в терминале

21, 21, 26

SIGПIN

Ввод терминала для фоновых процессов

22, 22, 27

SIGПOU

Вывод терминала для фоновых процессов

205

Команда k i 1 1 может отправлять сигналы процессам в соответствии с их I D или
номером задачи, тогда как команда k i 1 1 а 1 1 может отправлять сигналы по имени
процесса:
$
$
$
$
$
$

ki l l 28665
ki l l - 9 4895
ki l l S I GCONT 5254
ki l l .tЗ
ki l l al l spamd
ki l l al l SIGHUP sendmai l
·

·

О тправляе т сигнал SIGTERM процессу PID 28665
О тправляе т сигнал SIGKIL L процессу PID 4895
Воз обновляе т ос тановленный процесс (PID 5254 )
Унич тожае т процесс %3
Унич тожае т все запущенные процессы spamd
Зас тавляе т nроцесс sendma i l переч и та ть
конфигурационные файлы

Сигнал S I G K I L L (9), часто используемый неопытными администраторами-но­
·вичками, следует использовать в качестве последнего средства, поскольку он
резко обрывает процесс, а не выполняет его аккуратное закрытие, что может
привести к потере или повреждению данных, относящихся к данному процессу.
Сигнал S I GHUP обычно использовался в системах UNIX для определения, отклю­
чен ли терминал от устройства (например, от модема hang-up или dial-in). Одна­
ко для перехвата сигналов S I GHUP с целью заставить процессы перечитать конфи­
гурационные файлы были разработаны процессы, такие как, например, sendmail
и httpd.

206

Глава 9. Проверка запущенных процессов и управление ими

Откл ючение процессов от текущей консопи
Существует несколько способов закрыть консоль, не прерывая выполняемых про­
цессов. Так, с помощью команды nohup можно запустить процесс таким образом,
чтобы он был иедоступен сигналу hang-up:
$ nohup updatedb &
# nohup ni ce

-9

gcc hel l o . c &

Запускает upda tedb с невозножнос тью
его прерывания
Запускае т gcc в непрерывном режине
и с более высокин приори те тон

Использование команды nohup отличается от запуска команды с использовани­
ем символа &, поскольку команда nohup продолжает выполнение команды даже
после выхода из запущенной сессии в консоли.
Команда nohup использовалась в то время, когда производительность процес­
саров была низкой и были распространены соединения по телефонной линии
через модем (dial-up) (то есть не было возможности сохранять дорогостоящее
соединение в течение длительного времени выполнения команды). Сегодня же,
используя такие приложения, как screen (см. гл. 1 4 ) , вы можете не закрывать
консольную сессию, даже если перенесете сетевое подключение в текущую кон­
соль.

Со сrа впе ние расписани я зап ус ка процессов
Команды, связанные с утилитой cron, могут использоваться для определения вре­
мени автоматического запуска команд (включая настоящий момент времени) в кон­
соли. Команда at запускает выбранную команду в заданное время:
$ at now +1 mi n
Запускает конанду через одну нинуту
at> updatedb
at>
j ob 5 at Mon Aug 20 20 : 37 : 0 0 2007
$ at teatime
Запускае т конанду в 1 6 . 00 текущего дня
$ at now +5 days
Запускает конанду через пя ть дней
$ at 06/25/08
Запускает конанду 25 июня 2008 года
в текущее вреня

Кроме того, запустить команду, не связанную с консолью, можно с помощью
команды batch, которая позволяет настроить запуск команды таким образом, чтобы
она запускалась, как только процессор будет готов (средняя нагрузка ниже 8):
$ batch
Немедленно запускает конанду
a t> fi nd /mnt/i sos 1 grep jpg$ > /tmp/mypi cs
at>

Стоит отметить, что после выполнения команд at или batch будет отображен
следующий запрос at>. Введите команду, которую хотите выполнить, и нажмите
клавишу Enter. При необходимости введите дополнительные команды. После за­
вершения для составления списка последовательности выполнения необходимых
команд нажмите сочетание клавиш Ctri+D.
Закончив, вы можете проверить очередность установленных задач at, восполь­
зовавшись командой atq:

Поиск процессов и уп ра вление ими

$ atq
11
10
8

207

Wed S e p 5 21 : 1 0 : 0 0 2007 а francoi s
Fri Aug 24 21 : 1 0 : 00 2007 а francoi s
Thu Aug 23 20 : 53 : 00 2007 а francoi s

Обычные пользователи могут просматривать расписание выполнения только
своих задач at. Суперпользователь может просматривать все задачи at, находящие­
ся в очереди. Если вы захотите удалить задачу из списка очередности, восполь­
зуйтесь командой atrm:
$ atrm 11

Удаляет задачу at под нонером 1 1

Команды at и batch используются для установления очередности однократного
выполнения команд. Если необходимо многократно выполиять указанные коман­
ды, воспользуйтесь приложеннем cron. Эти команды помещаются в список задач
cron, а затем в график выполнения, хранящийся в файлах crontab. Существует
только один системный файл crontab ( / etc/crontab), однако, помимо него, каждый
пользователь может создавать индивидуальный файл crontab, предназначенный
для запуска команды в назначенное соответствующим пользователем время. Что­
бы создать переопальный файл crontab, выполните следующую команду:
$ crontab

·

е

Создает переанальный файл crontab

Команда c ront a b - е, используя текстовый редактор vi, открывает ваш файл
crontab (или создает новый). Существуют разные варианты внесения данных
в файл crontab:
15 8 * * Mon . Tue . Wed . Thu . F ri ma i l chri s < / v a r / proj ect/ stats . txt
* * 1 1 . 4 . 7 . 10 * fi nd 1 1 g rep . doc$ > / v a r / s a l es /documents . txt

В первом примере пользователю chris отправляется сообщение, содержащее
файл /var/ project l stats . txt. Эта команда выполняется ежедневно с понедельника
по пятницу включительно в 8: 1 5. Во втором Примере в первые дни января, апреля,
июля и октября запускается команда fi nd и производит поиск всех имеющихся
в системе файлов с расширением DOC, а затем группирует список файлов в файле
/va r / s a l es/documents . txt.
В конце каждой строки crontab указывается выполняемая команда. Первые пять
полей определяют время и дату запуска команды (поля слева направо: минуты (от О
до 59), часы (от О до 23), дни месяца (от О до 31), месяцы (от О до 12 или Jan, Feb, Ma r,
Apr, Мау, Jun, Jul , Aug, Sep, Oct, Nov и Dec), а также дни недели (от О до 7 или Sun, Mon, Tue,
Wed, Thu, Fri и Sat) ) Знак * означает, что значение поля не определено и в него может
быть добавлена соответствующая информация.
Ниже представлены некоторые другие параметры, которые могут использовать­
ся вместе с командой c rontab:
.

# crontab - eu chr1 s

Редактирует файл crontab другого
поль зова теля ( толь ко для суперполь зов а теля J
Отображает содержимое файла crontab
$ crontab 1
15 8 * * Mon . Tue . Wed . Thu . F ri ma i l chri s < /var/ proj ect / stats . txt
* * 1 1 . 4 . 7 . 10 * fi nd 1 1 g rep . doc$ > / v a r / s a l es/documents . txt
$ crontab r
Удаляет файл crontab
·

·

208

Глава 9. Проверка запущенных процессов и управление ими

Раньше настройка системных задач cron осуществлялась путем добавления их
в системный файл crontab. Хотя данная возможность все еще существует, теперь
Ubuntu позволяет настроить ежечасное, ежедневное, еженедельное и ежемесячное
выполнение задач cron путем свJJЗывания команды, которую необходимо запус­
тиrь, с каталогом cron. Для этого просто введите команду, которую хотите запустить,
а затем скопируйте ее в каталог /etc/cron . hour1y, /etc/cron . da i 1 у, /etc/cron . week 1 y или
1 etc / c ron . month 1 у. Команда будет запускаться с периодичностью, соответствующей
имени каталога, в котором хранится (ежечасно, ежедневно, еженедельно или еже­
месячно).
Утилита anacron является альтернативой утилите cron. Используя anacron, вы
можете, как и при использовании cron, настраивать периодичность выполнения
команд, однако anacron чаще всего используется на компьютерах, которые не по­
стоянно включены. Если команда не была запущена, поскольку компьютер был
выключен во время предполагающегося выполнения команды, то при следующем
включении компьютера утилита anacron выполнит заданную команду.

Рез ю м е
Просмотр и работа с процессами, выполняющимися на операционных системах
Linux, являются очень важными действиями, обеспечивающими правильную ра­
боту системы. Используя такие команды, как ps и top, вы можете просматривать
список процессов, запущенных на вашей системе. Кроме того, с помощью команды
pgrep вы можете осуществлять поиск и отображать список процессов, удовлетво­
ряющих заданным критериям.
Используя такие команды, как ni се и reni се, вы можете устанавливать приори­
тет выполнения процессов. Воспользовавшись во время выполнения процесса
командой k i 1 1 или k i 1 1 а 1 1 , вы можете изменить выполняемые им действия или
уничтожить его.
После запуска команды из текущей консоли вы можете перемещать ее выпол­
нение в фоновый режим (bg) или приоритетный ( fg). Вы также можете останавли­
вать и заново запускать процессы, используя контрольные коды.
Для составления графика выполнения команд предназначены команды at или
b a t c h . Для составления периодического повторяющегося графика выполнения
команд в установленное время предназначены утилиты cron или anacron.

10

Ад м и н и ст ри р о ва н ие
си стем ы

Без тщательно продуманного управления ожидаемая производительность системы
Linux может иногда превышать ее возможности, определяемые доступными ресур­
сами. При наличии возможности с течением времени контроль системы (исполь­
зование физической памяти, центрального процессара и устройств) может обеспе­
чить вам уверенность в том, что компьютер способен выполнять необходимые вам
задачи. Аналогично контроль над другими аспектами системы, такими как дррй­
веры используемых в ней устройств, может помочь избежать возникновения сис­
темных ошибок и проблем с выполнением задач.
Данная глава разбита на несколько разделов, связанных с управлением Ubuntu
или другой операционной системой Linux. Первый раздел призван помочь вам
научиться отображать объем имеющихся в распоряжении ресурсов (мощность
процессора, оперативной памяти и устройств). В следующем разделе описываются
способы проверки системного времени. Далее следует описание процесса загрузки
и последующего уровня выполнения. В последнем разделе описывается порядок
работы с ядром и драйверами устройств, а также получения информации об устрой­
ствах, установленных на вашем компьютере.

П риложе и м я для контроля
Ubuntu, Deblan и другие операционные системы Linux обладают прекрасным свой­
ством: они контролируют ваши действия. Если вы захотите, то найдете большое
количество информации о центральном процессоре, жестких дисках, виртуальной
памяти и других ресурсах компьютера, используемых в настоящий момент.
Вы можете в режиме реального времени просматривать информацию, собирае­
мую ядром операционной системы Linux, просто просматривая содержимое фай­
лов файловой системы / p roc (см. Приложеине 3). Альтернативным способом
является использование команд, специально предназначенных для сбора инфор­
мации об использовании системой виртуальной памяти компьютера, процессора,
запоминающих устройств и сетевых интерфейсов.
Существуют команды, способные отображать различные характеристики сис­
темных ресурсов. Поскольку данная книга не является простым обзором страниц
МАN-справочника, мы разделили следующие разделы по темам (контроль ис­
пользования оперативной памяти, центрального процессара и запоминающих

210

Глава 10. Администрирование системы

устройств), вместо того чтобы осуществлять их разделение по используемым ко­
мандам ( top, vmstat и i ostat ) .
ПРИМЕЧАНИЕ

-------­

Некоторые приложения, описываемые в данном раэделе, устанавливаются в Ubuпtu по умолчанию
(вместе с такими пакетами, как procps). Однако, чтобы использовать iostat или sar, вам необходимо
установить программный пакет sysstat, для чего выполните следующую команду:

$ sudo apt - get i nstal l sysstat

О перативная память
Немногие вещи могут так сказаться на производительности системы, как недоста­
ток оперативной памяти. Команды наподобие free и top позволяют просматривать
основную информацию об оперативной памяти и файле подкачки. Команда vmstat
предоставляет подробную информацию об использовании оперативной памяти
и может работать постоянно. Команда s 1 а Ьtор может фиксировать объем исполь­
зования ядром (слэб-кэш) оперативной памяти.
'Команда free предоставляет наиболее быстрый способ просмотра динамики
выделенив оперативной памяти в системе. Она отображает общий объем опера­
тивной памяти ( Mem : ), объем области подкачки ( Swa p : ), а также объем памяти,
используемой в настоящее время. Вот несколько примеров использования коман­
ды free:
Отображае т объен исполь зования опера тивной
паня ти в килобай тах ( -k по умолчанию )
tot a l
cached
used
buffers
free
sha red
153388
342544
Mem :
742476
725108
17368
О
5 13300
229176
- /+ buffers /cache :
1020044
72
1020116
Swa p :
$ free - m
Отображает объен исполь зования опера тивной паня ти в негабай тах
tot a l
used
free
sha red
buffers
cached
Mem :
725
706
18
О
148
333
- /+ buffers /cache :
223
501
996
996
О
Swa p :
$ free - Ь
Отображае т объен исполь зования опера тивной паня ти в блоках
tot a l
u sed
free
sha red
buffers
cached
Mem :
760295424 74251 0592
17784832
О
157 1 14368 350765056
- /+ buffe rs /cache : 234631 1 68 525664256
Swa p : 1044598784
73728 1 044525056
$ free - mt
Отображает объен исполь зования и полный объен паня ти (Swap + RAMJ
tot a l
used
free
sha red
buffers
cached
Mem :
725
708
16
О
149
334
- /+ buffers /cache :
223
501
996
996
О
Swa p :
1013
708
1721
Tota l :
Отображает объен исполь зования опера тивной паня ти в гигабай тах
$ free
Непрерывно о тображае т объен исполь зуемой
$ free - s 5
опера тивной паня ти (с ин тервалом в пя ть секунд )
$ free

211

Приложения для контроля

Чтобы избежать недостатка оперативной памяти и ускорения работы приложе­
ний, в Linux используется столько незадействованной оперативной памяти, сколь­
ко позволяет кзш жесткого диска. Поэтому первую строку отображаемой командой
free информации, часто фиксирующую немного свободной оперативной памяти,
можно опустить. Мы рекомендуем вам обратить внимание на вторую строку, ото­
бражающую общий объем оперативной памяти, доступной для приложений в на­
стоящий момент. В данном примере этот объем равен 50 1 Мбайт:
- /+ buffers /cache :

223

501

Одним из способов определить необходимый вашей системе объем оперативной памяти является запуск всех приложений, которые вы планируете запускать
одновременно, на другом компьютере с установленной системой Ubuntu. Затем
выполните команду free с общим параметром ( free - t ) , чтобы отобразить общий
объем используемой памяти, и убедитесь, что на вашей системе общий объем па­
мяти превышает полученное число (желательно, чтобы большая часть этой памя­
ти приходилась на физическую оперативную память).
Команда top предоставляет средства для просмотра запущенных в настоящий
момент процессов и сортирует их по уровню потребления времени центрального
процессара или оперативной памяти (для получения более подробной информации
обратитесь к гл. 9, в которой описывается использование команды top для отобра­
жения запущенных процессов ). Вы также можете использовать команду top для
просмотра объема потребляемой оперативной пам.вти в графическом режиме:
$ top
top - 14 : 14 : 59 up 3 days . 18 : 26 . 1 user . l oa d ave rage : 0 . 1 1 . 0 . 04 . 0 . 0 1
Ta sks : 1 14 tota l . 3 runni ng . 1 1 1 s l eepi ng . О stopped . О zombi e
Cpu ( s ) : O . O%us . O . O%sy . O . O%ni . 1 0 0 . 0% i d . O . O%wa . O . O%hi . O . O%si . O . O%st
Mem : 742476k tota l . 727232k used . 15244k free . 153708k buffers
Swap : 1020 1 16k tota l . 72k used . 1020044k free . 343924k cached
P I D USER
PR NI V I RT RES SHR S %CPU %МЕМ
T I ME+ COMMAND
2347 root
34 19 89552 77m 5636 S 0 . 0 1 0 . 7
6 : 05 . 75 yum- updatesd
2797 chri s
18 О 80612 27m 18m S 0 . 0 3 . 8 0 : 0 1 . 29 naut i l us
2814 chri s
15
О 44420 22m 20m S 0 . 0 3 . 1
0 : 00 . 1 7 nm - a ppl et

Для выхода из программы top нажмите клавишу q. Как и в выходе команды free,
команда top отображает общий объем используемой оперативной памяти (Mem : )
и общий объем области подкачки ( Swa p : ) . Однако, поскольку top является прило­
жением, ориентированным на экран, и предоставляет возможность непрерывного
контроля, вы можете постоянно получать информацию об объеме используемой
оперативной памяти, причем каждые три секунды (значение по умолчанию) на
экран будет выводиться обновленная информация. Запустив команду top, нажми­
те сочетание клавиш Shift+M выполняющиеся процессы будут отсортированы по
уровню потребления оперативной памяти. Наиболее важным столбцом для опре­
деления объема оперативной памяти, потребляемой процессом, является RES, ко­
торый отображает объем физической памяти, потребляемой процессом и называе­
мой резидентным размером, отображаемым в столбце %МЕМ.
Для вывода более подробной статистики, касающейся использования виртуаль­
ной памяти, используйте команду vmstat. С помощью команды vmstat вы можете
-

212

Глава 1 0 . Админи стр и рова ние системы

отображать объем используемой оперативной памяти, например, со времени по­
следней перезагрузки или за указанный период времени. В следующем примере
показано использование команды vmstat, отображающей новую статистику каждые
три секунды:
$ vmstat 3
procs - - - - - - - - - - - memory - - - - - - - - ­ - - swa p - - - - - i o - - - - - - system - - - - - - - cpu - - - - ­
so b i
r Ь swpd
free buff cache s i
in
cs us sy i d wa st
Ьо
о
о о
26 3876 85 15 о о о
1 о 97740 32488 3196 148360
1
1 1 98388 7428 3204 151472 о 216 о 333 30 3200 82 18 о о о
79 3846 77 23 о о о
1 о 1 1 3316 8 148 2980 146968 о 4980 4 5121
2 о 132648
7472 2904 148488 о 6455 3 6455
90 3644 83 17 о о о
о 5085 9 5220 79 3468 84 16 о о о
2 о 147892
8088 2732 144208
1 о 157948 7680 2308 1348 12 о 3272 12 3296 69 3174 77 23 о о о
275
26 3178 86 14 о 1 о
3 о 158348 7944 1 1 0 0 123888 21 144 25
2 о 166 1 1 6 7320
568 120280 11 240 1 20 2403
51 3175 84 16 о о о
3 о 181 048 7708 648 119452 53 4852 796 4984 123 1783 86 13 о 1 о

Для выхода из команды vms t a t нажмите сочетание клавиш Ctri +C. В данном
примере vmstat был указан период в 30 секунд, за который было запущено более
1 00 приложений. Отметим, что, когда объем свободной оперативной памяти нахо­
дится в пределах от 32 488 Кбайт до 7 428 Кбайт (то есть оперативная память
перегружена), данные начинают перемещаться в область подкачки (значение 216
в столбце so ). Поскольку область подкачки размещена на жестком диске, вы може­
те видеть, как по мере увеличения области подкачки увеличивается блок, запи­
сывающийся на диск ( Ьо ). Вы также можете видеть увеличение области подкачки
в столбце swpd.
Потребление времени центрального процессора в данном примере также воз­
растает, но без отображаемого времени ожидания ( i d 0). Отметим, что, когда в об­
ласть подкачки необходимо поместить некоторые приложения (последние три
строки выхода), процессору для завершения процесса ( wa 1) во время ввода/выво­
да приходится ожидать выполнения двух других процессов.
Вот еще несколько параметров, которые можно использовать с командой
vmstat:
$
$
$
$
$

vmstat
vmstat
vmstat
vmstat
vmstat

Отображает информацию в негабай тах (1 000 Кбайт )
Выводит информацию в негабай тах (1 024 Кбай т )
Отображает информацию в килобай тах (1 000 бай т )
1<
Выдае т информацию в килобай тах (1 024 байт )
К
Обновляет информацию каждые две секунды в течение
2 10
20 секунд
1 l ess
Отображае т счетчик количества событий и с та тис тику
исполь зования опера тивной памя ти
М - s 1 l ess
Отображае т с та тис тику в негабай тах
tota l memo ry
used memo ry
a ct i ve memo ry
i n act i ve memory
free memo ry
buffe r memory

-S m

-s м

-S

-s

-n

$ vmstat - s
$ vmstat ·S
7 25 М
7 17 М
486 М
175 М
7 М
1 М

213

Приложения для контроля

120
996
802
193

М
М
М
М

swa p cache
tot a 1 swap
used swa p
free swa p

В предыдущем примере показаны различные варианты отображения статисти­
ки использования оперативной памяти ( - s ) в мегабайтах ( - S М), которые, на наш
взгляд, наиболее удобны. В остальных примерах продемонстрированы способы
отображения информации с помощью команды vmstat в мегабайтах и килобайтах
(в упрощенном и техническом исчислении). Параметр - n 2 10 позволяет команде
vmstat обновлять результаты через установленный промежуток времени ( 2 ) на
протяжении заданного количества раз ( 1 0 ) .
Используя такие команды, как p s и top, вы можете определять объем используемой
вашей системой оперативной памяти. Однако ядро обладает своим собственным
кзшем, используемым для контроля ресурсов и называемым слэбо.м. Для отобра­
жения статистики кэш-памJIТИ вдра воспользуйтесь командой vmstat (из / proc/
s 1 aЬi n fo ) :
$ vmstat - m l ess
Отображает информацию о кэш -памя ти ядра
Num
Tota 1
Si ze
Pages
Cache
2
308
13
13
nf_nat : he1 p
14
276
о
о
nf nat : base
64
59
о
о
bri dge_fdb_cache
ext3- i node-cache
ext3 xattr

1236
29

2928
156

488
48

8
78

В информации о кэш-памяти указывается имя каждого объекта, хранящегося
в ней, количество активных объектов для данного типа кэша, общее количество
объектов, доступных для данного типа кэша, размер кэша (в байтах) и количество
страниц каждой области кзша. Используя команду s 1 a btop, вы можете отобразить
информацию о кэш-памJIТИ вдра в графическом режиме (как и в случае с коман­
дой top ) :
$ s1 abtop
49 127 1 70942 ( 69 . 2% )
Act i ve 1 Tota1 Objects ( % used )
3094 1 3094 ( 1 0 0 . 0% )
Act i ve 1 Tot a 1 S1 abs ( % used )
1 0 1 1 145 ( 69 . 7% )
Acti ve 1 Tota1 Caches ( % used )
8830 . 29К 1 12013 . 73К ( 73 . 5% )
Act i ve 1 Tot a 1 Si ze ( % used )
0 . 0 1 К 1 0 . 17К 1 128 . 00К
Mi n i mum 1 Average 1 Maxi mum Obj ect
OBJS ACT I V E USE OBJ S I ZE SLABS OBJ /SLAB САСНЕ S I ZE NАМЕ
1 1600 4303 37%
0 . 13К
400
29
1600К dent ry cache
8
1464К ext3 i node-cache
2928 1246 42%
0 . 48К
366
4355 2535 58%
0 . 28К
335
13
1340К radi x t ree-node
219
219 100%
4 . 00К
219
1
876К s i ze - 4096
3485 84%
0 . 16К
172
24
688К fi 1 p
4128

Выводимая командой s 1 аЬtор информация обновляется каждые три секунды.
По умолчанию содержимое слэб-кэша сортируется по количеству объектов

214

Глава 10. Администрирование си стемы

( первый столбец), хранящихся в каждом разделе кэша. Нажав клавишу С, вы мо­
жете отсортировать информацию по размеру кэша (как показано в предыдущем
примере).
·

П роцессор
Перегрузка центрального процессара является еще одним важным фактором, ко­
торый может вызывать сбои в работе системы. Команда vmstat, рассмотренная ра­
нее, может выводить общие статистические данные об использовании процессара
(действия пользователя, действия системы, время ожидания, время ожидания сиг­
налов входа/выхода и время, забираемое виртуальной вычислительной машиной).
Тем не менее команда i ostat (пакет sysstat) может отображать более подробные
сведения о загрузке центрального процессора.
Ниже приведено два примера использования команды i ostat с целью получе­
ния отчета об испоJIЬзовании процессора:
Отображае т обновляемую каждые три се �нды с та тис тику
использования процессор д (запускаемые приложения )
L i nux 2 . 6 . 2 1 - 1 . 3194 . fc7 ( da v i nci ) 08/ 1 0 / 2007
%idl e
a vg - cpu : %user %ni ce % system % i owa i t %stea l
0 . 50
0 . 00
0 . 00
0 . 00
0 . 00 99 . 50
%i dl e
a v g - cpu : %user % n i ce %system % i owa i t %stea l
0 . 00
0 . 0 0 47 . 52
18 . 32
28 . 7 1
5 . 45
%idl e
a vg - cpu : %user %ni ce %system % i owa i t %stea l
0 . 00
0 . 00
0 . 00
1 . 01
98 . 99
0 . 00
%idl e
avg - cpu : %user %ni ce %system % i owa i t %stea l
0 . 00
0 . 00
0 . 00
0 . 50
0 . 00
99 . 50
Отображает обновляемую каждые три секунды с та тис тику
$ i ostat · с 3
исполь зования процессора (копирование файлов )
L i nux 2 . 6 . 21 - 1 . 3 194 . fc7 ( da v i nci )
08/ 10 /2007
a vg - cpu : %user %ni ce %system % i owa i t %stea l
%idl e
0 . 50
0 . 00
0 . 00
0 . 00
0 . 00
0 . 00
a v g - cpu : %user %ni ce %system % i owa i t %stea l
%idl e
0 . 50
0 . 00
24 . 88 74 . 63
0 . 00
0 . 00
a vg - cpu : %user %ni ce %system % i owa i t %stea l
%idl e
0 . 50
0 . 00
10 . 00
89 . 50
0 . 00
0 . 00
a vg - cpu : %user %ni ce %system % i owa i t %stea l
%idl e
0 . 50
0 . 00
1 7 . 41
82 . 09
0 . 00
0 . 00
a vg - cpu : %user %ni ce %system % i owa i t %stea l
%idl e
0 . 00
0 . 00
14 . 65 85 . 35
0 . 00
0 . 00
$ i ostat - с 3

В первом примере сначала просто загружается система, а затем начинают вы­
полняться некоторые приложения. Как вы можете заметить, большая часть ресур­
сов процессора, используемых для работы приложений, задействована в рабочем
пространстве пользователя. Во втором примере рассмотрен случай, при котором
осуществляется копирование крупных файлов с одного жесткого диска на другой,
в результате чего б6льшая часть времени расходовалась на системном уровне,
также называемом пространство.м ядра. Отметим, что копирование файлов также
влияет на рост времени ожидания завершения запросов ввода/вывода ( % i owa i t ) .

Приложения для контроля

215

Ниже приведены примеры использования команды i ostat для отображения
отчетов об использовании процессора с применением подписей времени:
$ i ostat - с -t

Отображает подпись вренени в о тчете
об исполь зовании процессорд
L i nux 2 . 6 . 2 1 - 1 . 3194 . fc7 ( da v i nci )
08/ 1 0 / 2007
Ti me : 9 : 28 : 03 АМ
avg - cpu : %user %ni ce %system % i owa i t %stea l
%idl e
0 . 50
0 . 00
0 . 00
0 . 00
0 . 0 0 99 . 50
$ i ostat - с - t 2
Выводит с та тис тикv и обновляет ее
каждые две сецунды в течение 20 сецунд

Команда dstat (программный пакет dstat) является альтернативой команде
i ostat, поскольку также позволяет просматривать информацию о загрузке цен­
трального процессора (а также другие данные, связанные с производительностью
системы). Преимуществом команды dstat перед другими подобными Приложения­
ми является более точное отображение используемых единиц измерения (кило­
байты или мегабайты) и использование цветов для выделения разных типов дан­
ных. Вот пример использования команды d s t a t для отображения информации
о загрузке процессора:
Отображает и непрерывно обновляет информацию
о загруз ке процессора , исполь зуя подписи вренени
- - - t i me - - - - - - - tot a l - cpu - usage - - - __epoch___ l us r sys i d l wa i h i q s i q
1189727284 1 о
о 100 о о о
1 189727287 1 1 о 99 о о
о
1 189727290 1 3 о 97
о о о
1189727293 1 о
о 100 о о о
1189727296 1 5 о 95 о
о о
1 189727299 1 1 о 99 о
о о
1189727302 1 3 о 97
о о о
1189727305 1 о о 100
о
о о
1 1897.27308 1 3 о 96 о
1
о
1 18972731 1 1 1 о 99 о
о о
1 189727314 1 о
о 100 о о о
1189727317 1 о о 100 о
о о
1 189727320 1 1 о 99 о
о о
1 189727323 1 5 о 95 о
о о
1189727326 1 3 о 97
о о о
1189727329 1 3 о 97
о о о
1189727332 1 2 о 98 о
о о
1189727335 1 5 о 95 о
о о
$ dstat - t - с 3

В данном случае в выход включены значения даты и времени, основанные на
начале времени начала ( - t ) составления отчета о загрузке процессара ( - с ) , обнов­
ляющегося каждые три секунды (3). Этот отчет обновляется до тех пор, пока вы
сами не остановите его (нажав сочетание клавиш Ctri+C).
Если вы хотите определить конкретные процессы, потребляющие наибольший
объем ресурсов проЦессора, воспользуйтесь командой top: введите top, а затем

216

Глава 10. Админи стр и рование системы

нажмите Shift+P, чтобы отсортировать процессы по уровню использования процес­
сара (данный порядок сортировки является значением по умолчанию):
Отображает запущенные процессы и сор тирует их
по уровню исполь зования ресурсов процессора
Ta s k s : 120 tota l . 3 runni ng . 1 1 6 s l eepi ng . О stopped . 1 zombi e
Cpu ( s ) : 86 . 8% us . 6 . 0% sy . 0 . 0% n i . 3 . 3% i d . 4 . 0% wa . 0 . 0% h i . 0 . 0% s i
Mem : 482992k tota l . 476884k used . 6108k free . 1220k buffers
Swa p : 58637.16k tota l . ll66252k used . 4697464k free . 52984k cached
P I D USER
PR NI V I RT RES SHR S %CPU %МЕМ
T I ME+ COMMAND
9648 chri s
16
О 309m 123m 16m R 72 . 6 26 . 1 287 : 55 . 22 fi refox- bi n
15 О 762m 65m 5732 S 15 . 6 14 . 0 4388 : 27 Х
552 root
$ top

Полный список процессов содержит значительно большее количество процес­
сов, отсортированных по степени загрузки процессара (столбец %CPU): В данном
примере наибольший объем ресурсов процессара потребляют браузер Firefox
( 72 . 6% ) и сервер Х display ( 15 . 6% ). Если вы решите завершить процесс Firefox, но по
каким-либо причинам не можете корректно закрыть окно Firefox, то введите пара­
метр k, ID процесса Firefox (9648) и номер сигнала (9).
Информацию о самом процессоре вы можете получить прямо из файла /proc/
cpui n fo:
$ cat /proc/cpui nfo
processor
vendor_i d
cpu fami l y
model
model name
steppi ng
cpu MHz
cache s i ze

Отображае т информацию о процессоре .
содержащуюся в ка талоге /proc

о

Authenti cAМD
б
4
АМD Ath l on ( tm ) proces sor
4
1340 . 080
256 кв

fl ags
fpu vme de pse tsc ms r рае mce сх8 api c mt rr pge mca cmov
pat pse36 mmx fxs r sysca l l mmxext 3dnowext 3dnow up
: 2680 . 91
bogomi ps
: 32
c l fl ush s i ze

При описании работы с процессаром стоит упомянуть такую небезынтересную
деталь, как метки, представляющие собой функции, поддерживаемые процессором.
Для работы с некоторыми функциями в Ubuntu необходимо, чтобы были активны
определенные расширения процессора, связанные с этими метками. Например, для
использования паравиртуальных параметров виртуальной среды Xen должна быть
у ; swt c h = : s t a rt = ·а : s t o p = ·s :
sus p • z : r p r n t = � R : wera s e
w : l n ext = · v : f l u s h = ·о : mi n = 1 ; t i me
О;
- pa ren b - pa rodd c s 8 hupc l - cst o pb c read c l oc a l - c rtscts
- i gnbrk - brk i nt - i gnpa r - pa rmrk - i npck - i s t r i p - i n l c r
- i gncr i c r n l i xon - i x o f f - i uc l c - i xa ny - i ma xb e l - i u t f 8
opost - o l cuc - oc r n l on l c r - on o c r - on l ret - o f i l l
- o fde l n l O c r O t a b O b s O vtO ffO i s i g i canon i e xt e n echo echoe echok
=

·



=

·

z

- ec h o n l - no f l s h - xc a s e - t o s t o p - ec h o p rt echoct l echoke

Устройство автоматичесi
Переключи ть загруз ку
в фоновый режим
Ска ча ть все файлы из Jgnuled
1 ftp mi rrors . kernel . org : . . . > mget /gnu/ed/*
l ftp mi rrors . kerne1 . o rg : . . . > l l s
Локальный запуск l s
1 ftp mi rrors . kerne1 . org : . . . > bookmark add Li ve
Созда ть заклад КУ
Закрыть 7 ftp
l ftp mi rrors . kerne 1 . org : . . . > qui t

В начале работы сессии вы входите на сайт mirrors.kernel.org под именем аноним­
ного пользователя. Перейдя в директорию, содержащую искомый ISО-образ, вы
загружаете его с помощью команды get. Нажатие сочетания клавиш Ctri+Z дает
возможность загрузке продолжиться, в то время как вы можете заниматься други­
ми делами. Далее команда mget (которая поддерживает подстановочные символы,
такие как *) загружает все файлы из папки /gnu/ed.
Если перед любой командой поставить восклицательный знак (например, ! 1 s ) ,
то она будет выполнена локальным командным процессором. Команда bookma rk

262

Глава 12. Подключение к сетевым ресурсам

сохраняет текущий путь (в данном случае ft p : / /mi r r o r s . k e rn e 1 . org/ fedo r a /
r e 1 eases / 7 / L i ve ) под именем L i ve, чтобы в следующий раз я мог набрать 1 ftp L i ve
и вернуться в то же место. Команда qui t завершает сессию.
Рассмотрим еще несколько полезных команд, применяемых во время автори­
зированной сессии lftp, в рамках которой выпОJIНяется загрузка данных на сер­
вер. Предполагается, что у вас есть необходимые полномочия доступа к файлам на
сервере:
$ 1 ftp chri s@exampl e . com
Password : • • • • • • •
1 ftp examp1 e . com : -> l cd /home/chri s/ songs
1 ftp examp1 e . com : -> cd puЬ/upl oads
1 ftp examp1 e . com : -> mkdi r songs
1 ftp examp1 e . com : -> chmod 700 songs
1 ftp examp1 e . com : -> cd songs
1 ftp examp1 e . com : -> put song . ogg tune . ogg
3039267 bytes transfer red
1 ftp examp1 e . com : -> mput /var/songs/*
1 ftp examp1 e . com : -> qui t

Перей ти к локаль ной папке
Перей ти к папке на сервере
Созда ть директорию на сервере
Измени ть права удаленной папки
Перей ти в новую дирек торию
За грузи ть файлы на сервер
За груз и ть соо тве тс твующие
условиям файлы
Закрыть 7 ftp

Сессия 1 ftp показывает, как можно использовать команды командной оболочки
для работы с удаленными папками (подразумевается, что у вас есть необходимые
права). Команды mkdi r и chmod создают директорию и открывают доступ к ней толь­
ко для вашей учетной записи. Команда put загружает один или несколько файлов
на удаленный сервер. У команды mput есть возможность работы с подстановочны­
ми символами, чтобы одновременно загрузить множество файлов. В другие команды
входят параметры mi rror (чтобы скачать с сервера дерево каталогов) и mi rror - R
(для загрузки дерева каталогов на сервер).
Команда 1 ftp также предоставляет сценарий командного процессора для неiПI­
терактивных сессий: 1 ftpget. Синтаксис команды 1 ftpget похож на синтаксис wget:
$ l ftpget . ftp : //mi rrors . kernel . org/ubuntu/di sts/ fei sty/Rel ease

Помните, что стандартные FТР-клиенты небезопасны, так как работают с по­
мощью чистого текста. Если вопрос безопасности стоит не на последнем месте, то
альтернативным способом передачи файлов являются SSH -утилиты.

Испол ьзование ин а рументов SSH � я передачи
файлов
Инструменты SSH - одни из самых важных инструментов системного админист­
ратора, которые применяются для установки связи. В гл. 13 описаны наиболее
сложные аспекты их настройки и использования. Однако в своей самой простой
форме SSH -утилиты наиболее часто используются для передачи файлов.
В частности, команда scp обеспечит вас всем необходимым для передачи файла
с одного компьютера на другой, в то время как она будет безопасно зашифрована
на этапе авторизации и самого процесса передачи.Команду rcp заменяет ssh, став-

263

Передача файлов

шая наиболее популярной утилитой для передачи файлов с одного хает-компью­
тера на другой.

1МАНИЕ --------�--­
Команда scp не сообщает о nерезаnиси файлов (то есть о стирании старого и заnиси нового}, nо­
этому убедитесь, что целевой хает-комnьютер не содержит нужных вам файлов или nапок, nуть
которых совnадает с маршрутом указанной файловой nередачи.

Копиро вание файлов в д ругих уэп а х сет и с помощ ью scp
Чтобы использовать команду scp для передачи файлов, на удаленной системе дол­
жен быть запущен сервис SSH (обычно это демон sshd). Рассмотрим несколько
примеров применении команды scp:
Скопиров а ть myfi Те на serverl

$ scp myfi l e francoi s@serverl : /tmp/
Passwo rd : ******
$ scp serverl : /tmp/myfi l e

Скопирова ть myfi l e . находящийся на другон
узле . в текvщую локаль ную папку

Passwo rd : ******

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

$ scp р myfi l e serverl : /tmp/
-

Если SSH -сервис работает не через порт 22, используемый по умолчанию, то
используйте параметр Р чтобы указать нужный порт в поле команды scp:
-

,

Подключиться через определенный пор т

$ scp -Р 12345 myfi l e serverl : /tmp/

Для создания рекурсивных копий с определенного места в удаленной файло­
вой системе используйте параметр r:
-

$ scp - r mydi r francoi s@serverl : /tmp/

Копируе т все папки mydi r
в удаленную папкv l tmp

Хотя эффективность команды scp высока, когда вы точно знаете местщrахож­
дение нужного файла для копирования, иногда полезнее просматривать и переда­
вать файлы интерактивно.

Копиро ван и е фа йло в, находя щихся на д ругом уэп е связи,
в рамках сессий sftp и lftp
Команда s ftp позволяет использовать интерфейс, подобный FТР-клиентам, дЛ я
поиска и копирования файлов по протоколу SSH. Ниже приведен пример, пока­
зывающий, как начать sftp-ceccию:
$ sftp chri s@serverl
chri s@serverl ' s pas sword : *****
sftp>

Используйте sftp, как и обычные FТР-клиенты. Наберите ? , чтобы увидеть
список команд. Вы можете переходить по удаленным ( cd) и локальным папкам ( 1 cd),

264

Глава 12. Подключение к сетевым ресурсам

проверять их (pwd и 1 pwd), а также просматривать локальное и удаленное содержи­
мое ( 1 s и 1 1 s ) . В зависимости от прав доступа пользователя, под именем которого
вы находитесь в системе, можно создавать и удалять папки (mkdi г и гmdi г), изменять
права доступа (chmod) и принадлежиость/группу (chown и chgгp) файлов или па­
пок.
Вы также можете применять команду 1 ft p (это уже обсуждалось выше) как
sftр-клиент. L ftp обладает некоторыми практичными функциональными возмож­
ностями, например позволяет завершить ввод пути нажатием клавиши ТаЬ:
$ l ftp s ftp : //chri s@serverl
Pas swo гd : ********
1 ftp chгi s@seгve г l : ->

Утилиты для передачи файло в в Windows
Зачастую пользователям необходимо получить файлы с Linux-cepвepoв, используя
Windоws-клиенты. Если вы работаете в Windows, то можете использовать следую­
щие общедоступные утилиты для получения файлов с серверов Linux:
О WinSCP (http://winscp. net) - графический клиент scp, sftp и FTP для Windows
с использованием протоколов SSH 1 и SSH2;
О FileZilla (http : //filezilla.sourceforge. net) - предоставляет графический клиент
FTP- и SFТР-сервисов в Windows наряду с возможностями FТР-сервера;
О PSCP (www. chiark.greenend.org.uk/"'sgtatham/puttyl) - клиент scp, использующий
командную строку, являющийся частью модуля PuTTY;
О PSFTP (www.chiark.greenend .org.uk/"'sgtatham/putty/) - клиент sftp, использую­
щий командную строку, являющийся частью модуля PuTTY.

П редоставление об ще го досту па
к удал е нным дире ктория м
Средства, уже описанные в этой главе, предоставляют доступ к файлам на элемен­
тарном уровне, когда после подключения файлы передаются в рамках одного се­
анса. Сервисы по предоставлению доступа и монтированию удаленных файловых
систем могут быть весьма полезны, когда необходим постоянный и непрерывный
доступ к удаленной папке с файлами. Такие сервисы включают в себя Сетевую
файловую систему (NFS), Samba и SSHFS.

N FS
Если предположить, что на сервере уже запущен NFS-cepвиc (как часть установоч­
ного пакета nfs-kernel-server), то можно использовать команды expoгtfs и showmount,
чтобы увидеть доступные и смонтированные общие папки. Моитированне общей
директории выполняется с помощью специальных параметров команды mount. Если
вы установите пакет программ nfs-kernel-server, Ubuntu запустит NFS-cepвиc.

265

Предоставление общего достуnа к удаленным директориям

Просмотр и э кспорт общих ресурсов
Команда expo rt fs , запущенная на NFS-cepвepe, показывает все общие паПIСи, ко­
торые доступны на нем:
$ sudo /usr/ sbi n/exportfs - v
/export /mysha re c l i ent . exampl e . com ( ro . wdel ay . root squash . no subt ree check )
( rw . wdel ay . root_squas h . no_s ubtr ee_check )
/mnt / puЫ i c

В данном примере папки с общим доступом - expo rt /mys h a re и /mnt /puЫ i с. Пер­
вая из них доступна только хост-компьютеру client.example.com, в то время как
вторая доступна всем. Параметры для каждого общего ресурса указаны в скобках.
Первая папка доступна только для чтения ( ro ) , записи в папку откладываются, если
ожидается активность, чтобы увеличить производительность (wde l ay), запросы
rооt-пользователя к клиенту рассматриваются как анонимные запросы ( root squash )
К тому же проводится менее детальная Проверка прав доступа к файловой системе
(no_s ubt ree_check). Во втором общем каталоге можно проводить как чтение, так
и запись ( rw).
Вы можете создавать и редактировать общие NFS-директории, внося измене­
ния в файл /etc/ expo rts. Для того чтобы изменения вступили в силу, в качестве
rооt-пользователя наберите следующие команды:
_

$ sudo /etc/ 1 n 1 t . d/nfs - kernel - server rel oad

.

Переза груз и ть экспор тированные
общие ка талоги

$ sudo exportfs - r
$ sudo exportfs - rv

То же саное
Полная перез агруз ка экспор тированных общих
ка талогов
exporti ng c l i ent . exampl e . com : /export /mysha re
exporti ng * : /mnt / puЫ i c

Запустив команду showmount на сервере Linux, можно увидеть список доступных
директорий на локальной системе. Например:
$ sudo /usr/sb1 n/showmount - е
Export l i st for server . exampl e . com
c l i ent . exampl e . com
/export /mysha re
*
/mnt /puЫ i c

Если же вы запустите команду showmount на клиентской Linux-cиcтeмe, то мо­
жете увидеть список доступных директорий на выбранном компьютере. Напри­
мер:
$ sudo /usr/s b 1 n/showmount - е server . exampl e . com
cl i ent . exampl e . com
/export/mysha re
*
/mnt /puЬl i c

М оитирован н е общих ресурсов
Используйте команду mount, чтобы смонтировать удаленный общий ресурс NFS на
локальном компьютере. Приведем соответствующий пример:
$ sudo mkd1 r /mnt/server - share
$ sudo mount server . exampl e . com : /export/myshare /mnt/ server - share

266

Глава 12. Подключение к сетевым ресурсам

В рамках данного примера мы имеем дело с NFS-cepвepoм ( server . examp l е . com)
и общей папкой с этого сервера (/ expo rt lmysha re). В конце команды указывается
локальная точка монтирования (/mnt/serve r - s h a re), которая должна существовать
до самого процесса монтирования общей папки.
Для указания специальных NFS-свойств добавьте параметр -о после команды
mount:
$ sudo mount



rw . hard . i ntr server . exampl e . com : /export/myshare /mnt/ server - share

Параметр rw позволяет монтировать удаленную папку с правами доступа чте­
ние/запись при условии, что такие права доступны. Если указан параметр ha rd, то
любому, кто будет использовать общий ресурс, будет выдаваться сообщение Server
not responding (здесь: Сервер не отвечает), как только будет достигнут лимит вре­
мени на операцию чтения или записи. В таких случаях полезно указать параметр
i nt r, который позволяет прервать запрос на разрыв соединения с удаленным сер­
вером (нажмите сочетание клавиш Ctri +C).
Протокол NFS версии 3 (nfsЗ) применяется по умолчанию для подключения
к общему ресурсу. Для использования NFS версии 4, созданной для работы через
Интернет и брандмауэры, укажите этот протокол в командной строке как тип фай­
ловой системы следующим образом:
$ su d o mount - t nfs4 server . exampl e . com : / /mnt/ server - share
ПРИМЕЧАН ИЕ

------

6 за висимости от исnользуемой версии Ubuntu nротокол NFS

v4 может работать со сбоями. Работа
с более ранними версиями NFS через SSH может ока заться намного надежнее и/или безопаснее.
Можете н а йти дополнител ьную и нформацию об этом через И нтернет, набрав в строке поиска
nfs ssh.
В частности, обратите внимание на сайт www. howtoforge.com/пfs_ssh_tuппeliпg и загляните по ад­
ресу http://tldp.org/HOWТO/NFS-HOWТO/security. html для получения дополнительной информации
по безопасности работы NFS.

Sam ba
Samba - это свободно распространяемая версия протокола общего доступа к фай­
лам и принтерам в Windows. Этот протокол ранее был известен под названием
Server Message Block (SMB). Теперь его называют Common Internet File System
( C I FS). Samba реализована как в Linux, так и в других операционных системах.
У становите пакеты программ samba и samba-doc, чтобы иметь возможность поль­
зоваться рассматриваемой версией.
Samba SW А Т - это графическая веб-утилита Windows для монтирования,
предоставления общего доступа и опроса общих SМВ-директорий. Чтобы иметь
возможность пользоваться SWAT в Linux, установите пакет swat. Далее про­
чтите инструкции по запуску SW АТ на сайте https://help.ubuntu .com/community/
Swat.
Команды по работе с общими ресурсами Samba могут применяться для опроса
S М В -серверов, а также для монтирования и предоставления общего доступа к пап­
кам.

Предоставление общего доступа к удаленным директориям

267

П одкл ючение и просмотр общих ресурсов
Если вам нужно просканировать сеть на наличие SМВ-хостов, введите следую­
щее:
$ fi ndsmb

*=DMB
+=LMB

I P ADDR

NETB I OS NАМЕ

WORKGROUP/OS/VERS I ON

192 . 1� 8 . 1 . 1

SERVER1

+ [ MYWORKGROUP ] [ Uni x] [ Samba 3 . 0 . 25а - З . fс 7 ]

Для просмотра текстовой информации о составе сети (общие папки и пр ин­
теры) используйте команду smЬtree:
$ sudo smbt ree
Password : ******
MYGROUP
\ \THOMPSON
\ \THOMPSON\ hp2100
\ \ THOMPSON\ I PC$
\ \ E I NSTE I N
\ \ E I NSTE I N\ hp5550
\ \ E I NSTE I N\ I PC$

Samba Server Vers i on 3 . 0 . 25а - З . fс7
НР LaserJet 2100М Pri nter
I PC Serv i ce ( Samba Server Vers i on 3 . 0 . 25а - З . fс7 )
Samba Server
НР DeskJet 5550 Pri nter
I PC Serv i ce ( Samba Server )

Для создания нового пользователя Samba, идентичного существующему
пользователю Liпux, используйте команду smbpa s swd:
$ sudo smЬpasswd - а francoi s
New SMB password : ******
Retype new SMB pas sword : ******
Added user francoi s
1

ВНИМАНИЕ
вам необходимо задать собственный Samba-napoль, чтобы выполнять команды, требующие введе­
ния пароля.

Чтобы получить список служб, доступных анонимному пользователю, введи­
те следующие команды:
$ smbcl i ent -L server
Password : ******
Anynymous l og i n succes sful
Doma i n= [ MYGROUP J OS= [ Un i x] Server=Samba 3 . 0 . 25а - З . fс7
tree connect fa i l ed : NT-STSTUS-LOGON-FAI LURE

После этого вы можете увидеть резу льтат использования команды smbc 1 i ent от
лица пользователя francois:
$ smbcl i ent L server U francoi s
Passwo rd : ******
Doma i n=[MYGROUP J OS=[Uni x] Server=[ Samba 3 . 0 . 25а - З . fс 7 ]
Sha rename
Туре Coпrnent
·

·

268

I PC$
hp5550

Глава 12. Подключение к сетевым ресурсам

I PC
I PC Servi ce ( Samba Server Vers i on 3 . 0 . 25a - 3 . fc7 )
Pri nter НР DeskJet 5550 Pri nter
Comment
Server
THOMPSON
Workg roup

Samba Server Vers i on 3 . 0 . 25а - З . fс7
Master

MYGROUP

THOMPSON

Для подключения к Samba .как к FТР наберите следующую команду:
$ smbcl i ent / / 192 . 168 . 1 . 1/myshare - u francoi s
Password :
Doma i n= [ MYWORKGROUP ] OS= [ Uni x] Server=[ Samba 3 . 0 . 25a - 3 . fc 7 ]
smb : \ >

Как и в большинстве FТР-клиентов, чтобы увидеть список возможных ко­
манд, наберите ? . Более того, вы можете использовать команды, подобные коман­
дам командного процессора. Например, cd, l s, get , put и qu i t для работы с хост­
компьютером SMB.

М о ит ирован н е общих ресурсов
Вы можете смонтировать удаленные каталоm Samba на своем локальном ком­
пьютере подобно тому, как это делается с локальной файловой системой или уда­
ленной файловой системой NFS. Для монтирования общего ресурса необходимо
ввести следующее:
$ sudo mount ·t smbfs ·О username-francoi s , password-НySecret \
/ / 192 . 168 . 1 . 1/myshare /mnt/mymount/
ПРИМЕЧАНИЕ

-------�--­

Файловая система SamЬa (smbfs} больше не существует в некоторых дистрибутивах Llnux; однако
Ubuntu nоддерживает именно ее. В других дистрибутивах во время монтирования удаленного ре­
сурса Samba предпочтительно указать CIFS (-t clfs} в качестве файловой си стемы.

Вы можете отобразить текущие подключения и блокировки файлов на серве­
ре, используя команду smbstat us. Если кто-либо смонтировал ваши общие папки
или в данный момент подключен к вашему серверу с помощью команды smbc 1 i ent,
команда smbstatus сообщит об этом:
$ sudo smbstatus
Samba vers i on 3 . 0 . 25а - З . fс7
PID
Username
Group

Mach i ne

( 1 0 . 0 . 0 . 55 )
francoi s
1 0 . 0 . 0 . 55
5466 francoi s
pi d
Connected at
mach i ne
Serv i ce
mysha re

5644

No l ocked fi l es

10 . 0 . 0 . 55

Tue J u l 3 15 : 08 : 29 2007

П редоста вление об щего доступа к удаленным директориям

269

Поиск хост- систем
В Samba для идентификации хает-систем используются имена NetBIOS. Вы мо­
жете определить IР-адрес компьютера с помощью команды nmb 1 ookup, применяе­
мой для пересылки сигналов определенному имени NetBIOS в рамках локальной
подсети:
$ nmЬl ookup thompson
queryi ng thompson on 192 . 168 . 1 . 255
192 . 168 . 1 . 1 server1

Чтобы найти IР-адрес сервера в определенной подсети, используйте пара­
метр - U:
$ nmЫ ookup - u 192 . 168 . 1 . 255 server1
queryi ng server1 on 192 . 168 . 1 . 255
server1

Проверка конфи гу рации
Если вы не можете пользоваться общим ресурсом Samba или появились проблемы
со связью с SаmЬа-сервером, можете проверить конфигурацию Samba на сервере.
Команда testpa rm применяется для просмотра главного файла конфигурации
Samba ( smb . conf ) :
$ testparm
Load smb confi g fi l es from /etc / samba / smb . conf
Proces s i ng sect i on " [ homes ] " P roces s i ng sect i on " [ pr i nters ] " P roce s s i ng sect i on
" [mysha re ] " Loaded servi ces fi l e ОК .
Server rol e : ROLE STANDALONE
Press Enter to see а dump of your serv i ce defi n i t i ons

После нажатия клавиши Enter ( как предписывает программа) вы увидите настрой­
ки из файла smb . conf. Ниже показано, как запись об общем каталоге myshare (он
использовался в приведеином выше примере) может выглядеть в файле smb . conf:
[mys h a re ]
path
/ home/ francoi s
username francoi s
v a l i d users - francoi s
hosts a l l ow ei nstei n
a v a i l a Ы e yes


=

=



Такая запись открывает пользователю francois доступ к папке / home/ franco i s
(представленной общим именем myshare) на хает-компьютере под названием
einstein. На данный момент общий ресурс отмечен как доступный.
Предыдущий пример применения команды testpa rm показывает записи, поме­
щаемые в файл smb . con f. Однако здесь не рассматриваются значения, используе­
мые по умо.лчанию, которые не установлены. Их можно просмотреть с помощью
параметра - v. Используйте его вместе с командой l ess, чтобы иметь возможность
постраничного просмотра информации:
$ testparm · v 1 l ess

270

Гла ва 12. Подключение

к

сетевым ресурсам

Если вы хотите провесm проверку файла конфигурации перед запуском, то
у команды testpa rm есть возможность использовать файл, отличный от / etc / samba /
smb . conf:
$ testparm /etc/samba/test - smb . conf

SSH FS
Моитированне удаленных файловых систем - еще один волшебный прием, кото­
рый выполняется с помощью протокола SSH. Вы можете смонтировать любую
директорию SSH -сервера, к которой есть доступ из вашей локальной системы
Linux под определенной учетной записью пользователя, с помощью файловой сис­
темы SSH (sshfs). Она проводит шифрование операции монтирования , а также
любой передаваемой информации. Еще одним потрясающим аспектом системы
sshfs является то, что она не требует никакой установочной части на стороне сер·
вера (в отличие от работы SSН-сервиса).
Вашему вниманию предоставляется быстрая процедура монmрования удален­
ной папки с документами на локальный компьютер. Для проведения этой проце·
дуры необходимо, чтобы удаленный сервер был доступен, на нем была запущена
SSH и целевая директория была открыта для вашей учетной записи пользователя.
В этом примере мы монтируем директорию / v a r / docs с хает-компьютера с IР-ад­
ресом 1 0.0.0.50 в точку монтирования /mnt /docs на локальной системе:
$ sudo apt - get i nstal l sshfs
Ус танови ть програннное обеспечение sshfs
Созда ть точку мон тирования
$ sudo mkdi r /mnt/docs
$ sudo sshfs chri s@10 . 0 . 0 . 50 : /var/docs /mnt/docs
Смонтирова ть удаленную папку

Закончив пользоваться удаленной папкой, вы можете демонтировать ее с по·
мощью команды fusermount (часть установочного пакета fuse-utils):
$ sudo fusermount -u /var/docs
Демонтирова ть удаленную папку

О б ще ни е с д рузьям и ч е рез I RC
Несмотря на всенародную любовь к клиентам передачи мгновенных сообщений,
интернет-чаты ( lnternet Relay Chat, IRC) все еще остаются популярными. На сай­
те freenode. net есть множество комнат для общения, посвященных поддержке круп­
ных проектов по разработке программнаго обеспечения с открытым исходным
кодом. Более того, множество людей находятся там на протяжении всего дня и на­
блюдают за дискуссиями, касающимися их любимых Linuх-проектов. Этот фено­
мен известен под названием lurking и означает пассивный просмотр сетевых ново­
стей и конференций.
Утилита xchat - хороший графический, многофункциональный I RС-клиент.
Вы можете установить пакет программ xchat или модули GNOME из установоч­
ного пакета xchat-gnome. Если вы установили последний, то в Ubuntu выбери­
те Applications • Internet • XChat-GNOME IRC Chat ( Приложения • И нтернет • Чат
GNOM E I RC). Однако элитным способом общения в IRC является использование
текстового клиента в окне терминала на постоянно работающей машине, например

Общение с друзьями через IRC

271

на старом сервере. Другим похожим вариантом является работа с I RC прокси-кли­
ента, также известного как баунсер, например программы dircproxy (часть устано­
вочного пакета dircproxy).
Исходным IRС-клиентом был ircll. Он поддерживал сценарии наподобие мак­
росов в комплектах приложений для продуктивной работы, которые автоматизи­
ровали некоторые команды и повышали практичность программы. Наиболее по­
пулярным был PhoEniX от Vassago, затем появился BitchX, который сначала был
сценарием irc i i , а затем превратился в отдельный клиент. Большинство людей на
сегодняшний день используют irssi. Для того чтобы установить и запустить irssi
из Ubuntu, наберите следующее:
$ sudo apt - get i nstal l i rssi
$ i rssi -n JayJoe199x

В этом примере именем пользователя является JayJoel99x (вы должны выбрать
свое имя). Вы увидите синюю строку состояния, которая означает, что вы находи­
тесь в окне 1 (окно состояния). После первого запуска irssi программа выведет
справочное сообщение, ссылающееся на документацию. Всем I RС-командам пред­
шествует символ 1 Например, чтобы подключиться к серверу freenode, наберите
следующее:
/connect chat . freenode . net

Если вы не указали имя пользователя в командной строке, то войдете в чат
сайта freenode. net под именем текущего пользователя. В I RC комнаты общения
называются каналами и перед именем каждого стоит знак решетки (#).
Теперь попытайтесь nрисоединиться к IRС-каналу #centos:
/joi n #centos

Ваш экран должен быть похож на тот, что вы видите на рис. 1 2 . 1 .

Рис. 12.1. Клиент irssi nодключен к каналу #centos на Freenode

ПРИМЕЧАНИЕ

-------­

Являясь nользователем Ubuntu, вы, возможно, захотите nодключиться к каналу #ubuntu.

Как указано в строке состояния, теперь вы находитесь в канале в окне 2. П ере­
ключайтесь между окнами с помощью сочетаний клавиш Alt+ l , Alt+2 и т. д. (или
Ctri+N и Ctri+P). Обратите внимание, что такие сочетания клавиш, как Alt+ 1 и Alt+ 2,
не работают в окне терминала gnome, так как он поглощает их. Для получения
помощи наберите /he 1 р «команда», где под командой подразумевается любая команда,

272

Глава 12. Подключение к сетевым ресурсам

о которой вы хотите узнать подробнее. Текст будет выведен в окне состояния (но
не обязательно в текущем окне).
Для отправки сообщения в I RС-чат просто наберите его и нажмите клавишу
Enter, после чего сообщение увидят все пользователи канала. Для получения до­
полнительной информации об использовании клиента irssi обращайтесь к доку­
ментации по адресу www. irssi .org/documentation.

Работа с почто вы ми программами на основе
те кстовых п риложении
....

В наши дни большинство почтовых агентов пользователя ( MUA) работают на ос­
нове графического интерфейса. Таким образом, если вы начали пользоваться элек­
тронной почтой в последнем десятилетии (или около того), то, подумав о почтовой
программе, вы в первую очередь представите себе Evolution, Kmail, Thunderblrd
или (в системе Windows) Outlook. Однако в первых версиях UNIX и Linux почта
обрабатывалась на основе текстовых приложений.
Если у вас возникнет необходимость проверить электронную почту на удален­
ном сервере или в рамках другой текстовой среды, ro предлагаем вашему вниманию
достойные текстовые почтовые программы. К слову, многие компьютерные фана­
ты до сих пор используют только текстовые почтовые программы, расхваливая их
эффективность и посмеиваясь над сообщениями на основе HTML.
При описании почтовых программ мы подразумевали, что ваши сообщения
хранятся в локальной системе в стандартном формате МВОХ. Это означает что
либо вы подключены к почтовому серверу, либо уже локально провели загрузку
сообщений (например, с помощью РОРЗ или подобных средств).
ПРИМЕЧАН ИЕ

-------­

Текстовые почтовые программы можно использовать для чтения сооб щений, уже сохра ненных дру­
гими почтовыми программами. Напри м ер, можно открыть файл входящего сообщения программы
Evolutloп с помощью следующей команды : mall -f $HOME/.evolutioп/maii/IOC/IпЬox.

Команда mail
Для быстрой проверки почты в почтовом ящике суперпользователя н а удаленном
сервере чаще всего применяют команду ma i 1 ( / Ь i n /ma i 1 ), которая является частью
установочного пакета mailx. Хотя существует возможность ее интерактивного ис­
пользования, наиболее часто ее применяют для отправки электронных сообщений
на основе сценариев. Рассмотрим несколько примеров:
$ mai 1 - s ' Му Li nux vers i on ' chri s@examp1 e . com < /etc/ 1 sb - re1 ease
$ ps auwx 1 mai 1 - s ' Му Process Li st ' chri s@examp1 e . com

Эти Примеры демонстрируют быстрый способ отправки текста без необходи­
мости открывать графическое приложение. Первый пример позволяет отправить
содержимое файла 1 etcl 1 s b - re 1 e a s e пользователю по адресу chris@example.com.
Темой ( - s ) является ' Му L i nux Vers i on ' . Во втором примере показывается, как тому

Работа с почтовыми программами на основе текстовых приложений

273

же пользователю отправляется список текущих запущенных приложений ( ps a uwx )
с темой ' Му Process L i st ' .
ПРИМЕЧАНИЕ -------­

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

$ sudo apt - get i nstal l mai l x

При интерактивном использовании команды ma i 1 по умолчанию открывается
почтовый ящик, указанный в текущем значении SMA I L интерпретатора команд.
Например:
$ echo SМAI L
/var/spool /ma i l /chri s
ПРИМЕЧАНИЕ -------­
Воэможно, понадобится задать значение этой переменной среды. Оно должно выглядеть так: /var/
spoo l/mail/«имя пользователя» (в текущем примере именем пользовател я является chrls). В Ubuntu
значение переменной MAIL, как и сама команда, по умолчанию не установлено.

Чтобы прочитать почту пользователя root, наберите следующую команду:
$ sudo mai l
Ma i l vers i on 8 . 1 6/6/93 : Туре ? for hel p .
" / va r/ spool /ma i l / root " : 25 messages 25 new
>U 1 l ogwatch@a b . l Fri Jun 15 20 : 03 441 1667 " Logwatch for аЬ ( L i nux) "
U 2 l ogwatch@a b . l Sat Jun 16 04 : 32 87/ 2526 " Logwatch for а Ь ( L i nux) "
3 l ogwatch@a b . l Sun Jun 17 04 : 32 92/ 2693 " Logwatch fo r аЬ ( L i nux) "
N 4 l ogwatch@a b . l Fri Jun 22 09 : 28 44/ 1667 " Logwatch for аЬ ( L i nux ) "
N 5 МA I LE R - DAEMON@a b Fri Jun 22 09 : 28 93/ 3348 "Warni ng : cou l d not send "
&

�ред текущим сообщением стоит знак >. Новые сообщения имеют обозначение
N в начале, не прочитанные (но не новые) сообщения - U. Если же никакого симво­
ла нет, то сообщение было прочитано. Знак & внизу означает, что программа готова
принимать команды.
На этом этапе вы находитесь в командном режиме. Можно использовать про­
стые команды для навигации и работы с основными почтовыми функциями.
Наберите ? , чтобы увидеть список команд, или введите номер сообщения, которое
хотели бы прочесть. Наберите v3, чтобы увидеть третье сообщение в редакторе vi.
Если хотите увидеть список заголовков сообщений начиная с 1 8-ro, введите h18.
Для ответа на сообщение под номером 7 наберите r7 (введите текст сообщения,
затем поставьте точку, чтобы отправить его). Наберите d4, чтобы удалить четвертое
сообщение (или d4 - 7 , если хотите удалить сообщения, начиная с четвертого и за­
канчивая седьмым). Для того чтобы выйти в интерпретатор команд, введите ! bash
(затем exi t, чтобы вернуться в приложение mail).
Перед тем как выйти из приложения, обратите внимание, что, как только вы
выходите из программы, все просмотренные сообщения копируются из почтового

274

Глава 12. Подключение к сетевым ресурсам

ящика в файл &HOME/mbox. Это происходит в том t:лучае, если вы их не сохранили
(посредством команДы pre * ) . Чтобы все сообщения остались в почтовом ящике,
выйдите из приложения, нажав клавишу Х. Для сохранения изменений почтового
ящика при выходе из программы нажмите клавишу Q.
Вы можете открыть любой файл формата МВОХ во время пользования прило­
жения mail. Например, если вы находитесь в системе под именем пользователя,
отличным от chris, но хотите просмотреть почтовый ящик этого пользователя, вве­
дите следующее:
$ sudo mai l - f /var/spool /mai l /chri s

Команда

mutt

Если вы хотите постоянно использовать почтовый клиент из командной строки,
то мы рекомендуем работать с командой mut t вместо ma i 1 . У команды ma i 1 есть
множество ограничений, например в ней не реализована поддержка отправки при­
ложений без их предварительного кодирования (в частности, с помощью команды
uuencode ) ; в то время как mutt обладает многими современными возможностями
работы с электронной почты. Команда mutt является частью пакета программ mutt,
который необходимо установить, чтобы иметь возможность пользоваться данной
программой. Вы можете настроить работу команды в файле /etc/Mutt rc. Кроме того,
нуЖно будет настроить команду sendma i 1 , чтобы отправлять электронную почту.
Подобно ma i 1 , mutt обладает возможностью отправки сообщений с помощью
сценариев. Кроме того, она может работать с приложениями к почте. Например:
$ mutt - s "Ну Li nux Versi on " - а /etc/ l sb - rel ease \
chri s@exampl e . com < emai l - body . txt
$ mutt - s "Ну Li nux Version" - а /etcll sb- rel ease \
·chri s@exampl e . com < /dev/nul l

В первом примере файл ema i 1 - body . txt служит телом письма, а /etc/ 1 sb- re1 ease ­
приложением. Во втором примере отправляется пустое письмо (< / dev/nu1 1 ) , однако отсылается то же приложение, что и в первом примере.
Вы можете начать сессию mutt (если почтовым ящиком по умолчанию явля­
ется $MAI L), просто набрав команду:


$ mutt
/ home/ch r i s / Ma i 1 does not exi st . C reate i t? C [yes ] / no ) у
q : Qu i t d : De1 u : Unde1 s : Save m : Ma i l r : Repl y g : Group ? : Не1 р
( 69 ) Logwatch fo r а Ь C L i nux )
1 OJun 16 1 ogwatch@ab
2 OJun 18 l ogwatch@ab
( 17 1 ) Logwatch fo r а Ь C Li nux)
3 OJun 18 Ma i 1 De1 i very S
( 219 ) Wa rn i ng : cou 1 d not send mes sage
4 OJun 19 1 ogwatch@a b
( 33 ) Logwatch for а Ь ( L i nux )
- - Mutt : / v a r / s pool /ma i 1 / root [Msgs : 22 New : 2 01 d : 20 63Kj - - ( date/date ) - - ( a l 1 ) - -

C приложеннем mutt легче работать, чем с mail, так как это экранно-ориенти­
рованная программа. Как и в случае с mail, используйте клавиши, чтобы переме­
щаться в mutt. Как всегда, нажмите ?, чтобы получить помощь. Советы по работе
с электронной почтой появляются на верхней панели. Используйте клавиши для
управления курсором i ·и ,1.. для выделения сообщений, которые хотите прочесть.

275

Резюме

Клавиши Page Up и Page Down применяются для прокрутки страниц каждого сооб­
щения. Нажмите клавишу 1 для возврата к заголовкам сообщений.
Проводите поиск текста с помощью клавиши 1 (искать далее) и Esc+/ (поиск
в обратном направлении). Нажмите N для нового поиска. Чтобы перейти к следую­
щему новому или непрочитанному сообщению, нажмите клавишу ТаЬ. Перейти
к предыдущему сообщению вам позволит нажатие сочетания клавиш Esc+ТаЬ.
Клавиша S используется для сохранения текущего сообщения в файл. Нажмите
D для удаления сообщения, а U - для отмены удаления.
Для отправки нового электронного сообщения используйте �авишу М. После
заполнения адреса полу11 ,..-rtnr ni'O

Го

Pr

[I P Pr
� Pr
loca/11051


SOC K S yS

1

Q/21

,.", 1 1 1> -/ . ssh/authori zed_keys2
$ chmod 600 -/ . ssh/authori zed_keys2
$ rm i d_rsa . pub

Получи ть клиен тский
id_rsa . pub
Добавить к вашим клю ч ам
Закрыть права дос тупа
Удали ть о ткрытый ключ после
копирования его содержимого

Эта продедура также может быть выполнена путем редактирования текстового
файла -/ . ssh/ authori zed_keys2 на сервере и копирования/вставки открытого клЮча
с компьютера клиента. Убедитесь, что передача происходит безопасно через ssh,

Регистрация в удаленной системе и туннелирование с помощью SSH

283

и не вставляйте никаких переносов на новую строку при записи ключа. Полный
ключ должен помещаться на одной строке, даже если он выходит за пределы
экрана.
Затем вы можете просто выполнять команду s s h с компьютера-клиента (при­
меняя учетные записи пользователей, для которых проводили настройку), и сервер
будет использовать ключ. Если вы установите фразу-пароль, то у вас будут ее тре­
бовать, как обычный пароль.
Сохранение частных ключей для их использования с Flаsh-носителя. Если
вы хотите хранить свой частный ключ в более безопасном месте, нежели жест­
кий диск, то можете использовать Flаsh-носитель (его также называют флеш­
кой):
$ mv -/ . ssh/ i d_rsa /medi a/THUMBDRI VEl/щypri vatekey

Далее, когда вы захотите использовать ключ, введите следующее:
$ ssh - 1 /medi a/ТНUMBDRIVEl/щypri vatekey chri s@Щyserver

Использование ключей с фразами-паролями более безопасно, чем применение
обычных паролей, но и более затруднительно. Для облегчения работы можно ис­
пользовать команду ssh - agent, чтобы хранить разблокированные ключи на время
текущей сессии. Добавив разблокированный ключ в запущенный s s h - agent, вы
сможете запускать команду ssh с ключом, но у вас теперь не будут каждый раз за­
прашивать фразу-пароль.
Чтобы увидеть, что делает команда s s h - agent, запустите ее без параметров.
После запуска появится трехстрочный Ьаsh-сценарий:
$ ssh - agent
SSH_AUTH_SOCK=/tmp/ssh - Sk EQZ18329/agent . 18329 : export SSH_AUTH_SOCK :
SSH_AGENT_P I D=18330 : expo rt SSH_AGENT_P I D :
echo Agent pi d 18330 :

Первые две строки вывода должны быть выполнены вашим интерпретатором
команд. Скопируйте эти строки в командную оболочку (shell) прямо сейчас. Вы мо­
жете избежать этих действий, запустив s s h - agent и приказав интерпретатору ко­
манд bash выполнить результат работы команды. Это достигается следующим
образом:
$ eval ' ssh- agent '
Agent pi d 18408

Теперь можно разблокировать ключи и добавлять их в запущенный агент.
Допустим, вы уже создали ключ командой s s h - keygen. Теперь добавим ключ, ис­
пользуемый по умолчанию, с помощью команды shh - add:
$ ssh- add
Enter pa s sphrase fo r / home/chri s / . s s h / i d_rsa : *******
I denti ty added : / home/chri s / . ssh/ i d_rsa ( / home/chri s/ . s s h / i d_rsa )

Далее вы можете добавить ключ, хранящийся на флешке:
$ ssh - add /medi a/THUMBDRIVEl/щypri vatekey

284

Глава 13. Удаленное администрирование

Для вывода списка всех КJПОчей, хранящихся в агенте, используйте параметр l :
-

$ ssh- add - 1
2048 f7 : b0 : 7a : 5a : 65 : 3c : cd : 45 : b5 : 1c : de : f8 : 26 : ee : 8d : 78 / home/ch ri s / . ssh / i d_rsa
( RSA )
2048 f7 : b0 : 7a : 5a : 65 : 3c : cd : 45 : b5 : 1c : de : f8 : 26 : ee : 8d : 78
/medi a /THUMBDR I V E l /mypri vatekey ( RSA )

Чтобы удалить один ключ из агента, например находящийся на флешке, запус­
тите команду s s h - add с параметром - d:
$ ssh- add - d /med; a/THUMBDRIVEl/mypr; vatekey

Для удаления всех ключей, хранJПЦИхся в агенте, используйте параметр

-

0:

$ ssh- add - D

П рим е н е ни е screen: богаты й удал е нны й
инте рпретатор коман д
Команда s s h открывает только одно окно. Если вы его потеряете, то можете также
потерять все, что сделали на удаленном компьютере. Это может быть плачевно,
если вы в тот момент работали с чем-то важным, например с двенадцатичасовой
компиляцией. Если же вы хотите выполнять три команды одновременно, например
vi httpd . conf, t a i l - f error_l og и serv i ce httpd re l oad, необходимо открыть три
отдельные ssh-ceccии.
По существу, screen - это мультиплексор терминалов. Если вы системный ад­
министратор, работающий на удаленных серверах, то screen станет для вас отличной
утилитой для работы с удаленным компьютером, где доступна только командная
строка. Кроме того, что она позволяет создавать несколько сессий интерпретатора
команд, команда дает возможность отсоединиться от него, а затем обратно подклю­
читься к той же сессии.
Пакет программ screen установлен в Ubuntu по умолчанию.
Для использования screen запустите команду s s h из командной строки клиен­
та для подключения к Linux-cepвepy, где установлен пакет screen. Далее просто
наберите следующую команду:
$ screen

Если вы запустили команду sc reen из окна терминала, то сначала увидите при­
ветствие, которое вопрошает о пицце и пиве, а затем обычную командную строку
bash в окне. Для управления screen нажмите сочетание клавиш Ctri+A и еще одну
клавишу, например Ctri +A и ? (упоминается как Ct rl +A , ? ) , что приведет к отобра­
жению экрана помощи. Вот несколько команд и сочетаний клавиш, которые вы
можете использовать для работы с запущенной программой screen:
$ screen - l s
There i s а sc reen on :
7 089 . pts - 2 . myserver ( Attached )
1 Socket i n / v a r / run/screen / S - francoi s .
$ Ctrl +A , а

Список активных окон
Указывает на то . ч то окно прикреплено
Снени ть заголовок окна

Применение screen : богатый удаленный интерnретатор команд

Set wi ndow ' s t i t l e to : Му Server
$ Ctrl +A , с
$ Ctrl +A , "
Fl ags
Num Name
О Му Server
1 bash
$ Ctrl +A . d
$ screen - l s
There i s а sc reen on :
7089 . pt s - 2 . myserver ( Deta ched )
1 Socket i n / v a r / run/screen / S - franco i s .

285

Набра ть новый з а головок
Созда ть новое окно
Показа ть активные за голов ки окон
Клавиши t и � меняю т окна
Отключи ть окно от терминала
Список активных окон
Показывае т . ч то окно отключено

Только что показанная сессия screen вывела два окна (в каждом запущен ин­
терпретатор команд shell). Вы можете создавать сколько угодно окон и называть
их по своему желанию. Кроме того, вместо отключения окна от сессии screen мож­
но просто закрыть его, выйдя из интерпретатора команд в каждом открытом окне
(нажав сочетание клавиш Ctri+D).
Когда сессия screen отключена, вы возвращаетесь в интерпретатор команд, от­
крытый после первого входа в систему сервера. Вы можете повторно подключить­
ся к screen-ceccии так, как описано в следующем подразделе.
В табл. 13. 1 показаны другие полезные сочетания клавиш для управления, до­
ступные в screen.
Таблица 13.1. Сочетания клавиш для уnравления командой screen
Сочетание

Описание

Ctri+A, ?

Покаэать экран nомощи

Qri+A, C

Создать новое окно

Ctri+A, D

Отключить окно от терминала; screen-ceccия и ее окна остаются в рабочем
состоянии

Ctri+A, "

Покаэать сnисок окон

Qri+A, '

Строка для ввода номера или имени окна, на которое необходимо
nереключиться

Qri+A, N

Просмотреть следующее окно

Ctri+A, Р

Просмотреть nредыдущее окно

Qri+A, [

В screen отключена вертикальная nрокрутка терминала. Эти клавиши
включают режим nрокрутки в screen. Нажмите дважды Enter для выхода

Qri+A, Shlft+A

Переименовать текущее окно

Ctri+A, W

Покаэать сnисок имен окон в строке заголовка

П овторное подкл ючение к сессии screen
Отключившись от сессии screen, вы можете вернуться к ней позже (даже если вый­
дете из системы и отключитесь от сервера). Для повторного подключения к сессии
с одним запущенным окном наберите следующее:
$ screen - r

286

Глава 13. Удаленное администрирование

Если запущено несколько сессий screen, то команда sc reen - r не сработает. На­
пример, следующие строки показывают, что случится, если работают две отклю­
ченные screen-ceccии:
$ screen - r
There a re severa l s u i taЬl e sc reens on :
7089 . pts - 2 . myserver
( Detached )
7263 . pts - 2 . myserver
( Detached )
Туре " sc reen [ - d ] - r [ pi d . ] tty . host " to res ume one of them .

Как и предлагает результат выполнения команды, вы можете идентифициро­
вать сессии по их названиям (которыми по умолчанию являются комбинации I D
процесса, названия tty и имени хает-компьютера). Например:
$ screen · r 7089 . pts - 2 . myserver

И мена сесс ий screen
Вместо названий, используемых по умолчанию, можно создавать более описа­
тельные имена после запуска screen. Например:
$ screen - S mysess i on
$ screen - l s
There i s а screen on :
26523 . myses s i on ( Attached )

П редоставпение общего доступа к сессиям
Команда sc reen также предоставляет общий доступ к сессиям. Эта функция пре­
красно подходит для технической поддержки, так как любой подключенный к этой
сессии может как печатать, так и смотреть на происходящее. Присвоение названия
окну, как показано в предыдущем разделе, делает эту процедуру еще проще. В ре­
зультате другой человек на другом компьютере может подключиться к серверу
с помощью ssh (используя то же имя пользователя) и набрать следующее:
$ screen



mysess i on

Если запущена только одна сессия screen, то по аналогии с командой screen - r
вам не надо указывать имя нужного окна для подключения:
$ screen



Испол ьз ование уда л е нного
ра бочего стол а Windows
Многие системные администраторы, привыкшие использовать Linux, по возмож­
ности предпочитают администрировать свои Windows-cиcтeмы именно через Linux.
В ней есть такие утилиты, как rdesktop и tsclient, которые позволяют присоеди­
ниться к системе Windows, на которой запущен Windows Terminal Services.
Чтобы иметь возможность подключиться к Рабочему столу Windows из среды
Linux, необходимо включить удаленный рабочий стол в системе Windows. Для это-

287

Использование удаленного рабочего стола Windows

го в Windows ХР, например, щелкните правой кнопкой мыши на значке Му Computer
( Мой Компьютер) и выберите пункт Properties (Свойства). Затем перейдите на
вкладку Remote (Удаленное использование) и установите флажок Allow users to
connect remotely to this computer ( Разрешить удаленное подключение пользователей
к этому компьютеру). Выберите пользователей, которым вы разрешаете подклю­
чаться к Windows, и нажмите кнопку ОК.
Теперь в Linux вы можете использовать утилиты dresktop или tsclient (графиче­
ский пакет на основе rdesktop) для подключения к Windows с помощью протокола
удаленного рабочего стола (RDP). В Ubuntu все эти компоненты установлены.

Команда tsclient
Если вы привыкли использовать в Windows приложение Remote Desktop Connection
( Подключение к удаленному рабочему столу) (ранее известное под названием
Terminal Services Client ( Клиент службы терминала)) для подключения одного ком­
пьютера к другому, то, возможно, оцените tsclient как отличный способ подклю­
читься к Рабочему сrолу Windows из Linux. Запуск tsclient открывает окно Terminal
Server Client (Клиент сервера терминала), которое симулирует интерфейс клиента
удаленного доступа к Рабочему сrолу Windows.
Когда пакет программ tsclient установлен, запустите tsclient из Рабочего сrола
GNOME, выполнив команду Applications • Internet • Terminal Server Client (Приложе­
ния • Интернет • Клиент сервера терминала) или набрав следующую команду
в своем интерпретаторе команд:
$ tscl i ent &

На рис. 13.2 показано окно Terminal Server Client ( Клиент сервера терминала).

Туре the n..vn• d the CM1puiU 01 choose
(ntnpute-t ffQm thc dtop down h5t

t1

C nmf1!�11<
RDr.s

===:�1 ,
1
1

1

С "'� l lostnan

1

Рис. 13.2. клиент сервера терминала (t:scient) подключается к Рабочему столу Windows

288

Глава 13. Удален ное администрирование

Возможно, что все, что вам необходимо ввести в этом окне, - это IР-адрес сис­
темы Windows. Вероятно, у вас запросят имя пользователя и пароль, в зависимости
от настроек Windows. Выбирайте различные вкладки для более детальной настрой­
ки подключения к удаленному рабочему столу Windows.
Обратите внимание на то, что tsc 1 i ent также можно использовать для VNC
и ХDМСР.

Команда rdesktop
Если вы предпочитаете не использовать программу tclient, описанную выше, мож­
но войm в удаленную систему Windows с помощью команды rdesktop. Она запра­
шивает вход в систему Windows, затем открывает Рабочий стол Windows для теку­
щего пользователя. Вот примеры команды применения rdesktop:
$ rdesktop 172 . 16 . 18 . 66
$ rdesktop - u chri s - р Н6руХХ wi n1
$ rdesktop - f wi n1
$ rdesktop - 0 - r sound : l ocal wi n1
$ rdesktop -Е wi n1

Вход на Рабочий стол по IР -адресу
Указа ть иня поль зова теля /параль
для хае т - конпьютера winl
Запус тить в полноэкраннон режине
Пряной з вук от сервера к клиен ту
Отключи ть шифрование клиен т /сервер

Если вы отключите шифрование клиент/сервер, пакет с данными о входе в сис­
тему будет шифроваться, а все остальное - нет. Это может намного повысить
производительность, однако любой человек, проелушивающий ваш LAN, может
увидеть текст проводимых операций связи (включая все интерактивные входы
в систему после первого пакета с данными о входе в систему).
Есть еще несколько параметров команды rdesktop, способных повысить произ­
водительность:
О - m - не отсылать передвижения мыши;
О - D - скрыть оформление менеджера окон;
О - К - не переопределять назначения клавиш менеджера окон.

Удал е н ны й рабочи й стоп
и п риложеи мя Linux
Система Х Windows System (Х) не должна запускаться на обычных серверах по
причинам безопасности и производительности. Но благодаря характеру клиент/
сервер вы можете запустить Х- программу на удаленном компьютере и перенапра­
вить ее графический вывод на свой Рабочий стол. Таким образом, приложение, за­
пущенное на удаленной машине, - это Х-клиент, а ваш Рабочий стол - Х-сервер.
Запуская Х-приложения в ненадежных сетях или в Интернете, используйте опи­
санную ранее SSН-переадресацию. В надежных сетях делайте это без SSH, как
описано ниже.

Удаленный рабочий стол и приложения Linux

289

По умолчанию ваш Рабочий стол Х не будет позволять Х-приложениям подклю­
чаться к нему. Можно разрешить запуск удаленных программ на Рабочем столе
с помощью команды xhost. Используйте ее на своей локальной Linux-cиcтeмe для
контроля над удаленными машинами, которые моrут подключаться к Х и выводить
приложения на вашем Рабочем столе. Рассмотрим примеры использования коман­
ды xhost:
$ xhost
Выв ес ти список хос т - конпьютеров . ко торым разрешен доступ
access control ena Ы ed . on l y authori zed c l i ents can connect
$ xhost +
Отключить кон троль дос тупа (опасно )
acces s cont rol d i saЫ ed . c l i ents can connect from a ny host
$ xhost
Пов торно активирова ть кон троль дос тупа
access cont rol enaЫ ed , on l y authori zed c l i ents can connect
$ xhost remotemach1 ne Добав и ть хост-конпьютер , ко торому разрешен доступ
remotemachi ne bei ng added to access control l i st
-

Контроль доступа отключается только для задач, связанных с устранением
неполадок. Однако если для определенного хост-компьютера (в данном случае
remotemachine) доступ открыт, можно выполнить следующую операцию в интер­
претаторе команд удаленной машины, чтобы приложения Х с этой машины появ­
лялись на локальном Рабочем столе (в данном случае localmachine):
$
$
$
$

export DISPLAY•l ocal mach1 ne : O
Ус танови ть DISPLA Y как 7 oca 7mach i ne : O
xterm &
Открыть удаленный терминал на локаль ном �онпьютере
xcl ock &
Открыть удаленные часы на локаль ном конпьютере
gtal 1 &
Открыть удаленную игру dice на локаль ном конпьютере

После отправки переменной D I SPLAY на remotemachine для указания на localmachine
любое приложение, запущенное из интерпретатора команд на удаленном компью­
тере, отобразится на Рабочем столе на локальной машине. В данном случае мы за­
пустили окно терминала, часы и приложение с игрой.
ПРИМЕЧАНИЕ

------

6 поспедних версиях Ubuntu X-server

ПО умолчанию не ожидает ТСР-подключений. Для разрешения
удаленных подключений отредактируйте файл /etc/gdm/gdm.conf-custom на Х-сервереспедующим
образом:

[ securi ty ] Di s a l l owTCP=fa l s e
затем перезапустите Х Windows.

Предоставить таким образом общий доступ к приложениям Х между Linux­
и UNIХ-системами достаточно легко. Однако довольно банально использовать
его для связи с другими платформами. Если на вашем компьютере установлена
Windows, вам придется запустить Х-сервер. Бесплатным решением этой проблемы
является программа Cygwin, в которую входит Х -сервер. Существуют также мно­
гофункциональные коммерческие Х -серверы, но они моrут быть очень -дорогими.
Для предоставления общего доступа к удаленным рабочим столам между разными
операционными системами мы предлагаем использовать виртуальную сеть пере­
дачи данных (VNC).

290

Глава 13. Удаленное администрирование

П редоста вл е ни е об ще го доступ а
к Рабоч и м столам с помо щ ь ю VCN
Виртуальная сеть передачи данных состоит из программ для сервера и клиента,
которые позволяют получить доступ к полному отображению Рабочего стола
с одного компьютера на другой. В Ubuntu по умолчанию установлена программа
vncviewer длЯ доступа к удаленному рабочему столу с вашего компьютера (кли­
ент), но необходимо установить пакет программ vncserver, чтобы иметь возмож­
ность предоставить доступ на ваш Рабочий стол (сервер). Для этого наберите сле­
дующее:
$ sudo apt - get i nstal l vncserver

Клиенты и серверы VNC работают со множеством операционных систем. VNС­
серверы можно применять в системах Linux, Windows (32 -Ьit), Мае OS Х и UNIX.
VCN -клиенты используются в вышеперечисленных, а также во множестве других
систем (включая OS/2, PalmOS) и даже могут применяться как jаvа-приложение
в браузере.

Н а ст ройка VNC-cep вepa
Предположим, что в своей системе Linux вы используете Рабочий стол, заданный
по умолчанию ( D I SPLAY= : O ) в качестве локального Рабочего стола. Для начала соз­
дадим независимые Рабочие столы, доступные через VNC. С оравами суперпользо­
вателя в любом текстовом редакторе откройте файл / etc/vnc . conf в своей Linux­
cиcтeмe, играющей роль VNC-cepвepa:
# vi /etc/vnc . conf

Проверьте настройки в данном файле. Обратите внимание, что файл конфигу­
рации используется каждый раз, когда вы запускаете программу vncserver.
Затем от лица каждого пользователя, которым необходимо будет пqдключаться
к их личным Рабочим столам на VNC-cepвepe, запустите команду vncpasswd. В нашем
примере мы запускаем ее от лица пользователя francois:
$ vncpasswd
Password : *******
Veri fy : *******

Наконец, вы можете запускать VNC-cepвep (vncserver). Наберите следующее
от лица пользователя root:
$ vncserver
ПPИMEЧAHИE -----­
vncserver не установлен как системный nроцесс no умолчанию. Для nолучения более nодробной
информации о назначении системных nроцессов см. гл. 1 1 .

Если в ы используете встроенный в систему брандмауэр iptaЬies, убедитесь, что
порты для VNC открыты. Каждый экран работает с отдельным портом. Экран с но-

Предоста вление общего доступа к Рабочим столам с помощью VCN

291

мером N доступен через ТСР-порт 5900+N. Например, экран 1 работает через порт
590 1 . Обращайтесь к гл. 14 для более подробной информации об iptaЫes.

За пус к VNС-кпи ента
Как только VNC-cepвep запущен, вы можете подключиться к Рабочему столу этого
компьютера из любой клиентской системы, упомянутой выше (Windows, Linux,
Мае OS Х, UNIX и пр. ). Предположим, что ваш VNC-cepвep находится на ком­
пьютере по имени myserver. Вы можете набрать следующую команду, чтобы запус­
тить клиент с другой Linuх-системы:
$ vncvi ewer myserver : l
$ vncvi ewer myserver : 2

Подключиться как franco i s на экран 1
Подключиться как chr i s на экран 2

· Если вы предварительно не определяли никаких команд для запуска, то у в иди·
те фоновый экран окна системы Х Window System. Чтобы пойти далее, необходи­
мо запустить программы на системе сервера или с вашего клиента, которые поя­
вятся на экране VNC Х. Например:
$ xterm - di spl ay myserver : l &
$ metac i ty · · di spl ay myserver : l &
ПРИМЕЧАНИЕ

-------­

большинстве программ Х Window необходимо указать, какой сервер используется (в этом спучае
сервер VNC) с помощью параметра -display. Однако менеджер окон metacity требует два дефиса
в этом параметре --display.
В

Кроме того, можно использовать tsclient для подключения; в этом примере вы
бы просто указали my s e r v e r : 1 как компьютер, а VNC - как протокол.

Ис п опьзование VNC вмесrе с SSH
в н е надежных сетях
VNC считается небезапасным протоколом. Пароль посылается при довольно сла­
бом методе шифрования, а остальная сессия вообще не шифруется. По этой при­
чине при использовании VNC в неиадежмых сетях либо в Интернете рекоменду­
ется туннелировать его через SSH.
Работа SSH описывается в разд. • Использование команды ssh для удаленного
входа в систему• этой главы. Для переадресации VNС-экрана 2 (порт 5902) на
компьютер по имени myserver на тот же локальный порт наберите следующее:
$ ssh - L 5902 : l ocal host : 5902 myserver
ПРИМЕЧАНИЕ

--------�---­

Есnи вы будете использовать VNC на постоянной основе, взгляните на tightvnc (пакет программ
с таким же именем). Хотя он и не включен в Ubuntu, это еще одно воплощение протокола VNC
с открытым исходным кодом, которое подвергается активным разработкам . У пакета есть масса
новых функций и оптимизаций. Эти функции таюке включают в себя встроенное ssh-туннелиро­
вание.

292

Глава 13. Удаленное администри�ние

П акет программ Vino
Если вы работаете с GNO M E и хотели бы предоставить общий доступ к суще­
ствующему Рабочему столу GNO МЕ ( di sp 1 ау : 0), то можете сделать это с помощью
пакета программ Vino. На рабочей паиели GNOME выберите System • Preference •
Remote Desktop (Система • Настройка • Удаленный рабочий стол) для отображения
окна Remote Desktop Preferences ( Настройки удаленного рабочего стола) (команда
v i no - preferences), показанного на рис. 1 3.3.
В окне Remote Desktop Preferences ( Настройки удаленного рабочего стола) мож­
но установить флажок Allow other users to view your desktop ( Разрешить другим
пользователям ВИдеть ваш рабочий стол) и таким образом позволить удаленным
пользователям VNC просматривать ваш Рабочий стол. Установка флажка дllow other
users to control your desktop ( Разрешить другим пользователям контролировать ваш
рабочий стол) позволит пользователям управлять вашим Рабочим столом с по­
мощью мыши и клавиатуры.

Aliuwo Ull

�llnw
1 1 �,.,

W

U> " О Vl

� U\11 �IUII

kll!fl lr�� w onl

'---�-�-----J

Рис. 13.3. Vino nозволяет удаленным nользовател ям
nросматривать ваш Рабочий стол и даже уnравлять им

Если стоит флажок Ask you for confirmation (Спрашивать меня о подтверждении),
то удаленный запрос на просмотр вашего Рабочего стола выведет всплывающее
окно для подтверждения соединения до того, как удаленный пользователь сможет
просматривать ваш Рабочий стол. Установка флажка Require the user to enter this
password (Требовать от пользователя ввода пароля) - отличная идея. Это не даст
тем пользователям, у которых нет пароля, просматривать Рабочий стол. Не забудь­
те проверить, чтобы длина пароля была не менее восьми символов.
Как указано в окне Remote Desktop Preferences (Настройки удаленного рабочего
стола), вы можете использовать vncviewer из другой системы Linux (с показанным
адресом и номером экрана) для отображения общего Рабочего стола.

293

Резюме

Рез ю ме
Если вам когда-нибудь придется администрировать несколько систем, можете не
беспокоиться Linux предлагает богатый выбор команд для удаленного админи­
стрирования. SSH предоставляет шифрованную коммуникацию для удаленного
входа в систему, туннелирования и передачи файлов.
Виртуальная сеть передачи данных (VNC) позволяет системе Linux предостав­
лять к,лиентской системе общий доступ к Рабочему столу, чтобы он появлялся прямо
на экране компьютера-клиента. С помощью утилиты Vino можно предоставлять
такой вид общего доступа, когда VNC-cepвep и клиент могут работать на одном
Рабочем столе одновременно.
-

14

П о вы ш ен ие у ровн я
б ез опасности

Обеспечение безопасности Linuх-системы означает, во-первых, ограничение до­
ступа к учетным записям пользователей и сервисам в этой системе. Во-вторых,
необходимо удостовериться, что никто не проник за установленные барьеры безо­
пасности.
Ubuntu, Deblan и другие системы на основе этих дистрибутивов имеют высокий
уровень безопасности по умолчанию. Это означает, что не существует учетных
записей пользователей без пароля и большинство сетевых служб (W еЬ, FTP и т. д.)
отключено по умолчанию (даже если связанные с ними программы установ­
лены).
Хотя множество команд, описанных в этой книге, могут быть использованы для
Проверки и повышения уровня безопасности вашей системы, некоторые функции
Linux оснащены специальными командами подобного действия. Например, безопас­
ные учетные записи пользователей с хорошей парольной защитой, достойный
брандмауэр и единообразный вход в систему (а также его мониторинг) крайне
важны для безопасности системы Linux. В этой главе мы описываем команды,
относящиеся к этим функциям, и некоторые продвинутые функции, например
SELinux и tripwire.

Работа с пользователями и r руппа м и
Во время большинства процедур установки Linux вас просят ввести параль для
суперпользователя root (для администрирования системы). Далее, возможно, вас
попросят создать учетную запись с выбранным именем и ввести для нее параль
(для ежедневного пользования компьютером). Мы рекомендуем всегда входить
в систему в качестве обычного пользователя и только при необходимости работать
с командами su или s udo для использования прав суперпользователя. Как только
Linux установлена, вы можете применять команды или графические утилиты для
создания пользователей, редактирования учетных записей, а также задания и из­
менения паролей.
Ubuntu повышает безопасность, запрещая вход в систему как суперпользова­
тель по умолчанию. Вместо этого во время установки вы создаете пользователя
с паролем, который может выполнять некоторые административные функции.
Используйте команду s udo в Ubuntu, чтобы выполнять одиночные rооt-команды.

Работа с пол ьзовател ями и группами

295

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

У пра впе ние пользователями из графической
о бопочки
На Рабочем столе Ubuntu, поддерживающем приложения Х, можно управлять пол�­
зователями и группами из окна User Manager (Диспетчер пользователей) (System •
Administration • Users and Groups ( Система • Администрирование • Пользователи
и группы)). Существует вариант использования графического веб�интерфейса для
управления учетными записями пользователей на сервере. Наиболее популярной
утилитой такого плана является Webmin (www.webmin.com ). Убедитесь, что W ebinin
не работает через порт, используемый по умолчанию ( 1 000), по причинам, свя­
занным с безопасностью. Вы также можете использовать специальные неб-интер­
фейсы. Например, существует множество автоматических графических интер­
фейсов для организации веб-хостинга, таких как cPanel (www.cpanel .com ) , Plesk
(www.swsoft.com/plesk)lи Ensim (www . ensim.com).

Добавп е ние учетных записей пользователей
Для добавления новых пользователей можно воспользоваться командой useradd.
Единственным необходимым аргументом является имя создаваемого пользовате­
ля. Вы можете увидеть некоторые установки, используемые по умолчанию, для
добавления новых пользователей с помощью параметра - D:
$ useradd · D
GROUP=lOO
HOME=/home
I NACТ I V E= - 1
E X P I RE=
SHELL=/ Ьi n / s h

Показать значения . исполь зуемые по умолчанию командой useradd
Ус танови ть иден тифика тор группы 1 00 (nоль зова тели )
Ус танови ть корневой ка талог /home
Отключи ть ис течение времени дейс твия пароля ( -1 )
Не устанавлива ть дату истечения срока дейс твия уче тной записи
Ус тановить ин терпре та тор команд ,
исполь зуемый по умолчанию как /b ln/bash
SKEL=/etc/skel
(копирова ть файлы конфигурации .
исполь зуемые по умолчанию из /etclske l в $НОМЕ
CREATE MAI L SPOOL=no Созда ть папку для хранения
временных данных электронной поч ты

Ubuntu и другие DеЬlаn-системы заменяют группу, используемую по умолча­
нию ( 100), и создают новую для каждого пользователя. По умолчанию идентифи­
катор ( I D ) первого созданного пользователя и группы равен 1 000. Имя группы
совпадает с именем пользователя. Базовый каталог - это имя пользователя, добав­
ленное к / home. Так, например, можно создать первую обычную учетную запись
пользователя в системе следующим образом:
$ sudo useradd -m wi l l z
Результатом станет новая учетная запись пользователя с именем willz ( UI D
100 1 ) и группа willz ( G I D 1 00 1 ). Параметр - m указывает на то, что необходимо

296

Глава 14. Повышение уровня безопасности

создать ·домашний каталог / home / w i 1 1 z и копию набора файлов конфигурации
(каждый из них начинается с точки ( . ) ) в домашний каталог из папки 1 etcl ske l .
Учетная запись будет активной неопределенное время (без даты истечения срока
действия). Добавьте пароль следующим образом.
$ sudo passwd horati o
Chang i ng pa sswo rd fo r user horat i o
New UN I X pa s swo rd : ********
Retype new UN I X pa ssword : ********
pa s swd : а 1 1 a uthent i cat i on tokens updated s ucces sfu1 1 y .

В большинстве случаев это все, что необходимо сделать, чтобы иметь рабочую
учетную запись пользователя.
ПРИМЕЧАНИЕ -------­
Помните, что надо использовать сложные пароли.

Существует множество параметров для замены используемых по умолчанию
параметров во время создания нового пользователя. Совмещайте различные па­
раметры по своему выбору. Рассмотрим несколько примеров:
$ sudo useradd - u 1101 - g 1300 skol mes
$ sudo useradd -m - d /home/jj jones
$ sudo useradd -G support . sal es t i md
$ sudo useradd - с "Tom G . Lotto" tl ot
$ sudo useradd - s /bi n/tcsh joeq
$ sudo useradd



2008 - 04 - 0 1 jerry

$ sudo useradd · f О jdoe
$ sudo useradd - s / sbi n/nol ogi n bi l l t
$ sudo useradd bi l l yq

Исполь зова ть з аданный UID
(иден тифика тор поль зова теля ) и GID
(иден тифика тор групnы ) для поль зова теля
Созда ть корневой ка талог / var/x/jj
Добавить поль зова теля в группы
support и sa les
Добав и ть полное имя поль зова теля
в поле коммен тария
Назначить новый ин терпре та тор
команд . исполь зуемый по умолчанию
( tcsh ) ; вы должны его ус тановить ·
Да та истечения срока дейс твия
уче тной з аписи Apr i l 01 . 2008
Созда ть о тключенную учетную запись
Не поз воля ть поль зова телю входить
в сис тему
Предо твра тить создание корневого
ка талога . о тсутствие -т

П еред тем как добавить пользователя в группу, нужно создать эту группу
(см. команду g roupadd, описываемую в подразд. •добавление групп• далее в этом
разделе). Пользователь должен принадлежать к изначальной группе, которую
можно определить с помощью параметра - g , а также к дополнительным группам,
что определяется параметром - G.
Для вывода списка групп, к которым принадлежит пользователь, используйте
команду groups:
$ groups francoi s
franco i s ftpusers

Вывод списка групп . к ко торым принадлежи т поль зова тель

Пример с созданием учетной записи со сроком действия ( - е ) является довольно
полезным для установки даты окончания действия учетной записи временного

297

Работа с пользовател ями и группами

пользователя. Измените интерпретатор команд, используемый по умолчанию, на
nologin, если хотите, чтобы пользователь имел доступ к компьютеру (через FTP,
РОРЗ и т. д.), но не мог работать с обычным интерпретатором команд Linux. Ана­
логично, в последнем примере, где для создания корневого каталога не применя­
ется параметр - m, пользователю позволяется иметь доступ к компьютеру, однако
у него не будет базовой директории. Обратите внимание, что, если вы не добавите
параметр - m, команда useradd не создаст корневого каталога для пользователя.
Изменение настроек, используемых по умолчанию командой useradd. Значе­
ния, используемые по умолчанию во время создания новой учетной записи поль­
зователя с помощью useradd (интерпретатор команд по умолчанию, GID, даты
истечения срока действия и т. д.), устанавливаются в файлах 1 etc/ 1 ogi n . defs и 1 etc/
defaul t/ useradd. Вы можете отредактировать эти файлы для изменения значений,
используемых по умолчанию, либо запустить команду useradd с параметром -D для
вывода списка или выборочного изменения значений:
$ useradd -D
Вывес ти значения , исполь зуемые по умолчанию для useradd
$ s11do useradd · D · Ь /home2 - s /bi n/csh Ус танов ить базовую директорию
и ин терпре та тор команд . исполь зуемый
по умолчанию
Ус танови ть да ту ис течения срока действия
$ sudo useradd · D -е 2009 - 0 1 · 0 1
всех учетных з аписей как 2009 -й год

Как указано выше, после создания учетной записи пользователя с параметром
-m файлы и папки из / etc/skel копируются в корневой каталог нового пользовате­
ля. Они включают в себя некоторые файлы интерпретатора команд bash и ссылку
на папку-образец. Вы можете добавить другие файлы и папки в /etc/ skel , чтобы
все новые пользователи получали их. Например, занимаясь настройкой веб-серве­
ра, вы можете создать папки puЫic_ftp и puЬiic_html, чтобы пользователи могли до­
бавлять туда страницы и файлы для общего доступа.

И зменение учетных записей поп ьэоватепей
После того как учетная запись пользователя создана, можно изменить ее настрой­
ки с помощью команды usennod. Большинство параметров совпадают с исполь­
зуемыми командой useradd. Например:
$ sudo usermod ·с "Thomas Lotto " tl ot
$ sudo usermod - s /bi n/sh joeq
$ sudo usermod · L swanson
$ sudo usermod ·U travi s

Измени ть имя поль зова теля в поле
коммен тария
Изменить ин терпрета тор команд .
исполь зуемый по умолчанию на sh
Заблокирова ть уче тную запись
поль зова теля swanson
Разблокиров а ть учетную запись
поль зова теля tra v i s

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

298

Глава 14. Повышение уровня безопасности

передана другому человеку. При таких обстоятельствах блокировка, а не удаление
записи предотвращает ситуацию, когда файлы, принадлежавшие пользователю, ока­
зываются принадлежащими несуществующему идентификационному номеру.
Поскольку обычный пользователь не может применять команды useradd и usenпod,
существуют специальные команды для изменения личной информации в учетной
записи. Вот несколько примеров:
$ chsh - s /bi n/sh
$ sudo chsh · s /bi n/sh francoi s
$ sudo chfn \
\
· О " 8 · 205"
· h "212 · 555 · 1212 " \
· W " 2 12 · 555 · 1957 "
$ fi nger francoi s
Log i n : franco i s
Di recto ry : / home/ franco i s
Offi ce : В - 205 . 2 1 2 - 555 - 1212
On s i nce Sat Aug 4 13 : 39 C CDT ) on
No ma i l .
N o Pl an .

Изменить текущий ин терпре та тор команд на Jb in lsh
Измени ть ин терпре та тор команд на lb i n lsh
Изменить номер офиса
Изменить домашний номер телефона
Измени ть офисный номер телефона

tty 1

Name : Franco i s Caen
Shel l : /bi n/bash
Home Phone : 2 12 - 555- 1957
4 seconds i d l e

Информация, измененная командой c h fn и отображенная с помощью fi nger,
хранится в пятом поле файла etc / pa sswd для выбранного пользователя (этот файл
может редактироваться только пользователем root, и выполнять данную операцию
нужно с большой осторожностью, применяя команду vi pw).
В других версиях Linux можно использовать параметр - f с командой chfn для
изменения вашего реального или полного имени. В Ubuntu эта функция отключе­
на по умолчанию. Вы можете изменить данное обстоятельство, отредактировав
файл /etc/ l og i n . defs. Найдите данную строку:
rwh
CHFN RESTR I CT
и измените ее на такую:
CHFN RESTR I CT

frwh

Удапение учетн ых записей поп ьзоватеn ей
Посредством команды userdel можно удалять учетные записи пользователей из
системы, а также другие файлы (корневые каталоги, спул-файлы электронной поч­
ты и т. д.). Рассмотрим примеры:
# userdel j i mbo
# userdel · r l i l y

Удапи ть пользова теля . но не его корневой ка талог
Удапи ть поль зова теля . корневой ка талог
и спул -файпы электронной поч ты

Упра вп ен ие паропям и
Добавить или изменить параль легко с помощью команды pa s swd. Однако у нее
существуют дополнительные параметры, позволяющие администраторам управ­
лять такими вещами, как блокировка учетных записей, истечение срока действия

Работа с пользовател ями и группами

299

паролей и сообщения о необходимости смены пароля. Помимо pas swd, для работы
с паролями предназначены команды chage, chfn и vi pw.
Обычные пользователи могут изменять только свой пароль, в то время как
суперпользователь имеет право менять пароли любого пользователя. Например:
$ passwd
Изменить личный пароль поль зова теля
Chang i ng passwo rd fo r user chri s .
Chang i ng pa s sword for chri s . ( cu rrent ) UN I X pa s swo rd : ********
New UN I X password : *
BAD PASSWORD : i t ' s WAY too short
New UN I X pa ssword : *********
Retype new UN I X pas sword : *********
pa sswd : pa sswo rd updated s ucces s fu l l y
$ sudo passwd joseph Rоо t - поль зова тель може т меня ть
пароль любого поль зова теля
Changi ng pas swo rd for user joseph .
New UN I X password : *
Retype new UN I X password : *
passwd : pas swo rd updated succes sful l y

В первом примере обычный пользователь (chris) меняет свой собственный па­
роль. Даже будучи зарегистрированным в системе, он должен ввести свой текущий
пароль перед вводом нового. К тому же команда pas swd предотвращает установку
слишком короткого пароля, основанного на словарном слове, с недостатком раз­
нообразных символов или такого пароля, который легко угадать. Во втором при­
мере rооt-пользователь может изменить пароль любого пользователя без старого
пароля.
Пароли должны иметь как минимум восемь символов, одновременно состоять
из букв и других символов (цифр, знаков препинания и т. д.), а также не должны
содержать реальных слов. Создайте легкий для запоминания пароль, но чтобы его
было сложно угадать.
Системный администратор может использовать команду pas swd для блокиров­
ки и разблокировки учетных записей пользователей. Например:
$ sudo passwd - 1 carl
Блокирова ть учетную з апись поль зова теля (car l )
Lock i ng P.a s sword fo r user carl . pas swd : Success
$ sudo passwd -u carl
Разблокирова ть уче тную запись поль зова теля (car l )
Unl ock i ng pas sword for user ca r l . pas swd : Success
$ sudo passwd -u jordan
Неудачная попытка разблокирова ть учетную запись
с пус тым парален
Unl ock i ng pa s swo rd for user jorda n .
pas swd : Warni ng : unl ocked password wou l d Ье empty .
pa sswd : �ns a fe operat i on ( use - f to force )

Блокировка учетной записи с помощью команды pa sswd подставляет восклица­
тельный знак ( 1 ) перед полем с паролем в файле /etc / s hadow (где хранятся пользо­
вательские пароли). Когда учетную запись разблокируют, восклицательный знак
удаляется и восстанавливается предыдущий пароль пользователя.
Администратор может использовать команду pa s swd, чтобы обязать пользова­
телей регулярно менять пароль, а также для того, чтобы оповестить о том, что

300

Глава 14. Повышение уровня безопасности

срок действия пароля истекает. Для использования функции истечения срока
действия пароля в учетной записи пользователя должно быть активировано ис-rе­
чение срока действия пароля. Следующие примеры используют команду passwd для
работы с истечением срока действия пароля:
$ sudo passwd - n 2 vern
$ sudo passwd -х 300 vern
$ sudo passwd -w 10 vern
$ sudo passwd

.

;

14 vern

Установи ть минималь ный срок дейс твия
пароля 2 дня
Ус танови ть максималь ный срок действия пароля
300 дней
Оповеща ть о6 ис течении срока дейс тв ия
пароля за 1 0 дней
Количес тво дней до о тключения учетной записи
после ис течения срока дейс твия пароля

В первом примере пользователь должен подождать хотя бы два дня ( - n 2) до
установки нового пароля. Во втором пользователь должен поменять свой параль
в течение 300 дней ( х 300). В следующем примере пользователя предупреждают
за 1 0 дней до истечения срока действия пароля ( -w 10). В последнем примере учет­
ная запись пользователя отключается через 1 4 дней после истечения срока дей­
ствия пароля ( - i 14).
Для просмотра сроков действия паролей можно воспользоваться командой
chage:
-

$ sudo chage -1 vern Показа ть информацию о да те ис течения пароля
Aug 04 . 2007
Last password cha nge
Мау 31 . 2008
Password expi res
Jun 14 . 2008
Pas sword i nacti ve
never
Account expi res
Mi n i mum number of days between pas sword change
2
300
Maxi mum number of days between pa ssword change
Numbe r of days of wa rni ng before pa s sword expi res
10

Как системный администратор вы можете использовать команду chage для
управления сроками истечения действия паролей. Кроме возможности установки
минимального ( -m) и максимального ( - М) количества дней действия, а также дней
до выдачи предупреждения ( -W), команда chage позволяет указать день, в который
пользователю необходимо задать новый пароль, или определенную дату, когда
учетная запись становится неактивной:
$ sudo chage

-1

46 frank

$ sudo chage -d 5 perry

Отключи ть учетную запись поль зова теля
по прошес твии 40 дней
Срок дейс твия пароля закончи тся через 5 дней

Вместо пяти дней ( - d 5) вы можете установить для этого параметра значение О,
что вынудит пользователя изменить свой параль в следующий раз при входе в сис­
тему. Например, при установке -d О у пользователя perry запросили бы новый па­
роль во время следующего входа в систему:
1 og i n : per ry
Pas sword : ********
You a re requ i red to cha nge you r pas swo rd i mmed i atel y ( root enforced )
Chang i ng password fo r perry .

301

Наблюдение за пользовател ями

( cu r rent ) UN I X pa sswo rd :
New UN I X pa s sword : *********
Retype new UN I X pa s swo rd : *********

Добавлени е групп
Каждый новый пользователь приписан к одной или нескольким группам. Вы мо­
жете создавать группы в любое время и добавлять в них пользователей. Права
каждой группы на использование файлов и папок в Linux зависят от того, как рас­
пределены права доступа. Добавление пользователя в группу позволяет определить
права доступа к файлам, каталогам и приложениям. Таким образом, пользователи
могут работать вместе над проектом или иметь общий доступ к ресурсам.
Команды, подобные тем, что применяются для работы с пользователями, до­
ступны и для управления группами. Вы можете добавлять (g roupadd) и удалять
группы (g roupdel ) , изменять их настройки (g roupmod), а также добавлять и удалять
членов этих групп (groupmems ). Рассмотрим несколько примеров создании новых
групп с помощью команды g roupadd:
$ sudo groupadd market i ng
$ sudo groupadd - g 1701 sal es
$ sudo groupadd - о - g 74 щysshd

Созда ть новую группу со следующим дос тупны� GID
Созда ть новую груnпу с GID . равным 1 701
Созда ть груnпу с сущес твующ им GID

Применяя команду groupmod, вы можете изменять имв или идентификационный
номер (ID) существующей группы. Например:
$ sudo groupmod - g 491 щyadmi n
$ sudo groupmod - n щуаd myadmi n

Изменить GID группы myadmi n на 491
Измени ть имя группы myadmin на myad

Для того чтобы удалить существующую группу, используйте команду g roupde l :
$ sudo groupdel myad Удапи ть существующую группу myad

Обратите внимание, что удаление группы или пользователя не удаляет файлы,
папки, устройства или другие элементы, принадлежащие группе или пользова­
телю. Если вы выведете полный список ( l s - 1 ) файлов или папок, приписанных
удаленной группе или пользователю, то будут показаны U I D и GI D удаленного
пользователя или группы.

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

Используйте команду fi nd (см. гл. 4) для поиска файлов по всей системе, кото­
рые принадлежат определенному пользователю.

О

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

О

Используйте команды fu s e r , ps и top (см. гл. 9) для просмотра запущенных
пользователями процессов.

302

Глава 14. Повышение уровня безопасности

Помимо умомянутых выше, существуют команды для просмотра всех зареги­
стрированных в системе пользователей на данный момент, а также для получения
общей информации о пользователях с учетными записями в вашей системе. Рас­
смотрим команды для получения информации о пользователях, находящихся
в системе:
·s

Вывес ти список недавних удачных входов в сис тему
1 ast
g reek
sti 1 1 1 ogged i n
Sun Aug
5 1 8 : 05
tty3
chri s
tty 1
sti 1 1 1 ogged i n
4 13 : 39
Sun Aug
pts /4 thompson
sti 1 1 1 ogged i n
5 14 : 02
Sun Aug
root
Sat Aug
chri s
pts / 1 : 0 . 0
sti 1 1 1 ogged i n
4 15 : 47
3 13 : 46 - 15 : 40 ( 0 1 : 53 )
Thu Aug 2 1 1 : 14 - 13 : 38 ( 2+02 : 24 )
franco i s pts / 2
$ 1 ast а
Упрощает процесс ч тения имени хае т - конпьютера удаленного клиента
Вывес ти список недавних неуда чных входов в сис тему
$ sudo 1 astb
Mon Aug б 12 : 28 - 1 2 : 28
ju1 i an
ssh : notty
ri tchi e
( 00 : 00 )
Tue Ju1 31 13 : 08
13 : 08
morri s
s s h : notty
thompson
( 00 : 0 0 )
ba boon
s s h : notty
10 . 0 . 0 . 50
Sun J u 1 8 09 : 40 - 09 : 40
( 00 : 0 0 )
francoi s s s h : notty
000db9034dce . c l i
Fri Jun 22 17 : 23 - 17 : 23
( 00 : 00 )
$ who - u
Вывести список всех поль зова телей в системе
на данный нонен т (полный вариант )
g reek
18121
tty3 2007 - 08 - 05 18 : 05 17 : 24
jim
20959 ( server1 . exampl e . com )
pt s / 0 2007 - 08 - 06 12 : 29
root
pts /3 200 7 - 08 - 04 18 : 18 13 : 46
17982 ( server2 . exampl e . com )
francoi s pts / 2 2007 - 0 7 - 3 1 23 : 0 5
o1 d
4700 ( 0a 0d9b34x . examp1 e . com )
chri s
o1 d
17502 ( : 0 . 0 )
pts / 1 2007 - 0 8 - 04 15 : 47
$ users
Вывес ти список всех поль з ова телей в сис теме
на данный нонен т (кра ткий вариант )
chri s francoi s g reek j i m root
-

Применяя команду 1 ast, вы можете увидеть каждого зарегистрировавшегося
в системе пользователя (или каждого открывшего новый интерпретатор команд)
либо узнать, как долго они находились в системе. Вы также можете увидеть отмет­
ку " sti 1 1 1 ogged i n " ( все еще в системе). Строки терминала tty1 и tty3 показывают
пользователей, работающих с виртуальных терминалов в консоле. Строки pts
означают людей, открывших интерпретатор команд с удаленного компьютера
( thompson ) или локальный экран Х ( : О . 0 ) . Мы рекомендуем использовать пара­
метр а для улучшенного отображения данных. Команда 1 astb показывает неудач­
ные попытки входа в систему и их направление. Команды who - u и users показыва­
ют информацию о текущих пользователях, находящихся в системе.
Рассмотрим несколько команд для получения дополнительной информации
о находящихся в системе пользователях:
-

Ваша принадлежнос ть (UID . GID и группа
для текvщего ин терпрета тора команд )
ui d=1000 ( ch r i s ) g i d=1000 ( ch r i s ) g roups=4 ( adm ) . 20 ( d i a 1 out ) . 24 ( cdrom ) ,
25 ( f1 oppy ) , 29 ( a ud i o ) . 30 ( d i p ) , 44 ( v i deo ) . 46 ( p1 ugdev ) . 104( sca nner ) . l 1 2 ( netdev ) .
1 13 ( 1 padmi n ) , 1 15 ( powerdev ) , 1 1 7 ( admi n ) . l 0 0 0 ( chri s )
Ваша принадлежность (поль зова тель . t ty .
$ who am i
да та входа в систему , местонахождение )
chri s
pts / 0 Aug 3 2140 ( : 0 . 0 )
$ id

Н аС'ТJ)ОЙка встроенного брандмауэра

303

$ fi nger - s chri s
Информация о поль зова теле (кра ткая )
Name
Logi n
Log i n Ti me Offi ce Offi ce Phone
Id1 e
Tty
Chri s Negus tty1
Aug 4 13 : 39 А - 1 1 1 555 - 1212
ch ri s
1d
$ fi nger -1 chri s
Информация о поль зова теле (nолная )
Log i n : chri s
Name : Chri s Negus
Oi rectory : /home/ chri s
She1 1 : /bi n / ba s h
Offi ce : А- 1 1 1 . 555 - 1212
Home Phone : 555 - 2323
2 days i d 1 e
On s i nce Sat Aug 4 13 : 39 ( СОТ ) on tty1
New ma i 1 recei ved Mon Aug б 13 : 46 2007 ( СОТ )
Un read s i nce Sat Aug 4 09 : 32 2007 ( СОТ )
No P 1 an .

Помимо вывода стандартной информации о пользователе (имя, корневой ката­
лог, интерпретатор команд и т. д.), команда fi nger также отображает информацию,
хранящуюся в специальных файлах в корневом каталоге пользователя. Например,
содержание файлов пользователя -/ . р1 an и -1 . proj ect (если они существуют) ото­
бражается в конце вывода команды fi nger. С существующим файлом . p roj ect
в одну строку и файлом . p1 a n в несколько строк это может выглядеть следующим
образом:
$ fi nger - 1 chri s

Информация о поль зова теле (nолная информация .
файлы . project и . p lan )

Proj ect :
Му proj ect i s to take over the wor1 d . P 1 a n :
Му grand pl a n i s
to take over the worl d
Ьу i nsta l 1 i ng Li nux on every computer

Н астройка встро е нного брандмауэ ра
Брандмауэр - одна из важнейших утилит для поддержания компьютера в безопас­
ности, исключающая возможность вторжения в систему через сеть или Интернет.
Он может защищать компьютер, проверяя каждый пакет с данными, поступающи­
ми в сетевые интерфейсы, а затем принимая решение о дальнейшей судьбе пакета
в соответствии с заданными вами параметрами. Брандмауэр, встроенный в текущее
ядро Linux, называется iptaЬles (вы также могли слышать о ipchains - предше­
ственнике iptaЬles в ядрах версии 2.2 и ниже). В Ubuntu iptaЬles запускается и на­
страивается в процессе установки.
Функция iptaЬles (www. netfilter.org) является невероятно мощной, но достаточно
сложной для использования через командную строку. По этой причине многие
устанавливают основные правила поведения брандмауэра посредством графиче­
ского интерфейса. Чтобы получить графический интерфейс, установите пакет
программ firestarter. В нем есть помощник для настройки брандмауэра. Для запус­
ка Firestarter выберите System � Administration � Firestarter (Система � Администри­
рование � Firestarter ). Вы также можете опробовать такие дополнительные пакеты
программ, как FWBuilder (пакет программ fwbuilder) и Shorewall (пакет программ
shorewall) для графической настройки брандмауэров.

304

Глава 14. Повышение уровня безопасности

У станавливая Ubuntu, вы одновременно установили в систему брандмауэр.
Ubuntu создает конфигурацию iptaЬles, которая является хорошим началом для
использования брандмауэра через Рабочий стол. Эта конфигурация открывает толь­
ко несколько портов для работающих демонов и блокирует остальные. Вы можете
изменить настройки по умолчанию с помощью команд, описанных далее.
ПРИМЕЧАН И Е

-------­

Прежде чем читать дальше, просмотрите документ для Ubuпtu под названием IpTaЫes HowTo, рас­
положенный на сайте https://help.ubuпtu.com/commuпity/IptaЫesHowTo. В нем содержится много
полезной информации об использовании iptaЫes в Ubuпtu, сильно отличающемся от других версий
Uпux, таких как Fedora.

Для более сложных задач, когда, к примеру, iptaЬles используется как бранд­
мауэр нескольких компьютеров, мы рекомендуем воспользоваться одной из гра­
фических утилит, упомянутых выше. Однако бывают случаи, когда у вас нет досту­
па к графическому интерфейсу или вам необходимо воспользоваться функцией,
которая недоступна через него. Вот тогда знание синтаксиса команды i pta Ы es
оказывается полезным для вывода списка текущих правил и самостоятельного
добавления новых.
Перед тем как вы начнете работать с брандмауэром в Ubuntu, нужно проверить,
как он настроен в вашей системе. Рассмотрим способ выведенив списка текущих
правил брандмауэра в системе Linux:
$ sudo i ptaЫ es - L
Cha i n I N PUT ( pol i cy АССЕРТ )
ta rget
prot opt source
Cha i n FORWARD ( pol i cy АССЕРТ )
ta rget
prot opt source
Cha i n OUTPUT ( pol i cy АССЕРТ )
ta rget
prot opt sou rce

desti nati on
desti nati on
dest i nati on

После установки Ubuntu вы увидите вывод предыдущей команды, означающий,
что ни одно правило не было задано. После некоторых изменений вы можете уви­
деть уже созданный список правил, подобный тому, что показан ниже:
Отобраз и ть текущую таблицу филь тров iptaЫes
$ sudo i ptaЫ es - L
Cha i n I NPUT ( pol i cy АССЕРТ )
ta rget
prot opt source
dest i nati on
a nywhere
АССЕРТ
udp
АССЕРТ
tcp
a nywhere
АССЕРТ
О
a nywhere
a nywhere
АССЕРТ
tcp
a nywhere
АССЕРТ
tcp
a nywhere
АССЕРТ
tcp
a nywhere
REJ ECT
О
Cha i n FORWARD ( pol i cy АССЕРТ )
prot opt source
ta rget
a nywhere
REJ ECT
О
Cha i n OUTPUT ( pol i cy АССЕРТ )
ta rget
prot opt source

anywhere
a nywhere
a nywhere
a nywhere
a nywhere
a nywhere
anywhere

udp dpt : i pp
tcp dpt : i pp
state RELATED . ESTABLI SHED
state NEW tcp dpt : ftp
state NEW tcp dpt : ssh
state N EW tcp dpt : http
rej ect -wi th i cmp - host - proh i bi ted

dest i nati on
rej ect -wi th i cmp - host - proh i bi ted
a nywhere
dest i nati on

305

Н астройка встроенного брандмауэра

Пример демонстрирует таблицу фильтров брандмауэра iptaЬles, используемую
по умолчанию. Она показывает, что из всех пакетов, поступающих в сетевые ин­
терфейсы компьютера, пакеты для протокола печати через Интернет ( ipp) по про­
токолам udp и tcp допускаются в систему. К тому же принимаются tср-пакеты,
направленные в порты FTP (ftp), Secure Shell (ssh) и Web (http). Кроме того, при­
ем пакетов происходит, если они ассоциируются с установкой соединения. Ниже
вы можете ознакомиться с nаt-таблицей:
$ sudo i ptaЫ es - t nat L
·

Отобраз и ть текущую па t - таблицу
программы iptaЫes

Cha i n PREROUT I NG ( po l i cy АССЕРТ )
prot opt source
desti nati on
ta rget
DNAT
О . О . О . 010
tcp
1 1 . 22 . 33 . 44 tcp dpt : 8785 to : 10 . 0 . 0 . 155 : 22
DROP
tcp
0 . 0 . 0 . 010
tcp dpt : 135
0 . 0 . 0 . 0/0
DROP
udp
0 . 0 . 0 . 0/0
udp dpt : 135
0 . 0 . 0 . 0/0
Cha i n POSTROUT I NG ( po l i cy АССЕРТ )
ta rget
dest i nati on
prot opt source
МASQUERADE
al l
0 . 0 . 0 . 010
0 . 0 . 0 . 0/ 0
Cha i n OUTPUT ( pol i cy АССЕРТ )
prot opt source
desti nati on
ta rget

Показаипая nаt-таблица относится к функции иреобразования сетевых адресов
(Network Address Translation, NAT). NAT позволяет использовать секретные адре­
са с помощью брандмауэра. Когда пакеты посылаются одним из внутренних ком­
пьютеров локальной сети, IР-адрес источника иреобразуется с помощью внешнего
интерфейса брандмауэра. Брандмауэр следит за этими сессиями, чтобы принимать
.трафик для машин локальной сети. Все это настраивается в строке MASQUERADE из
цепочки POSTROUT I NG.
В предыдущем примере строка DNAT из цепочки PREROUТ I NG указывает на то, что
все запросы на IР-адрес 1 1 .22.33.44 с портом 8785 перенаправляются на внутрен­
ний IР-адрес в локальной сети 1 0.0.0. 1 55 с портом 22 (уловка, позволяющая кому­
либо подключиться к компьютеру в обход брандмауэра, используя нестандартный
порт).
Вот еще несколько примеров, показывающих, как выводить информацию
о брандмауэре. Команда i pstate является частью пакета программ ipstate.
$ sudo i ptaЫ es - n - L

Правила филь тров . IР -адреса (без просмотра
DNS-записей )
$ sudo i ptaЫ es - v - L
Расширенный вывод (с подсче том паке тов /би т ) )
$ sudo i ptaЫ es L - - l i ne - numbers Показыв а ть номер с троки
в цепочке для каждого правила
$ sudo i ptaЫ es nvL · · l i ne - numbers
Любиное соче тание нашего
технического редактора
·

-

Вы можете очистить или остановить все правила iptaЬles в Ubuntu следующим
образом:
$ sudo i ptaЬl es

·

F

Очис ти ть все правила iptaЫ es

Данная команда устраняет все правила, поэтому будьте осторожны с ее исполь­
зованием. Вам придется немедленно установить новые правила.

306

Глава 14. Повышение уровня безопасности

Рассмотрим несколько примеров того, как использовать команду i pta Ы es для
измененив правил активного брандмауэра:
$ sudo i ptaЫ es ·А INPUT - р
. ; ethO
- - desti nat i on - port 25
- j АССЕРТ
$ sudo i ptaЬl es - t nat
·А POSTROUTI NG
- о eth1
- j SNAT
- - to - source 11 . 22 . 33 . 1

ТСР

\
\
\
\
\

\ Добавить правило внутреннего филь тра
\ для ТСР·пакетов первого Еthеrпеt -интерфейса
Направление в пор т электронной поч ты (25 )
Принима ть паке ты
Добав и ть па t -правило
Цепочка POSTROUTING
Паке ты . полученные ин терфейсом eth1
Перей ти к преобразованию се тевых адресов
Исполь зова ть адрес 1 1 . 22 . 33 . 1
для о тправки исходящей информации

Первый пример создает правило, позволяющее принимать новые запросы, вхо­
дящие в систему через порт 25. Возможной причиной может служить то, что вы
настроили компьютер как почтовый сервер (с sendmail, postfix или другим SМТР­
сервисом). Второй пример создает nаt-правило, которое позволяет брандмауэру
использовать иреобразование сетевого адреса источника (Source Network Address
Translation, SNAT). Благодаря функции SNAT после прохождения информации
через брандмауэр создается скрытый IР-адрес, через который можно поддерживать
связь с Интернетом, используя внешний IР-адрес брандмауэра.
Для того чтобы иметь возможность применять SNAT или любую другую форму
N АТ, вам необходимо разрешить перенаправление IP на компьютере. Это можно
сделать, отредактировав файл /etc / sysctl . conf путем снятия закомментированно­
сти следующей переменной:
net . i pv4 . conf . defa ul t . fo rwa rd i ng=l

Если вы имеете доступ к компьютеру с выходом в Интернет за границами дей­
ствия брандмауэра, то можете настроить брандмауэр для перенаправления пакетов
этой службы на такой компьютер. В следующем примере используется функция
под названием перенаправление портов для передачи запросов определенной служ­
бы через брандмауэр на внешний компьютер назначения:
$ sudo i ptaЫ es -t nat · А PREROUTI NG \
- р tcp · d 11 . 22 . 33 . 1

\

· - dport 80
· j DNAT
- - to - desti nati on 10 . 0 . 0 . 2

Добавить па t -правило
для цепочки PREROUTING
Принима ть tср -запросы на 1 1 . 22 . 33 . 1
\
Для пор та ВО (веб -служба )
\
Перей ти к цели DNA T
Перенаправи ть э ти пакеты на 1 0 . 0 . 0 . 2

Можно создать множество других типов правил, изменяющих поведение бранд­
мауэра. Для получения более подробной информации по использованию про­
граммы iptaЬles обратитесь к руководству, расположенному на сайте Netfiller
(www. netfiller.com).
После внесения описанных изменений вы увидите, что определены следующие
правила:
$ sudo i ptaЫ es - t nat · L
Cha i n PREROUT I NG ( po l i cy АСС Е РТ )
t a rget
prot opt
sou rce

dest i nat i on

307

Работа с файлами системного журнала

anywhe re
DNAT
tcp
Cha i n POSTROUT I NG ( po 1 i cy АССЕРТ )
ta rget
prot opt
source
SNAT
О
a nywhere
Cha i n OUTPUT ( po1 i cy АССЕРТ )
ta rget
prot opt
source

1 1 . 22 . 33 . 1

tcp dpt : www to : 1 0 . 0 . 0 . 2

desti nati on
to : 1 1 . 22 . 33 . 1
a nywhere
dest i nati on

Все изменения в правилах iptaЬles сохраняются только на время текущей сес­
сии. После перезагрузки компьютера активным станет набор правил, используе­
мых по умолчанию. Обычно это не то, что нужно. Для сохраненив ваших правил
iptaЬles запустuте команду i ptab1 es - sa ve:
$ sudo i ptaЫ es - save > i ptaЫ es . rul es
$ sudo ер i ptaЫ es . rul es /etc

Сохраняе т правила в файл
в текvщен ка талоге
Копируе т сохраненные правила в letc

Двухфазовый процесс необходим из-за прав доступа к папке 1 etc (вы можете
изменить их, но это не очень хорошая идея). Наконец, правила сохранены для
дальнейшего использования.
Далее можно настроить Ubuntu для загрузки этих сохраненных правил для
каждого подключенного Еthеrnеt-интерфейса (правила уникальны для каждой
сетевой карты или интерфейса в системе). Отредактируйте файл /etc/ netwo r k /
i nterfaces. После каждой информации о настройках i face для Еthеrnеt-интерфей­
са, например для ethO, вызывайте команду i рtа Ы es - restore, как показано в следую­
щем отрывке файла:
auto ethO
i face ethO i net dhcp
pre - up i ptaЫ es - restore

<

/etc / i ptaЫ es . ru1 es

Это дополнение к файлам правил интерфейсов вызывает функцию i ptaЫ es ­
restore для восстановления правил, сохраненных ранее в / etc / i рtаЫ es . ru1 es.

Работа с фа й ла м и систе м но го жу рнала
Большинство Linux-cиcтeм настроены на ведение записей о действиях, которые
происходят в рамках данных систем. Эти действия затем записываются в файлы
журнала, находящиеся в папке /va r 1 1 og или в ее подпапках. Такие записи произво­
дятся программным обеспечением Syslog.
Для управления ведением журнала событий Ubuntu использует sys 1 ogd (демон
записи системного журнала) и k 1 ogd (демон записи журнала ядра) установочных
пакетов sysklogd и klogd. Эти демоны включаются автоматически посредством
сценария запуска sys 1 og ( /etc / i ni t . d / sys k 1 ogd ) . Затем информация об активности
системы, основанная на настройках файла 1 etc l sys 1 og . conf, направляется в файлы
папки / v a r / l og, например messages, secure, c ron и boot . 1 og.
Периодическое создание файлов журнала обеспечивается программой logrotate
с настройками, хранящимися в файле /etc/ 1 og rotate . conf и папке /etc / 1 ogrotate . d.
Сrоn-процесс команды /etc/cron . da i 1у/1 ogrotate позволяет периодически в течение
дня заполнять журнальные файлы.

308

Глава 14. Повышение уровня безоnасности

Вы можете просмотреть любой файл журнала вручную (с помощью vi илидру­
гого текстового редактора). Однако, установив пакет logwatch, вы будете каждый
день получать наиболее существенную информацию из журнальных файлов на
почтовый ящик пользователя root. Можно изменить адреса отправки и получения
этого сообщения в файле / etc / c ron . da i l y / O l ogwatch. Чтобы избежать замкнутых
циклов отправки электронной почты, укажите существующий адрес для отправи­
теля, в то время как адрес получателя должен находиться за пределами локаль­
ного компьютера. Другой способ изменения получателя - это перенаправление
электронной почты rооt-пользователя на другой адрес. Это можно сделать, отре­
дактировав файл / et c / a l i a s e s и запустив программу newaliases для вступления
изменений в силу. В противном случае просто зайдите в систему как суперпользо­
ватель и работайте с почтовой программой пользователя, как это описано в гл. 1 2 ,
для прочтения электронных сообщений программы logwatch.
Вы можете отсылать свои собственные сообщения службе ведения системно­
го журнала syslogd с помощью команды l ogger. Вот несколько примеров:
$ l ogger Added new vi deo card
Информация добавлена в файл сообщения
$ l ogger - р i nfo -t CARD - f /tmp/my . txt
Приори те т . тег . файл сообщения

В первом примере фраза Added new v i deo ca rd отправляется в файл сообщения.
Во втором примере приоритет письма установлен как i n fo и тег CARD добавляется
в каждую строку сообщения. Текст сообщения извлекается из файла /tmp/my . txt.
Чтобы просматривать системный журнал в реальном времени, используйте коман­
ды t a i l f или l ess, как это описано в гл. 5.
-

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

Security Enhanced Linux (SE:tinux) - функция предоставляет средства для за­
щиты файлов, папок и программ Linuх-системы, предотвращая несанкциониро­
ванный доступ из одной используемой системной области в другую. Например,
если бы злоумышленники получили незаконный доступ к вашему неб-демону,
это не означало бы, что они получили бы доступ к остальной системе. SELinux
был разработан Агентством национальной безопасности США, на сайте которо­
го (www. nsa.gov/selinux,/info/faq.cfm) есть путеводитель по часто задаваемым вопро­
сам, связанным с данной программой. SELinux устанавливается с помощью не­
скольких пакетов. Обращайтесь на страницу https://wiki .ubuntu .com/SELinux для
получения более подробной информации.

О Централизованный системный журнал - если вы управляете несколькими
серверами Linux, то для вас предпочтительнее хранить файлы системного жур­
нала на центральном сервере syslog. Используя свой syslog-cepвep, вы можете

309

Резюме

просматривать информацию о системных событиях с помощью пакета syslog-ng.
Кроме того, если пакет logwatch уже не подходит вам из-за недостатка функцио­
нальности, попробуйте использовать анали�атор системного журнала Splunk.
О Tripwire с помощью этого приложения вы можете сделать моментальный
снимок всех файлов в системе, а затем использовать его, чтобы найти изменения
в файлах. Эта функция особенно полезна, когда нужно выяснить, подвергались
ли определенные программы ненужным изменениям. Вы берете базовые харак­
теристики системного файла, затем регулярно запускаете tripwire и проводите
проверку целостности, чтобы увидеть возможные изменения в файлах конфи­
гурации или приложениях.
-

О База данных АРТ еще одним способом проверить, подвергались ли програм­
мы изменениям, является использование команд АРТ для проверки достовер­
ности приложений и файлов конфигурации, установленных в системе. Обра­
щайтесь к гл. 2 для получения информации об использовании команд a pt и dpkg
для проверки содержимого установленных пакетов программ.
-

О Chkrootkit если вы подозреваете, что в систему проникли злоумышленники,
скачайте и соберите программу chkrootkit с сайта www. chkrootkit.org. Это помо­
жет обнаружить руткиты1, которые могли быть использованы для захвата ком­
пьютера. Мы рекомендуем запускать chkrootkit с LiveCD или после монтиро­
вания подозрительного диска в чистой системе.
-

Резюме
В то время как существует множество утилит для защиты Linux, первая линия обес­
печения безопасности начинается с защиты учетных записей пользователей и служб,
работающих в системе. Команды useradd, g roupadd и pa ssword являются стандартными
средствами для настройки учетных записей пользователей и групп.
Поскольку большинство взломов, происходящих извне, осуществляются зло­
умышленниками, получающими доступ к системам через общедоступные сети, то
настройка брандмауэров важна для любой системы, подключенной к Интернету.
Утилита iptaЬles предоставляет функции брандмауэра, встроенные в ядро Linux.
Программа Syslog следит за процессами, происходящими в системе. Она запи­
сывает информацИю практически обо всех действиях. С помощью пакетов про­
грамм logrotate и logwatch, установленных по умолчанию, можно легко управлять
файлами системного журнала и ежедневно проверять их.

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

П ри л ожен ие 1 .
И спол ьз о в а н ие
ред а кторо в vi и vi m
Хотя легкие в использовании графические редакторы (такие как gedit и kedit)
всегда доступны в Linux, большинство опытных пользователей все еще работают
в vi или Emacs при редактировании текстовых файлов. Помимо того, что vi и Emacs
работают из любого интерпретатора команд (графический интерфейс необязате­
лен), они имеют еще несколько преимуществ, например возможность работы в ре­
дакторе только с помощью клавиатуры и интеграция с удобными утилитами.
Кроме того, в отличие от графических текстовых редакторов, с редакторами, осно­
ванными на тексте, можно работать, имея подключение к Интернету на малой ско­
рости, например коммутируемый доступ или подключение через спутник.
Это приложение рассматривает функции редактора vi для базового редактиро­
вания текста, но также поможет вам научиться более сложным операциям с тек­
стом. Мы предпочли рассказать о vi, а не о Emacs, так как он более универсальный
и гибкий, а также потому, что горячие клавиши vi можно нажимать двумя руками.
Поскольку многие системы Linux вместо старого vi используют редактор vim
(Vi Improved

Перенаправляет стандартный вывод команды

cmd l

<

Перенаправляет стандартный ввод команды

cmd l

>>

Прикрепляет стандартный вывод команды в файл, не удаляя его текущего
содержимого

cmd l l cmd2

Связывает вывод одной команды и ввод другой

cmd &

запускает команду в фоновом режиме

cmd l && cmd2

запускает первую команду. Если получено нулевое значение, запускает
вторую команду

cmd l l l cmd2

запускает первую команду. Если не получено нулевое значение, запускает
вторую команду

cmd l ; cmd2

запускает первую команду и, когда ее выполнение завершается, запускает
вторую

Перем е нны е инте рп р етатора ко м ан д
Вы можете создать параметр (переменную), поставив $ перед цепочкой символов
(как в $НОМЕ). Переменные среды интерпретатора команд могут хранить информацию,
используемую самим интерпретатором, а также командами, которые вы запускаете
из него. Не все переменные среды будут наполнены по умолчанию. Некоторые пе­
ременные можно изменять (как оринтер по умолчанию $ P R I NTER или командную
строку в $PS1). Другие управляются интерпретатором команд (например, $0LDPWD).
В табл. П2.2 приводится список полезных переменных интерпретатора команд.
Таблица П2.2. Переменные интерпретатора команд
Переменная

Описание

BASH

Показывает путь к команде bash UЫп/Ьаsh)

BASH_COMMAND

Команда, выполняемая в текущий момент

BASH_VERSION

Версия Ьash

COLORS

Путь к файлам конфигурации цветов ls

COLUMNS

Ширина строки терминала (в символах)

319

Переменные интерпретатора команд

Переменная

Описание

DISPLAY

Обозначает Х-экран, в котором будут отображаться команды, эапущенные
иэ текущего интерпретатора команд (например, :0.0)

EUID

Идентификационный номер текущего пользователя. Основывается
на эаписи в /etr./passwd для вошедшего в систему пользователя

FCEDIТ

Определяет текстовый редактор, испольэующийся командой fc для
редактирования команд history. Редактор vi используется по умолчанию

GROUPS

Выводит список групп, в которые входит текущий пользователь

HISТCMD

Показывает текущий номер журнальной эаписи текущей команды

HISТFILE

Отображает местонахождение файла журнала (обычно находится в папке
$HOME/.bash_history)

HISТFILESIZE

Общее количество записей в журнале для хранения ( 1000 по умолчанию).
После достижения этого числа старые команды не учитываются

HISTCMD

Номер текущей команды в файле журнала

НОМЕ

Местонахождение домашней директории текущего пользователя. Команда

cd беэ параметров возвращает в домашний каталог

HOSТNAME

Имя хост-уэла текущей машины

НОSТТУРЕ

Содержит архитектуру компьютера, на которой работает Liпux (i386, i486,
i586, i686, х86_64, ррс или ррс64)

LESSOPEN

Приписана команде, конвертирующей содержание файла, отличное
от чистого текста (рисунки, RPM, ZIР-файлы и т. д.), для работы
с кома ндой less

UNES

Устанавливает количество строк в текущем терминале

LOGNAME

Содержит имя текущего пользователя

LS_COLORS

Приписывает определенные цвета расширениям файлов; в результате
команда ls их отображает, когда сталкивается с ними

МАСНТУРЕ

Отображает информацию об архитектуре машины, компании
и операционной системе (например, i686-redhat-liпux-gпu)

MAIL

Обозначает местонахождение файла почтового ящика (обычно это имя
пользователя в пaпкe/var/spool/mail)

MAILCHECK

П роверяет почту с указанными интервалами (60 по умолчанию)

OLDPWD

Папка, которая являлась рабочей до смены на текущую директорию

ОSТУРЕ

Имя, обозначающее текущую операционную систему (как liпux или liпux-gпu)

РАТН

Список папок, разделенных двоеточиями, используемый для нахождения
источника набираемых команд (/Ып, /usr/blп и $НОМЕ/Ып обычно входят
в РАТН)

PPID

Идентификационный номер процесса команды, запустившей этот
и нтерпретатор команд

PRINТER

Уста новить принтер, применяемый по умолчанию, который используется
такими командами, как lpr и lpq

Продолжение .Р

320

Приложение 2. Специальные символы и переменные интерпретатора команд
Таблица П2.2 (продолжение)

Переменмая

Оnисание

РRОМРТ COMMAND

Установить имя команды для запуска перед появлением приглашения
командного процессора . Например, РRОМРТ COMMAND Is выводит
список команд в текущей папке перед отображением командной
строки

_

_

=

PSl

Устанавливает приглашение командного процессора . Оно может
включать в себя даты, время, имена пользователей, имя хост-уэла
и т. д. Дополнительные приглашения командного процессара могут быть
установлены с помощью PS2, РSЗ и т. д.

PWD

Эта папка является текущей

RANDOM

Данная переменная генерирует случайное число от О до 32 767

SECONDS

Количество секунд с начала работы интерпретатора команд

SH ELL

Содержит полный путь текущего интерпретатора команд

SHELLOPТS

Вывести список включенных параметров интерпретатора команд

П ри ложен ие 3 .
П олуче н ие и нформа ц и и
с помощ ью ф а й л ово й
систем ы

/ proc

Файловая система /proc изначально предназначалась для хранения информации,
используемой запущенными процессами. В конце концов она стала главным ме­
стом хранения информации, используемой ядром Linux. Несмотря на появление
/sys для вывода более упорядоченной информации о состоянии ядра, многие ути­
литы Linux все еще собирают и представляют информацию о работающей системе
с помощью /proc.
Если вы не любите выполнять лишние действия, то можете не использовать
улилиты, которые обращаются к файлам /proc и иногда проводят записи в jproc.
Просматривая jproc, можно узнать текущее состояние процессов, устройств, под­
систем ядра и других атрибутов Linux.

П росмотр ин формации
Просмотр информации в файлах папки / proc можно осуществить с помощью про­
стой команды cat. В папке /proc существуют отдельные директории для каждого
работающего процесса (названные в соответствии с их идентификаторами), кото­
рые содержат информацию о процессе. Кроме того, в ней хранятся файлы, содер­
жащие данные о некоторых других свойствах системы, например о процессоре,
состоянии оперативной памяти, версиях программ, разделов дисков и т. д.
Следующие примеры показывают, какую информацию можно получить из
папки /p roc в системе Linux:
$ cat /proc/cmdl i ne
Показывае т параме тры . переданные ядру при з а груз ке
root=UU I D=db2dac48 - a62e - 4dbe - 9529 - e88a 57Ы5bac ro qui et spl a s h
$ cat /proc/cpui nfo
Показывает информацию о процессаре
Proces sor : О
vendor i d : Genu i ne l ntel cpu fami l y : б
model
8
Penti um I I I C Coppermi ne )
model name
steppi ng
3
cpu MHz
648 . 045
256 КВ
cache s i ze

322

Приложение 3. Получ ение информации с помощью файловой системы /proc

В этом примере скорость может быть намного ниже, чем реальная, если запущен
оптимизатор процессора, например cpuspeed.
$ cat /proc/devi ces

Отображает существующие устройс тва посимволь ного
ввода -вывода и блочные устройства

Cha racter dev i ces :
1 mem
4 /dev / v c / 0
4 tty
4 ttys
5 /dev/tty
Bl ock devi ces :
1 ramd i s k
8 sd
9 md
Отображае т диски . разделы и ста тистику по ним
$ cat /proc/di skstats
1
О ramO О О О О О О О О О О О
1 ram1 О О О О О О О О О О О
1

8
47790770
8
8
7

О sda 2228445 1032474 68692149 216727 10 1098740 4003143
101074392 о 15385988 122799055
1 sda1 330077 13060510 188002 8443280
1 sda2 1491 1759 50 162
о 1 оор о о о а о о о о о о о о

В только что показаинам выводе команды di skstats можно увидеть псевдодиск
( ramO, ram1 и т. д.) и циклические устройства ( l oopO, l oop1 и т. д.). Что касается раз­
делов жестких дисков, то пример отображает статистику по целому жесткому
диску ( sda ) и каждому разделу ( sda 1 , sda2 и т. д.).
Поле 1 1 информации о жестком диске отображает (слева направо): общее ко­
личество чтений; количество объединенных чтений; прочитанных секторов; мил­
лисекунд, затрачиваемых каждым чтением; завершенных записей; объединенных
записей; секторов, в которые производилась запись; миллисекунд, затрачиваемых
на запись; текущих запросов ввода-вывода; миллисекунд, затраченных на ввод­
вывод; среднее количество миллисекунд, затраченных н� ввод-вывод. Поля для
определенных разделов показывают (слева направо): количество заданных чтений;
прочитанных секторов; заданных записей; секторов, в которых произведена
запись.
$ cat /proc/ fi l esystems
nodev
sys fs
nodev

Вывес ти список поддерживаемых ядром файловых сис тем
node v означае т . ч то данный тип не исполь зуется
ни одним устройством

rootfs
ext3

i so9660

ехtЗ

исполь зуе тся на смонтированнон
блочном устройс тве
i so9660 исполь зуется на смон тированнон
блочном устройс тве

323

Просмотр информации

$ cat /proc/i nterrupts
Просмотр присвоенных IRQ каналов
CPUO
XT- P I C - XT
19838090 1
t i mer
о:
XT- P I C - XT
28189
i 8042
1:
XT- P I C - XT
2:
cascade
о
XT- P I C - XT
6:
3770197
Ensoni q Aud i oPC I
XT- P I C - XT
7:
660
pa rportO
$ cat /proc/ i omem
Показа ть адреса физ ической памя ти
00000000 - 0009fbff : System RАМ
00000000 - 00000000 : Cra s h kernel
0009fc00 - 0009ffff : reserved
OOOaOOOO - OOObffff : V i deo RдМ a rea
000c0000 - 000c7 fff : Vi deo ROM
000c8000 - 000c8fff Adapter ROM
OOOfOOOO - OOO fffff : System ROM
0 0 1 00000 - 0febffff : System RАМ
Пока з а ть адреса вир туаль но q памя ти
$ cat /proc/i oports
0000 - 00 1 f : dma 1
0020 - 0021 pi c 1
0040 - 0 043 : t i merO
0050 - 0053 : t i mer1
0060 - 006f : keyboa rd
0070 - 0077 : rtc
0080 - 008f : dma page reg
00а0 - 00а1 : pi c2
OOcO - OOdf : dma 2
OOfO - OOff : fpu

$ cat /proc/l oadavg
1 . 77 0 . 56 0 . 19 2/247 1869
$ cat /proc/memi nfo
MemTotal : 482992 kB
MemFree : 25616 kB
Buffers : 12204 kB
Cached :
64132
1 17472
SwapCached :
321344
Acti ve :
I nacti ve : 93168 kB
Hi ghTota l :
О kB
Hi ghFree :
LowTota l : 482992 kB

$ cat /proc/mi sc
229 fuse
63 dev i ce - ma pper
175 agpga rt
144 nvram

Пока з а ть 1 - . 5- и 1 5-минутные средние загруз ки .
запущенные процессы/общий и наивысший PID
Показ а ть дос тупную опера тивную памя ть
и памя ть подкачки

kB
kB
kB
О kB

Показа ть имя /младший номер устройств .
зарегистрированных главным устройс твом misc (1 0 )

324

Приложение З. Получение информации с помощью файловой системы /proc

$ cat /proc/modul es
Показ а ть загруженные модули . размер памя ти .
n l s_utf8 6209 1 - L i ve Oxd0c59000 з агруженные копии программы . состояние
за груженных зависимос тей и памя ть яАра
c i fs 213301 О - L i ve Oxd0e3b000
nfs 226861 О - L i ve Oxd0e020 0 0
n f s d 208689 17 - L 1 ve Oxd0d8a 000
expo rtfs 9537 1 nfsd . L i ve OxdOc fbO O O
l ockd 62409 3 nfs . n fsd . L i ve Oxd0d45000
nfs a c l 7617 2 nfs . nfsd . Li ve Oxd0c56000
fus � 45909 2 - L i ve Oxd0d2400 0
v fat 16193 О - L i ve Oxd0cf6000
$ cat /proc/mounts

Показа ть информацию о смонтированных
локаль ных/удаленных файловых системах

rootfs 1 rootfs rw О О
nопе / sys sysfs rw . nosui d . nodev . noexec О О поnе / p roc proc rw . nosui d . nodev . noexec
О О udev /dev tmpfs rw О О
/dev/d i s k / by - uui d/db2dac48 - a 62e - 4dbe - 9529 - e88a57Ы5bac 1 ext3 rw . data=
o rdered О О
/ d e v / d i s k / by - u u i d / d b2dac4 B - a 62e - 4dbe - 9529 - e88a 5 7 Ы 5 b a c / dev / . s t a t i c / dev ext3
rw . data=ordered О О
tmpfs / v a r / run tmpfs rw . nosui d . nodev . noexec О О
tmpfs / va r / l ock tmpfs rw . nosu i d . nodev . noexec О О
tmpfs / l i Ь/modul es / 2 . 6 . 20 - 16 - generi c / vol at i l e tmpfs rw О О
tmpfs /dev/ s hm tmpfs rw О О
devpts /dev / pts devpts rw О О
usbfs /dev/bus / us Ы . usbfs usbfs rw О О
udev / proc/bus/usb tmpfs rw О О
us bfs / proc / bus / u s Ы . usbfs usbfs rw О О
fusectl / sys / fs / fuse/ connect i ons fusect l rw О О tmpfs / v a r / run tmpfs
rw . nos u i d . nodev . noexec О О tmpfs / va r / l ock tmpfs rw . nosu i d . nodev . noexec О О
/dev /di s k / by - uui d /4f419cb8 - a 920 - 4b6e - a8fd - b3946f9bf644 / boot ext3
rw . data=o rde red О О
/dev/d i s k / by - uui d/91ae7a92 - ca 5c - 4ef0 - 9729- ba0cdcf2a 07f /home2 ext3
rw . data�ordered О О
nfsd / proc / fs / n fsd nfsd rw О О
rpc_pi pefs / v a r/ l i Ь/nfs/ rpc_pi pefs rpc_pi pefs rw О О
bi n fmt_mi sc / proc / sys / fs / b i nfmt_mi sc bi nfmt_mi sc rw О О
$ cat /proc/part i t i ons
Показ а ть смон тированные локаль ные разделы
maj o r
mi nor #Ы ocks
name
8
О
400317 12
sda
8
1
200781
sda 1
8
2
10241437
sda2
8
3
6160927
sda3
.

$ cat /proc/mdstat

Если исполь зуе тся программное обеспечение RA ID .
показа ть ста тус RA ID

Persona l i ti es : [ ra i d 1 ]
read a head 1024 sectors
Event : 1
mdO : act i ve ra i d 1 sdЬ1 [ 1 ] sda2 [ 0 ]
69738048 Ы ocks [ 2 / 2 ] [ UU J
unused devi ces :

325

Изменение информации

Файл /proc/mdstat содержит детальную информацию о положении программ­
ных устройств RAID, если вы их устанавливали. В этом примере mdO это RA I D1
(зеркало), составленный из разделов /dev/ sdЫ и /dev / s d a 1 . В этой строке присут­
ствует буква U для каждого рабочего RАI D-устройства. Если вы потеряете диск,
вывод будет выглядеть как [ U_] .
-

$ cat /proc/stat
Отобраз и ть с та тисти� ядра с момента запуска сис темы
cpu 1559592 1488475 7 1 0279 218584583 1446866 5486 167 08
cpuO 1559592 1488475 7 1 0279 218584583 1446866 5486 16708
i ntr 215956694 200 097282 28242 О 1 3 О 3770 197 660 1 1 О 37 53340 . . .
ctxt 281917622
bt i me 1 181950070 processes 519308 procs_runn i ng 1 procs_Ьl ocked О
Файл / proc/ stat содержит статистику активности процессов и системного про­
цессора. Строка cpu отображает общее количество всех процессоров, в то время как
отдельные строки для каждого процессара ( cpuO, cpu1 и т. д.) показывают статисти­
ку по каждому процессору на компьютере. Есть семь полей (слева направо) инфор­
мации о процессоре: количество обычных процессов, выполняемых в режиме поль­
зователя; niсеd-процессы, запущенные в режиме пользователя; процессы ядра;
свободные процессы; iowait-пpoцeccы (ожидающие ввода-вывода для завершения);
прерванные службы ( I RQ); программы обслуживания I RQ.
$ cat /proc/swaps
Отобраз и ть информацию о размере файла подкачки
Fi l ename Туре Si ze Used Pri o r i ty
/dev /sda2 pa rti t i on 1020088 201 124 - 1
$ cat /proc/uptime
Секунды с момен та з агруз ки сис темы/общее
количес тво секунд прос тоя
2300251 . 03 2261855 . 3 1
$ cat /proc/vers i on Вывести версию ядра и соо тветс твующего конпиля тора
Li nux vers i on 2 . 6 . 20 - 16 - generi c ( root@te rranova ) ( gcc vers i on 4 . 1 . 2 ( Ubuntu
4 . 1 . 2 - 0ubuntu4 ) ) #2 SMP Fri Aug 31 0 0 : 55 : 27 UTC 2007

И зме н е ни е ин формации
В некоторых версиях Linux определенные значения в папке / proc / sys могут быть
изменены в процессе работы системы. Команда sysct l
это наиболее удачный
метод изменения информации / proc / sys. Для окончательного изменения этих на­
строек нужно добавить записи в файл /etc/sysctl . conf. Вот несколько примеров
команды sysct l :
-

$ sudo sysctl - А 1 l ess
Отобраз и ть все линамические параме тры ядра
$ sudo sysctl -w net . i pv4 . i p_forward=l Включить перенаправление паке тов IPV4
Обращайтесь к руководствам sysct l и sysct l . conf, а также к гл. 1 О для получения
более подробной информации.

Алф а ви т н ы й у ка з а тел ь
А
АIFF-файлы
кодирование в формат FLAC 134
кодирование в формат W АV 134
конвертирование в формат
OGG 132

atrm, команда
удаление задачи из списка
очередности 207
aumix, команда
настройки аудиоканалов 1 3 1
awk, команда 126
извлечение столбцов из текста 126

проигрыванне музыки 1 29
alias, команда 78
алиасы
определение для командного
процессара 78
отображение 78
установка 78

разделитель, изменение 1 26

в
badЬlocks, команда 1 60
безопасное тестирование на чтение/
запись 1 6 1
контроль выполнения 1 6 1

ALSA ( Advanced Linux Sound
Architecture) 1 30
alsamixer, команда
управление уровнем звука 130
apt, команда
как инструмент безопасности 309
редактор JОЕ, установка 1 1 2
агр, команда 250
кэш АRР
добавление статичных записей 250
просмотр 250
кэш ARP, удаление записи 250

несколько тестов 1 6 1
особенность 1 6 1
поврежденные блоки, поиск 160
bash ( Bourne Again Shell) 73
bash, команда, открытие командной
консоли 80
Ьatch, команда, запуск команд 206
bg, команда, управление процессами 203
BIOS (базовая система ввода/вывода)
процессы загрузки 223
bzip2, команда
сжатие 1 76

разрешения имен, отключение 250
aгping, команда
IР-адрес, проверка использования 250

с

aspell

cal, команда

команда 1 14
пакет 1 1 2
at, команда
автоматический запуск команд 206
atq, команда
проверка очередности установленных
задач 206

отображение календаря 220
case, команда
проверка переменных 88
cat, команда
ASCII -кодировка, извлечение
текста 1 2 2
информация о процессаре 2 1 6, 32 1

327

Ал фавитный указатель

проверка одного файла 1 08

создание эскизов 140

текст, замена 122
текстовые файлы,
конвертирование 127
просмотр 1 1 7
содержимое 1 24
CDDA (Compact Disc Digital Audio) 132
cdparanoia, команда
CD DA, проверка совместимости 1 32
оцифровка музыки 132
cdrecord, команда 184, 1 87
мультисессионные CD/DVD,
запись 1 89
образы, запись на компакт-диски 188
приводы, поддержка записи 1 88
chage, команда
просмотр сроков действия паралей 300
chattr, команда

специальные эффекты 1 40
форматы файлов, конвертирование 1 39
ер, команда, копирование файлов 1 00, 1 69

crontab, �оманда

параметры 207
переанальный файл crontab,
создание 207

CUPS, система печати
туннелирование 279
curl, команда 259
FТР-сервер, просмотр каталога jpubj 260
имя пользователяjпароль,
добавление 260
однократная передача файлов 260
cut, команда
разделитель столбцов, добавление 126
столбцы, просмотр 1 26

атрибуты файлов, изменение 102
chgrp, команда
права собственности, изменение 98
chmod, команда
область подкачки, создание в виде
файла 154
права доступа, закрытие 1 54
права доступа, изменение 95
сценарий командного процессора,
исполняемый 85
chown, команда
права собственности, изменение 98
chsh, команда
информация об учетной записи,
изменение 298
clockdiff, команда
системные часы, проверка времени 2 19
СОМ 1
настройки, просмотр 245

D
date, команда 2 1 9
дата и время, изменение 22·1
дата и время, отображение 220
Date and Time Settings (Настройка даты
и времени) 220
dd, команда
ISО-образ, копирование 1 0 1
данные, копирование 1 0 1
области подкачки, создание в виде
файла 1 54
особенности 1 0 1
пустой файл-образ диска, создание 1 5 1
раздел I D Е-диска, копирование 1 0 1
резервное копирование с о сжатием 1 0 1
df, команда
LVМ -том, монтирование 1 69

добавление текста 1 39
изменение размера 139
пакеты, конвертирование 1 4 1

данные о файловых системах,
ограничение объема 1 65
объем дискового пространства,
проверка 1 69
объем файлов inode, проверка 1 64
смонтированные файловые системы,
отчет 1 64

поворот 139

тип файловой системы, добавление 165

подключение к устройству Cisco 246
convert, команда
изображения

328
diff, команда

Алфавитн ый указатель

DVD

объединение выхода двух файлов 125

ISО-образ, копирование 102

сравнение файлов 124

объем 188
приложения GUI 184

dig, команда

резервное копирование 1 73

IР-адрес хост-компьютера,
просмотр 248

запись образов 187, 188

запрос

мулътисессия 189

к блоку иреобразования имен 247

поддержка записи приводом,
проверка 188

обратный, поиск информации о DNS
по IР-адресу 248
о типе записи 247
рекурсивный, отслеживание 248
имя в DNS-cepвepe, поиск 247
dirs, команда, управление порядком
каталогов 1 00
disown, команда
запущенные процессы
отделение от консоли 204
управление 204
dmesg, команда
содержимое кольцевого буфера ядра,
отображение 228
dmidecode, команда, информация об
устройствах 23 1
DNS ( Domain Name Service)
серверы, запросы 247
dрkg, команда
проrраммные пакеты
список, разбиение 1 19
dstat, команда, информация о загрузке
процессара 2 1 5
du, команда
виртуальная файловая система,
проверка размера 1 5 1
исключение файлов и з поиска 165
несколько каталогов, выбор 1 65
объем дискового пространства,
проверка 165
система прав пользователей,
обход 1 65
уровни дерева каталогов, определение
количества 1 66
dump, команда, дамп файловой
системы 1 03

Е
e2fsck, команда, проверка файловой
системы 170
e2label, команда
метки раздела
назначение 149
просмотр 149
echo, команда
журнал bash, количество команд 73
eject, команда
CD, размонтирование и извлечение
из привода 1 60
elinkskeys, команда, настройки
браузера 257
else, оператор, тестирование имени
файла 86
env, команда, просмотр переменных
среды 84
ethtool, команда
автоматическое согласование,
отключение 237
драйвер сетевой карты,
информация 235
настройки NIC
изменение 235
просмотр 234
синтаксис 234
статистика NIC, просмотр 235
ethX, беспроводной интерфейс 242
export, команда, наследование 84
exportfs, команда
экспортированные общие папки,
загрузка 264

329

Алфавитный указатель

F
fc, команда, просмотр журнала
bash 74
fdisk, команда 145
параметры 147
работа с конкретным диском 146
разделы жесткого диска
как разделы подкачки 1 47
просмотр информации 146
создание 147
fg, команда 191
fg, команда, управление запущенными
процессами 203
file, команда
содержимое файла, определение 9 1
тип файла, определение 90
find, команда 1 04, 136
временные метки 1 05
каталоги, поиск 105
критерий поиска,
инвертирование 106
недоступные каталоги,
исключение 105
параметр ехес, действие
на файлы 1 06
регулярные выражения 105
файлы определенного размера,
поиск 106
чувствительность к регистру 105
findfs, команда, поиск раздела 150
findsmb, команда, SМВ-хосты,
сканирование 267
fingeг, команда, изменение учетной
записи 298
flac, команда 134
конвертирование
AIFF в FLAC 134
WAV в FLAC 134
уровень сжатия, увеличение 134
Flаsh-носители, частные ключи 283
for, оператор 88
free, команда, использование
памяти 2 1 0

fsck, команда 1 50, 1 56
параметры 1 62
решение проблем 1 62
файловая система
ext3, проверка 1 6 1
файловая система, проверка 1 60
fuser, команда 200
процессы
использующие открытые файлы,
просмотр 200
уничтожение 20 1
fusermount, команда
удаленный каталог, демонтирование 270

G
gimp, команда
запущенные процессы в фоновом
режиме 203
GNOME, среда
удаленный рабочий стол, просмотр
через VCN 292
grep, команда 1 19
вывод имен файлов, отключение 1 20
конкретные строки, поиск 120
нечувствительность к регистру 1 20
результаты поиска, разные цвета 1 20
рекурсивный поиск 120
строки, не содержащие указанное
сочетание 120
grоuраdd, команда, добавление групп
пользователей 30 1
groupdel, команда, удаление групп
пользователей 30 1
groupmod, команда, изменение имени
или ID 30 1
groups, команда, просмотр групп
пользователей 296
growisofs, команда
доцолнительные параметры записи 189
мультисессионная запись 189
образ DVD, запись 189
gunzip, команда, распаковка
архивов 1 75, 177

ээо
gvim, команда, запуск редактора vim 1 1 6
gzip, команда
вместе с командной tar 17 5
сжатие 1 76

Алфавитн ый указатель

ifup/ifdown, команды
включение/отключение сетевых
интерфейсов 240
init, команда
запуск и остановка процессов 226

н
HAL ( Hardware Abstraction Layer) 156
halt, команда
особенности 228
преимущество 228
hdparm, команда
информация о жестком диске 231
особенности 23 1
head, команда, просмотр файла с ero
начала 1 17
host, команда, обратный
DNS-зaпpoc 248
hostname, команда 248
временное имя хоста, установка 248
имя хоста локального компьютера,
просмотр 248
локальное имя хоста для запуска,
установка 248
hwclock, команда
аппаратное время
определение 222
синхронизация с системным 222
установка 2 1 9, 2 2 1
местное время, просмотр 222
системное время, сброс 222

уровень выполнения
запуск 224
изменение 226
iostat, команда
определение узких мест 2 1 7
отчет о б использовании процессора 2 14
установка 2 1 О
ip, команда 238
информация о сетевом интерфейсе 240
маршрутизация, просмот,Р
информации 252
маршруты, добавление/удаление 253
сведения об использовании объекта 24 1
статичные записи ARP, добавление
в кэш 250
шлюз по умолчанию, проверка 249
IР-адреса
Samba, переопределение 269
информация о DNS, обратный
запрос 248
используемые, запрос 250
подключение к шлюзу, проверка 249
преобраэование имен 247
просмотр вместо хост-имен 252
разрешение перенаправления 306
расчет маски подсети 24 1
хост-компьютеров, просмотр 248

1
ices, клиент для стриминrа музыки 1 35
id, команда, информация
о пользователях 302
identify, команда, информация
об изображении 138
ifjthen, операторы, тестирование имен
файлов 86
ifconfig, кoмaндa 238
адресjстатус Еthеmеt-интерфейса ethO,
просмотр 240
состояние сетевых интерфейсов,
проверка 239

ipcalc, команда
маска подсети, расчет с помощью CIDR
IР-адреса 241
iptaЬles, команда
nаt-таблица, просмотр 305
информация о брандмауэре 305
перенаправление пакетов службы 306
правила
. изменение 306
остановка 305
список текущих правил, просмотр 304
таблица фильтров, просмотр 304

331

Алфав итн ый указател ь

IRC (Internet Relay Chat) 270
freenode-cepвep, подключение 2 7 1
I RС-канал, подключение 2 7 1
irssi, установка и запуск 27 1
пакет программ xchat 270
isoinfo, команда, информация заголовка
образа 187
iwconfig, команда

текущая директория
проверка 261
просмотр 261
lftpget, команда, неинтерактивные
сессии 262
ln, команда
создание жестких и символьных
ссылок 93, 99

беспроводные сетевые карты,
поиск 242

locate, команда

настройки беспроводного интерфейса,
изменение 243

logger, команда

]
jobs, команда, управление фоновыми
процессами 203

к
KDE
К3Ь, приложение 184
текстовый редактор 1 1 6

1

поиск файлов 1 03
отправление сообщений в журнал
syslogd 308
losetup, команда
состояние петлевых устройств
демонтирование 1 59
просмотр 1 59
ls, команда
выводимые данные в качестве
параметров 77
длинные списки файлов и ката,логов,
отображение 1 07
именованные каналы, создание 94
каталоги, идентификация 92

L
larne, команда
конвертирование файлов
в формат МР3 134
теги, добавление
в МР3-файл 134
last, команда, проверка имени
пользователя 302
less, команда
вопросы безопасности 8 1 , 82
прокрутка страниц 1 18
lftp, команда 260
FТР-сервер, подключение 260
загрузка в фоновом режиме 261
загрузка файлов на сервер 262
закрытие сессии 262
локальная директория

перенаправление данных 75
типы файлов, различное отображение 107
файлы устройств, просмотр 93
lsattr, команда, просмотр атрибутов
файла 102
lsrnod, команда
имена загружаемых модулей,
просмотр 229
lsof, команда, поиск открытых файлов
и каталогов 1 60
lspci, команда
беспроводные карты, поиск 242
информация об устройствах PCI 230
lvcreate, команда, создание
LVМ-раздела 1 68
lvrernove, команда

новая директория, изменение 262

удаление логического LVM -тома из
группы томов 1 7 1
lvresize, команда, изменение размера
LVМ-тома 170

особенности 261

lzop, команда, сжатие 176

изменение 261
создание на сервере 262

332
м
mail, команда 272
интерактивное использование 272
примеры 272
статус сообщений 273
mdadm, команда
управление устройствами
softraid 1 64

Ал фавитный ука зател ь

параметры монтирования 1 58
петлевое монтирование 1 59
способы монтирования 1 58
тип файловой системы для
монтирования,
определение 157
файловые системы,
просмотр 157

mdadm, команда, проверка устройств
softraid 1 63

N

minicom, команда 246

netstat, команда

настройка модема 246

NI С-статистика

обращение к модему 246

обновление 237

особенности 247

просмотр 237

справочная информация 247
mkdir, команда
каталоги, создание 92
точки монтирования,
создание 1 5 1
mkfifo, команда, создание именованного
канала 94
mkfs, команды 150
метки, добавление в раздел 1 50
файловай система ext3, создание
на LVМ-разделе 1 69
файловые системы, создание 1 50
mkinitrd, команда, исправление
псевдодиска 225
mkisofs, команда
ISО-образы, создание 184
несколько источников, добавление
в образ 1 85
mknod, команда, создание файла
устройства 94
mkpartfs, команда, особенности
использования 149
mkswap, команда
поврежденные блоки1 проверка 1 54
раздел подкачки, создание 1 54
mount, команда 156
метки и имена разделов,
отображение 1 57
метки разделов, просмотр 157
параметры 1 56, 1 58

ТСР-подключения, 'п росмотр 253
активные U D Р-подключения,
просмотр 253
информация о демонах, связанных
с портом ТСР 254
пакеты, пересылаемые между
протоколами ТСР и U D P 253
сервер icecast, проверка запуска 135
nice, команда 191
запущенные процессы, установка
приоритетон 202
значение параметра nice
изменение 202
определение 202
особенности 202
nmap, команда 254
получение полной
информации 254
сканирование
всей сети 254
портов 255
хостов, полное 254
nmЬlookup, команда, идентификация
I Р-адреса 269
nоhuр, команда, доступность сигнала
hang-up 206
ntpdate, команда
NTP, настройка времени
системы 223
ntpd как замена 223

333

Алфавитн ый указател ь

о

play, команды 1 28

оd, команда
символы
нулевые 1 0 1
специальные 1 27
oggenc, команда
конвертирование файлов
с компакт-диска 133
ogginfo, команда
просмотр заголовка ОGG-файла 1 33
OpenSSH

доступные аудиоформаты и эффекты,
просмотр 1 29
музыкальные файлы,
проигрыванне 1 28
рорd, команда
добавление/удаление каталогов 99
управление порядком отображения
каталогов в стеке 100
ps, команда 1 9 1 , 192
запущенные процессы
иерарJ�;ический порядок 194

команды 180

индивидуальный формат
отображения 197

резервное копирование через сеть 1 79
функции 180
OSS (Open Souгce Sound System) 130

р
рае, метка, параметры виртуальной среды
Xen 2 1 6
раrtеd, команда 145
интерактивное использование 148
особенности 149
разделы диска
изменение 148
изменение размеров 149
просмотр 148
passwd, команда 298
блокировка/разблокировка учетных
записей 299
пароли

столбцы вывода 195
текущего пользователя,
просмотр 192
каждый выполняемый процесс,
отображение 193
текстовые файлы, постраничный
просмотр 1 1 7
pstree, команда, отображение дерева
процессов 195
pushd, команда
добавление/удаление каталогов 99
управление порядком отображения
каталогов в стеке 1 00
pwd, команда
каталоги, связанные символьными
ссылками, просмотр 99
рабочий каталог, проверка 98

·

добавление 296
обычные пользователи,
изменение 299
суперпользователи, изменение 299
суперпользователи, установка 80
управление сроком действия 299
patch, коr:.анда, добавление заплаток 125
pgrep, команда 199
поиск по имени команды 199
поиск процесса 1 9 1 , 199
процессы конкретного пользователя 200
ping, команда, проверка IР-соединения 249

R
RАI D-диски 1 63
3ware Disk Manager (3dm2),
использование 1 64
настройка 1 64
устройства softraid
проверка 1 63
управление 1 64
функции 163
rdesktop, команда
подключение к удаленному рабочему
столу Windows 288

334
reboot, команда
особенность 228
преимущества 228
renice, команда 1 9 1 , 208
значение параметра nice,
изменение 202
приоритет процессов,
изменение 20 1
приоритеты процессов,
изменение 1 99
resize, команда, изменение размера
раздела диска 149
resize2fs, команда
изменение размера LVM -тома 170
route, команда
локальная таблица маршрутизации,
отображение 252
маршрут, удаление 252
новый маршрут, добавление 252
таблица маршрутизации ядра 252
шлюз по умолчанию, добавление 252
rsnapshot, команда
копии файловой системы, создание 1 80
установка 180
rsync, команда 1 8 1
зеркало каталога 1 8 1
использование жестких ссылок 1 82
резервное копирование 1 79, 1 8 1
непрерывное пошаговое 1 8 1
runlevel, команда, просмотр уровня
выполнения 226

Алфав итн ы й указател ь

службы, просмотр 267
установка 266
хает-компьютер SMB 267, 268
scp, команда
особенности 263
передача файлов 262
права доступа и временные метки,
сохранение 263
рекурсивные копии 263
screen
команда
активные окна, просмотр 284
запуск утилиты 284
имена сессий 286
общий доступ к сессиям 286
отключение окна от сессии 285
мультиплексор терминалов 284
отключение от сессии 285
сочетания клавиш
для управления 285
установка 284
функции 284
sdiff, команда, объединение двух
файлов 125
SELinux ( Security Enhanced Linux) 308
setserial, команда, последовательные
порты
информация 245
перераспределение 245
просмотр 245
sfdisk, команда
LVМ-разделы, просмотр 168

s

параметры 148

Samba 266

таблицы разбиения, копирование 148

Linuх-пользователь, добавление 267

sftp, команда, передача файлов 263

блокировка файлов, отображение 268

shutdovvn, кoмaндa

доступ к удаленным директориям 266

особенности 228

информация о соста�е сети 267

преимущества 228

конфигурационные файлы,
проверка 269
монтирование во время загрузки 156
монтирование общих ресурсов 268
подключение как к FTP 268

slabtop, команда
использование ядром оперативной
памяти 2 1 0
монтирование удаленной папки 270
slocate, команда, поиск файлов 103

335

Алфав итн ый указатель

sort, команда 1 2 1
сортировка
загруженные модули ядра 1 22

swapoff, команда, деактивация области
подкачки 154
swapon, команда 154
область подкачки

процессы по уровню использования
памяти 1 2 1

деактивация 1 54
использование 1 54

содержимое файла ил и результат
выполнения команды 1 2 1

файлы/раЗделы подкачки,
просмотр 1 54

spell, команда
проверка правописания в редакторе
nano 1 14

sysctl, команда
изменение информации jprocjsys 325

split, команда, разделение окон
в редакторе vi 3 1 1

параметры ядра
изменение 230

ssh, команда 279
аутентификация с использованием
открытого ключа 281
доступ к SSH через другой порт 279

просмотр 230

т

как прокси-сервер SOCKS 280

ТаЬ, клавиша, дополнение командной
строки 75

ключ по умолчанию, добавление 283

tar, команда 1 73

использование на VNC-cepвepe 29 1

папка ssh, создание 282

добавление файлов в архив 178

пара ключей, создание 282

объединение файлов 1 78

туннелирование 279

параметры 1 7 4

удаленные команды, предотвращение
выполнения 280

поведение в разных системах 17 4

удаленный вход в систему 279

распаковка файлов, сжатых с помощью
bzip2 176

хранящиеся ключи, удаление 284

содержимое архива, просмотр 1 78

частные ключи, сохранение 283

создание архивов и сжатие
информации 17 4

SSН-сервис 276
аутентификация с использованием
открытого ключа 281
использование вместе с VNC 291

с тире и без тире 1 7 4
удаление файлов из архивов 17 4, 1 79
tcpdump, команда, поиск пакетов 254

как прокси-сервер SOCKS 280

telnet, команда, интернет-протоколы 277

команды 276

testparm, команда

различные порты, доступ 279

значения по умолчанию, просмотр 269

туннелирование 279

конфигурационные файлы,
тестирование 269

удаленный вход в систему 279
установка 278
sudo, команда
командный процессор, права
суперпользователя 80
особенности 82
распределение прав 82
swapfs, команда, создание раздела
подкачки, 152

конфигурация Samba, просмотр 269
top, команда 1 9 1 , 197
журнал процессов, создание 198
запущенные процессы
влияние 199
непрерывный просмотр 197
информация о процессах,
фиксирование 198

336
используемая память, просмотр 2 10

Ал фавитный указател ь

umount, команда

параметры сортировки 198

виртуальная файловая

справочная информация 199

система 1 5 1

tг, команда 1 23

побочное размонтирование 1 60

Замена СИМВОЛОВ 1 23

том LVM, размонтирование 170

определение рядов символов 1 24

файловые системы, демонтирование 160

удаление символов 123

unalias, команда, удаление алиаса 79

tгacepath, команда, U D P
для отслеживания 252

uname, команда, отображение имени
ядра 228

tгaceгoute, команда

unison, команда

IСМ Р-пакеты, использование при
отележивании 2 5 1

автоматическая работа 183

установка другого порта 252

профиль, создание 1 83

хост-компьютеры, поиск проблем 25 1

резервное копирование в сети 1 79, 182

tsclient, команда
удаленный рабочий стол Windows,
подключение 287
tune2fs, команда

в режиме командной строки 183

учетные записи суперпользователей,
создание 1 83
UNIX
редактор

динамическая проверка 1 53

Emacs 1 1 2

файловая система

vi 1 1 1

изменение настроек 1 53
преобразование ext2 в ext3 1 53
проверк_а на основе интервалов 1 53
просмотр атрибутов 152

u
Ubuntu Linux

текстовые файлы, конвертирование
в DOS 1 27
until, команда 88
update, команда, включение/выключение
NТР-служб 227
updatedb, команда, обновление базы
данных 1 04

безопасность 294

uptime, команда, продолжительность
работы системы 2 19

запущенные процессы 1 9 1

useгadd, команда

звук 1 28

настройки по умолчанию,
изменение 295

изображения 1 38

новые пользователи, добавление 295

резервное копирование 173
сетевые подключения 233

useгmod , ко манда
учетные записи, изменение 297

сетевые ресурсы 256
текст 1 1 0
удаленное администрирование 276
управление системой 209
установка
проверка пароля 294
файловые системы 143
файлы 90

useгs, команда, проверка имен
пользователей 302

v
vgcгeate, команда, создание группы
томов 1 68

U D Р-подключения, просмотр 253

vgгemove, команда, удаление группы
LVМ-томов 1 7 1

umask, команда, просмотр прав доступа 97

vgs, команда, просмотр группы томов 168

337

Алфавитный указател ь

vi, команда
запуск VNC-cepвepa 290

микширование 137
объединение 1 37

запуск редактора vi 3 1 0
открытие файлов в редакторе v i 3 1 1
vimdiff, команда, сравнение файлов 1 25

wс, команда

visudo, команда, запуск редактора nano 82
vmstat, команда
использование памяти, постоянная
информация 2 1 0

wget, команда 258
FТР-серверы 258

параметры 2 1 2
скорость чтения/записи диска,
просмотр 2 1 7
статистика кэш-памяти ядра 2 1 3
VNC (Virtual Network Computing) 276
SSН-туннелирование 29 1
вопросы безопасности 291
запуск 290
команды 291
настройка сервера 290
пакет программVino 292

проигрывание 1 29
количество строк, слов, байт в файле,
отображение 1 2 1

загрузка
одной веб-страницы 258
с удаленного сервера 258
незавершенная закачка, продолжение 259
присвоение локальных имен 258
расширение HTM L, присоединение
к файлам 259
сайты
рекурсивное дублирование 259
удобная копия 259
whereis, команда
поиск

парали 290
установка 290
vncpasswd, команда, настройка
VNС-пароля 290
vncserver, команда, запуск
VNC-cepвepa 290

which, команда

vncviewer, команда
VNС-клиент, запуск 291

who, команда

volname, команда
ISО-образ, запись 187

установленные пакеты 76
файлы 1 06
поиск
установленные пакеты 77
файлы 106
текущий пользователь, информация 302
текущий пользователь, проверка
информации 302
whoami, команда
суперпользователь, подтверждение 8 1

w
watch, команда
NIС-статистика, вывод,
ориентированный на экран 237
наблюдение
за командами 79
за файлами 79
WАV-файлы
конвертирование в формат
AIFF 134
FLAC 134
МР3 134
конвертирование в формат OGG 1 32

Win-модемы 244
Windows
передача файлов, утилиты 264
разделы жесткого диска 147
текстовые файлы, конвертирование 127
wlanX, беспроводной интерфейс 242
wvdial, команда
модемный пул, использование 245
wvdialconf, команда
модемы, поиск 244
файл конфигурации модема,
создание 244

338
х

Алфавитный указатель

Безопасность 294

Х 1 1 -туннелирование 278
посредством демона SSHD 278
xargs, команда
в сочетании с командой ехес 106
перенаправ;Ление вывода данных 77
xchat, утилита 270
xhost, команда
запуск удаленных программ 289
XWindow System 288
Х-сервер/Х-клиент 288
возможности 288
подключение 289

FТР-клиенты 262
S U I D 97
�С. проблемы 291
биты закрепления 97
брандмауэры 303
вход пользователя в систему 294
парали 298
продвинутые утилиты 308
системные бинарные файлы,
замена 103
системный журнал 307
Беспроводные соединения 242
Network Configuration ( Конфигурация
сети) 242
беспроводная сетевая карта1 поиск 242
встроенные программы 242
драйверы и утилиты, ссылки 242

А

названия 242

Автоматическое согласование,
отключение/включение 237

настройки, изменение 243

Алиасы 78
определение для текущего сеанса
bash 78

режим

особенности в Ubuntu 78
удаление из текущей сесии bash 79
установка и просмотр 78
Алфавитный порядок при сортировке 1 2 1
Архивы 1 73
tar, команда 173
объединение файлов 1 78
просмотр содержимого 1 78
резервное копирование 1 73
результат сжатия 1 75
соэдание 1 73
файлы
добавление 178
удаление 1 79

&
База данных locate
обновление 1 04
Баунсер 27 1

проблемы с производительностью 243
Ad-Hoc 243
Managedjlnfrastructure 243
сетевое имяjдомен 243
Блоки
количество байт 1 0 1
поврежденные, поиск 1 60
Блочные устройства 93
Брандмауэры 303
nаt-таблица, просмотр 305
информация, просмотр 305
настройка 306
пакеты службы, перенаправление 306
перенаправление IP, разрешение 306
порты, перенаправление 306
правила
iptaЬles, остановка 305
изменение 306
сохранение 307
текущие, просмотр 304
иреобразование сетевого адреса
источника (SNAT) 306

339

Алфав итн ый указател ь

изменение размеров разделов 1 49

Браузеры

информация о разделах 146

elinks 256
клавиши управления 257

команды 145

параметры, добавление 257

копирование раздела I D Е-диска 1 0 1
копирование таблиц разбиения 1 48
метки файловых систем 149

г

особенности 1 0 1 , 149

Графические приложении

параметры команд 147

для записи CD/DVD 1 84

просмотр разделов диска 1 48

для изменения даты/времени 2 1 9

разделы Windows 147

для разбиения жесткого диска 145

резервное копирование первого
раздела 1 0 1

д

таблицы разбиения GU ID
(GPT) 145

Данные
копирование 1 0 1
Дата/время 2 1 9
аппаратные, просмотр 2 2 1
изменение

указание конкретного диска 146
файловая система, создание
на разделе 150
Журнал b;tsh 73
навигация 7 4

графические утилиты 220

просмотр 74

команды 220

реверсивный поиск 7 4
редактирование 7 4

по месяцам 220
сетевой протокол времени (NTP) 222

редактор ernacs 75

системные, просмотр 220

строки, поиск 74

Демонтированне
urnount, команда 1 60
компакт-диски, извлечение
из привода 1 60
петлевые устройства 1 59
удаленная папка 270

э
Загрузочная запись
копирование 1 02
монтирование 1 59
Загрузчик 223
Закладки

ж
Жесткие диски
IDE, формат имени 146
компакт-диски, оцифровка
музыки 131
поля информации,
типы/функции 322
просмотр и изменение
информации 231
разбиение 145
варианты 145
графические приложении 145
изменение разделов 1 49

FТР-сервер, расположение 261
Звук 1 28
ALSA, система по умолчанию 1 30
ОSS-модули, обзор 1 30
громкость, управление 1 3 1
информация о б аудиофайле,
отображение 137
каналы
включение/выключение 1 3 1
выделение 1 30
назначение входящими 1 3 1
микширование W АV -файлов 137

340
музыка

Ал фавитн ый указател ь

информация о драйвере 235

конвертирование 132

конфигурационные файлы 238

с компакт-дисков, оцифровка 1 3 1

настройки, просмотр 234

стриминг 1 35
настройки, изменение 1 3 1

статистика, просмотр 235
Каталоги 9 1

объединение W АV -файлов 1 37

добавление/удаление 99

проигрыванне музыки 1 28

исполняемые биты, установка 92

секунды звука, удаление
из ауднофайла 138

поиск 1 06
права доступа 94

списки воспроизведения,
создание 136

сжатие всех файлов 177

список доступных форматов,
просмотр 1 29
список эффектов, просмотр 1 29
типы iiроигрывателей 1 28

и
Идентификаторы накопителя 93
Изображения 1 38
добавление текста 1 39

символьные ссылки 99
создание 92, 95
управление порядком 100
функции 92
Клавиши управления курсором
для прокрутки 74, 1 1 8
Кодировка ASCII, извлечение
текста 122
Командная строка
браузер 256

изменение размеров 1 39

дополнение с помощью bash 75

изменение цветов 140
конвертирование в различные
форматы 1 39

загрузка файла с удаленного
веб-сервера 258

пакеты 1 4 1
поворот 1 39
получение информации 1 38
создание эскизов 140
эффект
сепии 140
спирали 1 40

к
Кавычки, одинарные обратные 77
Каналы
аудио, управление 1 30
именованные 90, 94
функции 94
чаты, комнаты общения 271
Kapты Ethernet 234

обратные кавычки, выполнение команд
по частям 77
Командный процессор
алиасы 78
добавление данных в файл 76
журнал bash 73
загрузочные файлы 72
наблюдение
за командами 79
за файлами 79
настройки 72
переменные 3 1 8
переменные среды 83
переназначение stdin/stdout 75
получение прав
суперпользователей 79
специальные символы 3 1 7
сценарии 84

МАС-адреса, отображение 240

добавление содержимого 85

адрес и статус, просмотр 240

запуск 85
команды 85

информация об интерфейсе 240

341

Ал фавитный указатель

комментарии 85

последовательные порты 245

операторы тестирования 86

протокол РРР 245

размещение в переменной РАТИ 85

сканирование 244

редактирование 85

телефонный номер, набор 245

файлы инициализации 72
функция дополнения командной
строки 75
Команды
для поиска 199
запущенные процессы 206
как исполняемые файлы 9 1
наблюдение 79
операции с журналом bash 73
стандартный ввод, направление 76
Комментарии
сценарии командного процессора 85

типы программноrо обеспечения 244

о
Окно терминала
браузер elinks 256
Оперативная память 21 О
графический режим 2 1 1
использование за указанный период 2 1 2
используемая, просмотр 2 1 О
необходимая, определение 2 1 1
Основной общий загрузчик (GRUB) 223
настройка 224

Компакт-диски

параметры загрузки 224

GUI-приложения 184
ID тома, важность 186
ISО-образы, копирование 102
образы, монтирование 1 59
объем 188
оцифровка музыки 1 3 1
размонтирование и извлечение из
привода 1 60

переустановка 225
Основной псевдодиск, исправление
неполадок 225

n
Пакеты
dircproxy 27 1
Пароли 298

м

FТР-сервер 258

Маска подсети
расчет с помощью CIDR
IР-адреса 241
Метки 149
диска 149
раздела 149
добавление 1 50
как критерий поиска 1 50
назначение 149
просмотр 149, 157
:Модемы 244
возможные проблемы 245
имя пользqвателя и пароль 245

для учетной записи
суперпользователя 80, 294
изменение 299
модемы 245
протокол VNC 291
срок действия 300
установка Linux 295
Переменные
интерпретатор команд 3 1 8
использование символа $ 3 1 8
операторы для тестирования 86
Переменные среды 83
bash, просмотр 84

конфигурационный файл,
создание 244

наследование 84
объединение со строкой 84

настройки, просмотр 246

операторы для тестирования 86

342
определение 83
отображение 83
правила именования 83
установка/сброс 84
Печать
отправка выводимых данных
на принтер 1 19
текстовые файлы 1 1 9
Пользователи 294
в системе, получение информации 302
вход в систему 294

Ал фавитный ука зател ь

удаление тома из группы 1 7 1
файловая система ext3, создание на
разделе 1 69
Протокол транспортного уровня (ТСР)
переадресация с помощью SSH 279
просмотр демонов, проелушивающих
порт 254
просмотр соединений 253
Протоколы
разрешения адресов (ARP) 250
записи, отображение 250
команды 250

группы

разрешение имен 250
статичные записи, добавление в кэш 250

добавление 301
изменение имени или
идентификационного
номера ( I D ) 30 1
создание 294
удаление 30 1

удаление записей из кэша 250
Процессор
контроль
отчет об использовании 2 1 4
метки как поддерживаемые
функции 2 1 6
управление 2 1 4

имена
по умолчанию, запрет 294
пароли, добавление 296
учетные записи 295
добавление 295
изменение 297

информация о загрузке 2 1 5
Процессы, запущенные 1 9 1
активные, непрерывный просмотр 197
в фоновомjприоритетном режимах 203
вывод по столбцам 195
завершение 199, 204
иерархия, просмотр 194

параметры по умолчанию,
изменение 296
получение гооt-привилегий 82
удаление 298

индивидуальный формат
отображения 197
отображение 1 9 1

Права доступа 94
umask, команда 97
закрытие доступа к файлу 1 54

поиск 199

изменение 95

приоритет

права собственности, изменение 98

управление 199
установка 202

символы для настройки 95
Программа управления логическими
томами ( LVM) 1 66
команды 1 66

расписание запуска 206
сигнал hang-up, доступность 206
сигналы, отправление 204

монтирование тома 1 69
объем тома
увеличение 1 70
уменьшение 1 70
особеннос:rи 1 67
пакет lvm2 1 67
тома, создание 167

р
Регистр, чувствительность
find, команда 105
locate, команда 104
поиск сообщений 120

343

Алфавитн ый указатель

ISО-образ, создание 1 85

Редакторы, текстовые 1 1 2

ISО-образы, запись 1 87

Emacs 1 1 2

мультисессионные, запись 189

журнал bash, редактирование
команд 75

привод, поддержка записи 1 88

функции 1 1 2

приложения для сжатия 1 75

GNOME 1 1 6

системный жесткий диск 1 0 1

JED 1 1 2

таблицы разбиения, копирование 148

JQE 1 1 2

через сеть 1 79

добавление текста 1 1 2
открытие текстового файла 1 1 2
сочетания клавиш 1 1 3
установка 1 1 2
KDE 1 1 6
nano 1 1 4
добавление текста 1 14
запуск 74, 1 14
открытие текстового файла 1 14
сочетания клавиш 1 1 5
nedit 1 1 6
Pico 1 14
ScriЬes 1 16
vi и vim 3 1 0
Ех-команды 3 1 5
в графическом режиме 3 1 6
вставка текста 3 1 3
горячие клавиши 3 1 2 , 3 1 3
запуск 3 1 0
изменение настроек 3 1 5
изменение текста 3 1 3
модификация команд с помощью
чисел 3 1 4
навигация 3 1 1
открытие файлов 3 1 1
примеры 3 1 1
разделение экрана 3 1 1
сохранение файла 3 1 1
удаление текста 3 1 3
XEmacs 1 1 2
графические 1 1 6
запуск 1 1 2
Резервное копирование 1 73
архивы 173
на CD/DVD 184

с
Серверы
freenode, подключение 2 7 1
FTP
вопросы безопасности 262
загрузка файлов 261
имя пользователя и пароль 258
icecast, стриминг музыки 135
Сеть
информация о пакетах, пересылаемых
в системе 254
исследование сетей и удаленных
машин 254
общие сетевые файловые системы 144
подключения 233
беспроводные 242
маска подсети 240
модемы 244
окно Network Configuration
( Настройки сети) 233
разрешения имен 247
управление 238
резервное копирование 179
сканирование портов 254
устранение неполадок 248
IР-соединение, проверка
наличия 249
карты сетевого интерфейса 234
протокол разрешения адресов
(ARP) 249
соединение с элементом сети,
проверка 248
шлюз по умолчанию,
проверка 249

344
Сжатие 1 75

Алфавитный указател ь

Ссылки
гибкие (символьные) 90, 92
жесткие 90, 92

всех файлов в каталоге 177
в файл myfile 177

команды 93
резервное копирование через сеть 182

информация о ходе выполнения 1 76
(
команды

создание 92
удобство 182

bzip2 1 77
gzip 176
lzop 1 76
tar 1 73
преимущества 1 75
проверкаjпросмотр/распаковка 1 78

Столбцы
вывод на экран 1 26
ограничения полей 126
разделитель, изменение 126
список
запущенных процессов 195
программ, на два столбца 1 19

резервное копирование диска 1 0 1
файлы gzip, распаковка 177
Символы
замена 123
регистр, изменение 1 24
ряды, определение 1 24
удаление 1 23
Система
удаленное администрирование 276
GUI-приложения 204
VNC (Virtual Network
Computing) 290
командный процессор SSH 276
система Х Windows System 288
сканирование портов 254
удаленный рабочий стол
Windows 286
устаревшие средства
коммуникации 277
управление 209
время и дата 2 1 9

текст, извлечение 126

т
Таблю�ы разбиения
GUID ( GPT) 145
PC-BIOS 145
изменение 147
копирование 148
Туннелировани е
VNC вместе с SSH 291
Х 1 1 -туннелирование 279
для удаленного администрирования
прянтеров C U PS 279
переадресация интернет-сервисов 280

у

память 2 1 0

Удаленный рабочий стол Windows 286
подключение с помощью
rdesktop, команда 288
tsclient, команда 287
разрешение подключения 286
Улучшеиная звуковая архитектура Linux
( ALSA) 1 30

загрузка 223
загрузчик 223
запись устройств по машинному
адресу 230
запоминающие устройства 2 1 7
процессор 2 1 4

Уникальный идентификатор ( UUID) 156

сервисы 226

Унифицированный формат 1 24

уровни загрузки 225
ядро, проверка 228

Устаревшие средства коммуникации 277
Устройства

Сокеты 90
именованные 94

список, просмотр 94
типы 93

Алфавитный указател ь

Устройства компьютера, информация
изменение 23 1
получение 230
Утилиты
anacron 208
chkrootkit, загрузка 309
upstart, конфигурационные файлы 72
Webmin 295
WinSCP 264

ф
�айл-битоприемник, направление
вывода 76
Файловые системы 143
affs 145
Ьefs 145
BSD/OS 147
CIFS ( Common Internet File
System) 266
Darwin UFS 147
ext2 144
атрибуты, просмотр 152
настройки, изменение 1 53
ext3 144
атрибуты, просмотр 152
изменения по сравнению с ext2 143
настройки, изменение 153
проверка 1 60
создание на LVМ-разделе 169
функции 143
FгeeBSD 147
iso9660 144
Jffs2, журналируемая 144
jfs 144
Linux, необходимые разделы 143
Minix 145, 147
MS-DOS 144
NetBSD 147
NeXTSTEP 147
NТFS
монтирование во время загрузки 156
разделы, изменение размеров 149
функции 144
OpenBSD 147

345
RАI D-диски 1 63
гeiserfs 144
squashfs 144
SSH ( SSHFS) 270
демонтирование удаленной папки 270
получение общего доступа к удаленной
папке 270
swap 144
ufs 144
VFAT ( FAT) 144
xfs 144
атрибуты
изменение 1 53
просмотр 152
виртуальные 1 5 1
команды 150
монтирование 1 5 1
монтированиеjразмонтирование 1 5 1
создание 1 5 1
демонтирование 160
жесткие диски, разбиение 145
журналирование 143
информация об использовании 1 64
монтирование 1 55
HAL (уровень аппаратных
абстракций) 156
LVM (управление логическими
томами) 155
автоматическое 156
загрузочный образ 1 59
из файла jectjfstab 1 55
отчет об использовании 1 64
цель 1 55
навигация 98
на разделе жесткого диска, создание 150
общие сетевые 144
поддерживаемые, список 144
проверка на наличие ошибок 1 60
программа управления логическими
томами ( LVM) 1 66
псевдосистемы 155
разделы подкачки 153
резервное копирование 156
удаленные, типы 156
функции 143

346
Файлы 90
jetcjfstab 1 55
монтирование файловой системы
из файла 155
поля 1 56
атрибуты
изменение 1 02
просмотр 1 02
бинарные, поиск текста 122
в качестве области подкачки 1 54
данных, типы 90
загрузка
веб-страница целиком 258
зеркало сайта 259

Ал фавитн ый указател ь

сжатые 1 74
архивыjформаты вывода 174
распаковка 1 75, 176
ссылки 92
текстовые 1 10
замена текста 122
заплатки 1 25
извлечение текста в кодировке
ASCII 122
количество байrов 1 2 1
количество слов 1 2 1
количество строк 1 2 1
объединение данных 1 25
отображение 1 1 7
поиск с момощью регулярных
выражений 1 1 О
поиск строк 1 19
постраничный просмотр 1 18
преобраэование символов 1 23
разделение текста на два столбца 1 19
редактор vi 1 1 1

прерванная, продолжение 259
с удаленного сервера 258
именованные каналы и сокеты 94
информация, просмотр 1 07
командные, типы 90
конвертирование
изображения 1 39
текстовые файлы 127
контрольные суммы, генерация 1 08
конфигурационные, поиск
команд 1 07
копирование 1 00, 1 69
наблюдение за размером 79
навигация 98
направление выводимых данных 75
обычные 90
открытые, проверка 2 1 8
передача 257
FТР-команды 260
из командной строки 258
инструменты SSH 262
однократная 260
утилиты Windows 264
поиск 1 03
права доступа 94
права собственности, изменение 98
проверка 1 08
пустые, соэдание 9 1
расширения
аудио 1 29

смещение текста 1 19
сортировка выводимых данных 1 2 1
сравнение двух файлов 1 24
столбцы, управление 1 26
форматирование для печати 1 19
форматы 127
тестирование
имен 86
операторы 86
типы
определение 90
отображение 90
устройств 90
соэдание 93
функции 90

х
Хает-компьютеры
имена
запрос к DNS-cepвepy 247
информация, получение для
локального компьютера 248
установка 248

347

Алфавитный указатель

отслеживание маршрутов 251
проверка-соединения 248
просмотр IР-адреса 248
расчет маски подсети 24 1

я
Ядро 228
klogd (демон записи журнала
ядра) 307
загружаемые модули

ц

добавлениеjудаление 230

Цвет
браузер elinks 256
изображения 140
использование процессора, индикатор 2 1 5
найденные данные, столбцы разного
цвета 120

просмотр 229
загруженные модули
сортировка 1 2 2
загрузка 224
имя, отображение 228
информация о модулях 229

сравнение файлов 125
Числа, тестирование 86

основной псевдодиск, исправление
неполадок 225

э
приложения 27 4

пространство ядра,
определение 2 14
содержимое кольцевого буфера,
просмотр 228

сообщения системного журнала 308

статистика кэш-памяти 2 1 3

формат МВОХ 272

файлы сообщений 229

Электронная почта 272

параметры, управление 230

Негус К., Казн Ф.

U buntu и Deblan Linux для п родвинуть1х:
более 1 000 незамен имых команд
Перевели с английского Ю. Зверев,

Заведующий редакцией
Ведущий реда ктор
Л итературные реда кторы
Х удожник
Корре кторы
Верстка

А.

Одноочко

А. Громаковский
Н. Гринчик
М Андреева. Д Романов
К. Радзевич
В. Cyбom. RJ. l(еханович
Г. Блинов

Подписано в печать 09.08 . 1 0. Формат 70x i 00/ 1 6. Уел. п. л. 28,38. Доп. тираж 1 000. Заказ 23428.

000 йnnTEP®

WWW. P I T E R . C O M

УВАЖАЕМ Ы Е ГОСПОДА!
КНИГИ ИЗДАТЕЛЬСКОГО ДОМА ссПИТЕР••
ВЫ МОЖЕТЕ П РИОБРЕСТИ
ОПТОМ И В РОЗНИЦУ У НАШ ИХ
РЕГИОНАЛ ЬНЫХ ПАРТН ЕРОВ.

ДАЛЬНИЙ ВОСТОК

СИБИРЬ

Впадивосток
«ПрИМОJ)СКИЙ ТОрГОВЫЙ ДОМ КНИГИ»
тел./факс: {4232) 23-82- 1 2
e-mail: bookьase@mail.primorye.ru

Иркутск, •П родаЛ итЬ •
тел . : {3952) 20-09- 1 7, 24- 1 7-77
e-mail: prodalit@irk. ru
http:/fwww . prodalit. irk. ru

Хабаровск, «Деловая книга• , ул . Путевая , д. 1 а
тел . : {42 1 2) 36-06-65, 33-95-3 1
e-mail: dkniga@mail.kht. ru

Иркутск, •Светлана•
тел./факс: {3952) 25-25-90
e-mail: kkcbooks@bk.ru
http:/fwww . kkcЬooks.ru

Хабаровск, • Книжный мир •
тел . : {42 1 2) 32-85-5 1 , факс: {42 1 2) 32-82-50
e-mail: postmaster@worldЬooks. kht.ru
Хабаровск, •Мире•
тел . : {42 1 2) 39-49-60
e-mail: zakaz@Ьooksmirs.ru
ЕВРОПЕЙСКИЕ РЕГИОНЫ РОССИИ
Архангельск, •Дом книги • , nл . Ленина, д. 3
тел . : { 8 1 82) 65-4 1 -34, 65-38-79
e-mail: marketing@avfkniga. ru
Воронеж, •Амиталь • , nл . Ленина, д. 4
тел . : {4732) 26-77-77
http:/fwww . amital .ru
Калининград, •Вестер• ,
сеть магазинов •Книги и книжечки»
тел./факс: {40 1 2) 2 1 -56-28, 6 5-65-68
e-mail: nshibkova@vester. ru
http:/fwww . vester. ru
Самара , •Чакона•, ТЦ •Фрегат•
Московское шоссе, д. 1 5
тел . : {846) 33 1 -22-33
e-mail: chaconne@chaccone.ru
Саратов, •Читающий Саратов •
np. Революции, д. 58
тел . : {4732) 5 1 -28-93, 47-00-8 1
e-mail: manager@kmsvrn . ru
СЕВЕРНЫЙ КАВКАЗ
Ессентуки , •Россы• , ул. Октябрьская , 424
тел .fфакс: {87934) 6-93-09
e-mail: rossy@kmw.ru

Красноярск, •Книжн ы й мир•
np. Мира, д. 86
тел .fфакс: {39 1 2) 27-39-7 1
e-mail: book-world@puЫic. krasnet.ru
Новосибирск, •Тоn-книга•
тел . : {383) 336- 1 0-26
факс: {383) 336- 1 0-27
e-mail: office@top-kniga.ru
http:/fwww . top-kniga. ru

ТАТАРСТАН
Казань, •Таис • ,
сеть магазинов •Дом книги•
тел . : {843) 272-34-55
e-mail: tais@bancorp. ru
УРАЛ
Екатеринбург, 000 •Дом кн иги •
ул . Антона Валека, д. 1 2
тел.fфакс: {343) 358- 1 8-98 , 358- 1 4-84
e-mail: domknigi@k66. ru
Екатеринбург, ТЦ •Люмна»
ул . Студенческая , д. 1 в
тел./факс: {343) 228- 1 0-70
e-mail: igm@lumna. ru
http:/fwww . lumna . ru
Челябинск, 000 •ИнтерСервис ЛТД•
ул . Артиллерийская , д. 1 24
тел . : {35 1 ) 247-74-03 , 247-74-09,
247-74- 1 6
e-mail: zakup@intser. ru
http:/fwww . fkniga.ru, www . intser. ru

'"'l! �">rC J<

Ubuntu и Deblan Linux А/\Я nрод (Т)
Д -• n;:.офессионелоl
308.00 pytJ.
Ljeнe

11"11D

:


не1021В