Files
Kirill Semaev 321aabe33b build flow
2018-04-15 14:43:14 +03:00

43 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**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**