UNIX — универсальная среда программирования.
- Предисловия. ⇢
- Предисловие к русскому изданию. ⇢
- Предисловие. ⇢
- Глава 1. UNIX для начинающих. ⇢
- 1.1 Итак, приступаем. ⇢
- Некоторые предварительные замечания о терминалах и вводе символов.
- Сеанс работы с UNIX.
- Вход в систему.
- Ввод команд.
- Странное поведение терминала.
- Упражнение 1.1.
- Упражнение 1.2.
- Опережающий ввод.
- Остановка программы.
- Выход из системы.
- Почта.
- Служба новостей.
- Справочное руководство.
- Автоматизированный справочник.
- Игры.
- 1.2 Повседневная работа: файлы и основные команды. ⇢
- Создание файлов. Редактор.
- Что за файлы здесь?
- Печать файлов. Команды cat и pr.
- Пересылка, копирование и удаление файлов. Команды mv, cp, rm.
- Чем может быть имя файла?
- Группа полезных команд.
- Сводка команд файловой системы.
- 1.3 Продолжаем изучать файлы: каталоги. ⇢
- Упражнение 1.3.
- Смена каталога. Команда cd.
- 1.4 Интерпретатор shell. ⇢
- Сокращенное имя файла.
- Упражнение 1.4.
- Переключение ввода-вывода.
- Упражнение 1.5.
- Упражнение 1.6.
- Программные каналы.
- Упражнение 1.7.
- Процессы.
- Создание среды.
- 1.5 Другие средства UNIX. ⇢
- Историческая и библиографическая справка.
- Глава 2. Файловая система. ⇢
- 2.1 Основные сведения о файлах. ⇢
- Упражнение 2.1.
- 2.2 Что хранится в файле? ⇢
- 2.3. Каталоги и имена файлов. ⇢
- Упражнение 2.2.
- Упражнение 2.3.
- Упражнение 2.4.
- 2.4. Права доступа. ⇢
- Упражнение 2.5.
- 2.5 Индексные дескрипторы. ⇢
- Упражнение 2.6.
- Упражнение 2.7.
- Упражнение 2.8.
- 2.6 Иерархия каталогов. ⇢
- 2.7 Файлы устройств. ⇢
- Упражнение 2.9.
- Упражнение 2.10.
- Упражнение 2.11.
- Упражнение 2.12.
- Упражнение 2.13.
- Историческая и библиографическая справка.
- Глава 3. Возможности интерпретатора shell. ⇢
- 3.1 Структура командной строки. ⇢
- Упражнение 3.1.
- 3.2 Метасимволы. ⇢
- Упражнение 3.2.
- Некоторые дополнительные сведения о команде echo.
- UNIX и Эхо.
- Упражнение 3.3.
- Упражнение 3.4.
- Упражнение 3.5.
- Упражнение 3.6.
- Упражнение 3.7.
- Упражнение 3.8.
- 3.3 Создание новых команд. ⇢
- Упражнение 3.9.
- 3.4 Аргументы и параметры команд. ⇢
- 3.5 Результат выполнения программы в качестве аргумента. ⇢
- Упражнение 3.10.
- Упражнение 3.11.
- Упражнение 3.12.
- 3.6 Переменные языка shell. ⇢
- Упражнение 3.13.
- 3.7 Еще раз о переключении ввода-вывода. ⇢
- Упражнение 3.14.
- 3.8 Циклы в shell-программах. ⇢
- Упражнение 3.15.
- Упражнение 3.16.
- 3.9 Программа bundle: соберем все воедино. ⇢
- Упражнение 3.17.
- Упражнение 3.18.
- 3.10 Для чего нужно программировать на языке shell! ⇢
- Историческая и библиографическая справка.
- Глава 4. Фильтры. ⇢
- 4.1 Семейство программ grep. ⇢
- Упражнение 4.1.
- Упражнение 4.2.
- 4.2 Другие фильтры. ⇢
- Упражнение 4.3.
- Упражнение 4.4.
- 4.3 Потоковый редактор sed. ⇢
- Упражнение 4.5.
- Упражнение 4.6.
- 4.4 Язык awk поиска и обработки шаблонов. ⇢
- Печать.
- Шаблоны.
- Упражнение 4.7.
- Шаблоны BEGIN и END.
- Арифметика и переменные.
- Упражнение 4.8.
- Управление.
- Массивы.
- Ассоциативные массивы.
- Упражнение 4.9.
- Строки.
- Упражнение 4.10.
- Взаимодействие с интерпретатором.
- Служебная программа-календарь на языке awk.
- Упражнение 4.11.
- Упражнение 4.12.
- Упражнение 4.13.
- Упражнение 4.14.
- Дополнительная информация.
- 4.5 Хорошие файлы и хорошие фильтры. ⇢
- Упражнение 4.15.
- Историческая и библиографическая справка.
- Глава 5. Программирование на языке shell. ⇢
- 5.1 Совершенствование команды cal. ⇢
- Упражнение 5.1.
- Упражнение 5.2.
- Упражнение 5.3.
- 5.2 Что представляет собой команда which? ⇢
- Упражнение 5.4.
- Упражнение 5.5.
- Упражнение 5.6.
- Упражнение 5.7.
- Упражнение 5.8.
- 5.3 Циклы while и until: контроль входа в систему. ⇢
- Упражнение 5.9.
- Упражнение 5.10.
- Упражнение 5.11.
- Упражнение 5.12.
- Упражнение 5.13.
- 5.4 Команда trap: обработка прерываний. ⇢
- Упражнение 5.14.
- Упражнение 5.15.
- Упражнение 5.16.
- 5.5 Команда overwrite: замена файла. ⇢
- Упражнение 5.17.
- Упражнение 5.18.
- Упражнение 5.19.
- Упражнение 5.20.
- Упражнение 5.21.
- Упражнение 5.22.
- 5.6 Команда zap: уничтожение процесса по имени. ⇢
- Упражнение 5.23.
- 5.7 Команда pick: пробелы или аргументы. ⇢
- Упражнение 5.24.
- Упражнение 5.25.
- Упражнение 5.26.
- 5.8 Команда news: служба информации пользователей. ⇢
- Упражнение 5.27.
- Упражнение 5.28.
- 5.9 Команды get и put: контроль изменении файла. ⇢
- Упражнение 5.29.
- Упражнение 5.30.
- Упражнение 5.31.
- 5.10 Заключение. ⇢
- Историческая и библиографическая справка.
- Глава 6. Программирование с помощью стандартных функций ввода-вывода. ⇢
- 6.1 Стандартные входной и выходной потоки: программа vis. ⇢
- Упражнение 6.1.
- Упражнение 6.2.
- 6.2 Аргументы программы: vis версия 2. ⇢
- Упражнение 6.3.
- Упражнение 6.4.
- 6.3 Доступ к файлам: vis версия 3. ⇢
- Упражнение 6.5.
- 6.4 Вывод на экран порциями: программа p. ⇢
- Упражнение 6.6.
- Упражнение 6.7.
- Упражнение 6.8.
- Упражнение 6.9.
- 6.5 Пример: pick. ⇢
- Упражнение 6.10.
- 6.6 Об ошибках и отладке. ⇢
- 6.7 Пример: zap. ⇢
- Упражнение 6.11.
- Упражнение 6.12.
- 6.8 Диалоговая программа сравнения файлов: idiff. ⇢
- Упражнение 6.13.
- Упражнение 6.14.
- Упражнение 6.15.
- Упражнение 6.16.
- 6.9 Доступ к среде. ⇢
- Упражнение 6.17.
- Историческая и библиографическая справка.
- Глава 7. Системные вызовы в UNIX. ⇢
- 7.1 Ввод-вывод низкого уровня. ⇢
- Дескрипторы файлов.
- Файловый ввод-вывод: read и write.
- Упражнение 7.1.
- Упражнение 7.2.
- Создание файла: open, creat, close, unlink.
- Обработка ошибок: errno.
- Произвольный доступ: lseek.
- Упражнение 7.3.
- Упражнение 7.4.
- 7.2 Файловая система: каталоги. ⇢
- Упражнение 7.5.
- Упражнение: 7.6.
- Упражнение 7.7.
- Упражнение 7.8.
- Упражнение 7.9.
- 7.3 Файловая система: индексные дескрипторы. ⇢
- sv: иллюстрация обработки ошибок.
- Упражнение 7.10.
- Упражнение 7.11.
- Упражнение 7.12.
- Упражнение 7.13.
- Упражнение 7.14.
- Упражнение 7.15.
- Упражнение 7.16.
- 7.4 Процессы. ⇢
- Создание процесса низкого уровня: execlp и execvp.
- Упражнение 7.17.
- Управление процессами: fork и wait.
- 7.5 Сигналы и прерывания. ⇢
- Будильники.
- Упражнение 7.18.
- Историческая и библиографическая справка.
- Глава 8. Разработка программ. ⇢
- 8.1 Этап 1: калькулятор с четырьмя действиями. ⇢
- Грамматика.
- Программа yacc.
- Использование программ на этапе 1.
- Упражнение 8.1.
- Внесение изменений — унарный минус.
- Упражнение 8.2.
- Некоторые замечания относительно make.
- 8.2 Этап 2: переменные и восстановление после ошибки. ⇢
- Упражнение 8.3.
- Упражнение 8.4.
- 8.3 Этап 3: переменные с произвольными именами; встроенные функции. ⇢
- Упражнение 8.5.
- Упражнение: 8.6.
- Упражнение 8.7.
- Упражнение 8.8.
- Еще одно замечание относительно make.
- Несколько замечаний относительно lex.
- Упражнение 8.9.
- 8.4 Этап 4: компиляция на машину. ⇢
- И снова о make.
- Упражнение 8.10.
- Упражнение 8.11.
- 8.5 Этап 5: структуры управления и операции отношений. ⇢
- Упражнение 8.12.
- Упражнение 8.13.
- Упражнение 8.14.
- Упражнение 8.15.
- Упражнение 8.16.
- Упражнение 8.17.
- 8.6 Этап 6: функции и процедуры; ввод-вывод. ⇢
- Упражнение 8.18.
- Упражнение 8.19.
- Упражнение 8.20.
- Упражнение 8.21.
- 8.7 Оценка времени выполнения. ⇢
- Упражнение 8.22.
- 8.8 Заключение. ⇢
- Историческая и библиографическая справка.
- Глава 9. Подготовка документации. ⇢
- 9.1 Пакет макроопределений ms. ⇢
- Hoc — диалоговый язык для арифметики с плавающей точкой.
- 1. Выражения.
- Отображения.
- Смена шрифта.
- Смешанные команды.
- Пакет макроопределений mm.
- Упражнение 9.1.
- 9.2 Уровень troff. ⇢
- Имена символов.
- Смена шрифта и размера символов текста.
- Основные команды troff.
- Определение макрокоманд.
- 9.3 Препроцессоры tbl и eqn. ⇢
- Таблицы.
- Таблица 1: Операции по порядку уменьшения приоритета.
- Математические выражения.
- Таблица 3: Встроенные константы.
- Получение выходного потока.
- Упражнение 9.2.
- Упражнение 9.3.
- Упражнение 9.4.
- Упражнение 9.5.
- Упражнение 9.6.
- Упражнение 9.7.
- 9.4 Справочник. ⇢
- HOC(1) HOC(1).
- NAME.
- SYNOPSYS.
- DESCRIPTION.
- "SEE ALSO".
- BUGS.
- Упражнение 9.8.
- 9.5 Дополнительные средства для подготовки документации. ⇢
- Историческая и библиографическая справка.
- Глава 10. Эпилог. ⇢
- Приложение 1. Краткое описание редактора. ⇢
- Основные сведения.
- Временная передача управления shell с помощью '!'.
- Печать.
- Образцы.
- Добавление, замена, исключение, вставка.
- Подстановка, аннулирование.
- Метасимволы и регулярные выражения.
- Глобальные команды.
- Перемещение и копирование строк.
- Метки и номера строк.
- Объединение, расщепление и реорганизация строк.
- Команды, работающие с файлами.
- Шифрование.
- Сводка команд.
- Упражнение.
- Приложение 2. Справочное руководство по hoc. ⇢
- РЕЗЮМЕ.
- Выражения.
- Операторы и поток управления.
- Ввод и вывод: read и print.
- Функции и процедуры.
- Примеры.
- Приложение 3. Исходные тексты калькулятора hoc. ⇢
- 3.1 hoc1. ⇢
- 3.1.1 makefile. ⇢
- 3.1.2 hoc.y. ⇢
- 3.1.3 hoc1.y, версия 1.5. ⇢
- 3.2 hoc2. ⇢
- 3.2.1 hoc.y. ⇢
- 3.2.2 makefile. ⇢
- 3.3 hoc3. ⇢
- 3.3.1 makefile. ⇢
- 3.3.2 hoc.h. ⇢
- 3.3.3 hoc.y. ⇢
- 3.3.4 init.c. ⇢
- 3.3.5 math.c. ⇢
- 3.3.6 symbol.c. ⇢
- 3.4 hoc3 с lex. ⇢
- 3.4.1. hoc.h. ⇢
- 3.4.2 hoc.y. ⇢
- 3.4.3 init.c. ⇢
- 3.4.4. lex.l. ⇢
- 3.4.5 makefile. ⇢
- 3.4.6 math.c. ⇢
- 3.4.7 symbol.c. ⇢
- 3.5 hoc4. ⇢
- 3.5.1 code.c. ⇢
- 3.5.2 hoc.h. ⇢
- 3.5.3 hoc.y. ⇢
- 3.5.4 init.c. ⇢
- 3.5.5. makefile. ⇢
- 3.5.6. math.c. ⇢
- 3.5.7 symbol.c. ⇢
- 3.6 hoc5. ⇢
- 3.6.1 code.c. ⇢
- 3.6.2 fib. ⇢
- 3.6.3 fib2. ⇢
- 3.6.4 hoc.h. ⇢
- 3.6.5 hoc.y. ⇢
- 3.6.6 init.c. ⇢
- 3.6.7 makefile. ⇢
- 3.6.8 math.c. ⇢
- 3.6.9 symbol.c. ⇢
- 3.7 hoc6. ⇢
- 3.7.1 ack. ⇢
- 3.7.2 ack1. ⇢
- 3.7.3 code.c. ⇢
- 3.7.4 double. ⇢
- 3.7.5 fac. ⇢
- 3.7.6 fac1. ⇢
- 3.7.7 fac2. ⇢
- 3.7.8 fib. ⇢
- 3.7.9 fib2. ⇢
- 3.7.10 fibsum. ⇢
- 3.7.11 fibtest. ⇢
- 3.7.12 hoc.h. ⇢
- 3.7.13 hoc.ms. ⇢
- 3.7.14 hoc.y. ⇢
- 3.7.15 init.c. ⇢
- 3.7.16 makeapp. ⇢
- 3.7.17 makefile. ⇢
- 3.7.18 math.c. ⇢
- 3.7.19 mbox. ⇢
- 3.7.20 symbol.c. ⇢
- 3.8 Всякая всячина. ⇢
- 3.8.1 addup1. ⇢
- 3.8.2. addup2. ⇢
- 3.8.3 backup. ⇢
- 3.8.4 backwards. ⇢
- 3.8.5 badpick.c. ⇢
- 3.8.6 bundle. ⇢
- 3.8.7 cal. ⇢
- 3.8.8 calendar1. ⇢
- 3.8.9 calendar2. ⇢
- 3.8.10 calendar3. ⇢
- 3.8.11 cat0.c. ⇢
- 3.8.12 checkmail.c. ⇢
- 3.8.13 checkmail.sh. ⇢
- 3.8.14 cp.c. ⇢
- 3.8.15 doctype. ⇢
- 3.8.16 double. ⇢
- 3.8.17 efopen.c. ⇢
- 3.8.18 error.c. ⇢
- 3.8.19 field1. ⇢
- 3.8.20 field2. ⇢
- 3.8.21 fold. ⇢
- 3.8.22 frequent. ⇢
- 3.8.23 frequent2. ⇢
- 3.8.24 get. ⇢
- 3.8.25 get.с. ⇢
- 3.8.26 getname. ⇢
- 3.8.27 idiff.c. ⇢
- 3.8.28 makefile. ⇢
- 3.8.29 newer. ⇢
- 3.8.30 news1. ⇢
- 3.8.31 news2. ⇢
- 3.8.32 news3. ⇢
- 3.8.33 nohup. ⇢
- 3.8.34 older. ⇢
- 3.8.35 overwrite1. ⇢
- 3.8.36 overwrite2. ⇢
- 3.8.37 overwrite3. ⇢
- 3.8.38 p1.c. ⇢
- 3.8.39 p2.c. ⇢
- 3.8.40 p3.c. ⇢
- 3.8.41 p4.c. ⇢
- 3.8.42 pick1. ⇢
- 3.8.43 pick.c. ⇢
- 3.8.44 prpages. ⇢
- 3.8.45 put. ⇢
- 3.8.46 readslow.c. ⇢
- 3.8.47 replace. ⇢
- 3.8.48 signaltest.c. ⇢
- 3.8.49 spname.c. ⇢
- 3.8.50 strindex.c. ⇢
- 3.8.51 sv.c. ⇢
- 3.8.52 system1.c. ⇢
- 3.8.53 system.c. ⇢
- 3.8.54 timeout.c. ⇢
- 3.8.55 toolong. ⇢
- 3.8.56 ttyin1.c. ⇢
- 3.8.57 ttyin2.c. ⇢
- 3.5.58 vis1.c. ⇢
- 3.5.59 vis2.c. ⇢
- 3.8.60 vis3.c. ⇢
- 3.8.61 waitfile.c. ⇢
- 3.8.62 watchfor. ⇢
- 3.8.63 watchwho. ⇢
- 3.8.64 which1. ⇢
- 3.8.65 which1.H. ⇢
- 3.8.66 which2. ⇢
- 3.8.67 wordfreq. ⇢
- 3.8.68 zap1. ⇢
- 3.8.69 zap2. ⇢
- 3.8.70 zap.c. ⇢
- Примечания. ⇢
Брайан Уилсон Керниган, Роб Пайк.