Termux na tabletima: Lokalno kompajliranje C++ i Pythona

  • Termux pretvara Android tablet u kompletno Linux okruženje bez root pristupa, idealno za učenje C-a, C++-a i Pythona.
  • Sa instaliranim clang-om, gcc/g++ i Pythonom, možete lokalno kompajlirati kod i kreirati korisne mrežne i sistemske skripte.
  • Kombinacija Termuxa i Pythona omogućava projekte iz stvarnog svijeta za automatizaciju i laganu kibernetičku sigurnost u mobilnim okruženjima.
  • Dobro organizirano okruženje u Termuxu olakšava kasnije skaliranje na servere, cloud okruženja i profesionalne radne procese.

Termux tablete

Ako imate jednostavan Android tablet ili mobilni telefon i želite naučiti programirati, Ne treba vam računar da biste započeli.Pomoću Termuxa možete postaviti funkcionalno Linux okruženje na svom uređaju i raditi s C, C++, Pythonom i dobrim brojem mrežnih i sistemskih alata. U početku možda zvuči malo čudno, ali kada ga isprobate, vidjet ćete da je savršeno upotrebljiv za proučavanje, eksperimentiranje, pa čak i pokretanje stvarnih servisa.

U ovom članku ćemo korak po korak vidjeti kako izvući maksimum iz Termuxa na Android tabletima. Kompajlirajte C i C++ kod lokalno, radite s Pythonom i kombinirajte ga s Linux uslužnim programimaVidjet ćete kako instalirati Clang, kako pripremiti svoj prvi "Hello World" u C i C++, kako instalirati Python i koristiti ga u praktičnim projektima, te kako poboljšati okruženje malim prilagodbama, uvijek imajući na umu realističnu upotrebu koja se također dotiče kibernetičke sigurnosti, automatizacije i rada na daljinu.

Šta je Termux i zašto se isplati koristiti ga na Android tabletu?

Velika prednost je što Termux radi gotovo kao i svaka Linux distribucija, uz poštovanje Androidovih ograničenja: Dio datotečnog sistema dijelite sa samim operativnim sistemom.Ne postoji klasično FHS stablo u /bin, /usr, /home… i okruženje je dizajnirano za jednog korisnika. Uprkos tome, imate potpuno upotrebljiv direktorij $HOME gdje možete instalirati pakete, kompajlirati kod, pokretati skripte i spremati svoje projekte.

Za učenje programiranja od nule, Termux uklanja mnoge tipične prepreke: Ne treba vam snažan laptop niti da se mučite s virtualnim mašinama.Jednostavno preuzmite aplikaciju, ažurirajte pakete, instalirajte nekoliko ključnih alata i spremni ste za pisanje C, C++, Python, HTML, CSS koda ili bilo čega drugog što želite isprobati na svom tabletu.

Nadalje, Termux radni proces se savršeno uklapa u područja kao što su osnovna kibernetička sigurnost, automatizacija procesa i administracija sistemagdje se stalno koriste skripte, mrežni alati i konzolne naredbe. Vaš tablet postaje mala prenosiva laboratorija koju možete nositi u ruksaku ili džepu.

Instalirajte i konfigurirajte Termux na svom Android tabletu

Prvi korak je nabaviti pouzdanu i ažuriranu verziju aplikacije. Uobičajena preporuka je preuzimanje Termuxa sa F-Droida ili sa njegovog službenog repozitorija na GitHubu.jer su verzije Google Playa često zastarjele ili se ne održavaju.

Nakon što instalirate aplikaciju na tablet, otvorite je i pustite da pripremi početno okruženje. Vidjet ćete shell prompt sličan onome na bilo kojem Linux terminalu. Prije nego što učinite bilo šta ozbiljno, preporučljivo je Ažurirajte osnovne sistemske pakete kako biste izbjegli konflikte verzijaU Termuxu se to radi ovako:

pkg update && pkg upgrade

Ova naredba osvježava indekse i ažurira sve što ste instalirali. Dobra je ideja da ovo periodično ponavljate, a posebno prije dodavanja kompajlera, interpretera ili razvojnih alata.

