Оглавление
Благодарности ..........................................................................................19
Введение...................................................................................................20
Зачем нужна командная строка?........................................................................................................20
О чем эта книга.........................................................................................................................................21
Кому адресована эта книга...................................................................................................................22
Что дается в этой книге..........................................................................................................................22
Как читать эту книгу...............................................................................................................................23
Предварительные условия....................................................................................................................23
Часть I. Командная оболочка ............................................................... 25
Глава 1. Что такое командная оболочка.......................................................26
Эмуляторы терминалов.........................................................................................................................26
Первые удары по клавишам.................................................................................................................26
История команд................................................................................................................................28
Управление курсором.....................................................................................................................28
Некоторые простые команды...............................................................................................................28
Завершение сеанса работы с терминалом.......................................................................................29
Глава 2. Навигация ....................................................................................30
Дерево каталогов файловой системы................................................................................................30
Текущий рабочий каталог.....................................................................................................................31
Перечисление содержимого каталога...............................................................................................32
Смена текущего рабочего каталога....................................................................................................32
Абсолютные пути.............................................................................................................................32
Относительные пути.......................................................................................................................32
Некоторые полезные сокращения.............................................................................................34
Глава 3. Исследование системы ..................................................................35
Любопытные возможности ls...............................................................................................................35
Параметры и аргументы................................................................................................................36
Пристальный взгляд на длинный формат..............................................................................37
Определение типов файлов командой file.......................................................................................38
Просмотр содержимого файлов командой less..............................................................................39
Обзорное путешествие...........................................................................................................................40
Символические ссылки..........................................................................................................................43
8   Оглавление
Глава 4. Операции с файлами и каталогами..................................................45
Групповые символы.................................................................................................................................46
mkdir — создание каталогов.................................................................................................................48
cp — копирование файлов и каталогов.............................................................................................48
mv — перемещение и переименование файлов..............................................................................49
rm — удаление файлов и каталогов....................................................................................................50
ln — создание ссылок..............................................................................................................................51
Жесткие ссылки...............................................................................................................................52
Символические ссылки.................................................................................................................52
Давайте построим песочницу..............................................................................................................53
Создание каталогов.........................................................................................................................53
Копирование файлов......................................................................................................................53
Перемещение и переименование файлов................................................................................54
Создание жестких ссылок.............................................................................................................55
Создание символических ссылок...............................................................................................56
Удаление файлов и каталогов......................................................................................................57
Заключительное замечание..................................................................................................................59
Глава 5. Работа с командами ......................................................................60
Что такое команды?................................................................................................................................60
Идентификация команд........................................................................................................................61
type — получение типа команды.................................................................................................61
which — определение местоположения выполняемого файла.........................................61
Получение документации с описанием команд............................................................................62
help — получение справки для встроенных команд.............................................................62
--help — вывод инструкции по использованию.....................................................................63
man — вывод страниц справочного руководства..................................................................63
apropos — вывод списка подходящих команд........................................................................65
whatis — вывод очень краткого описания команды.............................................................66
info — вывод записи из справочного руководства Info.......................................................66
README и другие файлы с описанием программ..............................................................67
Создание собственных команд с помощью alias............................................................................68
Навестите старых друзей.......................................................................................................................69
Глава 6. Перенаправление ..........................................................................70
Стандартный ввод, вывод и вывод ошибок....................................................................................70
Перенаправление стандартного вывода...................................................................................71
Перенаправление стандартного вывода ошибок..................................................................72
Перенаправление стандартного вывода и стандартного вывода ошибок
в один файл........................................................................................................................................73
Удаление нежелательного вывода..............................................................................................73
Перенаправление стандартного ввода......................................................................................74
Конвейеры..................................................................................................................................................76
Фильтры..............................................................................................................................................76
Оглавление   9
uniq — поиск или удаление повторяющихся строк..............................................................77
wc — вывод числа строк, слов и байтов....................................................................................77
grep — поиск строк, соответствующих шаблону...................................................................77
head/tail — вывод первых/последних строк из файлов.....................................................78
tee — чтение со стандартного ввода и запись в стандартный вывод и в файлы.........79
Заключительное замечание..................................................................................................................81
Глава 7. Взгляд на мир глазами командной оболочки....................................82
Подстановка...............................................................................................................................................82
Подстановка путей..........................................................................................................................83
Подстановка тильды.......................................................................................................................83
Подстановка результатов арифметических выражений....................................................84
Подстановка фигурных скобок...................................................................................................86
Подстановка параметров...............................................................................................................87
Подстановка команд.......................................................................................................................87
Экранирование..........................................................................................................................................88
Двойные кавычки............................................................................................................................89
Одиночные кавычки.......................................................................................................................90
Экранирование символов.............................................................................................................91
Заключительное замечание..................................................................................................................91
Глава 8. Продвинутые приемы работы с клавиатурой ...................................93
Редактирование командной строки...................................................................................................93
Перемещение курсора....................................................................................................................94
Изменение текста.............................................................................................................................94
Вырезание и вставка (удаление и возврат) текста...............................................................94
Дополнение................................................................................................................................................95
Использование истории.........................................................................................................................97
Поиск в истории...............................................................................................................................97
Подстановка записей истории.....................................................................................................99
Заключительное замечание............................................................................................................... 100
Глава 9. Привилегии................................................................................. 101
Владельцы, члены группы и все остальные................................................................................. 102
Чтение, запись и выполнение........................................................................................................... 103
chmod — изменение режима доступа к файлу.................................................................... 105
Установка режима доступа к файлу с помощью графического интерфейса............ 108
umask — определение разрешений доступа к файлам по умолчанию........................ 109
Изменение идентичности................................................................................................................... 112
su — запуск командной оболочки с подстановкой идентификаторов
пользователя и группы............................................................................................................... 112
sudo — выполнение команды от имени другого пользователя..................................... 113
chown — изменение владельца и группы файла................................................................ 115
chgrp — изменение группы файла........................................................................................... 116
10    Оглавление
Использование привилегий.............................................................................................................. 116
Изменение своего пароля................................................................................................................... 118
Глава 10. Процессы.................................................................................. 120
Как действует процесс......................................................................................................................... 120
Просмотр списка процессов с помощью ps.......................................................................... 121
Просмотр состояния процессов в динамике с помощью top......................................... 123
Управление процессами...................................................................................................................... 125
Прерывание процесса.................................................................................................................. 126
Перевод процессов в фоновый режим................................................................................... 126
Возврат процесса на передний план....................................................................................... 127
Приостановка процесса.............................................................................................................. 128
Сигналы.................................................................................................................................................... 128
Посылка сигналов процессам командой kill....................................................................... 129
Посылка сигналов нескольким процессам с помощью killall........................................ 131
Другие команды управления процессами.................................................................................... 132
Часть II. Окружение и настройка....................................................... 133
Глава 11. Окружение ............................................................................... 134
Что хранится в окружении?.............................................................................................................. 134
Исследование окружения.......................................................................................................... 135
Некоторые интересные переменные...................................................................................... 136
Как устанавливается окружение?................................................................................................... 137
Оболочка входа и простая оболочка...................................................................................... 137
Что находится в файлах запуска?........................................................................................... 138
Изменение окружения........................................................................................................................ 140
Какие файлы следует изменять?............................................................................................. 140
Текстовые редакторы................................................................................................................... 140
Использование текстового редактора................................................................................... 141
Активация изменений................................................................................................................. 144
Заключительное замечание............................................................................................................... 145
Глава 12. Плавное введение в vi ................................................................ 146
Зачем осваивать vi................................................................................................................................ 146
Немного предыстории......................................................................................................................... 147
Запуск и завершение vi....................................................................................................................... 147
Режимы редактирования.................................................................................................................... 148
Переход в режим вставки........................................................................................................... 149
Сохранение изменений............................................................................................................... 150
Перемещение курсора......................................................................................................................... 151
Основы редактирования..................................................................................................................... 151
Добавление текста в конец........................................................................................................ 152
Вставка строки............................................................................................................................... 152
Оглавление   11
Удаление текста............................................................................................................................. 153
Вырезание, копирование и вставка текста........................................................................... 155
Объединение строк...................................................................................................................... 156
Поиск и замена....................................................................................................................................... 156
Поиск в пределах строки............................................................................................................ 156
Поиск во всем файле.................................................................................................................... 156
Глобальный поиск и замена...................................................................................................... 157
Редактирование нескольких файлов.............................................................................................. 158
Переключение между файлами............................................................................................... 159
Открытие дополнительных файлов для редактирования.............................................. 159
Копирование содержимого из одного файла в другой.................................................... 160
Вставка целого файла в другой файл..................................................................................... 161
Сохранение результатов работы...................................................................................................... 162
Глава 13. Настройка приглашения к вводу................................................. 163
Устройство строки приглашения к вводу..................................................................................... 163
Альтернативные варианты оформления приглашения........................................................... 165
Добавление цвета.................................................................................................................................. 166
Перемещение курсора......................................................................................................................... 168
Сохранение определения приглашения........................................................................................ 170
Заключительное замечание............................................................................................................... 170
Часть III. Типичные задачи и основные инструменты..................... 171
Глава 14. Управление пакетами................................................................. 172
Системы пакетов................................................................................................................................... 173
Как действует система пакетов........................................................................................................ 173
Файлы пакетов.............................................................................................................................. 173
Репозитории................................................................................................................................... 174
Зависимости................................................................................................................................... 175
Высоко- и низкоуровневые инструменты управления пакетами................................ 175
Типичные задачи управления пакетами....................................................................................... 175
Поиск пакета в репозитории..................................................................................................... 176
Установка пакета из репозитория........................................................................................... 176
Установка пакета из файла пакета.......................................................................................... 176
Удаление пакета............................................................................................................................. 177
Обновление пакетов из репозитория..................................................................................... 177
Обновление пакета из файла пакета...................................................................................... 178
Список установленных пакетов............................................................................................... 178
Определение, установлен ли пакет......................................................................................... 178
Вывод информации об установленном пакете................................................................... 179
Поиск пакета по установленному файлу.............................................................................. 179
Заключительное замечание............................................................................................................... 180
12   Оглавление
Глава 15. Устройства хранения ................................................................. 182
Монтирование и размонтирование устройств хранения........................................................ 183
Просмотр списка смонтированных файловых систем..................................................... 184
Определение названий устройств........................................................................................... 188
Создание новых файловых систем................................................................................................. 190
Управление разделами с помощью fdisk............................................................................... 191
Создание новой файловой системы с помощью mkfs...................................................... 193
Проверка и восстановление файловой системы........................................................................ 194
Форматирование гибких дисков...................................................................................................... 195
Непосредственное перемещение данных между устройствами........................................... 195
Создание образа компакт-диска...................................................................................................... 196
Создание образа-копии компакт-диска................................................................................ 196
Создание образа из коллекции файлов................................................................................. 197
Запись образа компакт-диска........................................................................................................... 197
Непосредственное монтирование файла ISO-образа...................................................... 197
Очистка перезаписываемых компакт-дисков..................................................................... 198
Запись образа................................................................................................................................. 198
Дополнительные сведения................................................................................................................. 198
Глава 16. Сети ......................................................................................... 200
Исследование и мониторинг сети................................................................................................... 201
ping — передача специальных пакетов сетевым узлам.................................................... 201
traceroute — трассировка пути сетевых пакетов................................................................ 202
netstat — вывод параметров настройки сети и статистик............................................... 203
Передача файлов по сети.................................................................................................................... 205
ftp — передача файлов по протоколу FTP............................................................................ 205
lftp — более удачная версия ftp................................................................................................ 207
wget — неинтерактивный загрузчик файлов из сети........................................................ 207
Безопасные взаимодействия с удаленными узлами................................................................. 207
ssh — безопасный вход в удаленные компьютеры............................................................. 208
scp и sftp — безопасная передача файлов.............................................................................. 212
Глава 17. Поиск файлов ........................................................................... 214
locate — простой способ поиска файлов........................................................................................ 214
find — сложный способ поиска файлов......................................................................................... 216
Проверки.......................................................................................................................................... 216
Операции......................................................................................................................................... 221
Возвращаемся в песочницу....................................................................................................... 225
Параметры....................................................................................................................................... 228
Глава 18. Архивация и резервное копирование .......................................... 229
Сжатие файлов....................................................................................................................................... 229
gzip — сжатие и распаковывание файлов............................................................................. 230
bzip2 — высокая степень сжатия ценой скорости.............................................................. 232
Оглавление   13
Архивирование файлов....................................................................................................................... 233
tar — утилита архивирования на ленту................................................................................. 233
zip — упаковывание и сжатие файлов.................................................................................... 238
Синхронизация файлов и каталогов.............................................................................................. 240
rsync — синхронизация файлов и каталогов с удаленной системой........................... 240
Использование rsync для копирования по сети................................................................. 242
Глава 19. Регулярные выражения ............................................................. 244
Что такое регулярные выражения?................................................................................................ 244
grep — поиск в тексте........................................................................................................................... 245
Метасимволы и литералы.................................................................................................................. 246
Любой символ........................................................................................................................................ 247
Якоря......................................................................................................................................................... 247
Выражения в квадратных скобках и классы символов............................................................ 249
Отрицание....................................................................................................................................... 249
Традиционные диапазоны символов...................................................................................... 250
Классы символов POSIX........................................................................................................... 251
Простые и расширенные регулярные выражения POSIX..................................................... 254
Чередование............................................................................................................................................ 255
Квантификаторы................................................................................................................................... 256
? — совпадение с элементом ноль или один раз................................................................. 256
* — совпадение с элементом ноль или более раз................................................................ 257
+ — совпадение с элементом один или более раз............................................................... 258
{ } — совпадение с элементом определенное число раз.................................................... 258
Практические примеры применения регулярных выражений............................................. 259
Проверка списка телефонов с помощью grep..................................................................... 259
Поиск необычных имен файлов с помощью find............................................................... 260
Поиск файлов с помощью locate............................................................................................. 261
Поиск текста в less и vim............................................................................................................ 261
Заключительное замечание............................................................................................................... 263
Глава 20. Обработка текста ...................................................................... 264
Области применения текста.............................................................................................................. 265
Документы....................................................................................................................................... 265
Веб-страницы................................................................................................................................. 265
Электронная почта....................................................................................................................... 265
Вывод на принтер......................................................................................................................... 265
Исходный код программ............................................................................................................ 266
А вот и наши старые знакомые!....................................................................................................... 266
cat — объединение файлов и вывод их в стандартный поток вывода........................ 266
sort — сортировка строк текстовых файлов......................................................................... 268
uniq — выявление или удаление повторяющихся строк................................................. 274
Нарезка и перетасовка текста........................................................................................................... 276
cut — удаление фрагментов из всех строк в файлах......................................................... 276
14   Оглавление
paste — слияние строк из файлов............................................................................................ 279
join — объединение строк из двух файлов по общему полю.......................................... 281
Сравнение текста................................................................................................................................... 283
comm — построчное сравнение двух сортированных файлов....................................... 283
diff — построчное сравнение файлов...................................................................................... 284
patch — применение diff-файла к оригиналу....................................................................... 286
Редактирование на лету...................................................................................................................... 287
tr — перекодирование или удаление символов.................................................................. 288
sed — потоковый редактор для фильтрации и преобразования текста...................... 290
aspell — интерактивная проверка орфографии.................................................................. 298
Заключительное замечание............................................................................................................... 301
Дополнительное задание.................................................................................................................... 301
Глава 21. Форматирование вывода............................................................ 302
Инструменты простого форматирования..................................................................................... 302
nl — нумерация строк.................................................................................................................. 302
fold — перенос строк после указанной длины..................................................................... 306
fmt — простое форматирование текста.................................................................................. 306
pr — форматирование текста для печати.............................................................................. 309
printf — форматирование и вывод данных........................................................................... 310
Системы форматирования документов......................................................................................... 314
Семейство программ roff и TEX.............................................................................................. 314
groff — система форматирования документов.................................................................... 315
Заключительное замечание............................................................................................................... 320
Глава 22. Печать ...................................................................................... 321
Краткая история поддержки печати............................................................................................... 321
Печать в ночное время................................................................................................................ 322
Символьные принтеры............................................................................................................... 322
Графические принтеры............................................................................................................... 323
Печать в Linux........................................................................................................................................ 324
Подготовка файлов к печати............................................................................................................. 325
pr — преобразование текстовых файлов для печати........................................................ 325
Отправка задания печати на принтер............................................................................................ 326
lpr — печать файлов (в стиле Berkeley)................................................................................. 326
lp — печать файлов (в стиле System V)................................................................................. 327
Еще одна возможность: a2ps..................................................................................................... 328
Наблюдение за заданиями печати и управление ими.............................................................. 331
lpstat — вывод информации о состоянии принтера.......................................................... 332
lpq — вывод информации о состоянии очереди печати................................................... 333
lprm и cancel — отмена заданий печати................................................................................. 333
Глава 23. Компиляция программ............................................................... 334
Что такое компиляция?...................................................................................................................... 335
Все ли программы компилируются?...................................................................................... 336
Оглавление   15
Компиляция программ на C.............................................................................................................. 336
Получение исходного кода........................................................................................................ 337
Исследование дерева исходных текстов............................................................................... 338
Сборка программ.......................................................................................................................... 340
Установка программ..................................................................................................................... 343
Заключительное замечание............................................................................................................... 344
Часть IV. Сценарии командной оболочки.......................................... 345
Глава 24. Создание первого сценария командной оболочки ........................ 346
Что такое сценарии командной оболочки.................................................................................... 346
Как написать сценарий командной оболочки............................................................................. 347
Формат файла сценария............................................................................................................. 347
Разрешения на выполнение...................................................................................................... 348
Местоположение файла сценария.......................................................................................... 348
Выбор местоположения для сценариев................................................................................ 350
Дополнительные хитрости по оформлению................................................................................ 350
Длинные имена параметров...................................................................................................... 350
Отступы и продолжения строк................................................................................................ 350
Заключительное замечание............................................................................................................... 352
Глава 25. Начало проекта ......................................................................... 353
Этап первый: минимальный документ.......................................................................................... 353
Этап второй: добавление некоторых данных.............................................................................. 355
Переменные и константы................................................................................................................... 356
Создание переменных и констант........................................................................................... 356
Присваивание значений переменным и константам........................................................ 359
Встроенные документы....................................................................................................................... 360
Заключительное замечание............................................................................................................... 363
Глава 26. Проектирование сверху вниз...................................................... 364
Функции командной оболочки........................................................................................................ 365
Локальные переменные...................................................................................................................... 368
Постоянное опробование сценария................................................................................................ 369
Заключительное замечание............................................................................................................... 372
Глава 27. Управление потоком выполнения: ветвление при помощи if.......... 373
Использование if................................................................................................................................... 373
Код завершения..................................................................................................................................... 374
Команда test............................................................................................................................................ 375
Выражения для проверки файлов.......................................................................................... 376
Выражения для проверки строк.............................................................................................. 378
Выражения для проверки целых чисел................................................................................. 380
Более современная версия команды test...................................................................................... 381
16   Оглавление
(( )) — для проверки целых чисел................................................................................................... 382
Объединение выражений................................................................................................................... 383
Операторы управления: еще один способ ветвления............................................................... 386
Заключительное замечание............................................................................................................... 386
Глава 28. Чтение ввода с клавиатуры......................................................... 388
read — чтение значений со стандартного ввода.......................................................................... 389
Параметры....................................................................................................................................... 392
Выделение полей в строке ввода с помощью IFS.............................................................. 392
Проверка ввода...................................................................................................................................... 395
Меню......................................................................................................................................................... 396
Заключительное замечание............................................................................................................... 398
Дополнительные сведения................................................................................................................. 398
Глава 29. Управление потоком выполнения: циклы while и until .................. 399
Циклы........................................................................................................................................................ 399
while........................................................................................................................................................... 400
Прерывание цикла................................................................................................................................ 402
until............................................................................................................................................................ 403
Чтение файлов в циклах..................................................................................................................... 404
Заключительное замечание............................................................................................................... 405
Глава 30. Поиск и устранение ошибок ....................................................... 406
Синтаксические ошибки.................................................................................................................... 406
Отсутствующие кавычки........................................................................................................... 407
Отсутствующие или неожиданные лексемы....................................................................... 407
Непредвиденная подстановка.................................................................................................. 408
Логические ошибки.............................................................................................................................. 409
Защитное программирование................................................................................................... 410
Проверка ввода.............................................................................................................................. 411
Тестирование.......................................................................................................................................... 412
Заглушки......................................................................................................................................... 412
Комплекты тестов......................................................................................................................... 413
Отладка..................................................................................................................................................... 413
Поиск проблемной области....................................................................................................... 413
Трассировка.................................................................................................................................... 414
Исследование значений в процессе выполнения.............................................................. 416
Заключительное замечание............................................................................................................... 417
Глава 31. Управление потоком выполнения:
ветвление с помощью case........................................................................ 418
case.............................................................................................................................................................. 418
Шаблоны.......................................................................................................................................... 420
Объединение нескольких шаблонов...................................................................................... 421
Заключительное замечание............................................................................................................... 422
Оглавление   17
Глава 32. Позиционные параметры ........................................................... 423
Доступ к командной строке............................................................................................................... 423
Определение числа аргументов............................................................................................... 424
shift — доступ к множеству аргументов................................................................................ 425
Простые приложения.................................................................................................................. 426
Использование позиционных параметров в функциях.................................................. 427
Обработка позиционных параметров скопом............................................................................. 427
Более сложное приложение............................................................................................................... 429
Заключительное замечание............................................................................................................... 432
Глава 33. Управление потоком выполнения: цикл for.................................. 436
for: традиционная форма.................................................................................................................... 436
for: форма в стиле языка C................................................................................................................. 439
Заключительное замечание............................................................................................................... 440
Глава 34. Строки и числа .......................................................................... 442
Подстановка параметров.................................................................................................................... 442
Простые параметры..................................................................................................................... 442
Подстановка пустых переменных........................................................................................... 443
Получение имен переменных .................................................................................................. 445
Операции со строками................................................................................................................ 445
Вычисление и подстановка арифметических выражений...................................................... 448
Основание системы счисления................................................................................................ 448
Унарные операторы...................................................................................................................... 449
Простая арифметика.................................................................................................................... 449
Присваивание................................................................................................................................. 450
Битовые операции........................................................................................................................ 453
Логические операторы................................................................................................................ 454
bc — язык калькулятора для вычислений с произвольной точностью...................... 456
Применение bc............................................................................................................................... 457
Прим