Termux на планшетах: Локальна компіляція C++ та Python

  • Termux перетворює планшет Android на повноцінне середовище Linux без root-доступу, ідеально підходить для вивчення C, C++ та Python.
  • З встановленими clang, gcc/g++ та Python ви можете компілювати код локально та створювати корисні мережеві та системні скрипти.
  • Поєднання Termux та Python дозволяє реалізовувати реальні проекти з автоматизації та полегшеної кібербезпеки в мобільних середовищах.
  • Добре організоване середовище в Termux спрощує подальше масштабування на сервери, хмарні середовища та професійні робочі процеси.

Таблетки Термукс

Якщо у вас є простий планшет або мобільний телефон на Android і ви хочете навчитися програмувати, Вам не потрібен комп'ютер, щоб розпочати.За допомогою Termux ви можете налаштувати функціональне середовище Linux на своєму пристрої та працювати з C, C++, Python та багатьма мережевими та системними інструментами. Спочатку це може здатися трохи дивакуватим, але як тільки ви спробуєте, то побачите, що його цілком можна використовувати для вивчення, експериментів і навіть запуску реальних сервісів.

У цій статті ми крок за кроком розглянемо, як отримати максимальну віддачу від Termux на планшетах Android. Компілювати код C та C++ локально, працювати з Python та поєднувати його з утилітами LinuxВи побачите, як встановити Clang, як підготувати свій перший "Hello World" на C та C++, як встановити Python та використовувати його в практичних проектах, а також як удосконалити середовище за допомогою невеликих налаштувань, завжди пам'ятаючи про реалістичне використання, яке також стосується кібербезпеки, автоматизації та віддаленої роботи.

Що таке Termux і чому він вартий використання на планшеті Android?

Великою перевагою є те, що Termux працює майже як будь-який дистрибутив Linux, водночас дотримуючись обмежень Android: Ви використовуєте частину файлової системи разом із самою операційною системою.У /bin, /usr, /home… немає класичного дерева FHS, і середовище розроблено для одного користувача. Незважаючи на це, у вас є повністю придатний для використання каталог $HOME, де ви можете встановлювати пакети, компілювати код, запускати скрипти та зберігати свої проекти.

Щоб навчитися програмувати з нуля, Termux усуває багато типових бар'єрів: Вам не потрібен потужний ноутбук або проблеми з віртуальними машинами.Просто завантажте програму, оновіть пакети, встановіть кілька ключових інструментів, і ви готові писати код на C, C++, Python, HTML, CSS або будь-що інше, що ви хочете спробувати на своєму планшеті.

Крім того, робочий процес Termux ідеально підходить для таких областей, як базова кібербезпека, автоматизація процесів та системне адмініструванняде постійно використовуються скрипти, мережеві інструменти та консольні команди. Ваш планшет перетворюється на невелику портативну лабораторію, яку можна носити в рюкзаку або кишені.

Встановлення та налаштування Termux на вашому планшеті Android

Перший крок – отримати надійну та актуальну версію програми. Зазвичай рекомендується завантажити Termux з F-Droid або з його офіційного репозиторію на GitHub.оскільки версії Google Play часто застаріли або не підтримуються.

Після встановлення програми на планшет відкрийте її та дайте їй підготувати початкове середовище. Ви побачите командний рядок, подібний до будь-якого терміналу Linux. Перш ніж робити щось серйозне, бажано Оновіть основні пакети системи, щоб уникнути конфліктів версій.У Termux це робиться так:

pkg update && pkg upgrade

Ця команда оновлює індекси та все інстальоване. Рекомендується періодично повторювати це, особливо перед додаванням компіляторів, інтерпретаторів або інструментів розробки.

Після цього варто встановити мінімум консольних утиліт для комфортної роботи: текстовий редактор, інструменти стиснення, мережеві утиліти та системні моніториНаприклад, щоб встановити nano:

pkg install nano

Це надає вам простий редактор із видимими ярликами внизу, що ідеально підходить для навчання. Якщо ви досвідченіший користувач, ви можете обрати Vim або Neovim, які також доступні у вигляді пакетних файлів.

На цьому етапі у вас вже є функціональний міні-Linux на планшеті з Готове середовище для встановлення компіляторів, таких як clang, інтерпретаторів, таких як Python, та інших корисних пакетівВсе, що ви дізнаєтеся про структуру каталогів, дозволи та команди, стане в пригоді пізніше на реальних серверах.

Навчіться програмувати
Пов'язана стаття:
Необхідні програми для Android для навчання програмуванню

Особливості Termux у порівнянні з класичним Linux

