103.4 Потоки, конвейеры и перенаправления
Студент должен уметь управлять потоками для обработки текстовых данных
Изучаем :
- перенаправление стандартных ввода, вывода и ошибок;
- передачу вывода одной команды на ввод другой;
- использование вывода одной команды в качестве аргументов другой;
- получение выходных данных в файл и на стандартный вывод.
**Термины и утилиты: **
-
tee
-
xargs
-
stdin
-
stout
-
stderr
Linux традиционно использует потоки для ввода, вывода и ошибок. Обычно ввод – это клавиатура или файлы, а вывод ошибок и результатов происходит в консоль. Но часто бывает нужно объединить последовательность команд в конвейер, или отправить результат в какой-нибудь файл.
Для того чтобы послать на ввод программы некоторые данные используется знак " <", например:
wc < file** 1. txt ** (использовать в качестве ввода для программы wc файл file . txt_);_
Для того чтобы послать вывод программы куда-нибудь, кроме стандартного направления, используется знак " >", например:
ls > list**. **txt (перезаписать содержимое файла list . txt результатом команды ls_);_
ls >> list**. **txt (дописать в файл list . txt результат команды ls_);_
Для ввода, вывода и ошибок используются следующие обозначения:
- Stdin – стандартный ввод программы (обозначение "0");
- Stdout – стандартный вывод программы (обозначение "1");
- Stderr – стандартные ошибки программы (обозначение "2");
Например:
l** s bob 2> error.txt**
ls** bob **** > **** result . txt **** 2> **** error . txt**