
ã³ãã³ãã©ã€ã³ãå®è¡ã§ããããšããåç¥ã§ãããïŒ Linux iOS ããã€ã¹ã§ïŒããªãããã¹ã ã¢ããªã iOS ããã€ã¹ã§äœ¿çšããå¿
èŠãããã®ãââããšçåã«æããããããŸããã iPhoneãããã¯ãã£ãšããªè³ªåã§ããããããOpensource.com ãèªãã§ããæ¹ãªããããããçãã¯ãåç¥ã§ãããããŠãŒã¶ãŒã§ããã Linux ã©ã®ããã€ã¹ã§ã䜿ããããã«ãããããèªåã®èšå®ã䜿ãããã
ããããäœããã圌ãã¯è€éãªåé¡ã解決ããããšãåæããŠããŸãã
ç§ã¯ 2 幎åã® iPad XNUMX Mini ãæã£ãŠããŸãããé»åæžç±ãèªãã ãããã®ä»ã®äœæ¥ãããã®ã«ã¯ãŸã ååã§ãã ãã ããããã䜿çšããŠãäžé£ã®ããã°ã©ã ãšã¹ã¯ãªããã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã®ã³ãã³ã ã©ã€ã³ã«ã¢ã¯ã»ã¹ããããšãããããšèããŠããŸããããããªããšäœæ¥ãã§ããŸããã æšæºã®éçºç°å¢ã ãã§ãªãã䜿ãæ
£ããç°å¢ãå¿
èŠã§ãã ãããŠããããç§ããããéæããããšãã§ããæ¹æ³ã§ãã
ããŒããŒãã«æ¥ç¶ãã
é»è©±ãã¿ãã¬ããã®ç»é¢äžã®ããŒããŒãã䜿ã£ãŠã³ãã³ãã©ã€ã³ã§ããã°ã©ãã³ã°ããã®ã¯éåžžã«äžäŸ¿ã§ããBluetooth ãŸãã¯ã«ã¡ã© ã¢ããã¿ãŒã䜿çšããŠæç·ããŒããŒããæ¥ç¶ããå€éšããŒããŒããæ¥ç¶ããããšããå§ãããŸã (ç§ã¯åŸè ãéžã³ãŸãã)ãKinesis Advantage åå²ããŒããŒããæ¥ç¶ãããšã iPhone 6 å¥åŠãªè£ 眮ãæã«å ¥ããŸã å€å žãã ã·ã£ããŠã©ã³ã
iOS ãžã®ã·ã§ã«ã®ã€ã³ã¹ããŒã«
å®å šã«æ©èœããã·ã¹ãã ãèµ·åããããã« Linux iOSã§ã¯2ã€ã®éžæè¢ããããŸãã
- ã»ãã¥ã¢ã·ã§ã«ïŒSSHïŒã§ã³ã³ãã¥ãŒã¿ã«æ¥ç¶ãã Linux
- Alpineã䜿çšããŠä»®æ³ã·ã¹ãã ãå®è¡ãã Linux iSHã¯ãªãŒãã³ãœãŒã¹ã§ãããAppleç¬èªã®TestFlightã¢ããªã䜿çšããŠã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
ãããã¯ããªãŒãã³ãœãŒã¹ããŒã«ãå¶éãããç°å¢ã§æäœã§ãããªãŒãã³ãœãŒã¹ã®ã¿ãŒããã«ãšãã¥ã¬ãŒã¿ã¢ããªã±ãŒã·ã§ã³ã2ã€ãããŸããããã¯æãç°¡ç¥åããããªãã·ã§ã³ã§ãå®éã«ã¯å®è¡ããŸããã LinuxããããŠããŒã« Linuxãããã®ã¢ããªã±ãŒã·ã§ã³ã䜿çšããéã«ã¯é倧ãªå¶éããããŸãããã³ãã³ãã©ã€ã³æ©èœã¯éšåçã«å©çšã§ããŸãã
è€éãªè§£æ±ºçã«é²ãåã«ãæãåçŽãªæ¹æ³ãèŠãŠãããŸãã
ãªãã·ã§ã³ 1: ãµã³ãããã¯ã¹ ã·ã§ã«
æãç°¡åãªæ¹æ³ã® XNUMX ã€ã¯ãiOS ã¢ããªãã€ã³ã¹ããŒã«ããããšã§ã ã ãã 80 以äžã®ã³ãã³ãã 2.7 ãã«ã§ãµããŒããããµã³ãããã¯ã¹ ã³ãã³ã ã·ã§ã«ã Python 3.7ãPython XNUMXãLuaãCãClang ãªã©ããã³ãã«ãããŠããŸãã
ã»ãŒåãæ©èœãåããŠããŸã ãéçºè ã¯ãç»é¢å ¥åãã©ãããã©ãŒã ã®ãã¹ã ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ããšèª¬æããŠããŸãã a-Shellã®ãœãŒã¹ãæ²èŒãããŠããŸã ã¯æŽ»çºã«éçºãããŠããããã¡ã€ã« ã·ã¹ãã ã¢ã¯ã»ã¹ãæäŸããLuaãPythonãTexãVimãJavaScriptãC ããã³ C++ãããã« Clang ããã³ Clang++ ãä»å±ããŠããŸãã Python ããã±ãŒãžã pip ã€ã³ã¹ããŒã«ããããšãã§ããŸãã
ãªãã·ã§ã³ 2: SSH
ã¢ããªãããŠã³ããŒããããããããã«äžæ©é²ãã æ¹æ³ãšããŠãSSHã¯ã©ã€ã¢ã³ãã®èšå®ããããŸãããããŸã§é·ãéãiOSåãã®å€ãã®SSHã¯ã©ã€ã¢ã³ãã¢ããªã®ããããã䜿çšããŠãå®è¡äžã®ãµãŒããŒã«æ¥ç¶ããããšãã§ããŸããã Linux ãŸãã¯BSDãSSHã䜿çšããå©ç¹ã¯ããµãŒããŒãä»»æã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãšä»»æã®ãœãããŠã§ã¢ãå®è¡ã§ããããšã§ãããªã¢ãŒãã§äœæ¥ãè¡ããäœæ¥å 容ã¯iOSããã€ã¹ã®ã¿ãŒããã«ãšãã¥ã¬ãŒã¿ã«ç°¡åã«è»¢éãããŸãã
ã§äººæ°ã®ããææ SSH ã¢ããªã±ãŒã·ã§ã³ã§ãã ã ããã€ã¹ã®å°ããªç»é¢ãç¡èŠããå Žåããã®ãœãããŠã§ã¢ã®äœ¿çšã¯ãä»ã®ã³ãã³ã ã©ã€ã³ãä»ããŠãµãŒããŒã«æ¥ç¶ããã®ãšäŒŒãŠããŸãã Blink Terminal ã¯èŠãç®ãçŽ æŽããããå€ãã®æ¢è£œã®ããŒãããããã«ã¹ã¿ãã€ãºããŠæ°ãããã©ã³ãã远å ããæ©èœãªã©ãç¬èªã®ããŒããäœæããæ©èœãåããŠããŸãã
ãªãã·ã§ã³3ïŒçºå° Linux
SSHã䜿çšããŠãµãŒããŒã«æ¥ç¶ããŸã Linux ããã¯ã³ãã³ãã©ã€ã³ã«ã¢ã¯ã»ã¹ããåªããæ¹æ³ã§ãããå€éšãµãŒããŒãšãããã¯ãŒã¯æ¥ç¶ãå¿ èŠã§ããããã¯å€§ããªé害ã§ã¯ãããŸããããå®å šã«ç¡èŠã§ãããã®ã§ã¯ãªãããã以äžã®ç¹ã«æ³šæããå¿ èŠããããŸãã Linux ãµãŒããŒãªãã
ããã«åœãŠã¯ãŸãå Žåã¯ãããã«äžæ©é²ããå¿ èŠããããŸãã ã¯ãéçºãããã¢ããªã±ãŒã·ã§ã³ã Apple App Store ã«å ¬éãããåã§ãã€ã³ã¹ããŒã«ã§ããç¬èªã®ãµãŒãã¹ã§ãã App Store ãã TestFlight ã¢ããªãã€ã³ã¹ããŒã«ãããã¹ã ã¢ããªã䜿çšã§ããŸãã TestFlight ã®ã¢ããªã§ã¯ãéãããæ°ã®ããŒã¿ ãã¹ã¿ãŒ (éåžžã¯æå€§ 10 人) ãéãããæéå ã§ã¢ããªãæäœã§ããŸãã ãã¹ã ã¢ããªã±ãŒã·ã§ã³ãããŠã³ããŒãããã«ã¯ãããã€ã¹ãããéåžžã¯ãã¹ã ã¢ããªã±ãŒã·ã§ã³éçºè ã® Web ãµã€ãã«ãããªã³ã¯ã«ç§»åããå¿ èŠããããŸãã
ã¢ã«ãã€ã³çºå£² Linux iSHãšå ±ã«
æ¢è£œã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã䜿çšããŠä»®æ³ãã·ã³ãèµ·åãããªãŒãã³ãœãŒã¹ã® TestFlight ã¢ããªã±ãŒã·ã§ã³ã§ã (å°ãåªåããã°ãä»ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãå®è¡ã§ããŸã)ã
éèŠãªç¹åŸŽïŒ å®éšçå¿çšã iSH ã¯çŸåšãã¹ã ã¢ããªã±ãŒã·ã§ã³ã§ãããããå®å®ããåäœãæåŸ ããªãã§ãã ããã TestFlight ã¢ããªã±ãŒã·ã§ã³ã«ã¯æéå¶éããããŸãã çŸåšã®ãã«ã㯠60 æ¥éããæç¶ããŸããã ããã¯ã60 æ¥åŸã«ç§ã¯é€å€ãããæ¬¡ã® iSH ãã¹ãã«ååå ããå¿ èŠãããããšãæå³ããŸãã ããã«ãiOS äžã®ãã¡ã€ã«ã䜿çšããŠãšã¯ã¹ããŒãããããGit ãã¹ãã«ã³ããŒããªãéãããã¹ãŠã®ãã¡ã€ã«ã倱ãããŸãã ã èšãæãããšïŒ ãããåŒãç¶ãæ©èœãããšã¯æåŸ ããªãã§ãã ããã ããªãã«ãšã£ãŠéèŠãªãã®ãã·ã¹ãã ã«å ¥ããªãã§ãã ããã å¥ã®å Žæã«ããã¯ã¢ããããŠãã ããã
iSHã®ã€ã³ã¹ããŒã«
ã€ã³ã¹ããŒã«ããå§ãã App Storeããã æ¬¡ã«iSHãã€ã³ã¹ããŒã«ããŸãã ç³ã蟌ã¿ãµã€ãããã AltStoreã䜿ã£ãã€ã³ã¹ããŒã«æ¹æ³ããããŸããã詊ããŠããŸããã ãŸãã¯ãææã®éçºè ã¢ã«ãŠã³ãããæã¡ã®å Žåã¯ãGitHub ãã iSH ãªããžããªãããŠã³ããŒãããŠèªåã§ã€ã³ã¹ããŒã«ã§ããŸãã
ãªã³ã¯ã䜿çšããŠãTestFlight ã¯ããã€ã¹ã« iSH ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããŸãã ä»ã®ã¢ããªã±ãŒã·ã§ã³ãšåæ§ã«ãç»é¢ã«ã¢ã€ã³ã³ã衚瀺ãããŸãã
ããã±ãŒãžç®¡ç
iSHã¯Alpine Linuxã§x86ãšãã¥ã¬ãŒã¿ãå®è¡ããŸã LinuxAlpineã¯éåžžã«å°ããªãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ããµã€ãºã¯5MBæªæºã§ããAlpineã䜿ãã®ã¯åããŠã ã£ãã®ã§ããã®ãããã«ããç ©ãããã®ã§ã¯ãªãããšå¿é ããŠããŸããããå®éã«ã¯ãšãŠãæ°ã«å ¥ããŸããã