Хоча Termux поводиться як середовище Linux, є кілька важливих деталей, які слід пам'ятати. Перша полягає в тому, що Termux — це однокористувацька система, і команди sudo не існує.Ви працюєте безпосередньо з привілеями, пов'язаними з користувачем програми, який має повний контроль над $HOME, але обмежені дозволи поза цим простором.

За замовчуванням, Основні шляхи відрізняються від шляхів настільної системи Linux.:

  • $ПРЕФІКС = /data/data/com.termux/files/usr
  • $ HOME = /data/data/com.termux/files/home

Якщо з міркувань сумісності ви хочете, щоб ваш $HOME виглядав як /home, ви можете встановити termux-proot:

pkg install termux-proot

а потім у кожному сеансі виконайте:

termux-chroot

Це імітує середовище, де $HOME представлено як /home, хоча фізично воно розташоване у внутрішньому шляху Termux.Це корисно, коли інструменти або інсталятори очікують стандартних шляхів.

Ще одним ключовим моментом є доступ до спільної пам’яті пристрою. Щоб легко отримати доступ до SD-карти або внутрішньої пам’яті, виконайте команду:

termux-setup-storage

Ця команда додає каталог $HOME/storage, який посилається на різні місця розташування Android. Зверніть увагу, що У цих шляхах ви не зможете створювати виконувані файли безпосередньо за допомогою chmod та запускати їх за допомогою ./script.Замість цього вам доведеться явно викликати інтерпретатор, наприклад:

python storage/shared/scripts/mi_script.py

Зрештою, ваше ім'я користувача в Termux є ідентифікатором програми в Android. Ви можете перевірити це за допомогою whoami та встановити пароль за допомогою passwd.Це важливо, якщо ви хочете підключитися до планшета через SSH з іншого комп'ютера.

Встановлення основних інструментів та робочого середовища

Таблетки Термукс

Перш ніж ми зосередимося на C, C++ та Python, варто мати під рукою кілька програм, які полегшать ваше життя. Termux використовує pkg (і apt під ним) як менеджер пакетів.Отже, встановлення дуже схоже на встановлення дистрибутивів, подібних до Debian.

Деякі рекомендовані пакети:

  • Python: pkg install python мати Python 3 та мати можливість встановлювати модулі за допомогою pip.
  • брязкіт: pkg install clang компілювати C та C++, а також дозволити pip компілювати певні нативні розширення.
  • OpenSSH: pkg install openssh щоб активувати SSH-сервер на планшеті та зручно підключатися з ПК.
  • можливістю захоплення: pkg install screen для підтримки фонових процесів та відновлення сеансів.
  • прокти: pkg install procps керувати процесами за допомогою pkill та інших класичних інструментів.
  • htop: pkg install htop як інтерактивний монітор процесора та пам'яті, хоча він може не працювати ідеально в деяких версіях Android.
  • мережеві інструменти: pkg install net-tools для роботи з ifconfig та іншими класичними мережевими утилітами.
  • Wget: pkg install wget завантажувати контент з URL-адрес безпосередньо у ваше середовище.
  • дерево: pkg install tree щоб перерахувати структуру каталогів ієрархічно.

Після встановлення цих компонентів ваш планшет перетворюється з простого мультимедійного пристрою на невелике середовище розробки, здатне запускати скрипти, компілювати код, обслуговувати контент та приймати віддалені з'єднання.

Встановлення clang та компіляція C та C++ локально

Якщо ви хочете програмувати на C та C++ на своєму планшеті, вам потрібен компілятор, який розуміє обидві мови. У Termux ключовим пакетом є clang, який також створює псевдоніми, сумісні з gcc та g++тож ви можете використовувати традиційні команди, не змінюючи своїх звичок.

Щоб встановити його, відкрийте сеанс Termux та виконайте команду:

pkg install clang

Інструмент запитає підтвердження; просто дайте відповідь А за запитом необхідні компоненти будуть завантажені та встановлені.З цього моменту у вас будуть доступні виконувані файли gcc та g++ для компіляції на C та C++ відповідно.

Чого ви досягнете цим, це повне середовище збірки в AndroidВи пишете свій вихідний файл (.co.cpp), компілюєте його з терміналу та запускаєте згенерований бінарний файл у самому Termux. Робочий процес практично такий самий, як і в настільній системі Linux, тільки працює на планшеті.

Якщо під час компіляції виникають помилки, пов'язані з відсутніми бібліотеками або заголовками, їх зазвичай виправляють. встановлення додаткових пакетів, пов'язаних із цією залежністю (наприклад, певні бібліотеки розробки з репозиторію Termux). Уважного прочитання повідомлення про помилку зазвичай достатньо, щоб знайти відсутній пакет.

