Bash-скрипт без аргументов — это как утилита без настроек.
Чтобы сделать скрипт гибким, мы добавляем флаги:
-f, --help, --verbose
и так далее. Это делает его похожим на настоящую CLI-программу.
В этом посте:
• Разбираемся, как Bash обрабатывает позиционные аргументы
• Используем getopts и while/case для флагов
• Добавляем валидацию и вывод подсказок
• Пишем скрипт, который запускается с разными параметрами — как у взрослых.
🔥 — если узнал что-то новое
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤3👍3
Это команды, с которых начинается любая работа в терминале: переходы между директориями, создание и чтение файлов, фильтрация вывода и поиск нужной информации.
Они простые, но критически важные — и используются в каждом втором скрипте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝19🔥6👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Stepik — это обучающая платформа, которая предоставляет онлайн-курсы и интерактивные задания по программированию
📌 Оставляю ссылочку: stepik.org
🚪 Bash Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
Переименовываем все файлы в папке по шаблону!
Хочешь автоматом переименовывать кучу файлов в нужный формат? Покажу, как это делается на Bash!
Сначала определим папку с файлами и заготовим шаблон для нового имени:
Теперь запускаем цикл по всем файлам и переименовываем каждый:
• cd "$folder" — переходим в нужную папку
• ext="${file##*.}" — получаем расширение файла
• mv — переименовываем, добавляя префикс и номер
• ((i++)) — увеличиваем счётчик
Проверим работу:
Допустим, в папке были:
После скрипта:
🔥 Теперь ты можешь массово наводить порядок в своих файлах и делать это как настоящий shell-ниндзя!
🚪 Bash Ready | #практика
Хочешь автоматом переименовывать кучу файлов в нужный формат? Покажу, как это делается на Bash!
Сначала определим папку с файлами и заготовим шаблон для нового имени:
folder="~/Documents/photos"
prefix="img_"
Теперь запускаем цикл по всем файлам и переименовываем каждый:
cd "$folder"
i=1
for file in *; do
ext="${file##*.}"
mv "$file" "${prefix}${i}.${ext}"
((i++))
done
• cd "$folder" — переходим в нужную папку
• ext="${file##*.}" — получаем расширение файла
• mv — переименовываем, добавляя префикс и номер
• ((i++)) — увеличиваем счётчик
Проверим работу:
Допустим, в папке были:
IMG1234.jpg, vacation.png, photo_01.jpeg
После скрипта:
img_1.jpg, img_2.png, img_3.jpeg
🔥 Теперь ты можешь массово наводить порядок в своих файлах и делать это как настоящий shell-ниндзя!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4👍4
Автоматизация на Bash + cron!
Надо сохранить важные файлы или конфиги? Не обязательно делать это вручную — можно написать простой скрипт и настроить регулярный запуск через cron.
В этом посте:
• Пишем bash-скрипт, создающий .tar.gz архив с меткой даты.
• Настраиваем права и вручную проверяем, что всё работает.
• Добавляем задачу в cron, чтобы запускалась ежедневно.
🔥 — если узнал что-то новое
🤝 — если уже пробовал
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26🤝11👍6❤1
Это приёмы, которые помогут отслеживать ошибки, автоматически завершать скрипт при сбоях, отлавливать сигналы и выводить полезную отладочную информацию.
Они делают поведение скрипта предсказуемым и избавляют от долгих часов ручной отладки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍6🤝5
Извлекаем все email’ы из файла!
Простой, но мощный приём: достаём все email-адреса из текстового файла с помощью одной команды. Без Python и лишних заморочек.
Допустим, у нас есть файл data.txt. Чтобы вытащить все email-адреса из него, воспользуемся grep с регуляркой:
Флаг
Если хочешь сохранить результат в файл:
🔥 Удобно, если нужно быстро собрать базу для анализа, отладки или фильтрации.
🚪 Bash Ready | #практика
Простой, но мощный приём: достаём все email-адреса из текстового файла с помощью одной команды. Без Python и лишних заморочек.
Допустим, у нас есть файл data.txt. Чтобы вытащить все email-адреса из него, воспользуемся grep с регуляркой:
grep -Eo '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}' data.txt
Флаг
-E
включает расширенные регулярки, -o
— выводит только совпадения, а регулярка охватывает большинство валидных email’ов.Если хочешь сохранить результат в файл:
grep -Eo '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}' data.txt > emails.txt
🔥 Удобно, если нужно быстро собрать базу для анализа, отладки или фильтрации.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍6🔥5😁1
Если злоумышленник перебирает URL или сканирует сервер — это видно по логам, особенно по 404 ошибкам.
Вместо ручного мониторинга можно настроить скрипт, который сам найдёт аномалии и отправит письмо.
В этом посте мы:
• Написали скрипт для поиска IP с большим числом 404.
• Настроили отправку e-mail с подозрительными IP.
• Запустили скрипт по расписанию через cron.
🔥 — если постараешься повторить
🤝 — если уже делал подобное
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍7🤝4❤1😁1