Облачный хостинг VDS за 2 минуты

Настоящий облачный VDS-хостинг от UltraVDS: тестируем производительность

Дельта-синхронизация крипто-дисков

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

Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

Дельта синхронизация без облака

Ранее мы показывали разные способы синхронизации криптодиска между ПК и Android-устройством.

Командная строка Linux и автоматизация рутинных задач. 2-е изд.


Рассмотрены команды Linux, основы работы в командной строке, а также настройка системы с помощью программ, обладающих только текстовым интерфейсом. Работа с системой выполняется только в режиме консоли, что требует определенной квалификации пользователя. Подробно описаны наиболее полезные команды Linux, особенности файловой системы Linux, криптографическая файловая система eCryptfs, система инициализации systemd, загрузчики GRUB и GRUB2, ядро 3.x. С позиции пользователя оценены интерактивные возможности оболочки zsh. Даны практические примеры разработки сценариев на языках оболочек bash и tcsh. Рассмотрено управление пакетами для наиболее актуальных на данный момент дистрибутивов. Для энтузиастов Linux написана отдельная глава о разработке собственного дистрибутива Linux и создании загрузочного LiveCD. Во втором издании полностью переработан материал по созданию собственных RPM-пакетов, настройке сети и Интернета, появилось описание псевдофайловой системы /proc и ряда полезных утилит: chage, pwck, grpck, groupmod, groupdel, sed, dd и др.

Оглавление

/tr>
Введение 13
Что нового во втором издании? 16

Часть I. Командная строка

19

Глава 1. Введение в командную строку

21
1.1. Вход в систему 21
1.2. Команды poweroff, halt, reboot, shutdown 24
1.3. Как работать в консоли 24
1.4. Графические терминалы 25

Глава 2. Командные интерпретаторы

27
2.1. Файл /etc/shells 27
2.2. Оболочка sh 28
2.3. Оболочка csh 28
2.4. Оболочка ksh 29
2.5. Оболочка bash 29
2.6. Оболочка zsh 30
2.7. Оболочка tcsh 31
2.8. Оболочка ash 31
2.9. Выбор оболочки 31

Глава 3. Базовые команды Linux

33
3.1. О командах Linux 33
3.2. Команда arch: сведения об архитектуре компьютера 33
3.3. Команда banner: текстовый баннер 34
3.4. Команда chsh: изменение командного интерпретатора 34
3.5. Команды cksum и md5sum: вычисление контрольной суммы файла 35
3.6. Команда clear: очистка экрана 36
3.7. Команда date: вывод даты и времени 36
3.8. Команда echo: вывод сообщения 37
3.9. Команда exit: выход из системы 37
3.10. Команда env: установка переменных окружения 38
3.11. Команды man и info: вывод справки 38
3.12. Команда printenv: вывод значения переменной окружения 38
3.13. Команда reset: сброс терминала 38
3.14. Команда sleep: пора спать 39
3.15. Команда startx: запуск графического интерфейса X.Org 39
3.16. Команда tee: перенаправление ввода 39
3.17. Команда true: успешное завершение 39
3.18. Команда yes: возвращает y 40
3.19. Команда uname: название и версия дистрибутива Linux 40
3.20. Конвертирование кодировок, звуковых и графических файлов 40

Глава 4. Файловая система. Команды для работы с файловой системой

43
4.1. Файловые системы, поддерживаемые Linux 43
4.1.1. Выбор файловой системы 45
4.1.2. Linux и файловые системы Windows 46
4.1.3. Сменные носители 46
4.2. Особенности файловой системы Linux 46
4.2.1. Имена файлов в Linux 46
4.2.2. Файлы и устройства 47
4.2.3. Корневая файловая система и монтирование 48
4.2.4. Стандартные каталоги Linux 49
4.3. Команды для работы с файлами и каталогами 50
4.3.1. Работа с файлами 50
4.3.2. Работа с каталогами 52
4.4. Команда ln: создание ссылок 54
4.5. Команды chown, chmod и chattr 55
4.5.1. Команда chmod: права доступа к файлам и каталогам 55
4.5.2. Команда chown: смена владельца файла 57
4.5.3. Специальные права доступа (SUID и SGID) 57
4.5.4. Команда chattr: атрибуты файла, запрет изменения файла 57
4.6. Монтирование файловых систем 59
4.6.1. Команды mount и umount 59
4.6.2. Файлы устройств и монтирование 60
Жесткие диски 60
Приводы оптических дисков 62
Дискеты 62
Флешки и внешние жесткие диски 62
4.6.3. Опции монтирования файловых систем 63
4.6.4. Монтирование разделов при загрузке 64
4.6.5. Подробно о UUID и файле /etc/fstab 66
4.6.6. Монтирование Flash-дисков 68
4.7. Настройка журнала файловой системы ext3 69
4.8. Файловая система ext4 70
4.8.1. Сравнение ext3 и ext4 70
4.8.2. Совместимость с ext3 72
4.8.3. Переход на ext4 72
4.9. Особые команды 73
4.9.1. Команда mkfs: создание файловой системы 73
4.9.2. Команда fsck: проверка и восстановление файловой системы 73
4.9.3. Команда chroot: смена корневой файловой системы 74
4.9.4. Установка скорости CD/DVD 74
4.9.5. Монтирование каталога к каталогу 74
4.9.6. Команды поиска файлов 74
4.10. Многофункциональная команда dd 76
4.10.1. Копирование файлов с помощью команды dd 76
4.10.2. Разделение файла на несколько частей 77
4.10.3. Создание резервной копии жесткого диска 78
4.10.4. Создание архива с резервной копией всего жесткого диска 78
4.10.5. Уничтожение всех данных раздела жесткого диска 78
4.11. eCryptfs: краткое руководство для секретного агента 79