Nakon toga, vrijedi instalirati minimalno nekoliko konzolnih uslužnih programa za ugodan rad: uređivač teksta, alati za kompresiju, mrežni uslužni programi i sistemski monitoriNa primjer, za instalaciju nano-a:

pkg install nano

Ovo vam daje jednostavan editor s vidljivim prečicama na dnu, savršen za učenje. Ako ste napredniji, možete se odlučiti za Vim ili Neovim, koji su također dostupni kao paketne datoteke.

U ovom trenutku već imate funkcionalan mini Linux na svom tabletu, sa Spremno okruženje za instalaciju kompajlera poput clanga, interpretera poput Pythona i drugih korisnih paketaSve što naučite o strukturi direktorija, dozvolama i naredbama bit će korisno kasnije na pravim serverima.

Naučite programirati
Vezani članak:
Osnovne Android aplikacije za učenje programiranja

Specifičnosti Termuxa u poređenju sa klasičnim Linuxom

Iako se Termux ponaša kao Linux okruženje, postoji nekoliko važnih detalja koje treba imati na umu. Prvo je da je Termux sistem za jednog korisnika i da naredba sudo ne postoji.Radite direktno s privilegijama povezanim s korisnikom aplikacije, koji ima punu kontrolu nad $HOME, ali ograničene dozvole izvan tog prostora.

Default, Glavne putanje se razlikuju od onih na desktop Linux sistemu.:

  • $PREFIX = /data/data/com.termux/files/usr
  • $ HOME = /data/data/com.termux/files/home

Ako iz razloga kompatibilnosti želite da vaš $HOME izgleda kao /home, možete instalirati termux-proot:

pkg install termux-proot

a zatim u svakoj sesiji pokrenite:

termux-chroot

Ovo emulira okruženje u kojem $HOME se predstavlja kao /home, iako se fizički nalazi u internoj putanji Termuxa.Ovo je korisno kada alati ili instalateri očekuju standardne putanje.

Još jedna ključna stvar je pristup dijeljenoj memoriji uređaja. Da biste lako pristupili SD kartici ili internoj memoriji, pokrenite:

termux-setup-storage

Ova naredba dodaje direktorij $HOME/storage koji povezuje s različitim lokacijama na Androidu. Imajte na umu da U ovim putanjama nećete moći kreirati direktne izvršne datoteke pomoću chmod-a i pokrenuti ih pomoću ./script.Umjesto toga, morat ćete eksplicitno pozvati interpreter, na primjer:

python storage/shared/scripts/mi_script.py

Konačno, vaše korisničko ime u Termuxu je identifikator aplikacije u Androidu. Možete to provjeriti sa whoamijem i postaviti lozinku sa passwd.Ovo je neophodno ako želite da se povežete sa tabletom putem SSH-a sa drugog računara.

Instalacija osnovnih alata i radnog okruženja

Termux tablete

Prije nego što se usredotočimo na C, C++ i Python, dobra je ideja imati pri ruci neke programe koji će vam olakšati život. Termux koristi pkg (i apt ispod njega) kao upravitelja paketaDakle, instalacija je vrlo slična instalaciji distribucije slične Debianu.

Neki preporučeni paketi su:

  • piton: pkg install python imati Python 3 i moći instalirati module pomoću pip-a.
  • clang: pkg install clang da kompajlira C i C++ i da omogući pip-u da kompajlira određena izvorna proširenja.
  • openssh: pkg install openssh da aktivirate SSH server na tabletu i praktično se povežete s računara.
  • ekran: pkg install screen za održavanje pozadinskih procesa i oporavak sesija.
  • propps: pkg install procps za upravljanje procesima pomoću pkill-a i drugih klasičnih alata.
  • htop: pkg install htop kao interaktivni monitor CPU-a i memorije, iako možda neće savršeno raditi u nekim verzijama Androida.
  • net-tools: pkg install net-tools za rad sa ifconfig-om i drugim klasičnim mrežnim uslužnim programima.
  • wget: pkg install wget za preuzimanje sadržaja sa URL-ova direktno u vaše okruženje.
  • drvo: pkg install tree da se struktura direktorija navede hijerarhijski.

