0Pricing
Linux Command Line & Bash Scripting Mastery · Урок

Перенаправление ввода и вывода (>, >>, <)

Освойте перенаправление вывода команд в файлы и использование файлов в качестве входных данных для команд, повышая гибкость скриптов.

«Перенаправление ввода и вывода (>, >>, <)» — бесплатный урок Linux Command Line & Bash Scripting Mastery на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Command Line & Bash Scripting Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.

Что такое перенаправление ввода-вывода?

В Linux команды часто формируют вывод или требуют ввод. Перенаправление ввода-вывода (I/O) позволяет изменить источник ввода команды или место, куда она отправляет вывод.

Вместо того чтобы просто видеть вывод на экране (в терминале), его можно сохранить в файл или даже передать содержимое файла непосредственно другой команде.

Знакомство со стандартными потоками

Каждая команда Linux взаимодействует с тремя «стандартными» потоками данных:

  • Стандартный ввод (STDIN): источник, из которого команда ожидает получить ввод (обычно клавиатура).
  • Стандартный вывод (STDOUT): поток, куда команда отправляет обычный вывод (обычно на экран).
  • Стандартный поток ошибок (STDERR): поток, куда команда отправляет сообщения об ошибках (также обычно на экран).

Перенаправление позволяет изменить эти источники и места назначения по умолчанию.

Сохранение вывода с помощью '>'

Оператор > используется для перенаправления стандартного вывода (STDOUT) команды в файл. Вместо вывода на экран результат команды будет записан в указанный файл.

Важно: если файл уже существует, > перезапишет всё его содержимое новым выводом. Будьте внимательны и не удалите случайно важные данные!

Пример: сохранение вывода команды

Давайте сохраним вывод команды ls -l в файл с именем my_files.txt. Затем просмотрим содержимое файла с помощью cat.

ls -l > my_files.txt
cat my_files.txt

Добавление в файл с помощью '>>'

Иногда не нужно перезаписывать файл — требуется добавить новое содержимое в его конец. Для этого используется оператор >>!

>> перенаправляет стандартный вывод (STDOUT) в файл, а если файл уже существует, добавляет новый вывод в его конец, сохраняя имеющееся содержимое.

Пример: добавление записей в журнал

Сначала создайте простой файл. Затем используйте >>, чтобы добавить в него ещё одну строку. Обратите внимание, что исходное содержимое сохраняется.

echo "First line of log." > app_log.txt
echo "Second line added." >> app_log.txt
cat app_log.txt

Обработка ошибок с помощью '2>'

А что происходит с сообщениями об ошибках? Они отправляются в стандартный поток ошибок (STDERR). Чтобы перенаправить STDERR в файл, укажите дескриптор файла 2, а затем оператор >: 2>.

Это особенно полезно для записи ошибок в журнал, не загромождая основной вывод, а также для отладки сценариев.

Пример: запись сообщений об ошибках в журнал

Попробуем вывести список каталога, которого не существует. Обычно сообщение об ошибке появится на экране. Вместо этого перенаправим его в errors.log.

ls /this/path/does/not/exist 2> errors.log
echo "Command finished. Check errors.log."
cat errors.log

Передача ввода с помощью '<'

Оператор < используется для перенаправления стандартного ввода (STDIN). Вместо ожидания ввода с клавиатуры команда прочитает его непосредственно из указанного файла.

Это удобно для автоматизации задач, в которых команда ожидает большой объём ввода, а также для непосредственной обработки содержимого файла.

Пример: сортировка из файла

Мы создадим файл с неотсортированными именами, а затем с помощью команды sort заставим её читать ввод из этого файла, используя <.

echo -e "Charlie\nAlice\nBob" > names.txt
sort < names.txt

Быстрая проверка: перенаправление

Вы узнали о перенаправлении стандартного вывода, добавлении вывода, обработке ошибок и передаче ввода из файлов. Давайте проверим, насколько хорошо вы усвоили материал.

Повторение: возможности перенаправления ввода-вывода

Отличная работа! Вы освоили основы перенаправления ввода-вывода в Linux.

  • > перенаправляет STDOUT, перезаписывая файлы.
  • >> перенаправляет STDOUT, добавляя данные в конец файлов.
  • 2> перенаправляет STDERR, сохраняя сообщения об ошибках.
  • < перенаправляет STDIN, позволяя командам читать данные из файлов.

Эти операторы чрезвычайно полезны для написания сценариев, ведения журналов и автоматизации задач. Продолжайте практиковаться!

Часто задаваемые вопросы

Урок «Перенаправление ввода и вывода (>, >>, <)» бесплатный?

Да — полный текст урока «Перенаправление ввода и вывода (>, >>, <)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Command Line & Bash Scripting Mastery, подпишись на CoddyKit PRO. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.

Чему я научусь в уроке «Перенаправление ввода и вывода (>, >>, <)»?

Освойте перенаправление вывода команд в файлы и использование файлов в качестве входных данных для команд, повышая гибкость скриптов. Ты практикуешь Linux Command Line & Bash Scripting Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Linux Command Line & Bash Scripting Mastery?

Предыдущий опыт не требуется. Linux Command Line & Bash Scripting Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Перенаправление ввода и вывода (>, >>, <)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Linux Command Line & Bash Scripting Mastery?

Да. Каждый урок Linux Command Line & Bash Scripting Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Управление процессами (ps, top, kill)
  2. Перенаправление ввода и вывода (>, >>, <)
  3. Объединение команд в конвейер (|)
  4. Фоновые задания и управление заданиями
← Назад к Linux Command Line & Bash Scripting Mastery