Глава 5. Процессы

82
5.1. Команды kill, killall, xkill и ps 82
5.2. Программа top: кто больше всех расходует процессорное время? 84
5.3. Команды nice и renice: изменение приоритета процесса 86
5.4. Перенаправление ввода/вывода 86
5.5. Команда fuser: кто открыл ресурс? 87

Глава 6. Запись CD/DVD из консоли

88
6.1. Команда dd: создание образа диска 88
6.2. Команды cdrecord и dvdrecord: запись образа на болванку 89
6.3. Команды очистки перезаписываемых дисков 90
6.4. Команда mkisofs: создание ISO-образа 90
6.5. Преобразование образов дисков 91
6.6. Создание и монтирование файлов с файловой системой 91

Глава 7. Команды для работы с текстом

92
7.1. Команда cmp: сравнение двух файлов 92
7.2. Команда column: разбивка текста на столбцы 92
7.3. Команда comm: еще одна команда для сравнения файлов 93
7.4. Команда diff: сравнение файлов 93
7.5. Команда diff3: сравнение трех файлов 94
7.6. Команда egrep: расширенный текстовый фильтр 95
7.7. Команда expand: замена символов табуляции пробелами 96
7.8. Команда fmt 96
7.9. Команда fold 97
7.10. Команда grep: текстовый фильтр 97
7.11. Команды more и less: постраничный вывод 97
7.12. Команды head и tail: вывод начала и хвоста файла 97
7.13. Команда look 98
7.14. Команда sort: сортировка файлов 98
7.15. Команда split: разбиение файлов на несколько частей 98
7.16. Команда unexpand: замена пробелов символами табуляции 99
7.17. Команды vi, nano, ee, mcedit, pico: текстовые редакторы 99
7.18. Команда wc: подсчет слов в файле 103
7.19. Некоторые команды преобразования символов и форматов 104
7.20. Команда sed: потоковый текстовый редактор 104

Глава 8. Команды для работы с сетью и Интернетом

106
8.1. Команда ifconfig: управление сетевыми интерфейсами 106
8.2. Маршрутизация 108
8.2.1. Команда netstat: просмотр таблицы маршрутизации 108
8.2.2. Команда route: изменение таблицы маршрутизации 112
8.3. Команда pppoeconf: настройка DSL-соединения 114
8.4. Команда pppconfig: настройка модемного (PPP) соединения 118
8.5. Команда wvdial: настройка PPP-соединения 119
8.6. Текстовые браузеры 121
8.7. Команда ftp: FTP-клиент 121
8.8. Команда wget: загрузка файлов 122
8.9. Команды для диагностики сети 124
8.10. Настройка сети вручную. Конфигурационные файлы 128
8.10.1. Конфигурационные файлы Fedora 130
8.10.2. Конфигурационные файлы openSUSE 132
8.10.3. Конфигурационные файлы Debian/Ubuntu 134
8.11. Команда mii-tool 134
8.12. Сетевой сканер nmap 135
8.12.1. Что такое nmap? 135
8.12.2. Где мне взять nmap? 136
8.12.3. Примеры использования nmap 136

Глава 9. Команды системного администратора