Alpine ã¯ããã±ãŒãž ãããŒãžã£ãŒã䜿çšããŸã , ãã㯠apt ã pacman ãããç°¡åã§ãã
ããã±ãŒãžã®ã€ã³ã¹ããŒã«æ¹æ³:
apk add packageããã±ãŒãžãåé€ããæ¹æ³:
apk del packageä»ã®ã³ãã³ããšæ å ±ãèŠã€ããæ¹æ³:
apk --helpããã±ãŒãžãããŒãžã£ãŒã®ã¢ããããŒã:
apk update
apk upgradeããã¹ããšãã£ã¿ã®ã€ã³ã¹ããŒã«
Alpine ã®ããã©ã«ãã®ããã¹ã ãšãã£ã¿ãŒã¯ Vi ã§ãããç§ã¯ Vim ã®æ¹ã奜ããªã®ã§ããããã€ã³ã¹ããŒã«ããŸããã
apk add vimå¿ èŠã«å¿ããŠãNano ãŸã㯠Emacs ãã€ã³ã¹ããŒã«ã§ããŸãã
ã·ã§ã«äº€æ
ããªãã®ããšã¯ç¥ããŸããããç§ã«ã¯å¿ èŠã§ãã ã ä»ã®äººã奜ã ãŸã㯠ã ããããã¢ã«ãã€ã³ã¯ã¢ãã·ã¥ã䜿çšããŠããŸãïŒ ã¢ãã·ã¥ã¯ããã·ã¥ ã·ã§ã«ã®ãã©ãŒã¯ã§ãããããã·ã¥ ã·ã§ã«èªäœãå ã®ã¢ãã·ã¥ã®ãã©ãŒã¯ã§ããããŸã㯠ã 圌女ã®åªå äºé ã¯ã¹ããŒãã§ãã ç§ã¯ãã¹ããŒããç ç²ã«ããŠãç§ã倧奜ãã§ç¥ã£ãŠããçµã¿èŸŒã¿ã®ãªãŒãã³ã³ããªãŒããè²ãVim ã㌠ã³ã³ãããŒã«ãæ§æãã€ã©ã€ããåªå ããããšã«ããŸããã
éã®èšçœ®ïŒ
apk add fishãªãŒãã³ã³ããªãŒããš man ããŒãžãåãã Bash ãå¿ èŠãªå Žåã¯ãããããã€ã³ã¹ããŒã«ããŸãã
apk add bash bash-doc bash-completionAlpine ã®æå°éã®ã€ããªãã®ãŒã¯ãéåžžãä»ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ããã±ãŒãžåãããŠããäžéšã®ããã°ã©ã ãããã€ãã®å°ããªããã±ãŒãžã«åå²ãããããšãæå³ããŸãã ãŸããåžæã©ããã«ã·ã¹ãã ãã«ã¹ã¿ãã€ãºããŠãµã€ãºãçž®å°ã§ããããšãæå³ããŸãã
Bash ã®ã€ã³ã¹ããŒã«ã®è©³çްã«ã€ããŠã¯ã次ãåç §ããŠãã ããã .
ããã©ã«ãã®ã·ã§ã«ã倿Žãã
Fish ãã€ã³ã¹ããŒã«ããåŸã次ã®ããã«å
¥åãããšãäžæçã« Fish ã«åãæ¿ããããšãã§ããŸãã fish ãããŠã·ã§ã«ã«å
¥ããŸãã ããããç§ã¯fishãããã©ã«ãã®ã·ã§ã«ãšã³ãã³ãã«ãããã®ã§ã chshä»ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§äœ¿çšãããã®ã¯æ©èœããŸããã§ããã
ãŸããfish ãã©ãã«ã€ã³ã¹ããŒã«ãããŠãããã調ã¹ãŸãã
which fishç§ãåŸããã®ã¯æ¬¡ã®ãšããã§ãã
/usr/bin/fish 次ã«ããã°ã€ã³ã·ã§ã«ãfishã«å€æŽããŸãã 䜿ãããããšãã£ã¿ã䜿çšã§ããŸãã åå¿è
ã®å Žåã¯ãNano ã (ã³ãã³ãã䜿çšããŠ) ã€ã³ã¹ããŒã«ããŠãã ããã apk add nano) èšå®ãã¡ã€ã«ãç·šéããCTRL+X ã§ä¿åãã確èªããŠçµäºã§ããããã«ããŸãã
ããããç§ã¯ Vim ã䜿çšããŸãã:
vim /etc/passwdç§ã®æåã®è¡ã¯æ¬¡ã®ãããªãã®ã§ãã:
root:x:0:0:root:/root:/bin/ashéãããã©ã«ãã®ã·ã§ã«ã«ããã«ã¯ããã®è¡ã次ã®ããã«å€æŽããŸãã
root:x:0:0:root:/root:/usr/bin/fish次ã«ããã¡ã€ã«ãä¿åããŠçµäºããŸãã
ã·ã§ã«ãã¹ã倿ŽããŠããã«äœ¿ããããã«ããè¯ãæ¹æ³ãããã¯ãã§ãããç§ã¯ç¥ããªãã®ã§ãã¢ããªãã©ãŠã¶ã«æ»ã£ãŠã·ã§ã«ã匷å¶çµäºããå®å šã®ããã«iPadãã·ã£ããããŠã³ããŠåèµ·åããããšããå§ãããŸãã iPhoneiSHãå床éããšããAlpineãžããããïŒããšããã¡ãã»ãŒãžãšAPKããã®èµ·åã«é¢ããæ å ±ã«å ããŠãæšæºã®fishãã°ã€ã³ã®ãŠã§ã«ã«ã ã¡ãã»ãŒãžã衚瀺ãããŸãã ãã¬ã³ããªãŒãªã€ã³ã¿ã©ã¯ãã£ãã·ã§ã«ãfishãžããããã äžæ³ïŒ

