Ввод и вывод. Перенаправление ввода и вывода
Каждый процесс в Linux получает при старте три потока данных (специальные файлы). Первый открыт на чтение и является стандартным вводом процесса stdin (процесс из него берет данные, читает), по умолчанию это клавиатура. Второй поток открыт на запись и называется стандартным выводом процесса stdout (процесс в него записывает данные), по умолчанию это экран. Третий поток данных предназначен для вывода сообщений об ошибках и называется стандартный вывод ошибок.Рассмотрит команду cat, которая берет данные с потока ввода и передает их на поток вывода, т.е. c stdin на stdout.
Введите команду cat. Поскольку не указаны потоки ввода и вывода, то считаются стандартными, т.е. ввод с клавиатуры, вывод на экран. Поэтому система будет ожидать ввода текста, а после сразу же выводить его на экран.
В команде cat имя_файла поток ввода указан из файла, поэтому данные будут читаться из файла и передаваться на стандартный поток вывода - экран.
Оболочка Shell дает возможность перенаправлять стандартные потоки, например, вывод делать не на экран, а в файл, чтобы данные были записаны и сохранены. Для этого используются символы > и < .
> - перенаправление стандартного вывода
< - перенаправление стандартного ввода
cat   >   textfile -поток ввода не указан, следовательно ввод с клавиатуры, а поток вывода перенаправлен в файл. Таким образом данные с клавиатуры записываются в файл.
Просмотрите созданный файл.
Если файл уже существует, то командная оболочка запишет его заново. Чтобы сохранить информацию в этом файле и добавить новую с клавиатуры, используется символ >>.
Добавьте в созданный файлtextfile еще данные: cat   >>   textfile
Снова просмотрите его.
cat   <   textfile   >   textfile2 - эта команда читает данные из файла textfile и записывает их в файл textfile2.
Команда sort данные, полученные с входного потока сортирует и направляет на поток вывода.
Используем эту команду, для сортировки данных введенных с клавиатуры и записи в файл text1.
sort   >   text1 Запишем построчно слова:
bananas
carrots
apples
Эти слова со стандартного входа обрабатываются sort и уже в алфавитном порядке поступают на поток вывода, который перенаправлен в файл text1.