{"id":34816,"date":"2023-11-13T02:44:26","date_gmt":"2023-02-11T15:34:40","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/"},"modified":"2024-05-04T08:45:15","modified_gmt":"2024-05-04T00:45:15","slug":"%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/","title":{"rendered":"\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e"},"content":{"rendered":"<p>\u6211\u60f3\u5728\u4e00\u4e2a\u5c0f\u65f6\u524d\u6211\u53ef\u80fd\u8fd8\u5728\u73a9\u7535\u8111\u56f4\u68cb\uff0c\u4f46\u662f\u73b0\u5728\u8981\u8f6c\u800c\u73a9\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u3002<\/p>\n<h1>\u8981\u4ef6\u5b9a\u7fa9<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">URL\u53e9\u3044\u305f\u3089\u6307\u3057\u624b\u3092\u8fd4\u3057\u3066\u307b\u3057\u3044\u30021\u79d2\u4ee5\u5185\u3067\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u74b0\u5883<\/ul>\n<\/li>\n<\/ul>\n<p>\u30ec\u30f3\u30bf\u30eb\u30b5\u30fc\u30d0\u30fc\u306f\u7528\u610f\u3055\u308c\u308b<br \/>\nLinux<\/p>\n<p>\u306a\u308b\u307b\u3069\u2026\u2026\u3001\u6700\u8fd1\u3069\u3093\u306a\u9a12\u304e\u304c\u3042\u3063\u305f\u306e\u304b\u77e5\u3089\u306a\u3044\u306e\u304b\u30c4\u30c3\u30b3\u30df\u305f\u3044\u3068\u3053\u308d\u3060\u304c\u3000\u308f\u305f\u3057\u306b\u306f\u95a2\u4fc2\u306a\u3044\u3002<\/p>\n<h1>\u8ba9\u6211\u4eec\u60f3\u4e00\u60f3<\/h1>\n<p>\u307e\u305a\u3000\u308f\u305f\u3057\u306e\u74b0\u5883\u306a\u3093\u3060\u304c<\/p>\n<ul class=\"post-ul\">Windows 10<\/ul>\n<p>\u6211\u60f3\u5230\u7684\u662f<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u6d6e\u304b\u3080\u702c<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ubuntu \u203b\u7b2c\uff14\u56de\u96fb\u738b\u30c8\u30fc\u30ca\u30e1\u30f3\u30c8\u3067\u3082\u5927\u4eba\u6c17\u3060\u3002USB\u306b\u5165\u308c\u3066\u7a81\u304d\u3055\u3057\u3066\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3055\u308c\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>(\u8ffd\u8a18)(\u521d\u671f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f) 14.04.5 LTS (GNU\/Linux 3.13.0-63-generic x86_64)<\/p>\n<p>GCC g++-4.8\u4ee5\u4e0a<\/p>\n<p>teratarm PuTTY<br \/>\n(\u8ffd\u8a18) mono \u203b\u5c06\u68cb\u6240\u3092\u4f7f\u3046\u5834\u5408<br \/>\n(\u8ffd\u8a18) FileZilla<br \/>\n(\u8ffd\u8a18)(\u521d\u671f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f) nano \u203b\u30c6\u30ad\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf\u30fc<br \/>\n(\u8ffd\u8a18)(\u521d\u671f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f) bash \u203b\u30b7\u30a7\u30eb\u30fb\u30b9\u30af\u30ea\u30d7\u30c8<\/p>\n<p>\u4f46\u662f\u6211\u611f\u89c9\u53ef\u80fd\u9700\u8981\u642d\u5efa\u4e00\u4e2a Web \u670d\u52a1\u5668\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Apache<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">PHP<\/ul>\n<p>\u304c\u3042\u308c\u3070\u3044\u3044\u3093\u3060\u308d\u3046\u304b\uff1f\u3000\u5c06\u68cb\u30bd\u30d5\u30c8\u3063\u3066\u3000\u30de\u30eb\u30c1\u30e6\u30fc\u30b6\u30fc\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u306e\u304b\uff1f\u30ad\u30e5\u30fc\u3068\u304b\u8981\u308b\u3093\u3058\u3083\u306a\u3044\u304b\uff1f\u3068\u308a\u3042\u3048\u305a\uff11\u4eba\u7528\u3067\u3044\u3044\u304b\u3002<\/p>\n<p>\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3067\u30c6\u30b9\u30c8\u3082\u3057\u305f\u3044\u3057\u3001Windows\u4e0a\u3067Linux \u3092\u52d5\u304b\u3059\u30d0\u30fc\u30c1\u30e3\u30eb\u306a\u3042\u308c\u306a\u3093\u3066\u540d\u524d\u3060\u3063\u305f\u304b\u2026\u2026\u3002\u601d\u3044\u51fa\u305b\u306a\u3044\u3084\u3001\u30b0\u30b0\u3063\u3066\u51fa\u3066\u304f\u308b \u30d0\u30fc\u30c1\u30e3\u30eb\u30dc\u30c3\u30af\u30b9\u3092\u8abf\u3079\u3066\u304a\u3053\u3046\u3002<\/p>\n<h1>\u8ba9\u6211\u4eec\u5efa\u7acb\u4e00\u4e2a\u6d4b\u8bd5\u73af\u5883\u3002<\/h1>\n<p>\u307e\u305a\u3000\u30ed\u30fc\u30ab\u30eb\u306b\u3000\u30c6\u30b9\u30c8\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u3088\u3046\u3002<\/p>\n<p>\u3042\u3068\u3067\u8a18\u4e8b\u3092\u7d9a\u3051\u308b\u3002<\/p>\n<p>Windows 10 \u3067 Virtual Box \u3092\u5c0e\u5165\u3067\u304d\u308b\u3060\u308d\u3046\u304b\u3002\u30b0\u30b0\u3063\u3066\u8aad\u3093\u3067\u304a\u3053\u3046\u3002<\/p>\n<p>\u53c2\u8003\u6587\u732e: \u300a\u5728Windows\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u4f7f\u7528VirtualBox\u6765\u8fd0\u884cLinux\uff08Ubuntu\uff09\u7684\u6b65\u9aa4\u548c\u8bbe\u7f6e\u300b\uff08\u6211\u7684\u5f00\u53d1\u7814\u7a76\u6240\uff09http:\/\/itmemo.net-luck.com\/virtualbox-ubuntu\/<\/p>\n<p>\u5148\u63d0\u524d\u4e0b\u8f09\u4e00\u4e0b\u300a\u6d6e\u304b\u3080\u702c\u300b\u7684\u6e90\u6a94\uff0c\u4ee5\u9632\u842c\u4e00\u3002<\/p>\n<p>\u8bf7\u53c2\u8003\u4ee5\u4e0b\u5185\u5bb9\uff1a\u300c\u7b2c4\u5c4a\u5c06\u68cb\u7535\u8111\u738b\u6bd4\u8d5b \u7248\u672c\uff08\u9002\u7528\u4e8eWindows 64\u4f4d\uff09\uff08\u53c2\u8d5b\u8f6f\u4ef6\u540d\u79f0\uff1a\u6d6e\u304b\u3080\u702c\uff09\u300d\uff08Apery\uff09<\/p>\n<p>(\u5f00\u653e\u6e90\u7801\u5c06\u5e94\u6bcf\uff09http:\/\/hiraokatakuya.github.io\/apery\/<\/p>\n<h1>BIOS\u65e0\u6cd5\u542f\u52a8<\/h1>\n<p>Antec \u306e CORE i3 \u306a\u3093\u3060\u304c\u3001[F2][F10][F12][F8][Del] \u3067 BIOS \u304c\u51fa\u3066\u3053\u306a\u304b\u3063\u305f\u3002<br \/>\nUSB\u30dd\u30fc\u30c8\u3092\u5de6\u4e0a\u306e\u65b9\u306b\u633f\u3057\u3066\u307f\u3066 [Del][F6] \u3082\u3084\u3063\u3066\u307f\u305f\u304c BIOS \u306f\u51fa\u3066\u3053\u306a\u304b\u3063\u305f\u3002<\/p>\n<p>\u6211\u518d\u8fdb\u4e00\u6b65\u8c03\u67e5\u4e00\u4e0b\u3002<\/p>\n<h1>\u6211\u65e0\u6cd5\u5efa\u7acb\u672c\u5730\u6d4b\u8bd5\u73af\u5883\u3002<\/h1>\n<p>\u5982\u679c\u6ca1\u6709\uff0c\u5c31\u6ca1\u6709&#8230;&#8230;\u3002<\/p>\n<p>\u987a\u4fbf\u8bf4\u4e00\u4e0b\uff0c\u6211\u4ece\u6765\u6ca1\u6709\u89c1\u8fc7\u6211\u5bb6\u5f00\u53d1\u7535\u8111\u7684BIOS\u3002<\/p>\n<p>\u67e5\u770b\u4e3a\u671f2\u5468\u7684\u9884\u8bbe\u7684\u4e00\u4e2a\u53f0\u685cVPS\u7269\u7406\u670d\u52a1\u5668\u514d\u8d39\u670d\u52a1\u7684\u7f51\u9875\u3002<br \/>\nhttp:\/\/vps.sakura.ad.jp\/<\/p>\n<p>\u6807\u51c6\u64cd\u4f5c\u7cfb\u7edf\u662f\u201cUbuntu14.04 amd64 \/ Ubuntu16.04 amd64\u201d\u5417\uff1f\u90a3\u4e48\u5df2\u7ecf\u5b89\u88c5\u4e86Ubuntu\uff0c\u5bf9\u5427\uff1f<\/p>\n<h2>\u8ba1\u7b97\u673a\u4e0e\u5b89\u5168<\/h2>\n<p>\u603b\u7684\u6765\u8bf4\uff0c\u8ba1\u7b97\u673a\u7684\u53d1\u5c55\u662f\u671d\u7740\u9650\u5236\u4f7f\u7528\u7684\u65b9\u5411\u53d1\u5c55\uff0c\u800c\u4e0d\u662f\u65e0\u9650\u5236\u5730\u4f7f\u7528\u3002\u8fd9\u662f\u56e0\u4e3a\u4eba\u7c7b\u5e76\u4e0d\u50cf\u8d85\u6709\u673a\u4f53\u7684\u76d6\u4e9a\u7406\u8bba\u90a3\u6837\uff0c\u800c\u662f\u50cf\u4e00\u4e2a\u7fa4\u4f53\u751f\u7269\uff0c\u6bcf\u4e2a\u4e2a\u4f53\u90fd\u81ea\u79c1\u5730\u4f7f\u7528\u8d44\u6e90\u2026\u2026\u3002<\/p>\n<p>\u6240\u4ee5\uff0c\u4f7f\u7528\u8a08\u7b97\u6a5f\u8cc7\u6e90\u7684\u4eba\u9700\u8981\u5275\u8a2d\u7528\u6236\u5e33\u6236\u3002\u76f4\u8b6f\u7684\u8a71\uff0c\u9019\u500b\u65e5\u6587\u8a5e\u5f59\u7684\u610f\u601d\u5927\u6982\u662f\u95dc\u65bc\u91d1\u9322\u51fa\u5165\u7684\u5730\u65b9\uff0c\u985e\u4f3c\u65bc\u9280\u884c\u5e33\u6236\u4e4b\u985e\u7684\u6982\u5ff5\uff0c\u4f46\u662faccount\u4e5f\u5305\u542b\u4e86count\u9019\u500b\u8a5e\u5f59\uff0c\u800c\u4e14\u524d\u7db4ac-\u4f3c\u4e4e\u6709\u201c\u5f80\u67d0\u500b\u65b9\u5411\u201d\u7684\u610f\u601d\u3002<\/p>\n<p>\u7528\u6237\u5e10\u6237\u5df2\u7ecf\u51c6\u5907\u597d\u4e86\u3002\u53ef\u4ee5\u8bf4\u662f\u5bb9\u6613\u7406\u89e3\u7684\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u4e0a\u306e\u4f4f\u6240 (IP\u30a2\u30c9\u30ec\u30b9)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u305d\u306e\u4f4f\u6240\u306b\u3042\u308b\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u5185\u3067\u4f7f\u308f\u308c\u308b\u81ea\u5206\u306e\u6c0f\u540d (\u30e6\u30fc\u30b6\u30fc\u540d)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u672c\u4eba\u78ba\u8a8d\u3092\u3059\u308b\u3082\u306e (\u30d1\u30b9\u30ef\u30fc\u30c9)<\/ul>\n<p>\u5982\u679c\u80fd\u8bb0\u4f4f\u8fd9\u4e09\u70b9\uff0c\u5c31\u53ef\u4ee5\u8fdb\u5165\u7535\u8111\uff08\u767b\u5f55\uff09\u5e76\u53d1\u9001\u6587\u4ef6\uff08\u6570\u636e\uff09\u3002<br \/>\n\u5c31\u50cf\u8fdb\u5165\u5bb6\u91cc\u4e00\u6837\uff0c\u53ef\u4ee5\u786e\u4fdd\u53d1\u9001\u7684\u5305\u88f9\u80fd\u591f\u5230\u8fbe\u3002<\/p>\n<p>\u305d\u3046\u3044\u3048\u3070\u3000\u30ed\u30b0\u3000\u3068\u3044\u3046\u306e\u306f\u8db3\u8de1\u306e\u3088\u3046\u306a\u3082\u306e\u3067\u3001\u3044\u3064\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\uff08\u5bb6\uff09\u306b\u5165\u3063\u305f\u304b\u3068\u304b\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u306b\u5165\u3063\u3066\u4f55\u3092\u3057\u305f\u304b\u3068\u304b\u3001\u6700\u5f8c\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u305f\u306e\u306f\u8ab0\u304b\u3001\u3068\u304b\u6b8b\u3055\u308c\u3066\u3044\u304f\u3093\u3060\u304c\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u306b\u5165\u308b\u3053\u3068\u3092\u3000\u30ed\u30b0\u30a4\u30f3\u3000\u3068\u547c\u3076\u306e\u3082\u8208\u5473\u6df1\u3044\u3002<\/p>\n<h2>\u305d\u3046\u3044\u3048\u3070\u30eb\u30fc\u30c8\u30fb\u30e6\u30fc\u30b6\u30fc\u3068\u3044\u3046\u306e\u304c\u3042\u3063\u305f\u306a<\/h2>\n<p>Teratarm \u3068\u3044\u3046\u5bfa\u3055\u3093\u304c\u4f5c\u3063\u305f\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u30ed\u30b0\u30a4\u30f3\u3057\u3088\u3046\u304b\u3068\u601d\u3063\u305f\u3093\u3060\u304c\u3001\uff08\u3078\u3047\u3001\u4eca\u306f\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u304c\u958b\u767a\u3092\u5f8c\u7d99\u3057\u3066\u3044\u308b\u306e\u304b\uff09<br \/>\n\u958b\u767aPC\u306e\u30e9\u30f3\u30c1\u30e3\u30fc\u306b PuTTY \u306e\u30a2\u30a4\u30b3\u30f3\u304c\u3042\u3063\u305f\u306e\u3067 PuTTY \u3067\u63a5\u7d9a\u3057\u3066\u3057\u307e\u3063\u305f\u3002<\/p>\n<p>\u63a5\u7d9a\u30d7\u30ed\u30c8\u30b3\u30eb\u306e\u30bf\u30a4\u30d7\u306f SSH \u3060\u3002\u306a\u3093\u304b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u304c\u9ad8\u3044\u3093\u3060\u308d\u3046\u3050\u3089\u3044\u3057\u304b\u5206\u304b\u3089\u306a\u3044\u304c\u300cSSH\u3060\u300d\u3068\u8a00\u308f\u308c\u305f\u3089 SSH \u3092\u9078\u3076\u3057\u304b\u306a\u3044\u3002\u3053\u3063\u3061\u304c\u597d\u304d\u306a\u3082\u306e\u3092\u9078\u3079\u307e\u3059\u3001\u3068\u3044\u3046\u3084\u3064\u3058\u3083\u306a\u3044\u3002<\/p>\n<p>PuTTY\u304c\u306a\u3093\u304b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8b66\u544a\u3092\u51fa\u3057\u3066\u3044\u308b\u304c\u6c17\u306b\u305b\u305a [\u306f\u3044(Y)] \u3092\u9078\u3093\u3067\u5165\u308b\u3002<\/p>\n<p>\u30e6\u30fc\u30b6\u30fc\u540d\u306b root \u3068\u5165\u308c\u3066\u30d1\u30b9\u30ef\u30fc\u30c9\u53e9\u3044\u3066 Linux \u306b\u5165\u308c\u306d\u3001\u3068\u304b\u601d\u3063\u3066\u305f\u3093\u3060\u304c\u3000\u805e\u3044\u3066\u307f\u308b\u3068 \u30eb\u30fc\u30c8\u30fb\u30e6\u30fc\u30b6\u30fc\u3067\u306f\u5165\u308c\u306a\u3044\u3089\u3057\u3044\u3002<br \/>\n\u305d\u3046\u3044\u3048\u3070\u306a\u3093\u304b su \u30b3\u30de\u30f3\u30c9\u3068\u304b\u3042\u3063\u305f\u6c17\u3082\u3059\u308b\u3002Windows 10 \u3060\u3063\u3066 \u81ea\u5206\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u5165\u3063\u3066\u304b\u3089\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3066\u300c\u7ba1\u7406\u8005\u6a29\u9650\u3067\u5b9f\u884c\u300d\u3092\u9078\u3093\u3060\u308a\u3082\u3059\u308b\u3002<\/p>\n<p>\u4e0d\u8981\u518d\u8bf4\u6211\u6709Linux\u5b9e\u9645\u5de5\u4f5c\u7ecf\u9a8c\u4e86\uff0c\u5b8c\u5168\u4e0d\u884c\u3002<\/p>\n<h2>\u547d\u4ee4\u884c<\/h2>\n<p>\u6211\u53ea\u8bb0\u5f97\u4e00\u70b9\u70b9\uff0c\u4f46\u60a8\u5f88\u66b4\u8e81\u3002<\/p>\n<p>\u8bf7\u5207\u6362\u5230\u8d85\u7ea7\u7528\u6237(root)\u6743\u9650\u3002<\/p>\n<p>\u4ed6\u544a\u8bc9\u6211\u4e00\u4e2a\u547d\u4ee4\uff0c\u6240\u4ee5\u6211\u8bd5\u7740\u4f7f\u7528\u5b83\u3002<br \/>\n\u56e0\u4e3a\u88ab\u8981\u6c42\u8f93\u5165\u5bc6\u7801\uff0c\u6240\u4ee5\u6211\u8f93\u5165\u4e86\u5bc6\u7801\u3002<\/p>\n<p>\u73b0\u5728\u597d\u50cf\u5df2\u7ecf\u53d8\u6210\u4e86root\u7528\u6237\u3002\u56e0\u6b64\u6743\u9650\u4f1a\u53d8\u5f97\u66f4\u5927\uff0c\u53ef\u80fd\u4f1a\u6709\u6240\u5e2e\u52a9\u3002<\/p>\n<pre class=\"post-pre\"><code>ls\r\n<\/code><\/pre>\n<p>\u6572\u51fb\u3002\u4e00\u65e0\u6240\u83b7\u3002<\/p>\n<pre class=\"post-pre\"><code>ls -an\r\n<\/code><\/pre>\n<p>\u3068\u53e9\u304f\u3002<\/p>\n<p>. \u3067\u59cb\u307e\u308b\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u3044\u3063\u3071\u3044\u51fa\u3066\u304f\u308b\u3002\u96a0\u3057\u30d5\u30a1\u30a4\u30eb\u3070\u3063\u304b\u308a\u304b\u3002<br \/>\n\u30d5\u30a9\u30eb\u30c0\u30fc\u3084\u3001\u96a0\u3057\u3058\u3083\u306a\u3044\u30d5\u30a1\u30a4\u30eb\u306f\u7121\u3044\u3088\u3046\u3060\u3002<\/p>\n<pre class=\"post-pre\"><code>mkdir shogi\r\n<\/code><\/pre>\n<p>\u968f\u4fbf\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\u8bd5\u8bd5\u770b\u3002<\/p>\n<pre class=\"post-pre\"><code>ls -an\r\n<\/code><\/pre>\n<p>\u5c06shogi\u6587\u4ef6\u5939\u6ca1\u4e86\u3002<\/p>\n<p>\u8fd9\u662f\u54ea\u91cc\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>cd ..\/\r\n<\/code><\/pre>\n<p>\u54c7\uff0c\u6211\u627e\u4e0d\u5230\u5b83\u5728\u54ea\u91cc\u4e86\u3002\u6211\u4ee5\u4e3a\u5b83\u5728\u4e3b\u6587\u4ef6\u5939\uff0c\u4f46\u6709\u4e9b\u5947\u602a\u3002\u5b83\u662f\u4e0d\u662f\u5728\u6839\u6587\u4ef6\u5939\u91cc\uff1f<\/p>\n<pre class=\"post-pre\"><code>cd root\r\nls\r\n<\/code><\/pre>\n<p>\u55ef\u2026\u2026\u3002\u539f\u6765\u6709\u5c06\u68cb\u6587\u4ef6\u5939\u554a\u3002<br \/>\n\u5728\u8fd9\u79cd\u53eb root \u7684\u6211\u641e\u4e0d\u6e05\u695a\u7684\u5730\u65b9\uff0c\u662f\u4e0d\u9700\u8981\u6587\u4ef6\u5939\u7684\u3002\u6211\u628a\u5b83\u5220\u6389\u5427\u2026\u2026\u3002<\/p>\n<pre class=\"post-pre\"><code>rmdir shogi\/\r\nls\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002<\/p>\n<p>\u5e94\u8be5\u5728\u54ea\u91cc\u90e8\u7f72\u5c06\u68cb\u8f6f\u4ef6\uff08\u5373\u4f7f\u5b83\u53ef\u4ee5\u7acb\u5373\u4f7f\u7528\uff09\uff0c\u50cf\u662f\u5728\u642c\u5bb6\u65f6\u5c06\u7eb8\u7bb1\u9001\u5230\u65b0\u5c45\u5e76\u6253\u5f00\u7bb1\u5b50\u4e00\u6837\uff0c\u5c06\u6240\u6709\u7684\u4e8b\u60c5\u90fd\u505a\u5b8c\u5417\uff1f<\/p>\n<p>&#8220;\u4e86\u89e3\u4e0d\u540c\u76ee\u5f55\u7684\u529f\u80fd\uff08\u6839\u76ee\u5f55\u7bc7\uff09\uff081\/2\uff09&#8221; (@ IT)<br \/>\nhttp:\/\/www.atmarkit.co.jp\/ait\/articles\/0108\/07\/news002.html<\/p>\n<p>\u5c06\u5c06\u68cb\u8f6f\u4ef6\u653e\u5165bin\u76ee\u5f55\u4e2d\uff0c\u611f\u89c9\u4e0d\u592a\u50cf\u4e00\u4e2a\u547d\u4ee4\u3002\u5b83\u7684\u529f\u80fd\u4f3c\u4e4e\u5f88\u5e9e\u5927\uff0c<br \/>\n\u800c\u4e14\u6211\u4e5f\u4e0d\u786e\u5b9a\u662f\u5426\u53ef\u4ee5\u653e\u7f6e\u4ece\u5916\u90e8\u9891\u7e41\u4f7f\u7528\u7684\u4e1c\u897f\u5728root\u6587\u4ef6\u5939\u4e2d\uff0c<br \/>\n\u4e5f\u4e0d\u592a\u89c9\u5f97\u5b83\u50cf\u662f\u4e00\u4e2a\u53ef\u4ee5\u5171\u4eab\u7684\u8f6f\u4ef6\u3002<\/p>\n<p>\u90a3\u4e48\uff0c\u4e5f\u8bb8\u53ef\u4ee5\u653e\u5728etc\u76ee\u5f55\u4e2d\u3002\u4f46\u5b83\u4e0d\u662f\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\u2026\u2026\u3002<\/p>\n<p>\u90a3\u5c31\u5b89\u5168\u5730\u56de\u5bb6\u5427\u3002<\/p>\n<p>\u5728home\u76ee\u5f55\u4e0b\uff0c\u6709\u4e00\u4e2a\u4ee5\u81ea\u5df1\u8d26\u6237\u540d\u547d\u540d\u7684\u6587\u4ef6\u5939\uff0c\u8fdb\u4e00\u6b65\u8fdb\u5165\u8be5\u6587\u4ef6\u5939\u3002<\/p>\n<h2>\u6743\u9650<\/h2>\n<p>\u6587\u4ef6\u4f20\u8f93\u5931\u8d25\u4e86\uff0c\u5b83\u544a\u8bc9\u6211\u5f88\u751f\u6c14\u3002\u539f\u6765\u5728Linux\u4e0a\u6709\u6743\u9650\u8fd9\u4e2a\u4e1c\u897f\uff01<\/p>\n<pre class=\"post-pre\"><code>ls -an\r\ndrwxr-xr-x \uff5e\u7565\uff5e 01:37 shogi\r\n<\/code><\/pre>\n<p>\u6743\u9650\uff08\u8bbe\u7f6e\u6587\u4ef6\u7684\u8bbf\u95ee\u8303\u56f4\uff09\u662f\u5728\u76ee\u5f55d\u4e2d\uff0c\u5206\u522b\u4e3arwx\u3001r-x\u3001r-x\u3002<\/p>\n<p>r\u8868\u793a\u8bfb\u53d6\u3001w\u8868\u793a\u5199\u5165\u3001x\u8868\u793a\u6267\u884c\uff0c-\u8868\u793a\u6ca1\u6709\u6743\u9650\u3002<\/p>\n<p>\u4ee5\u4e0a\u662f\u8fd9\u4e09\u4e2a\u6743\u9650\u7684\u7ec4\u5408\u662f\u4ec0\u4e48\u6765\u7740\u3002<\/p>\n<p>\u300c\u7b2c2\u56de\u300e\u6743\u9650\u7684\u542b\u4e49\u548c\u7528\u6cd5\u533a\u5206\u300f\u300d\uff08MdN Design Interactive\uff09<br \/>\nhttp:\/\/www.mdn.co.jp\/di\/articles\/2104\/?page=2<\/p>\n<p>\u636e\u8bf4\u300c\u6240\u6709\u8005\u300d\u300c\u7fa4\u7ec4\u300d\u300c\u5176\u4ed6\u300d\u8fd9\u4e09\u4e2a\u90fd\u6392\u5217\u5728\u4e00\u8d77\u3002\u7fa4\u7ec4\u4e4b\u7c7b\u7684\u6211\u4ece\u6765\u6ca1\u7528\u8fc7\u3002<br \/>\n\u55ef\uff0c\u5982\u679c\u6211\u6253\u7b97\u4ece\u5916\u90e8\u4f20\u8f93\u6587\u4ef6\uff0c\u662f\u4e0d\u662f\u5e94\u8be5\u7ed9\u300c\u5176\u4ed6\u300d\u6dfb\u52a0\u5199\u5165\u6743\u9650 w \u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>chmod 757 shogi\/\r\nls -an\r\ndrwxr-xrwx \uff5e\u7565\uff5e 01:37 shogi\r\n        ~\r\n        \u3053\u3053\u304c\u5909\u308f\u3063\u305f\r\n<\/code><\/pre>\n<p>\u597d\u7684\uff0c\u6ca1\u95ee\u9898\u3002<\/p>\n<h2>\u8ba9\u6211\u4eec\u8fdb\u884c\u6587\u4ef6\u4f20\u8f93\u5427<\/h2>\n<pre class=\"post-pre\"><code>FileZilla \u3092\u4f7f\u3063\u3066 Windows 10 \u304b\u3089 Linux \u3078 Apery \u3092\u8ee2\u9001\u3057\u3088\u3046\u3002\r\n<\/code><\/pre>\n<p>\u90a3\u4e2a\uff1f\u65e5\u8bed\u7684\u62bd\u8c61\u5ea6\u597d\u5947\u602a\u54e6\u3002\u518d\u6765\u4e00\u904d\u3002<\/p>\n<pre class=\"post-pre\"><code>\u30d5\u30a1\u30a4\u30eb\u8ee2\u9001\u30bd\u30d5\u30c8\u3092\u4f7f\u3063\u3066 Windows \u304b\u3089 Linux \u3078\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u5c06\u68cb\u30bd\u30d5\u30c8\u3092\u8ee2\u9001\u3057\u3088\u3046\u3002\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002<br \/>\n\u5177\u4f53\u6765\u8bf4\uff0c<\/p>\n<pre class=\"post-pre\"><code>FileZilla \u3092\u4f7f\u3063\u3066 Windows 10 \u304b\u3089 Ubuntu \u3078 \u6d6e\u304b\u3080\u702c \u3092\u8ee2\u9001\u3059\u308b\u3002\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002<br \/>\n\u5982\u679c\u4e0d\u80fd\u533a\u5206\u65e5\u8bed\u4e2d\u7684\u62bd\u8c61\u6027\u548c\u5177\u4f53\u6027\uff0c\u6709\u65f6\u5019\u5728\u5bf9\u8bdd\u4e2d\u5bf9\u65b9\u4f1a\u50cf\u8d85\u7ea7\u9a6c\u91cc\u5965\u5728\u5ce1\u8c37\u8dcc\u843d\u540e\u7a81\u7136\u8df3\u51fa\u6765\u90a3\u6837\u505a\u51fa\u53cd\u5e94\u3002<\/p>\n<p>\u5f53\u7136\uff0c\u6211\u6ca1\u6709\u90a3\u6837\u7684\u53e3\u8bed\u80fd\u529b\u3002<\/p>\n<p>\u554a\uff0c\u5bf9\u4e86\u5bf9\u4e86\u3002\u8981\u4ece\u670d\u52a1\u5668\u4e0a\u6ce8\u9500\u767b\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code>exit\r\nlogout\r\n<\/code><\/pre>\n<p>\u5fc5\u987b\u8981\u8fde\u7eed\u4e24\u6b21\u6572\u51fb\u624d\u884c\u3002\uff08*2017\u5e743\u67086\u65e5\u8865\u5145\uff1a\u4f3c\u4e4e\u4ece\u670d\u52a1\u5668\u4e0a\u9000\u51fa\uff0c\u7136\u540e\u4ecePuTTY\u4e2d\u9000\u51fa\u3002\u901a\u8fc7\u8fde\u7eed\u6572\u51fbexit\u547d\u4ee4\u5c31\u53ef\u4ee5\u3002\uff09<\/p>\n<p>\u6211\u6709\u4e8b\u51fa\u95e8\u4e86\u3002\u56de\u6765\u540e\u4f1a\u7ee7\u7eed\u5199\u6587\u7ae0\u3002<\/p>\n<p>\u7ee7\u7eed\u3002<\/p>\n<p>\u5f53\u60a8\u767b\u5f55\u540e\u67e5\u770b\u9875\u9762\u65f6<\/p>\n<pre class=\"post-pre\"><code>Welcome to Ubuntu 14.04.5 LTS (GNU\/Linux 3.13.0-63-generic x86_64)\r\n\r\n * Documentation:  https:\/\/help.ubuntu.com\/\r\nNew release '16.04.2 LTS' available.\r\nRun 'do-release-upgrade' to upgrade to it.\r\n<\/code><\/pre>\n<p>\u5199\u7740\u8fd9\u6837\u7684\u5b57\u3002<\/p>\n<pre class=\"post-pre\"><code>do-release-upgrade\r\n<\/code><\/pre>\n<p>\u5982\u679c\u6211\u8f93\u5165 &#8220;y&#8221; \u4f1a\u600e\u4e48\u6837\u5462\uff1f\u4f1a\u8981\u6c42\u8f93\u5165\u5bc6\u7801\uff0c\u7136\u540e\u9700\u8981\u8f93\u5165 [yN]\u3002<\/p>\n<p>\u4e0d\u7ba1\u5b83\u600e\u4e48\u5199\uff0c\u5c31\u5f53\u5b83\u8bf4\u7684\u662f\u628a\u7aef\u53e3\u53f7\u8bbe\u4e3a&#8217;1022&#8217;\uff0c\u6211\u4eec\u4e0d\u4e88\u7406\u4f1a\uff0c\u7ee7\u7eed\u8fdb\u884c\u3002<\/p>\n<p>\u5728\u91cc\u9762\u5199\u7740\u66f4\u65b0\u9700\u8981\u51e0\u4e2a\u5c0f\u65f6\u2026\u2026\u5982\u679c\u662f\u8fd9\u6837\u7684\u8bdd\uff0c\u6211\u5728\u5916\u51fa\u4e4b\u524d\u5e94\u8be5\u5148\u66f4\u65b0\u597d\u7684\u2026\u2026\u3002<\/p>\n<p>\u4e00\u60f3\u5230\u8fd9\u4e2a\u95ee\u9898\uff0c\u5c31\u7ecf\u5e38\u88ab\u95ee\u5230\u5e76\u4e14\u65e0\u6cd5\u79bb\u5f00\u7535\u8111\u3002<br \/>\n\u8fd8\u770b\u5230\u4e86\u201c\u7cfb\u7edf\u5c06\u91cd\u65b0\u542f\u52a8\u201d\u7684\u5b57\u6837\uff0c\u4f46\u7cfb\u7edf\u5e76\u6ca1\u6709\u91cd\u65b0\u542f\u52a8\u7684\u8ff9\u8c61\u3002<br \/>\n\u4f3c\u4e4e\u662f\u8fde\u63a5\u8d85\u65f6\u5bfc\u81f4\u65ad\u5f00\u4e86\u8fde\u63a5\u3002<\/p>\n<p>\u91cd\u65b0\u8fde\u63a5\u540e\uff0c\u6d88\u606f\u5df2\u7ecf\u6539\u53d8\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code> * Documentation:  https:\/\/help.ubuntu.com\r\n * Management:     https:\/\/landscape.canonical.com\r\n * Support:        https:\/\/ubuntu.com\/advantage\r\nLast login: Sat Mar  4 20:59:46 2017 from \uff5e\u7565\uff5e\r\nTo run a command as administrator (user \"root\"), use \"sudo &lt;command&gt;\".\r\nSee \"man sudo_root\" for details.\r\n<\/code><\/pre>\n<p>\u90a3\u4e48\uff0c\u73b0\u5728\u66f4\u65b0\u5de5\u4f5c\u5df2\u7ecf\u5b8c\u6210\u4e86\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>sudo su -\r\n<\/code><\/pre>\n<p>\u8f93\u5165\u5bc6\u7801\uff0c\u5207\u6362\u5230root\u7528\u6237\u3002<\/p>\n<pre class=\"post-pre\"><code>cd ..\/\r\nls\r\ncd home\r\nls\r\ncd \u30a2\u30ab\u30a6\u30f3\u30c8\u540d\r\nls\r\ncd shogi\r\nls\r\napery-SDT4.tar.gz  apery-SDT4.zip\r\n<\/code><\/pre>\n<p>\u55ef\u3002\u4e00\u65b9\u662f\u6e90\u4ee3\u7801\uff0c\u53e6\u4e00\u65b9\u662f\u4e8c\u8fdb\u5236\u6587\u4ef6\u3002<\/p>\n<p>\u8fd9\u4e24\u4e2a\u90fd\u4e0d\u662f\u6765\u6e90\u5417\uff1f\u6211\u4e0d\u662f\u5f88\u6e05\u695a\u3002<\/p>\n<p>\u80fd\u89e3\u538btar.gz\u6587\u4ef6\u5417\uff1f<\/p>\n<p>\u89e3\u538b\u547d\u4ee4\u4f3c\u4e4e\u6ca1\u6709\u5b89\u88c5\u6216\u8005\u8def\u5f84\u6ca1\u6709\u914d\u7f6e\u6b63\u786e\u3002<\/p>\n<pre class=\"post-pre\"><code>apt install unzip\r\n<\/code><\/pre>\n<p>\u6211\u8bd5\u8bd5\u8fd9\u4e2a\u547d\u4ee4\u3002\u8fd9\u6b21\u4f3c\u4e4e\u53ef\u4ee5\u6267\u884c unzip \u547d\u4ee4\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>End-of-central-directory \uff5e\u7565\uff5e\r\n<\/code><\/pre>\n<p>\u770b\u8d77\u6765\u6536\u5230\u4e86\u67d0\u79cd\u9519\u8bef\u6d88\u606f\u3002\u90a3\u5c31\u8bd5\u8bd5\u89e3\u538b.zip\u7684\u6587\u4ef6\u3002\u4f3c\u4e4e\u6709\u4e9b\u52a8\u9759\u3002<\/p>\n<pre class=\"post-pre\"><code>ls\r\napery-SDT4 \uff5e\u4ee5\u4e0b\u7565\uff5e\r\n<\/code><\/pre>\n<p>\u9020\u4e86\u4e00\u4e2aapery-SDT4\u7684\u6587\u4ef6\u5939\u5417\uff1f<\/p>\n<p>(Note: The original text does not appear to be in Chinese. The provided paraphrase assumes that &#8220;apery-SDT4&#8221; refers to the name of a directory created.)<\/p>\n<pre class=\"post-pre\"><code>cd apery-SDT4\r\nls\r\nbin  Copying.txt  Readme.txt  src  utils\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u6e90\u4ee3\u7801\u662f\u5426\u5df2\u7ecf\u89e3\u538b\u4e86\uff1f\u662f\u5426\u65e0\u6cd5\u7f16\u8bd1\u8fd9\u4e2a\u6e90\u4ee3\u7801\uff1f<\/p>\n<p>\u8ba9\u6211\u4eec\u6765\u4e86\u89e3\u4e00\u4e0bg++4.8\u4ee5\u4e0a\u662f\u4ec0\u4e48\u610f\u601d\u3002<\/p>\n<h1>\u4f7f\u7528g++\u7f16\u8bd1<\/h1>\n<p>\u300cg++\u300d\uff08C++\uff09<br \/>\nhttp:\/\/kaworu.jpn.org\/cpp\/g++<\/p>\n<p>\u8fd9\u4e2a\u540d\u5b57\u6709\u70b9\u590d\u6742\u2026\u2026\u3002<\/p>\n<p>\u9996\u5148\uff0c\u5728Ubuntu\u7cfb\u7edf\u4e0a\u641c\u7d22\u662f\u5426\u5b89\u88c5\u4e86g++\u3002<br \/>\n\u4ece\u4e0a\u8ff0\u7f51\u7ad9\u83b7\u53d6\u3002<\/p>\n<pre class=\"post-pre\"><code>apt-cache search g++\r\n<\/code><\/pre>\n<p>\u7528\u9f20\u6807\u62d6\u52a8\u4ee5\u590d\u5236\uff0c\u5e76\u5728PuTTY\u4e0a\u53f3\u952e\u7c98\u8d34\u3002<br \/>\n\u51fa\u73b0\u4e86\u5f88\u591a\u6587\u5b57\u5e76\u4e14\u5b83\u4eec\u4e0d\u65ad\u6d41\u52a8\uff0c\u6211\u4e0d\u77e5\u9053\u662f\u4ec0\u4e48\u539f\u56e0\u3002<\/p>\n<p>\u5728Ubuntu\u4e0a\u5b89\u88c5g++<br \/>\n(Translation: Install g++ on Ubuntu)<\/p>\n<p>\u6211\u8981\u7acb\u523b\u8df3\u5230\u6700\u65b0\u7684\u7248\u672c\u4e0a\u53bb\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo apt install g++-4.9\r\n<\/code><\/pre>\n<p>\u5b89\u88c5\u5b8c\u6210\u4e86\u5417\uff1f\u8bd5\u8bd5\u8f93\u5165\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>g++ --version\r\n\r\ng++ (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609\r\nCopyright (C) 2015 Free Software Foundation, Inc.\r\nThis is free software; see the source for copying conditions.  There is NO\r\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\r\n<\/code><\/pre>\n<p>\u4f60\u5df2\u7ecf\u5b89\u88c5\u597d\u4e86g++\u5427\uff1f<\/p>\n<h1>\u8a66\u8457\u5c07Apery\u7684\u6e90\u4ee3\u78bc\u7de8\u8b6f\u6210\u53ef\u57f7\u884c\u7684\u5f62\u5f0f<\/h1>\n<p>\u6211\u8ba4\u4e3aC\u8bed\u8a00\u5c06\u7f16\u8bd1\u8fc7\u7a0b\u5199\u5165Makefile\uff0c\u4f46g++\u5462\uff1f<\/p>\n<p>\u300cMakefile\u7684\u7f16\u5199\u65b9\u5f0f\u300d\uff08Web\u6c42\u804c\u65e5\u8bb0\uff09<br \/>\n<iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"Makefile\u306e\u66f8\u304d\u65b9 - Y&#039;s note\" src=\"https:\/\/hatenablog-parts.com\/embed?url=http%3A%2F%2Fyut.hatenablog.com%2Fentry%2F20120702%2F1341185909#?secret=YpymNWj1sH\" data-secret=\"YpymNWj1sH\" scrolling=\"no\" frameborder=\"0\"><\/iframe><\/p>\n<p>\u770b\u6765\uff0capery-SDT4\/src\/\u76ee\u5f55\u4e0b\u7684Makefile\u4f3c\u4e4e\u4e0e\u6d6e\u304b\u3080\u702c\u5b58\u5728\u5173\u8054\u3002<\/p>\n<pre class=\"post-pre\"><code>cd apery-SDT4\/src\/\r\n<\/code><\/pre>\n<p>\u5207\u6362\u5f53\u524d\u76ee\u5f55\u81f3\u5305\u542bMakefile\u7684\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code>gmake\r\n\r\nNo command 'gmake' found, did you mean:\r\n\uff5e\u7565\uff5e\r\n<\/code><\/pre>\n<p>\u662f\u4e0d\u662f\u4e0d\u4e00\u6837\u5462\u2026\u2026\u3002<\/p>\n<pre class=\"post-pre\"><code>man -k g++\r\n<\/code><\/pre>\n<p>\u592a\u591a\u7684\u547d\u4ee4\u4ee5\u81f3\u4e8e\u641e\u4e0d\u6e05\u695a\u4e86\u3002<\/p>\n<p>\u300c\u81ea\u52a8\u5316GNU Make\u5165\u95e8\u8bfe\u7a0b &#8211; Makefile\u57fa\u7840\uff1a\u89c4\u5219\u6587\u6863\u300d(\u30aa\u30d6\u30e9\u30d6)<br \/>\nhttp:\/\/objectclub.jp\/community\/memorial\/homepage3.nifty.com\/masarl\/article\/gnu-make\/rule.html<\/p>\n<pre class=\"post-pre\"><code>make\r\n<\/code><\/pre>\n<p>\u6709\u70b9\u52a8\u8d77\u6765\u4e86\u3002<br \/>\n\u770b\u4e00\u4e0b\u8f93\u51fa\u7684\u4e00\u90e8\u5206\u3002<\/p>\n<pre class=\"post-pre\"><code>g++ -o apery ..\/obj\/main.o ..\/obj\/bitboard.o ..\/obj\/init.o ..\/obj\/mt64bit.o ..\/o\r\nbj\/position.o ..\/obj\/evalList.o ..\/obj\/move.o ..\/obj\/movePicker.o ..\/obj\/square.\r\no ..\/obj\/usi.o ..\/obj\/generateMoves.o ..\/obj\/evaluate.o ..\/obj\/search.o ..\/obj\/h\r\nand.o ..\/obj\/tt.o ..\/obj\/timeManager.o ..\/obj\/book.o ..\/obj\/benchmark.o ..\/obj\/t\r\nhread.o ..\/obj\/common.o ..\/obj\/pieceScore.o -lpthread  -std=c++11 -fno-exception\r\ns -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u5199\u7740\u8fd9\u53e5\u8bdd\uff0c\u6240\u4ee5\u53ef\u4ee5\u63a8\u65ad\u5728\u4e0a\u4e00\u5c42\u76ee\u5f55\u7684obj\u6587\u4ef6\u5939\u5185\u5e94\u8be5\u6709\u4e2d\u95f4\u6587\u4ef6\uff08.o\uff09\u521b\u5efa\u597d\u4e86\u3002\u987a\u4fbf\u95ee\u4e00\u4e0b\uff0c\u5728Linux\u4e2d\u53ef\u4ee5\u7528\u4ec0\u4e48\u6765\u66ff\u4ee3.exe\u6587\u4ef6\u5462\uff1f\u662f\u547d\u4ee4\u5417\uff1f<\/p>\n<h1>\u7fe0\u9ec4\u8272\u7684\u4eff\u5236\u54c1<\/h1>\n<p>\u55ef\uff1f<\/p>\n<pre class=\"post-pre\"><code>ls\r\napery           evaluate.cpp       move.hpp                   search.hpp\r\nbenchmark.cpp   evaluate.hpp       movePicker.cpp             square.cpp\r\nbenchmark.hpp   generateMoves.cpp  movePicker.hpp             square.hpp\r\nbenchmark.sfen  generateMoves.hpp  mt64bit.cpp                thread.cpp\r\nbitboard.cpp    hand.cpp           mt64bit.hpp                thread.hpp\r\nbitboard.hpp    hand.hpp           overloadEnumOperators.hpp  timeManager.cpp\r\nbook.cpp        ifdef.hpp          piece.hpp                  timeManager.hpp\r\nbook.hpp        init.cpp           pieceScore.cpp             tt.cpp\r\ncolor.hpp       init.hpp           pieceScore.hpp             tt.hpp\r\ncommon.cpp      learner.hpp        position.cpp               usi.cpp\r\ncommon.hpp      main.cpp           position.hpp               usi.hpp\r\nevalList.cpp    Makefile           score.hpp\r\nevalList.hpp    move.cpp           search.cpp\r\n<\/code><\/pre>\n<p>\u5728\u5217\u8868\u7684\u5f00\u5934\uff0capery\uff0c\u55ef\uff0c\u4e0d\u662f\u6587\u4ef6\u5939\uff0c\u800c\u662f\u53ef\u6267\u884c\u6587\u4ef6\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>ls -an\r\n-rwxr-xr-x 1 0 0 444728 Mar  4 22:16 apery\r\n<\/code><\/pre>\n<p>\u7ed9\u4e86 x \u6743\u9650\u3002\u80fd\u4e0d\u80fd\u6267\u884c\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>apery\r\napery: command not found\r\n<\/code><\/pre>\n<p>\u4e3a\u4ec0\u4e48\u4f1a\u6709\u95ee\u9898\u5462\u2026\u2026\u3002<\/p>\n<p>\u521b\u5efa\u4e00\u4e2a\u7c7b\u4f3c\u201cls\u201d\u7684\u547d\u4ee4 (Magenta\u5de5\u4f5c\u5ba4)<br \/>\nhttp:\/\/www.mm2d.net\/main\/prog\/linux\/ls-08.html<\/p>\n<p>\u96be\u9053\u4e0d\u662f\u4e00\u4e2a\u53ef\u6267\u884c\u6587\u4ef6\u5417\u2026\u2026\u3002<\/p>\n<p>\u300c\u6211\u662fUbuntu\u7684\u65b0\u624b\uff0c\u60f3\u5728\u7ec8\u7aef\u4e0a\u6267\u884c\u7a0b\u5e8f\u3002\u300d<\/p>\n<pre class=\"post-pre\"><code>.\/apery\r\n<\/code><\/pre>\n<p>\u5662\uff0c\u597d\u50cf\u5904\u7406\u6ca1\u6709\u56de\u5e94\u88ab\u963b\u585e\u4e86\u3002\u5982\u679c\u5728\u540e\u53f0\u8fd0\u884c\u4f1a\u600e\u6837\u5462\uff1f<\/p>\n<h1>\u8ba9\u7a0b\u5e8f\u5f3a\u5236\u7ed3\u675f<\/h1>\n<p>\u6309\u4e0b\u3010Ctrl\u3011+\u3010C\u3011\uff0c\u5b83\u4e0d\u5c31\u505c\u4e0b\u6765\u4e86\u5417\uff1f\u5df2\u505c\u6b62\u3002<\/p>\n<h1>\u8ba9\u7a0b\u5e8f\u5728\u540e\u53f0\u8fd0\u884c<\/h1>\n<p>\u90a3\u4e48\uff0c\u8981\u5728\u540e\u53f0\u8fd0\u884c\u600e\u4e48\u529e\uff1f<\/p>\n<p>\u3010Linux\u3011\u5728\u540e\u53f0\u8fd0\u884c\u4f5c\u4e1a\uff08\u4e28\u7ef4\u57fa\u767e\u79d1\uff09<br \/>\nhttp:\/\/zh.wikipedia.org\/wiki\/Background%20job<\/p>\n<p>\u5982\u679cQiita\u80fd\u628a\u4eceQiita\u5230Qiita\u7684\u6587\u7ae0\u94fe\u63a5\u53d8\u5f97\u50cfWordPress\u4e00\u6837\u9177\u70ab\u7684\u8bdd\uff0c\u90a3\u5c31\u592a\u597d\u4e86\uff57\uff57\uff57\uff57\uff57\u542c\u8bf4\u5728\u547d\u4ee4\u7684\u672b\u5c3e\u52a0\u4e0a&amp;\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/apery &amp;\r\n[1] 1692\r\n<\/code><\/pre>\n<p>\u54e6\u3002<\/p>\n<h1>\u8bf7\u5728Apery\u4e2d\u4f7f\u7528\u6807\u51c6\u8f93\u5165\u8f93\u5165<\/h1>\n<p>\u90a3\u4e48\uff0c\u6211\u80fd\u548capery\u8bf4\u8bdd\u5417\uff1f\u4f8b\u5982\uff0c\u548c\u725b\u4e4b\u7c7b\u7684\u3002<\/p>\n<p>&#8220;\u56fe\u89e3\uff1a\u6807\u51c6\u8f93\u5165\u3001\u6807\u51c6\u8f93\u51fa\u3001\u6807\u51c6\u9519\u8bef\u8f93\u51fa\u3001\u7ba1\u9053\u662f\u4ec0\u4e48\uff1f&#8221; (Linux)<br \/>\nhttp:\/\/www.creatology.jp\/unix\/outin.html<\/p>\n<pre class=\"post-pre\"><code>echo 'usi' &gt; .\/apery\r\n-su: .\/apery: Text file busy\r\n<\/code><\/pre>\n<p>\u9055\u3046\u306e\u304b\u3002<\/p>\n<p>\u300c\uff08\uff12\u2212\uff15\uff09\u8907\u6570\u306e\u30b3\u30de\u30f3\u30c9\u9593\u3067\u6a19\u6e96\u5165\u51fa\u529b\u3092\u5171\u6709\u3057\uff0c\u9023\u643a\u3059\u308b\u305f\u3081\u306b\u306f\uff0c\u30d1\u30a4\u30d7\u3092\u7528\u3044\u308b\u3002\u300d (Linux\u4e0a\u3067\u30b7\u30a7\u30eb\u304c\u5b9f\u884c\u3055\u308c\u308b\u4ed5\u7d44\u307f\u3092\uff0c\u4f53\u7cfb\u7684\u306b\u7406\u89e3\u3057\u3088\u3046\u3000\uff08bash \u4e2d\u7d1a\u8005\u3078\u306e\u9053\uff09)<br \/>\n<iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"Linux\u4e0a\u3067\u30b7\u30a7\u30eb\u304c\u5b9f\u884c\u3055\u308c\u308b\u4ed5\u7d44\u307f\u3092\uff0c\u4f53\u7cfb\u7684\u306b\u7406\u89e3\u3057\u3088\u3046\u3000\uff08bash \u4e2d\u7d1a\u8005\u3078\u306e\u9053\uff09 - \u4e3b\u306b\u8a00\u8a9e\u3068\u30b7\u30b9\u30c6\u30e0\u958b\u767a\u306b\u95a2\u3057\u3066\" src=\"https:\/\/hatenablog-parts.com\/embed?url=http%3A%2F%2Flanguage-and-engineering.hatenablog.jp%2Fentry%2F20110617%2Fp1#?secret=TlIFqCOUsK\" data-secret=\"TlIFqCOUsK\" scrolling=\"no\" frameborder=\"0\"><\/iframe><\/p>\n<p>\u90a3\u6211\u4eec\u8bd5\u7740\u7528\u7ba1\u9053\uff08\u5782\u76f4\u7aff\uff09\u8fde\u63a5\u4e00\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>echo 'usi' | .\/apery\r\nid name Apery Debug Build\r\nid author Hiraoka Takuya\r\n\r\noption name Best_Book_Move type check default false\r\noption name Book_File type string default book\/20150503\/book.bin\r\noption name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\noption name Clear_Hash type button\r\noption name Draw_Ply type spin default 256 min 1 max 2147483647\r\noption name Engine_Name type string default Apery Debug Build\r\noption name Max_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\noption name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Score type spin default -180 min -32601 max 32601\r\noption name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\noption name Move_Overhead type spin default 30 min 0 max 5000\r\noption name MultiPV type spin default 1 min 1 max 594\r\noption name OwnBook type check default true\r\noption name Slow_Mover type spin default 89 min 1 max 1000\r\noption name Slow_Mover_10 type spin default 10 min 1 max 1000\r\noption name Slow_Mover_16 type spin default 20 min 1 max 1000\r\noption name Slow_Mover_20 type spin default 40 min 1 max 1000\r\noption name Threads type spin default 2 min 1 max 256\r\noption name Time_Margin type spin default 4500 min 0 max 2147483647\r\noption name USI_Hash type spin default 256 min 1 max 1048576\r\noption name USI_Ponder type check default true\r\nusiok\r\n<\/code><\/pre>\n<p>\u54c7\uff01\u80fd\u548cApery\u804a\u5929\u5566\uff01<\/p>\n<h1>\u30c7\u30d0\u30c3\u30b0\u30fb\u30d3\u30eb\u30c9\u3000\u3068\u3000\u30ea\u30ea\u30fc\u30b9\u30fb\u30d3\u30eb\u30c9<\/h1>\n<p>\u4f46\u662f\uff0c\u8bf7\u7a0d\u7b49\u4e00\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>id name Apery Debug Build\r\n<\/code><\/pre>\n<p>\u6211\u5f88\u5728\u610f\u3002\u8fd9\u662f\u4e0d\u662f\u4ee5\u8c03\u8bd5\u6a21\u5f0f\u7f16\u8bd1\u7684\u5e94\u7528\u7a0b\u5e8f\u5462\uff1f<br \/>\n\u6211\u8981\u627e\u51fa\u4ee5\u975e\u8c03\u8bd5\u6a21\u5f0f\u7f16\u8bd1\u7684\u65b9\u6cd5\u2026\u2026\u3002<\/p>\n<p>\u5f53\u67e5\u770bapery-SDT4\u7684usi.cpp\u65f6\uff0c<\/p>\n<pre class=\"post-pre\"><code>#ifdef NDEBUG\r\n    (*this)[\"Engine_Name\"]                 = USIOption(\"ukamuse_SDT4\");\r\n#else\r\n    (*this)[\"Engine_Name\"]                 = USIOption(\"Apery Debug Build\");\r\n#endif\r\n<\/code><\/pre>\n<p>\u5728Makefile\u6587\u4ef6\u4e2d\u53ef\u4ee5\u6307\u5b9aNDEBUG\u8fd9\u4e2a\u9884\u5904\u7406\u5668\u5b8f\uff0c\u6211\u8ba4\u4e3a\u53ea\u8981\u6307\u5b9a\u4e86\u5b83\uff0c\u5c31\u53ef\u4ee5\u53d8\u6210ukamuse_SDT4\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>-DNDEBUG\r\n<\/code><\/pre>\n<p>\u3068\u3044\u3046\u8a18\u8ff0\u3092\u3000\u3088\u304f\u898b\u304b\u3051\u308b\u3002 -D \u3068 NDEBUG \u306a\u306e\u3060\u308d\u3046\u3002\u3069\u3046\u3084\u3063\u3066\u5229\u7528\u3059\u308b\u306e\u304b\uff1f<\/p>\n<p>\u300c\u5982\u4f55\u7f16\u5199Makefile\u300d(\u7f51\u9875\u6c42\u804c\u65e5\u8bb0)<br \/>\n<iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"Makefile\u306e\u66f8\u304d\u65b9 - Y&#039;s note\" src=\"https:\/\/hatenablog-parts.com\/embed?url=http%3A%2F%2Fyut.hatenablog.com%2Fentry%2F20120702%2F1341185909#?secret=YpymNWj1sH\" data-secret=\"YpymNWj1sH\" scrolling=\"no\" frameborder=\"0\"><\/iframe><\/p>\n<p>\u90a3\u4e48\uff0c\u8fd9\u6837\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>make bmi2\r\nmake CFLAGS='-std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopen\r\nmp -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -ma\r\nvx2' LDFLAGS='-lpthread  -flto' apery\r\nmake[1]: Entering directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\nmake[1]: 'apery' is up to date.\r\nmake[1]: Leaving directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\n<\/code><\/pre>\n<p>\u55ef\uff0c\u53d1\u751f\u4e86\u4ec0\u4e48\u4e8b\u60c5\u5462\uff1f<\/p>\n<h1>\u505c\u6b62\u540e\u53f0\u8fdb\u7a0b<\/h1>\n<p>\u987a\u4fbf\u63d0\u4e00\u4e0b\uff0cApery Debug Build\u4f60\u4e00\u76f4\u5728\u540e\u53f0\u8fd0\u884c\u7740\u3002<\/p>\n<p>\u300c\u3010\u505c\u6b62\u3011\u505c\u6b62\u540e\u53f0\u4f5c\u4e1a\u300d(ITPro)<br \/>\nhttp:\/\/itpro.nikkeibp.co.jp\/article\/COLUMN\/20060227\/230891\/<\/p>\n<pre class=\"post-pre\"><code>%1692\r\n-su: fg: %1692: no such job\r\n<\/code><\/pre>\n<p>\u54ce\u5440\u3002<\/p>\n<pre class=\"post-pre\"><code>jobs\r\n[1]+  Stopped                 .\/apery\r\n<\/code><\/pre>\n<p>\u4ec0\u4e48\u65f6\u5019\u505c\u4e0b\u6765\u7684\u5462\uff1f<\/p>\n<h1>\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3057\u3066\u3082\u3046\u4e00\u56de make \u3059\u308b\u3068\uff1f<\/h1>\n<pre class=\"post-pre\"><code>rm apery\r\nls\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code>make bmi2\r\nmake CFLAGS='-std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopen\r\nmp -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -ma\r\nvx2' LDFLAGS='-lpthread  -flto' apery\r\nmake[1]: Entering directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\ng++ -o apery ..\/obj\/main.o ..\/obj\/bitboard.o ..\/obj\/init.o ..\/obj\/mt64bit.o ..\/o\r\nbj\/position.o ..\/obj\/evalList.o ..\/obj\/move.o ..\/obj\/movePicker.o ..\/obj\/square.\r\no ..\/obj\/usi.o ..\/obj\/generateMoves.o ..\/obj\/evaluate.o ..\/obj\/search.o ..\/obj\/h\r\nand.o ..\/obj\/tt.o ..\/obj\/timeManager.o ..\/obj\/book.o ..\/obj\/benchmark.o ..\/obj\/t\r\nhread.o ..\/obj\/common.o ..\/obj\/pieceScore.o -lpthread  -flto -std=c++11 -fno-exc\r\neptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -DNDEBUG -DHAVE_SSE4 -DHAVE_S\r\nSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2\r\nmake[1]: Leaving directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\n\r\nls\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002\u91cd\u65b0\u505a\u4e00\u904d\u3002<\/p>\n<pre class=\"post-pre\"><code>echo 'usi' | .\/apery\r\nid name Apery Debug Build\r\n<\/code><\/pre>\n<p>\u8fd9\u4e0d\u884c\u5417\u54c8\u54c8\u54c8\u54c8<\/p>\n<pre class=\"post-pre\"><code>make publish\r\n\uff5e\u4e2d\u7565\uff5e\r\necho 'usi' | .\/apery\r\nid name ukamuse_SDT4\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u884c\u5417\uff1f\u4e0d\u8fc7\u8dd1\u5206\u5f00\u59cb\u540e\u82b1\u8d39\u7684\u65f6\u95f4\u592a\u957f\u4e86\u3002\u6216\u8005\u662f\u4e3a\u4e86\u4f18\u5316\u800c\u6545\u610f\u8ba9\u5b83\u6267\u884c\u5417\uff1f<\/p>\n<h1>\u6211\u5011\u4f86\u6253\u6383\u4e00\u4e0b<\/h1>\n<p>\u5c1d\u8bd5\u8fdb\u884c\u7b2c\u4e8c\u6b21\u53d1\u5e03\u65f6<\/p>\n<pre class=\"post-pre\"><code>Illegal instruction\r\n<\/code><\/pre>\n<p>\u88ab\u8bf4\u4e86\u8fd9\u6837\u7684\u8bdd\u5c31\u4f1a\u505c\u4e0b\u6765\u3002<\/p>\n<pre class=\"post-pre\"><code>make clean\r\n<\/code><\/pre>\n<p>\u53ea\u8981\u8fd9\u6837\u505a\u5c31\u53ef\u4ee5\u4e86\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>cd ..\r\nls obj\r\n<\/code><\/pre>\n<p>obj\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e2d\u3092\u7a7a\u3063\u307d\u306b\u3057\u3066\u304f\u308c\u305f\u307f\u305f\u3044\u3060\u3002<\/p>\n<pre class=\"post-pre\"><code>make publish\r\n<\/code><\/pre>\n<p>\u3088\u3057\u3001\u307e\u305f\u30b3\u30f3\u30d1\u30a4\u30eb\u304c\u8d70\u308a\u51fa\u3057\u305f\u3002<\/p>\n<h1>\u30a4\u30ea\u30fc\u30ac\u30eb\u3000\u30a4\u30f3\u30b9\u30c8\u30e9\u30af\u30b7\u30e7\u30f3<\/h1>\n<pre class=\"post-pre\"><code>.\/apery\r\nIllegal instruction\r\n<\/code><\/pre>\n<p>\u4e8b\u60c5\u5f80\u5f80\u4e0d\u4f1a\u671d\u7740\u987a\u5229\u7684\u65b9\u5411\u53d1\u5c55\u3002<\/p>\n<p>\u628a apery \u79fb\u52a8\u5230 bin \u6587\u4ef6\u5939\u91cc\uff0c\u600e\u4e48\u6837\uff1f<\/p>\n<pre class=\"post-pre\"><code>mv apery ..\/bin\/apery\r\nls\r\nls ..\/bin\r\napery\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code>..\/bin\/apery\r\nIllegal instruction\r\n<\/code><\/pre>\n<p>\u679c\u771f\u662f\u5728\u67d0\u4e2a\u5730\u65b9\u635f\u574f\u4e86\u5417\uff1f\u6216\u8005\u662f\u6ca1\u6709\u8bc4\u4ef7\u6587\u4ef6\u5462\uff1f<\/p>\n<h1>\u751f\u6210\u6587\u4ef6 \u548c \u8fd0\u884c\u547d\u4ee4 make publish<\/h1>\n<p>\u3046\u3093\uff1f Makefile \u306b\u4f55\u304b\u66f8\u3044\u3066\u308b\u305e\u3002<\/p>\n<pre class=\"post-pre\"><code>#CFLAGS   += -march=native # make publish \u306e\u6642\u306f\u3053\u3053\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002\r\n<\/code><\/pre>\n<p>\u4f60\u8fd9\u662f\u5728\u7528\u6ce8\u91ca\u554a\uff0c\u5934\u4e0a\u6709\u4e2a # \u6807\u5fd7\u7740\u5462\u3002<\/p>\n<pre class=\"post-pre\"><code>make publish\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>make profgen\r\nmake[1]: Entering directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\nmake CFLAGS='-std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov' LDFLAGS='-lpthread  -fprofile-generate -lgcov' bmi2\r\nmake[2]: Entering directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\nmake CFLAGS='-std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2' LDFLAGS='-lpthread  -fprofile-generate -lgcov -flto' apery\r\nmake[3]: Entering directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/main.o -c main.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/bitboard.o -c bitboard.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/init.o -c init.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/mt64bit.o -c mt64bit.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/position.o -c position.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/evalList.o -c evalList.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/move.o -c move.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/movePicker.o -c movePicker.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/square.o -c square.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/usi.o -c usi.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/generateMoves.o -c generateMoves.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/evaluate.o -c evaluate.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/search.o -c search.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/hand.o -c hand.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/tt.o -c tt.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/timeManager.o -c timeManager.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/book.o -c book.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/benchmark.o -c benchmark.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/thread.o -c thread.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/common.o -c common.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2  -o ..\/obj\/pieceScore.o -c pieceScore.cpp\r\ng++ -o apery ..\/obj\/main.o ..\/obj\/bitboard.o ..\/obj\/init.o ..\/obj\/mt64bit.o ..\/obj\/position.o ..\/obj\/evalList.o ..\/obj\/move.o ..\/obj\/movePicker.o ..\/obj\/square.o ..\/obj\/usi.o ..\/obj\/generateMoves.o ..\/obj\/evaluate.o ..\/obj\/search.o ..\/obj\/hand.o ..\/obj\/tt.o ..\/obj\/timeManager.o ..\/obj\/book.o ..\/obj\/benchmark.o ..\/obj\/thread.o ..\/obj\/common.o ..\/obj\/pieceScore.o -lpthread  -fprofile-generate -lgcov -flto -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE4 -DHAVE_SSE42 -DHAVE_BMI2 -msse4.2 -mbmi2 -DHAVE_AVX2 -mavx2\r\nmake[3]: Leaving directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\nmake[2]: Leaving directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\nmake[1]: Leaving directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\nMakefile:86: recipe for target 'publish' failed\r\nmake: *** [publish] Illegal instruction\r\n<\/code><\/pre>\n<p>\u90a3\u4e48\uff0c<\/p>\n<pre class=\"post-pre\"><code>make clean\r\nmake profgen_sse\r\n<\/code><\/pre>\n<p>\u8fd9\u6b21\u662f\u5426\u6210\u529f\u7f16\u8bd1\u4e86\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>ls\r\n\uff5e\u7565\uff5e\r\necho 'usi' | .\/apery\r\nid name ukamuse_SDT4\r\nid author Hiraoka Takuya\r\n\r\noption name Best_Book_Move type check default false\r\noption name Book_File type string default book\/20150503\/book.bin\r\noption name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\noption name Clear_Hash type button\r\noption name Draw_Ply type spin default 256 min 1 max 2147483647\r\noption name Engine_Name type string default ukamuse_SDT4\r\noption name Max_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\noption name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Score type spin default -180 min -32601 max 32601\r\noption name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\noption name Move_Overhead type spin default 30 min 0 max 5000\r\noption name MultiPV type spin default 1 min 1 max 594\r\noption name OwnBook type check default true\r\noption name Slow_Mover type spin default 89 min 1 max 1000\r\noption name Slow_Mover_10 type spin default 10 min 1 max 1000\r\noption name Slow_Mover_16 type spin default 20 min 1 max 1000\r\noption name Slow_Mover_20 type spin default 40 min 1 max 1000\r\noption name Threads type spin default 2 min 1 max 256\r\noption name Time_Margin type spin default 4500 min 0 max 2147483647\r\noption name USI_Hash type spin default 256 min 1 max 1048576\r\noption name USI_Ponder type check default true\r\nusiok\r\n<\/code><\/pre>\n<p>\u3088\u3057\uff01<\/p>\n<h1>\u6211\u4eec\u6765\u8fdb\u884c\u4e00\u6b21\u57fa\u51c6\u6d4b\u8bd5\u3002<\/h1>\n<pre class=\"post-pre\"><code>.\/apery &amp;\r\n[3] 2508\r\n<\/code><\/pre>\n<p>\u5728\u90a3\u4e2a\u65f6\u5019\uff0c\u6211\u4f3c\u4e4e\u6b63\u5728\u5c1d\u8bd5\u590d\u5236\u7c98\u8d34\uff0c\u7136\u540e\u6309\u4e0b\u4e86 [Ctrl] + [C]\uff0c\u611f\u89c9\u5bfc\u81f4\u4e86\u8fdb\u7a0b\u7684\u4e2d\u65ad\u3002<br \/>\n\u6211\u9700\u8981\u91cd\u65b0\u5f00\u59cb\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/apery &amp;\r\n[4] 2511\r\n<\/code><\/pre>\n<p>\u5728PuTTY\u4e2d\uff0c\u53ea\u9700\u4f7f\u7528\u9f20\u6807\u62d6\u52a8\u5373\u53ef\u590d\u5236\u3002<br \/>\n\u4f7f\u7528\u5de6\u952e\u5355\u51fb\u5373\u53ef\u7c98\u8d34\u3002<\/p>\n<pre class=\"post-pre\"><code>echo 'bench' | .\/apery\r\n\r\n[4]+  Stopped                 .\/apery\r\n<\/code><\/pre>\n<p>\u55ef\uff0c\u8fd9\u4e0d\u662f\u6b63\u786e\u7684\u7528\u6cd5\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>.\/apery bench\r\nKilled\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u4e5f\u4e0d\u5bf9\u3002<\/p>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u8aad\u3093\u3067\u3044\u308b\u3093\u3060\u304c\u3001\u305d\u3046\u3044\u3084\u3001\u304d\u3075\u308f\u3089\u3077\u308a\u30fc\u3092\u4f5c\u3063\u3066\u3044\u308b\u3068\u304d\u3001.exe \u3068\u4e00\u7dd2\u306e\u30d5\u30a9\u30eb\u30c0\u30fc\u306b benchmark.sfen \u30d5\u30a1\u30a4\u30eb\u304c\u7121\u304b\u3063\u305f\u3089\u843d\u3061\u3066\u305f\u306a\u3042\u3002<\/p>\n<pre class=\"post-pre\"><code>ls\r\napery           evaluate.cpp       move.hpp                   search.hpp\r\nbenchmark.cpp   evaluate.hpp       movePicker.cpp             square.cpp\r\nbenchmark.hpp   generateMoves.cpp  movePicker.hpp             square.hpp\r\nbenchmark.sfen  generateMoves.hpp  mt64bit.cpp                thread.cpp\r\nbitboard.cpp    hand.cpp           mt64bit.hpp                thread.hpp\r\nbitboard.hpp    hand.hpp           overloadEnumOperators.hpp  timeManager.cpp\r\nbook.cpp        ifdef.hpp          piece.hpp                  timeManager.hpp\r\nbook.hpp        init.cpp           pieceScore.cpp             tt.cpp\r\ncolor.hpp       init.hpp           pieceScore.hpp             tt.hpp\r\ncommon.cpp      learner.hpp        position.cpp               usi.cpp\r\ncommon.hpp      main.cpp           position.hpp               usi.hpp\r\nevalList.cpp    Makefile           score.hpp\r\nevalList.hpp    move.cpp           search.cpp\r\n<\/code><\/pre>\n<p>\u597d\u7684\uff0c\u90a3\u5c31\u5c06apery\u548cbenchmark.sfen\u6587\u4ef6\u653e\u5165bin\u6587\u4ef6\u5939\u4e2d\uff0c\u5e94\u8be5\u5c31\u53ef\u4ee5\u4e86\u5427\uff1f<\/p>\n<pre class=\"post-pre\"><code>mv apery ..\/bin\/apery\r\nmv benchmark.sfen ..\/bin\/benchmark.sfen\r\nls ..\/bin\r\napery  benchmark.sfen\r\n<\/code><\/pre>\n<p>\u8bf7\u95ee\u8fd9\u6837\u53ef\u4ee5\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>..\/bin\/apery bench\r\nKilled\r\n<\/code><\/pre>\n<p>\u8fd9\u662f\u4e0d\u884c\u7684\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>..\/bin\/apery bench &amp;\r\n[5] 2571\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>[1]   Stopped                 .\/apery\r\n[2]   Stopped                 .\/apery\r\n[3]-  Stopped                 .\/apery\r\n[4]+  Stopped                 .\/apery\r\n[5]   Killed                  ..\/bin\/apery bench\r\n<\/code><\/pre>\n<p>\u300c\u6740\u6b7b\u300d\u548c\u300c\u963b\u6b62\u300d\u6709\u4ec0\u4e48\u4e0d\u540c\u4e4b\u5904\u5462\uff1f<\/p>\n<h1>\u304d\u3075\u308f\u3089\u3077\u308a\u30fc\u3067 bench<\/h1>\n<p>\u5927\u6a39\u306e\u679d\u3092\u6539\u60aa\u3057\u305f\u3000\u304d\u3075\u308f\u3089\u3077\u308a\u30fc\u3000\u3060\u3068\u3001\u307e\u305a Kifuwarapery.exe \u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3066\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u51fa\u3057\u3001<br \/>\n\u3057\u3070\u3089\u304f\u5f85\u3063\u3066\u5165\u529b\u3067\u304d\u308b\u72b6\u614b\u306b\u306a\u3063\u3066\u304b\u3089 bench \u3068\u5165\u529b\u3057\u3066[Enter]\u30ad\u30fc\u3092\u62bc\u3059\u3068\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u304c\u8d70\u308a\u51fa\u3059\u3002<\/p>\n<p>\u6211\u89c9\u5f97\u53ef\u80fd\u4e5f\u662f\u4e00\u6837\u7684\u60c5\u51b5\u2026\u2026\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/apery\r\n<\/code><\/pre>\n<p>\u4e4b\u540e\uff0c\u6beb\u4e0d\u72b9\u8c6b\u5730\u5c31\u4f1a\u53d8\u6210\u88ab\u6740\u6389\u7684\u72b6\u6001\uff0c\u4e0d\u662f\u5417\uff1f<\/p>\n<p>\u5728aper\u7684main.cpp\u6587\u4ef6\u4e2d\uff0c\u6709\u4e00\u4e2a\u540d\u4e3amain\u7684\u51fd\u6570\u3002<\/p>\n<pre class=\"post-pre\"><code>\/\/ \u5c06\u68cb\u3092\u6307\u3059\u30bd\u30d5\u30c8\r\nint main(int argc, char* argv[]) {\r\n    initTable();\r\n    Position::initZobrist();\r\n    HuffmanCodedPos::init();\r\n    auto s = std::unique_ptr&lt;Searcher&gt;(new Searcher);\r\n    s-&gt;init();\r\n    s-&gt;doUSICommandLoop(argc, argv);\r\n    s-&gt;threads.exit();\r\n}\r\n<\/code><\/pre>\n<p>\u306a\u306e\u3067\u3001 \u30b3\u30de\u30f3\u30c9\u30fb\u30eb\u30fc\u30d7\u3067\u6b62\u307e\u3063\u3066\u3044\u3066\u304f\u308c\u308b\u3068\u601d\u3046\u3093\u3060\u304c\u2026\u2026\u3001\u8abf\u3079\u3066\u307f\u308b\u304b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kt\">void<\/span> <span class=\"n\">Searcher<\/span><span class=\"o\">::<\/span><span class=\"n\">doUSICommandLoop<\/span><span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">argc<\/span><span class=\"p\">,<\/span> <span class=\"kt\">char<\/span><span class=\"o\">*<\/span> <span class=\"n\">argv<\/span><span class=\"p\">[])<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"kt\">bool<\/span> <span class=\"n\">evalTableIsRead<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">false<\/span><span class=\"p\">;<\/span>\r\n    <span class=\"n\">Position<\/span> <span class=\"n\">pos<\/span><span class=\"p\">(<\/span><span class=\"n\">DefaultStartPositionSFEN<\/span><span class=\"p\">,<\/span> <span class=\"n\">threads<\/span><span class=\"p\">.<\/span><span class=\"n\">main<\/span><span class=\"p\">(),<\/span> <span class=\"n\">thisptr<\/span><span class=\"p\">);<\/span>\r\n\r\n    <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">string<\/span> <span class=\"n\">cmd<\/span><span class=\"p\">;<\/span>\r\n    <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">string<\/span> <span class=\"n\">token<\/span><span class=\"p\">;<\/span>\r\n\r\n    <span class=\"k\">for<\/span> <span class=\"p\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">argc<\/span><span class=\"p\">;<\/span> <span class=\"o\">++<\/span><span class=\"n\">i<\/span><span class=\"p\">)<\/span>\r\n        <span class=\"n\">cmd<\/span> <span class=\"o\">+=<\/span> <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">string<\/span><span class=\"p\">(<\/span><span class=\"n\">argv<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">])<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" \"<\/span><span class=\"p\">;<\/span>\r\n\r\n    <span class=\"k\">do<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">argc<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">1<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"o\">!<\/span><span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">getline<\/span><span class=\"p\">(<\/span><span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">cin<\/span><span class=\"p\">,<\/span> <span class=\"n\">cmd<\/span><span class=\"p\">))<\/span>\r\n            <span class=\"n\">cmd<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"quit\"<\/span><span class=\"p\">;<\/span>\r\n\r\n        <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">istringstream<\/span> <span class=\"n\">ssCmd<\/span><span class=\"p\">(<\/span><span class=\"n\">cmd<\/span><span class=\"p\">);<\/span>\r\n\r\n        <span class=\"n\">ssCmd<\/span> <span class=\"o\">&gt;&gt;<\/span> <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">skipws<\/span> <span class=\"o\">&gt;&gt;<\/span> <span class=\"n\">token<\/span><span class=\"p\">;<\/span>\r\n\r\n        <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"quit\"<\/span> <span class=\"o\">||<\/span> <span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"stop\"<\/span> <span class=\"o\">||<\/span> <span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"ponderhit\"<\/span> <span class=\"o\">||<\/span> <span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"gameover\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">!=<\/span> <span class=\"s\">\"ponderhit\"<\/span> <span class=\"o\">||<\/span> <span class=\"n\">signals<\/span><span class=\"p\">.<\/span><span class=\"n\">stopOnPonderHit<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n                <span class=\"n\">signals<\/span><span class=\"p\">.<\/span><span class=\"n\">stop<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\r\n                <span class=\"n\">threads<\/span><span class=\"p\">.<\/span><span class=\"n\">main<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">startSearching<\/span><span class=\"p\">(<\/span><span class=\"nb\">true<\/span><span class=\"p\">);<\/span>\r\n            <span class=\"p\">}<\/span>\r\n            <span class=\"k\">else<\/span>\r\n                <span class=\"n\">limits<\/span><span class=\"p\">.<\/span><span class=\"n\">ponder<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">false<\/span><span class=\"p\">;<\/span>\r\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"ponderhit\"<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">limits<\/span><span class=\"p\">.<\/span><span class=\"n\">moveTime<\/span> <span class=\"o\">!=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">)<\/span>\r\n                <span class=\"n\">limits<\/span><span class=\"p\">.<\/span><span class=\"n\">moveTime<\/span> <span class=\"o\">+=<\/span> <span class=\"n\">timeManager<\/span><span class=\"p\">.<\/span><span class=\"n\">elapsed<\/span><span class=\"p\">();<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"go\"<\/span>       <span class=\"p\">)<\/span> <span class=\"n\">go<\/span><span class=\"p\">(<\/span><span class=\"n\">pos<\/span><span class=\"p\">,<\/span> <span class=\"n\">ssCmd<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"position\"<\/span> <span class=\"p\">)<\/span> <span class=\"n\">setPosition<\/span><span class=\"p\">(<\/span><span class=\"n\">pos<\/span><span class=\"p\">,<\/span> <span class=\"n\">ssCmd<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"usinewgame\"<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ isready \u3067\u6e96\u5099\u306f\u51fa\u6765\u305f\u306e\u3067\u3001\u5bfe\u5c40\u958b\u59cb\u6642\u306b\u7279\u306b\u3059\u308b\u4e8b\u306f\u306a\u3044\u3002<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"usi\"<\/span>      <span class=\"p\">)<\/span> <span class=\"n\">SYNCCOUT<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"id name \"<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">string<\/span><span class=\"p\">(<\/span><span class=\"n\">options<\/span><span class=\"p\">[<\/span><span class=\"s\">\"Engine_Name\"<\/span><span class=\"p\">])<\/span>\r\n                                                <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"s\">id author Hiraoka Takuya\"<\/span>\r\n                                                <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">options<\/span>\r\n                                                <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"s\">usiok\"<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">SYNCENDL<\/span><span class=\"p\">;<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"isready\"<\/span>  <span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"c1\">\/\/ \u5bfe\u5c40\u958b\u59cb\u524d\u306e\u6e96\u5099\u3002<\/span>\r\n            <span class=\"n\">tt<\/span><span class=\"p\">.<\/span><span class=\"n\">clear<\/span><span class=\"p\">();<\/span>\r\n            <span class=\"n\">threads<\/span><span class=\"p\">.<\/span><span class=\"n\">main<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">previousScore<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ScoreInfinite<\/span><span class=\"p\">;<\/span>\r\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">evalTableIsRead<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n                <span class=\"c1\">\/\/ \u4e00\u6642\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\u3057\u3066 Evaluator::init() \u3092\u547c\u3093\u3060\u76f4\u5f8c\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u7834\u68c4\u3059\u308b\u3002<\/span>\r\n                <span class=\"c1\">\/\/ \u8a55\u4fa1\u95a2\u6570\u306e\u6b21\u5143\u4e0b\u3052\u3092\u3057\u305f\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3059\u308b\u5206\u306e\u30e1\u30e2\u30ea\u304c\u7121\u99c4\u306a\u70ba\u3001<\/span>\r\n                <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">unique_ptr<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">Evaluator<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">init<\/span><span class=\"p\">(<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">::<\/span><span class=\"n\">evalDir<\/span><span class=\"p\">,<\/span> <span class=\"nb\">true<\/span><span class=\"p\">);<\/span>\r\n                <span class=\"n\">evalTableIsRead<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\r\n            <span class=\"p\">}<\/span>\r\n            <span class=\"n\">SYNCCOUT<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"readyok\"<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">SYNCENDL<\/span><span class=\"p\">;<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"setoption\"<\/span><span class=\"p\">)<\/span> <span class=\"n\">setOption<\/span><span class=\"p\">(<\/span><span class=\"n\">ssCmd<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"write_eval\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span> <span class=\"c1\">\/\/ \u5bfe\u5c40\u3067\u4f7f\u3046\u70ba\u306e\u8a55\u4fa1\u95a2\u6570\u30d0\u30a4\u30ca\u30ea\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3059\u3002<\/span>\r\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">evalTableIsRead<\/span><span class=\"p\">)<\/span>\r\n                <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">unique_ptr<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">Evaluator<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">init<\/span><span class=\"p\">(<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">::<\/span><span class=\"n\">evalDir<\/span><span class=\"p\">,<\/span> <span class=\"nb\">true<\/span><span class=\"p\">);<\/span>\r\n            <span class=\"n\">Evaluator<\/span><span class=\"o\">::<\/span><span class=\"n\">writeSynthesized<\/span><span class=\"p\">(<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">::<\/span><span class=\"n\">evalDir<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"p\">}<\/span>\r\n<span class=\"cp\">#if defined LEARN\r\n<\/span>        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"l\"<\/span>        <span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"k\">auto<\/span> <span class=\"n\">learner<\/span> <span class=\"o\">=<\/span> <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">unique_ptr<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Learner<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">Learner<\/span><span class=\"p\">);<\/span>\r\n            <span class=\"n\">learner<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">learn<\/span><span class=\"p\">(<\/span><span class=\"n\">pos<\/span><span class=\"p\">,<\/span> <span class=\"n\">ssCmd<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"make_teacher\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">evalTableIsRead<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n                <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">unique_ptr<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">Evaluator<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">init<\/span><span class=\"p\">(<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">::<\/span><span class=\"n\">evalDir<\/span><span class=\"p\">,<\/span> <span class=\"nb\">true<\/span><span class=\"p\">);<\/span>\r\n                <span class=\"n\">evalTableIsRead<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\r\n            <span class=\"p\">}<\/span>\r\n            <span class=\"n\">make_teacher<\/span><span class=\"p\">(<\/span><span class=\"n\">ssCmd<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"use_teacher\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">evalTableIsRead<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n                <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">unique_ptr<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">Evaluator<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">init<\/span><span class=\"p\">(<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">::<\/span><span class=\"n\">evalDir<\/span><span class=\"p\">,<\/span> <span class=\"nb\">true<\/span><span class=\"p\">);<\/span>\r\n                <span class=\"n\">evalTableIsRead<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\r\n            <span class=\"p\">}<\/span>\r\n            <span class=\"n\">use_teacher<\/span><span class=\"p\">(<\/span><span class=\"n\">pos<\/span><span class=\"p\">,<\/span> <span class=\"n\">ssCmd<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"check_teacher\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"n\">check_teacher<\/span><span class=\"p\">(<\/span><span class=\"n\">ssCmd<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"print\"<\/span>    <span class=\"p\">)<\/span> <span class=\"n\">printEvalTable<\/span><span class=\"p\">(<\/span><span class=\"n\">SQ88<\/span><span class=\"p\">,<\/span> <span class=\"n\">f_gold<\/span> <span class=\"o\">+<\/span> <span class=\"n\">SQ78<\/span><span class=\"p\">,<\/span> <span class=\"n\">f_gold<\/span><span class=\"p\">,<\/span> <span class=\"nb\">false<\/span><span class=\"p\">);<\/span>\r\n<span class=\"cp\">#endif\r\n#if !defined MINIMUL\r\n<\/span>        <span class=\"c1\">\/\/ \u4ee5\u4e0b\u3001\u30c7\u30d0\u30c3\u30b0\u7528<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"bench\"<\/span>    <span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"n\">evalTableIsRead<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n                <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">unique_ptr<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">Evaluator<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">init<\/span><span class=\"p\">(<\/span><span class=\"n\">Evaluator<\/span><span class=\"o\">::<\/span><span class=\"n\">evalDir<\/span><span class=\"p\">,<\/span> <span class=\"nb\">true<\/span><span class=\"p\">);<\/span>\r\n                <span class=\"n\">evalTableIsRead<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">true<\/span><span class=\"p\">;<\/span>\r\n            <span class=\"p\">}<\/span>\r\n            <span class=\"n\">benchmark<\/span><span class=\"p\">(<\/span><span class=\"n\">pos<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"p\">}<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"key\"<\/span>      <span class=\"p\">)<\/span> <span class=\"n\">SYNCCOUT<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">pos<\/span><span class=\"p\">.<\/span><span class=\"n\">getKey<\/span><span class=\"p\">()<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">SYNCENDL<\/span><span class=\"p\">;<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"tosfen\"<\/span>   <span class=\"p\">)<\/span> <span class=\"n\">SYNCCOUT<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">pos<\/span><span class=\"p\">.<\/span><span class=\"n\">toSFEN<\/span><span class=\"p\">()<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">SYNCENDL<\/span><span class=\"p\">;<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"eval\"<\/span>     <span class=\"p\">)<\/span> <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">cout<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">evaluateUnUseDiff<\/span><span class=\"p\">(<\/span><span class=\"n\">pos<\/span><span class=\"p\">)<\/span> <span class=\"o\">\/<\/span> <span class=\"n\">FVScale<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">endl<\/span><span class=\"p\">;<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"d\"<\/span>        <span class=\"p\">)<\/span> <span class=\"n\">pos<\/span><span class=\"p\">.<\/span><span class=\"n\">print<\/span><span class=\"p\">();<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"s\"<\/span>        <span class=\"p\">)<\/span> <span class=\"n\">measureGenerateMoves<\/span><span class=\"p\">(<\/span><span class=\"n\">pos<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"t\"<\/span>        <span class=\"p\">)<\/span> <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">cout<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">pos<\/span><span class=\"p\">.<\/span><span class=\"n\">mateMoveIn1Ply<\/span><span class=\"p\">().<\/span><span class=\"n\">toCSA<\/span><span class=\"p\">()<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">std<\/span><span class=\"o\">::<\/span><span class=\"n\">endl<\/span><span class=\"p\">;<\/span>\r\n        <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"b\"<\/span>        <span class=\"p\">)<\/span> <span class=\"n\">makeBook<\/span><span class=\"p\">(<\/span><span class=\"n\">pos<\/span><span class=\"p\">,<\/span> <span class=\"n\">ssCmd<\/span><span class=\"p\">);<\/span>\r\n<span class=\"cp\">#endif\r\n<\/span>        <span class=\"k\">else<\/span>                           <span class=\"n\">SYNCCOUT<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"unknown command: \"<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">cmd<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">SYNCENDL<\/span><span class=\"p\">;<\/span>\r\n    <span class=\"p\">}<\/span> <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"n\">token<\/span> <span class=\"o\">!=<\/span> <span class=\"s\">\"quit\"<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">argc<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\r\n\r\n    <span class=\"n\">threads<\/span><span class=\"p\">.<\/span><span class=\"n\">main<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">waitForSearchFinished<\/span><span class=\"p\">();<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u3046\u30fc\u3080\u3002Windows\u306e\u5b9f\u884c\u3068\u3001Linux\u306e\u5b9f\u884c\u306b\u9055\u3044\u306f\u3042\u308b\u306e\u3060\u308d\u3046\u304b\u3002<\/p>\n<pre class=\"post-pre\"><code>Makefile:86: recipe for target 'publish' failed\r\nmake: *** [publish] Killed\r\n<\/code><\/pre>\n<p>\u55ef\uff0c\u6700\u8fd1\u201cKilled\u201d\u7ecf\u5e38\u51fa\u73b0\u5462\u3002<\/p>\n<pre class=\"post-pre\"><code>jobs\r\n[1]   Stopped                 .\/apery\r\n[2]   Stopped                 .\/apery\r\n[3]   Stopped                 .\/apery\r\n[4]   Stopped                 .\/apery\r\n[5]-  Stopped                 .\/apery  (wd: \/home\/csg10\/shogi\/apery-SDT4\/bin)\r\n[6]+  Stopped                 .\/apery  (wd: \/home\/csg10\/shogi\/apery-SDT4\/bin)\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u505c\u4e0b\u6765\u7684\u5806\u79ef\u662f\u597d\u4e8b\u5417\uff1f<\/p>\n<h1>\u8bd5\u7740\u4f7f\u7528kill\u547d\u4ee4-<\/h1>\n<p>\u300c\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30d7\u30ed\u30bb\u30b9(\u30b8\u30e7\u30d6)\u306e\u7ba1\u7406Add Star\u300d \uff08satake7\u2019s memo\uff09<br \/>\nhttp:\/\/d.hatena.ne.jp\/satake7\/20080606\/p1<\/p>\n<p>\u8fd9\u6837\u5bf9\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>kill %1\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>jobs\r\n[1]   Terminated              .\/apery\r\n[2]   Stopped                 .\/apery\r\n[3]   Stopped                 .\/apery\r\n[4]   Stopped                 .\/apery\r\n[5]-  Stopped                 .\/apery  (wd: \/home\/csg10\/shogi\/apery-SDT4\/bin)\r\n[6]+  Stopped                 .\/apery  (wd: \/home\/csg10\/shogi\/apery-SDT4\/bin)\r\n<\/code><\/pre>\n<p>Stopped \u304c Terminated \u306b\u5909\u308f\u3063\u305f\u304c\u3001\u306a\u3093\u306e\u3053\u3063\u3061\u3083\u3002<br \/>\n\u3053\u306e\u8abf\u5b50\u3067\u5168\u90e8\u306e\u30b8\u30e7\u30d6\u3092kill\u3057\u305f\u3002<\/p>\n<pre class=\"post-pre\"><code>jobs\r\nmake clean\r\nmake publish\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u5417\u3002<\/p>\n<h1>SSE2\u7684\u6559\u6388\u751f\u6210\u5668<\/h1>\n<pre class=\"post-pre\"><code>    make clean\r\n    make profgen_sse2\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>make CFLAGS='-std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov' LDFLAGS='-lpthread  -fprofile-generate -lgcov' sse2\r\nmake[1]: Entering directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\nmake CFLAGS='-std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2' LDFLAGS='-lpthread  -fprofile-generate -lgcov -flto' apery\r\nmake[2]: Entering directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/main.o -c main.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/bitboard.o -c bitboard.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/init.o -c init.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/mt64bit.o -c mt64bit.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/position.o -c position.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/evalList.o -c evalList.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/move.o -c move.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/movePicker.o -c movePicker.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/square.o -c square.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/usi.o -c usi.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/generateMoves.o -c generateMoves.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/evaluate.o -c evaluate.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/search.o -c search.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/hand.o -c hand.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/tt.o -c tt.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/timeManager.o -c timeManager.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/book.o -c book.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/benchmark.o -c benchmark.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/thread.o -c thread.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/common.o -c common.cpp\r\ng++ -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2  -o ..\/obj\/pieceScore.o -c pieceScore.cpp\r\ng++ -o apery ..\/obj\/main.o ..\/obj\/bitboard.o ..\/obj\/init.o ..\/obj\/mt64bit.o ..\/obj\/position.o ..\/obj\/evalList.o ..\/obj\/move.o ..\/obj\/movePicker.o ..\/obj\/square.o ..\/obj\/usi.o ..\/obj\/generateMoves.o ..\/obj\/evaluate.o ..\/obj\/search.o ..\/obj\/hand.o ..\/obj\/tt.o ..\/obj\/timeManager.o ..\/obj\/book.o ..\/obj\/benchmark.o ..\/obj\/thread.o ..\/obj\/common.o ..\/obj\/pieceScore.o -lpthread  -fprofile-generate -lgcov -flto -std=c++11 -fno-exceptions -fno-rtti -Wextra -Ofast -MMD -MP -fopenmp -fprofile-generate -lgcov -DNDEBUG -DHAVE_SSE2 -msse2\r\nmake[2]: Leaving directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\nmake[1]: Leaving directory '\/home\/csg10\/shogi\/apery-SDT4\/src'\r\n<\/code><\/pre>\n<p>\u8fd9\u4e0d\u662f\u5f88\u987a\u5229\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>.\/apery &amp;\r\n[1] 3144\r\njobs\r\n[1]+  Stopped                 .\/apery\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>.\/apery bench\r\ninfo string start setting eval table\r\ninfo string end setting eval table\r\n<\/code><\/pre>\n<p>\u306a\u3093\u306e\u3053\u3063\u3061\u3083\u3002\u4eca\u307e\u3067\u3088\u308a\u306f\u3000\u53cd\u5fdc\u304c\u3042\u308b\u3060\u3051\u30de\u30b7\u304b\u3002<\/p>\n<p>\u3069\u3046\u3082\u3001\u30e1\u30a4\u30f3\u30eb\u30fc\u30d7\u304b\u3089\u3059\u3050\u629c\u3051\u3066\u3057\u307e\u3046\u306e\u304b\u3001Stopped \u306b\u306a\u3063\u3066\u3057\u307e\u3046\u3088\u3046\u3060\u3002<\/p>\n<h1>\u8a55\u4fa1\u95a2\u6570\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u3044\u3093\u3058\u3083\u306a\u3044\u304b\uff1f<\/h1>\n<p>\u8ba9\u6211\u4eec\u6765\u8c03\u67e5\u4e00\u4e0b\uff0c\u5947\u5999\u7684\u673a\u5668\u662f\u5982\u4f55\u8fd0\u4f5c\u7684\u2026\u2026\u3002<\/p>\n<p>\u521b\u5efa\u4e00\u4e2a\u7c7b\u4f3c\u4e8e make_synthesized_eval.sh \u7684\u6587\u4ef6\uff0c\u7f16\u5199\u6210 .bat \u683c\u5f0f\uff0c\u7136\u540e\u5728 20151105 \u6587\u4ef6\u5939\u4e2d\u751f\u6210\u4e09\u4e2a\u4e8c\u8fdb\u5236\u6587\u4ef6 KPP_synthesized.bin\u3001KK_synthesized.bin \u548c KKP_synthesized.bin\u3002<\/p>\n<p>\u6211\u5011\u4f86\u67e5\u4e00\u67e5\u5427\u3002<\/p>\n<h1>ukamuse_sdt4.zip \u7684\u4e2d\u6587\u91ca\u4e49\u662f\u82f1\u56fd\u4e92\u52a8\u6587\u5316\u5a31\u4e50\u516c\u53f8_sdt4 \u7684\u538b\u7f29\u6587\u4ef6\u3002<\/h1>\n<p>\u4f3c\u4e4e\u8fd8\u6709\u4e00\u4e2a\u540d\u4e3a ukamuse_sdt4.zip \u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u3002\u8fd9\u662f\u4ec0\u4e48\u4e1c\u897f\uff1f\u8ba9\u6211\u4eec\u4f7f\u7528 FileZilla \u5c06\u5176\u4f20\u8f93\u5230 Linux \u670d\u52a1\u5668\u5e76\u5c1d\u8bd5\u89e3\u538b\u7f29\u3002<\/p>\n<pre class=\"post-pre\"><code>unzip ukamuse_sdt4.zip\r\n<\/code><\/pre>\n<p>\u81a8\u8139\uff1a<br \/>\n\u81a8\u8139\ufe30<br \/>\n\u88fd\u9020\ufe30<br \/>\n\u88fd\u9020\ufe30\u4e00\u4e9b\u51fa\u73fe\uff0c\u4f46\u662f\u4e0d\u77e5\u9053\u662f\u4ec0\u9ebc\u3002<\/p>\n<p>\u3042\u3089\u3001ukamuse_sdt4 \u306b\u3082 src \u304c\u5165\u3063\u3066\u3044\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>ls\r\n20161007  ukamuse_sdt4_bmi2.exe  ukamuse_sdt4_sse2.exe  ukamuse_sdt4_sse41.exe  ukamuse_sdt4_sse42.exe\r\n<\/code><\/pre>\n<p>\u305d\u3057\u3066 .bin \u306e\u4e2d\u306b\u306f exe \u3082\u5165\u3063\u3066\u3044\u308b\u304c\u3001Linux \u3067\u4f7f\u3046\u306e\u3060\u308d\u3046\u304b\uff1f<\/p>\n<p>20161007 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u4e2d\u306b\u306f<\/p>\n<pre class=\"post-pre\"><code>ls\r\nKKP_synthesized.bin  KPP_synthesized.bin  log_v1.10.0.txt  log_v1.1.1.txt   log_v1.13.0.txt  log_v1.2.0_2.txt  log_v1.3.0.txt  log_v1.5.0.txt  log_v1.7.0.txt\r\nKK_synthesized.bin   log_v1.0.3.txt       log_v1.11.0.txt  log_v1.12.0.txt  log_v1.14.0.txt  log_v1.2.0.txt    log_v1.4.0.txt  log_v1.6.0.txt  log_v1.8.1.txt\r\n<\/code><\/pre>\n<p>\u3068\u3001\u3044\u308d\u3044\u308d\u5165\u3063\u3066\u3044\u308b\u3002\u3058\u3083\u3042 ukamuse_sdt4 \u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u4e2d\u3067 Linux\u7528\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u76f4\u3057\u305f\u3089\u3044\u3044\u306e\u3060\u308d\u3046\u304b\uff1f<\/p>\n<p>\u90a3\u4e48\uff0c\u5c31\u5728src\u76ee\u5f55\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>make publish\r\n\uff5e\u4e2d\u7565\uff5e\r\nMakefile:86: recipe for target 'publish' failed\r\nmake: *** [publish] Illegal instruction\r\n<\/code><\/pre>\n<p>\u6211\u89c9\u5f97CPU\u53ef\u80fd\u4e0d\u652f\u6301\u3002<\/p>\n<pre class=\"post-pre\"><code>make clean\r\nmake profgen_sse2\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u7684\u8bdd\u7f16\u8bd1\u5c31\u80fd\u901a\u8fc7\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>mv apery ..\/bin\/apery\r\nls\r\n20161007  apery  ukamuse_sdt4_bmi2.exe  ukamuse_sdt4_sse2.exe  ukamuse_sdt4_sse41.exe  ukamuse_sdt4_sse42.exe\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u600e\u4e48\u6837\uff1f<\/p>\n<pre class=\"post-pre\"><code>.\/apery\r\n<\/code><\/pre>\n<p>\u3088\u3057\u3001\u30eb\u30fc\u30d7\u3067\u30d6\u30ed\u30c3\u30af\uff08\u30eb\u30fc\u30d7\u3092\u629c\u3051\u306a\u3044\uff09\u3055\u308c\u3066\u308b\u611f\u3058\u304c\u3059\u308b\u3002[Ctrl]+[C]\u3067\u629c\u3051\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/apery bench\r\n<\/code><\/pre>\n<p>\u6570\u79d2\u3067\u30eb\u30fc\u30d7\u3092\u629c\u3051\u305f\u3088\u3046\u3060\u3002\u3088\u304f\u5206\u304b\u3089\u306a\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/apery\r\n<\/code><\/pre>\n<p>\u6682\u65f6\u7b49\u5f85\u4e00\u4e0b\u3002<br \/>\n\u6ca1\u6709\u53d1\u751f\u4efb\u4f55\u4e8b\u60c5\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/apery &amp;\r\n[1] 3459\r\njobs\r\n[1]+  Stopped                 .\/apery\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u5417\u3002<\/p>\n<p>\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<br \/>\nsrc\/evaluate.cpp\u6587\u4ef6\u4e2d\u5305\u542b\u4ee5\u4e0b\u4ee3\u7801\u3002<\/p>\n<pre class=\"post-pre\"><code>std::string Evaluator::evalDir = \"20161007\";\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u5199\u7684\u662f\u8fd9\u6837\uff0c\u6240\u4ee5\u6587\u4ef6\u5939\u540d\u5e94\u8be5\u662f\u6b63\u786e\u7684\u3002<br \/>\n\u90a3\u4e48\u63a5\u4e0b\u6765\u5728 src \u76ee\u5f55\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>cp benchmark.sfen ..\/bin\/benchmark.sfen\r\n<\/code><\/pre>\n<p>\u6267\u884c\u3002<\/p>\n<h1>\u554a\uff0c\u957f\u6905\u5b50\u52a8\u4e86\u3002<\/h1>\n<pre class=\"post-pre\"><code>.\/apery bench\r\n<\/code><\/pre>\n<p>\u8fd9\u4e00\u6b21\u8f6e\u5230 bench \u6267\u884c\u3002\u5bf9\u4e8e\u6d4b\u8bd5\u7528\u4f8b\uff0c\u8bfb\u53d6\u7684\u8d70\u6cd5\u4e00\u6b21\u53c8\u4e00\u6b21\u5730\u6392\u5217\u3002<\/p>\n<pre class=\"post-pre\"><code>info depth 16 seldepth 37 multipv 1 score cp -562 upperbound nodes 1866534 nps 206978 time 9018 pv 6g6h+ 5h4i 6h6g S*5b 3a4b 5b4c+ 4b4c 6f6e 6g5g 6e7d B*6g 4i3h 6g5f+ 7d6d 5g4g 3h2g 2b5e R*5a\r\ninfo nodes 1950370 time 9518\r\nbestmove 6g6h+ ponder 5h4i\r\n<\/code><\/pre>\n<h1>\u90a3\u4e48\u5bf9\u5c40\u600e\u4e48\u6837\uff1f<\/h1>\n<pre class=\"post-pre\"><code>.\/apery usi &amp;\r\n[2] 3510\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>id name ukamuse_SDT4\r\nid author Hiraoka Takuya\r\n\r\noption name Best_Book_Move type check default false\r\noption name Book_File type string default book\/20150503\/book.bin\r\noption name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\noption name Clear_Hash type button\r\noption name Draw_Ply type spin default 256 min 1 max 2147483647\r\noption name Engine_Name type string default ukamuse_SDT4\r\noption name Max_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\noption name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Score type spin default -180 min -32601 max 32601\r\noption name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\noption name Move_Overhead type spin default 30 min 0 max 5000\r\noption name MultiPV type spin default 1 min 1 max 594\r\noption name OwnBook type check default true\r\noption name Slow_Mover type spin default 89 min 1 max 1000\r\noption name Slow_Mover_10 type spin default 10 min 1 max 1000\r\noption name Slow_Mover_16 type spin default 20 min 1 max 1000\r\noption name Slow_Mover_20 type spin default 40 min 1 max 1000\r\noption name Threads type spin default 2 min 1 max 256\r\noption name Time_Margin type spin default 4500 min 0 max 2147483647\r\noption name USI_Hash type spin default 256 min 1 max 1048576\r\noption name USI_Ponder type check default true\r\nusiok\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>jobs\r\n[1]+  Stopped                 .\/apery\r\n[2]-  Done                    .\/apery usi\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code> jobs\r\n[1]+  Stopped                 .\/apery\r\n<\/code><\/pre>\n<p>\u6211\u8fd8\u6ca1\u5b8c\u6210\u2026\u2026\u6211\u5e0c\u671b\u4f60\u80fd\u957f\u671f\u9a7b\u624e\u5728\u8fd9\u91cc\u2026\u2026\u3002<\/p>\n<p>\u5c06\u81ea\u5df1\u7f16\u5199\u7684\u7a0b\u5e8f\u4ee5\u5b88\u62a4\u8fdb\u7a0b\u7684\u5f62\u5f0f\u542f\u52a8\u3002<\/p>\n<p>\u5c06\u68cb\u7a0b\u5e8f\u662f\u6076\u9b54\u5417\uff1f<\/p>\n<h1>\u4f60\u5df2\u7ecf\u8fdb\u5165\u4e86\u4e3b\u5faa\u73af\u5417\uff1f<\/h1>\n<pre class=\"post-pre\"><code>.\/apery\r\nbench\r\n<\/code><\/pre>\n<p>\u6309\u4e0b\u53f3\u952e\u6216\u5176\u4ed6\u952e\u4e4b\u540e\uff0c\u677f\u51f3\u5c31\u4f1a\u79fb\u52a8\uff0c\u8fd9\u662f\u600e\u4e48\u56de\u4e8b\u5462\uff1f<\/p>\n<p>\u5f53\u6211\u8f93\u5165\u201cbench\u201d\uff0c\u5b83\u4f1a\u8dd1\u8d77\u6765\uff0c\u4f46\u662f\u5f53\u6211\u8f93\u5165\u201cusi\u201d\uff0c\u5b83\u5374\u4e0d\u52a8\u3002\u6709\u4ec0\u4e48\u4e0d\u540c\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>unknown command:       usi\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>eval\r\n-243\r\n<\/code><\/pre>\n<p>\u8bc4\u4f30\u7ed3\u679c\u8fd8\u53ef\u4ee5\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>print\r\nunknown command: print\r\n<\/code><\/pre>\n<p>\u4e3a\u4ec0\u4e48\u4e0d\u80fd\u6253\u5370\uff1f<\/p>\n<pre class=\"post-pre\"><code>key\r\n4543979467506711947\r\n<\/code><\/pre>\n<p>\u94a5\u5319\u53ef\u4ee5\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>tosfen\r\nsfen l5knl\/7b1\/p3pg1gp\/1pr3Pp1\/5pS2\/1PpGP4\/2gpBPS1P\/4K2R1\/LN5NL w 2Sn5p 74\r\n<\/code><\/pre>\n<p>Tosfen \u53ef\u4ee5\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>d\r\n'  9  8  7  6  5  4  3  2  1\r\nP1-KY *  *  *  *  * -OU-KE-KY\r\nP2 *  *  *  *  *  *  * -KA *\r\nP3-FU *  *  * -FU-KI * -KI-FU\r\nP4 * -FU-HI *  *  * +FU-FU *\r\nP5 *  *  *  *  * -FU+GI *  *\r\nP6 * +FU-FU+KI+FU *  *  *  *\r\nP7 *  * -KI-FU+KA+FU+GI * +FU\r\nP8 *  *  *  * +OU *  * +HI *\r\nP9+KY+KE *  *  *  *  * +KE+KY\r\nP+00GI00GI\r\nP-00FU00FU00FU00FU00FU\r\nP-00KE\r\n-\r\n\r\nkey = 4543979467506711947\r\n<\/code><\/pre>\n<p>d\u53ef\u4ee5\u5417\uff1fprint\u4e0d\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>s\r\n'  9  8  7  6  5  4  3  2  1\r\nP1-KY *  *  *  *  * -OU-KE-KY\r\nP2 *  *  *  *  *  *  * -KA *\r\nP3-FU *  *  * -FU-KI * -KI-FU\r\nP4 * -FU-HI *  *  * +FU-FU *\r\nP5 *  *  *  *  * -FU+GI *  *\r\nP6 * +FU-FU+KI+FU *  *  *  *\r\nP7 *  * -KI-FU+KA+FU+GI * +FU\r\nP8 *  *  *  * +OU *  * +HI *\r\nP9+KY+KE *  *  *  *  * +KE+KY\r\nP+00GI00GI\r\nP-00FU00FU00FU00FU00FU\r\nP-00KE\r\n-\r\n\r\nkey = 4543979467506711947\r\nelapsed = 2870 [msec]\r\ntimes\/s = 1742160 [times\/sec]\r\nnum of moves = 78\r\n6768TO, 2266KA, 7434HI, 2334KI, 4334KI, 1314FU, 2425FU, 4546FU, 5354FU, 8485FU, 9394FU, 1112KY, 9192KY, 2133KE, 2233KA, 2244KA, 2255KA, 7444HI, 7454HI, 7464HI, 7471HI, 7472HI, 7473HI, 7475HI, 2314KI, 2333KI, 4333KI, 4342KI, 4344KI, 4354KI, 7768KI, 7778KI, 7787KI, 7788KI, 3132OU, 3141OU, 3142OU, 0032FU, 0033FU, 0036FU, 0038FU, 0012KE, 0014KE, 0015KE, 0016KE, 0025KE, 0026KE, 0027KE, 0032KE, 0033KE, 0036KE, 0041KE, 0042KE, 0044KE, 0046KE, 0051KE, 0052KE, 0054KE, 0055KE, 0061KE, 0062KE, 0063KE, 0064KE, 0065KE, 0071KE, 0072KE, 0073KE, 0075KE, 0081KE, 0082KE, 0083KE, 0085KE, 0087KE, 0092KE, 0094KE, 0095KE, 0096KE, 0097KE,\r\n<\/code><\/pre>\n<p>s \u3082\u3044\u3051\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>t\r\nNone\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u7684\u3002 de.)<\/p>\n<pre class=\"post-pre\"><code>b\r\nI cannot open\r\n<\/code><\/pre>\n<p>b\u4e5f\u53ef\u4ee5\u3002<\/p>\n<p>\u3042\u30fc\u3063\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"cp\">#if defined LEARN\r\n<\/span><\/code><\/pre>\n<p>\u6253\u5370 \u662f\u7528\u4e8e\u5b66\u4e60\u7684\u547d\u4ee4\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>write_eval\r\n<\/code><\/pre>\n<p>\u54ce\u5440\uff0c\u4f3c\u4e4e\u8981\u82b1\u4e9b\u65f6\u95f4\u3002\u6309\u4e0b[Ctrl]\u952e\u52a0[C]\u952e\u3002<\/p>\n<pre class=\"post-pre\"><code>setoption\r\nNo such option:\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u8bbe\u7f6e\u9009\u9879\uff0c\u770b\u8d77\u6765\u4e0d\u9519\u3002<\/p>\n<pre class=\"post-pre\"><code>isready\r\nreadyok\r\n<\/code><\/pre>\n<p>isready \u3082\u3044\u3051\u3066\u308b\u3058\u3083\u306a\u3044\u304b\u3002<\/p>\n<pre class=\"post-pre\"><code>usi\r\nid name ukamuse_SDT4\r\nid author Hiraoka Takuya\r\n\r\noption name Best_Book_Move type check default false\r\noption name Book_File type string default book\/20150503\/book.bin\r\noption name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\noption name Clear_Hash type button\r\noption name Draw_Ply type spin default 256 min 1 max 2147483647\r\noption name Engine_Name type string default ukamuse_SDT4\r\noption name Max_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\noption name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Score type spin default -180 min -32601 max 32601\r\noption name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\noption name Move_Overhead type spin default 30 min 0 max 5000\r\noption name MultiPV type spin default 1 min 1 max 594\r\noption name OwnBook type check default true\r\noption name Slow_Mover type spin default 89 min 1 max 1000\r\noption name Slow_Mover_10 type spin default 10 min 1 max 1000\r\noption name Slow_Mover_16 type spin default 20 min 1 max 1000\r\noption name Slow_Mover_20 type spin default 40 min 1 max 1000\r\noption name Threads type spin default 2 min 1 max 256\r\noption name Time_Margin type spin default 4500 min 0 max 2147483647\r\noption name USI_Hash type spin default 256 min 1 max 1048576\r\noption name USI_Ponder type check default true\r\nusiok\r\n<\/code><\/pre>\n<p>usi \u3082\u3044\u3051\u3066\u308b\u3058\u3083\u306a\u3044\u304b\u3002<\/p>\n<p>\u90a3\u4e48\uff0c\u6211\u4eec\u6765\u5c1d\u8bd5\u624b\u52a8\u5bf9\u5c40\u5427\uff0c\u770b\u770b\u6709\u6ca1\u6709\u529e\u6cd5\u3002\u6211\u4eec\u91cd\u65b0\u5f00\u59cb\u4e00\u6b21\u3002<\/p>\n<h1>\u54b1\u4eec\u6765\u624b\u52a8\u5bf9\u5c40\u5427<\/h1>\n<p>\u79c1\u304c\u6253\u3064<\/p>\n<pre class=\"post-pre\"><code>.\/apery\r\nusi\r\n<\/code><\/pre>\n<p>\u6b21\u3001\u6d6e\u304b\u3080\u702c\u304c\u8fd4\u3057\u3066\u304f\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>id name ukamuse_SDT4\r\nid author Hiraoka Takuya\r\n\r\noption name Best_Book_Move type check default false\r\noption name Book_File type string default book\/20150503\/book.bin\r\noption name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\noption name Clear_Hash type button\r\noption name Draw_Ply type spin default 256 min 1 max 2147483647\r\noption name Engine_Name type string default ukamuse_SDT4\r\noption name Max_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\noption name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Score type spin default -180 min -32601 max 32601\r\noption name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\noption name Move_Overhead type spin default 30 min 0 max 5000\r\noption name MultiPV type spin default 1 min 1 max 594\r\noption name OwnBook type check default true\r\noption name Slow_Mover type spin default 89 min 1 max 1000\r\noption name Slow_Mover_10 type spin default 10 min 1 max 1000\r\noption name Slow_Mover_16 type spin default 20 min 1 max 1000\r\noption name Slow_Mover_20 type spin default 40 min 1 max 1000\r\noption name Threads type spin default 2 min 1 max 256\r\noption name Time_Margin type spin default 4500 min 0 max 2147483647\r\noption name USI_Hash type spin default 256 min 1 max 1048576\r\noption name USI_Ponder type check default true\r\nusiok\r\n<\/code><\/pre>\n<p>\u6211\u6765\u6253\u4e00\u6b21\u3002<\/p>\n<pre class=\"post-pre\"><code>usinewgame\r\nposition startpos moves\r\ngo\r\n<\/code><\/pre>\n<p>\u6b21\u3001\u88ab\u51b2\u5237\u7684\u6d6a\u6f6e\u8fd4\u56de\u3002<\/p>\n<pre class=\"post-pre\"><code>info string optimum_time = 20\r\ninfo string maximum_time = 20\r\ninfo string book_ply 32767\r\ninfo depth 1 seldepth 1 multipv 1 score cp 0 nodes 67 nps 1367 time 49 pv 1g1f\r\nbestmove 1g1f\r\n<\/code><\/pre>\n<p>\u5728\u8111\u4e2d\u8c03\u6574\u7740\u5c06\u68cb\u76d8\u30021g1f\u5c31\u662f1\u516d\u6b69\uff0c\u4f46\u4e3a\u4ec0\u4e48\u8981\u63a8\u4fa7\u884c\u524d\u89d2\u5462\uff1f<br \/>\n\u90a3\u5c31\u6539\u4e3a1\u56db\u6b69\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>position sfen lnsgkgsnl\/1b5r1\/pppppppp1\/8p\/9\/8P\/PPPPPPPP1\/1B5R1\/LNSGKGSNL b - 1 moves 1g1f 1c1d\r\ngo\r\n<\/code><\/pre>\n<p>\u6709\u4e9b\u5ff5\u5934\u4e0d\u8bf7\u81ea\u6765\u5c31\u7acb\u523b\u6d6e\u73b0\u3002<\/p>\n<pre class=\"post-pre\"><code>info string optimum_time = 20\r\ninfo string maximum_time = 20\r\ninfo string book_ply 32767\r\ninfo depth 1 seldepth 1 multipv 1 score cp 0 nodes 72 nps 3272 time 22 pv 2g2f\r\ninfo depth 2 seldepth 2 multipv 1 score cp 0 nodes 195 nps 4062 time 48 pv 2g2f 2c2d\r\nbestmove 2g2f ponder 2c2d\r\n<\/code><\/pre>\n<p>\u4e3a\u4ec0\u4e48\u4f1a\u90a3\u4e48\u5306\u5fd9\u5462\uff1f\u603b\u4e4b\uff0c\u4f3c\u4e4e\u53ef\u4ee5\u6307\u6d3e\u7ed9\u6d6e\u73b0\u7684\u673a\u4f1a\u3002<br \/>\n\u597d\u5427\uff0c\u7ed3\u675f\u5427\u2026\u2026\u3002<br \/>\n\u7531\u6211\u6765\u6253\u3002<\/p>\n<pre class=\"post-pre\"><code>gameover\r\nquit\r\n<\/code><\/pre>\n<p>\u3042\u3068\u306f\u8a2d\u5b9a\u3092\u3044\u3058\u308d\u3046\u3002<\/p>\n<h1>\u8ba9\u6211\u4eec\u6765\u770b\u4e00\u4e0b\u8bbe\u5b9a<\/h1>\n<pre class=\"post-pre\"><code>option name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u5b66\u4e60\u7684\u76ee\u7684\uff0c\u662f\u5426\u8981\u8ba9\u5b83\u57280.02\u79d2\u5185\u56de\u7b54\u5462\uff1f<br \/>\n\u5982\u679c\u8981\u8ba9\u8ba1\u7b97\u673a\u57281\u79d2\u5185\u5b8c\u6210\u6307\u4ee4\uff0c\u4e3a\u4e86\u8003\u8651\u901a\u4fe1\u6240\u9700\u7684\u65f6\u95f4\uff0c\u53ef\u80fd\u8981\u75593\u79d2\u5de6\u53f3\uff0c\u4f46\u7531\u4e8e\u65e0\u6cd5\u6ee1\u8db3\u9700\u6c42\u7684\u5b9a\u4e49\uff0c\u53ef\u80fd\u8981\u8003\u8651\u8ba9\u5b83\u601d\u8003\u7ea60.5\u79d2\u5de6\u53f3\u3002<\/p>\n<pre class=\"post-pre\"><code>setoption name Minimum_Thinking_Time value 500\r\n<\/code><\/pre>\n<p>\u5728\u5f00\u59cbusinewgame\u4e4b\u524d\uff0c\u6211\u662f\u5426\u5e94\u8be5\u628a\u8fd9\u4e2a\u53d1\u9001\u7ed9\u601d\u8003\u5f15\u64ce\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>.\/apery\r\nusi\r\nid name ukamuse_SDT4\r\nid author Hiraoka Takuya\r\n\r\noption name Best_Book_Move type check default false\r\noption name Book_File type string default book\/20150503\/book.bin\r\noption name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\noption name Clear_Hash type button\r\noption name Draw_Ply type spin default 256 min 1 max 2147483647\r\noption name Engine_Name type string default ukamuse_SDT4\r\noption name Max_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\noption name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Ply type spin default 32767 min 0 max 32767\r\noption name Min_Book_Score type spin default -180 min -32601 max 32601\r\noption name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\noption name Move_Overhead type spin default 30 min 0 max 5000\r\noption name MultiPV type spin default 1 min 1 max 594\r\noption name OwnBook type check default true\r\noption name Slow_Mover type spin default 89 min 1 max 1000\r\noption name Slow_Mover_10 type spin default 10 min 1 max 1000\r\noption name Slow_Mover_16 type spin default 20 min 1 max 1000\r\noption name Slow_Mover_20 type spin default 40 min 1 max 1000\r\noption name Threads type spin default 2 min 1 max 256\r\noption name Time_Margin type spin default 4500 min 0 max 2147483647\r\noption name USI_Hash type spin default 256 min 1 max 1048576\r\noption name USI_Ponder type check default true\r\nusiok\r\nisready\r\nreadyok\r\nsetoption name Minimum_Thinking_Time value 500\r\nusinewgame\r\nposition startpos moves\r\ngo\r\ninfo string optimum_time = 500\r\ninfo string maximum_time = 500\r\ninfo string book_ply 32767\r\ninfo depth 1 seldepth 1 multipv 1 score cp 63 nodes 64 nps 1230 time 52 pv 2g2f\r\ninfo depth 2 seldepth 2 multipv 1 score cp 173 nodes 108 nps 1611 time 67 pv 2g2f 1c1d\r\ninfo depth 3 seldepth 3 multipv 1 score cp 155 nodes 229 nps 2462 time 93 pv 2g2f 3c3d 2f2e\r\ninfo depth 4 seldepth 4 multipv 1 score cp 291 nodes 341 nps 2772 time 123 pv 2g2f 3c3d 2f2e 1c1d 2e2d\r\ninfo depth 5 seldepth 5 multipv 1 score cp 252 nodes 1781 nps 6720 time 265 pv 2g2f 8c8d 2f2e 8d8e 2e2d 2c2d 2h2d\r\ninfo depth 6 seldepth 6 multipv 1 score cp 252 nodes 2047 nps 6603 time 310 pv 2g2f 8c8d 2f2e 8d8e 2e2d 2c2d 2h2d\r\ninfo depth 7 seldepth 7 multipv 1 score cp 252 nodes 2653 nps 6615 time 401 pv 2g2f 8c8d 2f2e 8d8e 2e2d 2c2d 2h2d 8e8f\r\ninfo depth 8 seldepth 9 multipv 1 score cp 22 nodes 6478 nps 6733 time 962 pv 2g2f 8c8d 2f2e 8d8e 6i7h 8e8f 8g8f 8b8f\r\nbestmove 2g2f ponder 8c8d\r\n<\/code><\/pre>\n<p>\u55ef\uff0c\u770b\u8d77\u6765\u4ed6\u601d\u8003\u4e86\u8d85\u8fc70.5\u79d2\uff0c\u6b63\u5728\u5ef6\u4f38\u98de\u8f66\u524d\u65b9\u7684\u6b65\u5b50\uff0c\u6240\u4ee5\u5e94\u8be5\u6ca1\u95ee\u9898\u3002\u5355\u51ed\u8fd9\u4e00\u70b9\u6765\u770b\u2026\u2026\u3002<\/p>\n<h1>\u4e0b\u4e00\u4e2a\u662fShell\u811a\u672c\u5417\uff1f<\/h1>\n<p>\u5e0c\u671b\u80fd\u5c06\u6b63\u5728\u7b49\u5f85\u5faa\u73af\u7684\u6f02\u6d6e\u5173\u53e3\u8f6c\u53d8\u4e3a\u6807\u51c6\u8f93\u5165\u4e3ashell\u811a\u672c\u6216\u5176\u4ed6\u5f62\u5f0f\uff0c\u6807\u51c6\u8f93\u51fa\u4e5f\u662fshell\u811a\u672c\u6216\u5176\u4ed6\u5f62\u5f0f\uff0c\u5982\u679c\u80fd\u5b9e\u73b0\u6355\u6349\u5e76\u8fdb\u884c\u64cd\u4f5c\u5c31\u597d\u4e86\u3002\u65e2\u7136\u80fd\u5728\u5c06\u68cb\u7a0b\u5e8f\u4e2d\u5b9e\u73b0\uff0c\u90a3\u80af\u5b9a\u6709\u65b9\u6cd5\u53ef\u4ee5\u505a\u5230\u5427\u2026\u2026\u3002<\/p>\n<p>\u4e5f\u8bb8\u751a\u81f3\u53ef\u4ee5\u4f7f\u7528C++\uff0c\u4f46\u5982\u679c\u53ef\u80fd\u7684\u8bdd\uff0c\u6211\u66f4\u5e0c\u671b\u4e0ePHP\u8fdb\u884c\u534f\u4f5c\u3002<\/p>\n<p>\u6211\u4eec\u4e0b\u6b21\u518d\u8003\u8651\u6709\u54ea\u4e9b\u65b9\u6cd5\u53ef\u4f9b\u9009\u62e9\u3002<\/p>\n<p>\u65e2\u7136\u5df2\u7ecf\u80fd\u591f\u901a\u8fc7\u952e\u5165\u4e0e\u6807\u51c6\u8f93\u5165\u8f93\u51fa\u901a\u4fe1\uff0c\u90a3\u4e48\u5e94\u8be5\u4e5f\u53ef\u4ee5\u5728Shell\u4e2d\u5b9e\u73b0\u3002\u8ba9\u6211\u4eec\u8fdb\u884c\u8c03\u67e5\u3002<\/p>\n<h1>\u7528\u54ea\u4e2a\u58f3\uff1f<\/h1>\n<p>\u5f53\u6211\u7528\u8c37\u6b4c\u641c\u7d22\u65f6\uff0c\u53ea\u80fd\u770b\u5230bash\u3002\u90a3\u5c31\u7528bash\u5427\u3002<\/p>\n<p>\u6709\u4eba\u8bf4\u7f16\u8f91\u5668 Ubuntu \u4e0a\u9ed8\u8ba4\u5b89\u88c5\u4e86 gedit\uff0c\u4f46\u5728\u6211\u7684\u7535\u8111\u4e0a\u5e76\u672a\u5b89\u88c5\uff0c\u6240\u4ee5\u6211\u4f1a\u7528\u6211\u7535\u8111\u73af\u5883\u4e2d\u9ed8\u8ba4\u5b89\u88c5\u7684nano\u3002<\/p>\n<p>\u300c\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u5165\u9580 \u30a6\u30a7\u30d6\u4e0a\u306e\u307e\u3068\u3081\u300d\uff08\u300cMemo on the Web\u300d\uff09<br \/>\nhttp:\/\/motw.mods.jp\/shellscript\/tutorial.html<\/p>\n<p>\u3010Chinese\u3011<br \/>\n\u300cShell\u811a\u672c\u5165\u95e8 \u7f51\u9875\u4e0a\u7684\u6982\u8ff0\u300d\uff08\u201cWeb\u4e0a\u7684\u5907\u5fd8\u5f55\u201d\uff09<br \/>\nhttp:\/\/motw.mods.jp\/shellscript\/tutorial.html<\/p>\n<pre class=\"post-pre\"><code>mkdir jikken\r\ncd jikken\r\nnano tamesi1\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\necho \"hello, world\"\r\n<\/code><\/pre>\n<p>\u6309\u4e0b[Ctrl]+[O]<\/p>\n<p>\u5728 Tamesi1 \u4e0a\u53d6\u4e00\u4e2a\u540d\u5b57\u5e76\u4fdd\u5b58\u3002<\/p>\n<p>\u54e6\uff0c\u8fd9\u4e2a\u6587\u672c\u53d8\u5f97\u6709\u989c\u8272\u4e86\u3002<\/p>\n<p>\u6309\u4e0b[Ctrl]\u548c[X]\u952e\u3002<\/p>\n<p>\u5173\u95ednano\u7f16\u8f91\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/tamesi1\r\n-bash: .\/tamesi1: Permission denied\r\n<\/code><\/pre>\n<p>\u6709\u6743\u9650\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>ls -an\r\ntotal 12\r\ndrwxrwxr-x 2 1000 1000 4096 Mar  5 16:30 .\r\ndrwxr-xr-x 6 1000 1000 4096 Mar  5 16:28 ..\r\n-rw-rw-r-- 1 1000 1000   30 Mar  5 16:30 tamesi1\r\n<\/code><\/pre>\n<p>\u90a3\u4e48<\/p>\n<pre class=\"post-pre\"><code>chmod 765 tamesi1\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u53ef\u4ee5\u5417\uff1f\u4e0d\u53ef\u80fd\u7684\u3002\u9700\u8981\u7ba1\u7406\u5458\u6743\u9650\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>sudo su -\r\n\uff5e\u30d1\u30b9\u30ef\u30fc\u30c9\u5165\u529b\uff5e\r\nchmod 765 tamesi1\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>ls -an\r\ntotal 12\r\ndrwxrwxr-x 2 1000 1000 4096 Mar  5 16:30 .\r\ndrwxr-xr-x 6 1000 1000 4096 Mar  5 16:28 ..\r\n-rwxrw-r-x 1 1000 1000   30 Mar  5 16:30 tamesi1\r\n   ~     ~\r\n   \u203b\u3053\u3053\u304c\u5909\u308f\u3063\u305f\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi1\r\nhello, world\r\n<\/code><\/pre>\n<p>\u54e6\uff0c\u53ef\u4ee5\u4e86\u3002<br \/>\n\u90a3\u5c31\u5728 bin \u6587\u4ef6\u5939\u91cc\u5199\u4e00\u4e2a\u811a\u672c\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>cd ..\/shogi\/apery-SDT4\/bin\r\n<\/code><\/pre>\n<p>\u554a\uff01\u8fd9\u4e0d\u662f\u8fd9\u8fb9\u3002<\/p>\n<pre class=\"post-pre\"><code>cd ..\/..\/ukamuse_sdt4\/bin\r\n<\/code><\/pre>\n<p>\u6211\u6709\u4e00\u4e9b.exe\u6587\u4ef6\uff0c\u4f46\u5728Ubuntu\u4e0a\u4e0d\u4f1a\u4f7f\u7528\u5427&#8230;&#8230;\u6211\u5e94\u8be5\u5220\u9664\u5b83\u4eec\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>rm ukamuse_sdt4_bmi2.exe\r\nrm ukamuse_sdt4_sse2.exe\r\nrm ukamuse_sdt4_sse41.exe\r\nrm ukamuse_sdt4_sse42.exe\r\n<\/code><\/pre>\n<p>\u5728\u6587\u672c\u7f16\u8f91\u5668\u4e2d\u5199\u4e0b\u5e76\u590d\u5236\uff0c\u7136\u540e\u5728PuTTY\u4e2d\u7528\u5de6\u952e\u70b9\u51fb\u7c98\u8d34\uff0c\u6309\u4e0b[Enter]\u952e\u4e00\u6b21\u5373\u53ef\u5b8c\u6210\u5168\u90e8\u64cd\u4f5c\u3002<\/p>\n<h1>\u8ba9\u6211\u4eec\u7f16\u5199\u4e00\u4e2aShell\u811a\u672c\u5427\u3002<\/h1>\n<p>\u90a3\u4e48\uff0c\u7528\u8fd9\u79cd\u65b9\u5f0f\u5199\u662f\u5426\u53ef\u4ee5\u5462\uff1f<\/p>\n<p>\u9996\u5148\uff0c\u5728\u53f0\u5b50\u4e0a\u8bd5\u4e00\u8bd5\u3002<\/p>\n<pre class=\"post-pre\"><code>nano tamesi1\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery\r\nbench\r\n<\/code><\/pre>\n<p>\u53f3\u952e\u70b9\u51fb\u7c98\u8d34\u5230 PuTTY \u4e2d\uff0c\u4fdd\u5b58\u5e76\u9000\u51fa nano\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/tamesi1\r\n-su: .\/tamesi1: Permission denied\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>ls -an\r\ntotal 852\r\ndrwxr-xr-x 3 0 0   4096 Mar  5 16:44 .\r\ndrwxr-xr-x 6 0 0   4096 Mar  5 02:33 ..\r\ndrwxr-xr-x 2 0 0   4096 Oct  7 11:05 20161007\r\n-rwxr-xr-x 1 0 0 848120 Mar  5 02:47 apery\r\n-rw-r--r-- 1 0 0   1531 Mar  5 03:04 benchmark.sfen\r\n-rw-r--r-- 1 0 0     24 Mar  5 16:44 tamesi1\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>chmod 744 tamesi1\r\nls -n\r\ntotal 844\r\ndrwxr-xr-x 2 0 0   4096 Oct  7 11:05 20161007\r\n-rwxr-xr-x 1 0 0 848120 Mar  5 02:47 apery\r\n-rw-r--r-- 1 0 0   1531 Mar  5 03:04 benchmark.sfen\r\n-rwxr--r-- 1 0 0     24 Mar  5 16:44 tamesi1\r\n   ~\r\n   \u203b\u3053\u3053\u304c\u5909\u308f\u3063\u305f\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi1\r\n<\/code><\/pre>\n<p>\u4ed6\u597d\u50cf\u8fdb\u5165\u4e86\u5f85\u673a\u5faa\u73af\uff0c\u4f46\u662f\u662f\u4e0d\u662f\u8f93\u5165&#8221;bench&#8221;\u592a\u5feb\u4e86\uff1f<\/p>\n<pre class=\"post-pre\"><code>bench\r\n<\/code><\/pre>\n<p>\u952e\u5165\u5e76\u8fdb\u884c\u64cd\u4f5c\u3002\u662f\u5426\u9700\u8981\u7b49\u5f85\u51e0\u79d2\u949f\uff0c\u7136\u540e\u518d\u8f93\u5165 bench \u6bd4\u8f83\u597d\u5462\uff1f<\/p>\n<p>\u4f7f\u7528[Ctrl]+[C]\u8fdb\u884c\u4e2d\u6b62\u3002<\/p>\n<h1>\u7b49\u5f85\u51e0\u79d2\u949f\u540e\u518d\u8fdb\u884c\u8f93\u5165<\/h1>\n<p>\u300c\u3010\u4f11\u7720\u3011\u5728\u6307\u5b9a\u7684\u65f6\u95f4\u505c\u6b62\u8fd0\u884c\u300d(ITPro)<br \/>\nhttp:\/\/itpro.nikkeibp.co.jp\/article\/COLUMN\/20060227\/230884\/?rt=nocnt<\/p>\n<p>\u90a3\u4e48\uff0c\u8ba9\u6211\u4eec\u4ece\u542f\u52a8\u6f02\u6d6e\u53f0\u5f00\u59cb\uff0c\u7b49\u5f85\u5341\u79d2\u949f\uff0c\u7136\u540e\u8f93\u5165&#8221;bench&#8221;\u3002<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery\r\nsleep 10s\r\nbench\r\n<\/code><\/pre>\n<p>\u4f7f\u7528 nano \u8fdb\u884c\u7f16\u8f91\uff0c\u901a\u8fc7\u547d\u4ee4\u884c\u6267\u884c\u3002<\/p>\n<p>\u88ab\u5c01\u9501\u4e86\u3002\u90a3\u4e48\uff0c\u662f\u5199\u6cd5\u4e0d\u540c\u5417\uff1f\u50cf\u8fd9\u6837\u3002<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery\r\nsleep 10s\r\necho 'bench'\r\n<\/code><\/pre>\n<p>\u8fd9\u8fd8\u662f\u88ab\u963b\u6b62\u7740\u2026\u2026\u3002\u96be\u9053\u662f\u5728\/apery\u7684\u884c\u91cc\u963b\u6b62\u5417\uff1f\u5982\u679c\u662f\u7684\u8bdd\uff0c\u8fd9\u6837\u600e\u4e48\u6837\uff1f<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nsleep 3s\r\necho 'bench' | .\/apery\r\n<\/code><\/pre>\n<p>\u4e2d\u6587\u7ffb\u8bd1\uff1a\u592a\u68d2\u4e86\uff01\u6210\u529f\u4e86\u3002<br \/>\n\u90a3\u4e48\uff0c\u662f\u5426\u9700\u8981\u7761\u7720\u4e4b\u7c7b\u7684\u4e1c\u897f\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\necho 'bench' | .\/apery\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u4e5f\u53ef\u4ee5\u3002\u90a3\u4e48\uff0cbench\u5c31\u662f\u8fd9\u4e2a\u3002<\/p>\n<h1>\u8ba9\u6211\u4eec\u5c1d\u8bd5\u4f7f\u7528Shell\u811a\u672c\u6765\u7f16\u5199\u68cb\u5c40\u3002<\/h1>\n<p>\u6211\u4f1a\u5728\u5916\u51fa\u540e\u6dfb\u52a0\u8bf4\u660e\u3002<\/p>\n<p>\u4f7f\u7528PuTTY\u5de5\u5177\uff0c\u8f93\u5165IP\u5730\u5740\uff0c\u901a\u8fc7SSH\u534f\u8bae\u8fdb\u884c\u767b\u5f55\u3002\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo su -\r\n<\/code><\/pre>\n<p>\u518d\u6b21\u8f93\u5165\u5bc6\u7801\u3002<\/p>\n<pre class=\"post-pre\"><code>cd ..\/home\/\u30e6\u30fc\u30b6\u30fc\u540d\/shogi\/ukamuse_sdt4\/bin\r\nls\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002<\/p>\n<p>\u8ba9\u6211\u4eec\u6765\u521b\u5efa\u4e00\u4e2a\u540d\u4e3atamesi2\u7684\u6587\u4ef6\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>nano tamesi2\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\necho 'usi' | .\/apery\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>ls -n\r\n\uff5e\u7565\uff5e\r\n-rw-r--r-- 1 0 0     41 Mar  5 18:25 tamesi2\r\nchmod 744 tamesi2\r\nls -n\r\n\uff5e\u7565\uff5e\r\n-rwxr--r-- 1 0 0     41 Mar  5 18:25 tamesi2\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi2\r\nid name ukamuse_SDT4\r\n\uff5e\u7565\uff5e\r\nusiok\r\n<\/code><\/pre>\n<h1>\u7528Shell\u7684\u53d8\u91cf\u63a5\u6536\u547d\u4ee4\u7684\u8f93\u51fa<\/h1>\n<p>\u8981\u5728Shell\u811a\u672c\u4e2d\u63a5\u6536\u8fd9\u4e2a\u53ef\u53d8\u90e8\u5206\u7684\u8f93\u51fa\u8be5\u600e\u4e48\u529e\u5462\uff1f\u901a\u8fc7\u6587\u672c\u6587\u4ef6\u4f20\u9012\u53ef\u80fd\u884c\u5f97\u901a\uff0c\u4f46\u662f\u2026\u2026\uff1f<\/p>\n<p>\u300c\u51fd\u6570\u7684\u4f7f\u7528\u65b9\u6cd5\u300d\uff08UNIX\u548cLinux\u547d\u4ee4\/Shell\u811a\u672c\u53c2\u8003\uff09<br \/>\nhttp:\/\/shellscript.sunone.me\/function.html<\/p>\n<p>\u8fd9\u662f\u4e00\u4e2a\u51fd\u6570\u7684\u4f8b\u5b50\u5417\uff1f\u662f\u65e0\u6cd5\u901a\u8fc7\u91cd\u5b9a\u5411\u4f20\u9012\u53d8\u91cf\u7684\u5417\uff1f<\/p>\n<p>\u5c06\u547d\u4ee4\u6267\u884c\u7ed3\u679c\u8bbe\u7f6e\u4e3a\u53d8\u91cf (UNIX &amp; Linux \u547d\u4ee4\/Shell \u811a\u672c\u53c2\u8003)<br \/>\nhttp:\/\/shellscript.sunone.me\/variable.html#\u5c06\u547d\u4ee4\u6267\u884c\u7ed3\u679c\u8bbe\u7f6e\u4e3a\u53d8\u91cf<\/p>\n<pre class=\"post-pre\"><code>VAR=`command`\r\necho $VAR\r\n<\/code><\/pre>\n<p>\u54c7\uff0c\u771f\u7684\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>VAR=$(command)\r\necho $VAR\r\n<\/code><\/pre>\n<p>\u55ef\u3002\u770b\u6765\uff0c\uff08 \uff09\u7684\u65b9\u53ef\u5d4c\u5957\u3002<\/p>\n<pre class=\"post-pre\"><code>var=$(expr $(expr $(date '+%Y') + $(date '+%m')) + $(date '+%d'))\r\necho $VAR\r\n<\/code><\/pre>\n<p>\u6211\u4e0d\u660e\u767d\u8fd9\u662f\u4ec0\u4e48\uff0c\u4f46\u53ef\u80fd\u4f1a\u6709\u4f7f\u7528\u7684\u60c5\u51b5\u3002<br \/>\n\u90a3\u4e48\uff0c\u5c31\u8fd9\u6837\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>nano tamesi3\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\necho '(^o^)$VAR'\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>chmod 744 tamesi3\r\n.\/tamesi3\r\n(^o^)$VAR\r\n<\/code><\/pre>\n<p>\u55ef\u3002<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\necho '(^o^)${VAR}'\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi3\r\n(^o^)${VAR}\r\n<\/code><\/pre>\n<p>\u5514\u3002<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\necho '(^o^)$(VAR)'\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi3\r\n(^o^)$(VAR)\r\n<\/code><\/pre>\n<p>\u55ef\u3002<\/p>\n<p>\u300c\u3010\u8fde\u63a5\u591a\u4e2a\u53d8\u91cf\u3011\u300d\uff08ITPro\uff09<br \/>\n\u94fe\u63a5\uff1ahttp:\/\/itpro.nikkeibp.co.jp\/article\/COLUMN\/20060228\/231154\/<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\necho \"(^o^)${VAR}\"\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi3\r\n(^o^)id name ukamuse_SDT4\r\n\uff5e\u7565\uff5e\r\nusiok\r\n<\/code><\/pre>\n<p>\u54e6\uff01<\/p>\n<h1>\u7528bash\u5c06\u591a\u884c\u6587\u672c\u5206\u5272\u4e3a\u6bcf\u884c\u4e00\u4e2a\uff0c\u5e76\u4e3a\u6bcf\u4e00\u884c\u7f16\u5199\u76f8\u5e94\u7684\u5904\u7406\u4ee3\u7801\u3002<\/h1>\n<p>\u5c31\u7b97\u662fC#\u8bed\u8a00\u4e5f\u5f88\u7b80\u5355\u7684\u554a\u2026\u2026\u53ef\u662f\u5728bash\u811a\u672c\u4e2d\u8981\u600e\u4e48\u505a\u5462\uff1f<\/p>\n<p>\u300c\u6309\u884c\u5904\u7406\u300d(Qiita)<br \/>\nhttp:\/\/qiita.com\/kazu56\/items\/83340a2e284298b9e237<\/p>\n<p>\u732b\u547d\u4ee4\u662f\u4ec0\u4e48\uff1f<\/p>\n<p>\u300c\u3010Linux\u6307\u4ee4\u96c6\u30113\u5206\u949f\u5b66\u4f1a\u4f7f\u7528cat\u6307\u4ee4\u300d\uff08\u5de5\u7a0b\u5e08\u5165\u95e8\uff09<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"PM9w99ry50\"><p><a href=\"https:\/\/eng-entrance.com\/linux_command_cat\">\u3010Linux\u30b3\u30de\u30f3\u30c9\u96c6\u30113\u5206\u3067\u308f\u304b\u308bcat \u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u65b9<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;\u3010Linux\u30b3\u30de\u30f3\u30c9\u96c6\u30113\u5206\u3067\u308f\u304b\u308bcat \u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u65b9&#8221; &#8212; \u30a8\u30f3\u30b8\u30cb\u30a2\u306e\u5165\u308a\u53e3\" src=\"https:\/\/eng-entrance.com\/linux_command_cat\/embed#?secret=PM9w99ry50\" data-secret=\"PM9w99ry50\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>\u55ef\u3002\u4f60\u662f\u8bf4\u8981\u5c06\u901a\u8fc7\u53c2\u6570\u6307\u5b9a\u7684\u6587\u4ef6\u5185\u5bb9\u9010\u884c\u8f93\u51fa\u5230\u6807\u51c6\u8f93\u51fa\u5417\uff1f\u90a3\u597d\uff0c\u6211\u8bd5\u8bd5\u770b\u3002<\/p>\n<p>\u54ce\u5440\uff01\u6211\u672c\u6765\u7279\u5730\u7528\u53d8\u91cf\u63a5\u6536\u7684\uff0c\u53ef\u662f\u901a\u8fc7\u6587\u4ef6\u4f20\u8f93\u5c31\u6ca1\u6709\u610f\u4e49\u4e86\u5440\u3002<br \/>\n\u90a3\u4e48\uff0c\u8fd9\u6837\u53ef\u4ee5\u5417\uff1f<\/p>\n<p>\u82e5\u9700\u8981\u5177\u6709\u672c\u5730\u4e2d\u6587\u98ce\u683c\u7684\u540c\u4e49\u53e5\uff0c\u53ea\u9700\u4e00\u79cd\u9009\u9879\uff1a<br \/>\n&#8220;\u82e5\u9700\u6c42\u4ee5\u4e2d\u6587\u4e3a\u6bcd\u8bed\u7684\u8868\u8ff0\u65b9\u5f0f\uff0c\u53ea\u9700\u4e00\u79cd\u9009\u9879\uff1a&#8221;<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\n\r\n# \u533a\u5207\u308a\u6587\u5b57\u306f NewLine \u3067\u3002\r\nIFS=$'\\n'\r\nfor line in $VAR\r\ndo\r\necho \"(^o^)$line\"\r\ndone\r\n<\/code><\/pre>\n<p>\u54ce\u5440\uff0cPuTTY\u4e0a\u7684\u65e5\u6587\u5b57\u4f53\u663e\u793a\u6709\u95ee\u9898\u554a\u3002\u867d\u7136\u80fd\u8bfb\u61c2\u4f46\u8fd8\u662f\u6709\u70b9\u5947\u602a\u2026\u2026\u3002<\/p>\n<pre class=\"post-pre\"><code>chmod 744 tamesi4\r\n.\/tamesi4\r\n(^o^)id\r\n(^o^)ame ukamuse_SDT4\r\nid author Hiraoka Takuya\r\n\r\noptio\r\n(^o^)\r\n(^o^)ame Best_Book_Move type check default false\r\noptio\r\n(^o^)\r\n(^o^)ame Book_File type stri\r\n(^o^)g default book\/20150503\/book.bi\r\n(^o^)\r\noptio\r\n(^o^)\r\n(^o^)ame Byoyomi_Margi\r\n(^o^) type spi\r\n(^o^) default 500 mi\r\n(^o^) 0 max 2147483647\r\noptio\r\n(^o^)\r\n(^o^)ame Clear_Hash type butto\r\n(^o^)\r\noptio\r\n(^o^)\r\n(^o^)ame Draw_Ply type spi\r\n(^o^) default 256 mi\r\n(^o^) 1 max 2147483647\r\noptio\r\n(^o^)\r\n(^o^)ame E\r\n(^o^)gi\r\n(^o^)e_Name type stri\r\n(^o^)g default ukamuse_SDT4\r\noptio\r\n(^o^)\r\n(^o^)ame Max_Book_Ply type spi\r\n(^o^) default 32767 mi\r\n(^o^) 0 max 32767\r\noptio\r\n(^o^)\r\n(^o^)ame Max_Ra\r\n(^o^)dom_Score_Diff type spi\r\n(^o^) default 0 mi\r\n(^o^) 0 max 32600\r\noptio\r\n(^o^)\r\n(^o^)ame Max_Ra\r\n(^o^)dom_Score_Diff_Ply type spi\r\n(^o^) default 32767 mi\r\n(^o^) 0 max 32767\r\noptio\r\n(^o^)\r\n(^o^)ame Mi\r\n(^o^)_Book_Ply type spi\r\n(^o^) default 32767 mi\r\n(^o^) 0 max 32767\r\noptio\r\n(^o^)\r\n(^o^)ame Mi\r\n(^o^)_Book_Score type spi\r\n(^o^) default -180 mi\r\n(^o^) -32601 max 32601\r\noptio\r\n(^o^)\r\n(^o^)ame Mi\r\n(^o^)imum_Thi\r\n(^o^)ki\r\n(^o^)g_Time type spi\r\n(^o^) default 20 mi\r\n(^o^) 0 max 2147483647\r\noptio\r\n(^o^)\r\n(^o^)ame Move_Overhead type spi\r\n(^o^) default 30 mi\r\n(^o^) 0 max 5000\r\noptio\r\n(^o^)\r\n(^o^)ame MultiPV type spi\r\n(^o^) default 1 mi\r\n(^o^) 1 max 594\r\noptio\r\n(^o^)\r\n(^o^)ame Ow\r\n(^o^)Book type check default true\r\noptio\r\n(^o^)\r\n(^o^)ame Slow_Mover type spi\r\n(^o^) default 89 mi\r\n(^o^) 1 max 1000\r\noptio\r\n(^o^)\r\n(^o^)ame Slow_Mover_10 type spi\r\n(^o^) default 10 mi\r\n(^o^) 1 max 1000\r\noptio\r\n(^o^)\r\n(^o^)ame Slow_Mover_16 type spi\r\n(^o^) default 20 mi\r\n(^o^) 1 max 1000\r\noptio\r\n(^o^)\r\n(^o^)ame Slow_Mover_20 type spi\r\n(^o^) default 40 mi\r\n(^o^) 1 max 1000\r\noptio\r\n(^o^)\r\n(^o^)ame Threads type spi\r\n(^o^) default 2 mi\r\n(^o^) 1 max 256\r\noptio\r\n(^o^)\r\n(^o^)ame Time_Margi\r\n(^o^) type spi\r\n(^o^) default 4500 mi\r\n(^o^) 0 max 2147483647\r\noptio\r\n(^o^)\r\n(^o^)ame USI_Hash type spi\r\n(^o^) default 256 mi\r\n(^o^) 1 max 1048576\r\noptio\r\n(^o^)\r\n(^o^)ame USI_Po\r\n(^o^)der type check default true\r\nusiok\r\n<\/code><\/pre>\n<p>\u8fd9\u662f\u4ec0\u4e48\u4e1c\u897f\u3002<\/p>\n<p>\u5728\u6587\u5b57\u4e2d\u662f\u5426\u6709\u6362\u884c\u2026\u2026\uff1f<br \/>\n\u8bd5\u7740\u5728\u5206\u9694\u7b26\u53f7\u884c\u9996\u52a0\u4e0a #\uff0c\u6682\u65f6\u6ce8\u91ca\u6389\u3002<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\n\r\n# \u533a\u5207\u308a\u6587\u5b57\u306f NewLine \u3067\u3002\r\n# IFS=$'\\n'\r\nfor line in $VAR\r\ndo\r\necho \"(^o^)$line\"\r\ndone\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi4\r\n(^o^)id\r\n(^o^)name\r\n(^o^)ukamuse_SDT4\r\n(^o^)id\r\n(^o^)author\r\n(^o^)Hiraoka\r\n(^o^)Takuya\r\n(^o^)option\r\n(^o^)name\r\n(^o^)Best_Book_Move\r\n(^o^)type\r\n(^o^)check\r\n(^o^)default\r\n(^o^)false\r\n(^o^)option\r\n(^o^)name\r\n\uff5e\u4ee5\u4e0b\u7565\uff5e\r\n<\/code><\/pre>\n<p>\u6240\u6709\u7684\u767d\u8272\u7a7a\u683c\u90fd\u662f\u5206\u9694\u7b26\u5417\uff1f<\/p>\n<p>\u6211\u4eec\u8bd5\u8bd5\u7528\u53cc\u5f15\u53f7\u6765\u5305\u542b\u6362\u884c\u7b26 &#8220;\\n&#8221;\u3002<\/p>\n<pre class=\"post-pre\"><code>IFS=$\"\\n\"\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>IFS=$\"\\n\"\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>IFS=$'\\t\\n'\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u3002\u5b57\u6bcd t \u5df2\u7ecf\u6d88\u5931\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>IFS=$'\\\\n'\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>IFS=$\"\\\\n\"\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>IFS=\"\\\\n\"\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u3002<\/p>\n<p>\u8981\u5c06bash\u7684IFS\u8bbe\u7f6e\u4e3a\u4ec5\u5305\u542b\u6362\u884c\u7b26\uff0c\u8bf7\u53c2\u8003\u4ee5\u4e0b\u94fe\u63a5\u300c\u8ba1\u7b97\u673a\u548c\u5a31\u4e50\u7684\u65e5\u5b50\u300d(http:\/\/d.hatena.ne.jp\/n9d\/20090313\/1236912316)\u3002<\/p>\n<pre class=\"post-pre\"><code>IFS='\r\n'\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/tamesi4\r\n(^o^)id name ukamuse_SDT4\r\n(^o^)id author Hiraoka Takuya\r\n(^o^)option name Best_Book_Move type check default false\r\n(^o^)option name Book_File type string default book\/20150503\/book.bin\r\n(^o^)option name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\n\uff5e\u4ee5\u4e0b\u7565\uff5e\r\n<\/code><\/pre>\n<p>\u597d\u7684\uff0c\u90a3\u5c31\u66ab\u6642\u5c07\u6bcf\u4e00\u884c\u5206\u958b\u4f86\u3002<br \/>\n\u63a5\u4e0b\u4f86\uff0c\u6211\u5011\u60f3\u8981\u7528\u534a\u89d2\u7a7a\u683c\u5c07\u5206\u958b\u7684\u6bcf\u4e00\u884c\u518d\u9032\u884c\u5206\u9694\u3002<\/p>\n<p>\u7531\u4e8e\u5d4c\u5957\u5faa\u73af\u53ef\u80fd\u4f1a\u589e\u52a0\u91cd\u7f6e\u5206\u9694\u7b26\u7684\u5de5\u4f5c\u91cf\uff0c\u6240\u4ee5\u5e0c\u671b\u5c06\u884c\u5206\u5272\u7684\u7ed3\u679c\u653e\u5165\u6570\u7ec4\uff0c\u5e76\u5206\u4e3a\u53e6\u4e00\u4e2a\u5faa\u73af\u8fdb\u884c\u5904\u7406\u3002<\/p>\n<h1>\u600e\u4e48\u4f7f\u7528\u6570\u7ec4\uff1f<\/h1>\n<p>\u300cbash \u6570\u7ec4\u603b\u7ed3\u300d (Qiita)<br \/>\nhttp:\/\/qiita.com\/b4b4r07\/items\/e56a8e3471fb45df2f59<\/p>\n<p>\u8fd9\u662f\u4ec0\u4e48\u9b3c\u4e1c\u897f\uff0c\u597d\u590d\u6742\u554a\u3002<br \/>\n\u6211\u4e0d\u77e5\u9053\u5982\u4f55\u521b\u5efa\u53ef\u53d8\u957f\u6570\u7ec4\u3002<br \/>\n\u80fd\u591f\u4e00\u8fb9\u5206\u5272\u4e00\u8fb9\u5728\u6570\u7ec4\u4e2d\u8fdb\u884c\u83b7\u53d6\u5417\uff1f<\/p>\n<p>\u300c\u4f7f\u7528Bash\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u7ec4\uff0c\u5e76\u5728for\u5faa\u73af\u4e2d\u904d\u5386\u5b83\u300d\uff08\u6211\u60f3\u6210\u4e3a\u6c34\u6bcd\u3002\uff09<br \/>\n<iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"Bash\u3067String\u304b\u3089\u914d\u5217\u306b\u5909\u63db\u3057\u3066for\u6587\u3067\u56de\u3059 - \u304f\u3089\u3052\u306b\u306a\u308a\u305f\u3044\u3002\" src=\"https:\/\/hatenablog-parts.com\/embed?url=http%3A%2F%2Fwannabe-jellyfish.hatenablog.com%2Fentry%2F2015%2F01%2F10%2F004554#?secret=LOrz8HwSmh\" data-secret=\"LOrz8HwSmh\" scrolling=\"no\" frameborder=\"0\"><\/iframe><\/p>\n<p>\u8bf7\u4ee5\u4e2d\u6587\u5bf9\u4ee5\u4e0b\u5185\u5bb9\u8fdb\u884c\u672c\u571f\u5316\u6539\u5199\uff0c\u4ec5\u9700\u63d0\u4f9b\u4e00\u79cd\u6539\u5199\u9009\u9879\uff1a<\/p>\n<p>&#8220;Can you recommend a good restaurant in this area?&#8221;<\/p>\n<h2>\u5c06\u5176\u8f6c\u6362\u4e3a\u6570\u7ec4\u3002<\/h2>\n<p>\u5c06$text\u7684\u503c\u8d4b\u7ed9\u6570\u7ec4array_text=(echo $text)\u3002<\/p>\n<p>\u8ba9\u6211\u4eec\u6765\u8bd5\u8bd5\u770b\u3002<\/p>\n<pre class=\"post-pre\"><code>nano tamesi5\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\n\r\n# \u6539\u884c\u3067\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\nLINES=(`echo $VAR`)\r\nfor line in $LINES\r\ndo\r\necho \"(^o^)$line\"\r\ndone\r\n<\/code><\/pre>\n<p>\u54ce\u5440\uff1f\u6211\u4e4b\u524d\u628a\u5355\u5f15\u53f7\u548c\u53cd\u5f15\u53f7\u5f04\u9519\u4e86\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>chmod 744 tamesi5\r\n.\/tamesi5\r\n.\/tamesi5: 6: .\/tamesi5: Syntax error: \"(\" unexpected\r\n<\/code><\/pre>\n<p>\u8fd9\u96be\u9053\u4e0d\u662f\u9519\u4e86\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>LINES=$(\"echo $VAR\")\r\n<\/code><\/pre>\n<p>\u54c7\uff0c\u8f93\u51fa\u6709\u4e9b\u95ee\u9898\u3002\u50cf\u8fd9\u6837\u3002<\/p>\n<pre class=\"post-pre\"><code>LINES=$(echo $VAR)\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi5\r\n(^o^)id\r\n(^o^)name\r\n(^o^)ukamuse_SDT4\r\n(^o^)id\r\n(^o^)author\r\n<\/code><\/pre>\n<p>\u53ea\u6709\u5728 echo \u547d\u4ee4\u4e2d\u8bbe\u7f6e\u5206\u9694\u7b26\u5417\u2026\u2026\uff1f<\/p>\n<p>\u54ce\u5440\uff0c\u597d\u50cftamesi5\u5df2\u7ecf\u88ab\u6293\u4f4f\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>kill %1\r\n<\/code><\/pre>\n<p>\u867d\u7136\u5c1d\u8bd5\u505c\u4e0b\u6765\u4e86\u3002\u55ef\u3002<\/p>\n<pre class=\"post-pre\"><code>ls -an\r\n\uff5e\u4e2d\u7565\uff5e\r\n-rwxr--r-- 1 0 0    156 Mar  5 20:01 tamesi5\r\n-rw-r--r-- 1 0 0   1024 Mar  5 20:01 .tamesi5.swp\r\n<\/code><\/pre>\n<p>\u8fd8\u6709\u6ca1\u6709\u9501\u5b9a\u7684\u6587\u4ef6\uff1f\u53ef\u4ee5\u5220\u9664\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>rm .tamesi5.swp\r\n<\/code><\/pre>\n<p>\u8bf7tamesi5\u7f16\u8f91\uff0c\u770b\u770b\u8fd9\u4e2a\u7248\u672c\u600e\u4e48\u6837\u3002<\/p>\n<pre class=\"post-pre\"><code># \u533a\u5207\u308a\u6587\u5b57IFS\u306f\u6539\u884c\u3060\u3051\u3067\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\nIFS='\r\n'\r\nLINES=$(echo $VAR)\r\n<\/code><\/pre>\n<p>\u90a3\u4e2a\u8f93\u51fa\u7ed3\u679c\u597d\u50cf\u8fde\u63a5\u5728\u4e00\u884c\u4e0a\u4e86\u3002<br \/>\n\u90a3\u4e48\uff0c\u6211\u4eec\u8bd5\u8bd5\u4f7f\u7528\u6570\u7ec4\u6dfb\u52a0\u5143\u7d20\u7684\u65b9\u5f0f\u3002<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\n\r\n# \u884c\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\nLINES=()\r\n# \u533a\u5207\u308a\u6587\u5b57\u306f \u6539\u884c\u3060\u3051\u3067\u3002\r\nIFS='\r\n'\r\nfor line in $VAR\r\ndo\r\nLINES=(\"${LINES[@]}\" $line)\r\ndone\r\n\r\nfor line in $LINES\r\ndo\r\necho \"(^o^)$line\"\r\ndone\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi5\r\n.\/tamesi5: 6: .\/tamesi5: Syntax error: \"(\" unexpected\r\n<\/code><\/pre>\n<p>\u55ef\u3002<\/p>\n<p>&#8220;\u7528bash\u6216sh\u5904\u7406\u6570\u7ec4\u3002&#8221; (\u4eba\u751f\u592a\u77ed\u6682\u4e86\uff0c\u6ca1\u6709\u65f6\u95f4\u53bb\u8ba8\u538c\u81ea\u5df1\u7684\u5de5\u4f5c\u3002)<\/p>\n<p>\u6539\u5beb\u6210\u81ea\u7136\u4e2d\u6587\u7684\u53e5\u5b50\uff1a<br \/>\n\u7531\u65bcsh\u6c92\u6709\u9663\u5217\uff0c\u6240\u4ee5\u4f3c\u4e4e\u6700\u597d\u4f7f\u7528bash\u3002\u90a3\u9ebc\u6587\u4ef6\u7684\u958b\u982d\u61c9\u8a72\u4f7f\u7528\u54ea\u500b\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/sh\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u8bf4<\/p>\n<pre class=\"post-pre\"><code>#!\/bin\/bash\r\n<\/code><\/pre>\n<p>\u8fdb\u884c\u66f4\u6539\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/tamesi5\r\n(^o^)id name ukamuse_SDT4\r\n<\/code><\/pre>\n<p>\u6211\u6536\u5230\u4e86\u4e00\u884c\u3002\u8ba9\u6211\u4eec\u68c0\u67e5\u4e00\u4e0b\u6570\u7ec4\u7684\u5143\u7d20\u6570\u91cf\u3002<\/p>\n<pre class=\"post-pre\"><code>echo ${#array[@]}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi5\r\n0\r\n(^o^)id name ukamuse_SDT4\r\n<\/code><\/pre>\n<p>\u55ef\u3002<br \/>\n\u9019\u6a23\u554a\u3002<\/p>\n<pre class=\"post-pre\"><code>echo ${#LINES[@]}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi5\r\n26\r\n(^o^)id name ukamuse_SDT4\r\n<\/code><\/pre>\n<p>\u6211\u80fd\u591f\u5c06\u6570\u7ec4\u5206\u5272\u5417\uff1f<\/p>\n<p>\u300c\u67e5\u770b\u6570\u7ec4\u6570\u636e\u300d(Qiita)<br \/>\nhttp:\/\/qiita.com\/b4b4r07\/items\/e56a8e3471fb45df2f59<\/p>\n<p>\u90a3\u4e48\uff0c\u5c31\u8fd9\u6837\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>i=0\r\nfor line in ${LINES[@]}\r\ndo\r\n    echo \"(^q^)[$i] = $line\"\r\n    let i++\r\ndone\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi5\r\n26\r\n(^q^)[0] = id name ukamuse_SDT4\r\n(^q^)[1] = id author Hiraoka Takuya\r\n(^q^)[2] = option name Best_Book_Move type check default false\r\n(^q^)[3] = option name Book_File type string default book\/20150503\/book.bin\r\n(^q^)[4] = option name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\n(^q^)[5] = option name Clear_Hash type button\r\n(^q^)[6] = option name Draw_Ply type spin default 256 min 1 max 2147483647\r\n(^q^)[7] = option name Engine_Name type string default ukamuse_SDT4\r\n(^q^)[8] = option name Max_Book_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[9] = option name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\n(^q^)[10] = option name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[11] = option name Min_Book_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[12] = option name Min_Book_Score type spin default -180 min -32601 max 32601\r\n(^q^)[13] = option name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\n(^q^)[14] = option name Move_Overhead type spin default 30 min 0 max 5000\r\n(^q^)[15] = option name MultiPV type spin default 1 min 1 max 594\r\n(^q^)[16] = option name OwnBook type check default true\r\n(^q^)[17] = option name Slow_Mover type spin default 89 min 1 max 1000\r\n(^q^)[18] = option name Slow_Mover_10 type spin default 10 min 1 max 1000\r\n(^q^)[19] = option name Slow_Mover_16 type spin default 20 min 1 max 1000\r\n(^q^)[20] = option name Slow_Mover_20 type spin default 40 min 1 max 1000\r\n(^q^)[21] = option name Threads type spin default 2 min 1 max 256\r\n(^q^)[22] = option name Time_Margin type spin default 4500 min 0 max 2147483647\r\n(^q^)[23] = option name USI_Hash type spin default 256 min 1 max 1048576\r\n(^q^)[24] = option name USI_Ponder type check default true\r\n(^q^)[25] = usiok\r\n<\/code><\/pre>\n<p>\u597d\u7684\uff01<\/p>\n<h1>\u5c06\u6570\u7ec4\u7684\u5143\u7d20\u5185\u5bb9\u8f6c\u6362\u4e3a\u4ee5\u7a7a\u683c\u5206\u9694<\/h1>\n<p>\u8fd9\u4e2a\u5408\u9002\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>nano tamesi6\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#!\/bin\/bash\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\n\r\n# \u884c\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\nLINES=()\r\n# \u533a\u5207\u308a\u6587\u5b57\u306f \u6539\u884c\u3060\u3051\u3067\r\nIFS='\r\n'\r\nfor line in $VAR\r\ndo\r\nLINES=(\"${LINES[@]}\" $line)\r\ndone\r\n# echo ${#LINES[@]}\r\n\r\niLine=0\r\nfor line in ${LINES[@]}\r\ndo\r\n    echo \"(^q^)[$iLine] = $line\"\r\n\r\n    # \u884c\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\n    TOKENS=()\r\n    # \u533a\u5207\u308a\u6587\u5b57\u306f \u534a\u89d2\u30b9\u30da\u30fc\u30b9\u3060\u3051\u3067\r\n    IFS=' '\r\n\r\n    iToken=0\r\n    for token in $line\r\n    do\r\n        TOKENS=(\"${TOKENS[@]}\" $token)\r\n        echo \"(^q^)[$iLine][$iToken] = $token\"\r\n        let iToken++\r\n    done\r\n\r\n    let iLine++\r\ndone\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>chmod 744 tamesi6\r\n.\/tamesi6\r\n(^q^)[0] = id name ukamuse_SDT4\r\n(^q^)[0][0] = id\r\n(^q^)[0][1] = name\r\n(^q^)[0][2] = ukamuse_SDT4\r\n(^q^)[1] = id author Hiraoka Takuya\r\n(^q^)[1][0] = id\r\n(^q^)[1][1] = author\r\n(^q^)[1][2] = Hiraoka\r\n(^q^)[1][3] = Takuya\r\n(^q^)[2] = option name Best_Book_Move type check default false\r\n(^q^)[2][0] = option\r\n(^q^)[2][1] = name\r\n(^q^)[2][2] = Best_Book_Move\r\n(^q^)[2][3] = type\r\n(^q^)[2][4] = check\r\n(^q^)[2][5] = default\r\n(^q^)[2][6] = false\r\n(^q^)[3] = option name Book_File type string default book\/20150503\/book.bin\r\n(^q^)[3][0] = option\r\n(^q^)[3][1] = name\r\n(^q^)[3][2] = Book_File\r\n(^q^)[3][3] = type\r\n(^q^)[3][4] = string\r\n(^q^)[3][5] = default\r\n(^q^)[3][6] = book\/20150503\/book.bin\r\n(^q^)[4] = option name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\n(^q^)[4][0] = option\r\n(^q^)[4][1] = name\r\n(^q^)[4][2] = Byoyomi_Margin\r\n(^q^)[4][3] = type\r\n(^q^)[4][4] = spin\r\n(^q^)[4][5] = default\r\n(^q^)[4][6] = 500\r\n(^q^)[4][7] = min\r\n(^q^)[4][8] = 0\r\n(^q^)[4][9] = max\r\n(^q^)[4][10] = 2147483647\r\n(^q^)[5] = option name Clear_Hash type button\r\n(^q^)[5][0] = option\r\n(^q^)[5][1] = name\r\n(^q^)[5][2] = Clear_Hash\r\n(^q^)[5][3] = type\r\n(^q^)[5][4] = button\r\n(^q^)[6] = option name Draw_Ply type spin default 256 min 1 max 2147483647\r\n(^q^)[6][0] = option\r\n(^q^)[6][1] = name\r\n(^q^)[6][2] = Draw_Ply\r\n(^q^)[6][3] = type\r\n(^q^)[6][4] = spin\r\n(^q^)[6][5] = default\r\n(^q^)[6][6] = 256\r\n(^q^)[6][7] = min\r\n(^q^)[6][8] = 1\r\n(^q^)[6][9] = max\r\n(^q^)[6][10] = 2147483647\r\n(^q^)[7] = option name Engine_Name type string default ukamuse_SDT4\r\n(^q^)[7][0] = option\r\n(^q^)[7][1] = name\r\n(^q^)[7][2] = Engine_Name\r\n(^q^)[7][3] = type\r\n(^q^)[7][4] = string\r\n(^q^)[7][5] = default\r\n(^q^)[7][6] = ukamuse_SDT4\r\n(^q^)[8] = option name Max_Book_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[8][0] = option\r\n(^q^)[8][1] = name\r\n(^q^)[8][2] = Max_Book_Ply\r\n(^q^)[8][3] = type\r\n(^q^)[8][4] = spin\r\n(^q^)[8][5] = default\r\n(^q^)[8][6] = 32767\r\n(^q^)[8][7] = min\r\n(^q^)[8][8] = 0\r\n(^q^)[8][9] = max\r\n(^q^)[8][10] = 32767\r\n(^q^)[9] = option name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\n(^q^)[9][0] = option\r\n(^q^)[9][1] = name\r\n(^q^)[9][2] = Max_Random_Score_Diff\r\n(^q^)[9][3] = type\r\n(^q^)[9][4] = spin\r\n(^q^)[9][5] = default\r\n(^q^)[9][6] = 0\r\n(^q^)[9][7] = min\r\n(^q^)[9][8] = 0\r\n(^q^)[9][9] = max\r\n(^q^)[9][10] = 32600\r\n(^q^)[10] = option name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[10][0] = option\r\n(^q^)[10][1] = name\r\n(^q^)[10][2] = Max_Random_Score_Diff_Ply\r\n(^q^)[10][3] = type\r\n(^q^)[10][4] = spin\r\n(^q^)[10][5] = default\r\n(^q^)[10][6] = 32767\r\n(^q^)[10][7] = min\r\n(^q^)[10][8] = 0\r\n(^q^)[10][9] = max\r\n(^q^)[10][10] = 32767\r\n(^q^)[11] = option name Min_Book_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[11][0] = option\r\n(^q^)[11][1] = name\r\n(^q^)[11][2] = Min_Book_Ply\r\n(^q^)[11][3] = type\r\n(^q^)[11][4] = spin\r\n(^q^)[11][5] = default\r\n(^q^)[11][6] = 32767\r\n(^q^)[11][7] = min\r\n(^q^)[11][8] = 0\r\n(^q^)[11][9] = max\r\n(^q^)[11][10] = 32767\r\n(^q^)[12] = option name Min_Book_Score type spin default -180 min -32601 max 32601\r\n(^q^)[12][0] = option\r\n(^q^)[12][1] = name\r\n(^q^)[12][2] = Min_Book_Score\r\n(^q^)[12][3] = type\r\n(^q^)[12][4] = spin\r\n(^q^)[12][5] = default\r\n(^q^)[12][6] = -180\r\n(^q^)[12][7] = min\r\n(^q^)[12][8] = -32601\r\n(^q^)[12][9] = max\r\n(^q^)[12][10] = 32601\r\n(^q^)[13] = option name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\n(^q^)[13][0] = option\r\n(^q^)[13][1] = name\r\n(^q^)[13][2] = Minimum_Thinking_Time\r\n(^q^)[13][3] = type\r\n(^q^)[13][4] = spin\r\n(^q^)[13][5] = default\r\n(^q^)[13][6] = 20\r\n(^q^)[13][7] = min\r\n(^q^)[13][8] = 0\r\n(^q^)[13][9] = max\r\n(^q^)[13][10] = 2147483647\r\n(^q^)[14] = option name Move_Overhead type spin default 30 min 0 max 5000\r\n(^q^)[14][0] = option\r\n(^q^)[14][1] = name\r\n(^q^)[14][2] = Move_Overhead\r\n(^q^)[14][3] = type\r\n(^q^)[14][4] = spin\r\n(^q^)[14][5] = default\r\n(^q^)[14][6] = 30\r\n(^q^)[14][7] = min\r\n(^q^)[14][8] = 0\r\n(^q^)[14][9] = max\r\n(^q^)[14][10] = 5000\r\n(^q^)[15] = option name MultiPV type spin default 1 min 1 max 594\r\n(^q^)[15][0] = option\r\n(^q^)[15][1] = name\r\n(^q^)[15][2] = MultiPV\r\n(^q^)[15][3] = type\r\n(^q^)[15][4] = spin\r\n(^q^)[15][5] = default\r\n(^q^)[15][6] = 1\r\n(^q^)[15][7] = min\r\n(^q^)[15][8] = 1\r\n(^q^)[15][9] = max\r\n(^q^)[15][10] = 594\r\n(^q^)[16] = option name OwnBook type check default true\r\n(^q^)[16][0] = option\r\n(^q^)[16][1] = name\r\n(^q^)[16][2] = OwnBook\r\n(^q^)[16][3] = type\r\n(^q^)[16][4] = check\r\n(^q^)[16][5] = default\r\n(^q^)[16][6] = true\r\n(^q^)[17] = option name Slow_Mover type spin default 89 min 1 max 1000\r\n(^q^)[17][0] = option\r\n(^q^)[17][1] = name\r\n(^q^)[17][2] = Slow_Mover\r\n(^q^)[17][3] = type\r\n(^q^)[17][4] = spin\r\n(^q^)[17][5] = default\r\n(^q^)[17][6] = 89\r\n(^q^)[17][7] = min\r\n(^q^)[17][8] = 1\r\n(^q^)[17][9] = max\r\n(^q^)[17][10] = 1000\r\n(^q^)[18] = option name Slow_Mover_10 type spin default 10 min 1 max 1000\r\n(^q^)[18][0] = option\r\n(^q^)[18][1] = name\r\n(^q^)[18][2] = Slow_Mover_10\r\n(^q^)[18][3] = type\r\n(^q^)[18][4] = spin\r\n(^q^)[18][5] = default\r\n(^q^)[18][6] = 10\r\n(^q^)[18][7] = min\r\n(^q^)[18][8] = 1\r\n(^q^)[18][9] = max\r\n(^q^)[18][10] = 1000\r\n(^q^)[19] = option name Slow_Mover_16 type spin default 20 min 1 max 1000\r\n(^q^)[19][0] = option\r\n(^q^)[19][1] = name\r\n(^q^)[19][2] = Slow_Mover_16\r\n(^q^)[19][3] = type\r\n(^q^)[19][4] = spin\r\n(^q^)[19][5] = default\r\n(^q^)[19][6] = 20\r\n(^q^)[19][7] = min\r\n(^q^)[19][8] = 1\r\n(^q^)[19][9] = max\r\n(^q^)[19][10] = 1000\r\n(^q^)[20] = option name Slow_Mover_20 type spin default 40 min 1 max 1000\r\n(^q^)[20][0] = option\r\n(^q^)[20][1] = name\r\n(^q^)[20][2] = Slow_Mover_20\r\n(^q^)[20][3] = type\r\n(^q^)[20][4] = spin\r\n(^q^)[20][5] = default\r\n(^q^)[20][6] = 40\r\n(^q^)[20][7] = min\r\n(^q^)[20][8] = 1\r\n(^q^)[20][9] = max\r\n(^q^)[20][10] = 1000\r\n(^q^)[21] = option name Threads type spin default 2 min 1 max 256\r\n(^q^)[21][0] = option\r\n(^q^)[21][1] = name\r\n(^q^)[21][2] = Threads\r\n(^q^)[21][3] = type\r\n(^q^)[21][4] = spin\r\n(^q^)[21][5] = default\r\n(^q^)[21][6] = 2\r\n(^q^)[21][7] = min\r\n(^q^)[21][8] = 1\r\n(^q^)[21][9] = max\r\n(^q^)[21][10] = 256\r\n(^q^)[22] = option name Time_Margin type spin default 4500 min 0 max 2147483647\r\n(^q^)[22][0] = option\r\n(^q^)[22][1] = name\r\n(^q^)[22][2] = Time_Margin\r\n(^q^)[22][3] = type\r\n(^q^)[22][4] = spin\r\n(^q^)[22][5] = default\r\n(^q^)[22][6] = 4500\r\n(^q^)[22][7] = min\r\n(^q^)[22][8] = 0\r\n(^q^)[22][9] = max\r\n(^q^)[22][10] = 2147483647\r\n(^q^)[23] = option name USI_Hash type spin default 256 min 1 max 1048576\r\n(^q^)[23][0] = option\r\n(^q^)[23][1] = name\r\n(^q^)[23][2] = USI_Hash\r\n(^q^)[23][3] = type\r\n(^q^)[23][4] = spin\r\n(^q^)[23][5] = default\r\n(^q^)[23][6] = 256\r\n(^q^)[23][7] = min\r\n(^q^)[23][8] = 1\r\n(^q^)[23][9] = max\r\n(^q^)[23][10] = 1048576\r\n(^q^)[24] = option name USI_Ponder type check default true\r\n(^q^)[24][0] = option\r\n(^q^)[24][1] = name\r\n(^q^)[24][2] = USI_Ponder\r\n(^q^)[24][3] = type\r\n(^q^)[24][4] = check\r\n(^q^)[24][5] = default\r\n(^q^)[24][6] = true\r\n(^q^)[25] = usiok\r\n(^q^)[25][0] = usiok\r\n<\/code><\/pre>\n<p>\u4f60\u884c\u4e0d\u884c\u3002<\/p>\n<h1>\u6211\u4eec\u628a\u5b83\u53d8\u6210\u4e00\u4e2a\u5b50\u7a0b\u5e8f\u5427\u3002<\/h1>\n<p>\u5c06\u5c06\u4e00\u884c\u6587\u672c\u5206\u5272\u5e76\u5b58\u5165\u6570\u7ec4\u7684\u90e8\u5206\uff0c\u63d0\u53d6\u51fa\u6765\u4f5c\u4e3a\u4e00\u4e2a\u5b50\u7a0b\u5e8f\u3002<\/p>\n<pre class=\"post-pre\"><code>nano tamesi7\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#!\/bin\/bash\r\n\r\n# \u4e00\u884c\u3092\u30c8\u30fc\u30af\u30f3\u533a\u5207\u308a\u914d\u5217\u3078\r\n# $1...line\r\nLine_To_Tokens(){\r\n    TOKENS=()\r\n    # \u533a\u5207\u308a\u6587\u5b57\u306f \u534a\u89d2\u30b9\u30da\u30fc\u30b9\u3060\u3051\u3067\r\n    IFS=' '\r\n\r\n    iToken=0\r\n    for token in $1\r\n    do\r\n        TOKENS=(\"${TOKENS[@]}\" $token)\r\n        let iToken++\r\n    done\r\n\r\n    # \u305b\u3063\u304b\u304f\u914d\u5217\u306b\u3044\u308c\u3066\u3082\u6a19\u6e96\u51fa\u529b\u3078\u8fd4\u3059\u306e\u304b\u2026\u2026\r\n    echo ${TOKENS[@]}\r\n}\r\n\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\n\r\n# \u884c\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\nLINES=()\r\n# \u533a\u5207\u308a\u6587\u5b57\u306f \u6539\u884c\u3060\u3051\u3067\r\nIFS='\r\n'\r\nfor line in $VAR\r\ndo\r\nLINES=(\"${LINES[@]}\" $line)\r\ndone\r\n\r\niLine=0\r\nfor line in ${LINES[@]}\r\ndo\r\n    # \u884c\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\n    TOKENS=(`Line_To_Tokens $line`)\r\n\r\n    echo \"(^q^)[$iLine] = ${TOKENS[@]}\"\r\n\r\n    let iLine++\r\ndone\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>chmod 744 tamesi7\r\n.\/tamesi7\r\n(^q^)[0] = id name ukamuse_SDT4\r\n(^q^)[1] = id author Hiraoka Takuya\r\n(^q^)[2] = option name Best_Book_Move type check default false\r\n(^q^)[3] = option name Book_File type string default book\/20150503\/book.bin\r\n(^q^)[4] = option name Byoyomi_Margin type spin default 500 min 0 max 2147483647\r\n(^q^)[5] = option name Clear_Hash type button\r\n(^q^)[6] = option name Draw_Ply type spin default 256 min 1 max 2147483647\r\n(^q^)[7] = option name Engine_Name type string default ukamuse_SDT4\r\n(^q^)[8] = option name Max_Book_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[9] = option name Max_Random_Score_Diff type spin default 0 min 0 max 32600\r\n(^q^)[10] = option name Max_Random_Score_Diff_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[11] = option name Min_Book_Ply type spin default 32767 min 0 max 32767\r\n(^q^)[12] = option name Min_Book_Score type spin default -180 min -32601 max 32601\r\n(^q^)[13] = option name Minimum_Thinking_Time type spin default 20 min 0 max 2147483647\r\n(^q^)[14] = option name Move_Overhead type spin default 30 min 0 max 5000\r\n(^q^)[15] = option name MultiPV type spin default 1 min 1 max 594\r\n(^q^)[16] = option name OwnBook type check default true\r\n(^q^)[17] = option name Slow_Mover type spin default 89 min 1 max 1000\r\n(^q^)[18] = option name Slow_Mover_10 type spin default 10 min 1 max 1000\r\n(^q^)[19] = option name Slow_Mover_16 type spin default 20 min 1 max 1000\r\n(^q^)[20] = option name Slow_Mover_20 type spin default 40 min 1 max 1000\r\n(^q^)[21] = option name Threads type spin default 2 min 1 max 256\r\n(^q^)[22] = option name Time_Margin type spin default 4500 min 0 max 2147483647\r\n(^q^)[23] = option name USI_Hash type spin default 256 min 1 max 1048576\r\n(^q^)[24] = option name USI_Ponder type check default true\r\n(^q^)[25] = usiok\r\n<\/code><\/pre>\n<p>\u597d\u5427\uff0c\u6309\u7167\u9884\u671f\u7684\u65b9\u5f0f\u8fd0\u884c\u4e86\u3002\u867d\u7136\u6ca1\u6709\u50cf\u5b50\u7a0b\u5e8f\u5316\u4e00\u6837\u4ee4\u4eba\u9ad8\u5174\u2026\u2026\u3002<\/p>\n<h1>\u5206\u7c7b\u4e00\u4e0b<\/h1>\n<p>\u5728\u8fd9\u91cc\uff0c\u5f53\u770b\u5230\u6bcf\u4e00\u884c\u7684\u7b2c\u4e00\u4e2a\u5355\u8bcd\uff08\u7b2c\u4e00\u4e2a\u6807\u8bb0\uff09\u65f6\uff0c<\/p>\n<p>&#8211; \u8eab\u4efd<br \/>\n&#8211; \u9009\u62e9<br \/>\n&#8211; \u53ef\u884c<\/p>\n<p>\u8ba9\u6211\u4eec\u5148\u5ffd\u7565id\u548coption\uff0c\u5199\u4e00\u4e2a\u68c0\u67e5\u662f\u5426\u5b58\u5728usiok\u7684\u7a0b\u5e8f\uff0c\u4ece\u4e2d\u6211\u4eec\u53ef\u4ee5\u786e\u5b9a\u5176\u5c5e\u4e8e\u54ea\u4e00\u4e2a\u3002<\/p>\n<p>\u5047\u8bbe\u6709 usiok \u7684\u60c5\u51b5\u4e0b\uff0c\u5c06\u53d1\u9001 &#8220;isready&#8221; \u5b57\u7b26\u4e32\u5230\u6d6e\u6c99\u3002<\/p>\n<p>\u8981\u83b7\u53d6\u6587\u672c\u7684\u7b2c\u4e00\u884c\u3002<\/p>\n<p>\u5982\u4f55\u4f7f\u7528cat\u547d\u4ee4\u8bfb\u53d6\u7b2c\u4e00\u884c\uff1f\uff08\u6765\u81eastackoverflow\uff09http:\/\/stackoverflow.com\/questions\/6114119\/how-do-i-read-first-line-using-cat<\/p>\n<pre class=\"post-pre\"><code>head -n 1 file.txt\r\n<\/code><\/pre>\n<p>\u5982\u679c\u8981\u786e\u8ba4head\u547d\u4ee4\u7684\u64cd\u4f5c\u662f\u5426\u6b63\u786e\uff0c\u5e94\u8be5\u600e\u4e48\u505a\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>FIRST_TOKEN=(`head -n 1 ${TOKENS[@]}`)\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>(^q^)[1] =\r\nhead: cannot open 'option name Best_Book_Move type check default false' for reading: No such file or directory\r\n<\/code><\/pre>\n<p>\u96be\u9053\u4e0d\u662f\u5fc5\u987b\u8981\u6587\u4ef6\u5417\uff1f<\/p>\n<p>\u300c\u6587\u5b57\u5217\u62bd\u51fa\u5de5\u5177\u300ccut\u300d\u300d(ITPro)<br \/>\nhttp:\/\/itpro.nikkeibp.co.jp\/article\/COLUMN\/20060228\/231159\/<\/p>\n<pre class=\"post-pre\"><code>FIRST_TOKEN=(`echo ${TOKENS[@]} | cut -d \"\r\n\"`)\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>(^q^)[0] =\r\ncut: you must specify a list of bytes, characters, or fields\r\nTry 'cut --help' for more information.\r\n<\/code><\/pre>\n<p>\u5514\u3002<br \/>\nShell\u547d\u4ee4\u5927\u90e8\u5206\u90fd\u662f\u901a\u8fc7\u6807\u51c6\u8f93\u5165\u8f93\u51fa\u8fdb\u884c\u7684\u5427\u3002<br \/>\n\u90a3\u4e48\uff0c\u662f\u4e0d\u662f\u76f4\u63a5\u901a\u8fc7\u6587\u4ef6\u4f20\u8f93\u6bd4\u8f83\u597d\u5462\uff1f<br \/>\n\u8ba9\u6211\u91cd\u65b0\u5199\u4e00\u4e0b\u3002<\/p>\n<p>\u6211\u53ef\u4ee5\u8f93\u51fa\u591a\u884c\u56de\u58f0\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>nano tamesi8\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>#!\/bin\/bash\r\n\r\n# \u5f15\u65701\u3092\u30b9\u30da\u30fc\u30b9\u533a\u5207\u308a\u306b\u3057\u3001\u6700\u521d\u306e\u30c8\u30fc\u30af\u30f3\u3092\u51fa\u529b\r\n# $1...line\r\nLine_To_FirstToken(){\r\n    TOKENS=()\r\n    # \u533a\u5207\u308a\u6587\u5b57\u306f \u534a\u89d2\u30b9\u30da\u30fc\u30b9\u3060\u3051\u3067\r\n    IFS=' '\r\n\r\n    for token in $1\r\n    do\r\n        echo $token\r\n        return 0\r\n    done\r\n}\r\n\r\n.\/apery &amp;\r\nVAR=$(echo 'usi' | .\/apery)\r\n\r\n# \u884c\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\nLINES=()\r\n# \u533a\u5207\u308a\u6587\u5b57\u306f \u6539\u884c\u3060\u3051\u3067\r\nIFS='\r\n'\r\nfor line in $VAR\r\ndo\r\nLINES=(\"${LINES[@]}\" $line)\r\ndone\r\n\r\niLine=0\r\nfor line in ${LINES[@]}\r\ndo\r\n    # \u884c\u5206\u5272\u3057\u3066\u914d\u5217\u306b\u5165\u308c\u308b\r\n    FIRST_TOKEN=(`Line_To_FirstToken $line`)\r\n\r\n    echo \"(^q^)[$iLine] = $FIRST_TOKEN\"\r\n\r\n    let iLine++\r\ndone\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>chmod 744 tamesi8\r\n.\/tamesi8\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi8\r\n(^q^)[0] = id\r\n(^q^)[1] = id\r\n(^q^)[2] = option\r\n(^q^)[3] = option\r\n(^q^)[4] = option\r\n(^q^)[5] = option\r\n(^q^)[6] = option\r\n(^q^)[7] = option\r\n(^q^)[8] = option\r\n(^q^)[9] = option\r\n(^q^)[10] = option\r\n(^q^)[11] = option\r\n(^q^)[12] = option\r\n(^q^)[13] = option\r\n(^q^)[14] = option\r\n(^q^)[15] = option\r\n(^q^)[16] = option\r\n(^q^)[17] = option\r\n(^q^)[18] = option\r\n(^q^)[19] = option\r\n(^q^)[20] = option\r\n(^q^)[21] = option\r\n(^q^)[22] = option\r\n(^q^)[23] = option\r\n(^q^)[24] = option\r\n(^q^)[25] = usiok\r\n<\/code><\/pre>\n<p>\u603b\u4e4b\uff0c\u867d\u7136\u6211\u4eec\u80fd\u5f97\u5230\u7b2c\u4e00\u4e2a\u6807\u8bb0\uff0c\u4f46\u611f\u89c9\u8fd8\u4e0d\u591f\u6e05\u6670\u3002<\/p>\n<p>\u7528C#\u7f16\u5199\u5c06\u68cb\u76f8\u5173\u7684\u7a0b\u5e8f\uff0c\u800c\u4e0d\u662f\u4f7f\u7528bash\u811a\u672c\uff0c\u7136\u540e\u901a\u8fc7\u4e0e\u6d6e\u304b\u3080\u702c\u4f5c\u4e3a\u72ec\u7acb\u8fdb\u7a0b\u8fdb\u884c\u901a\u4fe1\u6765\u5b9e\u73b0\u3002<\/p>\n<p>\u90a3\u4e48\uff0c\u662f\u4e0d\u662f\u5e94\u8be5\u5b89\u88c5 mono \u5462\uff1f<\/p>\n<h1>\u8ba9\u6211\u4eec\u5728 Ubuntu \u4e0a\u5b89\u88c5 Mono\u3002<\/h1>\n<p>\u5728Linux\u4e2d\uff0cC#\u4e0d\u53d7\u6b22\u8fce\u5417\uff1f<\/p>\n<p>\u5728Linux\u4e0a\u7f16\u8bd1Mono<\/p>\n<p>\u5982\u679c\u6211\u6267\u884c\u8fd9\u4e2a\u547d\u4ee4\uff0c\u4f1a\u6709\u4ec0\u4e48\u7ed3\u679c\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>sudo apt-get install git autoconf libtool automake build-essential mono-devel gettext cmake\r\n<\/code><\/pre>\n<p>\u6709\u4ec0\u4e48\u5728\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code>After this operation, 132 MB of additional disk space will be used.\r\nDo you want to continue? [Y\/n]\r\n<\/code><\/pre>\n<p>\u90a3\u4e48\uff0c\u6211\u4eec\u7ee7\u7eed\u524d\u8fdb\u5427\u3002 , ba.)<\/p>\n<pre class=\"post-pre\"><code>done.\r\n<\/code><\/pre>\n<p>\u5df2\u7ecf\u5b8c\u6210\u4e86\u5b89\u88c5\u3002<br \/>\n\u90a3\u4e48\u8ba9\u6211\u4eec\u8bd5\u7740\u7528C#\u8bed\u8a00\u5199\u4e00\u4e2aHello World\u3002<\/p>\n<pre class=\"post-pre\"><code>nano ShogiServer.cs\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"k\">using<\/span> <span class=\"nn\">System<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"k\">namespace<\/span> <span class=\"nn\">ShogiServer<\/span>\r\n<span class=\"p\">{<\/span>\r\n    <span class=\"k\">class<\/span> <span class=\"nc\">Program<\/span>\r\n    <span class=\"p\">{<\/span>\r\n        <span class=\"k\">static<\/span> <span class=\"k\">void<\/span> <span class=\"nf\">Main<\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">[]<\/span> <span class=\"n\">args<\/span><span class=\"p\">)<\/span>\r\n        <span class=\"p\">{<\/span>\r\n            <span class=\"n\">Console<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteLine<\/span><span class=\"p\">(<\/span><span class=\"s\">\"hello, world\"<\/span><span class=\"p\">);<\/span>\r\n        <span class=\"p\">}<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>Nano \u4e0d\u4f1a\u4e3a C# \u4ee3\u7801\u7740\u8272\u5417\uff1f<\/p>\n<p>\u600e\u4e48\u7f16\u8bd1\u5462\uff1f<br \/>\n\u5176\u5b9e\uff0c\u547d\u4ee4\u884c\u8981\u7528\u5230\u4ec0\u4e48\u65f6\u5019\u554a\uff1f\u662f\u4e0d\u662f\u5e94\u8be5\u5b89\u88c5 GUI \u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>man mono\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\uff0c\u884c\u6570\u592a\u591a\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>mono --version\r\nMono JIT compiler version 4.2.1 (Debian 4.2.1.102+dfsg2-7ubuntu4)\r\nCopyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com\r\n        TLS:           __thread\r\n        SIGSEGV:       altstack\r\n        Notifications: epoll\r\n        Architecture:  amd64\r\n        Disabled:      none\r\n        Misc:          softdebug\r\n        LLVM:          supported, not enabled.\r\n        GC:            sgen\r\n<\/code><\/pre>\n<p>\u54c7\uff0c\u7ec8\u4e8e\u66f4\u65b0\u5230\u7b2c\u56db\u7248\u4e86\u3002\u771f\u662f\u592a\u597d\u4e86\uff0c\u771f\u662f\u5e2e\u4e86\u5927\u5fd9\u3002<\/p>\n<p>\u300c\u4f7f\u7528csc.exe\u547d\u4ee4\u884c\u8fdb\u884c\u6784\u5efa\u300d<\/p>\n<p>C# \u7684\u7f16\u8bd1\u5668\u662f csc \u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>csc ShogiServer.cs\r\nThe program 'csc' is currently not installed. You can install it by typing:\r\napt install chicken-bin\r\n<\/code><\/pre>\n<p>\u6211\u6ca1\u6709\u8fdb\u53bb\u2026\u2026\u3002<\/p>\n<p>\u4f5c\u70baXamarin\u7684\u57fa\u790e\uff0c\u5b83\u5305\u62ec\u4e86\u300cMono\u300d\u548cC#\u7de8\u8b6f\u5668\u300cmcs\u300d(buildinsider)<\/p>\n<p>C# \u7684\u7f16\u8bd1\u5668\u662f mcs \u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>mcs ShogiServer.cs\r\nls\r\n\uff5e\u7565\uff5e\r\nShogiServer.cs\r\nShogiServer.exe\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a .exe \u53ef\u4ee5\u8fd0\u884c\u5728 Linux \u4e0a\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>.\/ShogiServer.exe\r\nhello, world\r\n<\/code><\/pre>\n<p>\u5594\uff01 (Oh!)<\/p>\n<p>\u6211\u80fd\u5199C#\u7684Makefile\u5417&#8230;&#8230;\u3002<\/p>\n<h2>\u8ba9\u6211\u4eec\u7f16\u5199\u4e00\u4e2a\u793a\u4f8b\u7a0b\u5e8f\u5427<\/h2>\n<p>\u90a3\u4e48\uff0c\u6682\u65f6\u6211\u5c1d\u8bd5\u7f16\u5199\u4e00\u4e2a\u793a\u4f8b\u7a0b\u5e8f\uff0c\u901a\u8fc7\u6807\u51c6\u8f93\u5165\u63a5\u6536&#8221;usi&#8221;\uff0c\u7136\u540e\u8fd4\u56de&#8221;usiok&#8221;\u3002<\/p>\n<p>\u6211\u4e0d\u4f1a\u8bf4\u4e2d\u6587\u3002<\/p>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            Console.WriteLine(\"hello, world\");\r\n            Console.WriteLine(\"args.Length=\" + args.Length);\r\n            int i = 0;\r\n            foreach (string arg in args)\r\n            {\r\n                Console.WriteLine(\"args[i]=\" + args[i]);\r\n                i++;\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>mcs tamesi9\r\n.\/tamesi9.exe\r\nhello, world\r\nargs.Length=0\r\n<\/code><\/pre>\n<p>\u90a3\u4e48\uff0c<\/p>\n<pre class=\"post-pre\"><code>echo 'usi' | .\/tamesi9.exe\r\nhello, world\r\nargs.Length=0\r\n<\/code><\/pre>\n<p>\u55ef\uff0c\u547d\u4ee4\u884c\u53c2\u6570\u548c\u6807\u51c6\u8f93\u5165\u662f\u4e0d\u540c\u7684\u5417\uff1f<br \/>\n\u90a3\u4e48\uff0c<\/p>\n<pre class=\"post-pre\"><code>.\/tamesi9.exe abc def ghi\r\nhello, world\r\nargs.Length=3\r\nargs[i]=abc\r\nargs[i]=def\r\nargs[i]=ghi\r\n<\/code><\/pre>\n<p>\u90a3\u4e48\u5427\u3002<br \/>\n\u90a3\u597d\uff0c\u8fd9\u6837\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>nano tamesi10\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                string line = Console.ReadLine();\r\n                switch (line)\r\n                {\r\n                    case \"quit\": break;\r\n                    default: Console.WriteLine(\"(^q^)\"+line); break;\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>mcs tamesi10\r\n.\/tamesi10.exe\r\nstart a loop.\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code>abc\r\n(^q^)abc\r\n<\/code><\/pre>\n<p>\u597d\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code>quit\r\n<\/code><\/pre>\n<p>\u54ce\u5440\u3002<\/p>\n<pre class=\"post-pre\"><code>abc\r\n(^q^)\r\n<\/code><\/pre>\n<p>\u5440\u5440\u3002\u590d\u5236\u3002<\/p>\n<p>\u554a\uff0c\u539f\u6765\u5982\u6b64\uff0c\u5373\u4f7f\u5728 switch \u8bed\u53e5\u4e2d\u4f7f\u7528 break\uff0c\u5b83\u53ea\u80fd\u8df3\u51fa switch \u8bed\u53e5\uff0c\u800c\u4e0d\u80fd\u8df3\u51fa for \u5faa\u73af\u3002<\/p>\n<pre class=\"post-pre\"><code>rm tamesi10\r\nnano tamesi10\r\n<\/code><\/pre>\n<p>\u50cf\u8fd9\u6837\u3002<\/p>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                string line = Console.ReadLine();\r\n                switch (line)\r\n                {\r\n                    case \"quit\": goto gt_EndLoop;\r\n                    default: Console.WriteLine(\"(^q^)\"+line); break;\r\n                }\r\n            }\r\n            gt_EndLoop:\r\n            Console.WriteLine(\"finished a loop.\");\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>mcs tamesi10\r\n.\/tamesi10.exe\r\nstart a loop.\r\nabc\r\n(^q^)abc\r\nquit\r\nfinished a loop.\r\n<\/code><\/pre>\n<p>\u8fd9\u4e00\u6b21\u987a\u5229\u4e86\u3002\u90a3\u4e48\uff0c\u8fd9\u4e2a\u7a0b\u5e8f\u80fd\u5728\u540e\u53f0\u8fd0\u884c\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>.\/tamesi10.exe &amp;\r\n[1] 14279\r\nstart a loop.\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>jobs\r\n[1]+  Stopped                 .\/tamesi10.exe\r\n<\/code><\/pre>\n<p>\u6211\u4e0d\u660e\u767d\u8fd9\u4e2a&#8221;Stopped&#8221;\u662f\u4ec0\u4e48\u610f\u601d\u3002<\/p>\n<pre class=\"post-pre\"><code>echo 'usi' | .\/tamesi10.exe\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n\uff5e\u7565\uff5e\r\n<\/code><\/pre>\n<p>\u3010\u590d\u5236\u3011<\/p>\n<p>\u8fd9\u662f\u600e\u4e48\u56de\u4e8b\u554a\u3002<\/p>\n<p>\u8fd9\u662f\u4ec0\u4e48\u9053\u7406\uff1f<\/p>\n<p>\u5c1d\u8bd5\u5728switch\u8bed\u53e5\u4e2d\u52a0\u5165\u4ee5\u4e0b\u884c\uff0c\u4f1a\u600e\u4e48\u6837\uff1f<\/p>\n<pre class=\"post-pre\"><code>case \"\": break;\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi10.exe &amp;\r\n[3] 14317\r\nstart a loop.\r\njobs\r\n[1]   Stopped                 .\/tamesi10.exe\r\n[2]-  Stopped                 nano tamesi10\r\n[3]+  Stopped                 .\/tamesi10.exe\r\nkill %1\r\njobs\r\n[1]   Terminated              .\/tamesi10.exe\r\n[2]-  Stopped                 nano tamesi10\r\n[3]+  Stopped                 .\/tamesi10.exe\r\necho 'usi' | .\/tamesi10.exe\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n(^q^)\r\n\uff5e\u4e2d\u7565\uff5e\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u5417\u3002<\/p>\n<p>\u5c1d\u8bd5\u5c06ReadLine() \u66ff\u6362\u4e3aRead() \u3002<\/p>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                int ch = Console.Read();\r\n                Console.WriteLine(\"(^q^)ch=\" + ch);\r\n            }\r\n            Console.WriteLine(\"finished a loop.\");\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>mcs tamesi10\r\ntamesi10(15,13): warning CS0162: Unreachable code detected\r\nCompilation succeeded - 1 warning(s)\r\n.\/tamesi10.exe &amp;\r\n[3] 14482\r\nstart a loop.\r\necho 'usi' | .\/tamesi10.exe\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n(^q^)ch=-1\r\n<\/code><\/pre>\n<p>\u55ef\uff0c-1 \u662f\u4ec0\u4e48\u610f\u601d\u5462\u3002<br \/>\n\u90a3\u5c31\u4e0d\u8003\u8651-1\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                int ch = Console.Read();\r\n                if (-1 != ch)\r\n                {\r\n                    Console.WriteLine(\"(^q^)ch=\" + ch);\r\n                }\r\n            }\r\n            Console.WriteLine(\"finished a loop.\");\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>\u987a\u4fbf\u8bf4\u4e00\u4e0b\uff0c\u5728\u4e4b\u524d\u7684\u8fc7\u7a0b\u4e2d\uff0c\u51fa\u73b0\u4e86\u4e00\u4e9b\u8f93\u51fa\u4e0e\u8f93\u5165\u91cd\u53e0\u7684\u60c5\u51b5\u3002<\/p>\n<pre class=\"post-pre\"><code>root@tk2-217-18401:\/home\/\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\/shogi\/ukamuse_sdt4\/bin# start a loop.\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u662f\u4e0d\u662f\u4e0d\u884c\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>echo 'usi' | .\/tamesi10.exe\r\nstart a loop.\r\n(^q^)ch=117\r\n(^q^)ch=115\r\n(^q^)ch=105\r\n(^q^)ch=10\r\n<\/code><\/pre>\n<p>\u55ef\uff0c\u4e0b\u4e00\u6b65\u8be5\u600e\u4e48\u529e\uff1f<\/p>\n<pre class=\"post-pre\"><code>echo 'abc' | .\/tamesi10.exe\r\n<\/code><\/pre>\n<p>\u6ca1\u6709\u6536\u5230\u53cd\u5e94\u3002<br \/>\n\u662f\u4ec0\u4e48\u6837\u7684\u7b49\u5f85\u72b6\u6001\uff1f<\/p>\n<pre class=\"post-pre\"><code>echo 'abc' | .\/tamesi10.exe\r\nstart a loop.\r\n(^q^)ch=97\r\n(^q^)ch=98\r\n(^q^)ch=99\r\n(^q^)ch=10\r\n<\/code><\/pre>\n<p>\u4f60\u597d\uff0c\u6807\u51c6\u8f93\u5165\u53ea\u80fd\u8fd0\u884c\u4e00\u6b21\u5417\uff1f\u5982\u679c\u8f93\u51fa\u4e00\u6b21\uff0c\u90a3\u4e48\u7b2c\u4e8c\u6b21\u8f93\u5165\u5c31\u6ca1\u6709\u6548\u679c\uff0c\u8fd9\u662f\u4e00\u79cd\u89c4\u5b9a\u5417\uff1f<\/p>\n<p>\u6211\u4eec\u5c1d\u8bd5\u4f7f\u7528\u53e6\u4e00\u79cd\u65b9\u6cd5\u3002<\/p>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                string line = Console.In.ReadLine();\r\n                switch (line)\r\n                {\r\n                    case \"quit\": goto gt_EndLoop;\r\n                    default: Console.WriteLine(\"(^q^)line=\" + line); break;\r\n                }\r\n            }\r\n            gt_EndLoop:\r\n            Console.WriteLine(\"finished a loop.\");\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi10.exe &amp;\r\necho 'usi' | .\/tamesi10.exe\r\n(^q^)line=\r\n(^q^)line=\r\n(^q^)line=\r\n(^q^)line=\r\n(^q^)line=\r\n(^q^)line=\r\n(^q^)line=\r\n\uff5e\u4e2d\u7565\uff5e\r\n<\/code><\/pre>\n<p>\u54e6\u3002\u5982\u679c\u6392\u9664null\u5462\uff1f<\/p>\n<pre class=\"post-pre\"><code>rm tamesi10\r\nnano tamesi10\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                string line = Console.In.ReadLine();\r\n                if (null != line)\r\n                {\r\n                    switch (line)\r\n                    {\r\n                        case \"quit\": goto gt_EndLoop;\r\n                        default: Console.WriteLine(\"(^q^)line=\" + line); break;\r\n                    }\r\n                }\r\n            }\r\n            gt_EndLoop:\r\n            Console.WriteLine(\"finished a loop.\");\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>mcs tamesi10\r\necho 'usi' | .\/tamesi10.exe\r\nstart a loop.\r\n(^q^)line=usi\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>abc\r\ndef\r\nghi\r\necho 'usi' | .\/tamesi10.exe\r\n<\/code><\/pre>\n<p>\u4e0d\u518d\u8d77\u4f5c\u7528\u4e86\u3002\u600e\u4e48\u624d\u80fd\u5728\u65e0\u9650\u5faa\u73af\u4e2d\u7b49\u5f85\u5462\uff1f<br \/>\n\u5c1d\u8bd5\u53e6\u4e00\u79cd\u8868\u8fbe\u65b9\u5f0f\u770b\u770b\u3002<\/p>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            char[] buffer = new char[256];\r\n\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                int result = Console.In.ReadBlock(buffer, 0, 255);\r\n                Console.WriteLine(\"(^q^)result=\" + result);\r\n                Console.Write(\"(^q^)buffer=\");\r\n                foreach (char ch in buffer)\r\n                {\r\n                    Console.Write(ch);\r\n                }\r\n                Console.WriteLine(\"(^_^)\");\r\n            }\r\n            Console.WriteLine(\"finished a loop.\");\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi10.exe &amp;\r\necho 'usi' | .\/tamesi10.exe\r\n(^q^)result=0\r\n(^q^)buffer=usi\r\n(^_^)\r\n(^q^)result=0\r\n(^q^)buffer=usi\r\n(^_^)\r\n(^q^)result=0\r\n(^q^)buffer=usi\r\n(^_^)\r\n(^q^)result=0\r\n(^q^)buffer=usi\r\n(^_^)\r\n(^q^)result=0\r\n(^q^)buffer=usi\r\n(^_^)\r\n<\/code><\/pre>\n<h2>\u5728Ubuntu\/C\uff03\u4e2d\uff0c\u8f93\u5165\u7f13\u51b2\u533a\u662f\u5426\u672a\u88ab\u5237\u65b0\uff1f<\/h2>\n<p>\u8f93\u5165\u7aef\u7684\u7f13\u51b2\u533a\u662f\u5426\u5df2\u88ab\u6e05\u7a7a\uff1f<\/p>\n<p>&#8220;\u81ea\u8eab\u8fdb\u7a0b\u7684\u6807\u51c6\u8f93\u5165\u8f93\u51fa&#8221; (SMDN)<br \/>\nhttp:\/\/smdn.jp\/programming\/netfx\/standard_streams\/0_console\/<\/p>\n<p>\u300cC#\u7f16\u7a0b\u7ade\u6280\u7231\u597d\u8005\u7684\u8d34\u58eb\u300d (Qiita)<br \/>\nhttp:\/\/qiita.com\/Camypaper\/items\/de6d576fe5513743a50e<\/p>\n<p>\u90a3\u4e48\uff0c\u8ba9\u6211\u4eec\u5c1d\u8bd5\u5c06\u5176\u91cd\u65b0\u6539\u5199\u4e3a\u76f4\u5230\u6709\u4e0d\u540c\u7684\u8f93\u5165\u51fa\u73b0\u624d\u5ffd\u7565\u3002<\/p>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            string line_old = \"\";\r\n\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                string line = Console.ReadLine(); \/\/ Ubuntu\u3067\u306f\u5165\u529b\u304c\u30d5\u30e9\u30c3\u30b7\u30e5\u3055\u308c\u306a\u304b\u3063\u305f\u3002\r\n                if (line!=line_old)\r\n                {\r\n                    Console.WriteLine(\"(^q^)line=\" + line);\r\n                    line_old = line;\r\n                    switch (line)\r\n                    {\r\n                        case \"quit\": goto gt_EndLoop;\r\n                        default: break;\r\n                    }\r\n                }\r\n            }\r\n            gt_EndLoop:\r\n            Console.WriteLine(\"finished a loop.\");\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>.\/tamesi10.exe\r\nstart a loop.\r\na\r\n(^q^)line=a\r\nb\r\n(^q^)line=b\r\nc\r\n(^q^)line=c\r\nusi\r\n(^q^)line=usi\r\nquit\r\n(^q^)line=quit\r\nfinished a loop.\r\n<\/code><\/pre>\n<p>\u662f\u7684\uff0c\u4e2d\u5956\u4e86\uff01\u54ce\u5440\uff01\u4e3a\u4ec0\u4e48\u8fd8\u6709\u8fd9\u6837\u7684\u9519\u8bef\u5b58\u5728\u3002<\/p>\n<h2>\u4f60\u5b89\u88c5\u4e86mono-complete\u5417\uff1f<\/h2>\n<p>\u90a3\u662f\u4ec0\u4e48\u554a\uff01<\/p>\n<p>\u300c\u5982\u4f55\u5728 Ubuntu 64 \u4f4d v14.04 \u4e0a\u5b89\u88c5 Mono\uff1f\u300d<\/p>\n<p>\u6211\u4eec\u6765\u8bd5\u8bd5\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo apt-get install mono-complete\r\n<\/code><\/pre>\n<p>\u5b89\u88c5\u5b8c\u6bd5\u540e\uff0c\u884c\u4e3a\u5c31\u53d8\u4e86\u54c8\u54c8\u54c8\u54c8\u3002<\/p>\n<pre class=\"post-pre\"><code>using System;\r\n\r\nnamespace ShogiServer\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string[] args)\r\n        {\r\n            Console.WriteLine(\"start a loop.\");\r\n            for (;;)\r\n            {\r\n                string line = Console.ReadLine();\r\n                Console.WriteLine(\"(^q^)line=\" + line);\r\n                switch (line)\r\n                {\r\n                    case \"quit\": goto gt_EndLoop;\r\n                    default: break;\r\n                }\r\n            }\r\n            gt_EndLoop:\r\n            Console.WriteLine(\"finished a loop.\");\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>\u6682\u65f6\u5c31\u8fd9\u6837\u3002\u91cd\u65b0\u7f16\u8bd1\u5e76\u5728\u524d\u53f0\u8fd0\u884c\u65f6\uff0c\u5c06\u4f1a\u5f97\u5230\u9884\u671f\u7684\u7ed3\u679c\u3002<\/p>\n<pre class=\"post-pre\"><code>.\/tamesi10.exe\r\nstart a loop.\r\na\r\n(^q^)line=a\r\nb\r\n(^q^)line=b\r\nc\r\n(^q^)line=c\r\nquit\r\n(^q^)line=quit\r\nfinished a loop.\r\n<\/code><\/pre>\n<p>\u53ef\u4ee5\u5c06\u5176\u5728\u540e\u53f0\u7b49\u5f85\uff0c\u5e76\u5c1d\u8bd5\u5411\u5728\u540e\u53f0\u8fd0\u884c\u7684\u8fdb\u7a0b\u7684\u6807\u51c6\u8f93\u5165\u53d1\u9001\u5b57\u7b26\u5417\uff1f<\/p>\n<p>\u5982\u679c\u505a\u4e86\u90a3\u6837\u7684\u4e8b\u60c5\uff0c[Ctrl]+[C] \u4e5f\u53d8\u5f97\u65e0\u6548\uff0c\u8f93\u5165\u4f3c\u4e4e\u4f1a\u88ab\u5438\u5165\u5c06\u68cb\u670d\u52a1\u5668\u3002\u5f3a\u884c\u7ed3\u675f PuTTY \u5e76\u4e14\u65ad\u5f00\u4f1a\u8bdd\u53ef\u4ee5\u5417\uff1f<\/p>\n<p>\u6211\u80fd\u591f\u91cd\u65b0\u767b\u5f55\u5230\u4e00\u4e2a\u5b89\u9759\u7684\u63a7\u5236\u53f0\u754c\u9762\uff0c\u4e00\u5207\u90fd\u5f88\u987a\u5229\u3002<\/p>\n<h2>\u628a\u8f93\u51fa\u91cd\u5b9a\u5411\u662f\u4e2a\u597d\u4e3b\u610f\u5417\uff1f<\/h2>\n<pre class=\"post-pre\"><code>echo 'usi' | .\/tamesi10.exe &gt; log1 &amp;\r\njobs\r\n[1]+  Running                 echo 'usi' | .\/tamesi10.exe &gt; log1 &amp;\r\n<\/code><\/pre>\n<p>\u54ce\u5440\uff0c\u6211\u7b2c\u4e00\u6b21\u770b\u5230\u6709\u4eba\u5728\u8dd1\u6b65\u5462\u3002<\/p>\n<pre class=\"post-pre\"><code>ls\r\nnano log1\r\n\r\n[ Reading File ]\r\n<\/code><\/pre>\n<p>\u53c8\u88ab\u51bb\u7ed3\u4e86\u3002\u5c4f\u5e55\u4e0a<\/p>\n<pre class=\"post-pre\"><code>[ Reading File ]\r\n<\/code><\/pre>\n<p>\u53ea\u662f\u663e\u793a\uff0c\u80fd\u8fdb\u884c\u6309\u952e\u8f93\u5165\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>echo 'quit' | .\/tamesi10.exe\r\nstart a loop.\r\n(^q^)line=quit\r\nfinished a loop.\r\njobs\r\n[1]+  Running                 echo 'usi' | .\/tamesi10.exe &gt; log1 &amp;\r\n<\/code><\/pre>\n<p>\u6709\u6ca1\u6709\u529e\u6cd5\u5411\u6b63\u5728\u8fd0\u884c\u7684.\/tamesi10.exe\u53d1\u9001\u6807\u51c6\u8f93\u5165\uff1f<\/p>\n<h2>[Ctrl]+[Z]<\/h2>\n<p>\u6211\u4e0d\u77e5\u9053\u4ec0\u4e48\u60c5\u51b5\uff0c\u4f46\u6211\u60f3\u8bd5\u8bd5\u770b\u3002 (W\u01d2 b\u00f9 , w\u01d2 .)<\/p>\n<p>\u300cWhat is the difference between Ctrl-z and Ctrl-c in the shell?\u300d (ask ubuntu)<br \/>\nhttp:\/\/askubuntu.com\/questions\/510811\/what-is-the-difference-between-ctrl-z-and-ctrl-c-in-the-shell<\/p>\n<pre class=\"post-pre\"><code>.\/tamesi10.exe\r\nstart a loop.\r\n<\/code><\/pre>\n<p>\u6309\u4e0b\u3010Ctrl\u3011+\u3010Z\u3011<\/p>\n<pre class=\"post-pre\"><code>\r\n[1]+  Stopped                 .\/tamesi10.exe\r\n<\/code><\/pre>\n<p>\u505c\u6b62\u4e86\uff0c\u547d\u4ee4\u63d0\u793a\u7b26\u53c8\u56de\u6765\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>bg 1\r\n[1]+ .\/tamesi10.exe &amp;\r\n<\/code><\/pre>\n<p>\u54e6\u3002<\/p>\n<pre class=\"post-pre\"><code>fg 1\r\n.\/tamesi10.exe\r\n<\/code><\/pre>\n<p>\u56de\u6765\u4e86\u3002<\/p>\n<p>\u6309\u4e0b [Ctrl]+[Z] \u952e<\/p>\n<pre class=\"post-pre\"><code>\r\n[1]+  Stopped                 .\/tamesi10.exe\r\n<\/code><\/pre>\n<p>\u55ef\u3002<\/p>\n<pre class=\"post-pre\"><code>fg 1\r\n.\/tamesi10.exe\r\nusi\r\n(^q^)line=usi\r\n<\/code><\/pre>\n<p>\u30b8\u30e7\u30d6ID \u304c\u5206\u304b\u3063\u3066\u308b\u3093\u3060\u3063\u305f\u3089\u624b\u52d5\u3067\u300cfg \u756a\u53f7\u300d\u3057\u3066\u5165\u529b\u3067\u304d\u308b\u304c\u2026\u2026\u3002<br \/>\n\u308f\u305f\u3057\u304c\u901a\u4fe1\u3057\u305f\u3044\u3093\u3058\u3083\u306a\u304f\u3066\u3001\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u540c\u58eb\u306b\u53cc\u65b9\u5411\u901a\u4fe1\u3055\u305b\u305f\u3044\u3093\u3060\u304c\u3001<br \/>\n\uff12\u3064\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u8d77\u52d5\u3055\u305b\u3066\u304a\u3044\u3066\u3001\u30b7\u30a7\u30eb\u30fb\u30b9\u30af\u30ea\u30d7\u30c8\u3067 fg \u3068 bg \u3092\u4f7f\u3048\u3070\u3044\u3044\u306e\u3060\u308d\u3046\u304b\uff1f<\/p>\n<h1>\u6807\u51c6\u8f93\u5165\u8f93\u51fa\u901a\u4fe1\u5f88\u96be\u5417\uff1f<\/h1>\n<p>\u5982\u679c\u6253\u5f00\u7aef\u53e3\u8fdb\u884c\u5957\u63a5\u5b57\u901a\u4fe1\u4f1a\u6709\u95ee\u9898\u5417&#8230;&#8230;\uff1f\u8fd9\u4e2a\u64cd\u4f5c\u597d\u96be\u554a\uff0c\u4e0d\u77e5\u9053\u662f\u600e\u4e48\u56de\u4e8b\u3002<\/p>\n<h1>\u4eceShell\u811a\u672c\u6765\u770b\uff0c\u4f7f\u7528\u5957\u63a5\u5b57\u7f16\u7a0b\u662f\u5426\u66f4\u7b80\u5355\u5462\uff1f<\/h1>\n<p>\u3068\u308a\u3042\u3048\u305a\u3000\u5c06\u68cb\u30b5\u30fc\u30d0\u30fc\u306f\u3000\u30dd\u30fc\u30c8\u3092\u958b\u3044\u3066\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u8d70\u3089\u305b\u3066\u304a\u3044\u305f\u3089\u3044\u3044\u3093\u3058\u3083\u306a\u3044\u304b\u3002<\/p>\n<p>\u3058\u3083\u3042\u3001\u30a6\u30a7\u30d6\u30fb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30b5\u30fc\u30d0\u30fc\u306f\u3001\u30dd\u30fc\u30c8\u3092\u958b\u3044\u3066\u3044\u308b\u5b9f\u884c\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u5411\u304b\u3063\u3066\u3001\u6587\u5b57\u5217\u3092\u6295\u3052\u308b\u65b9\u6cd5\u304c\u3042\u308b\u306e\u304b\u8abf\u3079\u3066\u307f\u3088\u3046\u3002<\/p>\n<h1>\u5728PHP\u6216\u5176\u4ed6\u7f16\u7a0b\u8bed\u8a00\u4e2d\uff0c\u80fd\u5426\u4f7f\u7528\u5957\u63a5\u5b57\u8fdb\u884c\u901a\u4fe1\uff1f<\/h1>\n<p>\u300csocket_create_listen\u300d\u662f\u4e00\u500bPHP\u51fd\u6578\uff0c\u7528\u65bc\u5275\u5efa\u4e00\u500b\u76e3\u807d\u5957\u63a5\u5b57\u3002\u60a8\u53ef\u4ee5\u5728PHP\u624b\u518a\u7684\u7db2\u9801\u4e0a\u627e\u5230\u66f4\u591a\u95dc\u65bc\u9019\u500b\u51fd\u6578\u7684\u8cc7\u8a0a\u3002<\/p>\n<p>\u8fde\u63a5\u6210\u529f\u540e\u5982\u4f55\u5904\u7406\u5957\u63a5\u5b57\uff1f<\/p>\n<p>\u300cfsockopen\u300d\uff08PHP\u624b\u518c\uff09<br \/>\nhttp:\/\/php.net\/manual\/ja\/function.fsockopen.php<br \/>\n\u3010\u4e2d\u6587\u7ffb\u8bd1\u3011\u300cfsockopen\u300d\uff08PHP\u624b\u518c\uff09<br \/>\nhttp:\/\/php.net\/manual\/ja\/function.fsockopen.php<\/p>\n<p>\u53bb\u8cb7\u8863\u670d\u7684\u4eba\uff0c\u8fd9\u4ef6\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<p>\u300cPHP \u3067\u30b5\u30fc\u30d0\u30bd\u30b1\u30c3\u30c8\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0 (1)\u300d (Rainy Day Codings)<br \/>\nhttp:\/\/rainyday.blog.so-net.ne.jp\/2007-02-17<\/p>\n<p>\u670d\u52a1\u5668\u63a5\u6536\u65b9\u9762\u8fd9\u6837\u53ef\u4ee5\u5417\uff1f<\/p>\n<p>\u90a3\u4e48\uff0c\u5c31\u5c06PHP\u8bbe\u7f6e\u597d\u4f7f\u5427\u3002<br \/>\n\u79df\u8d41\u670d\u52a1\u5668\u7684\u73af\u5883\u662f\u600e\u4e48\u6837\u7684\u6765\u7740\uff1f<\/p>\n<p>\u300c\u8d39\u7528\u53ca\u670d\u52a1\u89c4\u683c\u300d\uff08\u6a31\u82b1\u4e92\u8054\u7f51\uff09<br \/>\nhttp:\/\/solution.sakura.ad.jp\/windows_vps\/specification.html<\/p>\n<p>\u662f\u6307\u8ba9\u81ea\u5df1\u53bb\u67e5\u627e Apache \u548c PHP \u7684\u7248\u672c\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>php --version\r\nPHP 7.0.15-0ubuntu0.16.04.4 (cli) ( NTS )\r\nCopyright (c) 1997-2017 The PHP Group\r\nZend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies\r\n    with Zend OPcache v7.0.15-0ubuntu0.16.04.4, Copyright (c) 1999-2017, by Zend Technologies\r\n<\/code><\/pre>\n<p>\u54c7\uff0cPHP 7 \u54e6\u3002<\/p>\n<pre class=\"post-pre\"><code>apache2 --version\r\n[Mon Mar 06 02:17:27.188336 2017] [core:warn] [pid 19747] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined\r\n[Mon Mar 06 02:17:27.188706 2017] [core:warn] [pid 19747] AH00111: Config variable ${APACHE_PID_FILE} is not defined\r\n[Mon Mar 06 02:17:27.188743 2017] [core:warn] [pid 19747] AH00111: Config variable ${APACHE_RUN_USER} is not defined\r\n[Mon Mar 06 02:17:27.188765 2017] [core:warn] [pid 19747] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined\r\n[Mon Mar 06 02:17:27.188801 2017] [core:warn] [pid 19747] AH00111: Config variable ${APACHE_LOG_DIR} is not defined\r\n[Mon Mar 06 02:17:27.195871 2017] [core:warn] [pid 19747] AH00111: Config variable ${APACHE_LOG_DIR} is not defined\r\n[Mon Mar 06 02:17:27.196170 2017] [core:warn] [pid 19747] AH00111: Config variable ${APACHE_LOG_DIR} is not defined\r\n[Mon Mar 06 02:17:27.197322 2017] [core:warn] [pid 19747] AH00111: Config variable ${APACHE_LOG_DIR} is not defined\r\nAH00526: Syntax error on line 74 of \/etc\/apache2\/apache2.conf:\r\nInvalid Mutex directory in argument file:${APACHE_LOCK_DIR}\r\n<\/code><\/pre>\n<p>\u597d\u50cf\u6ca1\u6709\u540d\u4e3a&#8211;version\u7684\u53c2\u6570\u3002<\/p>\n<pre class=\"post-pre\"><code>man apache2\r\napache2 -v\r\nServer version: Apache\/2.4.18 (Ubuntu)\r\nServer built:   2016-07-14T12:32:26\r\n<\/code><\/pre>\n<p>Apache2\u7684\u7248\u672c\u662f2.4.18\u5417\uff1f<\/p>\n<p>\u90a3\u4e48\uff0cPHP\u7684\u8bbe\u5b9a\u5df2\u7ecf\u5b8c\u6210\u4e86\u5417\uff1f\u8981\u8bd5\u8bd5\u770b\u5417\uff1f<\/p>\n<h1>\u54b1\u4eec\u8bd5\u8bd5 PHP \u5427<\/h1>\n<p>\u30d6\u30e9\u30a6\u30b6\u3067\u958b\u3044\u3066 URL\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308c\u3070\u3044\u3044\u308f\u3051\u306a\u3093\u3060\u304c\u3001\u5916\u306b\u958b\u304b\u308c\u3066\u3044\u308b\u3093\u3060\u308d\u3046\u304b\uff1f<br \/>\n\u30d6\u30e9\u30a6\u30b6\u306eURL\u6b04\u306b\u5165\u308c\u3066\u307f\u308b\u3002<\/p>\n<pre class=\"post-pre\"><code>http:\/\/\u6570\u5b57.\u6570\u5b57.\u6570\u5b57.\u6570\u5b57\r\n<\/code><\/pre>\n<p>\u3067\u305f\u3002<\/p>\n<pre class=\"post-pre\"><code>Index of \/\r\n\r\n[ICO]   Name    Last modified   Size    Description\r\n[   ]   gpskick.php 2015-09-12 03:07    351  \r\n[DIR]   html\/   2015-09-12 02:40    -    \r\n[   ]   la.php  2015-09-12 03:14    241  \r\n[DIR]   tumecheck\/  2015-09-12 03:15    -    \r\n[DIR]   vscom\/  2015-09-12 03:03    -    \r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u6587\u4ef6\u5939\u5728\u54ea\u91cc\uff1f\u6211\u5bf9Linux\u7684\u6587\u4ef6\u5939\u7ed3\u6784\u4e0d\u592a\u6e05\u695a\uff0c\u6211\u53ef\u4ee5\u53bb\u641c\u7d22\u4e00\u4e0b\u3002<\/p>\n<p>\u300cUbuntu \u670d\u52a1\u5668Apache\u300d\uff08\u5c71\u672c\u5b9e\u9a8c\u5ba4\uff09<br \/>\nhttp:\/\/www.yamamo10.jp\/yamamoto\/comp\/home_server\/ubuntu_server\/apache\/index.php<\/p>\n<p>\u300cUbuntu \u670d\u52a1\u5668\u4e0a\u7684Apache\u300d\uff08\u5c71\u672c\u5b9e\u9a8c\u5ba4\uff09<br \/>\nhttp:\/\/www.yamamo10.jp\/yamamoto\/comp\/home_server\/ubuntu_server\/apache\/index.php<\/p>\n<p>\u6211\u5011\u9700\u8981\u67e5\u4e00\u4e0b\uff0c\u9019\u500b\u9801\u9762\u61c9\u8a72\u662f\u5728&#8221;\/var\/www\/index.html&#8221;\u9019\u6a23\u7684\u5730\u65b9\u55ce\uff1f<\/p>\n<p>\u547c\u547c\uff01<\/p>\n<p>\/var\/www\/html\/index.html =&gt; \u4e2d\u6587: &#8216;\/var\/www\/html\/index.html&#8217;<\/p>\n<p>\u6709\u4ec0\u4e48\u4e8b\u60c5\u53d1\u751f\u4e86\u3002<br \/>\n\u6211\u770b\u4e86\u4e00\u4e0b\u6e90\u4ee3\u7801\uff0c\u6807\u7b7e\u7684\u6253\u6cd5\u771f\u7684\u4e0d\u559c\u6b22\u5462\u54c8\u54c8\u54c8\u54c8\u54c8\u3002<\/p>\n<p>\u55e8\uff0c\u9019\u770b\u8d77\u4f86\u4e0d\u50cf\u662f\u9802\u5c64\u3002<\/p>\n<p>\u6709\u4e00\u79cd\u60c5\u51b5\uff0c\u65e0\u6cd5\u901a\u8fc7FileZilla\u4ece\u5916\u90e8\u8fdb\u884c\u4f20\u8f93\u3002\u95ee\u4e00\u4e0b\uff0c\u53ef\u4ee5\u5c06\u6743\u9650\u6539\u4e3a w \u5417\uff1f<br \/>\n\u82e5\u4e0d\u6539\u53d8\u6743\u9650\uff0c\u5de5\u4f5c\u65e0\u6cd5\u8fdb\u884c\u3002\u9700\u8981\u6267\u884c chmod \u547d\u4ee4\u3002<\/p>\n<p>\u6240\u4ee5\uff0c\u4f3c\u4e4e\u5728\u6d4f\u89c8\u5668\u4e2d\u6253\u5f00PHP\u6ca1\u6709\u6548\u679c\u3002\u662f\u6ca1\u6709\u8fdb\u884c\u8bbe\u7f6e\u5417\uff1f<\/p>\n<h1>\u914d\u7f6e PHP<\/h1>\n<p>\u300c\u3010PHP\u3011\u5b89\u88c5PHP\u540e\u9700\u8981\u8fdb\u884c\u7684\u8bbe\u7f6e\u300d\uff08Qiita\uff09<br \/>\nhttp:\/\/qiita.com\/knife0125\/items\/0e1af52255e9879f9332<\/p>\n<p>\u5728etc\u6587\u4ef6\u5939\u91cc\u662f\u5426\u6709\u8bbe\u7f6e\u6587\u4ef6\uff1f<\/p>\n<p>\u5728 etc \u6587\u4ef6\u5939\u4e0b\u6709 php \u548c php5 \u4e24\u4e2a\u76ee\u5f55\u3002\u6211\u89c9\u5f97\u5176\u4e2d\u4e00\u4e2a\u4e0d\u662f php5\u3002<\/p>\n<p>\u5728 \/etc\/php\/7.0\/cli \u76ee\u5f55\u4e0b\u53d1\u73b0\u4e86 php.ini \u6587\u4ef6\u3002<\/p>\n<p>\u54ce\u5440\uff1f<\/p>\n<p>\u300cPHP\u8bbe\u7f6e\u300d\uff08\u6a31\u82b1VPS\u624b\u518c\uff09<br \/>\nhttp:\/\/www.xn--vps-073b3a72a.com\/10.html<\/p>\n<p>\u6211\u7684\u6587\u4ef6\u5939\u7ed3\u6784\u548c\u4f20\u9012\u7ed9\u6211\u7684\u4e0d\u4e00\u6837\u3002\u662f\u5728\u6211\u8fdb\u884c\u8bbe\u7f6e\u4e4b\u540e\u4f20\u9012\u7ed9\u6211\u7684\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>service httpd restart\r\n<\/code><\/pre>\n<p>\u5982\u679c\u6211\u6309\u4e0b\u8fd9\u4e2a\uff0c\u4f1a\u542f\u52a8HTTP\u5b88\u62a4\u8fdb\u7a0b\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>service httpd restart\r\nFailed to restart httpd.service: Unit httpd.service not found.\r\n<\/code><\/pre>\n<p>\u3044\u308d\u3044\u308d\u3000\u3055\u3063\u3071\u308a\u72b6\u6cc1\u304c\u5206\u304b\u3089\u3093\u306a\u2026\u2026\u3002<\/p>\n<p>\u300c7. \u7f51\u7edc\u670d\u52a1\u5668\u7684\u8bbe\u7f6e\u300d\uff08\u6a31\u82b1 VPS \u624b\u518c\uff09<br \/>\nhttp:\/\/www.xn--vps-073b3a72a.com\/7.html<\/p>\n<p>\u300c\u7b2c\u4e09\u6b65\uff1a\u4e0a\u50b3\u7db2\u9801\u300d\uff08\u6afb\u82b1VPS \u4f7f\u7528\u624b\u518a\uff09<br \/>\nhttp:\/\/www.xn--vps-073b3a72a.com\/8.html<\/p>\n<h1>\/var\/www\/html \u53ef\u4ee5\u88ab\u7ffb\u8bd1\u4e3a\uff1a\u7f51\u9875\u76ee\u5f55\/var\/www\/html<\/h1>\n<blockquote><p>Sakura VPS \u7f51\u7ad9\u7684\u9ed8\u8ba4\u76ee\u5f55\u662f var\/www\/html\u3002<\/p><\/blockquote>\n<p>\u54ce\u5440\uff01<\/p>\n<p>\u628a\u6539\u52a8\u8fc7\u7684\u5730\u65b9\u6062\u590d\u539f\u72b6\u3002<\/p>\n<p>\u591a\u534a\u662f\uff0c\u67d0\u79cd\u7a0b\u5ea6\u4e0a\uff0c\u6211\u611f\u89c9\u6211\u7684\u72b6\u6001\u4e2d\u5df2\u7ecf\u5b89\u88c5\u4e86apache2\u548cphp7.0\uff0c\u4f46\u662f\u5b83\u4eec\u4f3c\u4e4e\u6ca1\u6709\u8fdb\u884c\u4efb\u4f55\u914d\u7f6e\u3002<br \/>\n\u7136\u800c\uff0c\u5982\u679c\u6211\u5378\u8f7d\/\u91cd\u65b0\u5b89\u88c5\u5b83\u4eec\uff0c\u53ef\u80fd\u4f1a\u4f7f\u5df2\u6709\u7684\u914d\u7f6e\u6d88\u5931\u3002\u6211\u4e0d\u77e5\u9053\u5f53\u524d\u7684\u72b6\u51b5\u3002<\/p>\n<h1>\u8ba9 Apache \u91cd\u65b0\u542f\u52a8<\/h1>\n<p>\u6211\u5b89\u88c5\u4e86Apache\uff0c\u8981\u8bd5\u7740\u91cd\u65b0\u542f\u52a8\u4e00\u4e0b\u5417\uff1f<\/p>\n<p>\u300c\u5982\u4f55\u5728Ubuntu\u4e0a\u91cd\u65b0\u542f\u52a8Apache\u7684\u65b9\u6cd5\u548c\u547d\u4ee4\u300d\uff08MiuxMiu\uff09<br \/>\nhttp:\/\/www.miuxmiu.com\/archives\/2010\/03\/03\/ubuntu_apache_restart_command.html<\/p>\n<pre class=\"post-pre\"><code>sudo \/etc\/init.d\/apache2 restart\r\n[ ok ] Restarting apache2 (via systemctl): apache2.service.\r\n<\/code><\/pre>\n<p>\u4f3c\u4e4e\u5f88\u5feb\u91cd\u65b0\u542f\u52a8\u4e86\u3002Apache \u662f\u5426\u5df2\u542f\u52a8\uff0c\u4f46\u4e0e PHP \u6ca1\u6709\u8fde\u63a5\u5462\uff1f<\/p>\n<p>Apache\u7684\u9ed8\u8ba4\u9875\u9762\uff08\u79f0\u4e3a&#8221;It&#8217;s works&#8221;\uff09\u53ef\u4ee5\u5728html\u6587\u4ef6\u5939\u7684\u4e0b\u65b9\u627e\u5230\uff0c\u55ef\uff0c\u539f\u6765\u5982\u6b64\uff0c\u56e0\u4e3a\u6ca1\u6709\u8fdb\u884cDNS\u8bbe\u7f6e\uff0c\u6240\u4ee5\u6211\u5728\u8fd9\u6837\u7684\u5b50\u76ee\u5f55\u4e2d\u67e5\u770b\u9875\u9762\u3002<\/p>\n<h1>\u6765\u914d\u7f6ephp.ini\u6587\u4ef6<\/h1>\n<p>\u56e0\u4e3a\u6709\u5404\u79cd\u5404\u6837\u7684\u6ce8\u91ca\uff0c\u6240\u4ee5\u8981\u89e3\u9664\u8fd9\u4e9b\u6ce8\u91ca\u5e76\u8fdb\u884c\u64cd\u4f5c\u3002<\/p>\n<p>\u5728\u5907\u4efdphp.ini\u6587\u4ef6\u65f6\uff0c\u8bf7\u5c06\u5176\u547d\u540d\u4e3aphp.ini.original\u3002<\/p>\n<pre class=\"post-pre\"><code>;error_log = php_errors.log\r\n<\/code><\/pre>\n<p>\u6211\u5c06\u5176\u9010\u5b57\u7b26\u5f9e\u982d\u958b\u59cb\u62c6\u5206\uff0c\u4e26\u5c07\u76ee\u9304\u4fee\u6539\u5982\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>error_log = \/var\/log\/php_errors.log\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c<\/p>\n<pre class=\"post-pre\"><code>;mbstring.language = Japanese\r\n<\/code><\/pre>\n<p>\u4ed6\u8131\u4e0b\u4e86\u8111\u888b\u4e0a\u7684\u5206\u53f7\u3002<\/p>\n<pre class=\"post-pre\"><code>mbstring.language = Japanese\r\n<\/code><\/pre>\n<p>\u6b21\u306b\u3001<\/p>\n<pre class=\"post-pre\"><code>;mbstring.internal_encoding =\r\n<\/code><\/pre>\n<p>\u597d\u7684\uff0c\u6211\u5c06\u5176\u7ffb\u8bd1\u6210\u4e2d\u6587\uff1a<\/p>\n<p>\u8fd9\u6837\uff0c\u6211\u8fdb\u884c\u4e86\u6539\u53d8\u3002<\/p>\n<pre class=\"post-pre\"><code>mbstring.internal_encoding = UTF-8\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c<\/p>\n<pre class=\"post-pre\"><code>;mbstring.http_input =\r\n<\/code><\/pre>\n<p>\u8fd9\u662f\u6539\u53d8\u540e\u7684\u65b9\u5f0f\u3002<\/p>\n<pre class=\"post-pre\"><code>mbstring.http_input = auto\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c<\/p>\n<pre class=\"post-pre\"><code>;mbstring.detect_order = auto\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u4fdd\u6301\u539f\u6c41\u539f\u5473\uff0c\u4ee5\u4e0b\u662f\u5bf9\u6b64\u53e5\u5b50\u7684\u4e2d\u6587\u672c\u5730\u5316\u6539\u5199\uff1a<br \/>\n\u8fd9\u6837\u505a\u671d\u8fd9\u4e2a\u65b9\u5411\u6539\u53d8\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>mbstring.detect_order = auto\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c<\/p>\n<pre class=\"post-pre\"><code>expose_php = On\r\n<\/code><\/pre>\n<p>\u6211\u6539\u6210\u4e86\u4ee5\u4e0b\u65b9\u5f0f\u3002<\/p>\n<pre class=\"post-pre\"><code>expose_php = Off\r\n<\/code><\/pre>\n<p>\u300c\u5173\u95ed expose_php = off \u7684\u8bbe\u7f6e\u300d\uff08\u8db3\u7acb\u5de5\u7a0b\u5e08\u7684\u7f16\u7a0b\u65e5\u8bb0\uff09<br \/>\nhttps:\/\/www.deep-deep.jp\/blog_engineer\/archives\/3793<\/p>\n<p>\u63a5\u4e0b\u6765\uff0c\u4f7f\u7528FileZilla\u5c06\u914d\u7f6e\u6587\u4ef6\u4f20\u8f93\u5230\u670d\u52a1\u5668\u4e0a&#8230;&#8230;\u6bcf\u6b21\u90fd\u4f7f\u7528root\u7528\u6237\u66f4\u6539\u6743\u9650\uff0c<br \/>\n\u7136\u540e\u5728PuTTY\u4e2d\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>service httpd restart\r\nFailed to restart httpd.service: Unit httpd.service not found.\r\n<\/code><\/pre>\n<p>\u6709\u4ec0\u4e48\u6ca1\u6709\u5b89\u88c5\u5462\u3002<\/p>\n<h1>\u5c3d\u7ba1 Apache \u5df2\u7ecf\u88ab\u5b89\u88c5\uff0c\u4f46\u8ba9\u6211\u4eec\u518d\u6b21\u5c1d\u8bd5\u5b89\u88c5\u4e00\u6b21\u3002<\/h1>\n<pre class=\"post-pre\"><code>yum -y install httpd\r\nThe program 'yum' is currently not installed. You can install it by typing:\r\napt install yum\r\n<\/code><\/pre>\n<p>\u4e0e\u8bf4\u660e\u5b8c\u5168\u4e0d\u7b26\u5408\u3002<\/p>\n<h1>\u8ba9\u6211\u4eec\u5b89\u88c5 yum\u3002<\/h1>\n<pre class=\"post-pre\"><code>apt install yum\r\n<\/code><\/pre>\n<p>\u6211\u5df2\u7ecf\u5b89\u88c5\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>yum -y install httpd\r\nThere are no enabled repos.\r\n Run \"yum repolist all\" to see the repos you have.\r\n You can enable repos with yum-config-manager --enable &lt;repo&gt;\r\n<\/code><\/pre>\n<p>\u4e0d\u61c2\u3002<\/p>\n<pre class=\"post-pre\"><code>yum repolist all\r\nrepolist: 0\r\n<\/code><\/pre>\n<p>\u91cd\u65b0\u542f\u52a8Apache.<\/p>\n<pre class=\"post-pre\"><code>sudo \/etc\/init.d\/apache2 restart\r\n[ ok ] Restarting apache2 (via systemctl): apache2.service.\r\n<\/code><\/pre>\n<p>\u6211\u80fd\u505a\u5230\u3002\u90a3\u4e48\u4f60\u53ef\u4ee5\u8fd9\u6837\u6572\u51fb\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>sudo \/etc\/init.d\/httpd restart\r\nsudo: \/etc\/init.d\/httpd: command not found\r\n<\/code><\/pre>\n<p>\u5728 init.d \u76ee\u5f55\u4e0b\u662f\u5426\u6709 httpd \u547d\u4ee4\uff1f<\/p>\n<pre class=\"post-pre\"><code>\/etc\/init.d# ls\r\napache2                 halt                   networking    single\r\napache-htcacheclean     hostname.sh            ondemand      skeleton\r\napparmor                hwclock.sh             plymouth      ssh\r\nbinfmt-support          irqbalance             plymouth-log  thermald\r\nbootmisc.sh             keyboard-setup         pppd-dns      udev\r\ncgmanager               killprocs              procps        ufw\r\ncgproxy                 kmod                   rc            umountfs\r\ncheckfs.sh              memcached              rc.local      umountnfs.sh\r\ncheckroot-bootclean.sh  mountall-bootclean.sh  rcS           umountroot\r\ncheckroot.sh            mountall.sh            README        urandom\r\nconsole-setup           mountdevsubfs.sh       reboot        uuidd\r\ncron                    mountkernfs.sh         resolvconf    x11-common\r\ndbus                    mountnfs-bootclean.sh  rsync\r\ndns-clean               mountnfs.sh            rsyslog\r\ngrub-common             mysql                  sendsigs\r\n<\/code><\/pre>\n<p>\u6ca1\u6709\u3002\u6ca1\u6709\u8d85\u7ea7\u6587\u672c\u4f20\u8f93\u534f\u8bae\u3002<\/p>\n<h1>\u4e3a\u4ec0\u4e48\u6ca1\u6709httpd\uff1f<\/h1>\n<p>\u300cCan&#8217;t find httpd.conf\u300d (ask ubuntu)<br \/>\nhttp:\/\/askubuntu.com\/questions\/652095\/cant-find-httpd-conf<\/p>\n<pre class=\"post-pre\"><code>\/etc\/apache2# ls\r\napache2.conf    conf-enabled  magic           mods-enabled  sites-available\r\nconf-available  envvars       mods-available  ports.conf    sites-enabled\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>sudo \/etc\/apache2\/apache2.conf restart\r\nsudo: \/etc\/apache2\/apache2.conf: command not found\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u3002<\/p>\n<p>index.php \u7f51\u9875<\/p>\n<pre class=\"post-pre\"><code>&lt;?php\r\necho 'hello, shogi world1';\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u5185\u5bb9\u4f1a\u76f4\u63a5\u663e\u793a\u51fa\u6765\u3002\u90a3\u4e48\uff0c\u6362\u6210HTML\u5462\uff1f HTML\u80fd\u591f\u6b63\u5e38\u663e\u793a\u3002<\/p>\n<pre class=\"post-pre\"><code>echo \"&lt;?php phpinfo();\"\r\n<\/code><\/pre>\n<p>\u5728\u547d\u4ee4\u884c\u4e2d\u8f93\u5165\u65f6\u6ca1\u6709\u4efb\u4f55\u53cd\u5e94\u3002<\/p>\n<p>\u7531\u4e8e\u5f53\u524d\u73af\u5883\u7684\u95ee\u9898\uff0c\u6211\u4eec\u9700\u8981\u91cd\u65b0\u5b89\u88c5\u3002<\/p>\n<p>\u300cPHP\u914d\u7f6e\u300d\uff08\u6a31\u82b1VPS\u914d\u7f6e\u624b\u518c\uff09<br \/>\nhttp:\/\/www.sakura-vps.net\/php-settings-for-sakura-vps\/<\/p>\n<pre class=\"post-pre\"><code>yum -y install php php-mbstring php-mysql\r\nThere are no enabled repos.\r\n Run \"yum repolist all\" to see the repos you have.\r\n You can enable repos with yum-config-manager --enable &lt;repo&gt;\r\n<\/code><\/pre>\n<p>\u300c\u3010\u9069\u5408\u65b0\u624b\u3011\u5f53PHP\u5728\u6d4f\u89c8\u5668\u4e2d\u65e0\u6cd5\u6b63\u786e\u663e\u793a\u65f6\u7684\u5e94\u5bf9\u65b9\u6cd5\u300d(n2p\u535a\u5ba2)<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"eRs0Ge6W5f\"><p><a href=\"https:\/\/n2p.co.jp\/blog\/tech\/php-donot-display\/\">\u3010\u521d\u5fc3\u8005\u5411\u3051\u3011PHP\u304c\u30d6\u30e9\u30a6\u30b6\u3067\u6b63\u3057\u304f\u8868\u793a\u3055\u308c\u306a\u3044\u6642\u306e\u5bfe\u51e6\u3010EC2\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3011<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;\u3010\u521d\u5fc3\u8005\u5411\u3051\u3011PHP\u304c\u30d6\u30e9\u30a6\u30b6\u3067\u6b63\u3057\u304f\u8868\u793a\u3055\u308c\u306a\u3044\u6642\u306e\u5bfe\u51e6\u3010EC2\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3011&#8221; &#8212; \u682a\u5f0f\u4f1a\u793eNONAME Produce(n2p)\uff5c\u30c7\u30b8\u30bf\u30eb\u30d7\u30ed\u30e2\u30fc\u30b7\u30e7\u30f3\u4f01\u753b\u30fb\u5236\u4f5c\" src=\"https:\/\/n2p.co.jp\/blog\/tech\/php-donot-display\/embed\/#?secret=3Zyf1bEb1o#?secret=eRs0Ge6W5f\" data-secret=\"eRs0Ge6W5f\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<pre class=\"post-pre\"><code>php index.php\r\nhello, shogi world1\r\n<\/code><\/pre>\n<p>\u8fd9\u4e2a\u5728\u52a8\u3002\u90a3\u4e48\uff0c\u8ba9\u6211\u4eec\u5c1d\u8bd5\u6267\u884cphpinfo()\u3002<br \/>\n\u770b\u8d77\u6765\u663e\u793a\u51fa\u6765\u4e86\u3002<\/p>\n<p>\u90a3\u4e48\uff0c\u9700\u8981\u6743\u9650\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>ls -an\r\n-rw-r--r-- 1    0    0 11510 Sep 12  2015 index.html\r\n-rw-rw-r-- 1 1000 1000    21 Mar  6 04:04 index.php\r\n<\/code><\/pre>\n<p>html\u53ef\u4ee5\u770b\u5f97\u5230\u5462\u3002<\/p>\n<p>Apache\u7684\u914d\u7f6e\u4e2d\u662f\u5426\u6ca1\u6709\u5199\u5165\u4e86PHP\u5462\uff1f<\/p>\n<p>\u5728\u6d4f\u89c8\u5668\u4e2d\u6253\u5f00<\/p>\n<pre class=\"post-pre\"><code>&lt;?php phpinfo();\r\n<\/code><\/pre>\n<p>\u539f\u6837\u663e\u793a\u3002<\/p>\n<pre class=\"post-pre\"><code>Document Roots\r\nBy default, Ubuntu does not allow access through the web browser to any file apart of those located in \/var\/www, public_html directories (when enabled) and \/usr\/share (for web applications). If your site is using a web document root located elsewhere (such as in \/srv) you may need to whitelist your document root directory in \/etc\/apache2\/apache2.conf.\r\nThe default Ubuntu document root is \/var\/www\/html. You can make your own virtual hosts under \/var\/www. This is different to previous releases which provides better security out of the box.\r\n<\/code><\/pre>\n<p>\u300cPHP\u4ee3\u7801\u672a\u6267\u884c\u800c\u53d8\u6210\u4e86\u6ce8\u91ca\u300d<\/p>\n<p>\u90a3\u4e48\uff0c\u8981\u5220\u9664php5\u5417\uff1f<\/p>\n<p>&#8220;\u5b89\u88c5PHP5.5\u6216PHP5.6&#8221; (Qiita)<\/p>\n<pre class=\"post-pre\"><code>sudo yum remove php-*\r\n<\/code><\/pre>\n<p>\u4f3c\u4e4e\u6ca1\u6709\u8fbe\u6210\u4e00\u81f4\u3002<\/p>\n<p>\u4f7f\u7528PHP\u662f\u5426\u6709\u514d\u8d39\u7684\u9009\u9879\u5417\uff1f<\/p>\n<p>\u300cUbuntu\u30b5\u30fc\u30d0\u304b\u3089PHP5.6\u3092\u5b8c\u5168\u306b\u524a\u9664\u300d (\u30a8\u30f3\u30b8\u30cb\u30a2\u8db3\u7acb\u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u65e5\u8a18)<br \/>\nhttps:\/\/www.deep-deep.jp\/blog_engineer\/archives\/4168<\/p>\n<p>\u5982\u679c\u5b8c\u5168\u5220\u9664\u7684\u8bdd<\/p>\n<pre class=\"post-pre\"><code>sudo apt-get \u2013purge remove php5.6\r\nE: Invalid operation \u2013purge\r\n<\/code><\/pre>\n<p>\u4e0d\u52a8\u3002<\/p>\n<p>\u53ea\u4fdd\u7559\u914d\u7f6e\u6587\u4ef6\u7684\u60c5\u51b5\u4e0b<\/p>\n<pre class=\"post-pre\"><code>sudo apt-get remove php5.6\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nNote, selecting 'php5.6-json' for regex 'php5.6'\r\nNote, selecting 'php5.6-common' for regex 'php5.6'\r\nPackage 'php5.6-common' is not installed, so not removed\r\nPackage 'php5.6-json' is not installed, so not removed\r\nThe following packages were automatically installed and are no longer required:\r\n  libssl-dev libssl-doc php-cli php-common php-pear php-xml php7.0-cli php7.0-common\r\n  php7.0-json php7.0-opcache php7.0-readline php7.0-xml pkg-php-tools shtool\r\n  zlib1g-dev\r\nUse 'sudo apt autoremove' to remove them.\r\n0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.\r\n<\/code><\/pre>\n<p>\u6211\u52a8\u4e86\u3002\u53ef\u662f\uff0c\u53ea\u662f\u96f6\u800c\u5df2\u3002<\/p>\n<p>\u6211\u8ba4\u4e3a\u662fApache\u7684\u914d\u7f6e\u95ee\u9898\uff0c\u56e0\u4e3a\u4ece\u547d\u4ee4\u884c\u4e0a\u53ef\u4ee5\u8fd0\u884cPHP\u3002<\/p>\n<h1>\u8ba9\u6211\u4eec\u5728Apache\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u8bbe\u7f6ePHP<\/h1>\n<p>\u300c\u5411 Apache \u6dfb\u52a0 php7 \u6a21\u5757\u5e76\u6ce8\u518c .php \u6587\u4ef6\u6269\u5c55\u540d\u300d\uff08Admin Web\uff09<br \/>\nhttps:\/\/www.adminweb.jp\/apache\/php\/index1.html<\/p>\n<p>\u7531\u4e8e\u6ca1\u6709 httpd.conf \u6587\u4ef6\uff0c\u6240\u4ee5<\/p>\n<p>\u8ba9\u6211\u4eec\u6253\u5f00\/etc\/apache2\/apache2.conf\u6765\u770b\u4e00\u770b\u3002<\/p>\n<p>\u89e3\u91ca\u5b8c\u5168\u4e0d\u540c\u3002\u901a\u8fc7<\/p>\n<p>&#8220;Ubuntu\u4e0a\u7684Apache\u914d\u7f6e\u6458\u8981&#8221; (freefielder.jp)<br \/>\nhttp:\/\/freefielder.jp\/blog\/2012\/12\/ubuntu-apache.html<\/p>\n<p>\u627e\/etc\/apache2\/mods-available\/php5.conf\u6587\u4ef6\u3002<br \/>\n\u6709\u7684\u3002<br \/>\n\u6709\u7684\uff0c\u4f46\u662f\u53ebphp5\u8fd9\u4e2a\u540d\u5b57\u53ef\u4ee5\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>        php_admin_flag engine Off\r\n<\/code><\/pre>\n<p>\u51b3\u5b9a\u5728\u6807\u6709\u8fd9\u6837\u5199\u7684\u5730\u65b9\u524d\u52a0\u5165 #\u3002<br \/>\n\u91cd\u65b0\u542f\u52a8 Apache\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo service apache2 restart\r\n<\/code><\/pre>\n<p>\u6d4f\u89c8\u5668\u6ca1\u6709\u53d8\u5316\u3002<\/p>\n<p>\u300cUbuntu 16.04 \u5b89\u88c5\uff086\uff09Apache\u3001PHP\u300d\uff08kashi\u7684\u65e5\u8bb0\uff09http:\/\/verifiedby.me\/adiary\/086<\/p>\n<pre class=\"post-pre\"><code>\/etc\/apache2\/sites-available# ls\r\n000-default.conf  000-default.conf.bak  default-ssl.conf\r\n<\/code><\/pre>\n<p>\u55ef\uff0c\u770b\u8d77\u6765\u4e0d\u76f8\u5173\u3002<\/p>\n<p>\u3010Ubuntu\u3011\u5c06 PHP 5.6 \u5347\u7ea7\u5230 PHP 7 (Sukohi\u7684\u6280\u672f\u535a\u5ba2!!)<br \/>\nhttp:\/\/sukohi.blogspot.jp\/2016\/01\/ubuntuphp-56-php-7.html<\/p>\n<p>\u642c\u5bb6\u3002<\/p>\n<p>\/etc\/apache2\/mods-enabled \u53ef\u4ee5\u88ab\u6539\u5199\u4e3a\uff1a<br \/>\n\/etc\/apache2\/mods-enabled<\/p>\n<pre class=\"post-pre\"><code>ls -an\r\ntotal 8\r\ndrwxr-xr-x 2 0 0 4096 Mar  4 21:09 .\r\ndrwxr-xr-x 8 0 0 4096 Mar  4 21:13 ..\r\nlrwxrwxrwx 1 0 0   36 Sep 12  2015 access_compat.load -&gt; ..\/mods-available\/access_compat.load\r\nlrwxrwxrwx 1 0 0   28 Sep 12  2015 alias.conf -&gt; ..\/mods-available\/alias.conf\r\nlrwxrwxrwx 1 0 0   28 Sep 12  2015 alias.load -&gt; ..\/mods-available\/alias.load\r\nlrwxrwxrwx 1 0 0   33 Sep 12  2015 auth_basic.load -&gt; ..\/mods-available\/auth_basic.load\r\nlrwxrwxrwx 1 0 0   33 Sep 12  2015 authn_core.load -&gt; ..\/mods-available\/authn_core.load\r\nlrwxrwxrwx 1 0 0   33 Sep 12  2015 authn_file.load -&gt; ..\/mods-available\/authn_file.load\r\nlrwxrwxrwx 1 0 0   33 Sep 12  2015 authz_core.load -&gt; ..\/mods-available\/authz_core.load\r\nlrwxrwxrwx 1 0 0   33 Sep 12  2015 authz_host.load -&gt; ..\/mods-available\/authz_host.load\r\nlrwxrwxrwx 1 0 0   33 Sep 12  2015 authz_user.load -&gt; ..\/mods-available\/authz_user.load\r\nlrwxrwxrwx 1 0 0   32 Sep 12  2015 autoindex.conf -&gt; ..\/mods-available\/autoindex.conf\r\nlrwxrwxrwx 1 0 0   32 Sep 12  2015 autoindex.load -&gt; ..\/mods-available\/autoindex.load\r\nlrwxrwxrwx 1 0 0   30 Sep 12  2015 deflate.conf -&gt; ..\/mods-available\/deflate.conf\r\nlrwxrwxrwx 1 0 0   30 Sep 12  2015 deflate.load -&gt; ..\/mods-available\/deflate.load\r\nlrwxrwxrwx 1 0 0   26 Sep 12  2015 dir.conf -&gt; ..\/mods-available\/dir.conf\r\nlrwxrwxrwx 1 0 0   26 Sep 12  2015 dir.load -&gt; ..\/mods-available\/dir.load\r\nlrwxrwxrwx 1 0 0   26 Sep 12  2015 env.load -&gt; ..\/mods-available\/env.load\r\nlrwxrwxrwx 1 0 0   29 Sep 12  2015 filter.load -&gt; ..\/mods-available\/filter.load\r\nlrwxrwxrwx 1 0 0   27 Sep 12  2015 mime.conf -&gt; ..\/mods-available\/mime.conf\r\nlrwxrwxrwx 1 0 0   27 Sep 12  2015 mime.load -&gt; ..\/mods-available\/mime.load\r\nlrwxrwxrwx 1 0 0   34 Sep 12  2015 mpm_prefork.conf -&gt; ..\/mods-available\/mpm_prefork.conf\r\nlrwxrwxrwx 1 0 0   34 Sep 12  2015 mpm_prefork.load -&gt; ..\/mods-available\/mpm_prefork.load\r\nlrwxrwxrwx 1 0 0   34 Sep 12  2015 negotiation.conf -&gt; ..\/mods-available\/negotiation.conf\r\nlrwxrwxrwx 1 0 0   34 Sep 12  2015 negotiation.load -&gt; ..\/mods-available\/negotiation.load\r\nlrwxrwxrwx 1 0 0   30 Sep 12  2015 rewrite.load -&gt; ..\/mods-available\/rewrite.load\r\nlrwxrwxrwx 1 0 0   31 Sep 12  2015 setenvif.conf -&gt; ..\/mods-available\/setenvif.conf\r\nlrwxrwxrwx 1 0 0   31 Sep 12  2015 setenvif.load -&gt; ..\/mods-available\/setenvif.load\r\nlrwxrwxrwx 1 0 0   29 Sep 12  2015 status.conf -&gt; ..\/mods-available\/status.conf\r\nlrwxrwxrwx 1 0 0   29 Sep 12  2015 status.load -&gt; ..\/mods-available\/status.load\r\n<\/code><\/pre>\n<p>\u770b\u8d77\u6765\u4e0ePHP5\u65e0\u5173\u3002<\/p>\n<h1>\u8ba9\u6211\u4eec\u5220\u9664php5\u6587\u4ef6\u5939\u8bd5\u8bd5\u770b\u3002<\/h1>\n<p>\u6709\u4e00\u4e2a\u540d\u4e3a etc\/php5 \u7684\u76ee\u5f55\u3002\u5220\u9664\u5b83\u3002<\/p>\n<pre class=\"post-pre\"><code>rm -rf php5\/\r\n<\/code><\/pre>\n<p>\u91cd\u65b0\u542f\u52a8Apache\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo service apache2 restart\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u8fd8\u4e0d\u884c\u3002<\/p>\n<p>httpd.conf \u5728\u54ea\u91cc\u5462\uff1f<\/p>\n<p>\u300c\u5728Windows 10\u4e0a\u5c06PHP 7.0\u5b89\u88c5\u5230Apache 2.4\u300d\uff08\u535a\u5ba2\uff09<br \/>\nhttp:\/\/weblog.4141.biz\/?p=359<\/p>\n<p>\u7531\u4e8e\u662fWindows\u7684\u8bbe\u7f6e\uff0c\u6240\u4ee5\u4e0d\u76f8\u914d\u3002<\/p>\n<p>\u300c\u5728Ubuntu\u670d\u52a1\u5668\u4e0a\uff0cApache2\u4e0a\u7684httpd.conf\u6587\u4ef6\u7684\u5185\u5bb9\u662f\u4ec0\u4e48\uff1f\u300d<\/p>\n<p>\u5c1d\u8bd5\u5220\u9664\/etc\/apache2\/mods-available\u76ee\u5f55\u4e2d\u7684php5\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>rm php5.conf\r\nrm php5.load\r\n<\/code><\/pre>\n<p>\u91cd\u542fApache\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo service apache2 restart\r\n<\/code><\/pre>\n<p>\u8fd9\u6837\u8fd8\u4e0d\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo apt-get remove php\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nPackage 'php' is not installed, so not removed\r\nThe following packages were automatically installed and are no longer required:\r\n  libssl-dev libssl-doc php-cli php-common php-pear php-xml php7.0-cli php7.0-common php7.0-json\r\n  php7.0-opcache php7.0-readline php7.0-xml pkg-php-tools shtool zlib1g-dev\r\nUse 'sudo apt autoremove' to remove them.\r\n0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.\r\n<\/code><\/pre>\n<p>\u4e0d\u884c\u3002<\/p>\n<p>\u300cApache 2.x (\u9002\u7528\u4e8e Unix \u7cfb\u7edf)\u300d\uff08PHP \u6587\u6863\uff09<br \/>\nhttp:\/\/php.net\/manual\/zh\/install.unix.apache2.php<\/p>\n<p>\u4e0d\u5bf9\u3002<\/p>\n<p>\u300cDebian GNU\/Linux \u5b89\u88c5\u6307\u5357\u300d\uff08PHP\u6587\u6863\uff09<br \/>\nhttp:\/\/php.net\/manual\/zh\/install.unix.debian.php<\/p>\n<pre class=\"post-pre\"><code>apt-get install php5-common libapache2-mod-php5 php5-cli\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nPackage libapache2-mod-php5 is not available, but is referred to by another package.\r\nThis may mean that the package is missing, has been obsoleted, or\r\nis only available from another source\r\n\r\nPackage php5-cli is not available, but is referred to by another package.\r\nThis may mean that the package is missing, has been obsoleted, or\r\nis only available from another source\r\nHowever the following packages replace it:\r\n  php7.0-cli:i386 php7.0-cli\r\n\r\nPackage php5-common is not available, but is referred to by another package.\r\nThis may mean that the package is missing, has been obsoleted, or\r\nis only available from another source\r\n\r\nE: Package 'php5-common' has no installation candidate\r\nE: Package 'libapache2-mod-php5' has no installation candidate\r\nE: Package 'php5-cli' has no installation candidate\r\n<\/code><\/pre>\n<p>\u55ef\uff0c\u51fa\u73b0\u4e86\u4e00\u4e9b\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>\/etc\/init.d\/apache2 stop\r\n[ ok ] Stopping apache2 (via systemctl): apache2.service.\r\n<\/code><\/pre>\n<p>\u505c\u6b62\u4e86Apache\u5c31\u65e0\u6cd5\u8bbf\u95ee\u7f51\u7ad9\u3002<\/p>\n<pre class=\"post-pre\"><code>\/etc\/init.d\/apache2 start\r\n[ ok ] Starting apache2 (via systemctl): apache2.service.\r\n<\/code><\/pre>\n<p>\u91cd\u65b0\u542f\u52a8Apache\u540e\uff0c\u53ef\u4ee5\u8bbf\u95ee\u7f51\u7ad9\uff0c\u4f46PHP\u7684\u6e90\u4ee3\u7801\u76f4\u63a5\u88ab\u8f93\u51fa\u3002<\/p>\n<pre class=\"post-pre\"><code>apt-cache search php5\r\nbluefish - advanced Gtk+ text editor for web and software development\r\nphing - PHP5 project build system based on Apache Ant\r\nphp-auth - Creating an authentication system\r\nphp-doc - Documentation for PHP5\r\nphp-http-request2 - Provides an easy way to perform HTTP requests\r\nphp-letodms-lucene - Document management system - Fulltext search\r\nphp-memcache - memcache extension module for PHP5\r\nphp-memcached - memcached extension module for PHP5, uses libmemcached\r\nphp-net-dns2 - PHP5 Resolver library used to communicate with a DNS server\r\nphpunit - Unit testing suite for PHP5\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>aptitude search php5\r\nThe program 'aptitude' is currently not installed. You can install it by typing:\r\napt install aptitude\r\n<\/code><\/pre>\n<p>\u4f7f\u7528PHP\u811a\u672c\u8fdb\u884c\u64cd\u4f5c (\u670d\u52a1\u5668\u4e16\u754c)<br \/>\nhttps:\/\/www.server-world.info\/query?os=Debian_8&#038;p=httpd&#038;f=3<\/p>\n<pre class=\"post-pre\"><code>aptitude -y install php5 php5-cgi libapache2-mod-php5 php5-common php-pear\r\nThe program 'aptitude' is currently not installed. You can install it by typing:\r\napt install aptitude\r\n<\/code><\/pre>\n<h2>\u8ba9\u6211\u4eec\u5b89\u88c5aptitude\u3002<\/h2>\n<p>\u5728Ubuntu 10.10\u548c11.04\u768464\u4f4d\u7cfb\u7edf\u4e2d\u5b89\u88c5aptitude\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo apt-get install aptitude\r\n<\/code><\/pre>\n<p>\u53ef\u80fd\u6210\u529f\u5b89\u88c5\u4e86\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>aptitude -y install php5 php5-cgi libapache2-mod-php5 php5-common php-pear\r\n<\/code><\/pre>\n<p>\u8fd9\u6b21\u662f\u5728\u52a8\u7684\u3002<\/p>\n<h2>\u5728Apache\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\uff0c\u5c06PHP\u7684\u6587\u4ef6\u6269\u5c55\u540d\u4e0e\u5176\u5173\u8054\u3002<\/h2>\n<pre class=\"post-pre\"><code>nano \/etc\/apache2\/mods-enabled\/mime.conf\r\n<\/code><\/pre>\n<p>\u5728\u7b2c220\u884c\u9644\u8fd1\u8fdb\u884c\u8ffd\u52a0\u8bb0\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code># PHP extension\r\nAddHandler php5-script .php\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>systemctl restart apache2 \r\n<\/code><\/pre>\n<p>\u4e0d\u53ef\u4ee5\u3002<\/p>\n<pre class=\"post-pre\"><code>apt-get install php5-common libapache2-mod-php5 php5-cli\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nPackage libapache2-mod-php5 is not available, but is referred to by another package.\r\nThis may mean that the package is missing, has been obsoleted, or\r\nis only available from another source\r\n\r\nPackage php5-cli is not available, but is referred to by another package.\r\nThis may mean that the package is missing, has been obsoleted, or\r\nis only available from another source\r\nHowever the following packages replace it:\r\n  php7.0-cli:i386 php7.0-cli\r\n\r\nPackage php5-common is not available, but is referred to by another package.\r\nThis may mean that the package is missing, has been obsoleted, or\r\nis only available from another source\r\n\r\nE: Package 'php5-common' has no installation candidate\r\nE: Package 'libapache2-mod-php5' has no installation candidate\r\nE: Package 'php5-cli' has no installation candidate\r\n<\/code><\/pre>\n<p>\u51fa\u73b0\u9519\u8bef\u3002<\/p>\n<p>\u300cDebian \u4e0a\u5b89\u88c5 PHP + Apache &#8211; Linux \u5165\u95e8\u300d\uff08Webkaru \u7f51\u7ad9\uff09<br \/>\nhttp:\/\/webkaru.net\/linux\/debian-php-apache-install\/<\/p>\n<pre class=\"post-pre\"><code>apt-get install apache2 php5\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nPackage php5 is not available, but is referred to by another package.\r\nThis may mean that the package is missing, has been obsoleted, or\r\nis only available from another source\r\n\r\nE: Package 'php5' has no installation candidate\r\n<\/code><\/pre>\n<p>\u51fa\u73b0\u4e86\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>php -v\r\n-su: \/usr\/bin\/php: No such file or directory\r\n<\/code><\/pre>\n<p>\u51fa\u73b0\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>php info.php\r\n-su: \/usr\/bin\/php: No such file or directory\r\n<\/code><\/pre>\n<p>\u662f\u8bf4\u6ca1\u6709PHP\u5417\uff1f<\/p>\n<h1>\u8ba9\u6211\u4eec\u5b89\u88c5PHP7<\/h1>\n<p>\u300c\u5728Debian\uff08jessie\uff09\u4e0a\u5b89\u88c5PHP 7\u7684\u65b9\u6cd5\u300d(Promise Land)<br \/>\n<iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"Debian\uff08jessie\uff09\u306bPHP 7\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u65b9\u6cd5 - \u7d04\u675f\u306e\u5730\" src=\"https:\/\/hatenablog-parts.com\/embed?url=http%3A%2F%2Fobel.hatenablog.jp%2Fentry%2F20160311%2F1457644814#?secret=utusSPz1Bn\" data-secret=\"utusSPz1Bn\" scrolling=\"no\" frameborder=\"0\"><\/iframe><\/p>\n<pre class=\"post-pre\"><code>apt-get install php\r\n<\/code><\/pre>\n<p>\u5b89\u88c5\u3002PHP 7 \u76f8\u5f53\u4e8e\u7528\u6307\u5b9a\u547d\u4ee4\u5b89\u88c5\u7684PHP\u7248\u672c\u3002<\/p>\n<pre class=\"post-pre\"><code>php -v\r\nPHP 7.0.15-0ubuntu0.16.04.4 (cli) ( NTS )\r\nCopyright (c) 1997-2017 The PHP Group\r\nZend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies\r\n    with Zend OPcache v7.0.15-0ubuntu0.16.04.4, Copyright (c) 1999-2017, by Zend Technologies\r\n<\/code><\/pre>\n<p>\u6682\u65f6\u5df2\u5b89\u88c5\u4e86PHP7\u3002<\/p>\n<h1>\u5982\u4f55\u5378\u8f7dApache\u548cPHP\uff1f<\/h1>\n<p>\u5728Debian\u7cfb\u7edf\u4e0a\u5b8c\u5168\u5378\u8f7dApache2\uff0c\u7136\u540e\u91cd\u65b0\u5b89\u88c5\u3002<\/p>\n<p>\u9996\u5148\uff0c\u901a\u8fc7\u5b57\u7b26\u4e32\u641c\u7d22\u6765\u67e5\u627e\u76f8\u5173\u7684\u8f6f\u4ef6\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code>dpkg --get-selections | grep apache\r\napache2                                         install\r\napache2-bin                                     install\r\napache2-data                                    install\r\napache2-utils                                   install\r\nlibapache2-mod-php5                             install\r\n<\/code><\/pre>\n<p>\u5220\u9664\u627e\u5230\u7684\u8f6f\u4ef6\u5305<\/p>\n<pre class=\"post-pre\"><code>apt-get remove --purge apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php5\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nThe following packages were automatically installed and are no longer required:\r\n  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert\r\nUse 'apt autoremove' to remove them.\r\nThe following packages will be REMOVED:\r\n  apache2* apache2-bin* apache2-data* apache2-utils* libapache2-mod-php5*\r\n0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.\r\nAfter this operation, 5,383 kB disk space will be freed.\r\nDo you want to continue? [Y\/n] y\r\n(Reading database ... 45809 files and directories currently installed.)\r\nRemoving apache2 (2.4.18-2ubuntu3.1) ...\r\nPurging configuration files for apache2 (2.4.18-2ubuntu3.1) ...\r\ndpkg: warning: while removing apache2, directory '\/var\/www\/html' not empty so not removed\r\nRemoving apache2-bin (2.4.18-2ubuntu3.1) ...\r\nRemoving apache2-data (2.4.18-2ubuntu3.1) ...\r\nRemoving apache2-utils (2.4.18-2ubuntu3.1) ...\r\nRemoving libapache2-mod-php5 (5.5.9+dfsg-1ubuntu4.21) ...\r\nPurging configuration files for libapache2-mod-php5 (5.5.9+dfsg-1ubuntu4.21) ...\r\nProcessing triggers for man-db (2.7.5-1) ...\r\nProcessing triggers for ufw (0.35-0ubuntu2) ...\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>dpkg --get-selections | grep apache\r\n<\/code><\/pre>\n<p>\u6211\u5220\u9664\u4e86\u4e0e Apache \u76f8\u5173\u7684\u8f6f\u4ef6\u5305\u3002<br \/>\n\u7136\u540e\uff0c\u6211\u4f1a\u641c\u7d22\u4e0e PHP \u76f8\u5173\u7684\u8f6f\u4ef6\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code>dpkg --get-selections | grep php\r\nphp                                             install\r\nphp-common                                      install\r\nphp-pear                                        deinstall\r\nphp5-cli                                        deinstall\r\nphp5-common                                     install\r\nphp5-json                                       deinstall\r\nphp5-memcached                                  deinstall\r\nphp5-mysql                                      deinstall\r\nphp5-readline                                   deinstall\r\nphp7.0                                          install\r\nphp7.0-cli                                      install\r\nphp7.0-common                                   install\r\nphp7.0-fpm                                      install\r\nphp7.0-json                                     install\r\nphp7.0-opcache                                  install\r\nphp7.0-readline                                 install\r\nphp7.0-xml                                      deinstall\r\n<\/code><\/pre>\n<p>\u5220\u9664\u627e\u5230\u7684\u5305<\/p>\n<pre class=\"post-pre\"><code>apt-get remove --purge php php-common php-pear php5-cli php5-common php5-json php5-memcached php5-mysql php5-readline php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-opcache php7.0-readline php7.0-xml\r\nReading package lists... Done\r\nBuilding dependency tree\r\nReading state information... Done\r\nThe following packages were automatically installed and are no longer required:\r\n  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0 ssl-cert\r\nUse 'apt autoremove' to remove them.\r\nThe following packages will be REMOVED:\r\n  php* php-common* php-pear* php5-cli* php5-common* php5-json* php5-memcached* php5-mysql* php5-readline*\r\n  php7.0* php7.0-cli* php7.0-common* php7.0-fpm* php7.0-json* php7.0-opcache* php7.0-readline* php7.0-xml*\r\n0 upgraded, 0 newly installed, 17 to remove and 0 not upgraded.\r\nAfter this operation, 14.1 MB disk space will be freed.\r\nDo you want to continue? [Y\/n] y\r\n(Reading database ... 45161 files and directories currently installed.)\r\nRemoving php (1:7.0+35ubuntu6) ...\r\nRemoving php7.0 (7.0.15-0ubuntu0.16.04.4) ...\r\nRemoving php7.0-fpm (7.0.15-0ubuntu0.16.04.4) ...\r\nPurging configuration files for php7.0-fpm (7.0.15-0ubuntu0.16.04.4) ...\r\ndpkg: warning: while removing php7.0-fpm, directory '\/etc\/php\/7.0\/fpm\/conf.d' not empty so not removed\r\nRemoving php7.0-cli (7.0.15-0ubuntu0.16.04.4) ...\r\nPurging configuration files for php7.0-cli (7.0.15-0ubuntu0.16.04.4) ...\r\ndpkg: warning: while removing php7.0-cli, directory '\/etc\/php\/7.0\/cli\/conf.d' not empty so not removed\r\nRemoving php7.0-readline (7.0.15-0ubuntu0.16.04.4) ...\r\nPurging configuration files for php7.0-readline (7.0.15-0ubuntu0.16.04.4) ...\r\nRemoving php7.0-opcache (7.0.15-0ubuntu0.16.04.4) ...\r\nPurging configuration files for php7.0-opcache (7.0.15-0ubuntu0.16.04.4) ...\r\nRemoving php-pear (1:1.10.1+submodules+notgz-6) ...\r\nPurging configuration files for php-pear (1:1.10.1+submodules+notgz-6) ...\r\nRemoving php5-cli (5.5.9+dfsg-1ubuntu4.21) ...\r\nPurging configuration files for php5-cli (5.5.9+dfsg-1ubuntu4.21) ...\r\nRemoving php5-common (5.5.9+dfsg-1ubuntu4.21) ...\r\nPurging configuration files for php5-common (5.5.9+dfsg-1ubuntu4.21) ...\r\ndpkg: warning: while removing php5-common, directory '\/usr\/share\/doc\/php5-common' not empty so not removed\r\nRemoving php5-json (1.3.2-2build1) ...\r\nPurging configuration files for php5-json (1.3.2-2build1) ...\r\ndpkg: warning: while removing php5-json, directory '\/usr\/lib\/php5\/20121212' not empty so not removed\r\nRemoving php5-memcached (2.1.0-6build1) ...\r\nPurging configuration files for php5-memcached (2.1.0-6build1) ...\r\ndpkg: warning: while removing php5-memcached, directory '\/usr\/share\/php\/.registry\/.channel.pecl.php.net' not empty so not removed\r\nRemoving php5-mysql (5.5.9+dfsg-1ubuntu4.21) ...\r\nPurging configuration files for php5-mysql (5.5.9+dfsg-1ubuntu4.21) ...\r\nRemoving php5-readline (5.5.9+dfsg-1ubuntu4.21) ...\r\nPurging configuration files for php5-readline (5.5.9+dfsg-1ubuntu4.21) ...\r\nRemoving php7.0-json (7.0.15-0ubuntu0.16.04.4) ...\r\nPurging configuration files for php7.0-json (7.0.15-0ubuntu0.16.04.4) ...\r\nRemoving php7.0-common (7.0.15-0ubuntu0.16.04.4) ...\r\nPurging configuration files for php7.0-common (7.0.15-0ubuntu0.16.04.4) ...\r\ndpkg: warning: while removing php7.0-common, directory '\/etc\/php\/7.0\/mods-available' not empty so not removed\r\nRemoving php7.0-xml (7.0.15-0ubuntu0.16.04.4) ...\r\nPurging configuration files for php7.0-xml (7.0.15-0ubuntu0.16.04.4) ...\r\nRemoving php-common (1:35ubuntu6) ...\r\nPurging configuration files for php-common (1:35ubuntu6) ...\r\nProcessing triggers for man-db (2.7.5-1) ...\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>dpkg --get-selections | grep php\r\n<\/code><\/pre>\n<p>\u6211\u5df2\u7ecf\u5220\u9664\u4e86\u4e0eApache\u76f8\u5173\u7684\u8f6f\u4ef6\u5305\u3002<\/p>\n<p>\u63a5\u4e0b\u6765\u91cd\u65b0\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code>apt-get install apache2 php\r\n<\/code><\/pre>\n<p>\u8ba9Apache\u542f\u52a8\u4e00\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>\/etc\/init.d\/apache2 start\r\n[ ok ] Starting apache2 (via systemctl): apache2.service.\r\n<\/code><\/pre>\n<p>\u5f53\u8bbf\u95ee404 Not Found\u65f6\uff0c\u5982\u679c\u6539\u4e3a\u8bbf\u95ee\u5176\u4e0a\u4e00\u5c42\u76ee\u5f55\u800c\u4e0d\u662fhtml\u6587\u4ef6\u5939\uff0c\u5c06\u4f1a\u663e\u793a&#8221;It works!&#8221;\u7684\u9875\u9762\u3002<\/p>\n<p>index.php \u4f9d\u7136\u76f4\u63a5\u663e\u793a\u6e90\u4ee3\u7801\u3002<\/p>\n<h2>\u53e6\u5916\u8bbe\u7f6e<\/h2>\n<pre class=\"post-pre\"><code>nano \/etc\/apache2\/mods-enabled\/mime.conf\r\n<\/code><\/pre>\n<p>\u636e\u62a5\u9053\uff0c\u636e\u8bf4\u5728\u7b2c220\u884c\u5de6\u53f3\u6709\u8ffd\u52a0\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code># PHP extension\r\nAddHandler php5-script .php\r\n<\/code><\/pre>\n<p>\u91cd\u65b0\u542f\u52a8 Apache\u3002<\/p>\n<pre class=\"post-pre\"><code>\/etc\/init.d\/apache2 start\r\n[ ok ] Starting apache2 (via systemctl): apache2.service.\r\n<\/code><\/pre>\n<p>PHP\u7684\u539f\u59cb\u78bc\u4fdd\u6301\u4e0d\u8b8a\u3002<\/p>\n<p>\u300c\u4f7f\u7528 PHP \u811a\u672c\u300d(\u670d\u52a1\u5668\u4e16\u754c)<\/p>\n<p>\u5b89\u88c5 PHP\u3002<\/p>\n<pre class=\"post-pre\"><code>apt-get -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring\r\n<\/code><\/pre>\n<p>\u91cd\u65b0\u542f\u52a8Apache\u3002<\/p>\n<pre class=\"post-pre\"><code>sudo \/etc\/init.d\/apache2 restart\r\n[ ok ] Restarting apache2 (via systemctl): apache2.service.\r\n<\/code><\/pre>\n<h1>\u54ce\u5440\uff1fphpinfo() \u6b63\u5e38\u8fd0\u884c\u4e86\u3002<\/h1>\n<p>\u90a3\u4e48\u51b3\u5b9a\u7684\u5173\u952e\u662f\uff0c<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30a2\u30d1\u30c3\u30c1\u3000\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">PHP \u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30a2\u30d1\u30c3\u30c1\u3068PHP\u3092\u540c\u6642\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">apt-get -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30a2\u30d1\u30c3\u30c1\u518d\u8d77\u52d5\u300csudo \/etc\/init.d\/apache2 restart\u300d<\/ul>\n<p>\u8fd9\u9644\u8fd1\u5417\uff1f\u4e2d\u9014\u76ee\u5f55\u5c42\u6b21\u4e5f\u6539\u53d8\u4e86\u3002<\/p>\n<h1>\u6211\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u4e2d\u4f7f\u7528URL\u8bbf\u95ee\u5e76\u4f20\u9012GET\u67e5\u8be2\u5b57\u7b26\u4e32\u7ed9\u7a0b\u5e8f\u5417\uff1f<\/h1>\n<p>\u300c\u4f7f\u7528HTTP\u8fdb\u884c\u7684\u5957\u63a5\u5b57\u901a\u4fe1\u300d<\/p>\n<p>\u670d\u52a1\u5668\u65b9\u9762\u60f3\u8981\u7684\u3002<\/p>\n<p>\u300c\u3010CakePHP\u3011\u83b7\u53d6\u8bf7\u6c42\u7684\u65b9\u6cd5\u300d\uff08Qitta\uff09<br \/>\nhttp:\/\/qiita.com\/kazu56\/items\/7d344ccef56deef66a7a<\/p>\n<p>\u6682\u65f6\u5c1d\u8bd5\u4f7f\u7528 PHP \u83b7\u53d6 GET \u67e5\u8be2\u5b57\u7b26\u4e32\u3002<\/p>\n<pre class=\"post-pre\"><code>    http:\/\/a.b.c.d\/html\/?shogi=sfen 3\/1p1\/1P1\/3 w - 1 moves\r\n<\/code><\/pre>\n<p>\u5c31\u50cf\u90a3\u79cd\u611f\u89c9\u3002<\/p>\n<pre class=\"post-pre\"><code>$shogi = $this-&gt;request-&gt;query('shogi');\r\n<\/code><\/pre>\n<p>\u8fd9\u662f\u4ec0\u4e48\u4e1c\u897f\uff0c\u4e0d\u884c\u554a\u3002<\/p>\n<p>\u83b7\u53d6\u6574\u4e2a\u67e5\u8be2\u5b57\u7b26\u4e32\u3002<\/p>\n<p>\u300curldecode\u300d\uff08PHP\u624b\u518c\uff09<br \/>\nhttp:\/\/php.net\/manual\/zh\/function.urldecode.php<\/p>\n<p>\u6bd4\u5982\u8fd9\u6837\u7684\u611f\u89c9\u3002<\/p>\n<p>tamesi1.php\u53ef\u4ee5\u8f6c\u8ff0\u4e3a\uff1atamesi1.php<\/p>\n<pre class=\"post-pre\"><code>&lt;?php\r\n$query = urldecode($_SERVER['QUERY_STRING']);\r\necho '\uff08\uff3e\uff51\uff3e\uff09' . $query . '&lt;br \/&gt;';\r\necho '\u30af\u30ea\u30c3\u30af\u3057\u308d\u3060\u305c\u2606\uff4d\uff19\uff08\uff3e\uff5e\uff3e\uff09\uff01&lt;br \/&gt;';\r\necho '&lt;a href=\"http:\/\/999.999.999.999\/tamesi1.php?shogi=sfen 3\/1p1\/1P1\/3 w - 1 moves\"&gt;http:\/\/999.999.999.999\/?shogi=sfen 3\/1p1\/1P1\/3 w - 1 moves&lt;\/a&gt;&lt;br \/&gt;';\r\n<\/code><\/pre>\n<p>\u6240\u4ee5\uff0c\u5982\u679c\u670d\u52a1\u5668\u7aef\u6b63\u5728\u8fd0\u884c\u7a0b\u5e8f\uff0c\u6211\u4eec\u8981\u5982\u4f55\u4f20\u9012\u8fd9\u4e2a\u5b57\u7b26\u4e32\u5462\uff1f\u5047\u8bbe\u7aef\u53e3\u53f7\u5df2\u7ecf\u5f00\u653e\uff0c\u6211\u4eec\u53ea\u9700\u5199\u5165\u5417\uff1f\u80fd\u4f7f\u7528PHP\u5b9e\u73b0\u5417\uff1f<\/p>\n<p>\u5c06\u6570\u636e\u4eceexe\u4f20\u9012\u7ed9php\u3002<\/p>\n<p>\u6211\u4eec\u6765\u7814\u7a76\u4e00\u4e0b\u8fdb\u7a0b\u95f4\u901a\u4fe1\u5427\u3002<\/p>\n<p>\u300a\u6d88\u606f\u961f\u5217\u7684\u4f7f\u7528\u65b9\u6cd5\uff08C\u8bed\u8a00\u548cPHP\u8fdb\u884c\u8fdb\u7a0b\u95f4\u901a\u4fe1\uff09\u300b\uff08Linux\u5b89\u88c5\u5907\u5fd8\u5f55\uff09<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"6djp6hL0jg\"><p><a href=\"https:\/\/linux.yebisu.jp\/memo\/630\">\u25a1\u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30e5\u30fc\u306e\u4f7f\u3044\u65b9(C\u3068PHP\u3067\u30d7\u30ed\u30bb\u30b9\u9593\u901a\u4fe1)<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;\u25a1\u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30e5\u30fc\u306e\u4f7f\u3044\u65b9(C\u3068PHP\u3067\u30d7\u30ed\u30bb\u30b9\u9593\u901a\u4fe1)&#8221; &#8212; Linux Install Memo\" src=\"https:\/\/linux.yebisu.jp\/memo\/630\/embed#?secret=nN6GDRy1Ly#?secret=6djp6hL0jg\" data-secret=\"6djp6hL0jg\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>\u6d88\u606f\u961f\u5217\u4e5f\u6709\u5417\uff1f<\/p>\n<h1>\u6d88\u606f\u961f\u5217<\/h1>\n<p>\u6682\u65f6\u5148\u4eceC#\u65b9\u9762\u8fdb\u884c\u8c03\u67e5\u3002<\/p>\n<p>\u300c\u5728C#\u4e2d\u5411\u6d88\u606f\u968a\u5217\u767c\u9001\u6d88\u606f\u300d(ITLAB51.COM)<br \/>\nhttp\uff1a\/\/www.itlab51.com\/?p=4111<\/p>\n<p>\u5728Windows\u7684\u641c\u7d22\u6846\u4e2d\u952e\u5165\u201c\u8ba1\u7b97\u673a\u7ba1\u7406\u201d\u3002<\/p>\n<p>[\u670d\u52a1\u548c\u5e94\u7528\u7a0b\u5e8f] &#8211; [\u6d88\u606f\u961f\u5217] &#8211; [\u4e13\u7528\u961f\u5217]<\/p>\n<p>\u73b0\u5728\u662f\u7a7a\u7684\uff0c\u4f46\u4f3c\u4e4e\u53ef\u4ee5\u5728\u8fd9\u91cc\u7559\u4e0b\u4fe1\u606f\u3002<br \/>\n\u5f85\u4f1a\u513f\u8bd5\u8bd5\u770b\u5427\u3002<\/p>\n<p>\u901a\u8fc7C#\u6d88\u606f\u961f\u5217\u63a5\u6536\u6d88\u606f (ITLAB51.COM)<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"g7fnmazMI6\"><p><a href=\"http:\/\/www.itlab51.com\/?p=4173\">C# \u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30e5\u30fc\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u4fe1\u3059\u308b<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;C# \u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30e5\u30fc\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u4fe1\u3059\u308b&#8221; &#8212; ITLAB51.COM\" src=\"http:\/\/www.itlab51.com\/?p=4173&#038;embed=true#?secret=Qwr9GQP6Hc#?secret=g7fnmazMI6\" data-secret=\"g7fnmazMI6\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>\u770b\u8d77\u6765\u5fc5\u987b\u5148\u521b\u5efa\u6d88\u606f\u961f\u5217\u3002<\/p>\n<p>\u300c \u5728 C# \u7684\u6d88\u606f\u968a\u5217\u4e2d\u5275\u5efa\u5c08\u7528\u968a\u5217\u300d\uff08ITLAB51.COM\uff09<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"17FyL3U6ys\"><p><a href=\"http:\/\/www.itlab51.com\/?p=2322\">C# \u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30e5\u30fc\u306b\u5c02\u7528\u30ad\u30e5\u30fc\u3092\u4f5c\u6210\u3059\u308b<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;C# \u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30e5\u30fc\u306b\u5c02\u7528\u30ad\u30e5\u30fc\u3092\u4f5c\u6210\u3059\u308b&#8221; &#8212; ITLAB51.COM\" src=\"http:\/\/www.itlab51.com\/?p=2322&#038;embed=true#?secret=whBUKCd5n0#?secret=17FyL3U6ys\" data-secret=\"17FyL3U6ys\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>\u597d\u7684\uff0c\u6211\u5728Windows\u4e2d\u786e\u8ba4\u4e86\u3002<\/p>\n<p>C# \u793a\u4f8b\u7a0b\u5f0f<\/p>\n<pre class=\"post-pre\"><code>using System;\r\nusing System.Messaging; \/\/ [References] - [Add Reference]\r\n\r\nnamespace MsgQueue\r\n{\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u30ad\u30e5\u30fc\uff08\u30e1\u30c3\u30bb\u30fc\u30b8\u7bb1\uff09\u306b\u9001\u308a\u8fbc\u3093\u3060\u60c5\u5831\u304c\u3042\u308b\u304b\u78ba\u8a8d\u3059\u308b\u65b9\u6cd5\u3002\r\n    \/\/\/ (1) Windows\u306e\u691c\u7d22\u30dc\u30c3\u30af\u30b9\u306b\u300c\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u306e\u7ba1\u7406\u300d\u3068\u5165\u529b\u3002\r\n    \/\/\/ (2) [\u30b5\u30fc\u30d3\u30b9\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3] - [\u30e1\u30c3\u30bb\u30fc\u30b8 \u30ad\u30e5\u30fc] \u3092\u958b\u304f\u3002\r\n    \/\/\/ (3) [F5]\u30ad\u30fc\u3067\u66f4\u65b0\u3002\r\n    \/\/\/ &lt;\/summary&gt;\r\n    class Program\r\n    {\r\n        public const string QUEUE_NAME = @\".\\Private$\\testqueue\";\r\n\r\n        static void Main(string[] args)\r\n        {\r\n            for (;;)\r\n            {\r\n                Console.WriteLine(@\"\u9078\u3079\u3060\u305c\u2606\uff08\uff3e\uff5e\uff3e\uff09\r\n1   : \u30e1\u30c3\u30bb\u30fc\u30b8\u7bb1 \u4f5c\u6210\r\n2   : \u30e1\u30c3\u30bb\u30fc\u30b8   \u9001\u4fe1\r\n3   : \u30e1\u30c3\u30bb\u30fc\u30b8   \u53d7\u4fe1\r\n4   : \u30e1\u30c3\u30bb\u30fc\u30b8\u7bb1 \u524a\u9664\r\nquit: \u7d42\u4e86\r\n\");\r\n\r\n                int category = 0;\r\n                for (;;)\r\n                {\r\n                    string line = Console.ReadLine();\r\n                    switch (line)\r\n                    {\r\n                        case \"1\": category = 1; goto gt_EndLoop1;\r\n                        case \"2\": category = 2; goto gt_EndLoop1;\r\n                        case \"3\": category = 3; goto gt_EndLoop1;\r\n                        case \"4\": category = 4; goto gt_EndLoop1;\r\n                        case \"quit\": goto gt_Quit;\r\n                        default: break;\r\n                    }\r\n                }\r\n                gt_EndLoop1:\r\n                ;\r\n\r\n                switch (category)\r\n                {\r\n                    case 1:\r\n                        {\r\n                            if (MessageQueue.Exists(QUEUE_NAME))\r\n                            {\r\n                                Console.WriteLine(\"\u30ad\u30e5\u30fc[\"+ QUEUE_NAME + \"]\u306f\u65e2\u5b58\u3060\u305c\u2606\uff08\uff3e\uff5e\uff3e\uff09\");\r\n                            }\r\n                            else\r\n                            {\r\n                                \/\/ \u30ad\u30e5\u30fc\u540d\u306f\u3001\u5927\u6587\u5b57\u3067\u6307\u5b9a\u3057\u3066\u3082\u5c0f\u6587\u5b57\u306b\u306a\u308b\r\n                                MessageQueue.Create(QUEUE_NAME);\r\n                            }\r\n                        }\r\n                        break;\r\n                    case 2:\r\n                        {\r\n                            MessageQueue mq = new MessageQueue((@\".\\Private$\\testqueue\"));\r\n                            Message msg = new Message();\r\n                            msg.Body = \"\u30c6\u30b9\u30c8\u30e1\u30c3\u30bb\u30fc\u30b8\u3060\u305c\u2606\uff08\uff3e\u25bd\uff3e\uff09\";\r\n                            msg.Label = \"\u30c6\u30b9\u30c8\u3060\u305c\u2606\uff08\uff3e\uff5e\uff3e\uff09\";\r\n                            mq.Send(msg);\r\n                        }\r\n                        break;\r\n                    case 3:\r\n                        {\r\n                            MessageQueue mq = new MessageQueue((@\".\\Private$\\testqueue\"));\r\n                            System.Messaging.Message msg = new System.Messaging.Message();\r\n                            msg = mq.Receive();\r\n                            msg.Formatter = new XmlMessageFormatter(new string[] { \"System.String, mscorlib\" });\r\n                            Console.WriteLine(msg.Body.ToString());\r\n                        }\r\n                        break;\r\n                    case 4:\r\n                        {\r\n                            if (MessageQueue.Exists(QUEUE_NAME))\r\n                            {\r\n                                MessageQueue.Delete(QUEUE_NAME);\r\n                            }\r\n                            else\r\n                            {\r\n                                Console.WriteLine(\"\u30ad\u30e5\u30fc[\" + QUEUE_NAME + \"]\u306a\u3093\u304b\u7121\u3044\u305c\u2606\uff08\uff3e\uff5e\uff3e\uff09\");\r\n                            }\r\n                        }\r\n                        break;\r\n                }\r\n            }\r\n            gt_Quit:\r\n            ;\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>\u4e0d\u59a8\u4e5f\u8bd5\u8bd5Ubuntu\u5427\u3002<\/p>\n<pre class=\"post-pre\"><code>nano MsgQueue.cs\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>mcs MsgQueue.cs\r\nMsgQueue.cs(2,14): error CS0234: The type or namespace name `Messaging' does not exist in the namespace `System'. Are you missing an assembly reference?\r\nCompilation failed: 1 error(s), 0 warnings\r\n<\/code><\/pre>\n<h2>\u600e\u4e48\u6837\u624d\u80fd\u6dfb\u52a0 System.Messaging \u7684\u5f15\u7528\uff1f<\/h2>\n<p>\u300c\u300c\u25cb\u25cb\u25cb.dll\u3092\u53c2\u7167\u306b\u8ffd\u52a0\u3057\u307e\u3059\u300d\u7684\u610f\u601d\u662f\u4ec0\u4e48\uff1f\u300d (DOBON.NET)<br \/>\nhttp:\/\/dobon.net\/vb\/dotnet\/help\/addreference.html<\/p>\n<p>\u300c\/\u53c2\u8003\u300d\uff08MSDN\uff09<br \/>\nhttps:\/\/msdn.microsoft.com\/zh-CN\/library\/2b07fd84(v=vs.100).aspx<\/p>\n<p>\u90a3\u4e48\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u4e86\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>mcs \/reference:messaging.dll MsgQueue.cs\r\nerror CS0006: Metadata file `messaging.dll' could not be found\r\nCompilation failed: 1 error(s), 0 warnings\r\n<\/code><\/pre>\n<p>\u561b\uff0c\u6c92\u6709.dll\u6a94\u554a\u3002\u8a72\u600e\u9ebc\u8fa6\u5462\u2026\u2026\u3002<\/p>\n<p>\u300c\u7cfb\u7edf\u6d88\u606f DLL \u4e22\u5931\uff1f\u300d (stackoverflow)<br \/>\nhttp:\/\/stackoverflow.com\/questions\/13409342\/system-messaging-dll-missing<\/p>\n<p>\u597d\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code>mcs \/reference:System.Messaging.dll MsgQueue.cs\r\n<\/code><\/pre>\n<p>\u6210\u529f\u4e86\u5417\uff1f<\/p>\n<pre class=\"post-pre\"><code>.\/MsgQueue.exe\r\n\u9078\u3079\u3060\u305c\u2606\uff08\uff3e\uff5e\uff3e\uff09\r\n1   : \u30e1\u30c3\u30bb\u30fc\u30b8\u7bb1 \u4f5c\u6210\r\n2   : \u30e1\u30c3\u30bb\u30fc\u30b8   \u9001\u4fe1\r\n3   : \u30e1\u30c3\u30bb\u30fc\u30b8   \u53d7\u4fe1\r\n4   : \u30e1\u30c3\u30bb\u30fc\u30b8\u7bb1 \u524a\u9664\r\nquit: \u7d42\u4e86\r\n\r\n1\r\n\u9078\u3079\u3060\u305c\u2606\uff08\uff3e\uff5e\uff3e\uff09\r\n1   : \u30e1\u30c3\u30bb\u30fc\u30b8\u7bb1 \u4f5c\u6210\r\n2   : \u30e1\u30c3\u30bb\u30fc\u30b8   \u9001\u4fe1\r\n3   : \u30e1\u30c3\u30bb\u30fc\u30b8   \u53d7\u4fe1\r\n4   : \u30e1\u30c3\u30bb\u30fc\u30b8\u7bb1 \u524a\u9664\r\nquit: \u7d42\u4e86\r\n\r\n2\r\nInsert: Mono.Messaging.RabbitMQ.MessagingContext\r\n\r\nUnhandled Exception:\r\nSystem.Messaging.MessageQueueException: Unable to connect to Queue: localhost\\private$\\testqueue, Error: None of the specified endpoints were reachable\r\n  at System.Messaging.MessageQueue.Send (System.Object obj) &lt;0x40f79d90 + 0x00227&gt; in &lt;filename unknown&gt;:0\r\n  at (wrapper remoting-invoke-with-check) System.Messaging.MessageQueue:Send (object)\r\n  at MsgQueue.Program.Main (System.String[] args) &lt;0x40f46d50 + 0x00233&gt; in &lt;filename unknown&gt;:0\r\n[ERROR] FATAL UNHANDLED EXCEPTION: System.Messaging.MessageQueueException: Unable to connect to Queue: localhost\\private$\\testqueue, Error: None of the specified endpoints were reachable\r\n  at System.Messaging.MessageQueue.Send (System.Object obj) &lt;0x40f79d90 + 0x00227&gt; in &lt;filename unknown&gt;:0\r\n  at (wrapper remoting-invoke-with-check) System.Messaging.MessageQueue:Send (object)\r\n  at MsgQueue.Program.Main (System.String[] args) &lt;0x40f46d50 + 0x00233&gt; in &lt;filename unknown&gt;:0\r\n<\/code><\/pre>\n<p>\u8fd9\u662f\u4ec0\u4e48\u9b3c\uff5e\u3002<\/p>\n<p>\u6307\u5b9a\u7684\u4efb\u4f55\u8282\u70b9\u90fd\u65e0\u6cd5\u8fde\u63a5\u3002<\/p>\n<p>\u4f7f\u7528\u5355\u4f8b\u6a21\u5f0f\u89e3\u51b3\u95ee\u9898\uff1f<\/p>\n<p>\u300cLinux\u7684\u6d88\u606f\u961f\u5217\uff08IPC\uff09\u300d\uff08\u697d\u543e\u697d\uff0c\u91cd\u590d\u81ea\u5df1\uff09<br \/>\nhttp:\/\/blogs.yahoo.co.jp\/ichi0346\/34314386.html<br \/>\n&#8220;Linux\u7684\u6d88\u606f\u961f\u5217\uff08IPC\uff09&#8221;\uff08\u697d\u543e\u697d\uff0c\u72ec\u81ea\u8907\u88fd\uff09<br \/>\nhttp:\/\/blogs.yahoo.co.jp\/ichi0346\/34314386.html<\/p>\n<p>\u55ef\uff0c\u51fa\u9519\u4e86\u54e6\u3002<\/p>\n<pre class=\"post-pre\"><code>cat \/proc\/sys\/fs\/mqueue\/msg_max\r\n10\r\ncat \/proc\/sys\/fs\/mqueue\/msgsize_max\r\n8192\r\ncat \/proc\/sys\/fs\/mqueue\/queues_max\r\n256\r\n<\/code><\/pre>\n<h1>Qiita\u7684\u7f51\u5173\u8d85\u65f6\u4e86\uff0c\u9700\u8981\u6362\u4e00\u7bc7\u6587\u7ae0\u3002<\/h1>\n<p>\uff1c\u7b2c\u4e8c\u90e8\u5206\uff1e<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u60f3\u5728\u4e00\u4e2a\u5c0f\u65f6\u524d\u6211\u53ef\u80fd\u8fd8\u5728\u73a9\u7535\u8111\u56f4\u68cb\uff0c\u4f46\u662f\u73b0\u5728\u8981\u8f6c\u800c\u73a9\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u3002 \u8981\u4ef6\u5b9a\u7fa9 URL\u53e9\u3044\u305f\u3089\u6307\u3057\u624b\u3092\u8fd4\u3057\u3066\u307b [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-34816","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e\" \/>\n<meta property=\"og:description\" content=\"\u6211\u60f3\u5728\u4e00\u4e2a\u5c0f\u65f6\u524d\u6211\u53ef\u80fd\u8fd8\u5728\u73a9\u7535\u8111\u56f4\u68cb\uff0c\u4f46\u662f\u73b0\u5728\u8981\u8f6c\u800c\u73a9\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u3002 \u8981\u4ef6\u5b9a\u7fa9 URL\u53e9\u3044\u305f\u3089\u6307\u3057\u624b\u3092\u8fd4\u3057\u3066\u307b [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-11T15:34:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T00:45:15+00:00\" \/>\n<meta name=\"author\" content=\"\u79d1, \u96c5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u96c5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"63 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/\",\"name\":\"\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-02-11T15:34:40+00:00\",\"dateModified\":\"2024-05-04T00:45:15+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\",\"name\":\"\u79d1, \u96c5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u96c5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keya\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\/","og_locale":"zh_CN","og_type":"article","og_title":"\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e","og_description":"\u6211\u60f3\u5728\u4e00\u4e2a\u5c0f\u65f6\u524d\u6211\u53ef\u80fd\u8fd8\u5728\u73a9\u7535\u8111\u56f4\u68cb\uff0c\u4f46\u662f\u73b0\u5728\u8981\u8f6c\u800c\u73a9\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u3002 \u8981\u4ef6\u5b9a\u7fa9 URL\u53e9\u3044\u305f\u3089\u6307\u3057\u624b\u3092\u8fd4\u3057\u3066\u307b [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-02-11T15:34:40+00:00","article_modified_time":"2024-05-04T00:45:15+00:00","author":"\u79d1, \u96c5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u96c5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"63 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/","name":"\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-02-11T15:34:40+00:00","dateModified":"2024-05-04T00:45:15+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u8ba9\u6211\u4eec\u642d\u5efa\u4e00\u4e2a\u4e0e\u7535\u8111\u5c06\u68cb\u8f6f\u4ef6\u5bf9\u6218\u7684\u670d\u52a1\u5668\uff1c\u7b2c\u4e00\u90e8\u5206\uff1e"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a","name":"\u79d1, \u96c5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g","caption":"\u79d1, \u96c5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keya\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%90%ad%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8e%e7%94%b5%e8%84%91%e5%b0%86%e6%a3%8b%e8%bd%af%e4%bb%b6%e5%af%b9%e6%88%98%e7%9a%84%e6%9c%8d%e5%8a%a1%e5%99%a8%ef%bc%9c%e7%ac%ac\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/34816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=34816"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/34816\/revisions"}],"predecessor-version":[{"id":97314,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/34816\/revisions\/97314"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=34816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=34816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=34816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}