Termux – это мощный терминал для Android, который предоставляет полноценную Linux‑окружение. Благодаря поддержке пакетов python и bash вы можете писать и исполнять скрипты прямо на смартфоне. В этой статье мы рассмотрим, как подготовить среду, создать простые Bash и Python скрипты, интегрировать их и настроить автоматический запуск.
Установка Termux и подготовка окружения
Для начала установите Termux из официального репозитория F-Droid или Google Play. После первого запуска обновите пакеты и установите необходимые инструменты:
pkg update && pkg upgrade -y
pkg install python bash git termux-api -y
Команда termux-api позволяет скриптам взаимодействовать с функциями Android (вибрация, камера, геопозиция и т.д.).
Создание и запуск Bash‑скриптов
Базовый Bash‑скрипт можно сохранять в любой директории, например в ~/scripts:
mkdir -p ~/scripts
cat > ~/scripts/hello.sh << 'EOF'
#!/data/data/com.termux/files/usr/bin/bash
# Простой скрипт, выводящий дату и время
echo "Привет из Termux! Текущее время: $(date)"
EOF
chmod +x ~/scripts/hello.sh
Запустить скрипт можно командой ~/scripts/hello.sh или bash ~/scripts/hello.sh.
Пример Bash‑скрипта с использованием termux-api
#!/data/data/com.termux/files/usr/bin/bash
# Скачивание текущей погоды и вывод её через уведомление
CITY="Moscow"
WEATHER=$(curl -s "https://wttr.in/${CITY}?format=3")
termux-notification --title "Погода в ${CITY}" --content "${WEATHER}"
Не забудьте установить права выполнения: chmod +x ~/scripts/weather.sh.
Создание и запуск Python‑скриптов
Python‑скрипты сохраняются с расширением .py. Пример простого скрипта, выводящего список установленных пакетов:
mkdir -p ~/scripts
cat > ~/scripts/list_packages.py << 'EOF'
#!/data/data/com.termux/files/usr/bin/python3
import pkgutil
for module in pkgutil.iter_modules():
print(module.name)
EOF
chmod +x ~/scripts/list_packages.py
Запуск: ~/scripts/list_packages.py или python3 ~/scripts/list_packages.py.
Пример Python‑скрипта с termux-api
#!/data/data/com.termux/files/usr/bin/python3
import subprocess
import json
# Получаем текущие координаты устройства
result = subprocess.run(['termux-location', '-p', 'gps', '-r', '10'], capture_output=True, text=True)
location = json.loads(result.stdout)
lat = location.get('latitude')
lon = location.get('longitude')
# Формируем сообщение и отправляем уведомление
msg = f"Текущие координаты: {lat}, {lon}"
subprocess.run(['termux-notification', '--title', 'Geo‑location', '--content', msg])
EOF
chmod +x ~/scripts/geo_notify.py
Для работы скрипта необходимо предоставить Termux доступ к геолокации: выполнить termux-location -p gps -r 10 один раз и согласиться на запрос.
Интеграция Bash и Python
Иногда удобно комбинировать оба языка. Ниже пример Bash‑скрипта, который вызывает Python‑скрипт для обработки данных, а затем выводит результат:
#!/data/data/com.termux/files/usr/bin/bash
# Генерируем случайный набор чисел и сохраняем в файл
seq 1 10 | shuf > /tmp/numbers.txt
# Вызываем Python‑скрипт для подсчёта суммы
SUM=$(python3 - << 'PY'
import sys
print(sum(int(line) for line in sys.stdin))
PY
< /tmp/numbers.txt)
echo "Сумма случайных чисел: $SUM"
EOF
chmod +x ~/scripts/both.sh
Автоматизация с помощью планировщика (cron)
Termux предоставляет пакет cronie для планирования задач. Установите и включите его:
pkg install cronie -y
sv-enable crond
sv start crond
Создайте файл crontab, например, ~/mycron:
# Каждый день в 07:30 запускать скрипт погоды
30 7 ~/scripts/weather.sh
# Каждый час проверять геолокацию
0 * ~/scripts/geo_notify.py
Загрузите расписание:
crontab ~/mycron
Лучшие практики разработки скриптов в Termux
- Всегда указывайте «shebang», указывающий путь к интерпретатору внутри Termux (например,
#!/data/data/com.termux/files/usr/bin/bash). - Используйте
termux-setup-storageодин раз, чтобы предоставить доступ к внешнему хранилищу. - Храните скрипты в отдельной директории (
~/scripts) и добавляйте её вPATH:echo 'export PATH=$HOME/scripts:$PATH' >> ~/.bashrc source ~/.bashrc - Для длительных задач используйте
termux-wake-lock, чтобы избежать сна устройства. - Логируйте ошибки в отдельный файл, например,
2>> ~/logs/error.log.
Заключение
Termux открывает широкие возможности для разработки на мобильных устройствах: от простых Bash‑утилит до полноценного Python‑приложения, интегрированного с функциями Android через termux-api. Правильная настройка окружения, использование shebang, планировщика задач и соблюдение лучших практик позволяют создавать надёжные и автоматизированные решения.
Если вам нужен профессиональный аудит ваших скриптов, настройка серверных компонентов или разработка кастомных решений под Android, команда RybinskLab готова помочь. Мы предоставляем услуги по консалтингу, разработке и поддержке мобильных и облачных проектов. Свяжитесь с нами, чтобы вывести ваши автоматизационные задачи на новый уровень.