mirror of
https://github.com/Yaslonane/lpic_1-101.git
synced 2026-05-19 17:48:32 +03:00
43 lines
2.7 KiB
Markdown
43 lines
2.7 KiB
Markdown
**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** |