{"id":10006252,"date":"2022-08-21T00:48:24","date_gmt":"2022-08-20T16:48:24","guid":{"rendered":"https:\/\/ityet.com\/?p=10006252"},"modified":"2022-08-21T00:48:24","modified_gmt":"2022-08-20T16:48:24","slug":"%e7%94%a8go%e8%af%ad%e8%a8%80%e7%bc%96%e5%86%99%e7%9a%84%e5%9f%ba%e4%ba%8eweb%e7%9a%84%e8%bf%9c%e7%a8%8bterminal","status":"publish","type":"post","link":"https:\/\/itmax.cn\/?p=10006252","title":{"rendered":"\u7528go\u8bed\u8a00\u7f16\u5199\u7684\u57fa\u4e8eweb\u7684\u8fdc\u7a0bterminal"},"content":{"rendered":"<h2>1. \u4ecb\u7ecd<\/h2>\n<p>simple-web-terminal\u662f\u4e00\u4e2a\u7528go\u8bed\u8a00\u548cjavascript\u7f16\u5199\u7684\u8fd0\u884c\u5728\u6d4f\u89c8\u5668\u7684web\u5e94\u7528\uff0c\u540c\u65f6\u652f\u6301windows,mac,linux\u7b49\u5e73\u53f0\uff0c\u6211\u4eec\u53ef\u4ee5\u7528\u5b83\u901a\u8fc7\u6d4f\u89c8\u5668\u5728\u670d\u52a1\u5668\u6267\u884cshell\uff0c\u4e0a\u4f20\u4e0b\u8f7d\u6587\u4ef6\u3002<\/p>\n<p>\u4ed3\u5e93\u94fe\u63a5: <a href=\"https:\/\/link.segmentfault.com\/?enc=fODgMZrO80kybpUU9DoFVA%3D%3D.53BHFqNNqyiJrQhKfOOTbNcDDU46Eq1zqtFRNl8K8B8Tp5J90vBE1aCnOhAubMwK\" rel=\"nofollow\">https:\/\/github.com\/kompasim\/s&#8230;<\/a><br \/>\u4e0b\u8f7d\u94fe\u63a5\uff1a<a href=\"https:\/\/link.segmentfault.com\/?enc=pjorty3LHOFaaOe3IxHv8Q%3D%3D.e6cy%2B3zegiw9vuwJvFmR5qecioZgh0Yjz23Qfbw2dhivudcI%2FX4i6LGv15V4nE9KmA%2FaFBsV5zKHikFL7Vl20HZ1OYTZGTBJVWRoShv0bdk%3D\" rel=\"nofollow\">https:\/\/github.com\/kompasim\/s&#8230;<\/a><\/p>\n<p>\u8be5\u7a0b\u5e8f\u7528golang\u5728\u670d\u52a1\u5668\u542f\u52a8\u4e00\u4e2a\u542f\u52a8\u4e00\u4e2ahttp\u670d\u52a1\u5668\uff0c\u5e76\u5728\u5ba2\u6237\u7aef\u7528js\u7684websocket\u548c\u670d\u52a1\u5668\u901a\u8baf\u5b9e\u73b0\u5728\u6d4f\u89c8\u5668\u8f93\u5165\u547d\u4ee4\u5728\u670d\u52a1\u5668\u6267\u884c\u3002<\/p>\n<p><em>\u8b66\u544a\uff1a\u4e0d\u77e5\u9053\u81ea\u5df1\u5728\u505a\u4ec0\u4e48\u7684\u60c5\u51b5\u4e0b\u4e0d\u8981\u8f7b\u6613\u7684\u628a\u8fd9\u4e2a\u7a0b\u5e8f\u653e\u5230\u81ea\u5df1\u7684\u670d\u52a1\u5668\u4e0a\uff0c\u7528\u8fd9\u4e2a\u7a0b\u5e8f\u53ef\u4ee5\u6267\u884c\u4efb\u4f55\u7cfb\u7edf\u547d\u4ee4\uff0c\u8fd9\u4e2a\u5f88\u4e0d\u5b89\u5168\u3002<\/em><\/p>\n<h2>2. \u4f7f\u7528\u65b9\u6cd5<\/h2>\n<p>\u6211\u4eec\u53ea\u9700\u4ece\u5b83\u7684<a href=\"https:\/\/link.segmentfault.com\/?enc=DOp7jXTDTYn4RmPQfRsTxw%3D%3D.af9rLwOBAJwthxp7szvaNYVmc1gVF6VaaWomgITEj64pzLlSdhjIY9wfgvABs6m8Bzn%2F%2BQGa%2BB6u%2Fm9n5URNx%2FoEam404J%2BJ5ku28K1L7kk%3D\" rel=\"nofollow\">release<\/a>\u9875\u9762\u4e0b\u8f7d\u6211\u4eec\u5e73\u53f0\u5bf9\u5e94\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff0c\u5e76\u53cc\u51fb\u8fd0\u884c\u5373\u53ef\u3002\u4e4b\u540e\u6211\u4eec\u4f1a\u5728\u63a7\u5236\u53f0\u7a97\u53e3\u770b\u5230\u5982\u4e0b\u4fe1\u606f:<\/p>\n<p><img decoding=\"async\" referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/bVc1Ru0\" alt=\"image.png\" title=\"image.png\" loading=\"lazy\"><\/p>\n<p>\u7136\u540e\u6211\u4eec\u8bbf\u95ee<a href=\"https:\/\/link.segmentfault.com\/?enc=lBKq%2BRdVOvkprf0n9v0GqA%3D%3D.4JnHlYXOfQupPFvh2XdAoTAbUHlLXgQ9jpsf%2FToSSQU%3D\" rel=\"nofollow\">http:\/\/127.0.0.1:7777<\/a>\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u770b\u5230\u5982\u4e0bui\u754c\u9762\uff1a<\/p>\n<p><img decoding=\"async\" referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/bVc1Ru1\" alt=\"image.png\" title=\"image.png\" loading=\"lazy\"><\/p>\n<p>\u6211\u4eec\u53ef\u4ee5\u5728\u8be5\u7f51\u9875\u8f93\u5165\u6211\u4eec\u542f\u52a8\u7a0b\u5e8f\u7684\u7535\u8111\u6240\u80fd\u6267\u884c\u7684\u6240\u6709\u547d\u4ee4\u3002<\/p>\n<h2>3. \u53ef\u7528\u547d\u4ee4<\/h2>\n<p>\u9664\u4e86\u670d\u52a1\u5668\u4e0a\u7684\u6240\u6709\u547d\u4ee4\u4e4b\u5916\uff0cterminal\u8fd8\u63d0\u4f9b\u4e86\u65b9\u4fbf\u4f7f\u7528\u7684\u6587\u4ef6\u4e0a\u4f20\uff0c\u4e0b\u8f7d\u548c\u7f16\u8f91\u7b49\u529f\u80fd\u6027\u547d\u4ee4\uff0c\u975e\u5e38\u65b9\u4fbf\u3002\u652f\u6301\u7684\u547d\u4ee4\u5217\u8868\u5982\u4e0b\uff1a<\/p>\n<ul>\n<li>help : \u6253\u5370\u5e2e\u52a9\u4fe1\u606f<\/li>\n<li>stop : \u5728\u670d\u52a1\u5668\u5173\u95ed\u8be5terminal\u7a0b\u5e8f\u8fdb\u7a0b<\/li>\n<li>save : \u4fdd\u5b58\u5f53\u524dweb\u9875\u9762\u4e0a\u7684\u65e5\u5fd7<\/li>\n<li>exit : \u5173\u95ed\u5f53\u524d\u7f51\u9875\u548c\u670d\u52a1\u5668\u7684socket\u7f51\u9875<\/li>\n<li>shell : \u8bbe\u7f6e\u6267\u884c\u7cfb\u7edf\u547d\u4ee4\u7684shell\uff08powershell\uff0csh\uff0cbash\uff09<\/li>\n<\/ul>\n<blockquote><p>\u4f8b\u5b50: <code>shell powershell<\/code><\/p><\/blockquote>\n<ul>\n<li>coding : \u8bbe\u7f6e\u8f93\u51fa\u65e5\u5fd7\u7684\u7f16\u7801\uff08\u4f8b\u5982\u7528powershell\u7684\u65f6\u5019\u53ef\u4ee5\u8bbe\u7f6e\u6210gbk\u6765\u8f93\u51fa\u4e2d\u6587\uff09<\/li>\n<\/ul>\n<blockquote><p>\u4f8b\u5b50: <code>coding gbk<\/code><\/p><\/blockquote>\n<ul>\n<li>static : \u8df3\u8f6c\u5230\u8be5\u7a0b\u5e8f\u63d0\u4f9b\u7684\u9759\u6001\u670d\u52a1\u5668\u7f51\u9875<\/li>\n<li>scp : \u4e0a\u4f20\u6216\u4e0b\u8f7d\u6587\u4ef6<\/li>\n<\/ul>\n<blockquote>\n<p>\u4f7f\u7528<code>scp .\/test.txt<\/code>\u547d\u4ee4\u5f00\u542f\u4e0b\u8f7d\u6d41\u7a0b\uff0c\u4ece\u670d\u52a1\u5668\u4e0aterminal\u5f53\u524d\u5de5\u4f5c\u7684\u76ee\u5f55\u4e0b\u8f7d\u6587\u4ef6\u5230\u672c\u5730<\/p>\n<p>\u4f7f\u7528<code>scp .\/<\/code>\u547d\u4ee4\u542f\u52a8\u9009\u62e9\u6587\u4ef6\u7a97\u53e3\uff0c\u4e0a\u4f20\u672c\u5730\u6587\u4ef6\u5230\u670d\u52a1\u5668\u4e0aterminal\u5f53\u524d\u5de5\u4f5c\u7684\u76ee\u5f55<\/p>\n<\/blockquote>\n<p><img decoding=\"async\" referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/bVc1Rvo\" alt=\"image.png\" title=\"image.png\" loading=\"lazy\"><\/p>\n<ul>\n<li>vim : \u5728\u7f51\u9875\u5b9e\u73b0\u7684\u7b80\u5355\u7f16\u8f91\u5668\uff0c\u53ef\u4ee5\u76f4\u63a5\u7f16\u8f91\u670d\u52a1\u5668\u4e0a\u7684\u6587\u4ef6<\/li>\n<\/ul>\n<p><img decoding=\"async\" referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/remote\/1460000042350719\" alt=\"\u56fe\u7247\" title=\"\u56fe\u7247\" loading=\"lazy\"><\/p>\n<ul>\n<li>\u5176\u4ed6 : \u9664\u4e86\u8fd9\u4e9b\u4f60\u8fd8\u53ef\u4ee5\u76f4\u63a5\u6267\u884c\u670d\u52a1\u5668\u6267\u884c\u7684\u6240\u6709\u547d\u4ee4<\/li>\n<\/ul>\n<h2>4. \u542f\u52a8\u53c2\u6570<\/h2>\n<p>\u60a8\u53ef\u4ee5\u5728\u670d\u52a1\u5668\u542f\u52a8\u8be5\u7a0b\u5e8f\u7684\u65f6\u5019\u7ed9\u4e00\u4e9b\u53c2\u6570\u6765\u4fee\u6539\u4e00\u4e9b\u9ed8\u8ba4\u884c\u4e3a\uff0c\u652f\u6301\u7684\u53c2\u6570\u5982\u4e0b<\/p>\n<p>port : \u8bbe\u7f6eterminal\u8fd0\u884c\u7684\u7aef\u53e3 (\u9ed8\u8ba4\u4e3a777)<\/p>\n<p>shell : \u9ed8\u8ba4\u4f7f\u7528\u7684shell<\/p>\n<p>coding : \u9ed8\u8ba4\u4f7f\u7528\u7684\u7f16\u7801<\/p>\n<p>static : \u662f\u5426\u5728\u5f53\u524d\u76ee\u5f55\u542f\u52a8\u9759\u6001\u8d44\u6e90\u670d\u52a1\u5668 (\u9ed8\u8ba4\u4e3atrue)<\/p>\n<p>pass : \u7f51\u9875terminal\u7684\u5bc6\u7801\uff0c\u5982\u679c\u4f60\u5e0c\u671b\u6253\u5f00\u7f51\u9875\u65f6\u5019\u8f93\u5165\u5bc6\u7801\u6765\u786e\u8ba4\u8eab\u4efd\u53ef\u4ee5\u8bbe\u7f6e\u4e00\u4e2a\u5bc6\u7801\uff08\u9ed8\u8ba4\u6ca1\u6709\u5bc6\u7801\uff0c\u968f\u4fbf\u4e00\u4e2a\u4eba\u6253\u5f00\u5c31\u53ef\u4ee5\u7528\uff09<\/p>\n<blockquote><p>\u4f8b\u5b50\uff1a \u542f\u52a8\u8981\u7ed9\u9ed8\u8ba4\u4f7f\u7528gbk\u7f16\u7801\u7684powershell\uff0c\u5e76\u4e14\u5bc6\u7801\u4e3a5555\uff0c\u5e26\u4e86\u9759\u6001\u8d44\u6e90\u670d\u52a1\u5668\u7684terminal<\/p><\/blockquote>\n<p><img decoding=\"async\" referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/bVc1RvH\" alt=\"image.png\" title=\"image.png\" loading=\"lazy\"><\/p>\n<h2>\u53c2\u8003\u8fde\u63a5<\/h2>\n<p>\u8be5\u7a0b\u5e8f\u4ee5\u5b66\u4e60\u4e3a\u76ee\u7684\u9605\u8bfb\u4ee5\u4e0b\u5185\u5bb9\uff0c\u5e76\u6839\u636e\u5b66\u4e60\u5230\u77e5\u8bc6\u7528golang\u548cjavascript\u5b9e\u73b0\uff0c\u611f\u5174\u8da3\u53ef\u4ee5\u70b9\u51fb\u6253\u5f00\u770b\u770b\u3002<\/p>\n<ul>\n<li><a href=\"https:\/\/link.segmentfault.com\/?enc=rYeiO51GXPQASlSS8tHCKw%3D%3D.rIJ2sRr34Kf2Itxvu8vqQ1x8QLa22NakQAjb%2BfAwKCjJO2%2F8Wi%2FadD8%2FNoM8xCJF\" rel=\"nofollow\">character-set conversion library implemented in Go<\/a><\/li>\n<li><a href=\"https:\/\/link.segmentfault.com\/?enc=RJaoI%2Fcn0AAaPQ%2FM6gJcKA%3D%3D.4Bip%2FVeFtceUW1ICVNjJs8OBJ5delgykIIkgllwL3y5TNFDnE5IjA4MfzIdl8yl5\" rel=\"nofollow\">A fast, well-tested and widely used WebSocket implementation for Go.<\/a><\/li>\n<li><a href=\"https:\/\/link.segmentfault.com\/?enc=uEM9OUqziBQRT%2B2ubS6xAg%3D%3D.VPU6r2lc%2F81eCaHK7pmjLlYnf%2BB2suf8%2ByMLoGnyvbeR%2B6L7E5%2B50oWbLV47oB%2BMESVynYq%2B6f4IZQ3o9h7xi3ApNvjshOrKp9gUAJNGagdpYnGFwAg6QSIerodttDp4\" rel=\"nofollow\">How do I get the local IP address in Go?<\/a><\/li>\n<li><a href=\"https:\/\/link.segmentfault.com\/?enc=gw0E%2FQ0rA1Pr5qznHN6MBw%3D%3D.g22F3akh2iOccY2Wu87PB3bURC89%2BDZyTbkiCLf%2BKUiytsei2Hnz2aaXCxT5TayijkLvKpyzjy%2BuyBDn0cPWy2yR26BF8lOynsqYole9hoBPHpDRtVLxP%2FHAXYg0yeECvXL%2F%2FKXuInj9f9XaAOso4g%3D%3D\" rel=\"nofollow\">How to generate an MD5 file hash in JavaScript\/Node.js?<\/a><\/li>\n<li><a href=\"https:\/\/link.segmentfault.com\/?enc=q62i3wU%2BcKtiIHl7XiGd5w%3D%3D.lgo79YrArbXoMVkHJCvCTeaIrWpyOCUxxrGm9PdKb7yfXTiBXV%2BqPP46ZfRWXMgRT1jMKJEgG9Ig%2FLZ35T5w%2BIszikqlH9zB21Pta7yB65rxSoA69KF4KRIyWLwhMjxY\" rel=\"nofollow\">Using HTML5\/JavaScript to generate and save a file<\/a><\/li>\n<\/ul>\n<p><a href=\"https:\/\/segmentfault.com\/a\/1190000042350717\">https:\/\/segmentfault.com\/a\/1190000042350717<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. \u4ecb\u7ecd simple-web-terminal\u662f\u4e00\u4e2a\u7528go\u8bed\u8a00\u548cjavascript\u7f16\u5199\u7684\u8fd0\u884c\u5728\u6d4f\u89c8\u5668\u7684w [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-10006252","post","type-post","status-publish","format-standard","hentry"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10006252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10006252"}],"version-history":[{"count":0,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10006252\/revisions"}],"wp:attachment":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10006252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10006252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10006252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}