Каналы

В Linux каналы соединяют стандартный вывод одной команды на стандартный ввод другой.

Вспомните команду ls, рассмотренную ранее. Команда ls имеет множество параметров, но что делать с тем, что содержимое каталога слишком быстро убегает наверх и вы не успеваете его просмотреть?

Просмотрите содержимое каталога /etc.

ls -al /etc

Как получше рассмотреть выведенную информацию, до того как она пропадёт с экрана?

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

Воспользуйтесь вертикальной чертой (|) чтобы связать команды через канал (как показано на Рисунке 10-11).

ls -al /etc | less

Теперь вы можете просматривать содержимое каталога по одному экрану. Чтобы перейти к следующему экрану, нажмите клавишу [Space]; чтобы вернуться к предыдущему нажмите [b]; для выхода нажмите [q].

ПодсказкаКак прочесть сообщения о загрузке
 

Чтобы прочитать сообщения о загрузке, выполните в приглашении оболочки dmesg | less. Вы сможете просмотреть файл постранично. Чтобы продвинуться вперед нажмите [Spacebar]; для выхода нажмите [Q].

Рисунок 10-11. Направление вывода команды ls через канал в less

Если вы заметили, каналы появились в этом руководстве раньше. Ранее, при знакомстве со страницами man, чтобы их распечатать, вы применили следующую команду:

man ls | col -b | lpr

Здесь вывод команды man ls по каналу отправляется в фильтр col, запущенный с параметром -b, что позволило отформатировать текст для принтера. Затем информация, выводимая фильтром, отправляется по каналу на принтер, с помощью команды lpr.

В качестве другого примера введите:

grep coffee sneakers.txt | lpr

При этом будет напечатана каждая строка файла sneakers.txt, содержащая слово "coffee" (прочитайте о grep в разделе Команда grep).

Команда The more

Основным отличием между командами more и less является то, что more позволяет вам просматривать файл только вперёд, тогда как less допускает перемещение в обе стороны.

Взгляните на страницу man, посвященную more, но в этот раз откройте эту страницу, используя more — направив через канал вывод команды man на ввод more.

	  man more | more