Linux Labs

Первые шаги / Ступень 12 из 15

Конвейер: ответ из нескольких команд

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 1 из 7 · на машине · 6 мин

Кто присылал больше всех

Чему научишься

  • Передавать вывод одной команды на вход другой через |.
  • Считать повторы в столбце журнала связкой cut, sort и uniq -c.
  • Собирать конвейер по звену и сохранять ответ в файл.

Ночью сайт отвечал медленно. Руководитель спрашивает, с какого адреса пришло больше всего запросов. В журнале веб-сервера access.log 5000 строк, по строке на запрос, и первое слово каждой строки — адрес клиента. Коллега прислал команду, которая отвечает на такой вопрос, — запусти её.

Упражнение · посмотреть

Запусти команду коллеги

В ~/pipe-lab посмотри две первые строки журнала, а потом запусти команду коллеги.

Сначала предположи

Что напечатает команда коллеги?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Проверь себя 1 вопрос

Имя файла access.log есть только у cut. Откуда sort, uniq и head взяли строки?

  • Новых файлов в каталоге не появилось — проверь ls. Строки шли от команды к команде напрямую.

  • На экран попали три строки, а sort получил 5000 адресов. Между командами строки шли мимо экрана.

  • Без имени файла sort, uniq и head файлов не открывают. Запусти sort без аргументов: он будет ждать текст с клавиатуры, выйти — Ctrl+C.

Знак | передал вывод каждой команды на вход следующей.

Ubuntu 24.04
Загрузка…