RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Управление заданиями - это механизм для отслеживания процессов, которые порождаются из текущего сеанса работы с терминалом. Можно запустить любое число заданий. Они могут работать, завершиться или находиться в других состояниях. Для управления заданиями можно использовать несколько команд, чтобы проследить результаты их работы или потребовать от системы уведомления об окончании задания.
Фоновый режим позволяет продолжить использование сеанса работы с терминалом, пока выполняется команда. Для запуска команды в фоновом режиме, достаточно к команде добавить символ амперсанд (&). Командный интерпретатор вернет номер задания и идентификатор процесса:
$ make &
[2] 254
$
Если задание не требует от пользователя ввода, оно продолжает свою работу до полного завершения. Если команде нужен ввод, она переходит в состояние ожидания, на экран выводится соответствующее уведомление, которое выглядит примерно так:
[1] + Suspended (tty input) programm 0
В данном случае в ожидании ввода приостановилось выполнение программы programm. Пользователю необходимо перевести из фонового режима в привилегированный и выполнить ввод.
С помощью команды jobs пользователь имеет возможность просмотреть состояние своих заданий и получит список всех заданий запущенных в сеансе работы с терминалом.
$ jobs
[1] Stopped (user) du
[2]- Stopped (user) du -a /home/intdbi
[3]+ Stopped (user) du -r /home/intdbi
$
Команда jobs принимает два флага. Флаг -l включает идентификатор процесса с номером задания.
$ jobs -l
[1] 1351 Stopped (user) du
[2]- 1381 Stopped (user) du -a /home/intdbi
[3]+ 1383 Stopped (user) du -r /home/intdbi
$
Флаг -р заменяет номер задания на идентификатор процесса.
$ jobs -p
1351
1381
1383
$
Идентификатор процесса может использоваться при обращении к команде ps.
Номера заданий
Номер задания позволяет командному интерпретатору наблюдать за процессами. Его можно рассматривать как головной элемент группы процессов, поскольку пользовательское задание порождает любые команды либо в конвейере, либо, как подзадания.
Команда fg переводит задания в привилегированный режим. При наличии приостановленного задания, его можно сделать привилегированным (перевести на передний план) с помощью команды fg #номер_задания (или fg номер_задания в bash). После этого задание либо выведет на экран сообщение о том, что ему нужно от терминала, либо будет принимать ожидаемый ввод. Переведя задание в привилегированный режим, можно приостановить его выполнение, нажав комбинацию калвиш Ctrl-Z, и заняться им позже.
Любое задание из списка, предоставленного командой jobs, доступно, если пользователь захочет сделать его привилегированным, даже в том случае, когда оно уже работает в фоновом режиме. Если в этом списке приведено только одно задание, то при использовании команды fg пользователю не нужно задавать его номер. Если номер задания не задан, предполагается текущее задание.
С помощью команды bg можно возобновить в фоновом режиме работу приостановленного или остановленного задания. Для этого нужно указать соответствующий номер задания, после чего оно перейдет в фоновый режим, и будет работать до своего завершения, или пока ему снова не потребуется ввод с терминала.
Это последняя существенная команда управления заданиями. При вводе wait приостанавливается работа командного интерпретатора до тех пор, пока не будут завершены все фоновые задания. Сюда входят и любые остановленные задания, поэтому при вводе wait стоит убедиться, что все фоновые задания работают. Команда wait может также принимать в качестве параметра номер задания. В этом случае командный интерпретатор приостанавливается до тех пор, пока не завершится выполнение указанного задания.
Помимо рассмотренных выше команд, ОС UNIX предлагает десятки полезных утилит и средств. Основные утилиты для обработки текстов представлены в табл. 27, а клиенты основных сетевых служб - в табл. 28. Полезные команды для создания резервных копий представлены в табл. 29.
Язык обработки шаблонов. Позволяет выполнять произвольную программу при выявлении в тексте определенной строки, соответствующей шаблону. По синтаксису аналогичен C. Содержит множество встроенных функций. Используется для обработки и преобразования текстовых данных, состоящих из столбцов и строк, а также для построения отчетов и анализа журналов.
Расширенная версия редактора ed. Поддерживает множество установок, которые можно запоминать для каждого пользователя в файле .exrc в его начальном каталоге.
head
Выдает указанное количество начальных строк из файла.
more
Позволяет просматривать файл постранично в обоих направлениях, искать в нем по шаблону.
pr
Форматирует файл или входной поток для печати, разбивая его на страницы и снабжая, при необходимости, заголовками.
Клиент для обмена файлами с удаленной машиной по сети. Позволяет просматривать каталоги, создавать каталоги на удаленной машине, загружать и выгружать файлы с помощью стандартного набора команд. Допускает автоматизацию операций по обмену файлами.
Посылает специальный пакет ICMP, требующий ответа от удаленного сервера. Позволяет проверить доступность удаленного хоста и скорость работы сети. Обычно доступна только пользователю root.
Удаленный командный интерпретатор. Позволяет выполнить любую команду интерпретатора на удаленной машине и получить ее выходной поток на локальной. Поддерживает доверительные отношения.
ssh
Защищенный командный интерпретатор, функционально аналогичный программам telnet, rsh и rlogin, но передающий пароли и данные в зашифрованном виде.
Программа удаленного подключения к указанной сетевой службе. Обычно используется для удаленной регистрации. Не поддерживает доверительные отношения.
traceroute
Программа трассировки пакетов. Показывает маршрут, по которому будут направляться пакеты на указанный удаленных хост и скорость передачи на каждом из переходов. Обычно доступна только пользователю root.
Команда создания архивов. Помещает все указанные файлы, включая содержимое подкаталогов, в архив, выдаваемый в стандартный выходной поток. Получает архив из входного потока и раскрывает в текущем каталоге. Поддерживает различные платформы и форматы, в том числе, формат архивов tar.
Утилита GNU для сжатия указанного файла. Упаковывает файлы лучше, чем compress. Работает на всех платформах. Сжатые файлы обычно имеют суффикс .gz и разжимаются командой ungzip (gzip -d).
Утилита архивирования. Помещает все указанные файлы, включая содержимое подкаталогов, в архив, записываемый в указанный файл. Создает необходимые каталоги и файлы при разархивировании. Первоначально предназначалась для архивирования на ленту.
Программа практических занятий
Занятие 1. 2 часа.
Регистрация в системе. Изменение пароля (passwd). Просмотр информации о работающих пользователях (who).
Работа со справочным руководством (man).
Просмотр содержимого файлов (cat, more).
Создание файлов различных типов (cat, mkdir, mknod, ln). Копирование, перемещение и удаление файлов и каталогов (cp, mv, rm, rmdir).
Просмотр информации о файлах, изменение прав доступа и владельца файлов (ls, chmod, chown, chgrp, umask).
Просмотр информации о процессах и установка поправки приоритета (ps, nice).
Посылка сигналов процессам (kill).
Занятие 2. 2 часа.
Поиск файлов по различным критериям (find).
Использование утилиты grep для поиска в текстах по образцу
Практическая работа с редактором vi.
Управление заданиями (jobs, bg, fg).
Занятие 3. 2 часа.
Создание простых конвейеров. Запуск процесса в приоритетном и фоновом режиме. Динамическое формирование командной строки.
Использование цикла for в командном интерпретаторе.
Проверка условий в командном интерпретаторе.
Создание цикла по счетчику в командном интерпретаторе.
Создание и использование функций в командном интерпретаторе.
Создание простого сценария командного интерпретатора.
Центр информационных технологий моего родного МГУ. Источник огромного объема информации по ИТ на русском. Есть и переводы страниц справочного руководства BSD.
Персональная страница Эрика Реймонда. Это один из идеологов разработки свободно распространяемого программного обеспечения. Его работы надо читать как Евангелие...