Лекция №2 по дисциплине «Операционные системы и оболочки» Тема №2 Операционные оболочки и среды для студентов специальности 230400. 62 Информационные системы и технологии


Перенаправление ввода/вывода и конвейеризация (композиция) команд



Скачать 98.53 Kb.
страница3/4
Дата18.11.2016
Размер98.53 Kb.
Просмотров1134
Скачиваний0
ТипЛекция
1   2   3   4

Перенаправление ввода/вывода и конвейеризация (композиция) команд


Рассмотрим более подробно поддерживаемые в Windows UNIX-подобные концепции переназначения устройств стандартного ввода/вывода и конвейерного выполнения команд.

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



  • выводить сообщения программ не на экран (стандартный выходной поток), а в файл или на принтер (перенаправление вывода);

  • читать входные данные не с клавиатуры (стандартный входной поток), а из заранее подготовленного файла (перенаправление ввода);

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

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

команда > имя_файла

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

команда >> имя_файла

С помощью символа < можно прочитать входные данные для заданной команды не с клавиатуры, а из определенного (заранее подготовленного) файла:

команда < имя_файла

Приведем несколько примеров перенаправления ввода/вывода.


  1. Вывод встроенной справки для команды COPY в файл copy.txt:

COPY /? > copy.txt

  1. Добавление текста справки для команды XCOPY в файл copy.txt:

XCOPY /? >> copy.txt

  1. Ввод новой даты из файла date.txt (DATE — это команда для просмотра и изменения системной даты):

DATE < date.txt

Если при выполнении определенной команды возникает ошибка, то сообщение об этом по умолчанию выводится на экран. В случае необходимости сообщения об ошибках (стандартный поток ошибок) можно перенаправить в текстовый файл с помощью конструкции

команда 2> имя_файла

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

команда > имя_файла 2>&1

Например, в приведенной ниже команде стандартный выходной поток и стандартный поток ошибок перенаправляются в файл copy.txt:

XCOPY A:\1.txt C: > copy.txt 2>&1

Наконец, с помощью конструкции

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

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

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

ECHO [сообщение]

которая выводит сообщение на экран. Рассмотрим примеры использования этой команды.


  1. Посылка символа прогона на принтер: ECHO ^L > PRN

  2. Удаление всех файлов в текущем каталоге без предупреждения (автоматический положительный ответ на запрос об удалении): ECHO y | DEL *.*

  3. Соединение по телефону из командной строки (модем связан с портом COM2): ECHO ATDT 1(123)555-1234 > COM2
Команды MORE и SORT

Одной из наиболее часто использующихся команд, для работы с которой применяется перенаправление ввода/вывода и конвейеризация, являетсяMORE. Эта команда считывает стандартный ввод из конвейера или перенаправленного файла и выводит информацию частями, размер каждой из которых не больше размера экрана. Используется MORE обычно для просмотра длинных файлов. Возможны три варианта синтаксиса этой команды:

MORE [диск:][путь]имя_файла

MORE < [диск:][путь]имя_файла

имя_команды | MORE

Параметр [диск:][путь]имя_файла определяет расположение и имя файла с просматриваемыми на экране данными. Параметр имя_команды задает команду, вывод которой отображается на экране (например, DIR или команда TYPE, использующаяся для вывода содержимого текстового файла на экран). Приведем два примера.

Для поэкранного просмотра помощи команды DIR используется команда:

DIR /? | MORE

Для поэкранного просмотра текстового файла news.txt возможны следующие варианты команд:

MORE news.txt

MORE < news.txt

TYPE news.txt | MORE

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

SORT [/R] [/+n] [[диск1:][путь1]файл1] [> [диск2:][путь2]файл2]

или


[команда ] | SORT [/R] [/+n] [> [диск2:][путь2]файл2]

В первом случае параметр [диск1:][путь1]файл1 определяет имя файла, который нужно отсортировать. Во втором случае будут отсортированы выходные данные указанной команды. Если параметры файл1 или команда не заданы, то SORT будет считывать данные с устройства стандартного ввода.

Параметр [диск2:][путь2]файл2 задает файл, в который будет направляться сортированный вывод; если этот параметр не задан, то вывод будет направлен на устройство стандартного вывода.

По умолчанию сортировка выполняется в порядке возрастания. Ключ /R позволяет изменить порядок сортировки на обратный (от Z к A и затем от 9 до 0). Например, для поэкранного просмотра отсортированного в обратном порядке файла price.txt, нужно задать следующую команду:

SORT /R < price.txt |MORE

Ключ /+n задает сортировку в файле по символам n-го столбца. Например, /+10 означает, что сортировка должна осуществляться, начиная с 10-й позиции в каждой строке. По умолчанию файл сортируется по первому столбцу.



Каталог: company -> personal -> user -> 11576 -> files -> lib -> %20Операционные%20системы%20и%20оболочки -> %203.%20Учебно-методическое%20обеспечение%20дисциплины -> %20лекции%20в%20умк
files -> Лекция №3 по дисциплине«Операционные системы» Тема №3 Архитектура операционной системы для студентов специальности 080500. 62-Бизнес-информатика шифр наименование
%20лекции%20в%20умк -> Лекция №14 Концепции распределенной обработки в сетевых ос по дисциплине«Операционные системы и оболочки» Тема №7 Сетевые операционные системы для студентов специальности 230400. 62-Информационные системы и технологии
files -> Лекция №2 по дисциплине«Операционные системы» Тема №2 Операционные оболочки и среды для студентов специальности 080500. 62 Бизнес-информатика шифр наименование
%20лекции%20в%20умк -> Лекция №10 Реестр операционной системы Windows по дисциплине«Операционные системы и оболочки» Тема №6 Файловая система ос для студентов специальности 230400. 62-Информационные системы и технологии шифр наименование
files -> Лекция №1 по дисциплине «Операционные системы и оболочки» Тема №1 Введение в операционные системы для студентов специальности 230400. 62 -информационные системы и технологии
files -> Лекция №12 Средства защиты информации в сети по дисциплине«Операционные системы и оболочки» Тема №7 Сетевые операционные системы для студентов специальности 230400. 62-Информационные системы и технологии


Поделитесь с Вашими друзьями:
1   2   3   4


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал