Стандартный ввод (вход) - "stdin" в ОС UNIX осуществляется с клавиатуры терминала, а стандартный вывод (выход) - "stdout" направлен на экран терминала. Существует еще и стандартный файл диагностических сообщений - "stderr", о котором речь будет чуть позже.
Команда, которая может работать со стандартным входом и выходом, называется ФИЛЬТРОМ.
Пользователь имеет удобные средства перенаправления ввода и вывода на другие файлы (устройства). Символы ">" и ">>" обозначают перенаправление вывода.
ls >f1
команда "ls" сформирует список файлов текущего каталога и поместит его в файл "f1" (вместо выдачи на экран). Если файл "f1" до этого существовал, то он будет затерт новым.
pwd >>f1
команда pwd сформирует полное имя текущего каталога и поместит его в конец файла "f1", т.е. ">>" добавляет в файл, если он непустой.
Символы "<" и "<<" обозначают перенаправление ввода.
wc -l <f1
подсчитает и выдаст на экран число строк в файле f1.
ed f2 <<!
создаст с использованием редактора файл "f2", непосредственно с терминала. Окончание ввода определяется по символу, стоящему правее "<<" (т. е. "!"). То есть ввод будет закончен, когда первым в очередной строке будет "!".
Можно сочетать перенаправления. Так
wc -l <f3 >f4 и wc -l >f4 <f3
выполняются одинаково: подсчитывается число строк файла "f3" и результат помещается в файл "f4".
Средство, объединяющее стандартный выход одной команды со стандартным входом другой, называется КОНВЕЙЕРОМ и обозначается вертикальной чертой "|".
ls | wc -l
список файлов текущего каталога будет направлен на вход команды "wc", которая на экран выведет число строк каталога.
Конвейером можно об'единять и более двух команд, когда все они, возможно кроме первой и последней - фильтры:
cat f1 | grep -h result | sort | cat -b > f2