Linux: Стандартные файловые дескрипторы

В Unix-подобных операционных системах, таких как Linux, существует три стандартных файловых дескриптора, которые автоматически создаются для каждого нового процесса. Эти файловые дескрипторы являются основой для взаимодействия процесса с вводом и выводом.

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

Примеры использования стандартных дескрипторов в командной строке linux

# Перенаправление стандартного ввода (stdin)
# Чтение данных из файла
# Эта команда читает содержимое файла input.txt и отправляет его на стандартный вывод
cat < input.txt

# Перенаправление стандартного вывода (stdout)
# Запись вывода команды в файл
# Эта команда записывает результат выполнения команды ls -l в файл output.txt. Если файл уже существует, его содержимое будет перезаписано.
ls -l > output.txt

# Перенаправление стандартного вывода ошибок (stderr)
# Запись ошибок в файл
# Эта команда пытается выполнить команду ls для несуществующего файла. Сообщение об ошибке будет записано в файл error.txt
ls non_existing_file 2> error.txt

# Одновременное перенаправление stdout и stderr
# Запись вывода и ошибок в разные файлы
# Эта команда записывает успешный вывод команды ls в output.txt и ошибки в error.txt
ls existing_file non_existing_file > output.txt 2> error.txt

# Запись вывода и ошибок в один файл
# Здесь 2>&1 указывает, что стандартный вывод ошибок (stderr) должен быть перенаправлен в тот же файл, что и стандартный вывод (stdout)
ls existing_file non_existing_file > all_output.txt 2>&1

# Добавление (append) вывода команды в конец файла
# Эта команда добавляет результат выполнения команды ls -l в конец файла output.txt
ls -l >> output.txt

# Добавление (append) ошибок в конец файла
# Эта команда пытается выполнить команду ls для несуществующего файла. Сообщение об ошибке будет добавлено в конец файла error.txt
ls non_existing_file 2>> error.txt

# Одновременное добавление (append) stdout и stderr
# Добавление вывода и ошибок в разные файлы
# Эта команда добавляет успешный вывод команды ls в конец файла output.txt и ошибки в конец файла error.txt
ls existing_file non_existing_file >> output.txt 2>> error.txt

# Добавление вывода и ошибок в один файл
# Здесь 2>&1 указывает, что стандартный вывод ошибок (stderr) должен быть перенаправлен в тот же файл, что и стандартный вывод (stdout)
# и все это добавляется в конец файла all_output.txt
ls existing_file non_existing_file >> all_output.txt 2>&1
Linux Просмотров: 122
Оценить код:

Комментарии

Ваш комментарий будет первым.
Войдите, чтобы оставить комментарий.