{"id":30531,"date":"2019-10-31T21:36:03","date_gmt":"2019-10-31T18:36:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/termux-shag-za-shagom-chast-2\/"},"modified":"2019-10-31T21:36:03","modified_gmt":"2019-10-31T18:36:03","slug":"termux-shag-za-shagom-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2","title":{"rendered":"Termux soli pa solim (2. da\u013ca)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>No <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444950\/\">es piemin\u0113ju, ka var ieg\u016bt labumu no nodok\u013ciem, p\u0101rv\u0101coties uz ciemu. Internet\u0101 ir<\/a><\/noindex> m\u0113s iepazin\u0101mies ar pamata Termux komandu, noregul\u0113j\u0101m SSH savienojumu ar datoru, iem\u0101c\u012bj\u0101mies veidot aliasus un instal\u0113j\u0101m da\u017eus noder\u012bgus r\u012bkus. \u0160oreiz mums paredz\u0113ts soli v\u0113l t\u0101l\u0101k, m\u0113s ar jums:<\/p>\n<p><\/p>\n<ul>\n<li>uzzin\u0101sim par Termux:API<\/li>\n<li>uzst\u0101d\u012bsim Python un nano, k\u0101 ar\u012b uzrakst\u012bsim \"Hello, world!\" Python valod\u0101<\/li>\n<li>uzzin\u0101sim par bash skriptiem un uzrakst\u012bsim skriptu, izmantojot Termux:API<\/li>\n<li>izmantojot bash skriptu, Termux:API un Python, uzrakst\u012bsim vienk\u0101r\u0161u programmu <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>T\u0101 k\u0101 tagad m\u0113s saprotam, ko dara ievad\u012bt\u0101s komandas, no \u0161\u012b br\u012b\u017ea es tik s\u012bki nepaskaidro\u0161u katru darb\u012bbu, bet tur, kur var\u0113tu b\u016bt gr\u016bt\u012bbas, es noteikti snieg\u0161u skaidrojumus.<\/p>\n<p><\/p>\n<p>Es bie\u017ei izmantoju aliasus, t\u0101p\u0113c \u0161aj\u0101 da\u013c\u0101 izmantotie sa\u012bsin\u0101jumi ir uzr\u0101d\u012bti \u0161eit:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">alias updg='apt update &amp;&amp; apt upgrade'\nalias py='python'<\/code><\/pre>\n<p><\/p>\n<p>Pl\u0101ns gatavs, varam s\u0101kt! Un, protams, neaizmirstiet par \"burv\u012bgo Tab\" (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444950\/\">Skat. 1. da\u013cu<\/a><\/noindex>).<\/p>\n<p><\/p>\n<h2>4. solis<\/h2>\n<p><\/p>\n<h3>Ienirstam Termux:API tru\u0161u caurum\u0101<\/h3>\n<p><\/p>\n<p><i>Cik daudz \u0161aj\u0101 v\u0101rd\u0101 sird\u012b kod\u0113t\u0101ja sapl\u016bst<\/i><\/p>\n<p><\/p>\n<p>Ja neizprotam Termux:API t\u0113mu, tad visas m\u016bsu darb\u012bbas var\u0113ja samazin\u0101t l\u012bdz vienk\u0101r\u0161am k\u0101das bro\u0161\u016bras tipa \"Linux priek\u0161 ies\u0101c\u0113jiem\" p\u0101rst\u0101stam, k\u0101 pareizi tika atz\u012bm\u0113ts koment\u0101ros pie pirm\u0101s da\u013cas.<\/p>\n<p><\/p>\n<p>S\u0101ksim ar Termux:API instal\u0113\u0161anu no Google Play tirgus (p\u0113c tam b\u016btu ieteicams restart\u0113t Termux):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/415e25a8ddefc5d4f1741c97d742eeb1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>T\u0101l\u0101k mums ir j\u0101instal\u0113 API pakotne Termux konsol\u0113:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">updg # Neaizmirstiet par alias\napt install termux-api<\/code><\/pre>\n<p><\/p>\n<p>Eksperimentiem es izmantoju Android 5.1.1, bet Android 7 \u012bpa\u0161niekiem j\u0101'pasarg\u0101' Termux: API, dodoties uz \u2018Iestat\u012bjumi\u2019 &gt; \u2018Aizsarg\u0101t\u0101s lietotnes\u2019, pret\u0113j\u0101 gad\u012bjum\u0101 API izsaukumi, piem\u0113ram, <code>termux-battery-status<\/code>, iestr\u0113gs. (Skat. <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.termux.com\/wiki\/Termux:API\">projekta wiki<\/a><\/noindex>)<\/p>\n<p><\/p>\n<p>Tagad der\u0113tu tuv\u0101k iepaz\u012bties ar ieg\u016btaj\u0101m iesp\u0113j\u0101m. Visjaun\u0101ko un detaliz\u0113t\u0101ko aprakstu par Termux:API var atrast uz <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.termux.com\/wiki\/Termux:API\">projekta wiki<\/a><\/noindex>. Es cent\u012b\u0161os izv\u0113l\u0113ties visredzam\u0101kos un interesant\u0101kos piem\u0113rus, kas \u013caus apg\u016bt prasmes turpm\u0101kai patst\u0101v\u012bgai darb\u012bbai.<\/p>\n<p><\/p>\n<h3>K\u0101 diski Termux:API <\/h3>\n<p><\/p>\n<ul>\n<li>termux-battery-status<br \/>\nAtgrie\u017e baterijas st\u0101vokli<br \/>\n<img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/9a5f793d1b028905b3ee9ceab0fbcdec.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>termux-brightness<br \/>\nIestata ekr\u0101na spilgtumu no 0 l\u012bdz 255<br \/>\n<img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/23e5f3726607921d7f52d5d0de543968.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>termux-toast<br \/>\nR\u0101da \u012bslaic\u012bgu izsistomu pazi\u0146ojumu<br \/>\n<img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/5c75ad9b678773801ea9975b23422384.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>termux-torch<br \/>\nIesl\u0113dz luktur\u012bti<br \/>\n<img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/7695202f5972e93e5b7a8f4bd952882c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>termux-wifi-scaninfo<br \/>\nAtgrie\u017e p\u0113d\u0113j\u0101 Wi-Fi t\u012bklu sken\u0113\u0161anas inform\u0101ciju<br \/>\n<img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/f10669f8e7dff1046ab4f9b7d68228e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ul>\n<p><\/p>\n<p>Nav gr\u016bti paman\u012bt, ka atgriezt\u0101s v\u0113rt\u012bbas ir virknes, v\u0101rdn\u012bcas, v\u0101rdn\u012bcu saraksti, t\u0101tad datu tipi, ar kuriem Python lieliski str\u0101d\u0101, t\u0101d\u0113\u013c n\u0101kamais solis b\u016bs t\u0101 instal\u0113\u0161ana.<\/p>\n<p><\/p>\n<h2>5. solis<\/h2>\n<p><\/p>\n<h3>Instal\u0113sim Python un nano<\/h3>\n<p><\/p>\n<p>Lai instal\u0113tu Python, rakst\u0101m termin\u0101l\u0101:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">updg\napt install python\napt install python2<\/code><\/pre>\n<p><\/p>\n<p>Tagad mums ir instal\u0113ti gan Python 2, gan 3.<\/p>\n<p><\/p>\n<p>Rakstot \u0161o rakstu, es atkl\u0101ju v\u0113l vienu teksta redaktoru nano, kas man pat\u012bk vair\u0101k nek\u0101 vim, t\u0101p\u0113c instal\u0113sim to:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">apt install nano<\/code><\/pre>\n<p><\/p>\n<p>To lietot ir viegl\u0101k nek\u0101 vim, un nano ir ar draudz\u012bg\u0101ku interfeisu. <i>Android ier\u012bc\u0113 tom\u0113r ir \u0113rt\u0101k izmantot vim.<\/i><\/p>\n<p><\/p>\n<h3>HelloWorld uz Python Termux\u0101<\/h3>\n<p><\/p>\n<p>Liel\u0101 m\u0113r\u0101 \u0161o punktu var\u0113ja izlaist, bet uzst\u0101d\u012bt Python Termux\u0101 un neuzrakst\u012bt HelloWorld, manupr\u0101t, b\u016btu nepiedien\u012bgi.<\/p>\n<p><\/p>\n<p>Es nepl\u0101noju m\u0101c\u012bt k\u0101dam Python, t\u0101p\u0113c tie, kas nezina, var vienk\u0101r\u0161i nokop\u0113t kodu (vai s\u0101kt m\u0101c\u012bties pa\u0161i, jo literat\u016bras netr\u016bkst), bet tie, kas zina, var pa\u0161i kaut ko uzrakst\u012bt. Un es \"piek\u013c\u016bstot\" v\u0113l par\u0101d\u012b\u0161u veidu, k\u0101 ievad\u012bt tekstu termin\u0101l\u012b bez redaktora.<\/p>\n<p><\/p>\n<pre><code class=\"bash\">cat &gt;hello-world.py     \n# Ja neizv\u0113las avotu (atg\u0101dinu, ka cat 1.txt &gt; 2.txt)\n# tad cat \u0146ems datus no standarta ievades pl\u016bsmas,\n# vienk\u0101r\u0161i run\u0101jot, no tastat\u016bras ievad\u012bt\u0101.\n\nstr = 'Hello, world!' # pie\u0161\u0137iram main\u012bgajam str v\u0113rt\u012bbu \"Hello, world!\"\nprint (str) # izvad\u0101m uz ekr\u0101na main\u012bg\u0101 str v\u0113rt\u012bbu\n\n# Ctrl + D, lai pabeigtu ievadi un saglab\u0101tu failu (hello-world.py)\n\npy hello-world.py # palai\u017eam failu (py ir alias no python)<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/e9086da1ce27f723681f142dad11d878.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja ievades laik\u0101 neesat paman\u012bjis k\u013c\u016bdu un jau nospied\u0101t Enter, tad p\u0101riet uz iepriek\u0161\u0113jo rindu neizdosies, t\u0101p\u0113c pabeidziet ievadi, nospie\u017eot Ctrl + D (var pat p\u0101rtraukt ar Ctrl + Z) un atk\u0101rtojiet visu no s\u0101kuma. T\u0101 k\u0101 m\u0113s izmantoj\u0101m '&gt;', fails tiks piln\u012bb\u0101 p\u0101rrakst\u012bts. T\u0101p\u0113c neiesaku izmantot \u0161\u0101du ievades metodi, ja neesat p\u0101rliecin\u0101ts, ka uzreiz uzrakst\u012bsiet kodu bez k\u013c\u016bd\u0101m.<\/p>\n<p><\/p>\n<h2>6. solis<\/h2>\n<p><\/p>\n<h3>Bash skripti<\/h3>\n<p><\/p>\n<p>Bash skripti ir lielisks veids, k\u0101 automatiz\u0113t darbu ar termin\u0101li. Skripts ir fails ar papla\u0161in\u0101jumu .sh (papla\u0161in\u0101jums nav oblig\u0101ts), kas satur komandu kopumu, no kur\u0101m da\u013cu m\u0113s jau esam izp\u0113t\u012bju\u0161i. L\u016bk, <noindex><a rel=\"nofollow\" href=\"https:\/\/tproger.ru\/translations\/bash-cheatsheet\/\">vair\u0101kuma komandu saraksts<\/a><\/noindex>, viss tai j\u0101str\u0101d\u0101, bet \u0146emiet v\u0113r\u0101, ka tas ir saraksts \u201epieaugu\u0161ajam\u201d Linux, nevis Termux, bet vienk\u0101r\u0161i <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/325522\/\">lielisks materi\u0101ls par bash skriptiem<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Izmantojot skriptus, var automatiz\u0113t praktiski visas monoton\u0101s darb\u012bbas. Uzrakst\u012bsim vienk\u0101r\u0161u bash skriptu, kas izvada v\u0113rt\u012bbu no sev rad\u012bt\u0101s main\u012bg\u0101s, es atkal izmanto\u0161u cat, bet j\u016bs varat izmantot norm\u0101lu teksta redaktoru, bet tie, kas v\u0113las p\u0101rbaud\u012bt savas prasmes, var izmantot echo.<\/p>\n<p><\/p>\n<pre><code class=\"bash\">cat &gt;test.sh\n\nexport str=\"Sveiks, Habr!\"\n# export izveido main\u012bgo str\n# un pie\u0161\u0137ir tam v\u0113rt\u012bbu \"Sveiks, Habr!\"\n# Neievietojiet atstarpes pirms un p\u0113c \u2018=\u2019\n\necho $str # Lai piek\u013c\u016btu main\u012bgajiem, pirms tiem j\u0101liek \u2018$\u2019 \n\n# Ctrl + D\n\n# .\/test.sh, lai palaistu skriptu, bet, ja to tagad izdar\u012bsim, b\u016bs k\u013c\u016bda\n# Lai nov\u0113rstu k\u013c\u016bdu, j\u0101padara fails test.sh izpild\u0101ms\n\nchmod +x test.sh\n# chmod maina piek\u013cuves ties\u012bbas (+ pievienot \/ - no\u0146emt)\n# \u2018+x\u2019 noz\u012bm\u0113, ka m\u0113s padar\u0101m failu izpild\u0101mu\n\n.\/test.sh # Uzs\u0101kam m\u016bsu skripta izpild\u012b\u0161anu<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/7c56f1aaf938a711f3a30dd3eed3eec7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3>Bash skripts ar Termux:API<\/h3>\n<p><\/p>\n<p>Uzrakst\u012bsim jau ko at\u0161\u0137ir\u012bgu no labi zin\u0101majiem HelloWorld, bet tikpat bezj\u0113dz\u012bgu. M\u016bsu skripts b\u016bs:<\/p>\n<p><\/p>\n<ol>\n<li>izpild\u012bt API piepras\u012bjumu termux-battery-status<\/li>\n<li>saglab\u0101t ieg\u016btos datus fail\u0101 test.txt<\/li>\n<li>izvad\u012bt datus no faila ekr\u0101n\u0101<\/li>\n<li>izpild\u012bt iepriek\u0161 uzrakst\u012bto programmu hello-world.py<\/li>\n<li>ieg\u016btos datus no programmas ierakst\u012bt fail\u0101 test.txt<\/li>\n<li>izvad\u012bt datus no faila ekr\u0101n\u0101<\/li>\n<li>p\u0101rs\u016bt\u012bt datus no faila uz starpliktuvi<\/li>\n<li>izvad\u012bt ekr\u0101n\u0101 starpliktuves saturu<\/li>\n<li>izvad\u012bt uznirsto\u0161o zi\u0146ojumu ar datiem no starpliktuves<\/li>\n<\/ol>\n<p><\/p>\n<p>Vispirms izveidosim mapi darbam un kop\u0113sim tur hello-world.py k\u0101 test.py, izveidosim \u0161aj\u0101 map\u0113 failus test.sh un test.txt:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">mkdir bashscript\n\ncat hello-world.py &gt;&gt; bashscript\/test.py\n\ncd bashscript\/\n\ntouch test.sh test.txt # touch izveido failus\n\nchmod +x test.sh<\/code><\/pre>\n<p><\/p>\n<p>Tagad jebkur\u0101 \u0113rt\u0101 veid\u0101 ierakst\u012bsim skriptu fail\u0101 test.sh:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\n\n# \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c #! (\u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0448\u0435\u0431\u0430\u043d\u0433)\n# \u043f\u043e\u0441\u043b\u0435 \u0438\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043d\u0430 \u0448\u0435\u043b\u043b \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0441\u043a\u0440\u0438\u043f\u0442\n\nclear # \u043e\u0447\u0438\u0441\u0442\u0438\u043c \u043e\u043a\u043d\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\n\ntermux-battery-status &gt; test.txt # \u043f\u0443\u043d\u043a\u0442\u044b 1 \u0438 2 \u0438\u0437 \u043d\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430\n\ncat test.txt # \u043f\u0443\u043d\u043a\u0442 3\n\npython test.py &gt; test.txt # \u043f\u0443\u043d\u043a\u0442 4 \u0438 5\n\ncat test.txt # \u043f\u0443\u043d\u043a\u0442 6\n\ncat test.txt | termux-clipboard-set # \u043f\u0443\u043d\u043a\u0442 7\n# | \u044d\u0442\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440. \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0432\u044b\u0445\u043e\u0434\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0440\u0443\u0433\u043e\u0433\u043e\n\ntermux-clipboard-get # \u043f\u0443\u043d\u043a\u0442 8\n\ntermux-clipboard-get | termux-toast # \u043f\u0443\u043d\u043a\u0442 9<\/code><\/pre>\n<p><\/p>\n<p>Tagad atrodamies map\u0113 bashscript, rakst\u0101m <code>.\/test.sh<\/code> nov\u0113rojam termin\u0101l\u012b m\u016bsu Android ier\u012bc\u0113:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Termux soli pa solim (2. da\u013ca)\" src=\"\/wp-content\/uploads\/2019\/03\/44c6632c7a3903dad1113017dc81ee61.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>L\u016bk, m\u0113s esam uzrakst\u012bju\u0161i pl\u0101noto bash skriptu. Varam bag\u0101tin\u0101t t\u0101 izvadi ar inform\u0101ciju par katra darb\u012bbas izpildi (izmantojot echo), to atst\u0101\u0161u las\u012bt\u0101jiem.<\/p>\n<p><\/p>\n<h2>Sol 7<\/h2>\n<p><\/p>\n<h3>Izdar\u012bsim kaut ko noder\u012bgu<\/h3>\n<p><\/p>\n<p><i>Relat\u012bvi noder\u012bgi<\/i><\/p>\n<p><\/p>\n<p>Izstr\u0101d\u0101sim tehnisko uzdevumu<br \/>\nProgrammai p\u0113c palai\u0161anas j\u0101ievieto nejau\u0161a rinda no faila starpliktuv\u0113 un j\u0101inform\u0113 par to ar uznirsto\u0161o zi\u0146ojumu.<\/p>\n<p><\/p>\n<p>K\u0101 pamatu \u0146emsim bash skriptu, nejau\u0161u rindu no faila ieg\u016bsim ar Python apak\u0161programmas pal\u012bdz\u012bbu. Izveidosim skripta darba pl\u0101nu:<\/p>\n<p><\/p>\n<ol>\n<li>Palaist apak\u0161programmu<\/li>\n<li>P\u0101rraid\u012bt apak\u0161programmas darba rezult\u0101tu starpliktuv\u0113<\/li>\n<li>Izvad\u012bt uznirsto\u0161o zi\u0146u<\/li>\n<\/ol>\n<p><\/p>\n<p>Noteiksim lietojumprogrammas direktoriju un failu nosaukumus:<\/p>\n<p><\/p>\n<ul>\n<li>mape rndstr m\u0101jas direktorij\u0101\n<ul>\n<li>source \u2014 fails, no kura \u0146emsim virknes<\/li>\n<li>rndstr.py \u2014 apak\u0161programma, kas konsol\u0113 izvada nejau\u0161u virkni no faila source<\/li>\n<li>rndstr.sh \u2014 skriptu fails<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Izveidojam lietojumprogrammas direktoriju un, p\u0101rvietojoties taj\u0101, izveidojam tur failus.<\/p>\n<p><\/p>\n<p>Pirmos divus skripta pl\u0101na punktus var apvienot cauruli, rezult\u0101t\u0101, izmantojot Termux:API, ieg\u016bstam:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">#!\/bin\/bash\n\npython ~\/rndstr\/rndstr.py | termux-clipboard-set # 1 \u0438 2 \u043f\u0443\u043d\u043a\u0442\u044b \u043f\u043b\u0430\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u044b\n\ntermux-toast \"OK\" # 3 \u043f\u0443\u043d\u043a\u0442. \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \"\u041e\u041a\"<\/code><\/pre>\n<p><\/p>\n<p>Fail\u0101 source j\u016bs varat ievietot jebkuru tekstu, lo\u0123iski sadal\u012btu pa rind\u0101m, es izl\u0113mu ievietot aforismus:<\/p>\n<p>\n<b class=\"spoiler_title\">Faila source saraksts<\/b><\/p>\n<pre><code class=\"plaintext\">Sirsn\u012bba nav paties\u012bba. L. Lavels\nPaciet\u012bba un attur\u012bba. Epikts\nGod\u012bgi ir tikai tas, kas ir bezintereses. J. Labri\u0113rs\nEsi sapr\u0101t\u012bgi drosm\u012bgs. B. Grasians\nLaba \u012bpa\u0161\u012bba ir labest\u012bba, nevis skaistums. G. Geins\nLieliem darbiem nepiecie\u0161ama neatlaid\u012bga notur\u012bba. F. Volters\nJa v\u0113lies, lai tevi vienm\u0113r apmierin\u0101tu, kalpo pats sev. B. Franklins\nP\u0101rlieku pazem\u012bba ir neviens cits k\u0101 sl\u0113pta lepnuma. A. \u0160enj\u0113\n\u013boti gudriem cilv\u0113kiem s\u0101k neuztic\u0113ties, ja redz vi\u0146u apmulsumu. F. N\u012b\u010de\nTr\u016bkumam ir nor\u0101de uz l\u012bdzek\u013cu tr\u016bkumu, nevis uz god\u012bbas tr\u016bkumu. D. Boka\u010ds\nJ\u0101k\u013c\u016bst uzman\u012bgam, lai pazem\u012bbu nenovestu l\u012bdz pazemojumam. A. Bakihanovs\nKas atsak\u0101s no daudz, var sev at\u013caut daudz. J. \u0160ardons\nKad mums maks\u0101 par god\u012bgu r\u012bc\u012bbu, to m\u016bs at\u0146em. N. \u0160amfors\nNesa\u0146emt visp\u0101r - nav bied\u0113jo\u0161i, bet zaud\u0113t ieg\u016bto ir nepat\u012bkami. Klaudijs Elijans\nViegl\u0101k paciest to, ko m\u0113s nevaram labot. Hor\u0101cijs\nTu nogurst gaid\u012bt, bet cik slikt\u0101k b\u016btu, ja gaid\u012b\u0161ana k\u013c\u016btu nevajadz\u012bga. B. \u0160ovs\nViss n\u0101k laik\u0101, ja cilv\u0113ki prot gaid\u012bt. F. Rable\nAr savu paciet\u012bbu m\u0113s varam sasniegt vair\u0101k nek\u0101 ar sp\u0113ku. E. Berks\nJ\u0101prot paciest to, ko nevar izvair\u012bties. M. Mont\u0113ns\nKas drosm\u012bgs dar\u012bjum\u0101, tas v\u0101rdu nebaid\u012bsies. Sofokls\nEs nem\u012blu c\u012bn\u012bties, es m\u012blu uzvar\u0113t. B. \u0160ovs\nSadz\u012bts un piespiests pie sienas ka\u0137is p\u0101rv\u0113r\u0161as par t\u012b\u0123eri. M. Servants\nGod\u012bgs cilv\u0113ks nesekos citu p\u0113d\u0101m. Kungs Konf\u016bcijs\nLiels pr\u0101ts izr\u0101d\u012bs savu sp\u0113ku ne tikai sp\u0113j\u0101 dom\u0101t, bet ar\u012b dz\u012bvot. R. Emersons\nSlava ir prece, kas nav izdev\u012bga. D\u0101rga, bet slikti saglab\u0101jas. O. Balzaks\nSavald\u012bba un piem\u0113rot\u012bba sarun\u0101s ir d\u0101rg\u0101kas par izteiksm\u012bgumu. F. B\u0113kons\nKas nevar klus\u0113t, tas nesp\u0113j ar\u012b run\u0101t. Senekas Jaun\u0101kais\nLabi mani ieradumi sast\u0101v no maz\u0101m upur\u0113\u0161an\u0101m. F. \u010cestervilds\nLabais cilv\u0113ks nav tas, kur\u0161 prot dar\u012bt labu, bet tas, kur\u0161 neprot dar\u012bt \u013caunu. V. K\u013ci\u010devskis\nNepateikties nenov\u0113r\u0161amiem spriedumiem! August\u012bns\nNeko p\u0101rm\u0113r\u012bgu!<\/code><\/pre>\n<p><\/p>\n<p>Mums joproj\u0101m j\u0101izveido apak\u0161programma, kas izvelk nejau\u0161u rindi\u0146u no faila source.<br \/>\nAprakst\u012bsim apak\u0161programmas darb\u012bbas algoritmu:<\/p>\n<p><\/p>\n<ol>\n<li>Atveram failu source<\/li>\n<li>Saskait\u0101m rindi\u0146u skaitu atv\u0113rtaj\u0101 fail\u0101<\/li>\n<li>Aizveram failu (nav j\u0101tur lieki atv\u0113rts ilg\u0101k)<\/li>\n<li>\u0122ener\u0113jam nejau\u0161u veselu skaitli, kas atbilst faila source rindu skaitam<\/li>\n<li>Atveram failu source<\/li>\n<li>Izvade rindai ar \u0123ener\u0113t\u0101 skait\u013ca numuru<\/li>\n<li>Aizveram failu<\/li>\n<\/ol>\n<p><\/p>\n<p>Realiz\u0113jam algoritmu Python valod\u0101 (rakstu zem Python 3.7):<\/p>\n<p><\/p>\n<pre><code class=\"python\">import random  #  import\u0113jam nejau\u0161u skait\u013cu \u0123ener\u0113\u0161anai\nimport os  #  ce\u013ca ieg\u016b\u0161anai\n\npath = os.path.abspath(__file__)  #  ieg\u016bstam absol\u016bto ce\u013cu l\u012bdz failam rndstr.py\npath = os.path.dirname(path)  #  p\u0101rveidojam par ce\u013cu uz direktoriju\npath = path  + 'src\/source'  #  p\u0101rveidojam par ce\u013cu uz failu source\n\nf = open(path)  #  atveram failu\ni = 0  #  null\u0113jam skait\u012bt\u0101ju\nfor str in f: i+=1  #  skait\u0101m faila rindas\nf.close  #  aizveram failu\n\nj = int(round(i * random.random()))  #  \u0123ener\u0113jam veselu nejau\u0161u skaitli no 0 l\u012bdz i\n\nf = open(path)  #  atveram failu\ni = 0  #  null\u0113jam skait\u012bt\u0101ju\nfor str in f:  #  p\u0101rstaig\u0101jam cauri faila rind\u0101m\n    if i == j:  #  ja rindas skait\u012bt\u0101js atbilst \u0123ener\u0113tajam skaitlim\n        print (str, end='')  #  izvad\u0101m rindu bez p\u0101rejas uz jauno rindu\n        break  #  izejam no cikla\n    i+=1  #  palielin\u0101m skait\u012bt\u0101ju par 1\nf.close  #  aizveram failu<\/code><\/pre>\n<p><\/p>\n<p>P\u0113c tam, kad faili ir izveidoti un ierakst\u012bti, nepiecie\u0161ams pie\u0161\u0137irt izpildes ties\u012bbas failam <code>rndstr.sh<\/code>, un izveidot alias \u0101trai palai\u0161anai.<\/p>\n<p><\/p>\n<pre><code class=\"bash\">alias rnst=\"~\/rndstr\/rndstr.sh\"<\/code><\/pre>\n<p><\/p>\n<p>Tagad, ievadot termin\u0101l\u012b <code>rnst<\/code> , m\u0113s sa\u0146emsim nejau\u0161u aforismu, ko var izmantot, piem\u0113ram, sarakst\u0113s.<\/p>\n<p><\/p>\n<p>M\u0113s esam uzrakst\u012bju\u0161i kaut ko noder\u012bgu. Sal\u012bdzino\u0161i noder\u012bgu.<\/p>\n<p><\/p>\n<h3>P.S.<\/h3>\n<p><\/p>\n<p>Es apzin\u0101ti p\u0113d\u0113j\u0101 sol\u012b neiek\u013c\u0101vu ekr\u0101n\u0161\u0101vi\u0146us un neanaliz\u0113ju detaliz\u0113ti da\u017eas darb\u012bbas, aprakstot tikai failu saturu, lai las\u012bt\u0101jiem b\u016btu iesp\u0113ja str\u0101d\u0101t patst\u0101v\u012bgi.<\/p>\n<p><\/p>\n<p>Ar to \"Termux soli pa solim\", dom\u0101ju, j\u0101beidz. Protams, tas ir tikai pirmie so\u013ci, bet tagad j\u016bs varat virz\u012bties uz priek\u0161u pa\u0161i.<\/p>\n<p><\/p>\n<p>S\u0101kotn\u0113ji es pl\u0101noju par\u0101d\u012bt \u0161aj\u0101 cikl\u0101, k\u0101 izmantot nmap, sqlmap, bet bez manis jau ir daudz rakstu par \u0161o t\u0113mu. Ja ir v\u0113l\u0113\u0161an\u0101s, lai es turpin\u0101tu s\u0113riju \"Termux soli pa solim\", tad zem\u0101k ir anketa, un koment\u0101ros varat ieteikt, par ko v\u0113l rakst\u012bt.<\/p>\n<p class=\"for_users_only_msg\">Tikai re\u0123istr\u0113tie lietot\u0101ji var piedal\u012bties aptauj\u0101. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Pieteikties<\/a><\/noindex>, l\u016bdzu.<\/p>\n<h2 class=\"default-block__polling-title\">Turpin\u0101t \"Termux soli pa solim\"?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    J\u0101<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    N\u0113<\/p>\n<\/li>\n<\/ul>\n<p>    Balsoju\u0161i 2 lietot\u0101ji. Nav attur\u0113ju\u0161os.<br \/>\n<br \/>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/445868\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Termux&#8217;\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u041f\u041a, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c alias&#8217;\u044b \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0448\u0430\u0433\u043d\u0443\u0442\u044c \u0435\u0449\u0435 \u0434\u0430\u043b\u044c\u0448\u0435, \u043c\u044b \u0441 \u0432\u0430\u043c\u0438: \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e Termux:API \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Python \u0438 nano, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043f\u0438\u0448\u0435\u043c &#171;Hello, world!&#187; \u043d\u0430 Python \u0443\u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e bash-\u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22529,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30531","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Termux&#039;\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u041f\u041a, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c alias&#039;\u044b \u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Termux \u0448\u0430\u0433 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c (\u0427\u0430\u0441\u0442\u044c 2) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Termux&#039;\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u041f\u041a, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c alias&#039;\u044b \u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:36:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:36:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Termux soli pa solim (Otr\u0101 da\u013ca) | ProHoster","description":"Iepriek\u0161\u0113j\u0101 da\u013c\u0101 m\u0113s iepazin\u0101mies ar Termux pamata komand\u0101m, iestat\u012bj\u0101m SSH savienojumu ar datoru, iem\u0101c\u012bj\u0101mies veidot aliasus un.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Termux \u0448\u0430\u0433 \u0437\u0430 \u0448\u0430\u0433\u043e\u043c (\u0427\u0430\u0441\u0442\u044c 2) | ProHoster","og:description":"\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 Termux'\u0430, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 SSH \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 \u041f\u041a, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c alias'\u044b \u0438.","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/termux-shag-za-shagom-chast-2","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:36:03+00:00","article:modified_time":"2019-10-31T18:36:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30531","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 01:39:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:16:48","updated":"2026-08-11 12:50:36","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/30531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=30531"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/30531\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/22529"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=30531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=30531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=30531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}