139
9.1. Программы разметки диска 139
9.1.1. Программа fdisk 139
9.1.2. Программа parted 142
9.1.3. Введение в GPT. Утилиты для работы с GPT 146
9.2. Информация о системе и пользователях 147
9.2.1. Команда uptime: информация о работе системы 147
9.2.2. Команда users: информация о пользователях 147
9.2.3. Команды w, who, ftpwho и whoami: информация о пользователях 148
9.2.4. Мониторинг работы системы 148
9.3. Планировщик at 151
9.3.1. Команда at: добавление задания 151
9.3.2. Команды atq и atrm: очередь заданий и удаление задания 151
9.4. Планировщик crond 151
9.5. Планировщик anacron 153
9.6. Команда date: вывод и установка даты и времени 154
9.7. Команды free и df: информация о системных ресурсах 154
9.8. Команда ssh: удаленный вход в систему 155
9.9. Устройства и драйверы 156
9.10. Псевдофайловая система /proc 159
9.10.1. Информационные файлы 160
9.10.2. Файлы, позволяющие изменять параметры ядра 160
9.10.3. Файлы, изменяющие параметры сети 161
9.10.4. Файлы, изменяющие параметры виртуальной памяти 162
9.10.5. Файлы, позволяющие изменить параметры файловых систем 162
9.10.6. Как сохранить изменения 163

Часть II. Операционная система

165

Глава 10. Загрузчики Linux

167
10.1. Основные загрузчики 167
10.2. Конфигурационные файлы GRUB и GRUB2 168
10.2.1. Конфигурационный файл GRUB 168
10.2.2. Конфигурационный файл GRUB2. Команды grub-mkconfig и update-grub 171
10.3. Команды установки загрузчиков 175
10.4. Установка тайм-аута выбора операционной системы. Редактирование параметров ядра 175
10.5. Установка собственного фона загрузчиков GRUB и GRUB2 178
10.6. Постоянные имена и GRUB 179
10.7. Восстановление загрузчика GRUB/GRUB2 180
10.8. Две и более ОС Linux на одном компьютере 181
10.9. Загрузка с ISO-образов 182
10.10. Установка пароля загрузчика 183
10.10.1. Загрузчик GRUB 183
10.10.2. Загрузчик GRUB2 185

Глава 11. Системы инициализации Linux

187
11.1. Начальная загрузка Linux 187
11.2. Система инициализации init 189
11.2.1. Команда init 190
11.2.2. Команда service 191
11.2.3. Редакторы уровней запуска 191
11.2.4. Параллельная загрузка сервисов, или как сделать старую систему init быстрее 192
11.3. Система инициализации upstart 193
11.3.1. Как работает upstart? 193
11.3.2. Конфигурационные файлы upstart 194
11.4. Система инициализации systemd 195
11.4.1. Идеальная система инициализации 195
11.4.2. Введение в systemd 196
11.4.3. Основные особенности systemd 198
11.4.4. Сравнение init, upstart и systemd 198
11.4.5. Немного практики 200
11.4.6. Команды системного администратора 203
11.5. Система инициализации Slackware 204

Глава 12. Команды управления пользователями

207
12.1. Многопользовательская система 207
12.2. Пользователь root 208
12.2.1. Максимальные полномочия 208
12.2.2. Как работать без root 208
Команда sudo 209
Команда su 209
Проблемы с sudo в Ubuntu и Kubuntu 210
Ввод серии команд sudo 211
12.2.3. Переход к традиционной учетной записи root 211
Преимущества и недостатки sudo 211
Традиционная учетная запись root в Ubuntu 212
Традиционная учетная запись root в Mandriva 213
Вход в качестве root в Fedora 214
12.3. Создание, удаление и модификация пользователей стандартными средствами 215
12.3.1. Команды adduser и passwd 215
12.3.2. Команды usermod и chage 216
12.3.3. Команда userdel 217
12.3.4. Команды pwck и grpck 218
12.3.5. Подробно о создании пользователей 218
12.4. Группы пользователей 219
12.5. Команды квотирования 219

Глава 13. Ядро

223
13.1. Команда dmesg: вывод сообщений ядра 223
13.2. Параметры ядра 229
13.3. Компиляция ядра 233
13.3.1. Установка исходных кодов ядра 234
13.3.2. Настройка ядра 234
13.3.3. Компиляция ядра 238
13.4. RT-ядро 240
13.5. Особенности компиляции ядра в других дистрибутивах Linux 240

Часть III. Программирование и автоматизация в Linux

243

Глава 14. Программирование на языке C. Утилиты для программиста

245
14.1. Команда gcc: компилятор 245
14.2. Команда make: сборка проекта 247
14.3. Команды из пакета binutils 248
14.4. Другие полезные команды 249
14.5. Команда gdb: отладка программ 249

Глава 15. Автоматизация рутинных задач с помощью bash

252
15.1. Настройка bash 252
15.2. Автоматизация задач с помощью bash 254
15.3. Привет, мир! 255
15.4. Использование переменных в собственных сценариях 255
15.5. Передача параметров сценарию 257
15.6. Массивы и bash 257
15.7. Циклы 258
15.8. Условные операторы 259
15.9. Функции 260
15.10. Примеры сценариев 260
15.10.1. Сценарий мониторинга журнала 260
15.10.2. Переименование файлов 261
15.10.3. Преобразование систем счисления 262
15.10.4. Проверка прав пользователя 262
15.10.5. Генератор имени временного файла 263
15.10.6. Проверка свободного дискового пространства с уведомлением по электронной почте 263

