Перенаправление ввода-вывода
Команды и списки могут содержать операторы < и > - перенаправления стандартного ввода и стандартного вывода соответственно.
Например: # ps -ax > /etc/proc
выводит текущее состояние процессов не на экран, а в файл /etc/proc. Если к этому моменту такого файла не было, то он будет создан. Если он существовал, то его старое содержимое будет уничтожено новой информацией.
Для то, чтобы не уничтожать содержимое файла, а добавить новую информацию (в конец файла), нужно использовать оператор `>>: # ps -ax >> /etc/proc
Кроме того, существует стандартный вывод ошибок. Он имеет дескриптор 2. Т.е. если мы не хотим получать сообщения об ошибках на стандартный вывод, то можно использовать перенаправление таким образом:
# cat /etc/proc 2>err.log (ошибки, если возникнут, будут выведены в файл err.log) либо
# cat /etc/proc 2>/dev/null (ошибки будут выведены <никуда>, их посмотреть будет невозможно).
Ввод перенаправляется аналогичным образом. Например, команда
# mail bob@com.com < /home/mail.txt
отправит содержимое файла /home/mail.txt по адресу bob@com.com.
Оператор << означает, что ввод для данной команды находится <ЗДЕСЬ>. Пример: # mail bob@com.com << end Hello, Bob! end
По этой команде в тело письма войдет все, что встретится до указанного нами ограничителя ввода end.