Введение
Часть I. Учетные записи

Глава 1. Понятие учетной записи UNIX
Регистрация в системе
Файлы, относящиеся к учетным записям пользователей
Файл /etc/passwd
Файл /etc/group
Файл /etc/shadow
Служебные учетные записи UNIX
Учетная запись root
Учетная запись bin
Учетная запись uucp
Учетная запись 1р
Другие учетные записи
Резюме

Глава 2. Операции с учетными записями
Изменение учетной записи
Регистрационное имя пользователя
Пароль
Идентификаторы пользователя и группы
Информация о пользователе
Рабочий каталог
Командная оболочка
Изменение прав доступа в системе
Команда login
Команда su
Команда newgrp
Команда exit
Исследование системы
Команда who
Команда w
Команда last
Команда finger
Команда uptime
Резюме


Часть II. Командные оболочки


Глава 3. Знакомство с командными оболочками
Немного истории
Понятие о среде выполнения команд
Принципы работы оболочек
Управление средой
Операции с потоками ввода/вывода
Контроль заданий
Запуск команд
Резюме

Глава 4. Обзор командных оболочек
Общие свойства оболочек
Символы шаблона
Подстановка результатов выполнения команд
Оболочка Bourne
Перенаправление ввода/вывода
Конвейеры
Управление средой
Выполнение заданий
Оболочка С
Отличия от оболочки Bourne
Журнал выполненных команд
Использование псевдонимов
Доступ к стеку каталогов
Управление заданиями
Оболочка Korn
Работа с журналом команд
Использование псевдонимов
Использование функций
Управление заданиями
Оболочка BASH
Встроенные команды
Команда chsh
Резюме

Глава 5. Программирование для оболочек
Переменные оболочек
Массивы
Ссылки на переменные
Использование команды typeset
Присваивание значений переменным
Удаление переменных
Использование параметров командной строки
Использование функций
Использование команды typeset для управления функциями
Автоматически загружаемые функции
Удаление функций
Использование арифметических выражений и условных операторов
Условные выражения в команде let
Сокращения
Другие условные выражения
Управление программой
Условные операторы
Операторы цикла
Использование команды getopts
Расширенные возможности ввода/вывода
Обработка сигналов
Отладка
Примеры сценариев оболочек
Программа усечения пути
Эмуляция команды uuto в оболочке Коrn
Резюме


Часть III. Операции с файлами


Глава 6. Введение в файловую систему
Структура файловой системы
Использование индексных дескрипторов
Работа со ссылками
Резюме

Глава 7. Поиски идентификация файлов
Поиск файлов
Использование команды ls
Использование команды find
Использование команды xargs
Использование команды which
Использование команды whereis
Идентификация файлов
И снова о команде Is
Использование команды file
Использование команды wc
Использование команд head и tail
Использование команд cat и more
Использование команды od
Резюме

Глава 8. Права доступа к файлам и операции с файлами
Права доступа к файлу
Бит сохранения программы и права SUID
Получение информации о правах доступа
Назначение прав доступа
Изменение стандартных прав доступа
Изменение прав доступа
Изменение владельцев и групп
Управление дисковым пространством
Использование стандартных команд
Создание и удаление каталогов
Создание специальных файлов
Определение свободного дискового пространства
Использование диска
Резюме

Глава 9. Комбинирование команд в UNIX
Интегрирование средств файловой системы
Интеграция файловой системы с оболочкой и регистрационными именами
пользователей
Несколько примеров
Подсчет числа файлов
Подсчет числа каталогов
Определение пользователей, чрезмерно использующих дисковое
пространство
Резюме


Часть IV. Обработка данных


Глава 10. Редактор ed
Использование редактора ed
Запуск ed
Основные форматы команды
Адресные спецификации
Получение справки
Загрузка файла
Отображение данных
Добавление текста
Удаление текста
Редактирование текста
Замена текста
Глобальные команды
Поиск
Установка меток
Сохранение текста и выход из редактора
Использование регулярных выражений
Простые регулярные выражения
Специальные символы
Списки символов
Слова
Группировка регулярных выражений
Повторные вхождения образца
Альтернативные шаблоны
Примеры типичных шаблонов
Резюме