Ваша перша програма на C з вашого планшета

Після встановлення Clang саме час його протестувати. Гарною відправною точкою є створення Невелика програма типу "Hello world" на C для перевірки правильності налаштування компілятора та середовища.Для цього вам знадобиться редактор; якщо ви оберете nano, спочатку переконайтеся, що він у вас встановлений:

pkg install nano

Далі, в каталозі, де ви хочете працювати (наприклад, ваш $HOME), створіть файл вихідного коду, виконавши команду:

nano hola.c

Відкриється порожній буфер, де ви зможете ввести свою програму на C за допомогою функції main та виклик функції printf для відображення тексту на екраніНемає потреби дотримуватися класичного прикладу; будь-яке повідомлення можна використовувати для перевірки того, що все працює.

Коли ви закінчите писати код, збережіть файл із комбінацією CTRL + O, підтвердіть ім'я за допомогою Enter та вийдіть за допомогою CTRL + XВи повернетеся до запиту Termux з файлом hola.c, збереженим у поточному каталозі.

Тепер час скомпілювати програму за допомогою gcc (який фактично вказує на встановлений компілятор clang):

gcc -o hola hola.c

Ця команда вказує на те, що слід створити виконуваний файл. Привіт, починаючи з вихідного коду hola.cЯкщо помилок немає, ви повернетеся до командного рядка без будь-яких незвичайних повідомлень. Залишається лише запустити бінарний файл:

./hola

І ви повинні побачити текст, який ви запрограмували в терміналі. Це демонструє, що ваш планшет здатний Писати, компілювати та запускати код C повністю локально за допомогою Termux.

Компіляція та виконання коду C++ за допомогою g++

Для C++ процес практично ідентичний, за винятком того, що ви будете використовувати виконуваний файл g++, що є частиною пакета clangC++ значно розширює можливості C, додаючи об'єктно-орієнтоване програмування, шаблони, багатшу стандартну бібліотеку та сучасну екосистему.

У деяких випадках g++ може компілювати прості файли на C без особливих проблем. Наприклад, якщо ви виконайте:

g++ -o hola_cpp hola.c

компілятор, ймовірно, видасть Попередження щодо компіляції коду C за допомогою компілятора C++Але він все одно згенерує виконуваний файл hola_cpp, який можна запустити за допомогою:

./hola_cpp

Хоча це працює, рекомендований підхід для реальних проектів такий: Використовуйте файли .cpp та скористайтеся перевагами специфічних можливостей C++: класи, std::vector, std::string, алгоритми стандартної бібліотеки тощо.

Типовий робочий процес буде таким:

  1. Створіть вихідний файл, наприклад program.cpp, відредагувавши його за допомогою nano, Vim або вашого улюбленого редактора.
  2. Збережіть зміни та поверніться до терміналу.
  3. Компілюйте за допомогою такої команди g++ -o programa programa.cppдодавання прапорців та бібліотек за потреби.
  4. Запустіть отриманий бінарний файл за допомогою ./programa щоб побачити вивід у консолі.

За цією схемою ви можете піти перехід від простих вправ до невеликих утиліт, які обробляють файли, аналізують журнали, автоматизують внутрішні завдання Termux або виконують операції з мережевими данимиВсе це на вашому планшеті Android.

Найшвидше зростаючі мови програмування 2023 року
Пов'язана стаття:
Найшвидше зростаючі мови програмування: повний посібник та сучасні тенденції

Встановлення та використання Python у Termux для реальних проектів

Хоча C та C++ надають низькорівневий контроль, Python пропонує ідеальне середовище для швидке прототипування, автоматизація завдань та підключення сервісівTermux особливо вражає в поєднанні з Python, оскільки ви можете поєднувати команди оболонки зі скриптами та використовувати переваги мережевих та системних інструментів в одному місці.

Щоб встановити Python на Termux, просто виконайте:

pkg install python

Буде завантажено останню версію Python 3 разом з необхідними компонентами. Після встановлення, Ви можете запустити інтерактивний інтерпретатор, ввівши python або python3 у терміналі, залежно від псевдоніма, налаштованого в пакеті.

Звідти ви можете створювати скрипти у файлах .py та запускати їх за допомогою:

python mi_script.py

та використовуйте pip для встановлення додаткових залежностей. Зверніть увагу, що деякі бібліотеки Python потребують clang та інших пакетів розробки для компіляції власних розширень.Тож встановлення clang позбавить вас багатьох головних болів.

