Главная > Среда и утилиты > redirect

Руководство по перенаправлению (Redirection): Изменение направления ввода/вывода команд

Перенаправление в оболочке Linux — это функция, которая изменяет направление стандартного ввода/вывода команды. Она используется для использования содержимого файла в качестве ввода или для сохранения результатов команды в файл, а не на экран. Это один из самых основных инструментов в скриптах оболочки и обработке данных, наряду с конвейером (`|`).

Обзор перенаправления

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

Стандартные потоки ввода-вывода

Все команды по умолчанию используют следующие три стандартных потока:

  • Стандартный ввод (stdin, 0): Канал, через который команда читает данные. По умолчанию это клавиатура.
  • Стандартный вывод (stdout, 1): Канал, через который выводятся нормальные результаты команды. По умолчанию это экран (терминал).
  • Стандартный вывод ошибок (stderr, 2): Канал, через который выводятся сообщения об ошибках команды. По умолчанию это экран (терминал).

Операторы перенаправления

Вы можете управлять направлением ввода-вывода с помощью различных операторов перенаправления. Прямое использование `redirect` как в сгенерированных ниже командах приведет к ошибке. Вы должны использовать символы, такие как `>`, `>>`, `<`.

1. Перенаправление стандартного вывода

2. Перенаправление стандартного вывода ошибок

3. Перенаправление стандартного ввода

Сгенерированная команда:

Комбинируйте команды.

Описание:

`redirect` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Часто используемые примеры

Изучите методы управления вводом-выводом с помощью различных примеров использования перенаправления.

Сохранить результат команды в файл

ls -l > file_list.txt

Сохраняет результат команды `ls -l` в файл `file_list.txt`, перезаписывая его, если файл уже существует.

Добавить результаты нескольких команд в один файл

echo "--- 작업 시작 ---" >> log.txt
date >> log.txt

Добавляет результат команды `echo` в файл `log.txt`, а затем добавляет результат команды `date` в тот же файл. Использует `>>` для сохранения существующего содержимого.

Разделить сообщения об ошибках в отдельный файл

ls non_existent_file 2> error.log

Выполняет команду `ls` для несуществующего файла и отправляет только сообщения об ошибках (`2>`) в файл `error.log`. Нормальный вывод остается на экране.

Передать входной файл команде

sort < numbers.txt

Устанавливает вход для команды `sort` как файл `numbers.txt` для сортировки содержимого файла. `sort` обрабатывает содержимое файла, получая его из стандартного ввода.

Вывод и ошибки в одном файле

ls /home non_existent_file &> output_and_error.log

Сохраняет как нормальный вывод, так и сообщения об ошибках в файл `output_and_error.log`.


Связанные команды

Функционально схожие или часто используемые команды.


Те же команды в категории