Nakon što su ovi dijelovi instalirani, vaš tablet se pretvara iz jednostavnog multimedijalnog uređaja u malo razvojno okruženje sposobno za izvršavanje skripti, kompajliranje koda, posluživanje sadržaja i prihvaćanje udaljenih veza.

Instalirajte clang i kompajlirajte C i C++ lokalno

Ako želite programirati u C i C++ na svom tabletu, potreban vam je kompajler koji razumije oba jezika. U Termuxu, ključni paket je clang, koji također kreira aliase kompatibilne sa gcc i g++tako da možete koristiti tradicionalne komande bez promjene svojih navika.

Da biste ga instalirali, otvorite Termux sesiju i pokrenite:

pkg install clang

Alat će tražiti potvrdu; jednostavno odgovorite sa A kada se to zatraži, potrebne komponente će biti preuzete i instalirane.Od tog trenutka nadalje, imat ćete izvršne datoteke gcc i g++ dostupne za kompajliranje u C i C++, respektivno.

Ono što postižete ovim je kompletno okruženje za izgradnju unutar AndroidaNapišete izvorni fajl (.co.cpp), kompajlirate ga iz terminala i pokrenete generirani binarni fajl unutar samog Termuxa. Tok rada je praktično isti kao i na desktop Linux sistemu, samo što se pokreće na vašem tabletu.

Ako se tokom kompajliranja pojave greške povezane s nedostajućim bibliotekama ili zaglavljima, one se obično riješe. instaliranje dodatnih paketa povezanih s tom ovisnošću (na primjer, specifične razvojne biblioteke iz Termux repozitorija). Pažljivo čitanje poruke o grešci obično je dovoljno da se pronađe nedostajući paket.

Vaš prvi C program s vašeg tableta

Kada je Clang instaliran, vrijeme je da ga testirate. Dobra početna tačka je kreiranje Mali program tipa "Zdravo svijete" u C-u za provjeru da li su kompajler i okruženje ispravno konfigurirani.Za ovo vam je potreban editor; ako odaberete nano, prvo se uvjerite da ga imate instaliran:

pkg install nano

Zatim, u direktoriju u kojem želite raditi (na primjer, vaš $HOME), kreirajte izvornu datoteku pokretanjem:

nano hola.c

Otvorit će se prazan bafer u koji možete upisati svoj C program s funkcijom main i poziv funkcije printf za prikaz teksta na ekranuNema potrebe držati se klasičnog primjera; bilo koja poruka može se koristiti za provjeru da li sve funkcioniše.

Kada završite s pisanjem koda, sačuvajte datoteku s kombinacijom CTRL + O, potvrdite ime sa Enter i izađite sa CTRL + XVratit ćete se na Termux prompt sa hola.c datotekom sačuvanom u trenutnom direktoriju.

Sada je vrijeme da kompajliramo program koristeći gcc (koji zapravo ukazuje na instalirani clang kompajler):

gcc -o hola hola.c

Ova naredba označava da treba generirati izvršnu datoteku. Zdravo, počevši od izvornog koda hola.cAko nema grešaka, vratit ćete se na prompt bez ikakvih neobičnih poruka. Sve što preostaje je pokrenuti binarnu datoteku:

./hola

I trebali biste vidjeti tekst koji ste programirali u terminalu. Ovo pokazuje da vaš tablet može Pišite, kompajlirajte i izvršavajte C kod potpuno lokalno koristeći Termux.

Kompajliranje i pokretanje C++ koda pomoću g++-a

Za C++ proces je praktično identičan, osim što ćete koristiti izvršna datoteka g++ koja je dio clang paketaC++ uveliko proširuje mogućnosti C-a dodavanjem objektno orijentisanog programiranja, predložaka, bogatije standardne biblioteke i modernog ekosistema.

U nekim slučajevima, g++ može kompajlirati obične C datoteke bez previše problema. Na primjer, ako pokrenete:

g++ -o hola_cpp hola.c

Kompajler će vjerovatno izdati Upozorenje za kompajliranje C koda pomoću C++ kompajleraAli će i dalje generirati izvršnu datoteku hola_cpp koju možete pokrenuti pomoću:

