Перенаправление ввода/вывода

Согласно идеологии UNIX стандартные потоки ввода и вывода можно перенаправлять. По умолчанию стандартный ввод и стандартный вывод ассоциированы с консолью (ввод с клавиатуры и вывод на монитор). Но часто возникает необходимость выводить информацию не на экран (пользователя в это время у компьютера может не оказаться, либо выводимая информация окажется чрезмерно велика для ее чтения с экрана), а в файл, который можно прочитать или распечатать потом. Именно так организуется аудит опасных событий. Выводить информацию можно двумя командами. Например:

Is -la /home/userl > /etc/syslog.Is

Данная команда записывает список файлов пользователя в текстовый файл. Если этот файл не существует, то он создается. Если он существует, его прежнее содержимое вначале стирается.

logger » /etc/syslog.Is

В этом случае выводимая информация дописывается к содержимому файла аудита. Если файл не существует, при первом исполнении команды он будет создан.

Иногда вывод информации необходимо перенаправить в какое-либо устройство (в этом случае мы адресуемся к специальному файлу устройства, который является буфером между командным интерпретатором и драйверами устройства).

cat file_name > /dev/fdO

Читаем ранее созданный образ дискеты и копируем его на сменный носитель.

cat file_name > /dev/lpO

Выводим содержимое файла на принтере, подключенном к первому параллельному порту.

cat /usr/share/sndconfig/sample.au > /dev/audio

Воспроизводим звуковой файл через звуковой адаптер.

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