Red Hat Linux 7.2: Официальное руководство по основам работы с Red Hat Linux | ||
---|---|---|
Назад | Глава 10. Основы командной строки | Вперед |
В Linux каналы соединяют стандартный вывод одной команды на стандартный ввод другой.
Вспомните команду ls, рассмотренную ранее. Команда ls имеет множество параметров, но что делать с тем, что содержимое каталога слишком быстро убегает наверх и вы не успеваете его просмотреть?
Просмотрите содержимое каталога /etc.
ls -al /etc |
Как получше рассмотреть выведенную информацию, до того как она пропадёт с экрана?
Вы можете направить вывод утилите, названной less. Также называемая pager, команда less позволяет вам просматривать информацию постранично.
Воспользуйтесь вертикальной чертой (|) чтобы связать команды через канал (как показано на Рисунке 10-11).
ls -al /etc | less |
Теперь вы можете просматривать содержимое каталога по одному экрану. Чтобы перейти к следующему экрану, нажмите клавишу
Как прочесть сообщения о загрузке | |
---|---|
Чтобы прочитать сообщения о загрузке, выполните в приглашении оболочки dmesg | less. Вы сможете просмотреть файл постранично. Чтобы продвинуться вперед нажмите |
Если вы заметили, каналы появились в этом руководстве раньше. Ранее, при знакомстве со страницами man, чтобы их распечатать, вы применили следующую команду:
man ls | col -b | lpr |
Здесь вывод команды man ls по каналу отправляется в фильтр col, запущенный с параметром -b, что позволило отформатировать текст для принтера. Затем информация, выводимая фильтром, отправляется по каналу на принтер, с помощью команды lpr.
В качестве другого примера введите:
grep coffee sneakers.txt | lpr |
При этом будет напечатана каждая строка файла sneakers.txt, содержащая слово "coffee" (прочитайте о grep в разделе Команда grep).
Основным отличием между командами more и less является то, что more позволяет вам просматривать файл только вперёд, тогда как less допускает перемещение в обе стороны.
Взгляните на страницу man, посвященную more, но в этот раз откройте эту страницу, используя more — направив через канал вывод команды man на ввод more.
man more | more |