Инструменты пользователя

Инструменты сайта


komandnaja_stroka._potoki_programmnye_kanaly_i_perenapravlenija

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
komandnaja_stroka._potoki_programmnye_kanaly_i_perenapravlenija [2016/07/11 18:23] – создано daniilkomandnaja_stroka._potoki_programmnye_kanaly_i_perenapravlenija [Дата неизвестна] (текущий) – внешнее изменение (Дата неизвестна) 127.0.0.1
Строка 1: Строка 1:
 ====== Командная строка. Потоки, программные каналы и перенаправления ====== ====== Командная строка. Потоки, программные каналы и перенаправления ======
 +
 +----
 +
 +===== Стандартные потоки ввода / вывода =====
 +
 +**Стандартные потоки** — воображаемые файлы, позволяющие осуществлять взаимодействие с пользователем как чтение и запись в файл. Кроме потоков ввода и вывода, существует еще и стандартный поток ошибок, на который выводятся все сообщения об ошибках и те информативные сообщения о ходе работы программы, которые не могут быть выведены в стандартный поток вывода.
 +
 +^ Дескриптор ^ Название ^ Описание ^ 
 +|  **0**  | stdin | Стандартный ввод |
 +|  **1**  | stdout | Стандартный вывод |
 +|  **2**  | stderr | Стандартный вывод ошибок |
 +
 +----
 +
 +===== Паренаправление в / из стандартных потоков =====
 +
  
 ^ Команда ^ Описание ^ ^ Команда ^ Описание ^
-| %%< файл%% | Использовать файл как источник данных для стандартного потока ввода. | + <wrap em>%%<%%</wrap> //файл//  | Использовать файл как источник данных для стандартного потока ввода. | 
-| %%> файл%% | Направить стандартный поток вывода в файл. Если файл не существует, он будет создан; если существует — перезаписан сверху. | + <wrap em>%%>%%</wrap> //файл//  | Направить стандартный поток вывода в файл. Если файл не существует, он будет создан; если существует — перезаписан сверху. | 
-| %%2> файл%% | Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан; если существует — перезаписан сверху. | + <wrap em>%%2>%%</wrap> //файл//  | Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан; если существует — перезаписан сверху. | 
-| %%>>файл%% | Направить стандартный поток вывода в файл. Если файл не существует, он будет создан; если существует — данные будут дописаны к нему в конец. | + <wrap em>%%>>%%</wrap> //файл//  | Направить стандартный поток вывода в файл. Если файл не существует, он будет создан; если существует — данные будут дописаны к нему в конец. | 
-| %%2>>файл%% | Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан; если существует — данные будут дописаны к нему в конец. | + <wrap em>%%2>>%%</wrap> //файл//  | Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан; если существует — данные будут дописаны к нему в конец. | 
-| %%&>файл или >&файл%% | Направить стандартный поток вывода и стандартный поток ошибок в файл. Другая форма записи: >файл 2>&1. | + <wrap em>%%&>%%</wrap> //файл или// <wrap em>%%>&%%</wrap> //файл//  | Направить стандартный поток вывода и стандартный поток ошибок в файл. Другая форма записи: >файл 2>&1. | 
-| %%>&-%% | Закрыть поток вывода перед вызовом команды (спасибо [1]); | + <wrap em>%%>&-%%</wrap>  | Закрыть поток вывода перед вызовом команды;
-| %%2>&-%% | Закрыть поток ошибок перед вызовом команды (спасибо [2]); | + <wrap em>%%2>&-%%</wrap>  | Закрыть поток ошибок перед вызовом команды;
-| %%cat <<EOF%% | Весь текст между блоками EOF (в общем случае вместо EOF можно использовать любое слово) будет выведен на экран. Важно: перед последним EOF не должно быть пробелов! (heredoc синтаксис). |+ cat <wrap em>%%<<EOF%%</wrap>  | Весь текст между блоками EOF (в общем случае вместо EOF можно использовать любое слово) будет выведен на экран. Важно: перед последним EOF не должно быть пробелов! (heredoc синтаксис). | 
 + 
 +---- 
 + 
 +===== Каналы ===== 
 + 
 +Стандартные потоки можно перенаправлять не только в файлы, но и на вход других программ. Если поток вывода одной программы соединить с потоком ввода другой программы, получится конструкция, называемая **каналом**, **конвейером** или **пайпом** (от англ. pipe, труба). \\ 
 +В bash канал выглядит как последовательность команд, отделенных друг от друга символом <wrap em>|</wrap>: 
 +<code bash> 
 +команда1 | команда2 | команда3 ... 
 +</code>
komandnaja_stroka._potoki_programmnye_kanaly_i_perenapravlenija.1468250591.txt.gz · Последнее изменение: 2016/07/11 00:00 (внешнее изменение)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki