Вы, вероятно, уже заметили, что некоторые команды при запуске выводят данные прямо в Ваш терминал. До сих пор это чаще всего были флаги, но, как и во многих других случаях, стоящая за этим технология устроена куда глубже. Знание механизмов работы с вводом и выводом в командной строке существенно расширяют её возможности.
В данном модуле Вы познакомитесь с перенаправлением ввода и вывода. В каждой программе (процессе) в Linux изначально есть три стандартных канала обмена данными:
Стандартный ввод — канал, через который процесс получает данные.
Например: Ваша оболочка использует стандартный ввод, чтобы читать команды, которые Вы набираете.Стандартный вывод — канал, через который процессы выдают обычные данные.
Например: флаг, который печатается Вам в предыдущих заданиях, или результат работы утилит вроде ls.Стандартный вывод ошибок — канал, через который процессы выводят сведения об ошибках.
Например: если Вы опечатаетесь в имени команды, оболочка выведет сообщение о том, что такой команды не существует, именно через стандартный вывод ошибок.Поскольку эти три канала настолько часто используются в Linux, для них закрепились короткие обозначения: stdin (cтандартный ввод), stdout (cтандартный вывод), stderr (стандартный вывод ошибок).
В этом модуле Вы узнаете, как перенаправлять эти каналы, связывать их между собой, блокировать и вообще по‑разному «колдовать» над ними. Удачи в освоении этого непростого материала!
ПРИМЕЧАНИЕ:
Отличное наглядное руководство по перенаправлению ввода‑вывода в Linux.