
Рассмотрены задачи, которые выполняются из командной строки операционной системы Linux. Объясняется, как попасть в командную строку, работать в консоли, настраивать систему с помощью программ, обладающих только текстовым интерфейсом. Описаны особенности файловой системы Linux, наиболее полезные команды для работы с текстом, сетью и Интернетом, а также команды системного администратора. Особое внимание уделено написанию сценариев автоматизации рутинных задач на языках командных оболочек bash и tcsh. Рассмотрены способы перенаправления ввода-вывода, маски и псевдонимы, различные варианты запуска программ, эффективные приемы использования клавиатуры, примеры сложных команд и другие вопросы.
Во втором издании особое внимание уделено задачам системного администратора – разметке диска, восстановлению загрузчика, в том числе при использовании жестких дисков на основе GPT/UEFI, установке пакетов, мониторингу системы и автоматизации на языках оболочек bash.
Для системных администраторов, программистов и квалифицированных пользователей Linux
Для системных администраторов, программистов и квалифицированных пользователей Linux
Эффективная работа в командной строке Linux
Настоящий линуксоид должен уметь работать в консоли, что требует определенной квалификации пользователя. Рассмотрены задачи, которые выполняются из командной строки Linux. Объясняется, как попасть в командную строку, работать в консоли, настраивать систему с помощью программ, обладающих только текстовым интерфейсом. Описаны особенности файловой системы Linux, наиболее полезные команды для работы с текстом, сетью и Интернетом, а также команды системного администратора. Особое внимание уделено написанию сценариев автоматизации рутинных задач на языках командных оболочек bash и tcsh. Рассмотрены способы перенаправления ввода-вывода, маски и псевдонимы, различные варианты запуска программ, эффективные приемы использования клавиатуры, примеры сложных команд и другие вопросы.
- Работа в консоли
- Автоматизация на языках оболочек bash и tcsh
- Особенности файловой системы Linux
- Управление процессами
- Команды системного администратора
- Команды для обработки текста и для работы в сети
Книгу “Командная строка Linux, 2 изд.“.
Глава 1. Командная строка: основы основ………………………………………………. 9
1.1. Переключаемся из графического режима в консоль………………………………………………………….. 9
1.2. Графические (псевдо)-терминалы……………………………………………………………………………………… 12
1.3. Удаленная консоль……………………………………………………………………………………………………………… 14
1.4. Завершение работы из консоли. Команды poweroff, halt, reboot, shutdown………………….. 15
Глава 2. Работаем в консоли………………………………………………………………….. 17
2.1. Ввод команд. Команда man……………………………………………………………………………………………….. 17
2.2. Ввод/вывод и каналы………………………………………………………………………………………………………….. 18
2.3. Шесть полезных команд…………………………………………………………………………………………………….. 20
2.3.1. Команда wc……………………………………………………………………………………………………………………. 20
2.3.2. Команда head………………………………………………………………………………………………………………… 21
2.3.3. Команда cut…………………………………………………………………………………………………………………… 21
2.3.4. Команда grep…………………………………………………………………………………………………………………. 22
2.3.5. Команда sort………………………………………………………………………………………………………………….. 23
2.3.6. Команда uniq…………………………………………………………………………………………………………………. 24
Глава 3. Оболочка bash………………………………………………………………………….. 26
3.1. Маски имен файлов…………………………………………………………………………………………………………….. 26
3.2. Переменные окружения………………………………………………………………………………………………………. 27
3.3. Псевдонимы…………………………………………………………………………………………………………………………. 28
3.4. Изменение приглашения командной строки…………………………………………………………………….. 28
3.5. Еще раз о перенаправлении ввода/вывода………………………………………………………………………. 30
3.6. Пробелы в именах файлов………………………………………………………………………………………………….. 31
3.7. Инициализация переменных………………………………………………………………………………………………. 32
3.8. Просмотр истории команд…………………………………………………………………………………………………. 32
3.9. Вызов предыдущих команд……………………………………………………………………………………………….. 33
3.10. Защита от случайного удаления файла…………………………………………………………………………. 34
3.11. Использование последнего вывода команды…………………………………………………………………. 34
3.12. Редактирование командной строки…………………………………………………………………………………. 34
Глава 4. Файловая система. Команды для работы с файловой системой… 36
4.1. Особенности файловой системы Linux……………………………………………………………………………… 36
4.1.1. Имена файлов в Linux…………………………………………………………………………………………………… 36
4.1.2. Файлы и устройства……………………………………………………………………………………………………… 36
4.1.3. Корневая файловая система и монтирование…………………………………………………………….. 37
4.1.4. Стандартные каталоги Linux………………………………………………………………………………………. 38
4.2. Команды для работы с файлами и каталогами……………………………………………………………….. 39
4.2.1. Работа с файлами………………………………………………………………………………………………………….. 39
4.2.2. Работа с каталогами…………………………………………………………………………………………………….. 42
4.2.3. Удобная навигация по файловой системе…………………………………………………………………… 44
4.3. Команда ln: создание ссылок…………………………………………………………………………………………….. 47
4.4. Команды chmod, chown и chattr…………………………………………………………………………………………. 48
4.4.1. Команда chmod: права доступа к файлам и каталогам…………………………………………….. 48
4.4.2. Команда chown: смена владельца файла…………………………………………………………………… 50
4.4.3. Специальные права доступа: SUID и SGID………………………………………………………………… 50
4.4.4. Команда chattr: атрибуты файла, запрет изменения файла……………………………………… 51
4.5. Монтирование файловых систем………………………………………………………………………………………. 52
4.5.1. Команды mount и umount……………………………………………………………………………………………… 52
4.5.2. Файлы устройств и монтирование………………………………………………………………………………. 54
Жесткие диски………………………………………………………………………………………………………………….. 54
Приводы оптических дисков…………………………………………………………………………………………… 56
Флешки и внешние жесткие диски………………………………………………………………………………….. 56
4.5.3. Опции монтирования файловых систем……………………………………………………………………… 56
4.5.4. Монтирование разделов при загрузке………………………………………………………………………… 58
4.5.5. Подробно о UUID и файле /etc/fstab……………………………………………………………………………. 60
4.5.6. Монтирование флешек…………………………………………………………………………………………………. 62
4.6. Настройка журнала файловой системы ext3/ext4…………………………………………………………… 63
4.7. Файловая система ext4……………………………………………………………………………………………………….. 64
4.7.1. Сравнение ext3 и ext4…………………………………………………………………………………………………… 64
4.7.2. Совместимость с ext3……………………………………………………………………………………………………. 65
4.8. Особые команды…………………………………………………………………………………………………………………. 66
4.8.1. Команда mkfs: создание файловой системы……………………………………………………………….. 66
4.8.2. Команда fsck: проверка и восстановление файловой системы…………………………………. 66
4.8.3. Команда chroot: смена корневой файловой системы………………………………………………… 67
4.8.4. Установка скорости CD/DVD………………………………………………………………………………………. 67
4.8.5. Монтирование каталога к каталогу……………………………………………………………………………. 67
4.8.6. Команды поиска файлов………………………………………………………………………………………………. 67
4.9. Многофункциональная команда dd………………………………………………………………………………….. 69
4.9.1. Копирование файлов с помощью команды dd……………………………………………………………. 69
4.9.2. Разделение файла на несколько частей………………………………………………………………………. 70
4.9.3. Создание резервной копии жесткого диска………………………………………………………………… 71
4.9.4. Создание архива с резервной копией всего жесткого диска…………………………………….. 71
4.9.5. Уничтожение всех данных раздела жесткого диска………………………………………………….. 71
4.10. Команда du………………………………………………………………………………………………………………………… 72
Глава 5. Процессы…………………………………………………………………………………. 73
5.1. Оболочки, команды и программы……………………………………………………………………………………… 73
5.2. Родительский и дочерний процессы………………………………………………………………………………….. 74
5.3. Команды kill, killall, xkill и ps…………………………………………………………………………………………….. 75
5.4. Программы top и htop: кто больше всех расходует процессорное время?……………………. 77
5.5. Команды nice и renice: изменение приоритета процесса………………………………………………… 80
5.6. Команда fuser: кто открыл ресурс?…………………………………………………………………………………… 80
5.7. Команда lsof………………………………………………………………………………………………………………………… 80
5.8. Команды управления сервисами……………………………………………………………………………………….. 81
5.9. Команда journalctl……………………………………………………………………………………………………………… 82
Глава 6. Выполнение команд и установка программ……………………………… 85
6.1. Списки………………………………………………………………………………………………………………………………….. 85
6.1.1. Условные списки…………………………………………………………………………………………………………… 85
6.1.2. Безусловные списки………………………………………………………………………………………………………. 86
6.2. Подстановка………………………………………………………………………………………………………………………… 87
6.2.1. Подстановка команды………………………………………………………………………………………………….. 87
6.2.2. Подстановка процесса………………………………………………………………………………………………….. 88
6.3. Команда как строка……………………………………………………………………………………………………………. 89
6.3.1. Передача команды в виде аргумента………………………………………………………………………….. 89
6.3.2. Перенаправление команды на стандартный ввод bash…………………………………………….. 89
6.4. Удаленное выполнение команды по SSH…………………………………………………………………………. 90
6.5. Фоновое выполнение команд…………………………………………………………………………………………….. 90
6.6. Команда nohup……………………………………………………………………………………………………………………. 92
6.7. Планировщик cron………………………………………………………………………………………………………………. 92
6.8. Установка программ командой apt…………………………………………………………………………………… 94
6.9. Установка программ командой dnf…………………………………………………………………………………… 96
Глава 7. Некоторые полезные команды…………………………………………………. 97
7.1. Команда seq…………………………………………………………………………………………………………………………. 97
7.2. Фигурные скобки…………………………………………………………………………………………………………………. 98
7.3. Команда find……………………………………………………………………………………………………………………….. 98
7.4. Команды zip и unzip……………………………………………………………………………………………………………. 99
7.5. Команда tar……………………………………………………………………………………………………………………….. 100
Глава 8. Команды для работы с текстом………………………………………………. 102
8.1. Команда sort: сортировка файлов…………………………………………………………………………………… 102
8.2. Команда diff: сравнение файлов……………………………………………………………………………………… 102
8.3. Команда diff3: сравнение трех файлов…………………………………………………………………………… 103
8.4. Команда cmp: сравнение двух файлов……………………………………………………………………………. 104
8.5. Команда comm: еще одна команда для сравнения файлов…………………………………………… 104
8.6. Команда column: разбивка текста на столбцы………………………………………………………………. 105
8.7. Команда egrep: расширенный текстовый фильтр………………………………………………………….. 105
8.8. Команда expand: замена символов табуляции пробелами…………………………………………… 106
8.9. Команда fmt……………………………………………………………………………………………………………………….. 107
8.10. Команда fold……………………………………………………………………………………………………………………. 107
8.11. Команда grep: текстовый фильтр………………………………………………………………………………….. 107
8.12. Команды more и less: постраничный вывод…………………………………………………………………. 108
8.13. Команды head и tail: вывод начала и хвоста файла…………………………………………………… 108
8.14. Команда look…………………………………………………………………………………………………………………… 108
8.15. Команда split: разбиение файлов на несколько частей………………………………………………. 108
8.16. Команда unexpand: замена пробелов символами табуляции…………………………………….. 109
8.17. Команды vi, nano, ee, mcedit, pico: текстовые редакторы…………………………………………… 109
8.18. Команда sed: потоковый текстовый редактор……………………………………………………………… 113
8.19. Команда wc: подсчет слов в файле……………………………………………………………………………….. 114
8.20. Команда gpg: шифруем файлы паролем………………………………………………………………………. 114
8.21. Некоторые команды преобразования символов и форматов……………………………………… 116
Глава 9. Эффективное использование клавиатуры………………………………. 117
9.1. Работа с окнами………………………………………………………………………………………………………………… 117
9.2. Доступ к веб-браузерам из командной строки……………………………………………………………….. 119
9.3. Работаем с буфером обмена…………………………………………………………………………………………….. 121
Глава 10. Команды для работы с сетью и Интернетом…………………………. 123
10.1. Команда ifconfig: управление сетевыми интерфейсами……………………………………………… 123
10.2. Команда ip………………………………………………………………………………………………………………………. 125
10.3. Маршрутизация………………………………………………………………………………………………………………. 126
10.3.1. Команда netstat: просмотр таблицы маршрутизации
и другой сетевой информации……………………………………………………………………………………………… 126
10.3.2. Команда route: изменение таблицы маршрутизации……………………………………………. 130
10.4. Команды получения информации об узле……………………………………………………………………. 133
10.4.1. Получение информации о доменном имени……………………………………………………………. 133
10.4.2. Команды host и dig……………………………………………………………………………………………………. 133
10.4.3. Утилита DMitry…………………………………………………………………………………………………………. 135
10.5. Текстовые браузеры……………………………………………………………………………………………………….. 135
10.6. Команда ftp: FTP-клиент………………………………………………………………………………………………… 136
10.7. Команда wget: загрузка файлов…………………………………………………………………………………….. 137
10.8. Команды для диагностики сети…………………………………………………………………………………….. 139
10.9. Команда ssh…………………………………………………………………………………………………………………….. 143
10.10. Сетевой сканер nmap……………………………………………………………………………………………………. 145
10.10.1. Что такое nmap?………………………………………………………………………………………………………. 145
10.10.2. Где мне взять nmap?………………………………………………………………………………………………… 146
10.10.3. Примеры использования nmap………………………………………………………………………………. 146
10.11. Команда systemd-resolve………………………………………………………………………………………………. 148
10.12. Команда netplan……………………………………………………………………………………………………………. 149
10.13. Команда ufw………………………………………………………………………………………………………………….. 150
Глава 11. Команды системного администратора………………………………….. 152
11.1. Программы разметки диска……………………………………………………………………………………………. 152
11.1.1. Программа fdisk………………………………………………………………………………………………………… 152
11.1.2. Программа Parted……………………………………………………………………………………………………… 155
11.1.3. Таблица разделов GPT……………………………………………………………………………………………… 159
11.1.4. Разметка диска на физическом сервере…………………………………………………………………… 160
11.1.5. Добавление диска на виртуальном сервере…………………………………………………………… 161
11.1.6. Расширение существующего диска…………………………………………………………………………. 164
11.1.7. Команды восстановления загрузчика GRUB2……………………………………………………….. 166
Восстановление загрузчика GRUB2 при использовании UEFI…………………………………. 166
Команда boot-repair………………………………………………………………………………………………………. 167
11.2. Информация о системе и пользователях………………………………………………………………………. 167
11.2.1. Команда uptime: информация о работе системы…………………………………………………… 167
11.2.2. Команда users: информация о пользователях………………………………………………………… 168
11.2.3. Команды w, who, ftpwho и whoami: информация о пользователях………………………. 168
11.2.4. Команды last и id………………………………………………………………………………………………………. 169
11.2.5. Мониторинг работы системы………………………………………………………………………………….. 169
11.2.6. Команды uname и lsb_release…………………………………………………………………………………… 172
11.2.7. Команда sensors………………………………………………………………………………………………………… 172
11.3. Команды date и timedatectl…………………………………………………………………………………………….. 173
11.4. Планировщик at………………………………………………………………………………………………………………. 174
11.4.1. Команда at: добавление задания…………………………………………………………………………….. 174
11.4.2. Команды atq и atrm: очередь заданий и удаление задания………………………………….. 175
11.5. Планировщик crond………………………………………………………………………………………………………… 175
11.6. Команды free и df: информация о системных ресурсах………………………………………………. 175
11.7. Команды управления пользователями…………………………………………………………………………. 176
11.8. Получение информации об оборудовании…………………………………………………………………… 176
11.8.1. Команда dmesg………………………………………………………………………………………………………….. 176
11.8.2. Команда lscpu: получение информации о процессоре………………………………………….. 177
11.8.3. Команда lsusb: список USB-устройств……………………………………………………………………. 178
11.8.4. Команда lspci: список PCI-устройств……………………………………………………………………… 178
11.8.5. Команда lshw: получение информации об устройствах……………………………………….. 179
11.8.6. Команда dmidecode…………………………………………………………………………………………………… 179
11.8.7. Команда lsblk…………………………………………………………………………………………………………….. 181
11.8.8. Команда badblocks……………………………………………………………………………………………………. 182
11.9. Команда rsync…………………………………………………………………………………………………………………. 182
Глава 12. Автоматизация рутинных задач с помощью оболочки bash….. 184
12.1. Настройка bash……………………………………………………………………………………………………………….. 184
12.2. Автоматизация задач с помощью сценариев bash………………………………………………………. 185
12.3. Привет, мир!…………………………………………………………………………………………………………………….. 185
12.4. Использование переменных в собственных сценариях………………………………………………. 186
12.5. Передача параметров сценарию…………………………………………………………………………………… 187
12.6. Массивы и bash……………………………………………………………………………………………………………….. 188
12.7. Циклы……………………………………………………………………………………………………………………………….. 188
12.8. Условные операторы……………………………………………………………………………………………………… 189
12.9. Функции…………………………………………………………………………………………………………………………… 191
12.10. Примеры сценариев………………………………………………………………………………………………………. 191
12.10.1. Сценарий мониторинга журнала………………………………………………………………………….. 191
12.10.2. Переименование файлов………………………………………………………………………………………… 192
12.10.3. Преобразование систем счисления……………………………………………………………………….. 192
12.10.4. Проверка прав пользователя…………………………………………………………………………………. 193
12.10.5. Генератор имени временного файла…………………………………………………………………….. 193
12.10.6. Проверка свободного дискового пространства с уведомлением
по электронной почте…………………………………………………………………………………………………………… 194
Глава 13. Примеры полезных решений………………………………………………… 195
13.1. Поиск дубликатов файлов……………………………………………………………………………………………… 195
13.2. Сценарий scanner……………………………………………………………………………………………………………. 196
13.3. Изменение прав доступа к файлам и каталогам………………………………………………………….. 197
13.4. Аварийный перезапуск сервисов…………………………………………………………………………………… 197
13.4.1. Проверка работоспособности веб-сервера…………………………………………………………….. 197
13.4.2. Проверка работоспособности MySQL……………………………………………………………………. 198
13.4.3. Если «падают» процессы…………………………………………………………………………………………. 198
13.5. Поиск битых ссылок с помощью AWK………………………………………………………………………….. 199
13.6. Считаем количество файлов в папке и подпапках………………………………………………………. 200
13.7. Резервное копирование базы данных……………………………………………………………………………. 200
Предметный указатель…………………………………………………………………………. 202