Настійно рекомендований спосіб навчання – це використовувати проектний підхід: Замість того, щоб просто виконувати окремі вправи, ви ставите перед собою конкретні міні-цілі. Як автоматизувати перевірку мережі, проаналізувати журнал або запитувати API. Перевага використання Termux на планшеті полягає в тому, що ви можете спробувати все це в будь-яку вільну хвилину.

Корисні ідеї для проектів Python у Termux

Щоб запобігти зосередженню Python виключно на циклах та умовних операторах, чудово розробляти проекти, що нагадують реальні ситуації. У такому середовищі, як Termux, Особливо добре підходять галузі базової кібербезпеки, автоматизації та аналізу інформації..

Деякі цікаві ідеї для практики можуть бути:

  • Скрипт перевірки мережіПрограма, яка перевіряє кілька адрес за допомогою функції «ping» або відкриті порти та записує, чи доступні вони. Це дозволяє вам практикувати модулі, такі як підпроцеси чи сокети, керувати виводом команд та обробляти помилки без збоїв скрипта.
  • Проста перевірка паролівСкрипт, який отримує пароль, перевіряє його довжину, регістр, цифри та символи, а також повертає результат. Ви можете додавати регулярні вирази та списки поширених слів, що зберігаються у файлах Termux.
  • Аналізатор файлів журналівІнструмент, який зчитує журнал (наприклад, з сервісу, який у вас є на Termux), фільтрує рядки з помилками, сповіщеннями або певними IP-адресами та генерує короткі зведення. Це допомагає виявляти інциденти та аналізувати події.
  • Легкий веб-скрейперВикористовуючи запити та бібліотеку парсингу HTML, ви можете відвідувати сторінки, витягувати дані та зберігати їх у файлах для подальшого аналізу. Це дуже корисно для відстеження змін на веб-сайті, збору публічної інформації або тренування зору для виявлення потенційних ризиків соціальної інженерії.
  • Трекер погоди в режимі реального часу або криптовалютаЦей скрипт періодично запитує публічний API та відображає поточні значення в терміналі або зберігає їх для порівняння. Це дозволяє практикувати HTTP-запити, обробку JSON, автентифікацію токенів та управління мережевими помилками.

У всіх цих проектах потужним є те, як Ви поєднуєте Python з інструментами Linux, які вже надає Termux.Ви можете планувати повторювані завдання, використовувати канали, перенаправляти вивід у файли тощо. Ваш планшет стає невеликим, ідеальним середовищем для тестування, щоб втілити ваші ідеї в життя.

Вивчайте Python та кібербезпеку одночасно зі свого мобільного пристрою

Багато попередніх проектів сприяють впровадженню реальних концепцій та передового досвіду кібербезпеки. Ідея полягає не в тому, щоб перетворити планшет на неконтрольовану іграшку для хакерства, а радше в тому, щоб зрозуміти, як ваші скрипти взаємодіють з мережами, системами та конфіденційними даними.

Наприклад, коли ви створюєте перевірку паролів, ви можете скористатися можливістю, щоб поговорити про політики безпеки, критерії надійності, ротація ключів та такі фреймворки, як NIST CSF або директива NIS2які встановлюють конкретні зобов'язання в певних секторах. Навіть якщо ви лише працюєте на аматорському рівні, розміщення ваших сценаріїв у професійному контексті допомагає вам мислити масштабно.

У випадку аналізаторів журналів ваші інструменти можуть поводитися так системи виявлення невеликих інцидентівпошук незвичайних закономірностей, невдалих спроб входу або підозрілої поведінки. Це пов'язано з тим, як працюють команди безпеки в компаніях, де постійний моніторинг та швидке реагування на інциденти є ключовими.

Граючись зі скреперами та API, ви також стикаєтеся з такими темами, як відповідальне використання інформації, дотримання умов надання послуг та захист персональних данихЦе ідеальний час для впровадження основних етичних звичок: не перевантажуйте сервіси запитами, не збирайте конфіденційні дані без дозволу, належним чином захищайте токени та облікові дані, які ви використовуєте у своїх скриптах тощо.

Якщо вас також цікавить автоматизація процесів професійного рівня, Termux та Python можуть бути... Шлюз до складніших потоків, які потім можна перенести до хмарних середовищ, таких як AWS або Azure, або до рішень бізнес-аналітики, таких як Power BIТе, чого ви навчитеся, розробляючи скрипти на планшеті, згодом можна масштабувати для бізнес-процесів, змінюючи інфраструктуру, але зберігаючи логіку та найкращі практики.