./hola_cpp

Iako ovo funkcioniše, preporučeni pristup za projekte iz stvarnog svijeta je Koristite .cpp datoteke i iskoristite specifične funkcije C++-a: klase, std::vector, std::string, algoritmi standardne biblioteke, itd.

Tipičan tok rada bi bio:

  1. Kreirajte izvorni fajl, na primjer program.cpp, uređivanjem pomoću nano, Vim ili vašeg preferiranog editora.
  2. Sačuvajte promjene i vratite se na terminal.
  3. Kompajliraj sa ovakvom komandom g++ -o programa programa.cppdodavanje zastavica i biblioteka po potrebi.
  4. Pokrenite rezultirajuću binarnu datoteku sa ./programa da biste vidjeli izlaz na konzoli.

Sa ovom shemom možete ići prelazak sa jednostavnih vježbi na male uslužne programe koji obrađuju datoteke, analiziraju logove, automatiziraju interne zadatke Termuxa ili obavljaju operacije na mrežnim podacimaSve ovo na vašem Android tabletu.

Najbrže rastući programski jezici 2023.
Vezani članak:
Najbrže rastući programski jezici: Kompletan vodič i trenutni trendovi

Instalirajte i koristite Python u Termuxu za projekte iz stvarnog svijeta

Dok C i C++ daju kontrolu niskog nivoa, Python nudi savršeno okruženje za brza izrada prototipa, automatizacija zadataka i povezivanje uslugaTermux se posebno ističe u kombinaciji s Pythonom, jer možete kombinirati shell naredbe sa skriptama i iskoristiti mrežne i sistemske alate sve na jednom mjestu.

Da biste instalirali Python na Termux, jednostavno pokrenite:

pkg install python

Novija verzija Pythona 3 će biti preuzeta zajedno sa osnovnim komponentama. Nakon instalacije, Interaktivni interpreter možete pokrenuti upisivanjem python ili python3 u terminalu., ovisno o aliasu koji je paket konfigurirao.

Odatle možete kreirati skripte u .py datotekama i pokretati ih sa:

python mi_script.py

i koristite pip za instaliranje dodatnih zavisnosti. Imajte na umu da neke Python biblioteke zahtijevaju clang i druge razvojne pakete za kompajliranje izvornih ekstenzija.Dakle, instaliranje Clang-a vam štedi mnogo glavobolja.

Toplo preporučen način učenja je korištenje pristupa zasnovanog na projektima: Umjesto da radite samo izolovane vježbe, postavljate sebi specifične mini-ciljeve. Kako automatizirati provjeru mreže, analizirati logove ili upitati API. Prednost korištenja Termuxa na tabletu je što sve to možete isprobati u bilo kojem slobodnom trenutku.

Korisne ideje za Python projekte u Termuxu

Da biste spriječili da se Python fokusira isključivo na petlje i uvjetne izraze, odlično je dizajnirati projekte koji podsjećaju na situacije iz stvarnog svijeta. U okruženju poput Termuxa, Područja osnovne kibernetičke sigurnosti, automatizacije i analize informacija posebno dobro odgovaraju..

Neke zanimljive ideje za vježbanje mogu biti:

  • Skripta za provjeru mrežeProgram koji pinga više adresa ili provjerava otvorene portove i bilježi da li su dostupni. Ovo vam omogućava da vježbate module poput podprocesa ili socketa, upravljate izlazom komandi i obrađujete greške bez rušenja skripte.
  • Jednostavna provjera lozinkiSkripta koja prima lozinku, provjerava njenu dužinu, razliku između velikih i malih slova, brojeva i simbola, te vraća rezultat. Možete dodati regularne izraze i liste uobičajenih riječi pohranjenih u Termux datotekama.
  • Analizator datoteka dnevnikaAlat koji čita zapisnik (na primjer, iz servisa koji imate na Termuxu), filtrira linije s greškama, upozorenjima ili određenim IP adresama i generira kratke sažetke. Ovo vam pomaže u otkrivanju incidenata i analizi događaja.
  • Lagani web strugačKoristeći zahtjeve i biblioteku za parsiranje HTML-a, možete posjećivati ​​stranice, izdvajati podatke i pohranjivati ​​ih u datoteke za kasniju analizu. Ovo je vrlo korisno za praćenje promjena na web stranici, prikupljanje javnih informacija ili treniranje oka za uočavanje potencijalnih rizika socijalnog inženjeringa.
  • Praćenje vremena u realnom vremenu ili kriptovalutaOvaj skript periodično šalje upite javnom API-ju i prikazuje trenutne vrijednosti u terminalu ili ih sprema za poređenje. Ovo vam omogućava da vježbate HTTP zahtjeve, rukovanje JSON-om, autentifikaciju tokena i upravljanje mrežnim greškama.

