103 added md

This commit is contained in:
semaev
2017-10-16 13:25:36 +03:00
parent 34b2ad1011
commit 545a6c6e03
6 changed files with 419 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
**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**