Опубликовано

Вышло второе издание книги “Командная строка Linux”

Командная строка Linux, 2 изд. (серия "Профессиональное программирование")

Рассмотрены задачи, которые выполняются из командной строки операционной системы 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

Добавить комментарий