Как происходят перенаправления ввода-вывода в Linux
Новым пользователям и системным администраторам, которые только начали осваивать работу Linux, полезной окажется информация о перенаправлении потоков ввода-вывода.
Это даст возможность перенаправить в файл вывод команд, а также его содержимое на ввод, выполнить объединение команд или образовать из них конвейер.
Перенаправления ввода-вывода в Linux – как работает, где его можно применить? Эти и другие вопросы будут рассмотрены ниже. Также подробную информацию можно узнать на сайте serverspace.ru.
Принцип работы
Все выполняемые виды команд, способны вернуть три варианта данных:
результат выполненной команды (чаще всего это данные в текстовом формате, запрашиваемые пользователем);
сообщения, информирующие о наличии ошибок (дают знать о возникновении непредвиденных обстоятельств);
код возврата (представляет собой число, с помощью которого можно сделать оценку правильности обработки программы).
В Linux любая субстанция является файлом. Сюда же относятся и потоки ввода-вывода. Каждый дистрибутив имеет 3 главных файла потоков, используемых программами. Их определяют при помощи оболочки и идентифицируют согласно номеру дескриптора файла:
STDIN (также для обозначения используется 0) – связанный с клавиатурой файл, поэтому почти все команды для работы получает от нее;
STDOUT (или число1) – вывод в стандартном виде, куда программой отправляются все результаты ее функционирования (связан с терминалом);
STDERR (или число 2) – в этот файл поступают все сообщения, информирующие об ошибках.
С помощью перенаправления ввода-вывода можно сделать замену одного из этих файлов, используя свой. Это позволит, например, сделать так, чтобы программа начала считывать информацию в файловой системе из файла без привлечения клавиатуры. Вывод ошибок также может направляться в файл вместо экрана.
Пайп-символы
В Linux, кроме перенаправления данных, есть возможность передавать информацию вывода одной программы на другую (поток ее ввода). Для этого используется пайп-символ, имеющий вид вертикальной черты.
Вначале происходит передача истории команды на поток вывода, после чего полученная информация поступает утилите grep на вход. Она фильтрует команды, ориентируясь на наличие слова touch. В пользовательском терминале отображаются потом именно эти данные.
Подводя итог, можно сказать, что знания о механизмах потоков и работе системных перенаправлений, имеют важное значение. Именно об этом и говорится на сайте Serverspace – международного облачного провайдера. Эти знания помогут создавать программы, обслуживать сервера, автоматизировать многие рутинные процессы.
Рекомендуемый контент