Шпаргалка по
grep — это мощный инструмент для поиска текста в файлах на основе регулярных выражений.
Основные команды:
1. Поиск строки в файле:
Ищет указанную строку в файле.
2. Поиск в нескольких файлах:
3. Поиск рекурсивно:
Ищет строку во всех файлах указанного каталога.
4. Игнорирование регистра:
5. Показать номер строки:
6. Вывод строк, не содержащих шаблон:
7. Подсветка совпадений:
8. Подсчитать количество совпадений:
Расширенные команды:
1. Использование регулярных выражений:
Или:
2. Поиск с указанием количества строк до и после совпадения:
3. Поиск только имени файла:
4. Инвертированный поиск файлов:
Показывает файлы, в которых не найдено совпадений.
Полезные опции:
-
-
-
Примеры:
1. Поиск строки "error" в логах:
2. Поиск строк с IP-адресами:
3. Поиск строки и запись результата в файл:
grep
grep — это мощный инструмент для поиска текста в файлах на основе регулярных выражений.
Основные команды:
1. Поиск строки в файле:
grep "строка" имя_файла
Ищет указанную строку в файле.
2. Поиск в нескольких файлах:
grep "строка" файл1 файл2
3. Поиск рекурсивно:
grep -r "строка" /путь/к/каталогу
Ищет строку во всех файлах указанного каталога.
4. Игнорирование регистра:
grep -i "строка" имя_файла
5. Показать номер строки:
grep -n "строка" имя_файла
6. Вывод строк, не содержащих шаблон:
grep -v "строка" имя_файла
7. Подсветка совпадений:
grep --color "строка" имя_файла
8. Подсчитать количество совпадений:
grep -c "строка" имя_файла
Расширенные команды:
1. Использование регулярных выражений:
grep -E "регулярное_выражение" имя_файла
Или:
egrep "регулярное_выражение" имя_файла
2. Поиск с указанием количества строк до и после совпадения:
grep -A 3 -B 2 "строка" имя_файла
-A
(after) и -B
(before) указывают количество строк, которые будут выведены до и после найденной строки.3. Поиск только имени файла:
grep -l "строка" *
4. Инвертированный поиск файлов:
grep -L "строка" *
Показывает файлы, в которых не найдено совпадений.
Полезные опции:
-
-w
— ищет полные слова.-
-o
— выводит только совпавшие строки.-
-q
— тихий режим, без вывода в терминал, используется для проверки совпадений.Примеры:
1. Поиск строки "error" в логах:
grep "error" /var/log/syslog
2. Поиск строк с IP-адресами:
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' имя_файла
3. Поиск строки и запись результата в файл:
grep "pattern" имя_файла > output.txt
👍4🔥2
Основы компьютерных сетей
Тема №1. Основные сетевые термины и сетевые модели
Тема №2. Протоколы верхнего уровня
Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Тема №4. Сетевые устройства и виды применяемых кабелей
Тема №5. Понятие IP адресации, масок подсетей и их расчет
Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Тема №7. Протокол связующего дерева: STP
Тема №8. Протокол агрегирования каналов: Etherchannel
Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP
Тема №1. Основные сетевые термины и сетевые модели
Тема №2. Протоколы верхнего уровня
Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Тема №4. Сетевые устройства и виды применяемых кабелей
Тема №5. Понятие IP адресации, масок подсетей и их расчет
Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Тема №7. Протокол связующего дерева: STP
Тема №8. Протокол агрегирования каналов: Etherchannel
Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP
👍4
Программа проверки истечения срока действия SSL-сертификатов
ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.
https://github.com/Matty9191/ssl-cert-check
ssl-cert-check - это скрипт оболочки Bourne, который можно использовать для оповещения об истечении срока действия SSL-сертификатов. Сценарий был разработан для запуска из cron и может рассылать уведомления по электронной почте или регистрировать предупреждения через nagios.
https://github.com/Matty9191/ssl-cert-check
👍2❤1
Основы мониторинга (обзор Prometheus и Grafana)
Мониторинг сегодня – фактически обязательная «часть программы» для компании любых размеров. В данной статье мы попробуем разобраться в многообразии программного обеспечения для мониторинга и рассмотрим подробнее одно из популярных решений – систему на основе Prometheus и Grafana
https://habr.com/ru/post/709204/
Мониторинг сегодня – фактически обязательная «часть программы» для компании любых размеров. В данной статье мы попробуем разобраться в многообразии программного обеспечения для мониторинга и рассмотрим подробнее одно из популярных решений – систему на основе Prometheus и Grafana
https://habr.com/ru/post/709204/
❤2
Как отлаживать bash-script-ы по шагам
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем
Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.
Волшебная строчка, которую нужно добавить после
#!/bin/bash
, чтоб скрипт можно было отлаживать по шагам#!/bin/bash
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
Процесс отладки
Запускаем скрипт, перед выполнением каждой команды выводится то, что будет исполняться, затем интерпретатор начинает ожидать нажатия клавиши <ENTER>.
Если понимаем, что что-то пошло не так, нажимаем
Ctrl+C
и выходим из отладки.Ингредиенты
команда trap, которая умеет перехватывать разные сигналы и в нашем случае она перехватывает сигнал DEBUG, посылаемый перед выполнением команды
команда read, которая умеет ожидать ввода чего-нибудь с клавиатуры (в данном случае нам нужно только либо ENTER либо
Ctrl+C
переменная окружения $BASH_COMMAND, валидная внутри обработчика команды trap.
# Online Bash Shell.
# Code, Compile, Run and Debug Bash script online.
# Write your code in this editor and press "Run" button to execute it.
trap 'echo "# $BASH_COMMAND";read' DEBUG
echo line1
echo line2
echo line3
echo "Hello World";
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Dockly
Это интерактивный терминальный интерфейс для управления контейнерами Docker. Утилита позволяет в режиме реального времени просматривать активные контейнеры, образы и сети, выполнять команды, такие как перезапуск или удаление контейнеров, а также получать доступ к их логам и ресурсам. Подходит для разработчиков и администраторов, которым нужен быстрый и удобный способ мониторинга и управления Docker-средами.
https://github.com/lirantal/dockly
Это интерактивный терминальный интерфейс для управления контейнерами Docker. Утилита позволяет в режиме реального времени просматривать активные контейнеры, образы и сети, выполнять команды, такие как перезапуск или удаление контейнеров, а также получать доступ к их логам и ресурсам. Подходит для разработчиков и администраторов, которым нужен быстрый и удобный способ мониторинга и управления Docker-средами.
https://github.com/lirantal/dockly
🔥3👍1
Dockerfile - файл содержащий инструкции для создания образа контейнера
FROM
- задаёт базовый (родительский) образLABEL
- описывает метаданные. Например — сведения о том, кто создал и поддерживает образENV
- устанавливает постоянные переменные средыRUN
- выполняет команду и создаёт слой образа. Используется для установки в контейнер пакетовCOPY
- копирует в контейнер файлы и папкиADD
- копирует файлы и папки в контейнер, может распаковывать архив на летуCMD
- описывает команду с аргументами, которую нужно выполнить когда контейнер будет запущен. Аргументы могут быть переопределены при запуске контейнера. В файле может присутствовать лишь одна инструкция CMD(запускается оболочка /bin/sh)USER
- указывает от какого пользователя всё будет работатьWORKDIR
- задаёт рабочую директорию для следующей инструкцииARG
- задаёт переменные для передачи Docker во время сборки образаENTRYPOINT
- предоставляет команду с аргументами для вызова во время выполнения контейнера. Аргументы не переопределяютсяEXPOSE
- указывает на необходимость открыть порт, сам порт не открываетVOLUME
- создаёт точку монтирования для работы с постоянным хранилищемMAINTAINER
- информация об авторе имя и <email>👍3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее
Многие из вас каждый день работают в терминале, так давайте улучшим это времяпровождение вместе. Существует множество полезных инструментов CLI, которые могут сделать вашу жизнь в командной строке проще, быстрее и в целом веселее.
В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привыкла полагаться.
Rus https://habr.com/ru/post/711968/
Eng https://dev.to/lissy93/cli-tools-you-cant-live-without-57f6#utils
Многие из вас каждый день работают в терминале, так давайте улучшим это времяпровождение вместе. Существует множество полезных инструментов CLI, которые могут сделать вашу жизнь в командной строке проще, быстрее и в целом веселее.
В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привыкла полагаться.
Rus https://habr.com/ru/post/711968/
Eng https://dev.to/lissy93/cli-tools-you-cant-live-without-57f6#utils
Регулярное выражение
Регулярное выражение - это шаблон, сопоставляемый с искомой строкой слева направо. Термин «Регулярное выражение» сложно произносить каждый раз, поэтому, обычно, вы будете сталкиваться с сокращениями "регэкспы" или "регулярки". Регулярные выражения используются для замен текста внутри строк, валидации форм, извлечений подстрок по определенным шаблонам и множества других вещей.
https://github.com/zevilz/learn-regex/blob/master/translations/README-ru.md
Регулярное выражение - это шаблон, сопоставляемый с искомой строкой слева направо. Термин «Регулярное выражение» сложно произносить каждый раз, поэтому, обычно, вы будете сталкиваться с сокращениями "регэкспы" или "регулярки". Регулярные выражения используются для замен текста внутри строк, валидации форм, извлечений подстрок по определенным шаблонам и множества других вещей.
https://github.com/zevilz/learn-regex/blob/master/translations/README-ru.md
👍2
Bash-скрипт для выполнения дампа всех баз данных MySQL, используемых на сервере
1- Для запуска скрипта необходимо дать права на исполнение скрипту командой
2- Запустить скрипт выполнив одну из следующих команд:
3- Дождататься, когда выполниться процесс. Дампы будут сохранены в формате
1- Для запуска скрипта необходимо дать права на исполнение скрипту командой
chmod +x dump_all_databases.sh
.2- Запустить скрипт выполнив одну из следующих команд:
./dump_all_databases.sh
sh dump_all_databases.sh
bash dump_all_databases.sh
3- Дождататься, когда выполниться процесс. Дампы будут сохранены в формате
YYYYMMDD.name_db.sql
.
#!/usr/bin/env bash
databases=`mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump --databases $db > `date +%Y%m%d`.$db.sql
# gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done
Совет для Linux💡
Получайте уведомления, когда ваши команды в терминале завершатся!
Замените
Получайте уведомления, когда ваши команды в терминале завершатся!
$ sudo apt update; notify-send "Обновление завершено" "Обновления получены"
Замените
apt update
на любую команду, выполнение которой займет время. Не забудьте сначала установить inotify-tools
:
$ sudo apt install inotify-tools
👍2