Linux для чайника – Telegram
Linux для чайника
20K subscribers
88 photos
4 files
79 links
Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.

Только по вопросам сотрудничества: @altmainf

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Основы регулярных выражений

Регулярные выражения — это специальным образом записанные строки, используемые для поиска символьных шаблонов в тексте. Их можно использовать для инструментов командной строки, например, 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, но основные принципы остаются похожими.
Команда Ripgrep

Ripgrep — это более быстрая альтернатива grep, написанная на rust.

Вот примеры некоторых основных использований Ripgrep:

1. Простой поиск в файле:
rg <слово> <файл>

2. Рекурсивный поиск в текущей директории и ее поддиректориях:
rg -r <слово>

3. Поиск с использованием регулярных выражений:
rg <сло(во|вах)> <файл>

4. Исключение файлов или директорий из поиска:
rg <слово> --ignore-file=<файл>

5. Вывод только имен файлов, содержащих совпадения:
rg -l <слово>
Команда Ack

Ack - это инструмент командной строки, аналогичный утилите grep.

Вот примеры некоторых основных использований:

1. Простой поиск в файле:
ack "pattern" file.txt

2. Рекурсивный поиск в текущей директории и ее поддиректориях:
ack "pattern"

3. Поиск с использованием регулярных выражений:
ack "pat(tern|terns)" file.txt

4. Поиск только в файловом расширении:
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 <файл>

В результате вы увидите перевернутые строки из файла в вашем терминале.
Команда для управления шириной строки

Команда fold в Linux используется для разбиения длинных строк текста на несколько строк.

Например, у нас есть файл, в котором содержатся длинные строки, но мы их хотим разбить на строки определенной длины - n символов, тогда можно воспользоваться такой командой:
fold -w n <файл>

Получение строки можно пронумеровать, используя команду:
fold -w n <файл> | nl

Это может быть полезно для форматирования текстовых файлов, обеспечивая их соответствие определенной ширине, или для печати на бумаге с ограниченной длиной строки.
Объединение информации из нескольких файлов

Команда 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
Позволяет планировать запуск задач через определенные промежутки времени или в определенное время.
Docker в Linux

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 действует как центральный узел для ведения журналов и получения сообщений от приложений, служб и компонентов системы. (Сообщения содержат информацию о событиях, ошибках и предупреждениях)

rsyslogd предлагает расширенные возможности фильтрации и маршрутизации, направляя журналы в определенные места назначения, такие как файлы, удаленные серверы или базы данных.

Демон поддерживает несколько форматов журналов, от традиционного системного журнала до современного JSON. Файл конфигурации позволяет точно настраивать поведение, регулируя уровни и места назначения.
Скрипт, выполняющий резервное копирование каталогов и файлов

Замените /path/to/source_directory1 фактическим путем к каталогам и файлам, резервную копию которых вы хотите создать. Аналогичным образом замените /path/to/backup_directory на путь к каталогу, в котором вы хотите хранить файлы резервных копий.

Сохраните скрипт в файл, например, backup_noscript.sh, и сделайте его исполняемым с помощью следующей команды:
chmod +x backup_noscript.sh

Затем запустите скрипт:
./backup_noscript.sh
Демон cupsd в системах Linux

cupsd, часть CUPS (Common Unix Printing System) — демон, управляющим службами печати. Он управляет принтерами, заданиями на печать и предоставляет унифицированный интерфейс для задач печати.

cupsd позволяет системам Linux выступать в качестве серверов печати. Он управляет очередями печати, планированием и связью с принтерами, обеспечивая бесперебойную работу пользователей и приложений.

cupsd предлагает веб-интерфейс администрирования. Он упрощает настройку, настройку и мониторинг состояния принтера.

Благодаря поддержке различных моделей принтеров и сетевых протоколов cupsd обеспечивает совместимость в различных средах. Он предлагает драйверы и фильтры для преобразования данных печати в форматы, понятные принтерам.
Скрипт для работы с лог файлами

Сценарий ротирует лог файлы в зависимости от максимального размера файла или заданного количества сохраняемых лог файлов.

Вы можете сохранить его в файле (например, log_rotation.sh), сделать его исполняемым с помощью chmod +x log_rotation.sh, а затем запустить вручную или запланировать запуск с помощью cron через определенные промежутки времени.
Удалить все пустые папки

С помощью команды find можно удалить все пустые папки в директории. Для этого воспользуйтесь следующей командой:
find /путь/к/папке -type d -empty -delete

Имейте в виду, что действие -delete необратимо, и команда удалит пустые каталоги напрямую без подтверждения. Убедитесь, что вы уверены в том, какие каталоги вы удаляете.
Вывод следующей строки из файла после нахождения определенного шаблона

Для этого можно воспользоваться командой awk:
awk ‘/Pattern/ {print; getline; print}' file.txt

/Pattern/ : часть команды awk, где указывается, что команде нужно искать именно слово «Pattern».
Когда шаблон найден, выполняется команда в фигурных скобках {}.
print печатает текущую строку (соответствующую шаблону).
getline читает следующую строку.
Другой print печатает следующую строку после шаблона.
Сортировки строк в текстовых файлов

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

По дефолту sort сортирует в алфавитном порядке (учитывая регистр):
sort file.txt

Сортировка в обратном порядке:
sort -r file.txt

Сортировка чисел
sort -n numbers.txt

Сохранить результат сортировки в файл:
sort input.txt -o output.txt
Перевод или удаление текстовых данных на уровне символов

Команда 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