Глава 11. Полноэкранные текстовые редакторы
Использование редактора vi
Запуск vi
Основы работы в редакторе vi
Дополнительные возможности редактора vi
Работа в режиме ех
Использование переменных
Использование команд ех
Хитрости для программистов
Файл инициализации vi
Редактор emacs
Начальные сведения о emacs
Основы работы в emacs
Дополнительные возможности emacs
Автозамена
Вырезание и вставка
Дополнительные возможности ввода
Файл инициализации редактора emacs
emacs - больше, чем просто редактор
Резюме

Глава 12. Команды для работы с текстом
Простые команды манипуляции текстом
Поиск строк по шаблону
Разбиение файлов
Разделение и слияние файлов
Сортировка текста
Удаление повторяющегося текста
Изменение текста
Редактирование символьных потоков
Программа работы с текстом awk
Принцип работы awk
Арифметические функции
Операции над строками
Некоторые полезные функции
Важные переменные
Ассоциативные массивы
Разделители полей и записей
Альтернативные способы ввода
Параметры командной строки
Примеры простых сценариев awk
Использование более сложных сценариев для работы с базой данных
Команды форматирования текста
Команда troff и справочные страницы
Гипертекстовая разметка
CGI
Резюме

Глава 13. Редактирование текстовых потоков
Редактирование потоков в конвейерных цепочках
Резюме


Часть V. Процессы


Глава 14. Процессы и планирование заданий
Процессы
Создание процесса
Завершение процесса
Управление ресурсами
Взаимодействие процессов
Взаимодействие процессов в UNIX System V
Планирование процессов
Как выполняется начальная загрузка компьютера
Резюме


Глава 15. Получение информации о процессах
Команда ps
Получение информации о процессах, связанных терминалом
Получение информации обо всех процессах
Получение информации о процессах, связанных с группой
Форматирование вывода
Получение информации о процессе
Получение информации о процессах, запущенных с терминалов
Получение информации о процессах пользователя
Использование специальных форматов вывода
Комбинирование параметров
Заключительные замечания
Команда ipcs
Резюме

Глава 16. Управление процессами
Планирование выполнения процессов
Команда at
Команда batch
Контроль доступа к командам at и batch
Команда crontab
Команда nohup
Команда nice
Управление заданиями
Запуск задания в фоновом режиме
Прерывание выполнения задания
Команда jobs
Номера задач
Команда fg
Команда bg
Команда wait
Завершение процессов и освобождение ресурсов
Команда kill
Перехват сигналов в командной оболочке
Перехват сигналов в программах
Резюме

Глава 17. Еще раз о процессах
Использование средств оболочки
Резюме


Часть VI. Сети и коммуникации


Глава 18. Понятие о сетевых коммуникациях
История развития компьютеров
Сети
Сравнительная характеристика локальных и глобальных сетей
Протокол UUCP
Как работает UUCP
Команды UUCP
Файлы
Управление каналом связи
Проверка работы системы UUCP
Резюме

Глава 19. Использование сетей
Модель сети
Физический и канальный уровни
Сетевой уровень
Транспортный уровень
Сеансовый уровень
Представительский уровень
Уровень приложений
Использование RPC
Принципы работы RPC
Отладка RPC
Сетевая файловая система
Виртуальная файловая система
Протокол NFS
Использование NFS
Демон буферного обмена данными
Средства диагностики NFS
Заключение
Сетевая информационная служба
Как работает служба NIS
Планы
Управление сервером
Управление клиентом NIS
Доступ к NIS из командной строки
Автоматическое монтирование
Использование локальной сети
Диагностика сети с помощью программы ping
Сетевые команды
Сетевые протоколы
Протокол SMTP
Протокол NNTP
Резюме

Глава 20. Использование электронной почты и новостей
Что такое Internet
Доступ к Internet с помощью электронной почты
Адреса электронной почты
Почтовые программы
Приобретение друзей и знаний с помощью списков рассылки
Поиск списков рассылки
Создание собственного списка рассылки
Праздник, который никогда не кончается: Usenet
Простой, но удивительно мощный интерфейс программы rn
Tin - альтернативная программа с экранным интерфейсом
Резюме


