stdin, stderr, stdout ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

# Согласно центральной идее Unix, что «все сущее есть файл», такие программы, 
# как ls , в действительности выводят свои результаты в специальный файл, 
# который называется стандартным выводом (standard output, часто обозначается 
# как stdout), а сообщения о состоянии — в специальный файл стандартный вывод 
# ошибок (standard error, stderr). По умолчанию оба файла, стандартный вывод и 
# стандартный вывод ошибок, связаны с экраном и не сохраняются на диске.
# Кроме того, многие программы принимают ввод из специального файла с названием 
# стандартный ввод (standard input, stdin), который по умолчанию связан с 
# клавиатурой.
# Механизм перенаправления ввода/вывода позволяет изменять направление вывода и 
# ввода. Обычно вывод осуществляется на экран, а ввод — с клавиатуры, но 
# механизм перенаправления ввода/вывода позволяет изменить этот порядок вещей.

# ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

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

ll > ex.txt
# перенаправили вывод команды ll в файл.

ll >> ex.txt
# перенаправили вывод команды ll в файл с дозаписью. (сохраняя уже существующие
# данные в файле)




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

# Перенаправление стандартного вывода ошибок осуществляется не так просто, как
# стандартного вывода. Чтобы перенаправить стандартный вывод ошибок, нужно
# указать его дескриптор файла. Программа может производить вывод в любой из
# нескольких нумерованных файловых потоков. Первые три из них мы упомянули
# как стандартный ввод, вывод и вывод ошибок. Командная оболочка ссылается на
# них как на файловые дескрипторы 0, 1 и  2 соответственно. Командная оболочка
# поддерживает синтаксис перенаправления файлов с  использованием номеров
# файловых дескрипторов. Так как стандартному выводу ошибок соответствует
# файловый дескриптор 2 , мы можем перенаправить его, как показано ниже:

ll /bin/usr 2> ls-error.txt
# Номер файлового дескриптора 2 помещается непосредственно перед оператором 
# перенаправления, чтобы перенаправить стандартный вывод ошибок в  файл
# ls-error.txt.



ll /bin/usr 2> /dev/null
# подавить вывод сообщений об ошибках




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

cat > ex.txt
# В отсутствие аргументов с именами файлов cat копирует содержимое стандартного 
# ввода в  стандартный вывод. Эту ее особенность можно использовать для создания
# коротких текстовых файлов.
