- •Операционная система unix (руководство пользователя)
- •1. Общие сведения о системе Unix
- •1.1. Основные функции и компоненты системы unix
- •1.2. Ядро
- •1.4. Команды
- •1.4.1. Что делают команды
- •1.4.2. Как выполнять команды
- •1.5. Файловая система
- •1.5.1. Обыкновенные файлы
- •1.5.2. Справочники
- •1.5.3. Специальные файлы
- •1.5.4. Символические каналы связи
- •1.6. Расположение системы
- •1.7. Принятые соглашения
- •2. Основные сведения для пользователей Unix
- •2.1. Терминал
- •2.2. Требуемые для установки терминальные характеристики
- •2.3. Характеристики клавиатуры
- •2.4. Соглашения по вводу
- •2.5. Подсказка команды
- •2.6. Исправление ошибок ввода
- •2.6.1. Стереть текущую строку: знак @
- •2.6.3. Переназначение функции удаления
- •2.7. Использование специальных символов как буквенных
- •2.8. Скорость
- •2.9. Останов команд
- •2.10. Использование символов управления
- •2.11. Получение регистрационного имени
- •2.12. Связь с системой unix
- •2.13. Процедура регистрации
- •2.14. Пароль
- •2.16. Простые команды
- •2.17. Выход из системы
- •3. Файловая система
- •3.1. Структура файловой системы
- •3.2. Ваш собственный справочник
- •3.3. Текущий справочник
- •3.4. Имя пути
- •3.4.1. Полное имя пути
- •3.4.2. Родственное имя пути
- •3.5. Правила именования справочников и файлов
- •3.6. Организация справочника
- •3.6.1. Команда mkdir - создать справочник
- •3.6.2. Команда ls - напечатать содержимое справочника
- •3.6.2.1. Часто используемые ключи команды ls
- •3.7. Команда cd - изменить текущий справочник
- •3.8. Команда rmdir - удалить справочник
- •3.9. Доступ к файлу и работа с ним
- •3.10. Основные команды
- •3.10.1. Команды cat, pg, pr - распечатать содержимое файла
- •3.10.1.1. Команда cat
- •3.10.1.2. Команда pg
- •3.10.1.3. Команда pr
- •3.10.2. Команда cp - сделать копию файла
- •3.10.3. Команда mv - переименование файла
- •3.10.4. Команда rm - удалить файл
- •3.10.5. Команда wc - подсчет строк, слов и символов
- •3.10.6. Команда chmod - изменить статус файла
- •3.10.6.1. Как определить права
- •3.10.6.2. Как изменить существующие права
- •3.10.6.3. Альтернативный метод
- •3.10.7. Дополнительные команды
- •3.10.7.1. Команда diff
- •3.10.7.2. Команда grep
- •3.10.7.3. Команда sort
- •4. Обзор программных средств
- •4.2.3. Режимы
- •4.2.4. Построчный редактор
- •4.2.5. Экранный редактор
- •4.2.6. Использование shell
- •4.2.7. Применение средств системы
- •4.2.8. Окружение компьютера
- •4.2.9. Программирование в shell
- •4.2.10. Программирование с помощью awk
- •4.3. Электронная связь
- •4.4. Программирование в системе unix
- •5. Руководство по командной среде face
- •5.1. Что такое face?
- •5.1.1. Организация этого раздела
- •5.2. Введение
- •5.2.1. Регистрация в системе
- •5.2.2. Структура экрана face
- •5.2.2.1. Заголовок
- •5.2.2.2. Рабочая область
- •5.2.2.3. Строка сообщения
- •5.2.2.4. Командная строка
- •5.2.2.5. Метки функциональных клавиш
- •5.3. Что вы увидите после регистрации
- •5.3.1. Альтернативные последовательности
- •5.3.2. Как использовать меню
- •5.3.2.1. Метки функциональных клавиш в меню
- •5.3.2.2. Перемещение в меню
- •5.3.2.3. Выбор пункта меню
- •5.3.3. Как работать с формой
- •5.3.3.1. Метки функциональных клавиш в формах
- •5.3.3.2. Перемещение в форме и редактирование полей.
- •5.3.4. Перемещение от окна к окну.
- •5.3.4.1. Переход к другому окну с помощью командной строки
- •5.3.4.2. Перемещение от окна к окну с помощью функциональных клавиш
- •5.3.4.3. Перемещение от окна к окну с помощью команды frm-mgmt.
- •5.3.5. Управление внешним видом вашего оффиса
- •5.3.5.1. Перемещение окна
- •5.3.5.2. Изменение формы окна
- •5.3.6. Командное меню
- •5.3.7. Получение помощи
- •5.3.7.1. Помощь по командам, меню и полям форм face
- •5.3.7.2. Получение помощи о face
- •5.3.8. Выход из face
- •6. Редактор текстов ed
- •6.1. Введение
- •6.2. Вызов редактора
- •6.2.1. Дозапись текста
- •6.3. Запись файла
- •6.4. Выход из редактора
- •6.5. Чтение файла
- •6.5.1. Команда редактирования файла (e)
- •6.5.2. Команда чтения файла (r)
- •6.6. Печать текста
- •6.6.1. Команда печати (p)
- •6.6.2. Команда печати (l)
- •6.7. Просмотр файла
- •6.7.1. Команда печати (n)
- •6.8. Команда удаления строк (d)
- •Удаление из буфера строк с 4-й по последнюю включительно. В буфере после выполнения команды останется 3 первых строки. Текущей строкой станет третья строка буфера. 6.9. Команда отмены редакции (u)
- •6.10. Команда замены (s)
- •6.11. Команда поиска контекста
- •6.11.1. Конструкция /.../
- •6.11.2. Конструкция ?...?
- •6.11.3. Продолжение поиска
- •6.12. Команда вставки строк (I)
- •6.13. Команда замены строк (c)
- •6.14. Работа со строками
- •6.14.1. Разбиение строк
- •6.14.2. Объединение строк (j)
- •6.14.3. Копирование строк (t)
- •6.14.4. Перестройка строк
- •6.14.5. Маркеры
- •6.14.6. Адресация строк в редакторе
- •6.14.6.1. Адресная арифметика
- •6.14.6.2. Номера строк и указатель текущей строки
- •6.14.6.3. Изменение указателя текущей строки
- •6.14.6.4. Прерывание работы редактора
- •6.14.7. Глобальные команды
- •6.14.7.1. Команда g
- •6.14.7.2. Команда V
- •Заменить во всех строках файла последовательность "aaa" на "bbb" кроме строк, в которых имеется последовательность "XXX".6.15. Работа с файлами
- •6.15.1. Команда указания имени файла (f)
- •6.15.2. Объединение файлов
- •6.15.3. Разбиение файла
- •6.15.4. Перекомпоновка файла
- •6.15.4.1. Перемещение строк (команда m)
- •6.15.4.2. Копирование строк текста (t)
- •6.16. Специальные символы
- •6.16.1. Метасимвол . (точка)
- •6.16.5. Метасимвол * (звездочка)
- •6.16.6. Метасимволы [] (квадратные скобки)
- •6.16.7. Метасимвол & (амперсенд)
- •6.17.1. Временный выход из редактора
- •6.17.2. Восстановление после останова
- •6.17.3. Командные файлы редактора
- •6.17.4. Режим шифрования
- •6.17.5. Программа grep
- •6.17.6. Команды помощи
- •6.18. Сообщения редактора
- •6.19. Краткий обзор команд
- •7. Экранный редактор VI
- •7.1. Введение
- •7.2.2. Изменение конфигурации
- •7.3. Создание файла
- •Когда вы введете команду VI с именем файла, VI очистит экран и отобразит окно, в которое вы можете вводить и редактировать текст. 7.4. Режимы редактора
- •7.4.1. Создание текста в режиме Append
- •7.4.2. Выход из режима Append
- •7.5. Редактирование текста в командном режиме
- •7.5.1. Перемещение курсора
- •7.5.2. Удаление текста
- •7.5.3. Добавление текста
- •7.6. Завершение работы c VI
- •7.7. Перемещение курсора по экрану
- •7.7.1. Позиционирование курсора на символ
- •7.7.1.1. Переместить курсор в начало или конец строки
- •7.7.1.2. Поиск символа в строке
- •7.7.1.3. Команда перемещения: - (знак минус)
- •7.7.2. Позиционирование слов
- •7.7.3. Позиционирование курсора на предложение
- •7.7.4. Позиционирование курсора по параграфам
- •7.7.5. Позиционирование в окне
- •7.8. Позиционирование курсора на неотображаемом тексте
- •7.8.1. Прокрутка текста
- •7.9. Переход на указанную строку
- •7.10. Номера строк
- •7.11. Поиск символов по шаблону: команды / и ?
- •7.12. Создание текста
- •7.12.1. Добавить текст
- •7.12.2. Вставить текст
- •7.12.3. Открыть строку для текста
- •7.13. Удаление текста
- •7.13.1. Удаление текста в режиме ввода текста
- •7.13.2. Отменить последнюю команду
- •7.14. Команды удаления в командном режиме
- •7.14.1. Удаление слов
- •7.14.2. Удаление параграфов
- •7.14.3. Удаление строк
- •7.14.4. Удаление текста после курсора
- •7.15. Модификация текста
- •7.15.1. Замена текста
- •7.15.2. Подстановка текста
- •7.15.3. Изменение текста
- •7.16. Извлечение и присоединение текста
- •7.16.1. Перемещение текста
- •7.16.2. Перемещение букв
- •7.16.3. Копирование текста
- •7.17. Копирование и перемещение текста с использованием регистров
- •7.18. Специальные команды
- •7.18.1. Повторить последнюю команду
- •7.18.2. Объединение строк
- •7.18.3. Очистить окно и восстановить текст
- •7.18.4. Заменить нижний регистр на верхний и vice versa
- •7.19. Использование команд построчного редактора
- •7.19.1. Временный возврат к shell
- •7.19.2. Запись текста в новый файл
- •7.19.3. Переход к указанной строке
- •7.19.4. Удалить остаток буфера
- •7.19.5. Добавить файл в буфер
- •7.19.6. Провести глобальные изменения
- •7.20. Завершение работы с редактором VI
- •7.21. Специальные опции для VI
- •7.21.1. Восстановление потерянного файла
- •7.21.2. Редактирование нескольких файлов
- •7.21.3. Просмотр файла
- •8. Shell - интерпретатор командного языка
- •8.1. Метасимволы
- •8.1.1. Поиск всех символов (метасимвол *)
- •8.1.2. Поиск по одному символу (метасимвол ?)
- •8.1.3. Поиск одного набора (метасимвол [])
- •8.2. Специальные символы
- •8.2.1. Запуск команды в фоновом режиме (символ &)
- •8.2.2. Последовательное выполнение команд (символ ;)
- •8.2.4. Отмена специального значения (метасимвол кавычки)
- •8.2.4.1. Использование кавычек для отмены значения символа пробел
- •8.3. Перенаправление ввода и вывода
- •8.3.3. Добавить вывод в существующий файл
- •8.3.3.1. Некоторые применения перенаправления вывода
- •8.3.3.2. Комбинирование фонового режима и перенаправления вывода
- •8.3.4. Перенаправление вывода команде
- •8.3.5. Подстановка вывода в качестве аргумента
- •8.4. Выполнение, останов и повторный запуск процессов
- •8.4.1. Запуск команд в заданное время
- •8.4.2. Получить состояние запущенного процесса
- •8.4.3. Завершение активных процессов
- •8.4.4. Запуск остановленного задания
- •8.4.5. Использование команды nohup
- •9. Средства программирования shell
- •9.1. Программы shell
- •9.1.1. Создание простых программ shell
- •9.1.2. Выполнение программ shell
- •9.1.3. Создание справочника bin для исполняемых файлов
- •9.1.4. Ограничения при именовании программ shell
- •9.2. Переменные
- •9.2.1. Позиционные параметры
- •9.2.2. Специальные параметры
- •9.2.3. Именованные переменные
- •9.2.4. Присвоение значений переменным
- •9.2.4.1. Использование команды read
- •9.2.4.2. Перенаправление вывода команды в переменную
- •9.2.4.3. Присвоение позиционного параметра переменной
- •9.3. Конструкции языка программирования shell
- •9.3.1. Комментарии
- •9.3.3. Использование ed в shell программе
- •9.3.4. Коды завершения
- •9.3.4.1. Проверка кодов завершения
- •9.3.5. Циклы
- •9.3.5.1. Оператор for
- •9.3.5.2. Оператор while
- •9.3.6. Использование /dev/null
- •9.3.7. Условные операторы
- •9.3.8. Безусловная передача управления
- •9.4. Отладка программы
- •9.4.1. Модификация окружения
- •9.4.2. Добавление команд в файл .Profile
- •9.4.3. Установка характеристик терминала
- •9.5. Использование shell переменных
- •10.1. Основные сведения об awk
- •10.1.1. Структура программы
- •10.1.2. Поля
- •10.1.3. Печать
- •10.2. Печать форматированного файла
- •10.3. Простые шаблоны
- •10.4. Простые действия
- •10.4.1. Встроенные переменные
- •10.4.2. Определенные пользователем переменные
- •10.4.2.1. Функции
- •10.5. Примеры некоторых полезных программ
- •10.6. Сообщения об ошибках
- •10.7. Шаблоны
- •10.7.1. Шаблоны begin и end
- •10.8. Выражения отношения
- •10.9. Регулярные выражения
- •10.10. Комбинация шаблонов
- •10.11. Область шаблона
- •10.12. Действие
- •10.12.1. Арифметические действия
- •10.13. Строки и строковые функции
- •10.14. Поле переменных
- •10.15. Номер или строка
- •10.16. Операторы управления потоком
- •10.17. Массивы
- •10.18. Функции, определенные пользователем
- •10.19. Комментарии
- •10.20. Вывод
- •10.20.1. Оператор print
- •10.20.2. Разделители вывода
- •10.20.3. Оператор printf
- •10.20.4. Вывод в файлы
- •10.20.5. Вывод в канал
- •10.21. Ввод
- •10.21.1. Файлы и каналы
- •10.21.2. Разделители ввода
- •10.22. Многострочные записи
- •10.23. Функция getline
- •10.24. Аргументы командной строки
- •10.25. Использование awk с другими командами и с shell
- •10.25.1. Функция system
- •10.25.2. Взаимодействие с shell
- •10.26. Примеры использования
- •10.26.1. Генерирование отчетов
- •10.26.2. Дополнительные примеры
- •10.26.2.1. Частота использования слов
- •10.26.2.2. Накопление
- •10.26.2.3. Случайный выбор
- •10.26.2.4. Возможности shell
- •10.27. Итоговое краткое описание awk
- •10.27.1. Ограничения
- •10.27.2. Инициализация, сравнение и тип приведения
- •Приложение 1. Файловая система unix
- •Справочники системы unix
- •Приложение 2. Основные команды системы unix
6.14. Работа со строками
6.14.1. Разбиение строк
Редактор обеспечивает возможность разбиения строки на несколько более коротких строк путем вставки символов новой строки. Например, строка:
текст xy текст
может быть разбита на две между символами "x" и "y" следующим образом:
s/xy/x\
y/
команда:
s/xy/x\
zzz\
y/
разобьет исходную строку на три, при этом будет добавлена строка "zzz".
6.14.2. Объединение строк (j)
Объединение строк осуществляется с помощью команды "j". Например, если имеются строки:
текст x
y текст
то установив первую строку текущей и задав команду "j", получим:
текст xy текст
Можно объединить все строки в одну большую строку и распечатать ее.
6.14.3. Копирование строк (t)
Для копирования строк текста в буфере редактора используется команда "t".
Формат команды:
[n[, k]]tl<CR>
где n, k - номера начальной и конечной заменяемых строк; t - имя команды копирования; l - номер строки, после которой размещаются копируемые строки с номерами от "n" до "k" включительно.
По данной команде строки с номерами от "n" до "k" включительно пересылаются на место после строки с номером "l".
Если в команде задан только номер одной строки, то пересылается строка с указанным номером.
Если номер строки не задан, то пересылается текущая строка.
Строки с номерами от "n" до "k" включительно сохраняются на своем прежнем месте.
Команду "t" удобно использовать для создания текстов с повторяющимися данными.
Пример.
1, 7t15
группу строк с 1-й по 7-ю поместить после 15-й строки.
6.14.4. Перестройка строк
Предположим, что в начале каждой строки файла стоят имена вида:
Петров П.К.
Иванов С.Б
и т.д., требуется переделать текст таким образом, чтобы инициалы стояли перед фамилиями, т.е.
П.К. Петров
С.Б. Иванов
Такой результат можно получить с помощью нескольких команд редактирования, что однако достаточно сложно и может привести к целому ряду ошибок.
Альтернативный метод заключается в том, чтобы отметить элементы строки (в данном случае фамилию и инициалы), а затем переставить эти элементы. Если в левой части команды подстановки "s" какой-либо элемент образца заключен в "\(" и "\)", то он запоминается и может использоваться в правой части команды. В правой части команды обозначение "\1" относится к тому, что соответствало первой паре \(...\), "\2" - второй паре и т.д.
Следующая команда:
1, $s/^\([^ ]*\) *\(.*\)/\2 \1/
выполняет нужную работу, хотя ее и трудно прочитать. Первая пара \(...\) соответствует фамилии, которая представляет собой любую строку символов вплоть до пробела; в правой части команды на нее выполняется ссылка с помощью "\1". Вторая пара \(...\) обозначает то, что стоит после запятой и любого количества пробелов, а ссылка на нее выполняется с помощью "\2".
6.14.5. Маркеры
Редактор ed позволяет пометить строку некоторым именем, чтобы впоследствии обращаться к ней по этому имени независимо от фактического номера строки. Это удобно при перемещении строк и отслеживании их по мере перемещения. Для маркировки используется команда назначения имени. Если ввести команду "kx", то текущая строка будет отмечена маркером с именем "x". Если перед "k" указывается номер строки, будет отмечена соответствующая строка. (Имя должно представлять собой одну строчную букву латинского алфавита). После этого можно ссылаться на отмеченную строку с помощью адреса "'x".
Пример. Пусть после создания файла были выполнены следующие команды:
a
Первая строка вводимого текста
Вторая строка
Третья строка
Последняя строка
.
-3
ka
2
kb
$
'a, 'bm
в результате будет получена следующая последовательность строк:
Третья строка
Последняя строка
Первая строка вводимого текста
Вторая строка