Часть VII. UNIX и Internet


Глава 21. Что такое Internet
История развития Internet
Как работает Internet
Порт
Поиск адреса удаленного компьютера
Получение информации из DNS
Примеры сеансов связи
Резюме

Глава 22. Средства Internet
Доступ к удаленным файловым системам с помощью FTP
Поиск файлов в Сети с помощью Archie
Меню из тысячи блюд: Gopher
Будущее Internet
Резюме
Об авторе

Глава 23. Методы эффективного использования Web-броузера
Броузеры
Lynx
Броузеры фирмы Netscape
Броузер Mozilla
Настройка броузера Netscape
Установка основных параметров
Настройка редактора
Настройка почты и новостей
Настройка параметров сети
Настройка системы безопасности
Закладки
Резюме

Глава 24. Установка и настройка Web-сервера
Web-сервер Apache
Что такое Apache
Получение дистрибутива сервера Apache
Установка сервера Apache
Базовая конфигурация
Тонкая настройка сервера
Список директив
Журнал регистрации
Netscape Enterprise Server
Интерфейс NSAP1
Резюме

Глава 25. Введение в HTML
Структура документа
Дескрипторы HTML
URL
Цвета
Заголовок документа
Тело документа
Гиперссылки
Комментарии
Заголовки
Шрифты
Разделители
Смещение текста
Изображения
Специальные символы
Списки
Таблицы
Фреймы
Формы
Листы стилей
Динамически сменяемые документы
Пример Web-страницы
Резюме

Глава 26. Разработка CGI-программ
Разработка CG1-программ
Серверные включения
Получение данных от броузера
Передача данных броузеру
Файлы cookie
Серверная группа
Переадресация на другой узел
Реальный пример CGI-программы
Анализ графика
Прогноз результатов спортивных соревнований
Отладка CGI-программ
Резюме

Глава 27. Оптимизация работы в Internet
Совместное использование средств
Использование программ оболочки для обработки данных Internet
Получение прогноза погоды по электронной почте
Управление данными графика
Резюме


Часть VIII. Система Х Windows


Глава 28. Общие сведения о системе Х Windows
История создания системы Х Windows
Принципы, лежащие в основе функционирования системы Х Windows
Структура программ системы Х Windows
Диспетчер окон
Резюме

Глава 29. Знакомство с системой Х Windows
Основы Х Windows
Сеанс связи клиента с сервером
Определение связи
Окончание сеанса связи
Обработка ошибок
Команда xinit и файл .xinitrc
Использование команды startx
Стандартные параметры
Первое приложение-клиент: ХТеrm
Меню программы ХТеrm
Вырезание и вставка текста в ХТеrm
Прокрутка текста в ХТеrm
Параметры командной строки ХТеrm
Ресурсы программы ХТеrm
Программа kterm
Ресурсы
Имена ресурсов
Значения ресурсов
Поиск значений, используемых по умолчанию
Формат ресурсов
Файл .Xdefaults
Определение имени ресурса
Использование комментариев
Программа xrdb
Стандартные клиенты Х Windows
Команда xrefresh
Команда xwininfo
Диспетчер терминалов Х Windows
Настройка xdm
Пользовательские файлы, применяемые в приложении xdm
Запуск диспетчера терминалов
Протокол XDMCP
Инициализация моего сеанса работы
Резюме

Глава 30. Использование диспетчеров окон
Для чего нужны диспетчеры окон
Три самых распространенных диспетчера окон
Диспетчер окон Motif
Диспетчер окон Open Look
Диспетчер окон Tab
Настройка диспетчера окон
Переопределение значений переменных
Переопределение функций кнопок
Пользовательские функции
Помещение кнопок в строку заголовка окна
Создание меню
Другие диспетчеры окон
Виртуальные диспетчеры окон
Стандарты графического интерфейса UNIX
Motif
Стандартный рабочий стол CDE
Резюме

