"Совет свой себе посоветуй." Вот их несколько:
1. Начните с простых дистрибутивов: Если вы новичок в использовании Linux, начните с более простых дистрибутивов, таких как Ubuntu, Mint или Fedora. Эти дистрибутивы имеют более дружелюбный интерфейс и разработаны для удобства использования для пользователей с нулевым или ограниченным опытом работы с Linux.
2. Изучайте командную строку: Командная строка Linux может выглядеть сложной и непонятной, но после некоторой тренировки, вы начнете понимать, что это очень мощный инструмент. Изучение командной строки поможет вам управлять системой и работать эффективнее.
3. Установите пакеты только из источников, которым вы доверяете: Один из главных плюсов Linux - возможность устанавливать любые пакеты, не привязываясь к одному конкретному магазину приложений. Однако это также означает, что вы должны быть разумными и устанавливать пакеты только из источников, которым вы доверяете, чтобы избежать возможных проблем с безопасностью.
4. Запомните несколько полезных команд: Это может быть любая команда, такая как "ls" для просмотра содержимого директории, "ps" для просмотра запущенных процессов или "sudo" для выполнения команд с правами администратора в терминале.
5. Не бойтесь экспериментировать: Linux предоставляет множество возможностей для настройки системы, интерфейса и приложений. Не бойтесь экспериментировать с различными настройками и находите инновационные и удобные решения для себя.
1. Начните с простых дистрибутивов: Если вы новичок в использовании Linux, начните с более простых дистрибутивов, таких как Ubuntu, Mint или Fedora. Эти дистрибутивы имеют более дружелюбный интерфейс и разработаны для удобства использования для пользователей с нулевым или ограниченным опытом работы с Linux.
2. Изучайте командную строку: Командная строка Linux может выглядеть сложной и непонятной, но после некоторой тренировки, вы начнете понимать, что это очень мощный инструмент. Изучение командной строки поможет вам управлять системой и работать эффективнее.
3. Установите пакеты только из источников, которым вы доверяете: Один из главных плюсов Linux - возможность устанавливать любые пакеты, не привязываясь к одному конкретному магазину приложений. Однако это также означает, что вы должны быть разумными и устанавливать пакеты только из источников, которым вы доверяете, чтобы избежать возможных проблем с безопасностью.
4. Запомните несколько полезных команд: Это может быть любая команда, такая как "ls" для просмотра содержимого директории, "ps" для просмотра запущенных процессов или "sudo" для выполнения команд с правами администратора в терминале.
5. Не бойтесь экспериментировать: Linux предоставляет множество возможностей для настройки системы, интерфейса и приложений. Не бойтесь экспериментировать с различными настройками и находите инновационные и удобные решения для себя.
Визуальное представление дерева каталогов
Для получения визуального представления ваших директорий, можно использовать команду
Получим:
Для получения визуального представления ваших директорий, можно использовать команду
tree. Корень (/) дерева — вверху: tree -L 1 / Получим:
/
├── backups
├── bin
├── boot
[...]
В примере перечислены только каталоги верхнего уровня. С параметром -L 2 команда выведет также каталоги второго уровня, с параметром -L 3 — три уровня и т. д.В Linux есть несколько полезных инструментов и команд для анализа исходного кода, которые могут помочь вам в понимании кода, выявлении ошибок и поиске уязвимостей. Некоторые из них включают:
Зная эти инструменты, вы сможете лучше анализировать и отлаживать код в Linux.
grep - это утилита для поиска в файле по шаблону. Она может использоваться для поиска конкретной строки в файлах исходного кода, что может помочь в отладке кода и в поиске определенного куска кода.find - это команда для поиска файлов и директорий в соответствии с заданными критериями. Её можно использовать для поиска файлов исходного кода на всем жестком диске в соответствии с именами, датами изменения, размерами файлов и другими параметрами.ctags - это инструмент для создания индексных файлов, которые могут быть использованы другими инструментами для навигации по исходному коду. Индексные файлы содержат информацию о функциях, классах, переменных и других объектах в коде.cscope - это инструмент для анализа исходного кода на С и С++, который позволяет искать определения, обращения и вызовы функций в больших проектах кода. С помощью cscope можно найти определения функций, макросов, переменных и других объектов в исходном коде.valgrind - это инструмент для отладки динамического исполнения, который может использоваться для выявления утечек памяти, обнаружения ошибок в использовании памяти и определения производительности кода.Зная эти инструменты, вы сможете лучше анализировать и отлаживать код в Linux.
Figlet — небольшая утилита для создания больших символьных заголовков из обычного текста.
Она преобразует текст в ASCII-арт, позволяя добавлять эффект к тексту, используя символы ASCII.
Для установки Figlet в Ubuntu:
Она преобразует текст в ASCII-арт, позволяя добавлять эффект к тексту, используя символы ASCII.
Для установки Figlet в Ubuntu:
sudo apt-get install figlet
Figlet предоставляет несколько опций для управления стилем текста, шрифтом и выравниванием. Проверить доступные шрифты можно в каталоге /usr/share/figlet/ и применить их с помощью флага -fПоиск слова в текстовом файле
Для поиска можно использовать команду
Итак, чтобы найти слово в текстовом файле:
Для поиска можно использовать команду
grep. На самом деле этот интрумент намного мощнее, но сейчас мы рассмотрим его базовые возможности. Итак, чтобы найти слово в текстовом файле:
grep <слово> <файл>
Команда grep чувствительна к регистру, но, добавив флаг -i, она проигнорирует его:grep -i <слово> <файл>
Также может быть полезно узнать количество найденных слов по целевому запросу. Для этого используется флаг -c: grep -c <слово> <файл>В Linux драйверы ядра - это программное обеспечение, которое позволяет операционной системе взаимодействовать с аппаратной частью компьютера или другими устройствами. Они предоставляют интерфейс между ОС и устройством, обеспечивая правильную и эффективную работу устройства. (Как и везде)
Процесс работы драйвера в Linux выглядит следующим образом:
Инициирование - ядро операционной системы загружает и инициализирует драйвер при запуске системы или подключении устройства.
Регистрация - драйвер регистрируется в ядре с помощью структуры, которая описывает основные функции и возможности устройства.
Управление памятью - драйвер выделяет и управляет оперативной памятью, необходимой для работы устройства и его взаимодействия с ядром.
Основной цикл - драйвер отслеживает и обрабатывает запросы от операционной системы, передаваемые через специальные системные вызовы или интерфейсы. Он также отслеживает прерывания от устройства и реагирует на них, когда происходят события, требующие внимания драйвера.
Взаимодействие с устройством - драйвер отправляет и получает данные с устройства, контролируя его работу и передавая команды для выполнения специфических операций.
Обработка ошибок - драйвер обрабатывает возникающие ошибки и проблемы, предотвращая их влияние на работу всей системы и уведомляя операционную систему о возникающих сбоях или ошибках.
Выгрузка - когда драйвер уже не нужен, он может быть выгружен ядром операционной системы.
Важно отметить, что большинство драйверов для Linux являются частью ядра операционной системы и поставляются вместе с ней. Однако также существуют дополнительные драйверы, которые можно установить и обновить независимо от ядра.
Процесс работы драйвера в Linux выглядит следующим образом:
Инициирование - ядро операционной системы загружает и инициализирует драйвер при запуске системы или подключении устройства.
Регистрация - драйвер регистрируется в ядре с помощью структуры, которая описывает основные функции и возможности устройства.
Управление памятью - драйвер выделяет и управляет оперативной памятью, необходимой для работы устройства и его взаимодействия с ядром.
Основной цикл - драйвер отслеживает и обрабатывает запросы от операционной системы, передаваемые через специальные системные вызовы или интерфейсы. Он также отслеживает прерывания от устройства и реагирует на них, когда происходят события, требующие внимания драйвера.
Взаимодействие с устройством - драйвер отправляет и получает данные с устройства, контролируя его работу и передавая команды для выполнения специфических операций.
Обработка ошибок - драйвер обрабатывает возникающие ошибки и проблемы, предотвращая их влияние на работу всей системы и уведомляя операционную систему о возникающих сбоях или ошибках.
Выгрузка - когда драйвер уже не нужен, он может быть выгружен ядром операционной системы.
Важно отметить, что большинство драйверов для Linux являются частью ядра операционной системы и поставляются вместе с ней. Однако также существуют дополнительные драйверы, которые можно установить и обновить независимо от ядра.
Инвертированный поиск с помощью grep
Хоть и основная цель команды
Для этого мы будем использовать параметр
Хоть и основная цель команды
grep — искать определённые слова в строках, также можно сделать обратный поиск. Для этого мы будем использовать параметр
-v:grep -v the <путь/к/папке>
Команда отобразит все строки, в которых нет слова «the». Это может пригодиться в документах или списках, в которых слово повторяется много раз, и по какой-то причине нужно получить доступ к остальным строкам.Основы регулярных выражений
Регулярные выражения — это специальным образом записанные строки, используемые для поиска символьных шаблонов в тексте. Их можно использовать для инструментов командной строки, например, grep.
1. . - точка соответствует любому символу, например, gr.y найдет строки "gray", "green", "groom".
2. ^ - символ начала строки, например, ^hello найдет строки, начинающиеся с "hello".
3. $ - символ конца строки, например, world$ найдет строки, заканчивающиеся на "world".
4. [] - определяет класс символов, например, [aeiou] найдет любую гласную букву, [0-9] найдет любую цифру.
5. [^] - отрицание класса символов, например, [^0-9] найдет любой символ, кроме цифр.
6. * - символ, обозначает необязательный элемент, например, abc* найдет "ab", "abc", "abcc", "abccc", и т.д.
7. + - символ, действующий почти так же, как *, но требует совпадения с предыдущим элементом не менее одного раза, например, abc+ найдет "abc", "abcc", "abccc", и т.д.
8. ? - символ, означающий совпадение с элементом ноль или один раз. Иными словами совпадение с предыдущим элементом необязательно,например, ab?c найдет "ac" и "abc".
9. () - используются для группировки выражений, например, (ab)+ найдет "ab", "abab", "ababab", и т.д.
10. \ - используется для экранирования специальных символов, например, \. найдет точку в тексте.
Регулярные выражения — это специальным образом записанные строки, используемые для поиска символьных шаблонов в тексте. Их можно использовать для инструментов командной строки, например, grep.
1. . - точка соответствует любому символу, например, gr.y найдет строки "gray", "green", "groom".
2. ^ - символ начала строки, например, ^hello найдет строки, начинающиеся с "hello".
3. $ - символ конца строки, например, world$ найдет строки, заканчивающиеся на "world".
4. [] - определяет класс символов, например, [aeiou] найдет любую гласную букву, [0-9] найдет любую цифру.
5. [^] - отрицание класса символов, например, [^0-9] найдет любой символ, кроме цифр.
6. * - символ, обозначает необязательный элемент, например, abc* найдет "ab", "abc", "abcc", "abccc", и т.д.
7. + - символ, действующий почти так же, как *, но требует совпадения с предыдущим элементом не менее одного раза, например, abc+ найдет "abc", "abcc", "abccc", и т.д.
8. ? - символ, означающий совпадение с элементом ноль или один раз. Иными словами совпадение с предыдущим элементом необязательно,например, ab?c найдет "ac" и "abc".
9. () - используются для группировки выражений, например, (ab)+ найдет "ab", "abab", "ababab", и т.д.
10. \ - используется для экранирования специальных символов, например, \. найдет точку в тексте.
Пакетные менеджеры в Linux предназначены для установки, обновления и управления программными пакетами на операционной системе. Они облегчают задачу поиска и установки программ, а также управления зависимостями между пакетами.
Работа пакетных менеджеров обычно включает следующие шаги:
1. Репозитории: Пакетные менеджеры получают информацию о доступных пакетах из предустановленных репозиториев или из других удаленных источников. Репозитории содержат информацию о пакетах, их версиях, зависимостях и других метаданных.
2. Поиск и выбор пакетов: Пакетные менеджеры предоставляют возможность поиска пакетов по их имени, ключевым словам или описанию. Затем пользователь выбирает нужные пакеты для установки или обновления.
3. Установка и зависимости: Когда пакеты выбраны, пакетный менеджер проверяет их зависимости. Зависимости могут быть библиотеками, другими программами или пакетами, необходимыми для правильного функционирования пакета. Пакетный менеджер автоматически устанавливает эти зависимости, чтобы обеспечить корректную работу пакета.
4. Загрузка и установка: Пакетный менеджер загружает пакеты из репозиториев или других удаленных источников. Затем он устанавливает пакеты на систему, распаковывая архивы, расположенные в пакете, и инициируя соответствующие скрипты установки.
5. Обновления и удаление: Пакетные менеджеры также предоставляют возможность обновления уже установленных пакетов до более новых версий и удаления ненужных пакетов.
Пакетные менеджеры в Linux имеют командный интерфейс (например, APT для Debian и Ubuntu, YUM/DNF для Fedora и CentOS) или графический интерфейс (например, Synaptic, GNOME Software). Команды и методы управления пакетами могут немного различаться в разных дистрибутивах Linux, но основные принципы остаются похожими.
Работа пакетных менеджеров обычно включает следующие шаги:
1. Репозитории: Пакетные менеджеры получают информацию о доступных пакетах из предустановленных репозиториев или из других удаленных источников. Репозитории содержат информацию о пакетах, их версиях, зависимостях и других метаданных.
2. Поиск и выбор пакетов: Пакетные менеджеры предоставляют возможность поиска пакетов по их имени, ключевым словам или описанию. Затем пользователь выбирает нужные пакеты для установки или обновления.
3. Установка и зависимости: Когда пакеты выбраны, пакетный менеджер проверяет их зависимости. Зависимости могут быть библиотеками, другими программами или пакетами, необходимыми для правильного функционирования пакета. Пакетный менеджер автоматически устанавливает эти зависимости, чтобы обеспечить корректную работу пакета.
4. Загрузка и установка: Пакетный менеджер загружает пакеты из репозиториев или других удаленных источников. Затем он устанавливает пакеты на систему, распаковывая архивы, расположенные в пакете, и инициируя соответствующие скрипты установки.
5. Обновления и удаление: Пакетные менеджеры также предоставляют возможность обновления уже установленных пакетов до более новых версий и удаления ненужных пакетов.
Пакетные менеджеры в Linux имеют командный интерфейс (например, APT для Debian и Ubuntu, YUM/DNF для Fedora и CentOS) или графический интерфейс (например, Synaptic, GNOME Software). Команды и методы управления пакетами могут немного различаться в разных дистрибутивах Linux, но основные принципы остаются похожими.
Команда Ripgrep
Вот примеры некоторых основных использований Ripgrep:
1. Простой поиск в файле:
2. Рекурсивный поиск в текущей директории и ее поддиректориях:
3. Поиск с использованием регулярных выражений:
4. Исключение файлов или директорий из поиска:
5. Вывод только имен файлов, содержащих совпадения:
Ripgrep — это более быстрая альтернатива grep, написанная на rust.Вот примеры некоторых основных использований Ripgrep:
1. Простой поиск в файле:
rg <слово> <файл>2. Рекурсивный поиск в текущей директории и ее поддиректориях:
rg -r <слово>3. Поиск с использованием регулярных выражений:
rg <сло(во|вах)> <файл>
4. Исключение файлов или директорий из поиска:
rg <слово> --ignore-file=<файл>5. Вывод только имен файлов, содержащих совпадения:
rg -l <слово>Команда Ack
Вот примеры некоторых основных использований:
1. Простой поиск в файле:
2. Рекурсивный поиск в текущей директории и ее поддиректориях:
3. Поиск с использованием регулярных выражений:
4. Поиск только в файловом расширении:
5. Отображение только имен файлов, содержащих совпадения:
Ack - это инструмент командной строки, аналогичный утилите grep.Вот примеры некоторых основных использований:
1. Простой поиск в файле:
ack "pattern" file.txt2. Рекурсивный поиск в текущей директории и ее поддиректориях:
ack "pattern" 3. Поиск с использованием регулярных выражений:
ack "pat(tern|terns)" file.txt4. Поиск только в файловом расширении:
ack --python "pattern"5. Отображение только имен файлов, содержащих совпадения:
ack -l "pattern"Команда Sliver Searcher
Для того чтобы найти все файлы содержащие
Можно также использовать регулярные выражения:
чтобы поисковый запрос рассматривался именно как строка, можно использовать флаг
Искать файлы только определенного расширения:
Посмотреть расширения, которые поддерживает утилита, можно с помощью команды:
Sliver Searcher — более быстрая альтернатива команды ack. Для того чтобы найти все файлы содержащие
«слово» в папке /папка/ выполните:ag <слово> /папка/Можно также использовать регулярные выражения:
ag <рег. выражение> /папка/чтобы поисковый запрос рассматривался именно как строка, можно использовать флаг
-Q:ag -Q "[Install]" /папка/
Искать файлы только определенного расширения:
ag <расширение> <слово> /папка/Посмотреть расширения, которые поддерживает утилита, можно с помощью команды:
ag --list-file-typesПереворачивание строк с помощью одной команды
Команда
Самое простое использование:
В результате мы получим:
Этой команде также можно передать файл:
В результате вы увидите перевернутые строки из файла в вашем терминале.
Команда
rev в Linux используется для реверса символов. Она принимает входной текст, меняет порядок символов в каждой строке на обратный, а затем выводит результат. Самое простое использование:
echo "Linux" | revВ результате мы получим:
xuniLЭтой команде также можно передать файл:
rev <файл>В результате вы увидите перевернутые строки из файла в вашем терминале.
Команда для управления шириной строки
Команда
Например, у нас есть файл, в котором содержатся длинные строки, но мы их хотим разбить на строки определенной длины - n символов, тогда можно воспользоваться такой командой:
Получение строки можно пронумеровать, используя команду:
Это может быть полезно для форматирования текстовых файлов, обеспечивая их соответствие определенной ширине, или для печати на бумаге с ограниченной длиной строки.
Команда
fold в Linux используется для разбиения длинных строк текста на несколько строк.Например, у нас есть файл, в котором содержатся длинные строки, но мы их хотим разбить на строки определенной длины - n символов, тогда можно воспользоваться такой командой:
fold -w n <файл>Получение строки можно пронумеровать, используя команду:
fold -w n <файл> | nlЭто может быть полезно для форматирования текстовых файлов, обеспечивая их соответствие определенной ширине, или для печати на бумаге с ограниченной длиной строки.
Объединение информации из нескольких файлов
Команда
Чтобы изменить разделитель, можно воспользоваться флагом -d:
Чтобы использовать стандартный ввод для объединения строк:
Введите строки вручную, а затем нажмите Ctrl+D, чтобы завершить ввод. Результат будет аналогичен слиянию с другим файлом.
Эта команда особенно полезна, если вы хотите объединить данные из нескольких источников для анализа или сравнения.
Команда
paste мержит строки из разных файлов или из стандартного ввода, разделяя их по дефолту символом табуляции. paste file1.txt file2.txt file3.txtЧтобы изменить разделитель, можно воспользоваться флагом -d:
paste -d ',' file1.txt file2.txtЧтобы использовать стандартный ввод для объединения строк:
paste - file1.txtВведите строки вручную, а затем нажмите Ctrl+D, чтобы завершить ввод. Результат будет аналогичен слиянию с другим файлом.
Эта команда особенно полезна, если вы хотите объединить данные из нескольких источников для анализа или сравнения.
Изменение порядка строк файла
Команда
Синтаксис команды:
Если вы хотите добавить разделитель между строками, можно использовать флаг
Команда
tac в Linux используется для вывода содержимого текстового файла в обратном порядке в терминал.Синтаксис команды:
tac <файл>Если вы хотите добавить разделитель между строками, можно использовать флаг
-b:tac <файл> --separator "==="Топ-5 полезных демонов Linux
1. sshd (демон OpenSSH)
Обеспечивает безопасный удаленный доступ к системе по протоколу SSH.
2. httpd (HTTP-сервер Apache)
HTTP-сервер Apache — один из самых популярных веб-серверов. Он обслуживает веб-контент, обрабатывает HTTP-запросы и много чего еще.
3. nginx
Подобно Apache, nginx — это высокопроизводительный веб-сервер и обратный прокси-сервер.
4. mysqld и postgresql
Демоны MySQL и PostgreSQL используются для запуска серверов реляционных баз данных.
5. cron
Позволяет планировать запуск задач через определенные промежутки времени или в определенное время.
1. sshd (демон OpenSSH)
Обеспечивает безопасный удаленный доступ к системе по протоколу SSH.
2. httpd (HTTP-сервер Apache)
HTTP-сервер Apache — один из самых популярных веб-серверов. Он обслуживает веб-контент, обрабатывает HTTP-запросы и много чего еще.
3. nginx
Подобно Apache, nginx — это высокопроизводительный веб-сервер и обратный прокси-сервер.
4. mysqld и postgresql
Демоны MySQL и PostgreSQL используются для запуска серверов реляционных баз данных.
5. cron
Позволяет планировать запуск задач через определенные промежутки времени или в определенное время.
Docker в Linux
Docker — это платформа, которая позволяет разрабатывать, развертывать и запускать приложения в контейнерах.
Контейнеры — это легкие изолированные среды, которые упаковывают приложение и его зависимости вместе, обеспечивая согласованность в различных средах.
Установка:
После установки Docker вы можете использовать инструмент командной строки
⁃
⁃
⁃
⁃
⁃
⁃
Docker — это платформа, которая позволяет разрабатывать, развертывать и запускать приложения в контейнерах.
Контейнеры — это легкие изолированные среды, которые упаковывают приложение и его зависимости вместе, обеспечивая согласованность в различных средах.
Установка:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable dockerПосле установки Docker вы можете использовать инструмент командной строки
docker:⁃
docker pull: загружает образ Docker из репозитория.⁃
docker run: создает и запускает контейнер из образа.⁃
docker ps: список запущенных контейнеров.⁃
docker images: список доступных изображений.⁃
docker exec: выполняет команды в работающем контейнере.⁃
docker build: создает новый образ Docker из файла Dockerfile.Демон rsyslogd в системах Linux
rsyslogd действует как центральный узел для ведения журналов и получения сообщений от приложений, служб и компонентов системы. (Сообщения содержат информацию о событиях, ошибках и предупреждениях)
rsyslogd предлагает расширенные возможности фильтрации и маршрутизации, направляя журналы в определенные места назначения, такие как файлы, удаленные серверы или базы данных.
Демон поддерживает несколько форматов журналов, от традиционного системного журнала до современного JSON. Файл конфигурации позволяет точно настраивать поведение, регулируя уровни и места назначения.
rsyslogd — это демон, управляющий сообщениями журнала для диагностики информации и мониторинга системы. rsyslogd действует как центральный узел для ведения журналов и получения сообщений от приложений, служб и компонентов системы. (Сообщения содержат информацию о событиях, ошибках и предупреждениях)
rsyslogd предлагает расширенные возможности фильтрации и маршрутизации, направляя журналы в определенные места назначения, такие как файлы, удаленные серверы или базы данных.
Демон поддерживает несколько форматов журналов, от традиционного системного журнала до современного JSON. Файл конфигурации позволяет точно настраивать поведение, регулируя уровни и места назначения.
Скрипт, выполняющий резервное копирование каталогов и файлов
Замените
Сохраните скрипт в файл, например,
Затем запустите скрипт:
Замените
/path/to/source_directory1 фактическим путем к каталогам и файлам, резервную копию которых вы хотите создать. Аналогичным образом замените /path/to/backup_directory на путь к каталогу, в котором вы хотите хранить файлы резервных копий.Сохраните скрипт в файл, например,
backup_noscript.sh, и сделайте его исполняемым с помощью следующей команды:chmod +x backup_noscript.shЗатем запустите скрипт:
./backup_noscript.shДемон cupsd в системах Linux
cupsd позволяет системам Linux выступать в качестве серверов печати. Он управляет очередями печати, планированием и связью с принтерами, обеспечивая бесперебойную работу пользователей и приложений.
cupsd предлагает веб-интерфейс администрирования. Он упрощает настройку, настройку и мониторинг состояния принтера.
Благодаря поддержке различных моделей принтеров и сетевых протоколов cupsd обеспечивает совместимость в различных средах. Он предлагает драйверы и фильтры для преобразования данных печати в форматы, понятные принтерам.
cupsd, часть CUPS (Common Unix Printing System) — демон, управляющим службами печати. Он управляет принтерами, заданиями на печать и предоставляет унифицированный интерфейс для задач печати.cupsd позволяет системам Linux выступать в качестве серверов печати. Он управляет очередями печати, планированием и связью с принтерами, обеспечивая бесперебойную работу пользователей и приложений.
cupsd предлагает веб-интерфейс администрирования. Он упрощает настройку, настройку и мониторинг состояния принтера.
Благодаря поддержке различных моделей принтеров и сетевых протоколов cupsd обеспечивает совместимость в различных средах. Он предлагает драйверы и фильтры для преобразования данных печати в форматы, понятные принтерам.