ãã ããããŒã«ã®äœæ¥ã«æ倧80ïŒ ãè²»ãããŠããå Žåã¯ãæéãç¡é§ã«ãããäœæ¥ãåã³ãããããããšã確èªããããšããå§ãããŸãã ãã®èšäºã§ã¯ãç§ãå人çã«æ¯æ¥äœ¿çšããŠããããŒã«ãšãã³ã³ãœãŒã«ãç¹ã«ãªã¢ãŒããµãŒããŒãæäœããéã«ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒããã³å€ãã®å Žåãçç£æ§ïŒãåäžãããæ¹æ³ã«ã€ããŠå°ãã話ããããšæããŸãã
SSHã®åé¡
sshãä»ããŠãªã¢ãŒããµãŒããŒãæäœããå Žåãã€ã©ã€ã©ããå¯èœæ§ã®ãããã®ãå€æ°ãããŸãããäž»ã«2ã€ã®åé¡ããããæåã®åé¡ã¯sshã§æ ¹æ¬çã«è§£æ±ºã§ããŸããã
- åŸåŸ©é 延ãé·ãïŒ> 100ããªç§ïŒãšããŠãŒã¶ãŒå ¥åã¯é¡èãªé 延ã§è¡šç€ºãããŸããã¢ãã€ã«ã€ã³ã¿ãŒãããããšããžïŒåŸ ã¡æé1000ããªç§ïŒã§äœ¿çšãããšãä»äºã¯æ·åã®ããã«ãªããŸãã
- ãã±ããã®é ä¿¡ã§äžæçãªåé¡ïŒæ°åïŒãçºçããå Žåãæžã蟌ã¿ã倱æããŠæ¥ç¶ãåæãããå¯èœæ§ããããŸãïŒãã€ããåæãããŸãã
ssh by-designã¯åãªããã€ãã®ãã©ã³ã¹ããŒãã§ãããæ¢åã®ã¢ããªã±ãŒã·ã§ã³ã¯ãã®åäœã«äŸåããŠãããããæåã®åé¡ã¯è§£æ±ºã§ããŸããã sshã¯ãã®ãã€ãã¹ããªãŒã ã解éããããšããªããããäºæž¬å ¥åãå®è¡ã§ããŸããã å人çã«ã¯ããã®åé¡ã¯æãé¢é£æ§ããããŸãããšãŒããããšã¢ã¡ãªã«ã®ãµãŒããŒã§äœæ¥ããå¿ èŠãããããã§ãã2çªç®ã®ã±ãŒã¹ã§ã¯ãé 延ã¯çŽ200ããªç§ã§ãããå°ãªããšãéåéä¿¡ãŸãã¯ãã®ãããªãã®ãçºæããããŸã§ã¯æ ¹æ¬çã«å埩ã§ããŸããã ç§ãã¡ã®ç¶æ³ã§ã¯2çªç®ã®åé¡ã¯æ¯èŒçãŸãã§ããããããã¯ãŒã¯é害ãçºçããå Žåã«ãã¹ãŠã®æ¥ç¶ãå確ç«ããã®ã¯äžå¿«ã§ãïŒäœããã®çç±ã§ç»é¢ã§èµ·åããªãã£ãå Žåã¯ãããããããã¢ããªã±ãŒã·ã§ã³ãåèµ·åããŸãïŒ
解決ç-moshïŒã¢ãã€ã«ã·ã§ã«ïŒ
äžèšã®åé¡ã®è§£æ±ºçã¯éåžžã«æ¥é²çã§ã-mosh ïŒ mosh.mit.edu ïŒã¯ãUDPã§åäœããããã®ãŸãŸããã€ãã転éããSSHã§äœ¿çšãããã¢ãããŒãã®ä»£ããã«ç»é¢å·®åãéä¿¡ããå¥åã®ã¯ã©ã€ã¢ã³ããµãŒããŒã·ã¹ãã ã§ãã æåã®æ¥ç¶ã¯sshãä»ããŠè¡ãããŸãããsshã¯mosh-serverã®ã¿ãéå§ãããã®åŸçµäºããŸãã ãã®ãããmoshã䜿çšããŠãµãŒããŒã«æ¥ç¶ããã«ã¯ãSSHã䜿çšãããããå°ãæéãããããŸãã
sshã§ã¯ãªãmoshã䜿çšããã«ã¯ãã³ã³ãã¥ãŒã¿ãŒã«moshã¯ã©ã€ã¢ã³ããã€ã³ã¹ããŒã«ãããªã¢ãŒããã¹ãã«mosh-serverãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã äžè¬ã«ãã·ã¹ãã å šäœã«ã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸãã-ããŒã¢ã³ã¯ãŠãŒã¶ãŒãšããŠæ©èœããæ¥ç¶æã«ãµãŒããŒãã€ããªãæå®ã§ããŸãïŒäŸïŒmosh --server / home / yuriy / bin / mosh-server my-server-hostnameïŒã
moshã¯udpãä»ããŠç»é¢ã®å·®åãéä¿¡ãããããtcp / ipãä»ããéåžžã®sshãšã¯æ§è³ªã倧ããç°ãªããŸãã
æ¥ç¶ãåæãããããšã¯ãããŸãã
ãæ¥ç¶ãã¯ãããŸããã ãããã¯ãŒã¯æ¥ç¶ã埩å ããããšãã³ã³ãœãŒã«ã®çŸåšã®ç¶æ ãåã³è¡šç€ºããå§ããŸãã ãµãŒããŒãžã®æ¥ç¶æ¹æ³ãå€æŽããããšãã§ããŸããããšãã°ãwi-fiã¢ã¯ã»ã¹ãã€ã³ããå€æŽãããšããã¹ãŠãåŒãç¶ãæ©èœããŸãã ããã¯ãäžå®å®æ§ã®ã¢ãã«ã§ããã¢ãã€ã«ã€ã³ã¿ãŒãããã§VPNã䜿çšããå Žåã«ç¹ã«äŸ¿å©ã§ãã
ããŠã¹ãã€ãŒã«ã§ã¹ããŒãªãŒãã¹ã¯ããŒã«ããæ©èœã¯å¿ããŠãã ãã
moshã¯ãã¹ãŠãå¥ã®ç»é¢ã«æç»ããæ®ããéä¿¡ããã«åã®ç¶æ ãšã®éãã®ã¿ã衚瀺ãããããããŒã«ã«ã¹ã¯ããŒã«ã¯æ©èœããŸããã ã¹ããŒãªãŒãå°ãªããšãã©ããã«ä¿åããã«ã¯ãscreenãŸãã¯tmuxã䜿çšããå¿ èŠããããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã ããã€ãã®ãã¡ã€ã«ã䜿çšããŠãããŠã¹ãã€ãŒã«ãæ©èœãããããšã¯ã§ããŸãããæèŠã¯äŸç¶ãšããŠãééã£ãŠããŸããã
é«é 延ã§ã¯ãäºæž¬ãšã³ãŒãæå¹ã«ãªããŸã
ããšãã°ãEDGEãä»ããŠSSHã䜿çšããå Žåãç§ã¯æ¬åœã«ããªããenæããŸãã:)ã ãã®å Žåãmoshã¯çŸåšåäœããŠããã³ã³ããã¹ãã§ãç解ãã§ããã»ãšãã©ã®å Žåãå°ãªããšããµãŒããŒããäœããæ¥ãåã§ãã£ãŠãå ¥åãé©åã«è¡šç€ºã§ããŸãã 次ã®å³ã§ã¯ããäžç·ä»ããããã¹ãã¯ãŠãŒã¶ãŒãå ¥åããããã¹ãã§ããããµãŒããŒããã®ãšã³ãŒïŒã»ãšãã©ã®å ŽåããŠãŒã¶ãŒãå ¥åããããã¹ãã®ã¿ïŒã¯ãŸã åä¿¡ãããŠããŸããã ãŸããã¬ã€ãã³ã·ãé«ãããªãå ŽåïŒããšãã°ã50ããªç§ããã§ã«ç®ã§ç¢ºèªã§ããå ŽåïŒã§ããmoshã¯å ¥åãããããã¹ãããµãŒããŒããåã«è¿ãããç¬éãã確信ãããŠããå Žåãå³åº§ã«ãŠãŒã¶ãŒå ¥åã衚瀺ããããšããŸãã ãããã£ãŠã50ã100ããªç§çšåºŠã®ã¬ã€ãã³ã·ã®å Žåããªã¢ãŒãã³ã³ãœãŒã«ã§ã®äœæ¥ã¯ããŒã«ã«ã®äœæ¥ãšã»ãšãã©åºå¥ã§ããªããªããŸãã äžèšã®ããã«ãã¹ããŒãªãŒãèŠãæ©äŒãé€ããŸãã
![](https://habrastorage.org/files/0e6/1bf/149/0e61bf14937a486cbeb72a6bf13166bd.png)
ããããã¹ãŠã¯ããµãŒããŒãã³ã³ãœãŒã«ããã®åºåããã¬ã³ããªã³ã°ãããç»é¢ã®çŸåšã®ç¶æ ãã¡ã¢ãªã«ä¿æãããšããäºå®ã«ããå®çŸãããŸãã moshã®ãã©ãã«ãŒã«ã¯ãå±¥æŽãä¿åã§ããããã«ããããã®ææ¡ããããŸãããããã£ãŠãscreen / tmuxã®åœ¢åŒã§è¿œå ã®ã¬ã€ã€ãŒãæåŠã§ããŸããããããŸã§ã®ãšãããèè ã¯ãã®æ¹åã§äœãããŠããŸããã
tmuxãšã¯äœãããªãã¹ã¯ãªãŒã³ãããåªããŠããã®ããèŠãŠãããŸãããã
ç»é¢ã®åé¡
æ®å¿µãªãããç§ã¯ç»é¢ã®å°é家ã§ã¯ãªãã®ã§ãåé¡ã2ã€ã ãæããããšãã§ããŸã-ç»é¢ãåçŽã«åå²ããããã®ãµããŒãã®æ¬ åŠïŒããã©ã«ãã§ã¯æ°Žå¹³ã®ä»£ããã«ïŒãšéåžžã«å€ãã³ãŒãããŒã¹ã®ããã«äžè¬çã«é ãéçº ç»é¢ã®äœ¿ãããããæãŸããŠããŸããã§ããã ç»é¢4.2ã®æ°ããããŒãžã§ã³ã§ã¯åçŽæ¹åã®åé¢ã®ãµããŒããèšé²ãããŠããŸãããããã®æãŸã§ã«ç§ã¯ãã§ã«ããã䜿çšããŠããŸããã§ããã äžè¬ã«ãsshãšåæ§ãscreenã¯äŸç¶ãšããŠäºå®äžã®æšæºã§ãããå²åŒããããšã¯ã§ããŸããã
tmuxãšç»é¢äžã®å©ç¹
端æ«ãã«ããã¬ã¯ãµïŒTerminal MUltipleXorïŒã®ããšãèããããšããªãå Žåã¯ãåã®æ®µèœããããã«ããå¯èœæ§ããããŸãã ãããã£ãŠããããäœã§ãããã«ã€ããŠå°ãã話ãããŸãã
sshã§é·æéå®è¡ãããæäœãéå§ãããããæ¥ç¶ãåæãããç¶æ³ãæ³åããŠãã ããã ãŸãã¯ããã®ã³ãã³ãã¯ãtrueã®éããªã®ã§ãå®äºããã®ãåŸ ã¡ãããããŸããã å®è¡ããŒã¢ã³ãå®è¡ããŸãã å®äºããŸãããã ããã©ã«ãã§ã¯ã察話åã»ãã·ã§ã³ã¯ãåæããããšãã®ã»ãã·ã§ã³ãããã¹ãŠã®ããã»ã¹ã«SIGHUPã·ã°ãã«ãéä¿¡ããããã»ã¹ã¯çµäºããŸãã
ãã®åé¡ã¯ããŸããŸãªæ¹æ³ã§è§£æ±ºã§ããŸããããšãã°ãnohupã³ãã³ãã䜿çšããŠãåºåããã¡ã€ã«ã«ãªãã€ã¬ã¯ãããSIGHUPãç¡èŠããŸãã ããããããèå³æ·±ã解決çã¯ãscreenãtmuxãªã©ã®ç«¯æ«ãã«ããã¬ã¯ãµã䜿çšããããšã§ãã éåžžãæåã®éå§æã«æ°ããã»ãã·ã§ã³ãéå§ãããããã§äœæ¥ãè¡ãããšãã§ããŸãããã®ã»ãã·ã§ã³ã¯ãsshæ¥ç¶ãšå¯æ¥ã«çµã³ã€ããŠããŸããã ããšãã°ãssh-connectionã§ã¿ããéãããããCtrl + BDããæŒãïŒã€ãŸããæåã«Ctrl + BãæŒãã次ã«CtrlãæŸããŠDãæŒãïŒãšåæã§ããŸããtmuxå ã§å®è¡ãããŠãããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã¯å€æŽãããŸããã 次ã«ããtmux attachããŸãã¯ã-rDããªã©ã®ãã©ã°ãå«ãç»é¢ãå ¥åããŠããã®ã»ãã·ã§ã³ã«åæ¥ç¶ã§ããŸãã
![](https://habrastorage.org/files/888/d22/609/888d226090d84b01bbe19ab51e195d53.png)
äžè¬ã«ãtmuxã¯ãããŠãŒã¶ãŒãã¬ã³ããªãŒã«èŠããããã«äœ¿çšã§ããéåžžã«èå³æ·±ããã®ããµããŒãããŸãã
- äžèšã®äŸã§ã¯ãããšãã°Ctrl + BïŒsplit-verticalã䜿çšããŠãç»é¢ãåçŽã«åå²ããŸãã æ®å¿µãªããããã®ãããªåå²ç»é¢ããµããŒãããæ°ããããŒãžã§ã³ã®ç»é¢ã¯ããŸã ã©ãã§ãèŠã€ãããŸããã
- æ¢åã®ã»ãã·ã§ã³ã«æ°åæ¥ç¶ããæ©èœ-tmux attachã¯ãä»ã®æ¥ç¶ãŠãŒã¶ãŒããã¹ããŒãããã«æ¢åã®ã»ãã·ã§ã³ã«æ¥ç¶ããŸã
- ãªãã·ã§ã³ã§ããŠã¹ã¢ãŒããèšå®ããŠãããŠã¹ãã€ãŒã«ã§å±¥æŽãå·»ãæ»ã
- sudoãä»ããŠå¥ã®ãŠãŒã¶ãŒã®ç»é¢ã«æ¥ç¶ããããšãããšãã«ãã¹ã¯ãªããããå®è¡ããå¿ èŠã¯ãããŸãã
ã»ãšãã©ã®å Žåãäžèšã®ãã¹ãŠã®ããšã¯ç»é¢ã®ãã¬ãŒã ã¯ãŒã¯å ã§è¡ãããšãã§ããŸããtmuxã¯ããšããšãŠãŒã¶ãŒã«ãšã£ãŠããã·ã³ãã«ã«ãªãããã«èšèšãããŠãããããå€ãã®æ©èœãåããŠããŸãã çªç¶iterm2ã䜿çšããå Žåã¯ãtmuxãšã®çµ±åã®ãµããŒããçµã¿èŸŒãŸããŠããŸããããããè³æã®è°è«ã«ãªããŸãã
ãããŠæåŸã«ãéã«ã€ããŠè©±ããŸããã-ãã¬ã³ããªãŒãªã€ã³ã¿ã©ã¯ãã£ãã·ã§ã«
bashã®æ¬ ç¹
æ£çŽãªãšãããbashãã©ããªåšå³ãæã£ãŠããããèšãã®ã¯é£ããã§ãã bashã®æ倧ã®å©ç¹ã¯ãæãäžè¬çãªã·ã§ã«ã§ãããã»ãšãã©ã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãmac os xãããã«ã¯cygwinã«ãããã©ã«ãã§ã€ã³ã¹ããŒã«ãããããšã§ãã ãŸããbashã¯posixäºæã§ããã€ãŸããã·ã¹ãã äžã§/ bin / shã/ bin / bashã«çœ®ãæããããšãã§ãããäœãå£ããŸãããã ãã ããbashã®ã€ã³ã¿ã©ã¯ãã£ããªæ©èœã¯ãzshã®äººã®å¥ã®äžè¬çãªç«¶åä»ç€Ÿããã¯ããã«é ããŠãããbashã«ã¯æ£ããããã³ãããããããŸããã bashãšzshã®äž¡æ¹ã®ã»ãšãã©ã®æ©èœã¯ããã©ã«ãã§ãªãã«ãªã£ãŠããŸãã ãããã®ã·ã§ã«ã®ãã¹ãŠã®æ©èœãå©çšããã«ã¯ãã»ããã¢ããã«ããªãã®æéãè²»ããããããšãã°oh-my-zshãªã©ã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããå¿ èŠããããŸãã
21äžçŽã®ã€ã³ã¿ã©ã¯ãã£ãã·ã§ã«-é
fishïŒäœ¿ããããã€ã³ã¿ã©ã¯ãã£ãã·ã§ã«ïŒãã©ã®ããã«æ©èœããããäžåºŠç¢ºèªããã°ååã§ããä»ã®ãã®ã¯äœ¿ããããªãã§ããã:)ã äžè¬ã«ãfishã¯POSIXäºæã§ã¯ãªããåãªã察話åã®ã·ã§ã«ã§ãã ã€ãŸãã/ bin / shãŸãã¯/ bin / bashçšã«èšè¿°ãããã¹ã¯ãªããã¯ãããã䜿çšããŠå®è¡ã§ããŸããã ã·ã§ã«ã®æ§æã¯éåžžãšå°ãç°ãªããŸãã以äžã®äŸãåç §ããŠãã ããã
äž»ãªæ©èœïŒ
- å ¥åãããšããã®å±¥æŽããã®ã³ãã³ãããã³ãã¡ã€ã«åã®ãªã¢ã«ã¿ã€ã ã§ã®èªåè£å®
- ãããããªãŒä»ãã-ç®±ããåºããŠããã«ãã»ãšãã©ã®ããŒã ã«ã¹ããŒããªèªåã¢ããªã³ããããgit_promptãªã©ããããŸãã
- å·Šå³ã®ããã³ããã®ååšããããã®ãµã€ãºã®æ£ããèšç®ãããã³ããã¯PS1ããã®è¡ã§ã¯ãªãé¢æ°ã«ãã£ãŠèšå®ãããŸã
- ãã£ã¬ã¯ããªã®èªåå±¥æŽ-Alt + Shift +å·Šå³ç¢å°ã䜿çšãããšãééçã«åã®ãã£ã¬ã¯ããªã«æ»ã£ãŠæ»ãããšãã§ããŸã
- ãä¿®æ£ããããæ§æã¯ãfiãesacã$ïŒãbackticsïŒ `cmd`ïŒããã³ãã®ä»ã®å€ãã®ããš-é©åãªãã³ãããããŸã-ããã«ãããéã¯éPOSIXã·ã§ã«ã«ãªããŸããããã¯äžè¬ã«çŸåŸ³ã§ã¯ãããŸããã¯
- ç¥èªã®ãµããŒã-ããšãã°ãç¥èªãst-> git statusããäœæããããšã«ããããstããå ¥åãããšããã«ãgit statusãããå ¥åãããŸã-ãã®ããã«èªåè£å®ãæ©èœããããªãã®åšãã®äººã¯ç解ã§ããªãç¥èªãæããŸãã
- <tab>ã«ããèªåè£å®ã®æ¹å-ãã³ããã®ãã®ã ãã§ãªãããã®ã¿ã€ãã衚瀺ãããŸãïŒããšãã°ããã©ã³ããšã¿ã°ã¯git checkoutã§å¥ã ã«è¡šç€ºãããŸãïŒ
ãŸããããããªæ¹åç¹ããããŸãã
- ããã°ã©ã ã®åºåãæ¹è¡ã§çµãã£ãŠããªããŠããããã³ããã¯æ£åžžã«è¡šç€ºãããå£åããŸããã
- ãã¡ã€ã«ãžã®æ£ãããã¹ã«äžç·ãåŒã
- ééã£ãã³ãã³ããèµ€ã§è¡šç€º-EnterããŒãæŒããã«ééã£ãã³ãã³ãåãå ¥åããããšãããããŸãã
- 2> |ã®åœ¢åŒã®æ§æã䜿çšããŠstderrããã€ãã«ç°¡åã«ãªãã€ã¬ã¯ãããæ©èœ ãŸãã¯^ |
- ãã¹ãŠãé¢æ°ã§ããããšã€ãªã¢ã¹ã¯ãããŸãããé¢æ°ã®èªåããŒãã¯ãµããŒããããŠããŸã-fishãããŒãããŠã䜿çšå¯èœãªãã¹ãŠã®é¢æ°ãã¡ã¢ãªã«èªã¿èŸŒãŸããããã§ã¯ãªããå®å šãªèšå®ãåèªã¿èŸŒã¿ããã«ãã®å Žã§é¢æ°ã³ãŒããå€æŽã§ããŸã
- ããŒã«ã«å€æ°CMD_DURATION-æåŸã®ã³ãã³ãã®å®è¡æéïŒããªç§ïŒ
- ããã©ã«ãã§çŸåšã®ãã£ã¬ã¯ããªãžã®ççž®ãã¹-æåŸã®ãã£ã¬ã¯ããªãé€ãããã¹ã®åã³ã³ããŒãã³ãã®æåã®æåã䜿çšãããŸãïŒããšãã°ã/ usr / local / bin /-> / u / l / bin /ïŒ
CMD_DURATIONãšgit_promptã䜿çšããæ£ããããã³ããã®äŸïŒ
$ cat ~/.config/fish/functions/fish_right_prompt.fish function fish_right_prompt if test $status = 0 echo -n (set_color green) else echo -n (set_color red) end echo $CMD_DURATION (set_color normal)ms (set_color yellow) (__fish_git_prompt "%s") (set_color normal) end
if-expressionsã®æ§æã«æ³šæããŠãã ãããã·ã§ã«ãããPythonã«äŒŒãŠããŸãã æ¬åŒ§å ã®åŒã¯ãã³ãã³ãã®çµæãæ¿å ¥ãããããšãæå³ããŸã-bashã§ã¯$ïŒ...ïŒãšããŠèšè¿°ãããéã§ã¯æåã®ãã«èšå·ã¯å¿ èŠãããŸããã
ããã¯æ¬¡ã®ãããªãã®ã§ãã
![](https://habrastorage.org/files/474/9e9/8ea/4749e98ea635432089cfb510af3b20e4.png)
å³åŽã®ããã³ããã«ã¯ãã³ãã³ãã®å®è¡æéãããªç§åäœã§è¡šç€ºãããã³ãã³ããæåããå Žåã¯ç·è²ããšã©ãŒãçºçããå Žåã¯èµ€è²ã§è¡šç€ºãããŸãã çŸåšã®ãã©ã³ããããå Žåã¯ãé»è²ã§è¡šç€ºãããŸãã
moshãtmuxãfishã®çµ±åãçµè«
tmuxãšfishãäžç·ã«äœ¿çšãããšã2ã€ã®åé¡ãçºçããå¯èœæ§ããããŸããã©ã¡ããå°ãäžå¿«ã§ãããç°¡åã«è§£æ±ºã§ããŸãã
stderrããã®åºåãæ¶ããã -github.com/fish-shell/fish-shell/issues/2115-ã¯ãåã«ãfishãã§ã¯ãªããfish 2>ïŒ1ããå®è¡ããããšã§è§£æ±ºãããŸãã
ããã©ã«ãã§ã¯ãtmuxã¯$ TERMç°å¢å€æ°ãscreenã«èšå®ããŸããã256è²ã¢ãŒãããµããŒãããŠããããã16è²ã¢ãŒãã§ãã©ãŒã«ããã¯ãã代ããã«éåžžã®éãååŸããã«ã¯ããexport TERM = screen-256colorãç°å¢å€æ°ãèšå®ããå¿ èŠããããŸã
ãŸããéã§å³ããã³ããã䜿çšããå Žåãããã³tmuxã§ãŠã£ã³ããŠãåçŽã«åå²ããå Žåãmoshã®ã¯ã©ã€ã¢ã³ãã¯é«éå ¥åäžã«å³å¢çç·ãã·ãããå§ããå¯èœæ§ããããæç»æã«äžæçãªã¢ãŒãã£ãã¡ã¯ãã«ã€ãªãããŸãã ããã¯ãmoshãtmuxã®ããã«ãåºåããã¬ãŒã ã®äœçœ®ãããã³éã®å³ããã³ããã®äœçœ®ãåºå®ãããŠããããšãç解ããŠããªããããæ®ãã®ããã¹ããšãšãã«å³ã«å ¥åãããšãã«ããããã·ããããŸãã
åèšïŒäžèšã®ãã¹ãŠã®ããŒã«ã¯éåžžã«æ°ãããéåžžã®ssh + screen + bashãã³ãã«ãšåãç¶æ ã«ã¯ãŸã 磚ãããŠããŸããããæéãçµã€ã«ã€ããŠéçºè ã¯ãŠãŒã¶ãŒããã®ãã£ãŒãããã¯ãèæ ®ããä»ã®ãæ°ãããããŒã«ãšã®çµ±åãæ¹åããŸãã
äžè¬ã«ãmosh + tmux + fishãã³ãã«ã¯ãå€ãã®æ°ãããã®ãäœæããã«ããªã¢ãŒãã³ã³ãœãŒã«ã§ã®äœæ¥ã«é¢é£ããå°ããªïŒãããŠããã§ã¯ãªãïŒå€ãã®åé¡ã解決ããŸããã 説æããåããŒã«ã®å€æ°ã®å°ãããªããã䟿å©ã§äŸ¿å©ãªæ©èœã¯ãèªåã§è©ŠããŠã¿ã䟡å€ãããããã«æããŸãã