Глава 31. Стандартные приложения X Windows
Приложения рабочего стола
Броузер справочного руководства
Диспетчер файлов xfm
Уведомление о поступлении почтовых сообщений
Буфер обмена Х Windows
Текстовый редактор Х Windows
Калькулятор
Лупа
Приложения, используемые для настройки
Получение списка доступных цветов
Получение информации о мониторе
- Выбор шрифта
Установка параметров сеанса работы
Управление корневым окном
Советы по настройке
Что должно содержаться в файле .xinitrc
Что должно содержаться в файле .twmrc
Что должно содержаться в файле .xfm/apps
Резюме

Глава 32. Полезные приложения Х Windows
Утилиты системы Х Windows
Получение информации о загрузке системы
Определение размера свободной памяти
Оценка времени простоя системы
Просмотр шрифтов
Обмен информацией между приложениями, не поддерживающими операций вы
резания и вставки
Изменение параметров экранного указателя и клавиатуры
Просмотр консольных сообщений
Завершение приложений
Запуск приложений с удаленного узла
Мультимедиа-приложения системы Х Windows
Создание и редактирование битовых карт
Получение графической копии экрана
Отображение графической копии экрана
Печать графических копий экрана
Вывод изображений, часть I
Вывод изображений, часть II
Воспроизведение анимации на компьютере под управлением UNIX
Сыграем партию?
Пятнашки
Тетрис для Х Windows
Лабиринты
Отслеживание положения указателя мыши
Пример из области газовой динамики
Вид Земли из космоса
Фазы Луны
Нашествие тараканов
Другие игры
Средства отладки Х Windows
Наблюдение за системными событиями
Определение параметров окна
Оценка производительности сервера
Резюме

Глава 33. Интеграция Х Windows и системы UNIX
Несколько примеров сценариев
Сценарии начальной загрузки
Настройка приложений
Использование сценариев оболочки
Администрирование Х Windows
Добавление нового цвета
Добавление нового шрифта
Резюме


Часть IX. Разработка приложений


Глава 34. UNIX - платформа для разработчиков
Преимущества UNIX
Недостатки UNIX
Резюме

Глава 35. Этапы разработки программного обеспечения
Постановка задачи
Построение структурной схемы программы
Разработка компонентов
Написание кода
Тестирование кода
Сопровождение программного продукта на рынке
Резюме

Глава 36. Языки программирования в UNIX: С и C++
Основы программирования на С
Введение
Первая программа на С
Переменные в С
Сложные типы данных: массивы и структуры
Приведение типов и присваивание
Управляющие конструкции
Указатели и динамические переменные
Ввод и вывод
Функции
Разработка программного обеспечения на языке С в UNIX
GNU С
Чтобы больше узнать о С
Введение
Первая программа на C++
Несколько слов о библиотеках
Комментарии в С ++
Ввод/вывод в C++
Строки в C++
Распределение памяти в С ++
Объектная ориентация и классы в C++
Стандартные значения аргументов в C++
Переопределение и полиморфизм в C++
Передача параметров в С ++
Постоянные параметры и переменные
Наследование
Дружественные функции
Стандартная библиотека шаблонов C++
GNU C++
C++ и Internet
Получение дальнейшей информации о C++
Резюме

Глава 37. Другие языки программирования: Java и Perl
Введение в Java
Первая Java-программа
Комментарии
Аплеты и приложения
Типы данных Java
Объектно-ориентированное программирование
Интерфейсные классы
Сборка мусора
Программный интерфейс приложения
Наследование
Строки
Библиотека AWT
Исключительные ситуации
Синтаксический анализ
Углубленное изучение Java
Введение в Perl
Первая программа на Perl
Сценарии
Переменные
Ввод данных
Файловый ввод/вывод
Операторы управления
Операции
Регулярные выражения, сравнение, поиск и замена
Специальные переменные
Более длинный пример
Язык Perl и создание CGl-программ
Приобретение Perl и модулей расширений
Другие ресурсы
Резюме

Глава 38. Средства разработки
Компиляторы
Компилятор с89 стандарта POSIX
Как работает компилятор
Структура файла a.out
Модульное программирование
Параметры командной строки компилятора с89
Параметры командной строки компилятора ее
Утилита make и ее сценарии
Параметры утилиты make
Правила утилиты make
Предопределенные макросы
Стандартные правила утилиты make
Специальные директивы
Сценарии утилиты make
Библиотеки
Статические библиотеки o
Динамически подключаемые библиотеки
Резюме

Глава 39. Отладка и сопровождение программ
Отладка кода
Основы работы с отладчиками
Исследование эффективности исходного кода
Улучшение структурированности кода
Программа форматирования кода cb
Оценка переносимости кода с помощью программы lint
Сопровождение программ
Файл дескрипторов для поиска подпрограмм
Перекрестные ссылки на переменные
Анализ таблицы внешних символов
Коммерческие программные продукты
Резюме

Глава 40. Методы оптимизации программ
Методы повышения эффективности программ
Оптимизация с использованием компилятора
Оптимизация кода
Команды повышения производительности
Получение подробной информации о выполнении программы
Простой процесс профилирования
Команды оценки производительности
Уменьшение размеров файла
Анализ размеров сегментов данных
Коммерческие программные продукты
Резюме

Глава 41. Создание языковых анализаторов
Лексический анализ
Простейший пример использования lex
Использование lex
Параметры командной строки lex
Файл спецификации lex
Функции и переменные lex
Объявления таблиц lex
Состояния lex
Забавное использование lex - программа Valspeak
Синтаксический анализ
Простейший пример использования программы уасс
Использование Yacc
Параметры командной строки уасс
Файл спецификаций уасс
Функции и переменные Yacc
Интеграция lex и уасс
Синтаксический анализатор дат
Резюме

Глава 42. Совместное использование средств разработки
Среда разработки программного обеспечения
Набор инструментальных средств Cscope
Коммерческие программы
Создание make-файлов с расширенными возможностями
Запись собственных правил
Применение make-файлов для решения задач,
не связанных с разработкой программ
Автоматические зависимости
Утилита imake
Переносимость
Параметры командной строки утилиты imake
Как это все работает?
Простые правила утилиты imake
Пример файла для утилиты imake
Резюме


Часть X. Утилиты GNU


Глава 43. Зачем платить за то, что можно получить бесплатно?
Что такое утилиты GNU
История FSF
Перспективы дальнейшего развития

Глава 44. Использование средств разработки GNU
Компиляторы GNU
Компиляторы С, C++ и Objective С
Компилятор FORTRAN 77
Компилятор CUSP
Компилятор ADA95
Использование компилятора GCC
Параметры препроцессора
Параметры управления языком
Параметры компоновщика
Указание каталогов для поиска файлов
Параметры изменения режима выдачи предупредительных сообщений
Параметры отладки
Параметры оптимизации
Параметры выбора платформы
Отладчик GNU
Запуск GDB
Параметры командной строки
Команды GDB
Библиотеки GNU
Библиотека С
Библиотека С++
Библиотека объектов NeXT
Средства разработки
Будущее средств разработки GNU
Резюме

Глава 45. Другие программные продукты GNU
Языковые средства GNU
Средства преобразования исходного кода программ
Среда тестирования DejaGNU
Библиотеки DLD
Утилита Flex
Система GNATS
Утилита Indent
Библиотека Ncurses
Интерпретатор Smalltalk
Другое программное обеспечение GNU
Bash
Игра GNU Chess
Утилита Cpio
Редактор Emacs GNU
Программа Finger
Программа Gawk
Пакет Ghostscript и программа Ghostview
Программа Grep
Утилита Groff
Утилиты Gzip, Gunzip и Zcat
Пакет Ispell
Утилита less
Игра Nethack
Интерпретатор Perl
TeX
Резюме


Часть XI. Системное администрирование

Глава 46. Один день из жизни системного администратора
Как стать системным администратором
Пробуждение
Солнце всходит на востоке
Рабочий полдень
Когда пыль улеглась
Солнце заходит на западе
Резюме

