Link Search Menu Expand Document
31 Августа 2021 г.

Linux. Каналы

Содержание
  1. Программный канал
  2. Примеры
    1. Пагинация по выводу
    2. Поиск нужных строк в файлах
    3. Фильтр запущенных процессов

Программный канал

Стандартные потоки ввода-вывода процессов можно перенаправлять на вход другим программам.

Однонаправленный канал межпроцессорного взаимодействия называют pipe, конвейером или трубой.

Программным каналом называется использование потока вывода одной команды в качестве потока ввода для другой программы, с помощью оператора программых каналов |.

command 1(stdout)|(stdin)command 2(stdout)|(stdin)command 3(stdout)|(stdin)command 4(stdout)

Выполнение всех команд в конвеере начинается одновременно, каждой в своем процессе.

Вывод посылающей программы собирается в буфер вывода и ставится в очередь.

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

Примеры

Пагинация по выводу

Частый кейс - это показывать длинный вывод данных порционно используя команду less или more.

ls -l  /usr/bin | less

Поиск нужных строк в файлах

Не менее важно уметь искать файлы в названии которых есть нужная строка

ls -1 /usr/bin | grep conf

вывод будет примерно таким

apt-config
debconf
debconf-apt-progress
debconf-communicate
debconf-copydb
debconf-escape
debconf-set-selections
debconf-show
discover-config
getconf
gpgconf

Так же применим к итоговому списку сортировку, например в обратном порядке

ls -1 /usr/bin/ | grep conf | sort -r

Фильтр запущенных процессов

Иногда нужно найти или отфильтровать определенный процесс.

Отфильтруем результат и укажем количество найденных процессов одним числом.

ps -ef | grep bash | wc -l

Возник вопрос или предложение пиши на почту alexsey_89@bk.ru или в Телеграмм канал

Дата публикации: 31 Августа 2021 г.