Ja kādreiz esat mēģinājuši Instalējiet APK failu, pārvietojiet failus un palaidiet .sh skriptu operētājsistēmā Android Un viss, ko saņēmāt, bija kaitinošs ziņojums "atļauja liegta"? Neuztraucieties, jūs neesat viens. Android nav tipiska Linux darbvirsma, un, lai gan tām ir daudz kopīgu pamatprincipu, atļauju un ceļu sistēma nedaudz sarežģī lietas.
Šajā rakstā mēs soli pa solim aplūkosim, kā Izveidojiet un palaidiet .sh skriptus programmā Termux operētājsistēmai AndroidUzziniet, kā risināt bieži sastopamas atļauju problēmas un kā maksimāli izmantot šo lietotni, lai automatizētu uzdevumus, startējot ierīci, kopīgojot saites vai pat izmantojot logrīkus. Tas viss ir izskaidrots skaidrā valodā ar reāliem piemēriem un padomiem, kas ietaupīs jūsu laiku un galvassāpes.
Kas ir Termux un kāpēc tas ir ideāli piemērots .sh skriptiem operētājsistēmā Android?

Termux ir lietojumprogramma, kas ļauj jums pilnvērtīga Linux vide operētājsistēmā Android, bez nepieciešamības pēc root piekļuves. Tas nav tikai termināļa emulators: tas ietver Debian/Ubuntu stila pakotņu pārvaldnieku, ar kuru var instalēt Python, Ruby, Node.js, gcc, ssh, tīmekļa serverus, datubāzes un daudz ko citu.
Mūsu gadījumā interesanti ir tas, ka Termux piedāvā īstu apvalku (bash, zsh…)Tas piedāvā atbalstu skriptiem, īsinājumtaustiņiem, peles ievadei un pakotņu sistēmai, kas ir ļoti līdzīga klasiskajam distro. Būtībā to var izmantot programmēšanai, serveru administrēšanai vai vienkārši Android sistēmas automatizēšanai ar .sh skriptiem.
Jau no pirmā brīža redzēsi, ka vari lietošana Noderīgas Termux komandas kā ls, grep, nano, spars, htop, iet, pitonsutt. Tomēr direktoriju hierarhija nav gluži tāda pati kā Linux darbvirsmas sistēmā, un šī detaļa ir ļoti svarīga, runājot par skriptiem.
Turklāt Termux atbalsta fiziskās tastatūras un īpašie īsinājumtaustiņiPiemēram, skaļuma samazināšanas taustiņš darbojas kā Ctrl taustiņš, ļaujot izmantot tādas kombinācijas kā Ctrl+C, Ctrl+D vai Ctrl+L, padarot lietošanu daudz ērtāku mobilajā tālrunī vai planšetdatorā.
Pareizi instalējiet Termux un izvairieties no versiju konfliktiem

