При использовании Linux вы можете встретить ссылки на «стандартный ввод-вывод» или «стандартный ввод», «стандартный вывод» и «стандартную ошибку». Что означают эти термины?

Стандартный ввод

Стандартный ввод - это термин для ввода, который получает программа на основе команд. При интерактивном использовании это обычно с клавиатуры, но, как вы увидите позже, оно также может поступать из файла.

В то время как клавиатура в наши дни обычно подключается непосредственно к машине, когда текстовые терминалы были более общий, стандартный ввод был взят с клавиатуры терминала, подключенной к центральному мини-компьютеру или мэйнфрейм. Современные системы Linux используют эмуляторы терминала или системную консоль для стандартного ввода.

Стандартный выход

Стандартный вывод, как и стандартный ввод, - это то место, куда программа отправляет свой текстовый вывод. Опять же, это обычно эмулятор терминала в современных системах, но в прошлом он также использовался на физических терминалах, либо с экранами ЭЛТ, либо напечатанными на бумаге с помощью телетайпов.

instagram viewer

Терминалы телетайпа были более распространены, когда предшественник 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 и как он используется?

Текст ASCII кажется загадочным, но он широко используется в Интернете.

Читать далее

ДелитьсяТвитнутьЭл. адрес
Похожие темы
  • Linux
  • Объяснение технологии
  • Linux элементарный
  • Оболочка Linux Bash
Об авторе
Дэвид Делони (62 опубликованных статей)

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

Ещё от David Delony

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться