Основы регулярных выражений
Регулярные выражения — это специальным образом записанные строки, используемые для поиска символьных шаблонов в тексте. Их можно использовать для инструментов командной строки, например, 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 обеспечивает совместимость в различных средах. Он предлагает драйверы и фильтры для преобразования данных печати в форматы, понятные принтерам.
Скрипт для работы с лог файлами
Сценарий ротирует лог файлы в зависимости от максимального размера файла или заданного количества сохраняемых лог файлов.
Вы можете сохранить его в файле (например,
Сценарий ротирует лог файлы в зависимости от максимального размера файла или заданного количества сохраняемых лог файлов.
Вы можете сохранить его в файле (например,
log_rotation.sh), сделать его исполняемым с помощью chmod +x log_rotation.sh, а затем запустить вручную или запланировать запуск с помощью cron через определенные промежутки времени.Удалить все пустые папки
С помощью команды
Имейте в виду, что действие -delete необратимо, и команда удалит пустые каталоги напрямую без подтверждения. Убедитесь, что вы уверены в том, какие каталоги вы удаляете.
С помощью команды
find можно удалить все пустые папки в директории. Для этого воспользуйтесь следующей командой:find /путь/к/папке -type d -empty -delete
Имейте в виду, что действие -delete необратимо, и команда удалит пустые каталоги напрямую без подтверждения. Убедитесь, что вы уверены в том, какие каталоги вы удаляете.
Вывод следующей строки из файла после нахождения определенного шаблона
Для этого можно воспользоваться командой
Когда шаблон найден, выполняется команда в фигурных скобках {}.
Другой
Для этого можно воспользоваться командой
awk:awk ‘/Pattern/ {print; getline; print}' file.txt /Pattern/ : часть команды awk, где указывается, что команде нужно искать именно слово «Pattern».Когда шаблон найден, выполняется команда в фигурных скобках {}.
print печатает текущую строку (соответствующую шаблону).getline читает следующую строку.Другой
print печатает следующую строку после шаблона.Сортировки строк в текстовых файлов
Для сортировки информации в файлах используется команда
По дефолту sort сортирует в алфавитном порядке (учитывая регистр):
Сортировка в обратном порядке:
Сортировка чисел
Сохранить результат сортировки в файл:
Для сортировки информации в файлах используется команда
sort. Она принимает входные данные, сортирует их построчно и выводит результат в терминал. По дефолту sort сортирует в алфавитном порядке (учитывая регистр):
sort file.txtСортировка в обратном порядке:
sort -r file.txtСортировка чисел
sort -n numbers.txtСохранить результат сортировки в файл:
sort input.txt -o output.txtПеревод или удаление текстовых данных на уровне символов
Команда
Примеры:
Изменение нижнего регистра на верхний регистр:
Удаление определенных символов (некоторых гласных):
Преобразование символов («а» в 1, «b» в 2, «c» в 3):
Удаление повторяющихся символов:
Команда
tr используется для простых задач манипулирования текстом: изменение символов, удаление символов или сжатие повторяющихся символов.Примеры:
Изменение нижнего регистра на верхний регистр:
echo "hello world" | tr 'a-z' 'A-Z'Удаление определенных символов (некоторых гласных):
echo "Hello, how are you?" | tr -d 'aeiou'Преобразование символов («а» в 1, «b» в 2, «c» в 3):
echo "abcdef" | tr 'abc' '123'
Удаление повторяющихся символов:
echo "aaabbbccc" | tr -s 'a'Удаление нечитаемыx символов в файле
Для удаления символов, которые не может прочитать компьютер, можно воспользоваться командой:
Результат будет записан в файл
Для удаления символов, которые не может прочитать компьютер, можно воспользоваться командой:
tr -cd '[:print:]' < input.txt > output.txtРезультат будет записан в файл
output.txtУдаление определенного набора символов из файла
Для различных символьных преобразований можно воспользоваться командой
Например:
Удалить все нечисловые символы из файла:
Удалить все символы кроме буквенных:
Для различных символьных преобразований можно воспользоваться командой
tr.Например:
Удалить все нечисловые символы из файла:
tr -cd '0-9' < input.txt > output.txtУдалить все символы кроме буквенных:
tr -cd 'A-z' < input.txt > output.txt