Базове налаштування та поради щодо покращення середовища розробки

Termux працює досить добре одразу після встановлення, але з деякими налаштуваннями можна досягти середовища, де програмуйте годинами, не маючи проблем з інтерфейсомПерший крок – вибрати редактор, з яким вам зручно працювати: nano для початку або Vim/Neovim, якщо ви хочете щось потужніше та розширюваніше.

Також наполегливо рекомендується визначити чітка структура каталогів для ваших проектів, Наприклад:

  • $HOME/c_proyectos
  • $HOME/cpp_projects
  • $HOME/проекти_python

А в кожній з них – підпапки для кожного проєкту. Це допоможе вам уникнути змішування шрифтів, виконуваних файлів і даних, а також звикне до організованої роботи з першого дня.

Якщо ваші скрипти стосуватимуться мережевих тем, API або зовнішніх сервісів, не завадить Використовуйте VPN на планшеті під час роботи з Termuxособливо якщо ви підключаєтеся до загальнодоступних або ненадійних мереж Wi-Fi. І поки ви цим займаєтесь, дізнайтеся, як контролювати використання даних, блокування після сну та автоматичне ввімкнення/вимкнення або режими енергозбереження можуть бути плюсом.

Щодо Python, звикніть до Записуйте журнали та перехоплюйте винятки, замість того, щоб дозволяти програмі зависати за першої ж нагоди.Обробка мережевих помилок, неправильних форматів даних або проблем із дозволами змусить вас розробляти надійніший код, і це безцінно, якщо ви пізніше захочете втілити ці ідеї у виробничих системах.

Пам’ятайте, що Termux, зрештою, мініатюрне реальне середовище LinuxВсе, що ви дізнаєтеся тут про команди, канали, перенаправлення, дозволи та структуру каталогів, майже без змін переноситься на сервери, VPS або віртуальні машини. Ваш планшет стає ідеальним полігоном для закріплення цих знань.

Інтеграція Termux та Python з IDE в Android

Досить поширене питання: чи можливо це Використання Termux Python з графічного IDE на AndroidЦе схоже на те, що ви робите з Visual Studio Code або PyCharm на настільному комп'ютері. Ідея звучить чудово, але на практиці екосистема Android робить цю інтеграцію досить складною.

Існують такі програми, як Pydroid та подібні, які пропонують власний інтерпретатор та середовище розробки з графічним інтерфейсом. Проблема полягає в тому, що Кожна з цих програм керує власним ізольованим середовищем і не надає спільного доступу до пакетів чи конфігурації Termux.Іншими словами, хоча ви можете програмувати на них на Python, вони не використовуватимуть той самий Python або ті самі модулі, що й у Termux.

Сьогодні варіанти мати Універсальні IDE, що використовують те саме середовище Termux Python, дуже обмежені.Ви можете наблизитися до цього досвіду, використовуючи потужні редактори в Termux (наприклад, Vim/Neovim з плагінами) або редагуючи файли в зовнішньому редакторі, який має доступ до спільних папок, продовжуючи виконувати код з терміналу.

Інший варіант — підключити планшет до комп’ютера та працювати з настільним IDE, яке взаємодіє з Termux через SSH або SFTP. У такому разі, Планшет виступає в ролі сервера, а ПК — клієнта розробки.Це дуже зручний робочий процес, але він відхиляється від ідеї використання лише мобільного пристрою.

Для суто мобільного використання найреалістичнішим варіантом є те, що Termux базується на терміналі, а його потужність полягає в поєднанні хорошого редактора, корисних псевдонімів, комбінацій клавіш та ретельного налаштування.Цього більш ніж достатньо, щоб ви могли вивчати та розробляти серйозні проекти на Python на своєму планшеті.

Зрештою, маючи скромний планшет на Android, Termux та правильні інструменти, ви можете налаштувати себе самостійно. Більш ніж гідне робоче середовище для вивчення C, C++ та Python, практики в Linux, автоматизації завдань, роботи з API, журналами та мережами, а також початку ознайомлення з концепціями кібербезпеки та хмарних сервісів..

термукс
Пов'язана стаття:
Termux на Android: Найповніший посібник із розширених команд та хитрощів для опанування Linux на вашому мобільному пристрої

За певної наполегливості ця портативна лабораторія стане першим кроком до більш амбітних проектів, які потім можна розгорнути на серверах, у бізнес-додатках або рішеннях бізнес-аналітики, зберігаючи той самий настрій: експериментуйте, автоматизуйте та створюйте корисні інструменти з простого командного рядка. Поділіться інформацією, щоб більше користувачів могли дізнатися про тему.