Базовые знания Linux админа

 

Примечание

В данной серии не будет теории и прочего

Это абсолютный базис-гайд по установке ОС и базовым навыкам в терминале

В конце будет рассмотрено несколько современных технологий в простых реализациях

После прохождения гайда у вас будет машина и несколько популярных сервисов

Все. Дальше - сами, книги, видео, стажировка

Этот гайд - выжимка на многолетние накопления вопросов на канале и сайте

Гайд будет доступен на моем сайте:

http://snakeproject.ru

Видео будут доступны на моем канале YouTube:

https://www.youtube.com/channel/UCR6j95DKI80MFXIw2iJ3f1w

 

План:

 

5 часть — регулярные выражения

 

В предыдущей части не включил кусочек про автоматизацию задач, исправляюсь =)

 

Автоматизация задач в Linux с помощью планировщика cron

 

Синтаксис планировщика cron:

Минута

Час

День

Месяц

День недели

(0 - 59)

(0 - 23)

(1 - 31)

(1 - 12)

(0 - 7) (Воскресенье = 0 или 7)

 

Примеры:

30 20 * * *

каждый день в 20:30

05 20 * * 5

каждую пятницу в 20:05

10 12 * * 1-5

в будни в 12:10

05,25 * * * *

в 5 и 25 минут каждого часа

*/20 * * * *

каждые 20 минут

 

Файл конфигурации системных заданий находится в /etc/crontab

Папка системных задач находится по пути: /etc/cron.d/

 

Управление доступом к планировщику пользователям системы прописывается в:

/etc/cron.deny

/etc/cron.allow

 

В файл вносится имя пользователя (один логин на строку)

cron.allow имеет приоритет над cron.deny, если логин прописан в обоих, доступ будет открыт

 

Утилиты для работы с cron:

crontab -l выведет список существующих заданий пользователя

crontab -e откроет на редактирование crontab файл текущего пользователя

 

Пример добавления команды в планировщик через crontab -e:

55 23  *  *  *    peasant

 

Второй параметр (peasant) - учетная запись, с правами которой запускается программа

 

Третий параметр (/root/script.sh > /dev/null) - скрипт, который будет запускаться

 

Можно не только запускать скрипты, но и давать стандартные команды консоли:

55 23  *  *  *    root    reboot

 

Например, если создавалось задание из под учетки peasant, файл заданий появится в:

/var/spool/cron/crontabs/peasant

 

Регулярные выражения

 

Для начала приведу пару утилит, где могут понадобиться шаблоны и регулярные выражения

 

Утилита поиска grep

 

Поиск строки, начинающейся (^) в строке с peasant

grep "^peasant" /etc/passwd

 

Поиск слова peasant, начинается с указанных символов - pP

grep "^[pP]easant" /etc/passwd

 

Поиск слова peasant, начинается с любого (^.) символа

grep "^.easant" /etc/passwd

 

Регулярное выражение (шаблон x: + одно число с 0 по 1 + 3 любых символа + :1000)

grep "x:[0-1]...:1000" /etc/passwd

 

Регулярное выражение (3 любых символа заменены на совпадению сколько угодно символов)

grep "x:[0-1]*:1000" /etc/passwd

 

Поиск рекурсивно по каталогам во всех файлах (^. - начало с любого символа + easant)

sudo grep -r "^.easant" /etc/

 

Поиск по 2м (|) вариантам совпадений

grep -E "[pP]easant|[rR]oot" /etc/passwd

 

Самостоятельно посмотрите в man ключи для утилиты grep

 

Тема регулярных выражений очень обширная

В данном пособии представлено лишь несколько вариантов функционала, где они могут применяться

 

Существуют онлайн генераторы для проверки регулярных выражений

 

Одни из самых популярных - https://regex101.com/

 

Изучите самостоятельно регулярные выражения и примените знания на данном генераторе и в ОС Linux

 

Пример поиска выше - [pP]easant|[rR]oot

 

Приведу пару слайдов операторов и шаблонов для самостоятельного изучения

 

 

sed - редактор текста

 

С помощью данной утилиты можно редактировать файлы без их открытия

Умеет находить, заменять, вставлять и удалять текст и его фрагменты

 

Синтаксис sed:

sed [параметры] [команды] (файл)

 

Мы рассмотрим только самые простые примеры

 

Рассмотрим самый часто применяемы функционал по поиску и замене текста

Поддерживаются регулярные выражения

s/что_заменять/на_что_заменять/опции

 

Пример с ключами "-s" и "-g"

s/шаблон_поиска/шаблон_замены/g

 

Где:

s - заменить шаблон_поиска на шаблон_замены

g - глобальная замена всех вхождений

 

Примеры файла и замены

 

Создайте тестовый файл:

cat <<EOF > file1

first

шаблон_поиска

second

шаблон_поиска

third

EOF

 

Применим редактор sed для замены:

sed 's/шаблон_поиска/шаблон_замены/g' file1 > file2 && cat file2

Пример с удалением строк по найденному шаблону:

sed '/шаблон_поиска/d' file1 > file2 && cat file2

first

second

third

 

Пример удаления строк, где на конце ($) один из символов от a до d ([a-d]):

sed '/[a-d]$/d' file1 > file2 && cat file2

first

шаблон_поиска

шаблон_поиска