U svim ovim projektima, ono što je snažno jeste kako Kombinujete Python sa Linux alatima koje Termux već pruža.Možete zakazivati ​​ponavljajuće zadatke, koristiti cijevi, preusmjeravati izlaz u datoteke i još mnogo toga. Vaš tablet postaje malo, idealno okruženje za testiranje za oživljavanje vaših ideja.

Učite Python i sajber sigurnost istovremeno sa svog mobilnog uređaja

Mnogi od prethodnih projekata doprinose uvođenju stvarnih koncepata i najboljih praksi kibernetičke sigurnosti. Ideja nije pretvoriti tablet u nekontroliranu igračku za hakiranje, već... razumjeti kako vaši skripti komuniciraju s mrežama, sistemima i osjetljivim podacima.

Na primjer, kada kreirate program za provjeru lozinki, možete iskoristiti priliku da razgovarate o sigurnosne politike, kriteriji robusnosti, rotacija ključeva i okviri kao što su NIST CSF ili NIS2 direktivakoji uspostavljaju specifične obaveze u određenim sektorima. Čak i ako se samo amaterski bavite nekim stvarima, stavljanje vaših scenarija u profesionalni kontekst pomaže vam da razmišljate na veliko.

U slučaju analizatora logova, vaši alati se mogu ponašati ovako sistemi za detekciju malih incidenatatraženje neobičnih obrazaca, neuspjelih pokušaja prijave ili sumnjivog ponašanja. Ovo je povezano s načinom rada sigurnosnih timova u kompanijama, gdje su kontinuirano praćenje i brz odgovor na incidente ključni.

Kada se igrate sa scraperima i API-jima, nailazite i na teme kao što su odgovorno korištenje informacija, poštivanje uslova korištenja i zaštita ličnih podatakaOvo je savršeno vrijeme za uključivanje osnovnih etičkih navika: nemojte preopteretiti servise zahtjevima, nemojte prikupljati osjetljive podatke bez dozvole, pravilno zaštitite tokene i vjerodajnice koje koristite u svojim skriptama itd.

Ako ste također zainteresirani za automatizaciju procesa na profesionalnom nivou, Termux i Python mogu biti... Ulaz u složenije tokove koje zatim možete migrirati u cloud okruženja poput AWS-a ili Azurea ili u rješenja za poslovnu inteligenciju poput Power BI-aOno što naučite dizajniranjem skripti na tabletu kasnije se može prilagoditi poslovnim procesima, mijenjajući infrastrukturu, ali zadržavajući logiku i najbolje prakse.

Osnovna podešavanja i savjeti za poboljšanje vašeg razvojnog okruženja

Termux radi prilično dobro odmah nakon instalacije, ali uz malo podešavanja možete postići okruženje u kojem program satima bez muke s interfejsomPrvi korak je odabrati editor s kojim se osjećate ugodno: nano za početak ili Vim/Neovim ako želite nešto moćnije i proširivije.

Također se toplo preporučuje definiranje jasna struktura direktorija za vaše projekte. Na primjer:

  • $HOME/c_proyectos
  • $HOME/cpp_projekti
  • $HOME/python_projekti

I unutar svake od njih, podfoldere za svaki projekat. Ovo vam pomaže da izbjegnete miješanje fontova, izvršnih datoteka i podataka, te vas navikava na organizovan rad od prvog dana.

