Каждый процесс в Linux производит три потока данных: stdin, stdout и stderr:
- стандартный ввод : Принимает ввод от пользователя с клавиатуры
- стандартный вывод : Выводит результат на экран.
- stderr : Показывает информацию об ошибке на экране
Каждый поток данных имеет числовой идентификатор:
Числовой идентификатор | Имя |
0 | стандартный ввод |
1 | стандартный вывод |
2 | stderr |
Давайте подробнее объясним перенаправление:
Как перенаправить стандартный вывод и стандартную ошибку в Bash:
Чтобы перенаправить стандартный вывод команды, мы будем использовать 1 с оператором перенаправления, который больше, чем знак>:
$ls 1>stdout.txtПриведенная выше команда создаст файл и поместит стандартный вывод команды ls в файл stdout.txt.
Чтобы прочитать файл stdout.txt, используйте:
$Котstdout.txt
Мы также можем перенаправить стандартную ошибку в файл с помощью команды:
$Котmyfile.txt2>stderr.txt
Для просмотра файла stderr.txt используйте:
$Котstderr.txt
Убедитесь, что значение 2 будет больше, чем знак>. Поскольку в каталоге нет файла myfile.txt, команда cat выдаст ошибку, которая будет добавлена в файл stderr.txt.
Эти стандартные выходные данные также можно перенаправить с помощью одной команды, используйте:
$ls 1>stdout.txt2>stderr.txt
Вывод команды ls будет записан в stdout.txt файл, но stderr.txt останется пустым, потому что ошибки не будет.
Теперь займемся stderr.txt:
$Котmyfile.txt1>stdout.txt2>stderr.txt
Используйте указанную ниже команду для чтения stderr.txt.
$Котstderr.txt
И, конечно же, stdout.txt будет пустым.
Заключение :
Команда Linux при выполнении дает стандартный вывод, который может быть успешным или ошибочным. Как правило, эти выходные данные нельзя перенаправить с помощью операторов перенаправления; нам нужно использовать определенные числовые идентификаторы со знаком>. В этом руководстве мы узнали, как использовать эти цифровые клавиши для перенаправления стандартного вывода в файл с примерами.