Существует удобный и функциональный инструмент для добавления интерактива в shell скрипты под названием Gum. Я посмотрел несколько примеров, в том числе на ютубе, как люди решают те или иные задачи с его помощью. Синтаксис очень простой, особо разбираться не надо. Можно сходу брать и писать скрипт.
Я для примера решил сделать поиск по директории с выводом топ 10 самых больших файлов, из которых можно какие-то выбрать и удалить. Сделал просто в лоб на bash – сформировал список, отправил его в gum и добавил действие для выбранных файлов:
Понял, что всё получилось и решил как-то это усложнить и сделать более удобным. Дай, думаю, попрошу Chatgpt что-то написать. На самом деле не рассчитывал на успех, так как это не особо популярный инструмент. Откуда ему взять навык написания скриптов для gum? Вряд ли их много в интернете можно найти.
Отправил ему адрес репозитория и попросил сделать 2 списка: один с самыми большими файлами, второй – с самыми старыми. Причём вывести их вместе на один экран, в списках отобразить размер файлов и их даты.
Задача не сильно сложная, но немного муторная, так как списки надо правильно сформировать, объединить, пункты выбора насытить дополнительной информацией в виде размера файлов и даты. Потом всё это надо очистить, чтобы передать на удаление только имя файла. Чтобы самому это сделать, надо потратить какое-то время.
Chatgpt меня удивил, когда практически сразу же выдал рабочее решение. Там были ошибки по части bash. Нужно было что-то экранировать, а что-то получше очистить. А вот в части непосредственно Gum он на удивление сразу же всё корректно оформил в соответствии с его возможностями. Я думал, что-то выдумает от себя нерабочее, но нет.
В итоге минут за 15-20 со всеми тестами я получил рабочий вариант скрипта. Реально, был очень удивлён. Не так давно его мучал конфигурациями Nginx, по которым море примеров в сети, но так и не добился того, что хотел. А тут какой-то Gum и сразу всё заработало.
☝️ Какое в итоге резюме. Gum – прикольная штука, которую можно приспособить под какие-то свои задачи. Например, выбор подключений по SSH, работа с ветками GIT, работа со списками файлов и т.д. Тут уж каждому своё. А второй момент – используйте ИИ для своих задач. Где-то он мимо советует, а где-то сразу рабочий вариант даёт. Причём в таких небольших прикладных задачах он нормально работает. На bash пишет уверенно. Есть проблемы, но поправить после него намного проще, чем написать самому, вспомнив все возможности и ключи консольных утилит.
⇨ Итоговый скрипт
Использовать:
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash #AI #script
Я для примера решил сделать поиск по директории с выводом топ 10 самых больших файлов, из которых можно какие-то выбрать и удалить. Сделал просто в лоб на bash – сформировал список, отправил его в gum и добавил действие для выбранных файлов:
#!/bin/bash
DIR="/tmp/backup"
files=$(find "$DIR" -type f -exec du -b {} + 2>/dev/null | sort -nr | head -n 10 | awk '{print $2}')
selected=$(echo "$files" | gum choose --no-limit)
delete=$(echo -e "$selected")
if [[ -z "$delete" ]]; then
echo "Ничего не выбрано."
exit 0
fi
gum confirm "Удалить выбранные файлы?" &&
echo "$delete" | xargs -d '\n' rm -f && echo "Выбранное удалено."
Понял, что всё получилось и решил как-то это усложнить и сделать более удобным. Дай, думаю, попрошу Chatgpt что-то написать. На самом деле не рассчитывал на успех, так как это не особо популярный инструмент. Откуда ему взять навык написания скриптов для gum? Вряд ли их много в интернете можно найти.
Отправил ему адрес репозитория и попросил сделать 2 списка: один с самыми большими файлами, второй – с самыми старыми. Причём вывести их вместе на один экран, в списках отобразить размер файлов и их даты.
Задача не сильно сложная, но немного муторная, так как списки надо правильно сформировать, объединить, пункты выбора насытить дополнительной информацией в виде размера файлов и даты. Потом всё это надо очистить, чтобы передать на удаление только имя файла. Чтобы самому это сделать, надо потратить какое-то время.
Chatgpt меня удивил, когда практически сразу же выдал рабочее решение. Там были ошибки по части bash. Нужно было что-то экранировать, а что-то получше очистить. А вот в части непосредственно Gum он на удивление сразу же всё корректно оформил в соответствии с его возможностями. Я думал, что-то выдумает от себя нерабочее, но нет.
В итоге минут за 15-20 со всеми тестами я получил рабочий вариант скрипта. Реально, был очень удивлён. Не так давно его мучал конфигурациями Nginx, по которым море примеров в сети, но так и не добился того, что хотел. А тут какой-то Gum и сразу всё заработало.
☝️ Какое в итоге резюме. Gum – прикольная штука, которую можно приспособить под какие-то свои задачи. Например, выбор подключений по SSH, работа с ветками GIT, работа со списками файлов и т.д. Тут уж каждому своё. А второй момент – используйте ИИ для своих задач. Где-то он мимо советует, а где-то сразу рабочий вариант даёт. Причём в таких небольших прикладных задачах он нормально работает. На bash пишет уверенно. Есть проблемы, но поправить после него намного проще, чем написать самому, вспомнив все возможности и ключи консольных утилит.
⇨ Итоговый скрипт
Использовать:
# ./cleanup-with-gum.sh /mnt/backup❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash #AI #script
👍112👎5
Коротенькая, но мне кажется полезная заметка на тему одного небольшого сервиса, который поможет тем, кто пишет свои bash скрипты. Речь пойдёт вот про этот сервис:
⇨ https://www.strfti.me
С его помощью можно быстро подобрать формат даты для консольной утилиты
Например, почти всегда для имени файла с бэкапом использую конструкцию
Получим файл с дампом базы данных
Я подобные вещи проверяю сразу в консоли, а наиболее популярные форматы у меня просто в шпаргалке записаны. На сайте можно быстро получить код для любого формата и там же описание всех параметров, чтобы подобрать свой. Быстро и удобно. Быстрее, чем где-то искать или читать man.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash #terminal
⇨ https://www.strfti.me
С его помощью можно быстро подобрать формат даты для консольной утилиты
date. Я её почти всегда использую в скриптах, чтобы зафиксировать дату, например, в имени файла или директории. Даже если на канале пройтись по моим скриптам, в каждом втором, если не первом она будет.Например, почти всегда для имени файла с бэкапом использую конструкцию
date +"%Y-%m-%d_%H-%M-%S", что запишет дату в виде 2025-08-24_17-52-06. Удобно и для быстрой сортировки по имени, и для визуального восприятия. Если кто-то не понял, о чём идёт речь, то вот простой пример готовой команды с использованием date:/usr/bin/pg_dump -U postgres db01 | pigz > /var/lib/pgpro/backup/`date +"%Y-%m-%d_%H-%M"`-db01.sql.gzПолучим файл с дампом базы данных
2025-08-24_17-52-06-db01.sql.gz.Я подобные вещи проверяю сразу в консоли, а наиболее популярные форматы у меня просто в шпаргалке записаны. На сайте можно быстро получить код для любого формата и там же описание всех параметров, чтобы подобрать свой. Быстро и удобно. Быстрее, чем где-то искать или читать man.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash #terminal
1👍148👎2
За время ведения канала накопилось некоторое количество сервисов, которые будут полезны тем, кто всё ещё сам пишет bash скрипты. Остались такие уникумы или все делегировали эту рутину ИИ?
Решил собрать эти сервисы в подборку. Сам уже и не помню, когда что-то новое писал. Всё уже давно написано и сохранено в git. Вроде стремительно развиваются (или это только кажется?) технологии, но вся скриптовая база одна и та же: проверить, перезапустить, скопировать, грепнуть, отправить в мониторинг, записать в лог и т.д.
🔥ShellCheck – проверка синтаксиса shell скриптов
◽️Explainshell – наглядное объяснение сложных и составных консольных команд
◽️Cmdgenerator – помощник по выбору ключей к популярным консольным утилитам
◽️Конструктор команд для linux утилиты find
◽️Проверка различных форматов даты и времени в утилиты date
Отдельно обращаю внимание на сервис ShellCheck. Стараюсь проверять им свои скрипты, если не забываю. Чаще всего даёт рекомендации по делу, которые имеет смысл принять к сведению.
Explainshell пришёл к нам из давних времён, когда ещё не было ИИ. То есть там под капотом не ИИ, а обработанные man страницы используемых утилит. Хотя стоит признать, что ИИ конкретно эти задачи решает неплохо, так как в основе лежит точная справочная информация. Тем не менее,
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash #подборка
Решил собрать эти сервисы в подборку. Сам уже и не помню, когда что-то новое писал. Всё уже давно написано и сохранено в git. Вроде стремительно развиваются (или это только кажется?) технологии, но вся скриптовая база одна и та же: проверить, перезапустить, скопировать, грепнуть, отправить в мониторинг, записать в лог и т.д.
🔥ShellCheck – проверка синтаксиса shell скриптов
◽️Explainshell – наглядное объяснение сложных и составных консольных команд
◽️Cmdgenerator – помощник по выбору ключей к популярным консольным утилитам
◽️Конструктор команд для linux утилиты find
◽️Проверка различных форматов даты и времени в утилиты date
Отдельно обращаю внимание на сервис ShellCheck. Стараюсь проверять им свои скрипты, если не забываю. Чаще всего даёт рекомендации по делу, которые имеет смысл принять к сведению.
Explainshell пришёл к нам из давних времён, когда ещё не было ИИ. То есть там под капотом не ИИ, а обработанные man страницы используемых утилит. Хотя стоит признать, что ИИ конкретно эти задачи решает неплохо, так как в основе лежит точная справочная информация. Тем не менее,
man никто не отменял, особенно, когда нужно строгое описание.❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#bash #подборка
4👍132👎3