При использовании Linux вы можете встретить ссылки на «стандартный ввод-вывод» или «стандартный ввод», «стандартный вывод» и «стандартную ошибку». Что означают эти термины?
Стандартный ввод
Стандартный ввод - это термин для ввода, который получает программа на основе команд. При интерактивном использовании это обычно с клавиатуры, но, как вы увидите позже, оно также может поступать из файла.
В то время как клавиатура в наши дни обычно подключается непосредственно к машине, когда текстовые терминалы были более общий, стандартный ввод был взят с клавиатуры терминала, подключенной к центральному мини-компьютеру или мэйнфрейм. Современные системы Linux используют эмуляторы терминала или системную консоль для стандартного ввода.
Стандартный выход
Стандартный вывод, как и стандартный ввод, - это то место, куда программа отправляет свой текстовый вывод. Опять же, это обычно эмулятор терминала в современных системах, но в прошлом он также использовался на физических терминалах, либо с экранами ЭЛТ, либо напечатанными на бумаге с помощью телетайпов.
Терминалы телетайпа были более распространены, когда предшественник Linux, Unix, разрабатывался в Bell Labs в конце 1960-х - начале 1970-х годов.
Связанный: Почему команды Linux такие короткие? История команд Linux
Как и стандартный ввод, вы также можете перенаправить стандартный вывод в файл.
Стандартная ошибка
Стандартная ошибка обычно используется для любых сообщений об ошибках, которые может генерировать программа. Как и в случае со стандартным выводом, он обычно отображается на экране, но также может быть перенаправлен в файл или на блочное устройство, например /dev/null.
Как перенаправить ввод и вывод в Linux
Одной из самых мощных функций систем Linux и Unix является возможность перенаправлять ввод и вывод в файлы и другие программы.
Наиболее широко используемый метод - это пересылка вывода от одной команды к другой, или «конвейер». Для Например, чтобы увидеть, у скольких команд Linux есть «sh» в имени, вы можете передать вывод команды ls по конвейеру. с помощью grep.
ls / bin | grep 'sh'
К перенаправить вывод команды в файл, использовать > оператор. Например, чтобы отправить вывод команда ls в имя файла список файлов:
ls> список файлов
В >> Оператор добавляет вывод в существующий файл или создает его, если он не существует. Чтобы предотвратить случайную перезапись файла, вы можете установить опцию «noclobber» в Bash:
установить noclobber
Вы также можете заставить программу принимать входные данные из файла с < оператор. Программа cat может распечатать содержимое файла, принимая ввод из файла и отправляя вывод на стандартный вывод.
cat
Конечно, вы можете просто использовать cat и указать путь к файлу в качестве аргумента, но это всего лишь пример.
Вы можете перенаправить стандартную ошибку, используя файловый дескриптор или число, обозначающее одну из форм стандартного ввода / вывода. Для файловых дескрипторов 0 - стандартный ввод, 1 - стандартный вывод и 2 - стандартная ошибка. Синтаксис Bash: [дескриптор файла]>. Стандартную ошибку полезно перенаправить на /dev/null чтобы избавиться от ошибок:
linux_command 2> / dev / null
Вы можете перенаправить как стандартный вывод, так и ввод одновременно с &>, что полезно, если вам нужно отправить электронное письмо или сообщение на форуме с описанием проблемы, с которой вы столкнулись с программой:
linux_command &> файл
Стандартный ввод / вывод работает везде
Даже с доступными сегодня графическими средами стандартный ввод-вывод остается важным, потому что это все еще универсальный интерфейс, от настольного компьютера до сервера и мобильного устройства, основанный на тексте ASCII.
Текст ASCII кажется загадочным, но он широко используется в Интернете.
Читать далее
- Linux
- Объяснение технологии
- Linux элементарный
- Оболочка Linux Bash

Дэвид - писатель-фрилансер, живущий на северо-западе Тихого океана, но родом из района Залива. Он был энтузиастом технологий с детства. Интересы Дэвида включают чтение, просмотр качественных телешоу и фильмов, ретро-игры и коллекционирование пластинок.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться