Конвейер, фильтры, асинхронный режим выполнения команд



 

Многие команды ОС UNIX производят ввод информации с клавиатуры терминала – стандартного вводаи выводят информацию на экран дисплея – стандартный вывод. Интерпретатор команд (командный процессор) предоставляет возможность переназначать стандартный ввод-вывод. Для переназначения результатов работы команды в файл необходимо в конце командной строки указать символ >, за которым должно следовать имя файла. Для добавления в уже существующий файл используются символы >>.

Переназначение стандартного ввода производится точно таким же образом, за исключением того, что вместо символа > используется символ <, за которым должно следовать имя файла для ввода информации. Приведем два примера переназначения ввода-вывода.

echo This is test file for mail! > message

mail root < message

После выполнения первой команды будет создан файл message с одной текстовой строчкой. Вторая команда пошлет этот файл по электронной почте пользователю с именем root.

Командный процессор UNIX позволяет замкнуть стандартный вывод одной команды на стандартный ввод другой команды. В результате образуется конвейер-совокупность параллельно выполняющихся и взаимодействующих процессов. В командной строке стандартный вывод предшествующей команды замыкается на стандартный ввод последующей команды с помощью символа вертикальной черты |, что обеспечивает создание канала между процессами.

Большинство команд UNIX вводят информацию со стандартного ввода, выполняют какие-то действия над этой информацией и выводят результаты своей работы на стандартный вывод. Команды такого типа называются фильтрами. На основе фильтров можно строить конвейеры для создания командных строк произвольной сложности.

Для последовательного выполнения нескольких команд можно поместить требуемое число команд в одной командной строке, используя для отделения одной команды от другой символ точка с запятой (;).

Обычно командный процессор ждет завершения выполнения команды и только после этого выводит промптер на терминал. Однако существует возможность выполнения команды без потери времени на ожидание завершения ее выполнения. При этом пользователь может выполнять какие-либо действия параллельно. Для этого в конце командной строки нужно поставить знак &. В этом случае говорят, что команда будет выполняться в асинхронном режиме.

Пусть введена команда:

sort longfile > sort.output&

Командный процессор не будет ждать завершения выполнения сортировки, а сразу выдаст промптер. При этом результаты выполнения команды будут сохраняться в файле sort.output.

При запуске программы в асинхронном режиме на терминал выводится число, называемое номером или идентификатором процесса. Позже идентификатор может понадобиться, чтобы прервать выполнение команды, выполняющейся в асинхронном режиме. Для этого необходимо ввести команду:

kill номер-процесса

Приведем еще два примера использования возможностей асинхронного режима:

(команда1; команда2;...; командаN)&

команда1 | команда2 &

В первой строчке иллюстрируется возможность запуска группы команд в асинхронном режиме. Вторая строка показывает запуск конвейера в асинхронном режиме.

 

Текстовые редакторы

В ОС UNIX существует простейший текстовый редактор ed. Этот редактор достаточно примитивен, но тем не менее позволяет осуществлять все необходимые действия по редактированию файлов. Вызывается редактор по команде

ed имя-файла

Далее необходимо вводить команды редактора. Вот перечень некоторых команд редактора ed:

а – добавить строки до первого символа точка (.);

w – записать файл на диск;

q – завершить работу с редактором;

p – выдать на экран текущую редактируемую строку. Другой простой текстовый редактор вызывается по команде vi.

Более удобным редактором является joe, позволяющий вводить русские буквы (переключение по клавише ALT). Этот редактор имеет более дружественный и удобный интерфейс. Следующие комбинации клавиш могут использоваться в редакторе joe:

Ctrl-K H – выдать подсказку по всем горячим клавишам редактора, второе нажатие комбинации этих клавиш уберет с экрана подсказку;

Ctrl-K D – сохранить файл;

Ctrl-K X – сохранить файл и выйти из редактора;

Ctrl-K E – завершить работу с редактором.

 


Дата добавления: 2021-01-21; просмотров: 56; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!