Viena no bieži pieminētajām problēmām ir tā, ka pēc Termux instalēšanas Lietotnes ikona neparādās vai rada dīvainas kļūdasTas bieži notiek vecu vai jauktu versiju instalēšanas dēļ no Google Play un F-Droid.
Pašreizējais ieteikums ir tāds, ka Instalējiet Termux no viena uzticama avotaParasti ieteicams izmantot F-Droid, kur atrodas uzturētā versija, vai, ja tādas nav, oficiālo versiju no GitHub. Ja izvēlaties F-Droid, lejupielādējiet Termux APK tieši un nejauciet to ar Play veikala versiju.
Tas ir īpaši svarīgi, ja jūs gatavojaties izmantot spraudņi, piemēram, Termux:Boot, Termux:API vai Termux:WidgetJa jums nepieciešams ceļvedis, Uzziniet, kā lietot TermuxLai digitālais paraksts sakristu, visām saistītajām lietotnēm jābūt no viena veikala (Play Store vai F-Droid). Ja jaukti avoti, paplašinājumi bieži vien neatpazīs Termux vai vienkārši nedarbosies.
Ja jums jau ir Termux no Play veikala un vēlaties pārslēgties uz F-Droid, ieteicamā opcija ir Vispirms atinstalējiet iepriekšējo versiju un pēc tam instalējiet gan Termux, gan tā spraudņus no F-Droid, visus no vienas un tās pašas vietnes.
Pamatvides konfigurēšana: atjaunināšanas un krātuves atļaujas
Kad Termux ir instalēts, pirmais solis ir minimāli sagatavot to darbam ar skriptiem un ierīču failiem. Lai to izdarītu, ir jāveic divas galvenās darbības: atjaunināt pakotnes un integrēt Android krātuvi.
Termux izplatīšanas atjaunināšana ir tikpat vienkārša kā pakotņu pārvaldnieka izmantošana. Tā vietā, lai izmantotu tieši spējīgsTermux piedāvā komandu pkgkas vienkāršo procesu un parūpējas par to, lai apt atjauninājums kad tas pieskaras.
Otrais solis ir piekļuves piešķiršana mobilās ierīces krātuvei. Pēc noklusējuma Termux redz tikai savu direktoriju. $ HOMEkas ir izolēta no pārējās Android sistēmas. Ja vēlaties lasīt un rakstīt iekšējā atmiņā vai SD kartē, jums jāpalaiž:
termux-setup-storage
Šī komanda pieprasīs atļaujas un izveidos direktoriju. $HOME/glabātuve ar saitēm uz lejupielāde, dokumenti, bildesutt. Tādā veidā jūsu skripti varēs Lasīt un kopēt failus uz un no Android lietotāja zonas bez nepieciešamības žonglēt.
Ja tas, ko vēlaties, ir, piemēram, instalējiet APK failu un kopējiet dažus failus Piekļūstot iekšējai atmiņai no skripta, ir svarīgi iepriekš piešķirt šīs atļaujas. Pretējā gadījumā gandrīz noteikti saskarsieties ar baiso kļūdu "Atļauja liegta".
Maršrutēšanas struktūras izpratne Termux un Shebang koncepcijā
Termux neizmanto tieši tādu pašu hierarhiju kā standarta Linux distro. Ceļi, piemēram, /bin, /usr vai /etc, neatrodas tur, kur jūs gaidāt., un tas ietekmē skriptu shebangus (rindu, kas sākas ar #! norādot tulku).
Daudzos ceļvežos vai projektos (piemēram, Instagram botos, piemēram, InstaPy) jūs redzēsiet skriptus ar šādām galvenēm #!/bin/sh o #!/usr/bin/env pythonVecākās Termux versijās šie ceļi bija jālabo ar utilītu, ko sauc par termux-fix-shebangjo binārie faili neatradās tipiskajos maršrutos.
Jaunākās versijas ietver pakotni termux-exec, kas ir atbildīgs par pareizi interpretēt standarta shebangusPateicoties tam, lielākā daļa skriptu, kas sagaida klasisku Unix vidi, darbojas bez jebkādām izmaiņām. Pat ja skripts neizdodas darboties, ir vērts pārbaudīt sekojošo:
- Lai šebangs norāda uz tulku, kurš patiesībā pastāv pie Termux.
- Pārliecinieties, vai skriptam ir izpildes atļaujas ar
chmod +x. - Ka, to palaižot, izmantojat pareizo ceļu (piemēram,
./install.sho~/script.sh).
Ja esat cilvēks, kuram patīk, ja viss ir “kārtībā”, varat izveidot klasiska direktoriju struktūra Termux (kā / usr / bin), izmantojot īpašas komandas, kas ģenerē simboliskas saites un standarta ceļus. Tas nav obligāti, bet dažreiz tas atvieglo mantotu skriptu atkārtotu izmantošanu.
.sh skripta izveide, atļauju piešķiršana un palaišana programmā Termux
Ķersimies pie lietas: kā izveidot un palaist vienkāršu .sh skriptu programmā Termux? Pamatplūsma vienmēr ir vienāda: Uzrakstiet skriptu, saglabājiet to, piešķiriet atļaujas un palaidiet to.To var pielietot gan savam skriptam, gan, piemēram, klasiskajam. instalēt.sh tādu projektu kā InstaPy Quickstart.
Lai izveidotu skriptu, varat izmantot nano, spars, emacs vai redaktors, kas jums vislabāk patīkJa jums tāda nav instalēta, noderīgs pirmais solis ir:
pkg install nano
Pieņemsim, ka vēlaties izveidot ~/script.shJūs varētu darīt:
nano ~/script.sh
Faila iekšpusē jūs rakstāt savu skriptu, piemēram, ļoti vienkāršu, kas reģistrē izpildes datumu:
#!/bin/sh
echo "Encendido del dispositivo: $(date)" >> ~/registros.log
Kad esat pabeidzis, saglabājiet to nano mapē ar Ctrl + O, Enter un pēc tam Ctrl + XJūs esat izveidojis skriptu, bet tas vēl nav izpildāms. Lai to labotu, pievienojiet atļaujas ar:
chmod +x ~/script.sh
No turienes jūs varat pārbaudīt, vai viss darbojas, palaižot:
~/script.sh
./script.sh (ja atrodaties tajā pašā direktorijā, kur fails)
Ja veicat šos atjauninājumus ~/registros.log Ar datumu un laiku jūs to apstiprināt .sh skripts darbojas pareiziŠī pati recepte attiecas arī uz mēģinājumiem palaist instalēt.sh ko lejupielādējat no GitHub: pārliecinieties, vai tam ir izpildes atļaujas un vai to izsaucat ar pareizo ceļu.
Kļūdas "atļauja liegta" labošana, palaižot .sh skriptus
Viena no biežākajām galvassāpēm, kad kāds mēģina instalēt APK vai pārvietot failus, izmantojot .sh failu operētājsistēmā Android, ir tā, ka Viss šķiet pareizi, bet terminālis atbild ar "Atļauja liegta".Termuxā šai problēmai parasti ir vairāki tipiski cēloņi.
Pirmais un acīmredzamākais ir tas, ka Skriptam trūkst izpildes atļaujuPat ja tu valkā perfektu shebangu, bez chmod +x archivo.sh Neko nevar darīt. Tā ir klasiska kļūda, kas vienmēr jāpārbauda.
Vēl viens izplatīts iemesls ir tas, ka Skripts mēģina rakstīt sistēmas ceļos, kur Android to neatļauj.Īpaši bez root piekļuves. Aizmirstiet par brīvu sistēmas direktoriju manipulēšanu; koncentrējieties uz lietotāju ceļiem (piemēram, tiem, kas ir pieejami). $HOME/glabātuve) vai tajā, ko pati lietotne var pārvaldīt.
Var gadīties arī tā Jūs palaižat komandas no cita termināļa emulatora, nevis Termux.Bez atbilstošām atļaujām un vides daudzi citi Android termināļa emulatori cieš no atļauju problēmām un neintegrē krātuvi vai API, kā rezultātā tās pašas komandas, kas darbojas reālā Linux sistēmā, tur nedarbojas.
Konkrētajā gadījumā, ja kāds mēģina instalēt InstaPy Quickstart operētājsistēmā Android, kritiskais punkts ir šāds: Termux jābūt pieejamām visām atkarībām (Python, pip, nepieciešamās bibliotēkas) un skripts instalēt.sh Tam jādarbojas Termux ietvaros, nevis kādā nejaušā lietotnē. Ja tas tiek palaists pareizi, bet joprojām neizdodas, pārbaudiet instalācijas ceļus, failu un mērķa direktoriju atļaujas.
Automātiski palaist .sh skriptus, kad Android startē ar Termux:Boot
Kad pamati ir apgūti, daudzi cilvēki vēlas spert soli tālāk un radīt Daži skripti tiek palaisti automātiski, kad ierīce tiek ieslēgta.Tam paredzēts šis papildinājums. Termux:Zābaks.
Termux:Boot ir lietotne, kas integrējas ar Termux un Tas palaiž visus .sh skriptus, ko tas atrod īpašā direktorijā. kad tālrunis pabeidz startēšanu. Tas ir ideāli piemērots, piemēram, tādu pakalpojumu kā MySQL, mazu dēmonu, reģistrēšanas uzdevumu vai jebkuras citas automatizācijas palaišanai, kas nepieciešama startēšanas laikā.
Termux:Boot var lejupielādēt no Google Play (dažās valstīs par maksu) vai no F-Droid, kur tas ir pieejams bez maksas. Taču atcerieties zelta likumu: Termux un Termux:Boot ir jānāk no viena un tā paša avota. lai to paraksti sakristu. Ja izmantojat F-Droid priekš Termux, izmantojiet F-Droid arī priekš Termux:Boot.
Pēc Termux:Boot instalēšanas parasti pietiek atverot lietotni vienreiz lai tas reģistrētos kā sāknēšanas notikuma saņēmējs. Tam nav nepieciešama plaša konfigurācija; tā maģija notiek fonā, nolasot skriptus, ko ievietojat atbilstošajā direktorijā.
Skripta ceļš startēšanas laikā: ~/.termux/boot un praktisks piemērs
Termux:Boot mehānisms ir vienkāršs: Jebkurš .sh skripts, ko ievietojat ~/.termux/boot/ failā, tiks palaists ierīces startēšanas laikā.Pēc noklusējuma mape neeksistē, tāpēc tā būs jāizveido pašam.
Lai to izdarītu programmā Termux, palaidiet:
mkdir -p ~/.termux/boot/
No turienes jūs varat tieši izveidot savus skriptus šajā ceļā vai kopēt jau esošos. Sekojot iepriekšējam piemēram, ja mēs būtu izveidojuši ~/script.shMēs to varētu nokopēt šādi:
cp ~/script.sh ~/.termux/boot/script.sh
Kamēr vien fails ir izpildes atļaujas (chmod +x ~/.termux/boot/script.sh), Termux:Boot to palaidīs katrā palaišanas reizē. Šis skripts var saturēt jebkura derīga bash/sh komanda, sākot ar žurnāla ierakstīšanu un beidzot ar datubāzes pakalpojuma palaišanu ar kaut ko līdzīgu:
mysqld_safe -u root &
Ja vēlaties pārliecināties, ka viss ir pareizi iestatīts, ieteicams atkārtoti atveriet lietotni Termux:Boot Pagaidiet dažas sekundes, aizveriet un pēc tam restartējiet ierīci. Kad tā ieslēdzas, pārbaudiet žurnālfaila saturu vai to pakalpojumu statusu, kurus mēģinājāt startēt no skripta.
Cron un citu automatizāciju izmantošana ar Termux
Papildus sistēmas palaišanai varat arī Plānojiet atkārtotus uzdevumus ar cron programmā TermuxLai to izdarītu, jums jāinstalē atbilstošā pakotne un jākonfigurē crontabs tāpat kā jūs to darītu jebkurā Linux sistēmā.
Kad tas ir instalēts, jūs to izmantojat crontab -e Lai rediģētu cron tabulu un pievienotu ierakstus. Piemēram, varat konfigurēt uzdevumu, lai tas tiktu palaists katru minūti un izveidotu vai atjauninātu noteiktu direktoriju, vai lai noteiktā intervālā palaistu .sh skriptu.
Cron darbība Termux sistēmā ir ļoti līdzīga standarta Linux sistēmas darbībai, taču tai ir viens svarīgs ierobežojums: Ja Android fonā pārtrauc lietot TermuxUzdevumi var tikt pārtraukti. Kamēr vien sistēma respektē procesu, cron darbojas ļoti labi, taču tas ir jāpatur prātā tālruņos ar agresīvu akumulatora taupīšanas politiku.
Ja neesat pārliecināts par cron sintaksi (minūšu, stundu, dienu utt. izteiksmes), varat izmantot tādus resursus kā crontab.guru, kas palīdz vizuāli uzrakstīt pareizu programmēšanu.
Termux integrēšana ar Android: Termux: API un skripti koplietošanas laikā
Viena no Termux lielākajām priekšrocībām ir tā, ka tas nepaliek tikai izolētā terminālī: ar papildinājumu Termux:API Varat piekļūt daudzām Android aparatūras funkcijām un apvienot tās ar saviem .sh skriptiem, kā arī ar tādiem rīkiem kā SL4A operētājsistēmā Android.
Lai to izmantotu, vispirms instalējiet Termux:API lietotni no F-Droid vai Play veikala (ievērojot to pašu pirmkoda politiku kā pārējiem spraudņiem) un pēc tam instalējiet pakotni terminālī. termux-APINo turienes jūsu skripti var izsaukt komandas, piemēram:
- termux paziņojums lai Android ierīcēs rādītu paziņojumus.
- termux dialogs lai atvērtu dialoglodziņus un pieprasītu datus no lietotāja.
- termux-grauzdiņš lai ekrānā parādītu īsus ziņojumus.
- termux-tts-speak izmantot Google TTS (teksta pārvēršanu runā).
- termux-media-player lai atskaņotu audio/video.
- termux mikrofona ieraksts lai ierakstītu audio no mikrofona.
- Komandas starpliktuvei, atrašanās vietai, kamerai utt.
Turklāt Termux var noteiktu Android "nodomu" uztveršanaTas ļauj skriptus palaist automātiski, kopīgojot failus vai URL no citām lietotnēm.
Piemēram, ja kopīgojat saiti no YouTube uz Termux, skripts tiks palaists. ~/bin/termux-url-atvērējs saņemot URL mainīgajā $1. Jums ir tikai:
- Izveidojiet direktoriju ~/bin ja tā neeksistē.
- Izveidojiet failu termux-url-atvērējs viņa iekšienē.
- Piešķiriet izpildes atļaujas ar
chmod +x ~/bin/termux-url-opener.
Šajā skriptā varat, piemēram, lejupielādēt video ar youtube-dl vai līdzīgs izmantojot URL, kas nonāk $1vai saglabājiet saiti sarakstā, lai lasītu vēlāk.
Kaut kas līdzīgs notiek ar termux failu redaktorsKad koplietojat failu ar Termux, tiek palaists šis apstrādātājs. Varat to konfigurēt, lai atvērtu savu iecienītāko redaktoru, izveidojot simbolisku saiti, piemēram, šo:
ln -s $PREFIX/bin/nvim ~/bin/termux-file-editor
Vai arī uzrakstiet savu skriptu termux failu redaktors (ar nano(atzīmējiet to kā izpildāmu utt.), lai apstrādātu failu tā, kā vēlaties. Tas ir ļoti spēcīgs veids, kā ķēdes darbību savienošana starp Android un jūsu .sh skriptiem.
Palaist skriptus no logrīkiem un saīsnēm: Termux:Widget
Ja jums patīk komforts, ir vēl viens īpaši noderīgs aksesuārs: Termux: logrīksŠis spraudnis ļauj izveidot saīsnes sākuma ekrānā, lai palaist skriptus tieši no logrīkaneatverot termināli manuāli katru reizi.
Lai tas darbotos, skripti jāievieto noteiktos ceļos:
- ~/.īsceļi/ skriptiem, kas parādīsies logrīkā.
- ~/.shortcuts/tasks/ konkrētiem uzdevumiem, ko pārvalda spraudnis.
- ~/.īsceļi/ikonas/ PNG ikonām, kas tiks parādītas kopā ar katru skriptu.
Ikonas faila nosaukumam ir jāatbilst skripta nosaukumam, pievienojot . PNG, piemēram script.sh.pngTipiskā Full HD ekrānā izmērs ir 96 × 96 pikseļi Parasti tas darbojas labi, lai gan lielākiem ekrāniem ieteicams palielināt līdz 144 pikseļiem vai 196 pikseļiem.
Vienkārši ievietojot skriptu ~/.īsceļi/, piešķiriet tam izpildes atļaujas un pievienojiet Termux logrīku palaišanas programmai, Jūs varēsiet palaist šo .sh failu ar vienkāršu pieskārienu.Lieliski piemērots bieži atkārtojamiem uzdevumiem: dublēšanai, sinhronizēšanai, balss piezīmēm utt.
Citi uzlaboti rīki un lietošanas gadījumi ar Termux
Papildus atsevišķu skriptu palaišanai Termux ļauj jums pārsteidzoši pilnvērtīga darba vide Android ierīcēs varat instalēt tulkus tādām valodām kā Python, Ruby, Perl, Node.js vai Rust un izmantot tos ar .sh skriptiem, lai automatizētu sarežģītākus uzdevumus.
Var arī braukt pilnīgas izstrādes vides ar git, gcc, make, Neovim, Emacs utt. un pat tīmekļa serveriem, datubāzes serveriem vai SSH pakalpojumiem. Daudzi lietotāji glabā savus dotfailus git repozitorijā, lai klonētu savu konfigurāciju tieši Termux un justos "kā mājās" jebkurā Android ierīcē.
Ja izmantojat paroļu pārvaldniekus, piemēram, ietJūs varat tos instalēt kopā ar gnupg un sinhronizēt savas paroles, izmantojot Git, ļaujot tām būt pieejamām arī mobilajā ierīcē. Pat tādi rīki kā zivs (ļoti lietotājam draudzīga čaula) un mūsdienīgas utilītas, piemēram, zoksīds, zvaigžņu kuģis, ripgreps, lsd, sikspārnis vai atuīns Tie integrējas nemanāmi.
Tiem, kas nāk no darbvirsmas fona, ideja par to SSH serveris vai tīmekļa serveris, kas darbojas tālrunī Ar Termux nemaz nav traki. To var palaist ar vienkāršu .sh skriptu, saistīt ar Termux:Boot vai logrīku un pārvaldīt kā nelielu portatīvu serveri.
Atbalsts vietnei grafiskās saskarnes, izmantojot X11 un VNC Tas ir pieejams arī, lai gan tam nepieciešama sarežģītāka iestatīšana; ja jūs tas interesē, apskatiet to. Kā atdarināt un palaist Linux operētājsistēmā AndroidPat ja tā, tas parāda, cik lielā mērā Termux pārspēj vienkāršo "termināļa emulatora" ideju un kļūst par nelielu Linux distro operētājsistēmā Android.
Ar visu šo Termux kļūst par sava veida Šveices armijas nazi: No vienkārša APK instalēšanas ar .sh skriptu līdz sarežģītu uzdevumu automatizēšanai, apvienojot Android API, cron, sistēmas startēšanu un logrīkusKabatā var ielikt praktiski visu, ko vari iedomāties darām Linux terminālī.
