Канал соединяет выход одной программы со входом другой программы. Это особенно используется для реализации оболочки | оператор.

труба соединяет выход одной программы со входом другой программы. Это один из фундаментальных механизмов межпроцессного взаимодействия в Linux.

В оболочке оператор | создает канал, соединяющий процесс слева с процессом справа. Например,

mycommand | less 

отправляет вывод mycommand в команду less, которая отображает свой ввод (то есть вывод mycommand) в интерфейсе, обеспечивающем навигацию и поиск.