Глава 47. Когда к вам начинают обращаться пользователи
Управление учетными записями
Кто там?
Как я их называю?
Где их можно разместить?
Какую оболочку они будут использовать?
Все в порядке, приступим к делу!
Особые случаи
Содержите все в порядке
Автоматизация процесса
Удаление учетной записи
Несколько важных замечаний
Выполнение процедуры
Автоматизация процесса
Управление процессами печати
Стандартное устройство печати
Где мои распечатки?
Лишь неразборчивый мусор!
Процесс печати: как избежать проблем
Снижение интенсивности печатных работ
Обслуживание сервера электронной почты
Как сохранить личную информацию
Прежде чем разбираться
Отслеживание неправильных адресов
Другие распространенные ошибки
Скрытые и странные ошибки
Мистер sendmail
Подготовка к сражению
Определим нашу лексику
В бой!
Промажем клеем, отмотаем ленты
Макроэкономика
Перейдем к классам
Немного об опциях
Дайте мне заголовки, много заголовков!
Правила, правила, правила
Объедините их!
Что делать с программой обработки почты
Свалить с больной головы на здоровую...
Окно в мир
Под другим именем - псевдонимы
Подведем итоги
Преодолевая препятствия
Резюме

Глава 48. Средства хранения данных
Что такое архиваторы?
Архиваторы UNIX
Архивы tar
Архивы cpio
Команда pax
Архиваторы специального назначения
Утилита shar
Утилиты uuencode и uudecode
Резюме

Глава 49. Средства сжатия данных
Что такое сжатие данных
Как происходит сжатие данных
Коды переменной длины
Коды фиксированной длины
Комбинированные методы
Утилиты сжатия данных системы UNIX
Общие сведения о командах сжатия
Выбор имен файлов: общие комментарии
Утилита pack
Утилита compact
Утилита compress
Утилита decompress
Другие утилиты сжатия данных UNIX
Утилита gzip
Утилита gunzip
Утилита zcat
Специальные команды, связанные с gzip
Переносимые версии компрессоров/архиваторов
Резюме

Глава 50. Сетевые средства и Internet
Минутку внимания, пожалуйста...
Все порты в состоянии волнения
Полицейский на страже
Какова же общая картина?
Типичный пример
Файлы, файлы, доставка файлов!
Эй ты, маленький брат...
Кто я? Где я?
Другие стандартные службы UNIX
Популярные службы UNIX
Присматривая за всем
И все-таки, какие службы у меня запускаются?
Ограничение доступа
Эта бесконечная сеть
Резюме

Глава 51. Когда произошел сбой
Сбои аппаратных средств
Сбои программного обеспечения
Решение проблем
Это не кино, это программа crash!
С чего начать?
Программа crash в действии
Резюме

Глава 52. Разработка эффективных средств администрирования
Закладываем фундамент
С чего начать?
Получение информации о состоянии системы с помощью команды ps
Системные файлы учета ресурсов
Анализ аварийных ситуаций
Практические советы
Следите за изменениями!
Устранение ненужной избыточности
Формирование своего набора инструментов
Не изобретайте колесо и не собирайте роскошный автомобиль
Могу ли я одолжить ваши колеса?
Получение помощи от поставщиков
Мир насекомых (bugs, жучки, ошибки!)
Тайное сообщество Internet
Когда ошибки возвращаются поставщику
Двигаясь против течения
Резервный вариант
Определение причин сбоев
Вернемся к нормальному режиму работы?
Завершить или продолжить работу?
Примеры из личного опыта
Резюме


Часть XII. Перспективы развития UNIX

Глава 53. Разновидности системы UNIX
Краткий экскурс в историю
Для чего все это знать?
Резюме

Глава 54. Триумфальное шествие Unux
Что такое Linux?
Где найти Linux
Linux и Windows NT
Результаты тестирования от Smart Reseller
Результаты тестирования, выполненные
сертифицированными специалистами Microsoft
Реакция Microsoft
Заблуждения относительно Linux
Резюме

Глава 55. Будущее UNIX
Куда мы идем?
Linux
Серверы Internet
Многопроцессорные системы
Стандарты
Конкуренты
Windows NT
Open VMS
Plan 9 (из космического пространства?)
Резюме

Приложение. Общая лицензия GNU
Преамбула
Условия копирования, распространения
и модификации программных продуктов
Гарантия отсутствует
Как применить эти соглашения к новым программным продуктам
Оглавление