Глава 16. Автоматизация задач с помощью tcsh

264
16.1. Использование tcsh 264
16.2. Конфигурационные файлы tcsh 265
16.3. Создание сценариев на tcsh 266
16.3.1. Переменные, массивы и выражения 266
16.3.2. Чтение ввода пользователя 269
16.3.3. Переменные оболочки tcsh 269
16.3.4. Управляющие структуры 272
Условный оператор if 272
Условный оператор if..then..else 273
Оператор foreach 274
Оператор while 274
Оператор switch 275
16.3.5. Встроенные команды tcsh 276

Глава 17. Автоматизация обработки задач средствами gawk

278
17.1. Введение в gawk 278
17.2. Основы языка 278
17.2.1. Образцы и действия 278
17.2.2. Операторы 279
17.2.3. Переменные 280
17.2.4. Ассоциативные массивы 280
17.2.5. Функции 280
17.2.6. Вывод с помощью printf 281
17.2.7. Управляющие структуры 282
Условный оператор if..else 282
Цикл while 282
Цикл for 282
17.3. Примеры 283

Глава 18. Собственный сервер для PHP-программиста

286
18.1. Зачем нужен сервер PHP-программисту? 286
18.2. Web-сервер 286
18.2.1. Установка Apache и PHP 286
18.2.2. Тестирование настроек Web-сервера 287
18.2.3. Конфигурационные файлы сервера. Команды запуска и останова сервера 289
18.3. Сервер баз данных MySQL 289
18.3.1. Установка сервера 289
18.3.2. Команды управления пользователями MySQL-сервера 290
18.3.3. Команды запуска и останова сервера 291
18.3.4. Программа MySQL Administrator 291
18.4. Быстрая настройка FTP-сервера 293

Часть IV. Управление пакетами

297

Глава 19. Введение в пакеты. Программы rpm и dpkg

299
19.1. Что такое пакет? 299
19.2. Репозитории пакетов 301
19.3. Программы для управления пакетами 302
19.4. Программа rpm для всех дистрибутивов, совместимых с Red Hat 303
19.5. Программа rpmbuild: простая сборка пакетов исходного кода 304
19.6. Программа dpkg: управление DEB-пакетами 304
19.7. Команда alien: установка RPM-пакетов 306
19.8. Создание RPM-пакетов 307
19.8.1. Подготовка окружения 307
19.8.2. Создание файла спецификаций 308
19.8.3. Сборка пакета 310

Глава 20. Управление пакетами в Debian/Ubuntu

311
20.1. Программы для управления пакетами 311
20.2. Программа apt-get 311
20.2.1. Установка пакетов. Источники пакетов 311
20.2.2. Основные команды программы apt-get 312
Обновление источников 313
Удаление и переустановка пакетов 313
Обновление пакета и системы 314
Очистка кэша пакетов 314
Опции программы apt-get/td> 315
Подключение репозитория Medibuntu в Ubuntu 315
Корова в apt-get 316
20.3. Программа aptitude 316

Глава 21. Управление пакетами в Fedora

317
21.1. Использование программы yum 317
21.2. Управление источниками пакетов 319
21.3. Установка пакетов через прокси-сервер 321
21.4. Плагины для программы yum 321

Глава 22. Управление пакетами в openSUSE. Менеджер пакетов zypper

322

Глава 23. Управление пакетами в Slackware

326
23.1. Особенности Slackware 326
23.2. Управление пакетами 327
23.2.1. Команда installpkg: установка пакетов 328
23.2.2. Команда removepkg: удаление пакетов 329
23.2.3. Команда upgradepkg: обновление пакетов 330
23.3. Нет нужного пакета — вам поможет программа rpm2tgz 330
23.4. Программа slackpkg: установка пакетов из Интернета 330

Глава 24. Управление пакетами в Mandriva

332
24.1. Команда urpmi: установка пакетов 332td>
24.2. Команда urpme: удаление пакетов 337
24.3. Поиск пакета. Получение информации о пакете 337

Часть V. Средства резервного копирования и дистрибутивостроения

339

Глава 25. Создание дистрибутива

341
25.1. Зачем нужно создавать еще один дистрибутив? 341
25.2. Инструменты для создания дистрибутива 342
25.3. Этапы создания дистрибутива 343
25.4. Процесс создания дистрибутива 343
25.5. Развитие дистрибутива 346

Глава 26. Средства резервного копирования. Создание LiveCD-диска

347
26.1. Необходимость в "живой" резервной копии 347
26.2. Средства клонирования Linux 348
26.3. Clonezilla 349
26.4. Remastersys Backup 356
26.5. Linux Live 358
Заключение 361
Предметный указатель 363