Ako će se vaši skripti doticati mrežnih tema, API-ja ili vanjskih servisa, ne bi bilo loše da Koristite VPN na tabletu kada radite sa Termuxomposebno ako se povezujete na javne ili nepouzdane Wi-Fi mreže. I dok ste već kod toga, naučite kako pratiti potrošnju podataka, wakelockove i automatsko uključivanje/isključivanje ili načini rada za uštedu energije mogu biti prednost.

Što se tiče Pythona, naviknite se na Pišite logove i hvatajte izuzetke umjesto da dozvolite da se program sruši pri prvoj prilici.Rješavanje mrežnih grešaka, netačnih formata podataka ili problema s dozvolama će vas prisiliti da dizajnirate robusniji kod, a to je neprocjenjivo ako kasnije želite primijeniti ove ideje u produkcijskim sistemima.

Zapamtite da je Termux, na kraju krajeva, minijaturno pravo Linux okruženjeSve što ovdje naučite o naredbama, kanalima, preusmjeravanjima, dozvolama i strukturi direktorija prenosi se gotovo nepromijenjeno na servere, VPS-ove ili virtualne mašine. Vaš tablet postaje savršeno poligon za učvršćivanje tog znanja.

Integracija Termuxa i Pythona sa IDE-ima u Androidu

Prilično često pitanje je da li je moguće Korištenje Termux Python-a iz grafičkog IDE-a na AndroiduOvo je slično onome što biste uradili sa Visual Studio Code-om ili PyCharm-om na desktop računaru. Ideja zvuči sjajno, ali u praksi, Android ekosistem čini ovu integraciju prilično komplikovanom.

Postoje aplikacije poput Pydroida i sličnih koje nude vlastiti interpreter i razvojno okruženje s grafičkim interfejsom. Problem je u tome što Svaka od ovih aplikacija upravlja vlastitim izoliranim okruženjem i ne dijeli pakete ili konfiguraciju s Termuxom.Drugim riječima, iako možete programirati u Pythonu na njima, oni neće pokretati isti Python niti koristiti iste module koje imate u Termuxu.

Danas, opcije za posjedovanje Sve-u-jednom IDE-ovi koji koriste tačno Termux Python okruženje su vrlo ograničeni.Ono što možete učiniti jeste da se približite tom iskustvu korištenjem moćnih editora unutar Termuxa (npr. Vim/Neovim s dodacima) ili uređivanjem datoteka u vanjskom editoru koji ima pristup dijeljenim mapama, dok istovremeno nastavljate pokretati kod iz terminala.

Druga opcija je povezivanje tableta s računarom i rad s desktop IDE-om koji komunicira s Termuxom putem SSH-a ili SFTP-a. U tom slučaju, Tablet djeluje kao server, a PC kao razvojni klijent.To je vrlo praktičan tijek rada, ali odstupa od ideje korištenja samo mobilnog uređaja.

Za isključivo mobilnu upotrebu, najrealnija stvar koju treba prihvatiti je da Termux je baziran na terminalu, a njegova snaga dolazi od kombinacije dobrog editora, korisnih aliasa, prečica na tastaturi i pažljive konfiguracije.To je više nego dovoljno da naučite i razvijate ozbiljne Python projekte na svom tabletu.

Na kraju, sa skromnim Android tabletom, Termuxom i pravim alatima, možete se sami postaviti Više nego vrijedno radno okruženje za učenje C-a, C++-a i Pythona, vježbanje Linuxa, automatizaciju zadataka, igranje s API-jima, logovima i mrežama te početak dodirivanja koncepata kibernetičke sigurnosti i usluga u oblaku..

termux
Vezani članak:
Termux na Androidu: Ultimativni vodič za napredne naredbe i trikove za savladavanje Linuxa na vašem mobilnom uređaju

Uz malo upornosti, ta prenosiva laboratorija postaje prvi korak ka ambicioznijim projektima koje zatim možete implementirati na serverima, poslovnim aplikacijama ili rješenjima za poslovnu inteligenciju, zadržavajući isti način razmišljanja: eksperimentirajte, automatizirajte i gradite korisne alate iz jednostavne komandne linije. Podijelite informacije kako bi više korisnika moglo saznati više o toj temi.