Python ãš pip ã®ã»ããã¢ãã
远å ããããšã«ããŸãã (ããŒãžã§ã³ 3.x)ãã³ãŒããæžãããã ãã§ãªããããã€ãã® Python ããã°ã©ã ã䜿çšããããã§ããããŸãã ã€ã³ã¹ããŒã«ããŸããã:
apk add python3Python 2.x ã¯å€ããã®ã§ãããã€ã³ã¹ããŒã«ã§ããŸãã
apk add pythonpip ãšãã Python ããã±ãŒãž ãããŒãžã£ãŒãã€ã³ã¹ããŒã«ããŠã :
python3 -m ensurepip --default-pipããã±ãŒãžãããŒãžã£ãŒã®ã€ã³ã¹ããŒã«ãšèšå®ã«ã¯æéããããã®ã§ããã®ãŸãŸåŸ ã¡ãŸãã
ãã®åŸããããã¯ãŒã¯çµç±ã§ãã¡ã€ã«ã転éããããã®ããŒã«ãããŠã³ããŒãã§ããŸãã :
apk add curlããã¥ã¢ã«ãèªã
Fish ã¯ãããã¥ã¢ã« ããŒãžã«åºã¥ããçµã¿èŸŒã¿ã®ãªãŒãã³ã³ããªãŒãã䜿çšããŸãã ä»ã®ã³ãã³ãã©ã€ã³ãŠãŒã¶ãŒãšåæ§ã«ãç§ã¯ããã¥ã¢ã«ã䜿çšããŸã man, ãããã¢ã«ãã€ã³ã«ã¯æèŒãããŠããŸããã ããã§ã¿ãŒããã«ãã±ãããã«ã§ã€ã³ã¹ããŒã«ããŸãã :
apk add man man-pages less less-doc人éã«å ããŠãç§ã¯çŽ æŽããããã®ã䜿ããŸã ãç°¡çŽ åãããã³ãã¥ããã£äž»å°ã®ããã¥ã¢ã« ããŒãžãæäŸããŸãã
pipã䜿çšããŠã€ã³ã¹ããŒã«ããŸããïŒ
pip install tldr ããŒã tldr æ°ããããŒãžã®ãªã¯ãšã¹ããçºçãããšãWeb ã«æ¥ç¶ããŠããŒãžãååŸããŸãã ã³ãã³ãã®äœ¿ç𿹿³ãç¥ãå¿
èŠãããå Žåã¯ã次ã®ããã«èšè¿°ã§ããŸãã tldr curl å¹³æãªè±èªã§ã®èª¬æãšãã³ãã³ãã®äœ¿ç𿹿³ã®è¯ãäŸã衚瀺ãããŸãã
ãã¡ããããã®ã€ã³ã¹ããŒã«äœæ¥ã¯ãã¹ãŠæ¬¡ã䜿çšããŠèªååã§ããŸãã ãŸãã¯ã€ã³ã¹ããŒã« ã¹ã¯ãªããã§ãããå®éã«ã¯ããã¯ãããŒãºã«åãããŠæå°éã®ã€ã³ã¹ããŒã«ãæ£ç¢ºã«ã«ã¹ã¿ãã€ãºãããšãã Alpine ã®ã€ããªãã®ãŒã«å®éã«ã¯å¯Ÿå¿ããŠããŸããã ããã«ããããæéãããããŸãããã
è¿œå æ å ±
iSH Wiki ã«ã¯ãããšããããŒãžããããŸãã" çŸåšå®è¡ãããŠããããã±ãŒãžã«é¢ããã¬ããŒãã衚瀺ãããŸãã ã¡ãªã¿ã«ã次ã®ããã«ãªããŸãã .
å¥ã® wiki ããŒãžã§ãã®æ¹æ³ã説æãããŠããŸã iOS ãã¡ã€ã« ã¢ããªããã ããã¯ããã¡ã€ã«ãç§»åããã³ã³ããŒããæ¹æ³ã® XNUMX ã€ã§ãã
Git ãã€ã³ã¹ããŒã«ããããšãã§ããŸã (ã¯ã! apk add git ) äœæ¥å
容ããªã¢ãŒã ãªããžããªã«ããã·ã¥ããããSSH çµç±ã§ãµãŒããŒã«è»¢éããŸãã ãããŠãã¡ãããGitHub ããåªãããªãŒãã³ãœãŒã¹ ãããžã§ã¯ããããã€ã§ãããŠã³ããŒãããŠå®è¡ã§ããŸãã
iSH ã®è©³çްã«ã€ããŠã¯ã次ã®ãªã³ã¯ãåç §ããŠãã ããã
åºåã®æš©å©ã«ã€ããŠ
ãŽãã£ã·ã æäŸ ãŸã㯠Windowsã ç¬å çã«äœ¿çšããŸã ãç¬èªèšèšã®æé«ã®ãµãŒã㌠ã³ã³ãããŒã« ããã«ã§ããããã·ã¢ãš EU ã§æé«ã®ããŒã¿ ã»ã³ã¿ãŒã® XNUMX ã€ã§ãã æ¥ãã§æ³šæããŠãã ããïŒ
åºæïŒ habr.com
