{"id":890,"date":"2022-06-14T14:36:57","date_gmt":"2022-06-14T06:36:57","guid":{"rendered":"http:\/\/47.98.165.52\/?p=890"},"modified":"2022-06-22T11:35:47","modified_gmt":"2022-06-22T03:35:47","slug":"100%e4%b8%aalinux-shell%e8%84%9a%e6%9c%ac%e7%bb%8f%e5%85%b8%e6%a1%88%e4%be%8b","status":"publish","type":"post","link":"\/?p=890","title":{"rendered":"100\u4e2aLinux Shell\u811a\u672c\u7ecf\u5178\u6848\u4f8b"},"content":{"rendered":"<h1>100\u4e2aLinux Shell\u811a\u672c\u7ecf\u5178\u6848\u4f8b<\/h1>\n<p><a href=\"javascript:void(0);\">\u6211\u4e0d\u7231\u673a\u5668\u5b66\u4e60<\/a> <em>2022-05-22 12:38<\/em> <em>\u53d1\u8868\u4e8e\u6d59\u6c5f<\/em><\/p>\n<p>\u6536\u5f55\u4e8e\u5408\u96c6#Linux1\u4e2a<\/p>\n<p>1\u3001\u7f16\u5199hello world\u811a\u672c<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199hello world\u811a\u672c\n\necho &quot;Hello World!&quot;<\/code><\/pre>\n<p>2\u3001\u901a\u8fc7\u4f4d\u7f6e\u53d8\u91cf\u521b\u5efa Linux \u7cfb\u7edf\u8d26\u6237\u53ca\u5bc6\u7801<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u901a\u8fc7\u4f4d\u7f6e\u53d8\u91cf\u521b\u5efa Linux \u7cfb\u7edf\u8d26\u6237\u53ca\u5bc6\u7801\n\n#$1 \u662f\u6267\u884c\u811a\u672c\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570,$2 \u662f\u6267\u884c\u811a\u672c\u7684\u7b2c\u4e8c\u4e2a\u53c2\u6570\nuseradd    &quot;$1&quot; \necho &quot;$2&quot;  |  passwd  \u2010\u2010stdin  &quot;$1&quot;<\/code><\/pre>\n<p>3\u3001\u5907\u4efd\u65e5\u5fd7<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n# \u6bcf\u5468 5 \u4f7f\u7528 tar \u547d\u4ee4\u5907\u4efd\/var\/log \u4e0b\u7684\u6240\u6709\u65e5\u5fd7\u6587\u4ef6\n# vim  \/root\/logbak.sh\n# \u7f16\u5199\u5907\u4efd\u811a\u672c,\u5907\u4efd\u540e\u7684\u6587\u4ef6\u540d\u5305\u542b\u65e5\u671f\u6807\u7b7e,\u9632\u6b62\u540e\u9762\u7684\u5907\u4efd\u5c06\u524d\u9762\u7684\u5907\u4efd\u6570\u636e\u8986\u76d6\n# \u6ce8\u610f date \u547d\u4ee4\u9700\u8981\u4f7f\u7528\u53cd\u5f15\u53f7\u62ec\u8d77\u6765,\u53cd\u5f15\u53f7\u5728\u952e\u76d8&lt;tab&gt;\u952e\u4e0a\u9762\ntar  -czf  log-`date +%Y%m%d`.tar.gz  \/var\/log \n\n# crontab \u2010e  #\u7f16\u5199\u8ba1\u5212\u4efb\u52a1,\u6267\u884c\u5907\u4efd\u811a\u672c\n00  03  *  *  5  \/root\/logbak.sh<\/code><\/pre>\n<p>4\u3001\u4e00\u952e\u90e8\u7f72 LNMP(RPM \u5305\u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n# \u4e00\u952e\u90e8\u7f72 LNMP(RPM \u5305\u7248\u672c)\n# \u4f7f\u7528 yum \u5b89\u88c5\u90e8\u7f72 LNMP,\u9700\u8981\u63d0\u524d\u914d\u7f6e\u597d yum \u6e90,\u5426\u5219\u8be5\u811a\u672c\u4f1a\u5931\u8d25\n# \u672c\u811a\u672c\u4f7f\u7528\u4e8e centos7.2 \u6216 RHEL7.2\nyum \u2010y install httpd\nyum \u2010y install mariadb mariadb\u2010devel mariadb\u2010server\nyum \u2010y install php  php\u2010mysql\n\nsystemctl start httpd mariadb\nsystemctl enable httpd mariadb<\/code><\/pre>\n<p>5\u3001\u76d1\u63a7\u5185\u5b58\u548c\u78c1\u76d8\u5bb9\u91cf\uff0c\u5c0f\u4e8e\u7ed9\u5b9a\u503c\u65f6\u62a5\u8b66<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5b9e\u65f6\u76d1\u63a7\u672c\u673a\u5185\u5b58\u548c\u786c\u76d8\u5269\u4f59\u7a7a\u95f4,\u5269\u4f59\u5185\u5b58\u5c0f\u4e8e500M\u3001\u6839\u5206\u533a\u5269\u4f59\u7a7a\u95f4\u5c0f\u4e8e1000M\u65f6,\u53d1\u9001\u62a5\u8b66\u90ae\u4ef6\u7ed9root\u7ba1\u7406\u5458\n\n# \u63d0\u53d6\u6839\u5206\u533a\u5269\u4f59\u7a7a\u95f4\ndisk_size=$(df \/ | awk &#039;\/\\\/\/{print $4}&#039;)\n\n# \u63d0\u53d6\u5185\u5b58\u5269\u4f59\u7a7a\u95f4\nmem_size=$(free | awk &#039;\/Mem\/{print $4}&#039;)\nwhile :\ndo\n# \u6ce8\u610f\u5185\u5b58\u548c\u78c1\u76d8\u63d0\u53d6\u7684\u7a7a\u95f4\u5927\u5c0f\u90fd\u662f\u4ee5 Kb \u4e3a\u5355\u4f4d\nif  [  $disk_size -le 512000 -a $mem_size -le 1024000  ]\nthen\n    mail  \u2010s  &quot;Warning&quot;  root  &lt;&lt;EOF\n  Insufficient resources,\u8d44\u6e90\u4e0d\u8db3\nEOF\nfi\ndone<\/code><\/pre>\n<p>6\u3001\u731c\u6570\u5b57\u6e38\u620f<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u811a\u672c\u751f\u6210\u4e00\u4e2a 100 \u4ee5\u5185\u7684\u968f\u673a\u6570,\u63d0\u793a\u7528\u6237\u731c\u6570\u5b57,\u6839\u636e\u7528\u6237\u7684\u8f93\u5165,\u63d0\u793a\u7528\u6237\u731c\u5bf9\u4e86,\n# \u731c\u5c0f\u4e86\u6216\u731c\u5927\u4e86,\u76f4\u81f3\u7528\u6237\u731c\u5bf9\u811a\u672c\u7ed3\u675f\u3002\n\n# RANDOM \u4e3a\u7cfb\u7edf\u81ea\u5e26\u7684\u7cfb\u7edf\u53d8\u91cf,\u503c\u4e3a 0\u201032767\u7684\u968f\u673a\u6570\n# \u4f7f\u7528\u53d6\u4f59\u7b97\u6cd5\u5c06\u968f\u673a\u6570\u53d8\u4e3a 1\u2010100 \u7684\u968f\u673a\u6570\nnum=$[RANDOM%100+1]\necho &quot;$num&quot;\n\n# \u4f7f\u7528 read \u63d0\u793a\u7528\u6237\u731c\u6570\u5b57\n# \u4f7f\u7528 if \u5224\u65ad\u7528\u6237\u731c\u6570\u5b57\u7684\u5927\u5c0f\u5173\u7cfb:\u2010eq(\u7b49\u4e8e),\u2010ne(\u4e0d\u7b49\u4e8e),\u2010gt(\u5927\u4e8e),\u2010ge(\u5927\u4e8e\u7b49\u4e8e),\n# \u2010lt(\u5c0f\u4e8e),\u2010le(\u5c0f\u4e8e\u7b49\u4e8e)\nwhile  :\ndo\n  read -p &quot;\u8ba1\u7b97\u673a\u751f\u6210\u4e86\u4e00\u4e2a 1\u2010100 \u7684\u968f\u673a\u6570,\u4f60\u731c: &quot; cai\n    if [ $cai -eq $num ]\n    then\n         echo &quot;\u606d\u559c,\u731c\u5bf9\u4e86&quot;\n         exit\n      elif [ $cai -gt $num ]\n      then\n             echo &quot;Oops,\u731c\u5927\u4e86&quot;\n        else\n             echo &quot;Oops,\u731c\u5c0f\u4e86&quot;\n   fi\ndone<\/code><\/pre>\n<p>7\u3001\u68c0\u6d4b\u672c\u673a\u5f53\u524d\u7528\u6237\u662f\u5426\u4e3a\u8d85\u7ea7\u7ba1\u7406\u5458,\u5982\u679c\u662f\u7ba1\u7406\u5458,\u5219\u4f7f\u7528 yum \u5b89\u88c5 vsftpd,\u5982\u679c\u4e0d\u662f,\u5219\u63d0\u793a\u60a8\u975e\u7ba1\u7406\u5458(\u4f7f\u7528\u5b57\u4e32\u5bf9\u6bd4\u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u68c0\u6d4b\u672c\u673a\u5f53\u524d\u7528\u6237\u662f\u5426\u4e3a\u8d85\u7ea7\u7ba1\u7406\u5458,\u5982\u679c\u662f\u7ba1\u7406\u5458,\u5219\u4f7f\u7528 yum \u5b89\u88c5 vsftpd,\u5982\u679c\u4e0d\n# \u662f,\u5219\u63d0\u793a\u60a8\u975e\u7ba1\u7406\u5458(\u4f7f\u7528\u5b57\u4e32\u5bf9\u6bd4\u7248\u672c) \nif [ $USER == &quot;root&quot; ]\nthen\n  yum \u2010y install vsftpd\nelse\n    echo &quot;\u60a8\u4e0d\u662f\u7ba1\u7406\u5458,\u6ca1\u6709\u6743\u9650\u5b89\u88c5\u8f6f\u4ef6&quot;\nfi<\/code><\/pre>\n<p>8\u3001\u68c0\u6d4b\u672c\u673a\u5f53\u524d\u7528\u6237\u662f\u5426\u4e3a\u8d85\u7ea7\u7ba1\u7406\u5458,\u5982\u679c\u662f\u7ba1\u7406\u5458,\u5219\u4f7f\u7528 yum \u5b89\u88c5 vsftpd,\u5982\u679c\u4e0d\u662f,\u5219\u63d0\u793a\u60a8\u975e\u7ba1\u7406\u5458(\u4f7f\u7528 UID \u6570\u5b57\u5bf9\u6bd4\u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u68c0\u6d4b\u672c\u673a\u5f53\u524d\u7528\u6237\u662f\u5426\u4e3a\u8d85\u7ea7\u7ba1\u7406\u5458,\u5982\u679c\u662f\u7ba1\u7406\u5458,\u5219\u4f7f\u7528 yum \u5b89\u88c5 vsftpd,\u5982\u679c\u4e0d\n# \u662f,\u5219\u63d0\u793a\u60a8\u975e\u7ba1\u7406\u5458(\u4f7f\u7528 UID \u6570\u5b57\u5bf9\u6bd4\u7248\u672c)\nif [ $UID -eq 0 ];then\n    yum \u2010y install vsftpd\nelse\n    echo &quot;\u60a8\u4e0d\u662f\u7ba1\u7406\u5458,\u6ca1\u6709\u6743\u9650\u5b89\u88c5\u8f6f\u4ef6&quot;\nfi<\/code><\/pre>\n<p>9\u3001\u7f16\u5199\u811a\u672c:\u63d0\u793a\u7528\u6237\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801,\u811a\u672c\u81ea\u52a8\u521b\u5efa\u76f8\u5e94\u7684\u8d26\u6237\u53ca\u914d\u7f6e\u5bc6\u7801\u3002\u5982\u679c\u7528\u6237\u4e0d\u8f93\u5165\u8d26\u6237\u540d,\u5219\u63d0\u793a\u5fc5\u987b\u8f93\u5165\u8d26\u6237\u540d\u5e76\u9000\u51fa\u811a\u672c;\u5982\u679c\u7528\u6237\u4e0d\u8f93\u5165\u5bc6\u7801,\u5219\u7edf\u4e00\u4f7f\u7528\u9ed8\u8ba4\u7684 123456 \u4f5c\u4e3a\u9ed8\u8ba4\u5bc6\u7801\u3002<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u811a\u672c:\u63d0\u793a\u7528\u6237\u8f93\u5165\u7528\u6237\u540d\u548c\u5bc6\u7801,\u811a\u672c\u81ea\u52a8\u521b\u5efa\u76f8\u5e94\u7684\u8d26\u6237\u53ca\u914d\u7f6e\u5bc6\u7801\u3002\u5982\u679c\u7528\u6237\n# \u4e0d\u8f93\u5165\u8d26\u6237\u540d,\u5219\u63d0\u793a\u5fc5\u987b\u8f93\u5165\u8d26\u6237\u540d\u5e76\u9000\u51fa\u811a\u672c;\u5982\u679c\u7528\u6237\u4e0d\u8f93\u5165\u5bc6\u7801,\u5219\u7edf\u4e00\u4f7f\u7528\u9ed8\n# \u8ba4\u7684 123456 \u4f5c\u4e3a\u9ed8\u8ba4\u5bc6\u7801\u3002\n\nread -p &quot;\u8bf7\u8f93\u5165\u7528\u6237\u540d: &quot; user\n#\u4f7f\u7528\u2010z \u53ef\u4ee5\u5224\u65ad\u4e00\u4e2a\u53d8\u91cf\u662f\u5426\u4e3a\u7a7a,\u5982\u679c\u4e3a\u7a7a,\u63d0\u793a\u7528\u6237\u5fc5\u987b\u8f93\u5165\u8d26\u6237\u540d,\u5e76\u9000\u51fa\u811a\u672c,\u9000\u51fa\u7801\u4e3a 2\n#\u6ca1\u6709\u8f93\u5165\u7528\u6237\u540d\u811a\u672c\u9000\u51fa\u540e,\u4f7f\u7528$?\u67e5\u770b\u7684\u8fd4\u56de\u7801\u4e3a 2\nif [ -z $user ];then\n     echo &quot;\u60a8\u4e0d\u9700\u8f93\u5165\u8d26\u6237\u540d&quot;\n   exit 2\nfi\n#\u4f7f\u7528 stty \u2010echo \u5173\u95ed shell \u7684\u56de\u663e\u529f\u80fd\n#\u4f7f\u7528 stty  echo \u6253\u5f00 shell \u7684\u56de\u663e\u529f\u80fd\nstty -echo\nread -p &quot;\u8bf7\u8f93\u5165\u5bc6\u7801: &quot; pass\nstty echo\npass=${pass:\u2010123456}\nuseradd &quot;$user&quot;\necho &quot;$pass&quot; | passwd \u2010\u2010stdin &quot;$user&quot;<\/code><\/pre>\n<p>10\u3001\u8f93\u5165\u4e09\u4e2a\u6570\u5e76\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f9d\u6b21\u63d0\u793a\u7528\u6237\u8f93\u5165 3 \u4e2a\u6574\u6570,\u811a\u672c\u6839\u636e\u6570\u5b57\u5927\u5c0f\u4f9d\u6b21\u6392\u5e8f\u8f93\u51fa 3 \u4e2a\u6570\u5b57\nread -p &quot;\u8bf7\u8f93\u5165\u4e00\u4e2a\u6574\u6570:&quot; num1\nread -p &quot;\u8bf7\u8f93\u5165\u4e00\u4e2a\u6574\u6570:&quot; num2\nread -p &quot;\u8bf7\u8f93\u5165\u4e00\u4e2a\u6574\u6570:&quot; num3\n# \u4e0d\u7ba1\u8c01\u5927\u8c01\u5c0f,\u6700\u540e\u90fd\u6253\u5370 echo &quot;$num1,$num2,$num3&quot;\n# num1 \u4e2d\u6c38\u8fdc\u5b58\u6700\u5c0f\u7684\u503c,num2 \u4e2d\u6c38\u8fdc\u5b58\u4e2d\u95f4\u503c,num3 \u6c38\u8fdc\u5b58\u6700\u5927\u503c\n# \u5982\u679c\u8f93\u5165\u7684\u4e0d\u662f\u8fd9\u6837\u7684\u987a\u5e8f,\u5219\u6539\u53d8\u6570\u7684\u5b58\u50a8\u987a\u5e8f,\u5982:\u53ef\u4ee5\u5c06 num1 \u548c num2 \u7684\u503c\u5bf9\u8c03\ntmp=0\n# \u5982\u679c num1 \u5927\u4e8e num2,\u5c31\u628a num1 \u548c\u548c num2 \u7684\u503c\u5bf9\u8c03,\u786e\u4fdd num1 \u53d8\u91cf\u4e2d\u5b58\u7684\u662f\u6700\u5c0f\u503c\nif [ $num1 -gt $num2 ];then   \n  tmp=$num1\n  num1=$num2\n  num2=$tmp\nfi\n# \u5982\u679c num1 \u5927\u4e8e num3,\u5c31\u628a num1 \u548c num3 \u5bf9\u8c03,\u786e\u4fdd num1 \u53d8\u91cf\u4e2d\u5b58\u7684\u662f\u6700\u5c0f\u503c\nif [ $num1 -gt $num3 ];then   \n    tmp=$num1\n    num1=$num3\n    num3=$tmp\nfi\n# \u5982\u679c num2 \u5927\u4e8e num3,\u5c31\u628a num2 \u548c num3 \u5bf9\u6807,\u786e\u4fdd num2 \u53d8\u91cf\u4e2d\u5b58\u7684\u662f\u5c0f\u4e00\u70b9\u7684\u503c\nif [ $num2 -gt $num3 ];then\n    tmp=$num2\n    num2=$num3\n    num3=$tmp\nfi\necho &quot;\u6392\u5e8f\u540e\u6570\u636e(\u4ece\u5c0f\u5230\u5927)\u4e3a:$num1,$num2,$num3&quot;<\/code><\/pre>\n<p>11\u3001\u77f3\u5934\u3001\u526a\u5200\u3001\u5e03\u6e38\u620f<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u811a\u672c,\u5b9e\u73b0\u4eba\u673a&lt;\u77f3\u5934,\u526a\u5200,\u5e03&gt;\u6e38\u620f\ngame=(\u77f3\u5934 \u526a\u5200 \u5e03)\nnum=$[RANDOM%3]\ncomputer=${game[$num]}\n# \u901a\u8fc7\u968f\u673a\u6570\u83b7\u53d6\u8ba1\u7b97\u673a\u7684\u51fa\u62f3\n# \u51fa\u62f3\u7684\u53ef\u80fd\u6027\u4fdd\u5b58\u5728\u4e00\u4e2a\u6570\u7ec4\u4e2d,game[0],game[1],game[2]\u5206\u522b\u662f 3 \u4e2d\u4e0d\u540c\u7684\u53ef\u80fd\n\necho &quot;\u8bf7\u6839\u636e\u4e0b\u5217\u63d0\u793a\u9009\u62e9\u60a8\u7684\u51fa\u62f3\u624b\u52bf&quot;\necho &quot;1.\u77f3\u5934&quot;\necho &quot;2.\u526a\u5200&quot;\necho &quot;3.\u5e03&quot;\n\nread -p &quot;\u8bf7\u9009\u62e9 1\u20103:&quot; person\ncase  $person  in\n1)\n  if [ $num -eq 0 ]\n  then\n    echo &quot;\u5e73\u5c40&quot;\n    elif [ $num -eq 1 ]\n    then\n      echo &quot;\u4f60\u8d62&quot;\n  else\n    echo &quot;\u8ba1\u7b97\u673a\u8d62&quot;\n  fi;;\n2)   \n  if [ $num -eq 0 ]\n  then\n    echo &quot;\u8ba1\u7b97\u673a\u8d62&quot;\n    elif [ $num -eq 1 ]\n    then\n      echo &quot;\u5e73\u5c40&quot;\n  else\n    echo &quot;\u4f60\u8d62&quot;\n  fi;;\n3)\n  if [ $num -eq 0 ]\n  then\n    echo &quot;\u4f60\u8d62&quot;\n    elif [ $num -eq 1 ]\n    then\n      echo &quot;\u8ba1\u7b97\u673a\u8d62&quot;\n  else\n    echo &quot;\u5e73\u5c40&quot;\n  fi;;\n*)\n  echo &quot;\u5fc5\u987b\u8f93\u5165 1\u20103 \u7684\u6570\u5b57&quot;\nesac<\/code><\/pre>\n<p>12\u3001\u7f16\u5199\u811a\u672c\u6d4b\u8bd5 192.168.4.0\/24 \u6574\u4e2a\u7f51\u6bb5\u4e2d\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5f00\u673a\u72b6\u6001,\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5173\u673a\u72b6\u6001(for \u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u811a\u672c\u6d4b\u8bd5 192.168.4.0\/24 \u6574\u4e2a\u7f51\u6bb5\u4e2d\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5f00\u673a\u72b6\u6001,\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5173\u673a\n# \u72b6\u6001(for \u7248\u672c)\nfor i in {1..254}\ndo\n  # \u6bcf\u96940.3\u79d2ping\u4e00\u6b21\uff0c\u4e00\u5171ping2\u6b21\uff0c\u5e76\u4ee51\u6beb\u79d2\u4e3a\u5355\u4f4d\u8bbe\u7f6eping\u7684\u8d85\u65f6\u65f6\u95f4\n     ping \u2010c 2 \u2010i 0.3 \u2010W 1 192.168.4.$i  &amp;&gt;\/dev\/null\n    if  [ $? -eq 0 ];then\n         echo &quot;192.168.4.$i is up&quot;\n     else\n         echo  &quot;192.168.4.$i is down&quot;\n     fi\ndone<\/code><\/pre>\n<p>13\u3001\u7f16\u5199\u811a\u672c\u6d4b\u8bd5 192.168.4.0\/24 \u6574\u4e2a\u7f51\u6bb5\u4e2d\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5f00\u673a\u72b6\u6001,\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5173\u673a\u72b6\u6001(while \u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u811a\u672c\u6d4b\u8bd5 192.168.4.0\/24 \u6574\u4e2a\u7f51\u6bb5\u4e2d\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5f00\u673a\u72b6\u6001,\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5173\u673a\n# \u72b6\u6001(while \u7248\u672c) \ni=1\nwhile [ $i -le 254 ]\ndo\n     ping \u2010c 2 \u2010i 0.3 \u2010W 1 192.168.4.$i  &amp;&gt;\/dev\/null\n     if  [ $? -eq 0 ];then\n         echo &quot;192.168.4.$i is up&quot;\n    else\n         echo  &quot;192.168.4.$i is down&quot;\n     fi\n     let i++\ndone<\/code><\/pre>\n<p>14\u3001\u7f16\u5199\u811a\u672c\u6d4b\u8bd5 192.168.4.0\/24 \u6574\u4e2a\u7f51\u6bb5\u4e2d\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5f00\u673a\u72b6\u6001,\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5173\u673a\u72b6\u6001(\u591a\u8fdb\u7a0b\u7248)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u811a\u672c\u6d4b\u8bd5 192.168.4.0\/24 \u6574\u4e2a\u7f51\u6bb5\u4e2d\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5f00\u673a\u72b6\u6001,\u54ea\u4e9b\u4e3b\u673a\u5904\u4e8e\u5173\u673a\n# \u72b6\u6001(\u591a\u8fdb\u7a0b\u7248)\n\n#\u5b9a\u4e49\u4e00\u4e2a\u51fd\u6570,ping \u67d0\u4e00\u53f0\u4e3b\u673a,\u5e76\u68c0\u6d4b\u4e3b\u673a\u7684\u5b58\u6d3b\u72b6\u6001\nmyping(){\nping \u2010c 2 \u2010i 0.3 \u2010W 1 $1  &amp;&gt;\/dev\/null\nif  [ $? -eq 0 ];then\n  echo &quot;$1 is up&quot;\nelse\n  echo &quot;$1 is down&quot;\nfi\n}\nfor i in {1..254}\ndo\n     myping 192.168.4.$i &amp;\ndone\n# \u4f7f\u7528&amp;\u7b26\u53f7,\u5c06\u6267\u884c\u7684\u51fd\u6570\u653e\u5165\u540e\u53f0\u6267\u884c\n# \u8fd9\u6837\u505a\u7684\u597d\u5904\u662f\u4e0d\u9700\u8981\u7b49\u5f85ping\u7b2c\u4e00\u53f0\u4e3b\u673a\u7684\u56de\u5e94,\u5c31\u53ef\u4ee5\u7ee7\u7eed\u5e76\u53d1ping\u7b2c\u4e8c\u53f0\u4e3b\u673a,\u4f9d\u6b21\u7c7b\u63a8\u3002<\/code><\/pre>\n<p>15\u3001\u7f16\u5199\u811a\u672c,\u663e\u793a\u8fdb\u5ea6\u6761<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u811a\u672c,\u663e\u793a\u8fdb\u5ea6\u6761\njindu(){\nwhile :\ndo\n     echo -n &#039;#&#039;\n     sleep 0.2\ndone\n}\njindu &amp;\ncp -a $1 $2\nkillall $0\necho &quot;\u62f7\u8d1d\u5b8c\u6210&quot;<\/code><\/pre>\n<p>16\u3001\u8fdb\u5ea6\u6761,\u52a8\u6001\u65f6\u9488\u7248\u672c\uff1b\u5b9a\u4e49\u4e00\u4e2a\u663e\u793a\u8fdb\u5ea6\u7684\u51fd\u6570,\u5c4f\u5e55\u5feb\u901f\u663e\u793a| \/ \u2010 \\<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u8fdb\u5ea6\u6761,\u52a8\u6001\u65f6\u9488\u7248\u672c\n# \u5b9a\u4e49\u4e00\u4e2a\u663e\u793a\u8fdb\u5ea6\u7684\u51fd\u6570,\u5c4f\u5e55\u5feb\u901f\u663e\u793a|  \/ \u2010 \\\nrotate_line(){\nINTERVAL=0.5  #\u8bbe\u7f6e\u95f4\u9694\u65f6\u95f4\nCOUNT=&quot;0&quot;     #\u8bbe\u7f6e4\u4e2a\u5f62\u72b6\u7684\u7f16\u53f7,\u9ed8\u8ba4\u7f16\u53f7\u4e3a 0(\u4e0d\u4ee3\u8868\u4efb\u4f55\u56fe\u50cf)\nwhile :\ndo\n  COUNT=`expr $COUNT + 1` #\u6267\u884c\u5faa\u73af,COUNT \u6bcf\u6b21\u5faa\u73af\u52a0 1,(\u5206\u522b\u4ee3\u88684\u79cd\u4e0d\u540c\u7684\u5f62\u72b6)\n  case $COUNT in          #\u5224\u65ad COUNT \u7684\u503c,\u503c\u4e0d\u4e00\u6837\u663e\u793a\u7684\u5f62\u72b6\u5c31\u4e0d\u4e00\u6837\n  &quot;1&quot;)                    #\u503c\u4e3a 1 \u663e\u793a\u2010\n          echo -e &#039;\u2010&#039;&quot;\\b\\c&quot;\n          sleep $INTERVAL\n          ;;\n    &quot;2&quot;)                  #\u503c\u4e3a 2 \u663e\u793a\\\\,\u7b2c\u4e00\u4e2a\\\u662f\u8f6c\u4e49\n          echo -e &#039;\\\\&#039;&quot;\\b\\c&quot;\n          sleep $INTERVAL\n          ;;\n    &quot;3&quot;)                  #\u503c\u4e3a 3 \u663e\u793a|\n          echo -e &quot;|\\b\\c&quot;\n          sleep $INTERVAL\n          ;;\n   &quot;4&quot;)                   #\u503c\u4e3a 4 \u663e\u793a\/\n          echo -e &quot;\/\\b\\c&quot;\n          sleep $INTERVAL\n          ;;\n    *)                    #\u503c\u4e3a\u5176\u4ed6\u65f6,\u5c06 COUNT \u91cd\u7f6e\u4e3a 0\n          COUNT=&quot;0&quot;;;\n    esac\ndone\n}\nrotate_line<\/code><\/pre>\n<p>17\u30019*9 \u4e58\u6cd5\u8868<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# 9*9 \u4e58\u6cd5\u8868(\u7f16\u5199 shell \u811a\u672c,\u6253\u5370 9*9 \u4e58\u6cd5\u8868) \nfor i in `seq 9`\ndo\n    for j in `seq $i`\n     do\n         echo -n &quot;$j*$i=$[i*j]  &quot;\n     done\n    echo\ndone<\/code><\/pre>\n<p>18\u3001\u4f7f\u7528\u6b7b\u5faa\u73af\u5b9e\u65f6\u663e\u793a eth0 \u7f51\u5361\u53d1\u9001\u7684\u6570\u636e\u5305\u6d41\u91cf<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528\u6b7b\u5faa\u73af\u5b9e\u65f6\u663e\u793a eth0 \u7f51\u5361\u53d1\u9001\u7684\u6570\u636e\u5305\u6d41\u91cf \n\nwhile :\ndo\n   echo  &#039;\u672c\u5730\u7f51\u5361 eth0 \u6d41\u91cf\u4fe1\u606f\u5982\u4e0b: &#039;\n    ifconfig eth0 | grep &quot;RX pack&quot; | awk &#039;{print $5}&#039;\n    ifconfig eth0 | grep &quot;TX pack&quot; | awk &#039;{print $5}&#039;\n     sleep 1\ndone<\/code><\/pre>\n<p>19\u3001\u4f7f\u7528 user.txt \u6587\u4ef6\u4e2d\u7684\u4eba\u5458\u540d\u5355,\u5728\u8ba1\u7b97\u673a\u4e2d\u81ea\u52a8\u521b\u5efa\u5bf9\u5e94\u7684\u8d26\u6237\u5e76\u914d\u7f6e\u521d\u59cb\u5bc6\u7801\u672c\u811a\u672c\u6267\u884c,\u9700\u8981\u63d0\u524d\u51c6\u5907\u4e00\u4e2a user.txt \u6587\u4ef6,\u8be5\u6587\u4ef6\u4e2d\u5305\u542b\u6709\u82e5\u5e72\u7528\u6237\u540d\u4fe1\u606f<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528 user.txt \u6587\u4ef6\u4e2d\u7684\u4eba\u5458\u540d\u5355,\u5728\u8ba1\u7b97\u673a\u4e2d\u81ea\u52a8\u521b\u5efa\u5bf9\u5e94\u7684\u8d26\u6237\u5e76\u914d\u7f6e\u521d\u59cb\u5bc6\u7801\n# \u672c\u811a\u672c\u6267\u884c,\u9700\u8981\u63d0\u524d\u51c6\u5907\u4e00\u4e2a user.txt \u6587\u4ef6,\u8be5\u6587\u4ef6\u4e2d\u5305\u542b\u6709\u82e5\u5e72\u7528\u6237\u540d\u4fe1\u606f\nfor i in `cat user.txt`\ndo\n     useradd  $i\n     echo &quot;123456&quot; | passwd \u2010\u2010stdin $i\ndone<\/code><\/pre>\n<p>20\u3001\u7f16\u5199\u6279\u91cf\u4fee\u6539\u6269\u5c55\u540d\u811a\u672c<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u6279\u91cf\u4fee\u6539\u6269\u5c55\u540d\u811a\u672c,\u5982\u6279\u91cf\u5c06 txt \u6587\u4ef6\u4fee\u6539\u4e3a doc \u6587\u4ef6 \n# \u6267\u884c\u811a\u672c\u65f6,\u9700\u8981\u7ed9\u811a\u672c\u6dfb\u52a0\u4f4d\u7f6e\u53c2\u6570\n# \u811a\u672c\u540d  txt  doc(\u53ef\u4ee5\u5c06 txt \u7684\u6269\u5c55\u540d\u4fee\u6539\u4e3a doc)\n# \u811a\u672c\u540d  doc  jpg(\u53ef\u4ee5\u5c06 doc \u7684\u6269\u5c55\u540d\u4fee\u6539\u4e3a jpg)\n\nfor i in `ls *.$1`\ndo\n     mv $i ${i%.*}.$2\ndone<\/code><\/pre>\n<p>21\u3001\u4f7f\u7528 expect \u5de5\u5177\u81ea\u52a8\u4ea4\u4e92\u5bc6\u7801\u8fdc\u7a0b\u5176\u4ed6\u4e3b\u673a\u5b89\u88c5 httpd \u8f6f\u4ef6<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528 expect \u5de5\u5177\u81ea\u52a8\u4ea4\u4e92\u5bc6\u7801\u8fdc\u7a0b\u5176\u4ed6\u4e3b\u673a\u5b89\u88c5 httpd \u8f6f\u4ef6 \n\n# \u5220\u9664~\/.ssh\/known_hosts \u540e,ssh \u8fdc\u7a0b\u4efb\u4f55\u4e3b\u673a\u90fd\u4f1a\u8be2\u95ee\u662f\u5426\u786e\u8ba4\u8981\u8fde\u63a5\u8be5\u4e3b\u673a\nrm  \u2010rf  ~\/.ssh\/known_hosts\nexpect &lt;&lt;EOF\nspawn ssh 192.168.4.254\nexpect &quot;yes\/no&quot; {send &quot;yes\\r&quot;}\n# \u6839\u636e\u81ea\u5df1\u7684\u5b9e\u9645\u60c5\u51b5\u5c06\u5bc6\u7801\u4fee\u6539\u4e3a\u771f\u5b9e\u7684\u5bc6\u7801\u5b57\u4e32\nexpect &quot;password&quot; {send  &quot;\u5bc6\u7801\\r&quot;}\nexpect &quot;#&quot; {send  &quot;yum \u2010y install httpd\\r&quot;}\nexpect &quot;#&quot; {send  &quot;exit\\r&quot;}\nEOF<\/code><\/pre>\n<p>22\u3001\u4e00\u952e\u90e8\u7f72 LNMP(\u6e90\u7801\u5b89\u88c5\u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4e00\u952e\u90e8\u7f72 LNMP(\u6e90\u7801\u5b89\u88c5\u7248\u672c)\nmenu()\n{\nclear\necho &quot;  ##############\u2010\u2010\u2010\u2010Menu\u2010\u2010\u2010\u2010##############&quot;\necho &quot;# 1. Install Nginx&quot;\necho &quot;# 2. Install MySQL&quot;\necho &quot;# 3. Install PHP&quot;\necho &quot;# 4. Exit Program&quot;\necho &quot;  ########################################&quot;\n}\n\nchoice()\n{\n  read -p &quot;Please choice a menu[1\u20109]:&quot; select\n}\n\ninstall_nginx()\n{\n  id nginx &amp;&gt;\/dev\/null\n  if [ $? -ne 0 ];then\n    useradd -s \/sbin\/nologin nginx\n  fi\n  if [ -f nginx\u20101.8.0.tar.gz ];then\n    tar -xf nginx\u20101.8.0.tar.gz\n    cd nginx\u20101.8.0\n    yum -y install  gcc pcre\u2010devel openssl\u2010devel zlib\u2010devel make\n    .\/configure \u2010\u2010prefix=\/usr\/local\/nginx \u2010\u2010with\u2010http_ssl_module\n    make\n    make install\n    ln -s \/usr\/local\/nginx\/sbin\/nginx \/usr\/sbin\/\n    cd ..\n  else\n    echo &quot;\u6ca1\u6709 Nginx \u6e90\u7801\u5305&quot;\n  fi\n}\n\ninstall_mysql()\n{\n  yum -y install gcc gcc\u2010c++ cmake ncurses\u2010devel perl\n  id mysql &amp;&gt;\/dev\/null\n  if [ $? -ne 0 ];then\n    useradd -s \/sbin\/nologin mysql\n  fi\n  if [ -f mysql\u20105.6.25.tar.gz ];then\n    tar -xf mysql\u20105.6.25.tar.gz\n    cd mysql\u20105.6.25\n    cmake .\n    make\n    make install\n    \/usr\/local\/mysql\/scripts\/mysql_install_db \u2010\u2010user=mysql \u2010\u2010datadir=\/usr\/local\/mysql\/data\/\n\u2010\u2010basedir=\/usr\/local\/mysql\/\n    chown -R root.mysql \/usr\/local\/mysql\n    chown -R mysql \/usr\/local\/mysql\/data\n    \/bin\/cp -f \/usr\/local\/mysql\/support\u2010files\/mysql.server \/etc\/init.d\/mysqld\n    chmod +x \/etc\/init.d\/mysqld\n    \/bin\/cp -f \/usr\/local\/mysql\/support\u2010files\/my\u2010default.cnf \/etc\/my.cnf\n    echo &quot;\/usr\/local\/mysql\/lib\/&quot; &gt;&gt; \/etc\/ld.so.conf\n    ldconfig\n    echo &#039;PATH=\\$PATH:\/usr\/local\/mysql\/bin\/&#039; &gt;&gt; \/etc\/profile\n    export PATH\n  else\n    echo  &quot;\u6ca1\u6709 mysql \u6e90\u7801\u5305&quot;\n    exit\n  fi\n}\n\ninstall_php()\n{\n#\u5b89\u88c5 php \u65f6\u6ca1\u6709\u6307\u5b9a\u542f\u52a8\u54ea\u4e9b\u6a21\u5757\u529f\u80fd,\u5982\u679c\u7684\u7528\u6237\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u81ea\u884c\u6dfb\u52a0\u989d\u5916\u529f\u80fd\u5982\u2010\u2010with\u2010gd \u7b49\nyum  -y  install  gcc  libxml2\u2010devel\nif [ -f mhash\u20100.9.9.9.tar.gz ];then\n  tar -xf mhash\u20100.9.9.9.tar.gz\n  cd mhash\u20100.9.9.9\n  .\/configure\n  make\n  make install\n  cd ..\nif [ ! \u2010f \/usr\/lib\/libmhash.so ];then\n  ln -s \/usr\/local\/lib\/libmhash.so \/usr\/lib\/\nfi\nldconfig\nelse\n  echo &quot;\u6ca1\u6709 mhash \u6e90\u7801\u5305\u6587\u4ef6&quot;\n  exit\nfi\nif [ -f libmcrypt\u20102.5.8.tar.gz ];then\n  tar -xf libmcrypt\u20102.5.8.tar.gz\n  cd libmcrypt\u20102.5.8\n  .\/configure\n  make\n  make install\n  cd ..\n  if [ ! -f \/usr\/lib\/libmcrypt.so ];then  \n    ln -s \/usr\/local\/lib\/libmcrypt.so \/usr\/lib\/\n  fi\n  ldconfig\nelse\n  echo &quot;\u6ca1\u6709 libmcrypt \u6e90\u7801\u5305\u6587\u4ef6&quot;\n  exit\nfi\nif [ -f php\u20105.4.24.tar.gz ];then\n  tar -xf php\u20105.4.24.tar.gz\n  cd php\u20105.4.24\n  .\/configure  \u2010\u2010prefix=\/usr\/local\/php5  \u2010\u2010with\u2010mysql=\/usr\/local\/mysql  \u2010\u2010enable\u2010fpm    \u2010\u2010\n  enable\u2010mbstring  \u2010\u2010with\u2010mcrypt  \u2010\u2010with\u2010mhash  \u2010\u2010with\u2010config\u2010file\u2010path=\/usr\/local\/php5\/etc  \u2010\u2010with\u2010\n  mysqli=\/usr\/local\/mysql\/bin\/mysql_config\n  make &amp;&amp; make install\n  \/bin\/cp -f php.ini\u2010production \/usr\/local\/php5\/etc\/php.ini\n  \/bin\/cp -f \/usr\/local\/php5\/etc\/php\u2010fpm.conf.default \/usr\/local\/php5\/etc\/php\u2010fpm.conf\n  cd ..\nelse\n  echo &quot;\u6ca1\u6709 php \u6e90\u7801\u5305\u6587\u4ef6&quot;\n  exit\nfi \n}\n\nwhile :\ndo\n  menu\n  choice\n  case $select in\n  1)\n    install_nginx\n    ;;\n  2)\n    install_mysql\n    ;;\n  3)\n    install_php\n    ;;\n  4)\n    exit\n    ;;\n  *)\n    echo Sorry!\n  esac\ndone<\/code><\/pre>\n<p>23\u3001\u7f16\u5199\u811a\u672c\u5feb\u901f\u514b\u9686 KVM \u865a\u62df\u673a<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u811a\u672c\u5feb\u901f\u514b\u9686 KVM \u865a\u62df\u673a\n\n# \u672c\u811a\u672c\u9488\u5bf9 RHEL7.2 \u6216 Centos7.2\n# \u672c\u811a\u672c\u9700\u8981\u63d0\u524d\u51c6\u5907\u4e00\u4e2a qcow2 \u683c\u5f0f\u7684\u865a\u62df\u673a\u6a21\u677f,\n# \u540d\u79f0\u4e3a\/var\/lib\/libvirt\/images  \/.rh7_template \u7684\u865a\u62df\u673a\u6a21\u677f\n# \u8be5\u811a\u672c\u4f7f\u7528 qemu\u2010img \u547d\u4ee4\u5feb\u901f\u521b\u5efa\u5feb\u7167\u865a\u62df\u673a\n# \u811a\u672c\u4f7f\u7528 sed \u4fee\u6539\u6a21\u677f\u865a\u62df\u673a\u7684\u914d\u7f6e\u6587\u4ef6,\u5c06\u865a\u62df\u673a\u540d\u79f0\u3001UUID\u3001\u78c1\u76d8\u6587\u4ef6\u540d\u3001MAC \u5730\u5740\n# exit code:  \n#    65 \u2010&gt; user input nothing\n#    66 \u2010&gt; user input is not a number\n#    67 \u2010&gt; user input out of range\n#    68 \u2010&gt; vm disk image exists\n\nIMG_DIR=\/var\/lib\/libvirt\/images\nBASEVM=rh7_template\nread -p &quot;Enter VM number: &quot; VMNUM\nif [ $VMNUM -le 9 ];then\nVMNUM=0$VMNUM\nfi\n\nif [ -z &quot;${VMNUM}&quot; ]; then\n    echo &quot;You must input a number.&quot;\n    exit 65\nelif [[  ${VMNUM} =~ [a\u2010z]  ]; then\n    echo &quot;You must input a number.&quot;\n    exit 66\nelif [ ${VMNUM} -lt 1 -o ${VMNUM} -gt 99 ]; then\n    echo &quot;Input out of range&quot;\n    exit 67\nfi\n\nNEWVM=rh7_node${VMNUM}\n\nif [ -e $IMG_DIR\/${NEWVM}.img ]; then\n    echo &quot;File exists.&quot;\n    exit 68\nfi\n\necho -en &quot;Creating Virtual Machine disk image......\\t&quot;\nqemu\u2010img create -f qcow2 \u2010b $IMG_DIR\/.${BASEVM}.img $IMG_DIR\/${NEWVM}.img &amp;&gt; \/dev\/null\n\necho -e &quot;\\e[32;1m[OK]\\e[0m&quot;\n\n#virsh dumpxml ${BASEVM} &gt; \/tmp\/myvm.xml\ncat \/var\/lib\/libvirt\/images\/.rhel7.xml &gt; \/tmp\/myvm.xml\nsed -i &quot;\/&lt;name&gt;${BASEVM}\/s\/${BASEVM}\/${NEWVM}\/&quot; \/tmp\/myvm.xml\nsed -i &quot;\/uuid\/s\/&lt;uuid&gt;.*&lt;\\\/uuid&gt;\/&lt;uuid&gt;$(uuidgen)&lt;\\\/uuid&gt;\/&quot; \/tmp\/myvm.xml\nsed -i &quot;\/${BASEVM}\\.img\/s\/${BASEVM}\/${NEWVM}\/&quot; \/tmp\/myvm.xml\n\n# \u4fee\u6539 MAC \u5730\u5740,\u672c\u4f8b\u4f7f\u7528\u7684\u662f\u5e38\u91cf,\u6bcf\u4f4d\u4f7f\u7528\u8be5\u811a\u672c\u7684\u7528\u6237\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u8fd9\u4e9b\u503c \n# \u6700\u597d\u8fd9\u91cc\u53ef\u4ee5\u4f7f\u7528\u4fbf\u5229,\u8fd9\u6837\u66f4\u9002\u5408\u4e8e\u6279\u91cf\u64cd\u4f5c,\u53ef\u4ee5\u514b\u9686\u66f4\u591a\u865a\u62df\u673a \nsed -i &quot;\/mac \/s\/a1\/0c\/&quot; \/tmp\/myvm.xml\n\necho -en &quot;Defining new virtual machine......\\t\\t&quot;\nvirsh define \/tmp\/myvm.xml &amp;&gt; \/dev\/null\necho -e &quot;\\e[32;1m[OK]\\e[0m&quot;<\/code><\/pre>\n<p>24\u3001\u70b9\u540d\u5668\u811a\u672c<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199\u4e00\u4e2a\u70b9\u540d\u5668\u811a\u672c\n\n# \u8be5\u811a\u672c,\u9700\u8981\u63d0\u524d\u51c6\u5907\u4e00\u4e2a user.txt \u6587\u4ef6\n# \u8be5\u6587\u4ef6\u4e2d\u9700\u8981\u5305\u542b\u6240\u6709\u59d3\u540d\u7684\u4fe1\u606f,\u4e00\u884c\u4e00\u4e2a\u59d3\u540d,\u811a\u672c\u6bcf\u6b21\u968f\u673a\u663e\u793a\u4e00\u4e2a\u59d3\u540d\nwhile :\ndo\n#\u7edf\u8ba1 user \u6587\u4ef6\u4e2d\u6709\u591a\u5c11\u7528\u6237\nline=`cat user.txt |wc \u2010l`\nnum=$[RANDOM%line+1]\nsed -n &quot;${num}p&quot;  user.txt\nsleep 0.2\nclear\ndone<\/code><\/pre>\n<p>25\u3001\u67e5\u770b\u6709\u591a\u5c11\u8fdc\u7a0b\u7684 IP \u5728\u8fde\u63a5\u672c\u673a<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u67e5\u770b\u6709\u591a\u5c11\u8fdc\u7a0b\u7684 IP \u5728\u8fde\u63a5\u672c\u673a(\u4e0d\u7ba1\u662f\u901a\u8fc7 ssh \u8fd8\u662f web \u8fd8\u662f ftp \u90fd\u7edf\u8ba1) \n\n# \u4f7f\u7528 netstat \u2010atn \u53ef\u4ee5\u67e5\u770b\u672c\u673a\u6240\u6709\u8fde\u63a5\u7684\u72b6\u6001,\u2010a \u67e5\u770b\u6240\u6709,\n# -t\u4ec5\u663e\u793a tcp \u8fde\u63a5\u7684\u4fe1\u606f,\u2010n \u6570\u5b57\u683c\u5f0f\u663e\u793a\n# Local Address(\u7b2c\u56db\u5217\u662f\u672c\u673a\u7684 IP \u548c\u7aef\u53e3\u4fe1\u606f)\n# Foreign Address(\u7b2c\u4e94\u5217\u662f\u8fdc\u7a0b\u4e3b\u673a\u7684 IP \u548c\u7aef\u53e3\u4fe1\u606f)\n# \u4f7f\u7528 awk \u547d\u4ee4\u4ec5\u663e\u793a\u7b2c 5 \u5217\u6570\u636e,\u518d\u663e\u793a\u7b2c 1 \u5217 IP \u5730\u5740\u7684\u4fe1\u606f\n# sort \u53ef\u4ee5\u6309\u6570\u5b57\u5927\u5c0f\u6392\u5e8f,\u6700\u540e\u4f7f\u7528 uniq \u5c06\u591a\u4f59\u91cd\u590d\u7684\u5220\u9664,\u5e76\u7edf\u8ba1\u91cd\u590d\u7684\u6b21\u6570\nnetstat -atn  |  awk  &#039;{print $5}&#039;  | awk  &#039;{print $1}&#039; | sort -nr  |  uniq -c<\/code><\/pre>\n<p>26\u3001\u5bf9 100 \u4ee5\u5185\u7684\u6240\u6709\u6b63\u6574\u6570\u76f8\u52a0\u6c42\u548c(1+2+3+4...+100)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5bf9 100 \u4ee5\u5185\u7684\u6240\u6709\u6b63\u6574\u6570\u76f8\u52a0\u6c42\u548c(1+2+3+4...+100)\n\n#seq 100 \u53ef\u4ee5\u5feb\u901f\u81ea\u52a8\u751f\u6210 100 \u4e2a\u6574\u6570\nsum=0\nfor i in `seq 100`\ndo\n    sum=$[sum+i]\ndone\necho &quot;\u603b\u548c\u662f:$sum&quot;<\/code><\/pre>\n<p>27\u3001\u7edf\u8ba1 13:30 \u5230 14:30 \u6240\u6709\u8bbf\u95ee apache \u670d\u52a1\u5668\u7684\u8bf7\u6c42\u6709\u591a\u5c11\u4e2a<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7edf\u8ba1 13:30 \u5230 14:30 \u6240\u6709\u8bbf\u95ee apache \u670d\u52a1\u5668\u7684\u8bf7\u6c42\u6709\u591a\u5c11\u4e2a\n\n# awk \u4f7f\u7528\u2010F \u9009\u9879\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u7684\u5206\u9694\u7b26\u662f\/\u6216\u8005:\n# \u6761\u4ef6\u5224\u65ad$7:$8 \u5927\u4e8e\u7b49\u4e8e 13:30,\u5e76\u4e14\u8981\u6c42,$7:$8 \u5c0f\u4e8e\u7b49\u4e8e 14:30\n# \u6700\u540e\u4f7f\u7528 wc \u2010l \u7edf\u8ba1\u8fd9\u6837\u7684\u6570\u636e\u6709\u591a\u5c11\u884c,\u5373\u591a\u5c11\u4e2a\nawk -F &quot;[ \/:]&quot; &#039;$7&quot;:&quot;$8&gt;=&quot;13:30&quot; &amp;&amp; $7&quot;:&quot;$8&lt;=&quot;14:30&quot;&#039; \/var\/log\/httpd\/access_log |wc -l<\/code><\/pre>\n<p>28\u3001\u7edf\u8ba1 13:30 \u5230 14:30 \u6240\u6709\u8bbf\u95ee\u672c\u673a Aapche \u670d\u52a1\u5668\u7684\u8fdc\u7a0b IP \u5730\u5740\u662f\u4ec0\u4e48<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7edf\u8ba1 13:30 \u5230 14:30 \u6240\u6709\u8bbf\u95ee\u672c\u673a Aapche \u670d\u52a1\u5668\u7684\u8fdc\u7a0b IP \u5730\u5740\u662f\u4ec0\u4e48 \n# awk \u4f7f\u7528\u2010F \u9009\u9879\u6307\u5b9a\u6587\u4ef6\u5185\u5bb9\u7684\u5206\u9694\u7b26\u662f\/\u6216\u8005:\n# \u6761\u4ef6\u5224\u65ad$7:$8 \u5927\u4e8e\u7b49\u4e8e 13:30,\u5e76\u4e14\u8981\u6c42,$7:$8 \u5c0f\u4e8e\u7b49\u4e8e 14:30\n# \u65e5\u5fd7\u6587\u6863\u5185\u5bb9\u91cc\u9762,\u7b2c 1 \u5217\u662f\u8fdc\u7a0b\u4e3b\u673a\u7684 IP \u5730\u5740,\u4f7f\u7528 awk \u5355\u72ec\u663e\u793a\u7b2c 1 \u5217\u5373\u53ef\nawk -F &quot;[ \/:]&quot; &#039;$7&quot;:&quot;$8&gt;=&quot;13:30&quot; &amp;&amp; $7&quot;:&quot;$8&lt;=&quot;14:30&quot;{print $1}&#039; \/var\/log\/httpd\/access_log<\/code><\/pre>\n<p>29\u3001\u6253\u5370\u56fd\u9645\u8c61\u68cb\u68cb\u76d8<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u6253\u5370\u56fd\u9645\u8c61\u68cb\u68cb\u76d8\n# \u8bbe\u7f6e\u4e24\u4e2a\u53d8\u91cf,i \u548c j,\u4e00\u4e2a\u4ee3\u8868\u884c,\u4e00\u4e2a\u4ee3\u8868\u5217,\u56fd\u9645\u8c61\u68cb\u4e3a 8*8 \u68cb\u76d8\n# i=1 \u662f\u4ee3\u8868\u51c6\u5907\u6253\u5370\u7b2c\u4e00\u884c\u68cb\u76d8,\u7b2c 1 \u884c\u68cb\u76d8\u6709\u7070\u8272\u548c\u84dd\u8272\u95f4\u9694\u8f93\u51fa,\u603b\u5171\u4e3a 8 \u5217\n# i=1,j=1 \u4ee3\u8868\u7b2c 1 \u884c\u7684\u7b2c 1 \u5217;i=2,j=3 \u4ee3\u8868\u7b2c 2 \u884c\u7684\u7b2c 3 \u5217\n# \u68cb\u76d8\u7684\u89c4\u5f8b\u662f i+j \u5982\u679c\u662f\u5076\u6570,\u5c31\u6253\u5370\u84dd\u8272\u8272\u5757,\u5982\u679c\u662f\u5947\u6570\u5c31\u6253\u5370\u7070\u8272\u8272\u5757\n# \u4f7f\u7528 echo \u2010ne \u6253\u5370\u8272\u5757,\u5e76\u4e14\u6253\u5370\u5b8c\u6210\u8272\u5757\u540e\u4e0d\u81ea\u52a8\u6362\u884c,\u5728\u540c\u4e00\u884c\u7ee7\u7eed\u8f93\u51fa\u5176\u4ed6\u8272\u5757\nfor i in {1..8}\ndo\n    for j in {1..8}\n    do\n      sum=$[i+j]\n    if [  $[sum%2] -eq 0 ];then\n       echo -ne &quot;\\033[46m  \\033[0m&quot;\n    else\n      echo -ne &quot;\\033[47m  \\033[0m&quot;\n    fi\n    done\n    echo\ndone<\/code><\/pre>\n<p>30\u3001\u7edf\u8ba1\u6bcf\u4e2a\u8fdc\u7a0b IP \u8bbf\u95ee\u4e86\u672c\u673a apache \u51e0\u6b21?<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7edf\u8ba1\u6bcf\u4e2a\u8fdc\u7a0b IP \u8bbf\u95ee\u4e86\u672c\u673a apache \u51e0\u6b21? \nawk  &#039;{ip[$1]++}END{for(i in ip){print ip[i],i}}&#039;  \/var\/log\/httpd\/access_log<\/code><\/pre>\n<p>31\u3001\u7edf\u8ba1\u5f53\u524d Linux \u7cfb\u7edf\u4e2d\u53ef\u4ee5\u767b\u5f55\u8ba1\u7b97\u673a\u7684\u8d26\u6237\u6709\u591a\u5c11\u4e2a<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7edf\u8ba1\u5f53\u524d Linux \u7cfb\u7edf\u4e2d\u53ef\u4ee5\u767b\u5f55\u8ba1\u7b97\u673a\u7684\u8d26\u6237\u6709\u591a\u5c11\u4e2a\n#\u65b9\u6cd5 1:\ngrep &quot;bash$&quot; \/etc\/passwd | wc -l\n#\u65b9\u6cd5 2:\nawk -f: &#039;\/bash$\/{x++}end{print x}&#039;  \/etc\/passwd<\/code><\/pre>\n<p>32\u3001\u7edf\u8ba1\/var\/log \u6709\u591a\u5c11\u4e2a\u6587\u4ef6,\u5e76\u663e\u793a\u8fd9\u4e9b\u6587\u4ef6\u540d<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7edf\u8ba1\/var\/log \u6709\u591a\u5c11\u4e2a\u6587\u4ef6,\u5e76\u663e\u793a\u8fd9\u4e9b\u6587\u4ef6\u540d \n# \u4f7f\u7528 ls \u9012\u5f52\u663e\u793a\u6240\u6709,\u518d\u5224\u65ad\u662f\u5426\u4e3a\u6587\u4ef6,\u5982\u679c\u662f\u6587\u4ef6\u5219\u8ba1\u6570\u5668\u52a0 1\ncd  \/var\/log\nsum=0\nfor i in `ls -r *`\ndo\n   if [ -f $i ];then\n       let sum++\n         echo &quot;\u6587\u4ef6\u540d:$i&quot;\n     fi\ndone\necho &quot;\u603b\u6587\u4ef6\u6570\u91cf\u4e3a:$sum&quot;<\/code><\/pre>\n<p>33\u3001\u81ea\u52a8\u4e3a\u5176\u4ed6\u811a\u672c\u6dfb\u52a0\u89e3\u91ca\u5668\u4fe1\u606f<\/p>\n<p><a href=\"http:\/\/mp.weixin.qq.com\/s?__biz=MzAwNTM5Njk3Mw==&amp;mid=2247506725&amp;idx=2&amp;sn=cb0395b93925ce3a06edf60d7ca7d2c1&amp;chksm=9b1fdba7ac6852b182a5907c301fc9df85497315989ee99c4fbc2a88fad84a6032783b3524b0&amp;scene=21#wechat_redirect\">Docker+K8s+Jenkins \u4e3b\u6d41\u6280\u672f\u5168\u89e3\u89c6\u9891\u8d44\u6599\u3010\u5e72\u8d27\u514d\u8d39\u5206\u4eab\u3011<\/a><\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u81ea\u52a8\u4e3a\u5176\u4ed6\u811a\u672c\u6dfb\u52a0\u89e3\u91ca\u5668\u4fe1\u606f#!\/bin\/bash,\u5982\u811a\u672c\u540d\u4e3a test.sh \u5219\u6548\u679c\u5982\u4e0b: \n# .\/test.sh  abc.sh  \u81ea\u52a8\u4e3a abc.sh \u6dfb\u52a0\u89e3\u91ca\u5668\u4fe1\u606f\n# .\/test.sh  user.sh  \u81ea\u52a8\u4e3a user.sh \u6dfb\u52a0\u89e3\u91ca\u5668\u4fe1\u606f\n\n# \u5148\u4f7f\u7528 grep \u5224\u65ad\u5bf9\u8c61\u811a\u672c\u662f\u5426\u5df2\u7ecf\u6709\u89e3\u91ca\u5668\u4fe1\u606f,\u5982\u679c\u6ca1\u6709\u5219\u4f7f\u7528 sed \u6dfb\u52a0\u89e3\u91ca\u5668\u4ee5\u53ca\u63cf\u8ff0\u4fe1\u606f\nif  !  grep  -q  &quot;^#!&quot;  $1; then\nsed  &#039;1i #!\/bin\/bash&#039;  $1\nsed  &#039;2i #Description: &#039;\nfi\n# \u56e0\u4e3a\u6bcf\u4e2a\u811a\u672c\u7684\u529f\u80fd\u4e0d\u540c,\u4f5c\u7528\u4e0d\u540c,\u6240\u4ee5\u5728\u7ed9\u5bf9\u8c61\u811a\u672c\u6dfb\u52a0\u5b8c\u89e3\u91ca\u5668\u4fe1\u606f,\u4ee5\u53ca Description \u540e\u8fd8\u5e0c\u671b\n# \u7ee7\u7eed\u7f16\u8f91\u5177\u4f53\u7684\u811a\u672c\u529f\u80fd\u7684\u63cf\u8ff0\u4fe1\u606f,\u8fd9\u91cc\u76f4\u63a5\u4f7f\u7528 vim \u628a\u5bf9\u8c61\u811a\u672c\u6253\u5f00,\u5e76\u4e14\u5149\u6807\u8df3\u8f6c\u5230\u8be5\u6587\u4ef6\u7684\u7b2c 2 \u884c\nvim +2 $1<\/code><\/pre>\n<p>34\u3001\u81ea\u52a8\u5316\u90e8\u7f72 varnish \u6e90\u7801\u5305\u8f6f\u4ef6<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u81ea\u52a8\u5316\u90e8\u7f72 varnish \u6e90\u7801\u5305\u8f6f\u4ef6 \n# \u672c\u811a\u672c\u9700\u8981\u63d0\u524d\u4e0b\u8f7d varnish\u20103.0.6.tar.gz \u8fd9\u6837\u4e00\u4e2a\u6e90\u7801\u5305\u8f6f\u4ef6,\u8be5\u811a\u672c\u5373\u53ef\u7528\u81ea\u52a8\u6e90\u7801\u5b89\u88c5\u90e8\u7f72\u8f6f\u4ef6\n\nyum -y install gcc readline\u2010devel pcre\u2010devel\nuseradd -s \/sbin\/nologin varnish\ntar -xf varnish\u20103.0.6.tar.gz\ncd varnish\u20103.0.6\n\n# \u4f7f\u7528 configure,make,make install \u6e90\u7801\u5b89\u88c5\u8f6f\u4ef6\u5305\n.\/configure \u2010\u2010prefix=\/usr\/local\/varnish\nmake &amp;&amp; make install\n\n# \u5728\u6e90\u7801\u5305\u76ee\u5f55\u4e0b,\u5c06\u76f8\u5e94\u7684\u914d\u7f6e\u6587\u4ef6\u62f7\u8d1d\u5230 Linux \u7cfb\u7edf\u6587\u4ef6\u7cfb\u7edf\u4e2d\n# \u9ed8\u8ba4\u5b89\u88c5\u5b8c\u6210\u540e,\u4e0d\u4f1a\u81ea\u52a8\u62f7\u8d1d\u6216\u5b89\u88c5\u914d\u7f6e\u6587\u4ef6\u5230 Linux \u7cfb\u7edf,\u6240\u4ee5\u9700\u8981\u624b\u52a8 cp \u590d\u5236\u914d\u7f6e\u6587\u4ef6\n# \u5e76\u4f7f\u7528 uuidgen \u751f\u6210\u4e00\u4e2a\u968f\u673a\u5bc6\u94a5\u7684\u914d\u7f6e\u6587\u4ef6\n\ncp redhat\/varnish.initrc \/etc\/init.d\/varnish\ncp redhat\/varnish.sysconfig \/etc\/sysconfig\/varnish\ncp redhat\/varnish_reload_vcl \/usr\/bin\/\nln -s \/usr\/local\/varnish\/sbin\/varnishd \/usr\/sbin\/\nln -s \/usr\/local\/varnish\/bin\/* \/usr\/bin\nmkdir \/etc\/varnish\ncp \/usr\/local\/varnish\/etc\/varnish\/default.vcl \/etc\/varnish\/\nuuidgen &gt; \/etc\/varnish\/secret<\/code><\/pre>\n<p>35\u3001\u7f16\u5199 nginx \u542f\u52a8\u811a\u672c<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7f16\u5199 nginx \u542f\u52a8\u811a\u672c \n# \u672c\u811a\u672c\u7f16\u5199\u5b8c\u6210\u540e,\u653e\u7f6e\u5728\/etc\/init.d\/\u76ee\u5f55\u4e0b,\u5c31\u53ef\u4ee5\u88ab Linux \u7cfb\u7edf\u81ea\u52a8\u8bc6\u522b\u5230\u8be5\u811a\u672c\n# \u5982\u679c\u672c\u811a\u672c\u540d\u4e3a\/etc\/init.d\/nginx,\u5219 service nginx start \u5c31\u53ef\u4ee5\u542f\u52a8\u8be5\u670d\u52a1\n# service nginx stop \u5c31\u53ef\u4ee5\u5173\u95ed\u670d\u52a1\n# service nginx restart \u53ef\u4ee5\u91cd\u542f\u670d\u52a1\n# service nginx status \u53ef\u4ee5\u67e5\u770b\u670d\u52a1\u72b6\u6001\n\nprogram=\/usr\/local\/nginx\/sbin\/nginx\npid=\/usr\/local\/nginx\/logs\/nginx.pid\nstart(){\nif [ -f $pid ];then\n  echo  &quot;nginx \u670d\u52a1\u5df2\u7ecf\u5904\u4e8e\u5f00\u542f\u72b6\u6001&quot;\nelse\n  $program\nfi\nstop(){\nif [ -! -f $pid ];then\n  echo &quot;nginx \u670d\u52a1\u5df2\u7ecf\u5173\u95ed&quot;\nelse\n  $program -s stop\n  echo &quot;\u5173\u95ed\u670d\u52a1 ok&quot;\nfi\n}\nstatus(){\nif [ -f $pid ];then\n  echo &quot;\u670d\u52a1\u6b63\u5728\u8fd0\u884c...&quot;\nelse\n  echo &quot;\u670d\u52a1\u5df2\u7ecf\u5173\u95ed&quot;\nfi\n}\n\ncase $1 in\nstart)\n  start;;\nstop)\n  stop;;\nrestart)\n  stop\n  sleep 1\n  start;;\nstatus)\n  status;;\n*)\n  echo  &quot;\u4f60\u8f93\u5165\u7684\u8bed\u6cd5\u683c\u5f0f\u9519\u8bef&quot;\nesac<\/code><\/pre>\n<p>36\u3001\u81ea\u52a8\u5bf9\u78c1\u76d8\u5206\u533a\u3001\u683c\u5f0f\u5316\u3001\u6302\u8f7d<\/p>\n<pre><code class=\"language-bash\"> #!\/bin\/bash\n\n# \u81ea\u52a8\u5bf9\u78c1\u76d8\u5206\u533a\u3001\u683c\u5f0f\u5316\u3001\u6302\u8f7d\n# \u5bf9\u865a\u62df\u673a\u7684 vdb \u78c1\u76d8\u8fdb\u884c\u5206\u533a\u683c\u5f0f\u5316,\u4f7f\u7528&lt;&lt;\u5c06\u9700\u8981\u7684\u5206\u533a\u6307\u4ee4\u5bfc\u5165\u7ed9\u7a0b\u5e8f fdisk\n# n(\u65b0\u5efa\u5206\u533a),p(\u521b\u5efa\u4e3b\u5206\u533a),1(\u5206\u533a\u7f16\u53f7\u4e3a 1),\u4e24\u4e2a\u7a7a\u767d\u884c(\u4e24\u4e2a\u56de\u8f66,\u76f8\u5f53\u4e8e\u5c06\u6574\u4e2a\u78c1\u76d8\u5206\u4e00\u4e2a\u533a)\n# \u6ce8\u610f:1 \u540e\u9762\u7684\u4e24\u4e2a\u56de\u8f66(\u7a7a\u767d\u884c)\u662f\u5fc5\u987b\u7684!\nfdisk \/dev\/vdb &lt;&lt; EOF\nn\np\n1\n\nwq\nEOF\n\n#\u683c\u5f0f\u5316\u521a\u521a\u521b\u5efa\u597d\u7684\u5206\u533a\nmkfs.xfs   \/dev\/vdb1\n\n#\u521b\u5efa\u6302\u8f7d\u70b9\u76ee\u5f55\nif [ -e \/data ]; then\nexit\nfi\nmkdir \/data\n\n#\u81ea\u52a8\u6302\u8f7d\u521a\u521a\u521b\u5efa\u7684\u5206\u533a,\u5e76\u8bbe\u7f6e\u5f00\u673a\u81ea\u52a8\u6302\u8f7d\u8be5\u5206\u533a\necho &#039;\/dev\/vdb1     \/data    xfs    defaults        1 2&#039;  &gt;&gt; \/etc\/fstab\nmount -a<\/code><\/pre>\n<p>37\u3001\u81ea\u52a8\u4f18\u5316 Linux \u5185\u6838\u53c2\u6570<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u81ea\u52a8\u4f18\u5316 Linux \u5185\u6838\u53c2\u6570\n\n#\u811a\u672c\u9488\u5bf9 RHEL7\ncat &gt;&gt; \/usr\/lib\/sysctl.d\/00\u2010system.conf &lt;&lt;EOF\nfs.file\u2010max=65535\nnet.ipv4.tcp_timestamps = 0\nnet.ipv4.tcp_synack_retries = 5\nnet.ipv4.tcp_syn_retries = 5\nnet.ipv4.tcp_tw_recycle = 1\nnet.ipv4.tcp_tw_reuse = 1\nnet.ipv4.tcp_fin_timeout = 30\n#net.ipv4.tcp_keepalive_time = 120\nnet.ipv4.ip_local_port_range = 1024  65535\nkernel.shmall = 2097152\nkernel.shmmax = 2147483648\nkernel.shmmni = 4096\nkernel.sem = 5010 641280 5010 128\nnet.core.wmem_default=262144\nnet.core.wmem_max=262144\nnet.core.rmem_default=4194304\nnet.core.rmem_max=4194304\nnet.ipv4.tcp_fin_timeout = 10\nnet.ipv4.tcp_keepalive_time = 30\nnet.ipv4.tcp_window_scaling = 0\nnet.ipv4.tcp_sack = 0\nEOF\n\nsysctl \u2013p<\/code><\/pre>\n<p>38\u3001\u5207\u5272 Nginx \u65e5\u5fd7\u6587\u4ef6(\u9632\u6b62\u5355\u4e2a\u6587\u4ef6\u8fc7\u5927,\u540e\u671f\u5904\u7406\u5f88\u56f0\u96be)<\/p>\n<pre><code class=\"language-bash\">#mkdir  \/data\/scripts\n#vim   \/data\/scripts\/nginx_log.sh  \n#!\/bin\/bash\n\n# \u5207\u5272 Nginx \u65e5\u5fd7\u6587\u4ef6(\u9632\u6b62\u5355\u4e2a\u6587\u4ef6\u8fc7\u5927,\u540e\u671f\u5904\u7406\u5f88\u56f0\u96be) \nlogs_path=&quot;\/usr\/local\/nginx\/logs\/&quot;\nmv ${logs_path}access.log ${logs_path}access_$(date -d &quot;yesterday&quot; +&quot;%Y%m%d&quot;).log\nkill -USR1  `cat \/usr\/local\/nginx\/logs\/nginx.pid`\n\n# chmod +x  \/data\/scripts\/nginx_log.sh\n# crontab  \u2010e                    #\u811a\u672c\u5199\u5b8c\u540e,\u5c06\u811a\u672c\u653e\u5165\u8ba1\u5212\u4efb\u52a1\u6bcf\u5929\u6267\u884c\u4e00\u6b21\u811a\u672c\n0  1  *  *   *   \/data\/scripts\/nginx_log.sh<\/code><\/pre>\n<p>39\u3001\u68c0\u6d4b MySQL \u6570\u636e\u5e93\u8fde\u63a5\u6570\u91cf<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u68c0\u6d4b MySQL \u6570\u636e\u5e93\u8fde\u63a5\u6570\u91cf \n\n# \u672c\u811a\u672c\u6bcf 2 \u79d2\u68c0\u6d4b\u4e00\u6b21 MySQL \u5e76\u53d1\u8fde\u63a5\u6570,\u53ef\u4ee5\u5c06\u672c\u811a\u672c\u8bbe\u7f6e\u4e3a\u5f00\u673a\u542f\u52a8\u811a\u672c,\u6216\u5728\u7279\u5b9a\u65f6\u95f4\u6bb5\u6267\u884c\n# \u4ee5\u6ee1\u8db3\u5bf9 MySQL \u6570\u636e\u5e93\u7684\u76d1\u63a7\u9700\u6c42,\u67e5\u770b MySQL \u8fde\u63a5\u662f\u5426\u6b63\u5e38\n# \u672c\u6848\u4f8b\u4e2d\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u540e\u65b9\u53ef\u4f7f\u7528\nlog_file=\/var\/log\/mysql_count.log\nuser=root\npasswd=123456\nwhile :\ndo\n    sleep 2\n    count=`mysqladmin  -u  &quot;$user&quot;  -p  &quot;$passwd&quot;   status |  awk &#039;{print $4}&#039;`\n    echo &quot;`date +%Y\u2010%m\u2010%d` \u5e76\u53d1\u8fde\u63a5\u6570\u4e3a:$count&quot; &gt;&gt; $log_file\ndone<\/code><\/pre>\n<p>40\u3001\u6839\u636e md5 \u6821\u9a8c\u7801,\u68c0\u6d4b\u6587\u4ef6\u662f\u5426\u88ab\u4fee\u6539<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u6839\u636e md5 \u6821\u9a8c\u7801,\u68c0\u6d4b\u6587\u4ef6\u662f\u5426\u88ab\u4fee\u6539 \n# \u672c\u793a\u4f8b\u811a\u672c\u68c0\u6d4b\u7684\u662f\/etc \u76ee\u5f55\u4e0b\u6240\u6709\u7684 conf \u7ed3\u5c3e\u7684\u6587\u4ef6,\u6839\u636e\u5b9e\u9645\u60c5\u51b5,\u60a8\u53ef\u4ee5\u4fee\u6539\u4e3a\u5176\u4ed6\u76ee\u5f55\u6216\u6587\u4ef6\n# \u672c\u811a\u672c\u5728\u76ee\u6807\u6570\u636e\u6ca1\u6709\u88ab\u4fee\u6539\u65f6\u6267\u884c\u4e00\u6b21,\u5f53\u6000\u7591\u6570\u636e\u88ab\u4eba\u7be1\u6539,\u518d\u6267\u884c\u4e00\u6b21\n# \u5c06\u4e24\u6b21\u6267\u884c\u7684\u7ed3\u679c\u505a\u5bf9\u6bd4,MD5 \u7801\u53d1\u751f\u6539\u53d8\u7684\u6587\u4ef6,\u5c31\u662f\u88ab\u4eba\u7be1\u6539\u7684\u6587\u4ef6\nfor i in $(ls \/etc\/*.conf)\ndo\n  md5sum &quot;$i&quot; &gt;&gt; \/var\/log\/conf_file.log\ndone<\/code><\/pre>\n<p>41\u3001\u68c0\u6d4b MySQL \u670d\u52a1\u662f\u5426\u5b58\u6d3b<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u68c0\u6d4b MySQL \u670d\u52a1\u662f\u5426\u5b58\u6d3b \n\n# host \u4e3a\u4f60\u9700\u8981\u68c0\u6d4b\u7684 MySQL \u4e3b\u673a\u7684 IP \u5730\u5740,user \u4e3a MySQL \u8d26\u6237\u540d,passwd \u4e3a\u5bc6\u7801\n# \u8fd9\u4e9b\u4fe1\u606f\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u540e\u65b9\u53ef\u4f7f\u7528\nhost=192.168.51.198\nuser=root\npasswd=123456\nmysqladmin -h &#039;$host&#039; -u &#039;$user&#039; -p&#039;$passwd&#039; ping &amp;&gt;\/dev\/null\nif [ $? -eq 0 ]\nthen\n        echo &quot;MySQL is UP&quot;\nelse\n        echo &quot;MySQL is down&quot;\nfi<\/code><\/pre>\n<p>42\u3001\u5907\u4efd MySQL \u7684 shell \u811a\u672c(mysqldump\u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5907\u4efd MySQL \u7684 shell \u811a\u672c(mysqldump\u7248\u672c) \n\n# \u5b9a\u4e49\u53d8\u91cf user(\u6570\u636e\u5e93\u7528\u6237\u540d),passwd(\u6570\u636e\u5e93\u5bc6\u7801),date(\u5907\u4efd\u7684\u65f6\u95f4\u6807\u7b7e)\n# dbname(\u9700\u8981\u5907\u4efd\u7684\u6570\u636e\u5e93\u540d\u79f0,\u6839\u636e\u5b9e\u9645\u9700\u6c42\u9700\u8981\u4fee\u6539\u8be5\u53d8\u91cf\u7684\u503c,\u9ed8\u8ba4\u5907\u4efd mysql \u6570\u636e\u5e93)\n\nuser=root\npasswd=123456\ndbname=mysql\ndate=$(date +%Y%m%d)\n\n# \u6d4b\u8bd5\u5907\u4efd\u76ee\u5f55\u662f\u5426\u5b58\u5728,\u4e0d\u5b58\u5728\u5219\u81ea\u52a8\u521b\u5efa\u8be5\u76ee\u5f55\n[ ! -d \/mysqlbackup ] &amp;&amp; mkdir \/mysqlbackup\n# \u4f7f\u7528 mysqldump \u547d\u4ee4\u5907\u4efd\u6570\u636e\u5e93\nmysqldump -u &quot;$user&quot; -p &quot;$passwd&quot; &quot;$dbname&quot; &gt; \/mysqlbackup\/&quot;$dbname&quot;-${date}.sql<\/code><\/pre>\n<p>43\u3001\u5c06\u6587\u4ef6\u4e2d\u6240\u6709\u7684\u5c0f\u5199\u5b57\u6bcd\u8f6c\u6362\u4e3a\u5927\u5199\u5b57\u6bcd<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5c06\u6587\u4ef6\u4e2d\u6240\u6709\u7684\u5c0f\u5199\u5b57\u6bcd\u8f6c\u6362\u4e3a\u5927\u5199\u5b57\u6bcd \n\n# $1\u662f\u4f4d\u7f6e\u53c2\u6570,\u662f\u4f60\u9700\u8981\u8f6c\u6362\u5927\u5c0f\u5199\u5b57\u6bcd\u7684\u6587\u4ef6\u540d\u79f0\n# \u6267\u884c\u811a\u672c,\u7ed9\u5b9a\u4e00\u4e2a\u6587\u4ef6\u540d\u4f5c\u4e3a\u53c2\u6570,\u811a\u672c\u5c31\u4f1a\u5c06\u8be5\u6587\u4ef6\u4e2d\u6240\u6709\u7684\u5c0f\u5199\u5b57\u6bcd\u8f6c\u6362\u4e3a\u5927\u5199\u5b57\u6bcd\ntr &quot;[a\u2010z]&quot; &quot;[A\u2010Z]&quot; &lt; $1<\/code><\/pre>\n<p>44\u3001\u975e\u4ea4\u4e92\u81ea\u52a8\u751f\u6210 SSH \u5bc6\u94a5\u6587\u4ef6<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u975e\u4ea4\u4e92\u81ea\u52a8\u751f\u6210 SSH \u5bc6\u94a5\u6587\u4ef6 \n\n# \u2010t \u6307\u5b9a SSH \u5bc6\u94a5\u7684\u7b97\u6cd5\u4e3a RSA \u7b97\u6cd5;\u2010N \u8bbe\u7f6e\u5bc6\u94a5\u7684\u5bc6\u7801\u4e3a\u7a7a;\u2010f \u6307\u5b9a\u751f\u6210\u7684\u5bc6\u94a5\u6587\u4ef6&gt;\u5b58\u653e\u5728\u54ea\u91cc\nrm  -rf  ~\/.ssh\/{known_hosts,id_rsa*}\nssh\u2010keygen -t RSA -N &#039;&#039; -f ~\/.ssh\/id_rsa<\/code><\/pre>\n<p>45\u3001\u68c0\u67e5\u7279\u5b9a\u7684\u8f6f\u4ef6\u5305\u662f\u5426\u5df2\u7ecf\u5b89\u88c5<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u68c0\u67e5\u7279\u5b9a\u7684\u8f6f\u4ef6\u5305\u662f\u5426\u5df2\u7ecf\u5b89\u88c5 \nif [ $# -eq 0 ];then\n  echo &quot;\u4f60\u9700\u8981\u5236\u5b9a\u4e00\u4e2a\u8f6f\u4ef6\u5305\u540d\u79f0\u4f5c\u4e3a\u811a\u672c\u53c2\u6570&quot;\n  echo &quot;\u7528\u6cd5:$0 \u8f6f\u4ef6\u5305\u540d\u79f0 ...&quot;\nfi\n# $@\u63d0\u53d6\u6240\u6709\u7684\u4f4d\u7f6e\u53d8\u91cf\u7684\u503c,\u76f8\u5f53\u4e8e$*\nfor package in &quot;$@&quot;\ndo\n    if rpm -q ${package} &amp;&gt;\/dev\/null ;then\n    echo -e &quot;${package}\\033[32m \u5df2\u7ecf\u5b89\u88c5\\033[0m&quot;\n    else\n    echo -e &quot;${package}\\033[34;1m \u672a\u5b89\u88c5\\033[0m&quot;\n    fi\ndone<\/code><\/pre>\n<p>46\u3001\u76d1\u63a7 HTTP \u670d\u52a1\u5668\u7684\u72b6\u6001(\u6d4b\u8bd5\u8fd4\u56de\u7801)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u76d1\u63a7 HTTP \u670d\u52a1\u5668\u7684\u72b6\u6001(\u6d4b\u8bd5\u8fd4\u56de\u7801)\n\n# \u8bbe\u7f6e\u53d8\u91cf,url\u4e3a\u4f60\u9700\u8981\u68c0\u6d4b\u7684\u76ee\u6807\u7f51\u7ad9\u7684\u7f51\u5740(IP \u6216\u57df\u540d),\u6bd4\u5982\u767e\u5ea6\nurl=http:\/\/http:\/\/183.232.231.172\/index.html\n\n# \u5b9a\u4e49\u51fd\u6570 check_http:\n# \u4f7f\u7528 curl \u547d\u4ee4\u68c0\u67e5 http \u670d\u52a1\u5668\u7684\u72b6\u6001\n# \u2010m \u8bbe\u7f6ecurl\u4e0d\u7ba1\u8bbf\u95ee\u6210\u529f\u6216\u5931\u8d25,\u6700\u5927\u6d88\u8017\u7684\u65f6\u95f4\u4e3a 5 \u79d2,5 \u79d2\u8fde\u63a5\u670d\u52a1\u4e3a\u76f8\u5e94\u5219\u89c6\u4e3a\u65e0\u6cd5\u8fde\u63a5\n# \u2010s \u8bbe\u7f6e\u9759\u9ed8\u8fde\u63a5,\u4e0d\u663e\u793a\u8fde\u63a5\u65f6\u7684\u8fde\u63a5\u901f\u5ea6\u3001\u65f6\u95f4\u6d88\u8017\u7b49\u4fe1\u606f\n# \u2010o \u5c06 curl \u4e0b\u8f7d\u7684\u9875\u9762\u5185\u5bb9\u5bfc\u51fa\u5230\/dev\/null(\u9ed8\u8ba4\u4f1a\u5728\u5c4f\u5e55\u663e\u793a\u9875\u9762\u5185\u5bb9)\n# \u2010w \u8bbe\u7f6ecurl\u547d\u4ee4\u9700\u8981\u663e\u793a\u7684\u5185\u5bb9%{http_code},\u6307\u5b9acurl\u8fd4\u56de\u670d\u52a1\u5668\u7684\u72b6\u6001\u7801\ncheck_http()\n{\n        status_code=$(curl -m 5 -s -o \/dev\/null -w %{http_code} $url)\n}\n\nwhile :\ndo\n        check_http\n        date=$(date +%Y%m%d\u2010%H:%M:%S)\n\n# \u751f\u6210\u62a5\u8b66\u90ae\u4ef6\u7684\u5185\u5bb9\n        echo &quot;\u5f53\u524d\u65f6\u95f4\u4e3a:$date\n        $url \u670d\u52a1\u5668\u5f02\u5e38,\u72b6\u6001\u7801\u4e3a${status_code}.\n        \u8bf7\u5c3d\u5feb\u6392\u67e5\u5f02\u5e38.&quot; &gt; \/tmp\/http$$.pid\n\n# \u6307\u5b9a\u6d4b\u8bd5\u670d\u52a1\u5668\u72b6\u6001\u7684\u51fd\u6570,\u5e76\u6839\u636e\u8fd4\u56de\u7801\u51b3\u5b9a\u662f\u53d1\u9001\u90ae\u4ef6\u62a5\u8b66\u8fd8\u662f\u5c06\u6b63\u5e38\u4fe1\u606f\u5199\u5165\u65e5\u5fd7\n        if [ $status_code -ne 200 ];then\n                mail -s Warning root &lt; \/tmp\/http$$.pid\n        else\n                echo &quot;$url \u8fde\u63a5\u6b63\u5e38&quot; &gt;&gt; \/var\/log\/http.log\n        fi\n        sleep 5\ndone<\/code><\/pre>\n<p>47\u3001\u81ea\u52a8\u6dfb\u52a0\u9632\u706b\u5899\u89c4\u5219,\u5f00\u542f\u67d0\u4e9b\u670d\u52a1\u6216\u7aef\u53e3(\u9002\u7528\u4e8e RHEL7)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u81ea\u52a8\u6dfb\u52a0\u9632\u706b\u5899\u89c4\u5219,\u5f00\u542f\u67d0\u4e9b\u670d\u52a1\u6216\u7aef\u53e3(\u9002\u7528\u4e8e RHEL7)\n# \n# \u8bbe\u7f6e\u53d8\u91cf\u5b9a\u4e49\u9700\u8981\u6dfb\u52a0\u5230\u9632\u706b\u5899\u89c4\u5219\u7684\u670d\u52a1\u548c\u7aef\u53e3\u53f7\n# \u4f7f\u7528 firewall\u2010cmd \u2010\u2010get\u2010services \u53ef\u4ee5\u67e5\u770b firewall \u652f\u6301\u54ea\u4e9b\u670d\u52a1\nservice=&quot;nfs http ssh&quot;\nport=&quot;80 22 8080&quot;\n\n# \u5faa\u73af\u5c06\u6bcf\u4e2a\u670d\u52a1\u6dfb\u52a0\u5230\u9632\u706b\u5899\u89c4\u5219\u4e2d\nfor i in $service\ndo\n    echo &quot;Adding $i service to firewall&quot;\n    firewall\u2010cmd  --add-service=${i}\ndone\n\n#\u5faa\u73af\u5c06\u6bcf\u4e2a\u7aef\u53e3\u6dfb\u52a0\u5230\u9632\u706b\u5899\u89c4\u5219\u4e2d\nfor i in $port\ndo\n    echo &quot;Adding $i Port to firewall&quot;\n    firewall\u2010cmd --add-port=${i}\/tcp\ndone\n#\u5c06\u4ee5\u4e0a\u8bbe\u7f6e\u7684\u4e34\u65f6\u9632\u706b\u5899\u89c4\u5219,\u8f6c\u6362\u4e3a\u6c38\u4e45\u6709\u6548\u7684\u89c4\u5219(\u786e\u4fdd\u91cd\u542f\u540e\u6709\u6548)\nfirewall\u2010cmd  --runtime-to-permanent<\/code><\/pre>\n<p>48\u3001\u4f7f\u7528\u811a\u672c\u81ea\u52a8\u521b\u5efa\u903b\u8f91\u5377<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528\u811a\u672c\u81ea\u52a8\u521b\u5efa\u903b\u8f91\u5377 \n\n# \u6e05\u5c4f,\u663e\u793a\u8b66\u544a\u4fe1\u606f,\u521b\u5efa\u5c06\u78c1\u76d8\u8f6c\u6362\u4e3a\u903b\u8f91\u5377\u4f1a\u5220\u9664\u6570\u636e\nclear\necho -e &quot;\\033[32m           !!!!!!\u8b66\u544a(Warning)!!!!!!\\033[0m&quot;\necho\necho &quot;+++++++++++++++++++++++++++++++++++++++++++++++++&quot;\necho &quot;\u811a\u672c\u4f1a\u5c06\u6574\u4e2a\u78c1\u76d8\u8f6c\u6362\u4e3a PV,\u5e76\u5220\u9664\u78c1\u76d8\u4e0a\u6240\u6709\u6570\u636e!!!&quot;\necho &quot;This Script will destroy all data on the Disk&quot;\necho &quot;+++++++++++++++++++++++++++++++++++++++++++++++++&quot;\necho\nread -p &quot;\u8bf7\u95ee\u662f\u5426\u7ee7\u7eed y\/n?:&quot; sure\n\n# \u6d4b\u8bd5\u7528\u6237\u8f93\u5165\u7684\u662f\u5426\u4e3a y,\u5982\u679c\u4e0d\u662f\u5219\u9000\u51fa\u811a\u672c\n[ $sure != y ] &amp;&amp; exit\n\n# \u63d0\u793a\u7528\u6237\u8f93\u5165\u76f8\u5173\u53c2\u6570(\u78c1\u76d8\u3001\u5377\u7ec4\u540d\u79f0\u7b49\u6570\u636e),\u5e76\u6d4b\u8bd5\u7528\u6237\u662f\u5426\u8f93\u5165\u4e86\u8fd9\u4e9b\u503c,\u5982\u679c\u6ca1\u6709\u8f93\u5165,\u5219\u811a\u672c\u9000\u51fa\nread -p &quot;\u8bf7\u8f93\u5165\u78c1\u76d8\u540d\u79f0,\u5982\/dev\/vdb:&quot; disk\n[ -z $disk ] &amp;&amp; echo &quot;\u6ca1\u6709\u8f93\u5165\u78c1\u76d8\u540d\u79f0&quot; &amp;&amp; exit\nread -p &quot;\u8bf7\u8f93\u5165\u5377\u7ec4\u540d\u79f0:&quot; vg_name\n[ -z $vg_name ] &amp;&amp; echo &quot;\u6ca1\u6709\u8f93\u5165\u5377\u7ec4\u540d\u79f0&quot; &amp;&amp; exit\nread -p &quot;\u8bf7\u8f93\u5165\u903b\u8f91\u5377\u540d\u79f0:&quot; lv_name\n[ -z $lv_name ] &amp;&amp; echo &quot;\u6ca1\u6709\u8f93\u5165\u903b\u8f91\u5377\u540d\u79f0&quot; &amp;&amp; exit\nread -p &quot;\u8bf7\u8f93\u5165\u903b\u8f91\u5377\u5927\u5c0f:&quot; lv_size\n[ -z $lv_size ] &amp;&amp; echo &quot;\u6ca1\u6709\u8f93\u5165\u903b\u8f91\u5377\u5927\u5c0f&quot; &amp;&amp; exit\n\n# \u4f7f\u7528\u547d\u4ee4\u521b\u5efa\u903b\u8f91\u5377\npvcreate $disk\nvgcreate $vg_name $disk\nlvcreate -L ${lv_size}M -n ${lv_name}  ${vg_name}<\/code><\/pre>\n<p>49\u3001\u663e\u793a CPU \u5382\u5546\u4fe1\u606f<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u663e\u793a CPU \u5382\u5546\u4fe1\u606f \nawk &#039;\/vendor_id\/{print $3}&#039; \/proc\/cpuinfo | uniq<\/code><\/pre>\n<p>50\u3001\u5220\u9664\u67d0\u4e2a\u76ee\u5f55\u4e0b\u5927\u5c0f\u4e3a 0 \u7684\u6587\u4ef6<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5220\u9664\u67d0\u4e2a\u76ee\u5f55\u4e0b\u5927\u5c0f\u4e3a 0 \u7684\u6587\u4ef6\n\n#\/var\/www\/html \u4e3a\u6d4b\u8bd5\u76ee\u5f55,\u811a\u672c\u4f1a\u6e05\u7a7a\u8be5\u76ee\u5f55\u4e0b\u6240\u6709 0 \u5b57\u8282\u7684\u6587\u4ef6\ndir=&quot;\/var\/www\/html&quot;\nfind $dir -type f -size 0 -exec rm -rf {} \\;<\/code><\/pre>\n<p>51\u3001\u67e5\u627e Linux \u7cfb\u7edf\u4e2d\u7684\u50f5\u5c38\u8fdb\u7a0b<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u67e5\u627e Linux \u7cfb\u7edf\u4e2d\u7684\u50f5\u5c38\u8fdb\u7a0b\n\n# awk \u5224\u65ad ps \u547d\u4ee4\u8f93\u51fa\u7684\u7b2c 8 \u5217\u4e3a Z \u662f,\u663e\u793a\u8be5\u8fdb\u7a0b\u7684 PID \u548c\u8fdb\u7a0b\u547d\u4ee4\nps aux | awk &#039;{if($8 == &quot;Z&quot;){print $2,$11}}&#039;<\/code><\/pre>\n<p>52\u3001\u63d0\u793a\u7528\u6237\u8f93\u5165\u5e74\u4efd\u540e\u5224\u65ad\u8be5\u5e74\u662f\u5426\u4e3a\u95f0\u5e74<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u63d0\u793a\u7528\u6237\u8f93\u5165\u5e74\u4efd\u540e\u5224\u65ad\u8be5\u5e74\u662f\u5426\u4e3a\u95f0\u5e74\n\n# \u80fd\u88ab4\u6574\u9664\u5e76\u4e14\u5e76\u4e0d\u80fd\u88ab100\u6574\u9664\u7684\u5e74\u4efd\u662f\u95f0\u5e74\n# \u80fd\u88ab400\u6574\u9664\u7684\u5e74\u4efd\u4e5f\u662f\u95f0\u5e74\nread -p &quot;\u8bf7\u8f93\u5165\u4e00\u4e2a\u5e74\u4efd:&quot; year\n\nif [ &quot;$year&quot; = &quot;&quot; ];then\n    echo &quot;\u6ca1\u6709\u8f93\u5165\u5e74\u4efd&quot;\n    exit\nfi\n#\u4f7f\u7528\u6b63\u5219\u6d4b\u8bd5\u53d8\u91cf year \u4e2d\u662f\u5426\u5305\u542b\u5927\u5c0f\u5199\u5b57\u6bcd\nif [[ &quot;$year&quot; =~ [a\u2010Z] ]];then\n    echo &quot;\u4f60\u8f93\u5165\u7684\u4e0d\u662f\u6570\u5b57&quot;\n    exit\nfi\n# \u5224\u65ad\u662f\u5426\u4e3a\u95f0\u5e74\nif [ $[year % 4] -eq 0 ] &amp;&amp; [ $[year % 100] -ne 0 ];then\n    echo &quot;$year\u5e74\u662f\u95f0\u5e74&quot;  \nelif [ $[year % 400] -eq 0 ];then\n    echo &quot;$year\u5e74\u662f\u95f0\u5e74&quot;\nelse\n    echo &quot;$year\u5e74\u4e0d\u662f\u95f0\u5e74&quot;\nfi<\/code><\/pre>\n<p>53\u3001\u751f\u6210\u968f\u673a\u5bc6\u7801(urandom \u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u751f\u6210\u968f\u673a\u5bc6\u7801(urandom \u7248\u672c) \n\n# \/dev\/urandom \u6587\u4ef6\u662f Linux \u5185\u7f6e\u7684\u968f\u673a\u8bbe\u5907\u6587\u4ef6\n# cat \/dev\/urandom \u53ef\u4ee5\u770b\u770b\u91cc\u9762\u7684\u5185\u5bb9,ctrl+c \u9000\u51fa\u67e5\u770b\n# \u67e5\u770b\u8be5\u6587\u4ef6\u5185\u5bb9\u540e,\u53d1\u73b0\u5185\u5bb9\u6709\u4e9b\u592a\u968f\u673a,\u5305\u62ec\u5f88\u591a\u7279\u6b8a\u7b26\u53f7,\u6211\u4eec\u9700\u8981\u7684\u5bc6\u7801\u4e0d\u5e0c\u671b\u4f7f\u7528\u8fd9\u4e9b\u7b26\u53f7\n# tr \u2010dc &#039;_A\u2010Za\u2010z0\u20109&#039; &lt; \/dev\/urandom\n# \u8be5\u547d\u4ee4\u53ef\u4ee5\u5c06\u968f\u673a\u6587\u4ef6\u4e2d\u5176\u4ed6\u7684\u5b57\u7b26\u5220\u9664,\u4ec5\u4fdd\u7559\u5927\u5c0f\u5199\u5b57\u6bcd,\u6570\u5b57,\u4e0b\u5212\u7ebf,\u4f46\u662f\u5185\u5bb9\u8fd8\u662f\u592a\u591a\n# \u6211\u4eec\u53ef\u4ee5\u7ee7\u7eed\u5c06\u4f18\u5316\u597d\u7684\u5185\u5bb9\u901a\u8fc7\u7ba1\u9053\u4f20\u9012\u7ed9 head \u547d\u4ee4,\u5728\u5927\u91cf\u6570\u636e\u4e2d\u4ec5\u663e\u793a\u5934 10 \u4e2a\u5b57\u8282\n# \u6ce8\u610f A \u524d\u9762\u6709\u4e2a\u4e0b\u5212\u7ebf\ntr -dc &#039;_A\u2010Za\u2010z0\u20109&#039; &lt;\/dev\/urandom | head -c 10<\/code><\/pre>\n<p>54\u3001\u751f\u6210\u968f\u673a\u5bc6\u7801(\u5b57\u4e32\u622a\u53d6\u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u751f\u6210\u968f\u673a\u5bc6\u7801(\u5b57\u4e32\u622a\u53d6\u7248\u672c) \n\n# \u8bbe\u7f6e\u53d8\u91cf key,\u5b58\u50a8\u5bc6\u7801\u7684\u6240\u6709\u53ef\u80fd\u6027(\u5bc6\u7801\u5e93),\u5982\u679c\u8fd8\u9700\u8981\u5176\u4ed6\u5b57\u7b26\u8bf7\u81ea\u884c\u6dfb\u52a0\u5176\u4ed6\u5bc6\u7801\u5b57\u7b26\n# \u4f7f\u7528$#\u7edf\u8ba1\u5bc6\u7801\u5e93\u7684\u957f\u5ea6\nkey=&quot;0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;\nnum=${#key}\n# \u8bbe\u7f6e\u521d\u59cb\u5bc6\u7801\u4e3a\u7a7a\npass=&#039;&#039;\n# \u5faa\u73af 8 \u6b21,\u751f\u6210\u968f\u673a\u5bc6\u7801\n# \u6bcf\u6b21\u90fd\u662f\u968f\u673a\u6570\u5bf9\u5bc6\u7801\u5e93\u7684\u957f\u5ea6\u53d6\u4f59,\u786e\u4fdd\u63d0\u53d6\u7684\u5bc6\u7801\u5b57\u7b26\u4e0d\u8d85\u8fc7\u5bc6\u7801\u5e93\u7684\u957f\u5ea6\n# \u6bcf\u6b21\u5faa\u73af\u63d0\u53d6\u4e00\u4f4d\u968f\u673a\u5bc6\u7801,\u5e76\u5c06\u8be5\u968f\u673a\u5bc6\u7801\u8ffd\u52a0\u5230 pass \u53d8\u91cf\u7684\u6700\u540e\nfor i in {1..8}\ndo  \n  index=$[RANDOM%num]\n  pass=$pass${key:$index:1}\ndone\necho $pass<\/code><\/pre>\n<p>55\u3001\u751f\u6210\u968f\u673a\u5bc6\u7801(UUID \u7248\u672c,16 \u8fdb\u5236\u5bc6\u7801)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u751f\u6210\u968f\u673a\u5bc6\u7801(UUID \u7248\u672c,16 \u8fdb\u5236\u5bc6\u7801) \nuuidgen\n56\u3001\u751f\u6210\u968f\u673a\u5bc6\u7801(\u8fdb\u7a0b ID \u7248\u672c,\u6570\u5b57\u5bc6\u7801)\n\n#!\/bin\/bash\n\n# \u751f\u6210\u968f\u673a\u5bc6\u7801(\u8fdb\u7a0b ID \u7248\u672c,\u6570\u5b57\u5bc6\u7801)\necho $$<\/code><\/pre>\n<p>57\u3001\u6d4b\u8bd5\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u662f\u5426\u6b63\u786e<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u6d4b\u8bd5\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u662f\u5426\u6b63\u786e\n\n#\u7528\u6237\u540d\u4e3a tom \u5e76\u4e14\u5bc6\u7801\u4e3a 123456,\u5219\u63d0\u793a\u767b\u5f55\u6210\u529f,\u5426\u5219\u63d0\u793a\u767b\u5f55\u5931\u8d25\nread -p &quot;\u8bf7\u8f93\u5165\u7528\u6237\u540d:&quot;  user\nread -p &quot;\u8bf7\u8f93\u5165\u5bc6\u7801:&quot;    pass\nif [ &quot;$user&quot; == &#039;tom&#039; -a &quot;$pass&quot; == &#039;123456&#039; ];then\n  echo &quot;Login successful&quot;\nelse\n  echo &quot;Login Failed&quot;\nfi<\/code><\/pre>\n<p>58\u3001\u5faa\u73af\u6d4b\u8bd5\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u662f\u5426\u6b63\u786e<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5faa\u73af\u6d4b\u8bd5\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u662f\u5426\u6b63\u786e \n\n# \u5faa\u73af\u6d4b\u8bd5\u7528\u6237\u7684\u8d26\u6237\u540d\u548c\u5bc6\u7801,\u6700\u5927\u6d4b\u8bd5 3 \u6b21,\u8f93\u5165\u6b63\u786e\u63d0\u793a\u767b\u5f55\u6210\u529f,\u5426\u5219\u63d0\u793a\u767b\u5f55\u5931\u8d25\n# \u7528\u6237\u540d\u4e3a tom \u5e76\u4e14\u5bc6\u7801\u4e3a 123456  \nfor i in {1..3}\ndo\n  read -p &quot;\u8bf7\u8f93\u5165\u7528\u6237\u540d:&quot; user\n  read -p &quot;\u8bf7\u8f93\u5165\u5bc6\u7801:&quot;   pass\nif [ &quot;$user&quot; == &#039;tom&#039; -a &quot;$pass&quot; == &#039;123456&#039; ];then\n    echo &quot;Login successful&quot;\n     exit\nfi\ndone\necho &quot;Login Failed&quot;<\/code><\/pre>\n<p>59\u3001Shell \u811a\u672c\u7684 fork \u70b8\u5f39<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# Shell \u811a\u672c\u7684 fork \u70b8\u5f39 \n\n# \u5feb\u901f\u6d88\u8017\u8ba1\u7b97\u673a\u8d44\u6e90,\u81f4\u4f7f\u8ba1\u7b97\u673a\u6b7b\u673a\n# \u5b9a\u4e49\u51fd\u6570\u540d\u4e3a.(\u70b9), \u51fd\u6570\u4e2d\u9012\u5f52\u8c03\u7528\u81ea\u5df1\u5e76\u653e\u5165\u540e\u53f0\u6267\u884c\n.() { .|.&amp; };.<\/code><\/pre>\n<p>60\u3001\u6279\u91cf\u4e0b\u8f7d\u6709\u5e8f\u6587\u4ef6(pdf\u3001\u56fe\u7247\u3001\u89c6\u9891\u7b49\u7b49)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u6279\u91cf\u4e0b\u8f7d\u6709\u5e8f\u6587\u4ef6(pdf\u3001\u56fe\u7247\u3001\u89c6\u9891\u7b49\u7b49)\n\n# \u672c\u811a\u672c\u51c6\u5907\u6709\u5e8f\u7684\u7f51\u7edc\u8d44\u6599\u8fdb\u884c\u6279\u91cf\u4e0b\u8f7d\u64cd\u4f5c(\u5982 01.jpg,02.jpg,03.jpg)\n# \u8bbe\u7f6e\u8d44\u6e90\u6765\u6e90\u7684\u57df\u540d\u8fde\u63a5\nurl=&quot;http:\/\/www.baidu.com\/&quot;\necho  &quot;\u5f00\u59cb\u4e0b\u8f7d...&quot;\nsleep 2\ntype=jpg\nfor i in `seq 100`\n     echo &quot;\u6b63\u5728\u4e0b\u8f7d$i.$type&quot;\n  curl $url\/$i.$type -o \/tmp\/${i}$type\n     sleep 1\ndone\n#curl \u4f7f\u7528-o \u9009\u9879\u6307\u5b9a\u4e0b\u8f7d\u6587\u4ef6\u53e6\u5b58\u5230\u54ea\u91cc.<\/code><\/pre>\n<p>61\u3001\u663e\u793a\u5f53\u524d\u8ba1\u7b97\u673a\u4e2d\u6240\u6709\u8d26\u6237\u7684\u7528\u6237\u540d\u79f0<\/p>\n<pre><code class=\"language-bash\"> #!\/bin\/bash\n\n# \u663e\u793a\u5f53\u524d\u8ba1\u7b97\u673a\u4e2d\u6240\u6709\u8d26\u6237\u7684\u7528\u6237\u540d\u79f0\n\n# \u4e0b\u9762\u4f7f\u75283\u79cd\u4e0d\u540c\u7684\u65b9\u5f0f\u5217\u51fa\u8ba1\u7b97\u673a\u4e2d\u6240\u6709\u8d26\u6237\u7684\u7528\u6237\u540d\n# \u6307\u5b9a\u4ee5:\u4e3a\u5206\u9694\u7b26,\u6253\u5370\/etc\/passwd \u6587\u4ef6\u7684\u7b2c 1 \u5217\nawk -F: &#039;{print $1}&#039; \/etc\/passwd\n\n# \u6307\u5b9a\u4ee5:\u4e3a\u5206\u9694\u7b26,\u6253\u5370\/etc\/passwd \u6587\u4ef6\u7684\u7b2c 1 \u5217\ncut -d: -f1 \/etc\/passwd\n\n# \u4f7f\u7528 sed \u7684\u66ff\u6362\u529f\u80fd,\u5c06\/etc\/passwd \u6587\u4ef6\u4e2d:\u540e\u9762\u7684\u6240\u6709\u5185\u5bb9\u66ff\u6362\u4e3a\u7a7a(\u4ec5\u663e\u793a\u7528\u6237\u540d)\nsed &#039;s\/:.*\/\/&#039; \/etc\/passwd<\/code><\/pre>\n<p>62\u3001\u5236\u5b9a\u76ee\u5f55\u8def\u5f84,\u811a\u672c\u81ea\u52a8\u5c06\u8be5\u76ee\u5f55\u4f7f\u7528 tar \u547d\u4ee4\u6253\u5305\u5907\u4efd\u5230\/data\u76ee\u5f55<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5236\u5b9a\u76ee\u5f55\u8def\u5f84,\u811a\u672c\u81ea\u52a8\u5c06\u8be5\u76ee\u5f55\u4f7f\u7528 tar \u547d\u4ee4\u6253\u5305\u5907\u4efd\u5230\/data\u76ee\u5f55 \n\n[ ! -d \/data ] &amp;&amp; mkdir \/data\n[ -z $1 ] &amp;&amp; exit\nif [ -d $1 ];then\n  tar -czf \/data\/$1.-`date +%Y%m%d`.tar.gz $1\nelse\n    echo &quot;\u8be5\u76ee\u5f55\u4e0d\u5b58\u5728&quot;\nfi<\/code><\/pre>\n<p>63\u3001\u663e\u793a\u8fdb\u5ea6\u6761(\u56de\u65cb\u9556\u7248)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u663e\u793a\u8fdb\u5ea6\u6761(\u56de\u65cb\u9556\u7248)\n\nwhile :\ndo\n  clear\n  for i in {1..20}\n  do\n    echo \u2010e &quot;\\033[3;${i}H*&quot;\n    sleep 0.1\n    done\n    clear\n    for i in {20..1}\n    do\n    echo \u2010e &quot;\\033[3;${i}H*&quot;\n    sleep 0.1\n    done\n    clear\ndone<\/code><\/pre>\n<p>64\u3001\u5b89\u88c5 LAMP \u73af\u5883(yum \u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5b89\u88c5 LAMP \u73af\u5883(yum \u7248\u672c) \n\n# \u672c\u811a\u672c\u9002\u7528\u4e8e RHEL7(RHEL6 \u4e2d\u6570\u636e\u5e93\u4e3a mysql)\nyum makecache &amp;&gt;\/dev\/null\nnum=$(yum repolist | awk &#039;\/repolist\/{print $2}&#039; | sed &#039;s\/,\/\/&#039;)\nif [ $num -lt 0 ];then\n  yum -y install httpd\n  yum -y install mariadb mariadb-server mariadb-devel\n  yum -y install php php-mysql\nelse\n  echo &quot;\u672a\u914d\u7f6e yum \u6e90...&quot;\nfi<\/code><\/pre>\n<p>65\u3001\u5faa\u73af\u5173\u95ed\u5c40\u57df\u7f51\u4e2d\u6240\u6709\u4e3b\u673a<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5faa\u73af\u5173\u95ed\u5c40\u57df\u7f51\u4e2d\u6240\u6709\u4e3b\u673a \n\n# \u5047\u8bbe\u672c\u673a\u4e3a 192.168.4.100,\u7f16\u5199\u811a\u672c\u5173\u95ed\u9664\u81ea\u5df1\u5916\u7684\u5176\u4ed6\u6240\u6709\u4e3b\u673a\n# \u811a\u672c\u6267\u884c,\u9700\u8981\u63d0\u524d\u7ed9\u6240\u6709\u5176\u4ed6\u4e3b\u673a\u4f20\u9012 ssh \u5bc6\u94a5,\u6ee1\u8db3\u65e0\u5bc6\u7801\u8fde\u63a5\nfor i in {1..254}\ndo\n  [ $i -eq 100 ] &amp;&amp; continue\n  echo &quot;\u6b63\u5728\u5173\u95ed 192.168.4.$i...&quot;\n  ssh 192.168.4.$i poweroff\ndone<\/code><\/pre>\n<p>66\u3001\u83b7\u53d6\u672c\u673a MAC \u5730\u5740<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u83b7\u53d6\u672c\u673a MAC \u5730\u5740\nip a s | awk &#039;BEGIN{print  &quot; \u672c \u673a MAC \u5730 \u5740 \u4fe1 \u606f \u5982 \u4e0b :&quot;}\/^[0\u20109]\/{print $2;getline;if($0~\/link\\\/ether\/){print $2}}&#039; | grep -v lo:\n\n# awk \u8bfb\u53d6 ip \u547d\u4ee4\u7684\u8f93\u51fa,\u8f93\u51fa\u7ed3\u679c\u4e2d\u5982\u679c\u6709\u4ee5\u6570\u5b57\u5f00\u59cb\u7684\u884c,\u5148\u663e\u793a\u8be5\u884c\u7684\u5730 2 \u5217(\u7f51\u5361\u540d\u79f0),\n# \u63a5\u7740\u4f7f\u7528 getline \u518d\u8bfb\u53d6\u5b83\u7684\u4e0b\u4e00\u884c\u6570\u636e,\u5224\u65ad\u662f\u5426\u5305\u542b link\/ether\n# \u5982\u679c\u4fdd\u62a4\u8be5\u5173\u952e\u8bcd,\u5c31\u663e\u793a\u8be5\u884c\u7684\u7b2c 2 \u5217(MAC \u5730\u5740)\n# lo \u56de\u73af\u8bbe\u5907\u6ca1\u6709 MAC,\u56e0\u6b64\u5c06\u5176\u5c4f\u853d,\u4e0d\u663e\u793a<\/code><\/pre>\n<p>67\u3001\u81ea\u52a8\u914d\u7f6e rsynd \u670d\u52a1\u5668\u7684\u914d\u7f6e\u6587\u4ef6 rsyncd.conf<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u81ea\u52a8\u914d\u7f6e rsynd \u670d\u52a1\u5668\u7684\u914d\u7f6e\u6587\u4ef6 rsyncd.conf\n\n# See rsyncd.conf man page for more options.\n\n[ ! -d \/home\/ftp ] &amp;&amp; mkdir \/home\/ftp\necho &#039;uid = nobody\ngid = nobody\nuse chroot = yes\nmax connections = 4\npid file = \/var\/run\/rsyncd.pid\nexclude = lost+found\/\ntransfer logging = yes\ntimeout = 900\nignore nonreadable = yes\ndont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2\n[ftp]\n    path = \/home\/ftp\n    comment = share&#039; &gt; \/etc\/rsyncd.conf<\/code><\/pre>\n<p>68\u3001\u4fee\u6539 Linux \u7cfb\u7edf\u7684\u6700\u5927\u6253\u5f00\u6587\u4ef6\u6570\u91cf<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4fee\u6539 Linux \u7cfb\u7edf\u7684\u6700\u5927\u6253\u5f00\u6587\u4ef6\u6570\u91cf \n\n# \u5f80\/etc\/security\/limits.conf \u6587\u4ef6\u7684\u672b\u5c3e\u8ffd\u52a0\u4e24\u884c\u914d\u7f6e\u53c2\u6570,\u4fee\u6539\u6700\u5927\u6253\u5f00\u6587\u4ef6\u6570\u91cf\u4e3a 65536\ncat &gt;&gt; \/etc\/security\/limits.conf &lt;&lt;EOF\n* soft nofile  65536\n* hard nofile  65536\nEOF<\/code><\/pre>\n<p>69\u3001\u8bbe\u7f6e Python \u652f\u6301\u81ea\u52a8\u547d\u4ee4\u8865\u9f50\u529f\u80fd<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u8bbe\u7f6e Python \u652f\u6301\u81ea\u52a8\u547d\u4ee4\u8865\u9f50\u529f\u80fd \n\n# Summary:Enable tab complete for python\n# Description:\n\nNeeds import readline and rlcompleter module\n#\nimport readline\n#\nimport rlcompleter\n#\nhelp(rlcompleter) display detail: readline.parse_and_bind(&#039;tab: complete&#039;)\n#\nman python display detail: PYTHONSTARTUP variable\n\nif  [ ! -f \/usr\/bin\/tab.py ];then\n  cat &gt;&gt; \/usr\/bin\/tab.py &lt;&lt;EOF\nimport readline\nimport rlcompleter\nreadline.parse_and_bind(&#039;tab: complete&#039;)\nEOF\nfi\nsed  -i &#039;$a export PYTHONSTARTUP=\/usr\/bin\/tab.py&#039; \/etc\/profile\nsource \/etc\/profile<\/code><\/pre>\n<p>70\u3001\u81ea\u52a8\u4fee\u6539\u8ba1\u5212\u4efb\u52a1\u914d\u7f6e\u6587\u4ef6<\/p>\n<p><a href=\"http:\/\/mp.weixin.qq.com\/s?__biz=MzAwNTM5Njk3Mw==&amp;mid=2247506725&amp;idx=2&amp;sn=cb0395b93925ce3a06edf60d7ca7d2c1&amp;chksm=9b1fdba7ac6852b182a5907c301fc9df85497315989ee99c4fbc2a88fad84a6032783b3524b0&amp;scene=21#wechat_redirect\">Docker+K8s+Jenkins \u4e3b\u6d41\u6280\u672f\u5168\u89e3\u89c6\u9891\u8d44\u6599\u3010\u5e72\u8d27\u514d\u8d39\u5206\u4eab\u3011<\/a><\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u81ea\u52a8\u4fee\u6539\u8ba1\u5212\u4efb\u52a1\u914d\u7f6e\u6587\u4ef6 \n\nread -p &quot;\u8bf7\u8f93\u5165\u5206\u949f\u4fe1\u606f(00\u201059):&quot; min\nread -p &quot;\u8bf7\u8f93\u5165\u5c0f\u65f6\u4fe1\u606f(00\u201024):&quot; hour\nread -p &quot;\u8bf7\u8f93\u5165\u65e5\u671f\u4fe1\u606f(01\u201031):&quot; date\nread -p &quot;\u8bf7\u8f93\u5165\u6708\u4efd\u4fe1\u606f(01\u201012):&quot; month\nread -p &quot;\u8bf7\u8f93\u5165\u661f\u671f\u4fe1\u606f(00\u201006):&quot; weak\nread -p &quot;\u8bf7\u8f93\u5165\u8ba1\u5212\u4efb\u52a1\u9700\u8981\u6267\u884c\u7684\u547d\u4ee4\u6216\u811a\u672c:&quot; program\necho &quot;$min $hour $date $month $weak $program&quot; &gt;&gt; \/etc\/crontab<\/code><\/pre>\n<p>71\u3001\u4f7f\u7528\u811a\u672c\u5faa\u73af\u521b\u5efa\u4e09\u4f4d\u6570\u5b57\u7684\u6587\u672c\u6587\u4ef6(111-999 \u7684\u6587\u4ef6)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528\u811a\u672c\u5faa\u73af\u521b\u5efa\u4e09\u4f4d\u6570\u5b57\u7684\u6587\u672c\u6587\u4ef6(111-999 \u7684\u6587\u4ef6) \n\nfor i in {1..9}\ndo\n  for j in {1..9}\n  do\n    for k in {1..9}\n    do\n      touch \/tmp\/$i$j$k.txt\n    done\n    done\ndone<\/code><\/pre>\n<p>72\u3001\u627e\u51fa\/etc\/passwd \u4e2d\u80fd\u767b\u5f55\u7684\u7528\u6237,\u5e76\u5c06\u5bf9\u5e94\u5728\/etc\/shadow \u4e2d\u7b2c\u4e8c\u5217\u5bc6\u7801\u63d0\u51fa\u5904\u7406<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u627e\u51fa\/etc\/passwd \u4e2d\u80fd\u767b\u5f55\u7684\u7528\u6237,\u5e76\u5c06\u5bf9\u5e94\u5728\/etc\/shadow \u4e2d\u7b2c\u4e8c\u5217\u5bc6\u7801\u63d0\u51fa\u5904\u7406\n\nuser=$(awk -F: &#039;\/bash$\/{print $1}&#039; \/etc\/passwd)\nfor i in $user\ndo\n  awk -F: -v x=$i &#039;$1==x{print $1,$2}&#039; \/etc\/shadow\ndone<\/code><\/pre>\n<p>73\u3001\u7edf\u8ba1\/etc\/passwd \u4e2d root \u51fa\u73b0\u7684\u6b21\u6570<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7edf\u8ba1\/etc\/passwd \u4e2d root \u51fa\u73b0\u7684\u6b21\u6570 \n\n#\u6bcf\u8bfb\u53d6\u4e00\u884c\u6587\u4ef6\u5185\u5bb9,\u5373\u4ece\u7b2c 1 \u5217\u5faa\u73af\u5230\u6700\u540e 1 \u5217,\u4f9d\u6b21\u5224\u65ad\u662f\u5426\u5305\u542b root \u5173\u952e\u8bcd,\u5982\u679c\u5305\u542b\u5219 x++\nawk -F: &#039;{i=1;while(i&lt;=NF){if($i~\/root\/){x++};i++}} END{print &quot;root \u51fa\u73b0\u6b21\u6570\u4e3a&quot;x}&#039; \/etc\/passwd<\/code><\/pre>\n<p>74\u3001\u7edf\u8ba1 Linux \u8fdb\u7a0b\u76f8\u5173\u6570\u91cf\u4fe1\u606f<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7edf\u8ba1 Linux \u8fdb\u7a0b\u76f8\u5173\u6570\u91cf\u4fe1\u606f \n\nrunning=0\nsleeping=0\nstoped=0\nzombie=0\n# \u5728 proc \u76ee\u5f55\u4e0b\u6240\u6709\u4ee5\u6570\u5b57\u5f00\u59cb\u7684\u90fd\u662f\u5f53\u524d\u8ba1\u7b97\u673a\u6b63\u5728\u8fd0\u884c\u7684\u8fdb\u7a0b\u7684\u8fdb\u7a0b PID\n# \u6bcf\u4e2a PID \u7f16\u53f7\u7684\u76ee\u5f55\u4e0b\u8bb0\u5f55\u6709\u8be5\u8fdb\u7a0b\u76f8\u5173\u7684\u4fe1\u606f\nfor pid in \/proc\/[1\u20109]*\ndo\n  procs=$[procs+1]\n  stat=$(awk &#039;{print $3}&#039; $pid\/stat)\n# \u6bcf\u4e2a pid \u76ee\u5f55\u4e0b\u90fd\u6709\u4e00\u4e2a stat \u6587\u4ef6,\u8be5\u6587\u4ef6\u7684\u7b2c 3 \u5217\u662f\u8be5\u8fdb\u7a0b\u7684\u72b6\u6001\u4fe1\u606f\n    case $stat in\n    R)\n    running=$[running+1]\n    ;;\n    T)\n    stoped=$[stoped+1]\n    ;;\n    S)\n    sleeping=$[sleeping+1]\n    ;;\n    Z)\n     zombie=$[zombie+1]\n     ;;\n    esac\ndone\necho &quot;\u8fdb\u7a0b\u7edf\u8ba1\u4fe1\u606f\u5982\u4e0b&quot;\necho &quot;\u603b\u8fdb\u7a0b\u6570\u91cf\u4e3a:$procs&quot;\necho &quot;Running \u8fdb\u7a0b\u6570\u4e3a:$running&quot;\necho &quot;Stoped \u8fdb\u7a0b\u6570\u4e3a:$stoped&quot;\necho &quot;Sleeping \u8fdb\u7a0b\u6570\u4e3a:$sleeping&quot;\necho &quot;Zombie \u8fdb\u7a0b\u6570\u4e3a:$zombie&quot;<\/code><\/pre>\n<p>75\u3001\u4ece\u952e\u76d8\u8bfb\u53d6\u4e00\u4e2a\u8bba\u575b\u79ef\u5206,\u5224\u65ad\u8bba\u575b\u7528\u6237\u7b49\u7ea7<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4ece\u952e\u76d8\u8bfb\u53d6\u4e00\u4e2a\u8bba\u575b\u79ef\u5206,\u5224\u65ad\u8bba\u575b\u7528\u6237\u7b49\u7ea7\n\n#\u7b49\u7ea7\u5206\u7c7b\u5982\u4e0b:\n#  \u5927\u4e8e\u7b49\u4e8e 90        \u795e\u529f\u7edd\u4e16\n#  \u5927\u4e8e\u7b49\u4e8e 80,\u5c0f\u4e8e 90       \u767b\u5cf0\u9020\u6781\n#  \u5927\u4e8e\u7b49\u4e8e 70,\u5c0f\u4e8e 80       \u7089\u706b\u7eaf\u9752\n#  \u5927\u4e8e\u7b49\u4e8e 60,\u5c0f\u4e8e 70       \u7565\u6709\u5c0f\u6210\n#  \u5c0f\u4e8e 60               \u521d\u5b66\u4e4d\u7ec3\nread -p &quot;\u8bf7\u8f93\u5165\u79ef\u5206(0\u2010100):&quot; JF\nif [ $JF -ge 90 ] ; then\n  echo &quot;$JF \u5206,\u795e\u529f\u7edd\u4e16&quot;\nelif [ $JF -ge 80 ] ; then\n    echo &quot;$JF \u5206,\u767b\u5cf0\u9020\u6781&quot;\nelif [ $JF -ge 70 ] ; then\n    echo &quot;$JF \u5206,\u7089\u706b\u7eaf\u9752&quot;\nelif [ $JF -lt 60 ] ; then\n    echo &quot;$JF \u5206,\u7565\u6709\u5c0f\u6210&quot;\nelse\n    echo &quot;$JF \u5206,\u521d\u5b66\u4e4d\u7ec3&quot;\nfi<\/code><\/pre>\n<p>76\u3001\u5224\u65ad\u7528\u6237\u8f93\u5165\u7684\u6570\u636e\u7c7b\u578b(\u5b57\u6bcd\u3001\u6570\u5b57\u6216\u5176\u4ed6)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5224\u65ad\u7528\u6237\u8f93\u5165\u7684\u6570\u636e\u7c7b\u578b(\u5b57\u6bcd\u3001\u6570\u5b57\u6216\u5176\u4ed6) \nread -p &quot;\u8bf7\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26:&quot; KEY\ncase &quot;$KEY&quot; in\n  [a\u2010z]|[A\u2010Z])\n    echo &quot;\u5b57\u6bcd&quot; \n    ;;\n  [0\u20109])\n    echo &quot;\u6570\u5b57&quot; \n    ;;\n  *)\n    echo &quot;\u7a7a\u683c\u3001\u529f\u80fd\u952e\u6216\u5176\u4ed6\u63a7\u5236\u5b57\u7b26&quot;\nesac<\/code><\/pre>\n<p>77\u3001\u663e\u793a\u8fdb\u5ea6\u6761(\u6570\u5b57\u7248)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u663e\u793a\u8fdb\u5ea6\u6761(\u6570\u5b57\u7248) \n# echo \u4f7f\u7528\u2010e \u9009\u9879\u540e,\u5728\u6253\u5370\u53c2\u6570\u4e2d\u53ef\u4ee5\u6307\u5b9a H,\u8bbe\u7f6e\u9700\u8981\u6253\u5370\u5185\u5bb9\u7684 x,y \u8f74\u7684\u5b9a\u4f4d\u5750\u6807\n# \u8bbe\u7f6e\u9700\u8981\u6253\u5370\u5185\u5bb9\u5728\u7b2c\u51e0\u884c,\u7b2c\u51e0\u5217\nfor i in {1..100}\ndo\n    echo -e &quot;\\033[6;8H[&quot;\n    echo -e &quot;\\033[6;9H$i%&quot;\n    echo -e &quot;\\033[6;13H]&quot;\n    sleep 0.1\ndone<\/code><\/pre>\n<p>78\u3001\u6253\u5370\u6590\u6ce2\u90a3\u5951\u6570\u5217<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u6253\u5370\u6590\u6ce2\u90a3\u5951\u6570\u5217(\u8be5\u6570\u5217\u7684\u7279\u70b9\u662f\u540e\u4e00\u4e2a\u6570\u5b57,\u6c38\u8fdc\u90fd\u662f\u524d 2 \u4e2a\u6570\u5b57\u4e4b\u548c) \n\n# \u6590\u6ce2\u90a3\u5951\u6570\u5217\u540e\u4e00\u4e2a\u6570\u5b57\u6c38\u8fdc\u662f\u524d 2 \u4e2a\u6570\u5b57\u4e4b\u548c\n# \u5982:0  1  1  2  3  5  8  13 ... ...\nlist=(0 1)\nfor i in `seq 2 11`\ndo\n  list[$i]=`expr ${list[\u20101]} + ${list[\u20102]}`\ndone\necho ${list[@]}<\/code><\/pre>\n<p>79\u3001\u5224\u65ad\u7528\u6237\u8f93\u5165\u7684\u662f Yes \u6216 NO<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5224\u65ad\u7528\u6237\u8f93\u5165\u7684\u662f Yes \u6216 NO \n\nread -p  &quot;Are you sure?[y\/n]:&quot;  sure\ncase  $sure  in\n  y|Y|Yes|YES)  \n    echo &quot;you enter $a&quot;\n    ;;\n    n|N|NO|no)\n     echo &quot;you enter $a&quot;\n     ;;\n    *)\n     echo &quot;error&quot;;;\nesac<\/code><\/pre>\n<p>80\u3001\u663e\u793a\u672c\u673a Linux \u7cfb\u7edf\u4e0a\u6240\u6709\u5f00\u653e\u7684\u7aef\u53e3\u5217\u8868<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u663e\u793a\u672c\u673a Linux \u7cfb\u7edf\u4e0a\u6240\u6709\u5f00\u653e\u7684\u7aef\u53e3\u5217\u8868 \n\n# \u4ece\u7aef\u53e3\u5217\u8868\u4e2d\u89c2\u6d4b\u6709\u6ca1\u6709\u6ca1\u7528\u7684\u7aef\u53e3,\u6709\u7684\u8bdd\u53ef\u4ee5\u5c06\u8be5\u7aef\u53e3\u5bf9\u5e94\u7684\u670d\u52a1\u5173\u95ed,\u9632\u6b62\u610f\u5916\u7684\u653b\u51fb\u53ef\u80fd\u6027\nss -nutlp | awk &#039;{print $1,$5}&#039; | awk -F&quot;[: ]&quot; &#039;{print &quot;\u534f\u8bae:&quot;$1,&quot;\u7aef\u53e3\u53f7:&quot;$NF}&#039; | grep &quot;[0\u20109]&quot; | uniq<\/code><\/pre>\n<p>81\u3001\u5c06 Linux \u7cfb\u7edf\u4e2d UID \u5927\u4e8e\u7b49\u4e8e 1000 \u7684\u666e\u901a\u7528\u6237\u90fd\u5220\u9664<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5c06 Linux \u7cfb\u7edf\u4e2d UID \u5927\u4e8e\u7b49\u4e8e 1000 \u7684\u666e\u901a\u7528\u6237\u90fd\u5220\u9664 \n\n# \u5148\u7528 awk \u63d0\u53d6\u6240\u6709 uid \u5927\u4e8e\u7b49\u4e8e 1000 \u7684\u666e\u901a\u7528\u6237\u540d\u79f0\n# \u518d\u4f7f\u7528 for \u5faa\u73af\u9010\u4e2a\u5c06\u6bcf\u4e2a\u7528\u6237\u5220\u9664\u5373\u53ef\nuser=$(awk -F: &#039;$3&gt;=1000{print $1}&#039; \/etc\/passwd)\nfor i in $user\ndo\n     userdel -r $i\ndone<\/code><\/pre>\n<p>82\u3001\u4f7f\u7528\u811a\u672c\u5f00\u542f\u5173\u95ed\u865a\u62df\u673a<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528\u811a\u672c\u5f00\u542f\u5173\u95ed\u865a\u62df\u673a \n\n# \u811a\u672c\u901a\u8fc7\u8c03\u7528virsh\u547d\u4ee4\u5b9e\u73b0\u5bf9\u865a\u62df\u673a\u7684\u7ba1\u7406,\u5982\u679c\u6ca1\u6709\u8be5\u547d\u4ee4,\u9700\u8981\u5b89\u88c5 libvirt\u2010client \u8f6f\u4ef6\u5305\n# $1\u662f\u811a\u672c\u7684\u7b2c1\u4e2a\u53c2\u6570,$2\u662f\u811a\u672c\u7684\u7b2c2\u4e2a\u53c2\u6570\n# \u7b2c1\u4e2a\u53c2\u6570\u662f\u4f60\u5e0c\u671b\u5bf9\u865a\u62df\u673a\u8fdb\u884c\u7684\u64cd\u4f5c\u6307\u4ee4,\u7b2c2\u4e2a\u53c2\u6570\u662f\u865a\u62df\u673a\u540d\u79f0\ncase $1 in\n  list)\n    virsh list --all\n    ;;\n  start)\n    virsh start $2\n    ;;\n  stop)\n    virsh destroy $2\n    ;;\n  enable)\n    virsh autostart $2\n    ;;\n  disable)\n    virsh autostart --disable $2\n    ;;\n  *)\n    echo &quot;Usage:$0 list&quot;\n    echo &quot;Usage:$0 [start|stop|enable|disable]  VM_name&quot;\n    cat &lt;&lt; EOF\n    #list      \u663e\u793a\u865a\u62df\u673a\u5217\u8868\n    #start     \u542f\u52a8\u865a\u62df\u673a\n    #stop      \u5173\u95ed\u865a\u62df\u673a\n    #enable    \u8bbe\u7f6e\u865a\u62df\u673a\u4e3a\u5f00\u673a\u81ea\u542f\n    #disable   \u5173\u95ed\u865a\u62df\u673a\u5f00\u673a\u81ea\u542f\u529f\u80fd\n    EOF\n    ;;\nesac<\/code><\/pre>\n<p>83\u3001\u8c03\u6574\u865a\u62df\u673a\u5185\u5b58\u53c2\u6570\u7684 shell \u811a\u672c<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u8c03\u6574\u865a\u62df\u673a\u5185\u5b58\u53c2\u6570\u7684 shell \u811a\u672c \n\n# \u811a\u672c\u901a\u8fc7\u8c03\u7528 virsh \u547d\u4ee4\u5b9e\u73b0\u5bf9\u865a\u62df\u673a\u7684\u7ba1\u7406,\u5982\u679c\u6ca1\u6709\u8be5\u547d\u4ee4,\u9700\u8981\u5b89\u88c5 libvirt\u2010client \u8f6f\u4ef6\u5305\ncat &lt;&lt; EOF\n1.\u8c03\u6574\u865a\u62df\u673a\u6700\u5927\u5185\u5b58\u6570\u503c\n2.\u8c03\u6574\u5b9e\u9645\u5206\u914d\u7ed9\u865a\u62df\u673a\u7684\u5185\u5b58\u6570\u503c\nEOF\nread -p &quot;\u8bf7\u9009\u62e9[1\u20102]:&quot; select\ncase $select in\n  1)\n      read -p &quot;\u8bf7\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0&quot; name\n      read -p &quot;\u8bf7\u8f93\u5165\u6700\u5927\u5185\u5b58\u6570\u503c(\u5355\u4f4d:k):&quot; size\n      virsh setmaxmem $name --size $size --config\n      ;;\n  2)\n      read -p &quot;\u8bf7\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0&quot; name\n      read -p &quot;\u8bf7\u8f93\u5165\u5b9e\u9645\u5206\u914d\u5185\u5b58\u6570\u503c(\u5355\u4f4d:k):&quot; size\n      virsh setmem $name $size\n      ;;\n  *)\n      echo &quot;Error&quot;\n      ;;\nesac<\/code><\/pre>\n<p>84\u3001\u67e5\u770b KVM \u865a\u62df\u673a\u4e2d\u7684\u7f51\u5361\u4fe1\u606f(\u4e0d\u9700\u8981\u8fdb\u5165\u542f\u52a8\u6216\u8fdb\u5165\u865a\u62df\u673a)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u67e5\u770b KVM \u865a\u62df\u673a\u4e2d\u7684\u7f51\u5361\u4fe1\u606f(\u4e0d\u9700\u8981\u8fdb\u5165\u542f\u52a8\u6216\u8fdb\u5165\u865a\u62df\u673a) \n\n# \u8be5\u811a\u672c\u4f7f\u7528 guestmount \u5de5\u5177,\u53ef\u4ee5\u5c06\u865a\u62df\u673a\u7684\u78c1\u76d8\u7cfb\u7edf\u6302\u8f7d\u5230\u771f\u5b9e\u673a\u6587\u4ef6\u7cfb\u7edf\u4e2d\n# Centos7.2 \u4e2d\u5b89\u88c5 libguestfs\u2010tools\u2010c \u53ef\u4ee5\u83b7\u5f97 guestmount \u5de5\u5177\n# \u865a\u62df\u673a\u53ef\u4ee5\u542f\u52a8\u6216\u8005\u4e0d\u542f\u52a8\u90fd\u4e0d\u5f71\u54cd\u8be5\u811a\u672c\u7684\u4f7f\u7528\n# \u5c06\u865a\u62df\u673a\u78c1\u76d8\u6587\u4ef6\u6302\u8f7d\u5230\u6587\u4ef6\u7cfb\u7edf\u540e,\u5c31\u53ef\u4ee5\u76f4\u63a5\u8bfb\u53d6\u78c1\u76d8\u6587\u4ef6\u4e2d\u7684\u7f51\u5361\u914d\u7f6e\u6587\u4ef6\u4e2d\u7684\u6570\u636e\nclear\nmountpoint=&quot;\/media\/virtimage&quot;\n[ ! -d $mountpoint ] &amp;&amp; mkdir $mountpoint\nread -p &quot;\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0:&quot; name\necho &quot;\u8bf7\u7a0d\u540e...&quot;\n# \u5982\u679c\u6709\u8bbe\u5907\u6302\u8f7d\u5230\u8be5\u6302\u8f7d\u70b9,\u5219\u5148 umount \u5378\u8f7d\nif mount | grep -q &quot;$mountpoint&quot; ;then\n  umount $mountpoint\nfi\n# \u53ea\u8bfb\u7684\u65b9\u5f0f,\u5c06\u865a\u62df\u673a\u7684\u78c1\u76d8\u6587\u4ef6\u6302\u8f7d\u5230\u7279\u5b9a\u7684\u76ee\u5f55\u4e0b,\u8fd9\u91cc\u662f\/media\/virtimage \u76ee\u5f55\nguestmount -r -d $name -i $mountpoint\necho\necho &quot;\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010&quot;\necho -e &quot;\\033[32m$name \u865a\u62df\u673a\u4e2d\u7f51\u5361\u5217\u8868\u5982\u4e0b:\\033[0m&quot;\ndev=$(ls \/media\/virtimage\/etc\/sysconfig\/network\u2010scripts\/ifcfg-* |awk -F&quot;[\/\u2010]&quot; &#039;{print $9}&#039;)\necho $dev\necho &quot;\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010\u2010&quot;\necho\necho\necho &quot;+++++++++++++++++++++++++++++++++++++++++++&quot;\necho -e &quot;\\033[32m \u7f51\u5361 IP \u5730\u5740\u4fe1\u606f\u5982\u4e0b:\\033[0m&quot;\nfor i in $dev\ndo\n  echo -n &quot;$i:&quot;\n  grep -q &quot;IPADDR&quot; \/media\/virtimage\/etc\/sysconfig\/network\u2010scripts\/ifcfg-$i || echo &quot;\u672a\u914d\u7f6e IP\u5730\u5740&quot;\n  awk -F= &#039;\/IPADDR\/{print $2}&#039; \/media\/virtimage\/etc\/sysconfig\/network-scripts\/ifcfg-$i\ndone\necho &quot;+++++++++++++++++++++++++++++++++++++++++++&quot;<\/code><\/pre>\n<p>85\u3001\u4e0d\u767b\u9646\u865a\u62df\u673a,\u4fee\u6539\u865a\u62df\u673a\u7f51\u5361 IP \u5730\u5740<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4e0d\u767b\u9646\u865a\u62df\u673a,\u4fee\u6539\u865a\u62df\u673a\u7f51\u5361 IP \u5730\u5740 \n\n# \u8be5\u811a\u672c\u4f7f\u7528 guestmount \u5de5\u5177,Centos7.2 \u4e2d\u5b89\u88c5 libguestfs\u2010tools\u2010c \u53ef\u4ee5\u83b7\u5f97 guestmount \u5de5\u5177\n# \u811a\u672c\u5728\u4e0d\u767b\u9646\u865a\u62df\u673a\u7684\u60c5\u51b5\u4e0b,\u4fee\u6539\u865a\u62df\u673a\u7684 IP \u5730\u5740\u4fe1\u606f\n# \u5728\u67d0\u4e9b\u73af\u5883\u4e0b,\u865a\u62df\u673a\u6ca1\u6709 IP \u6216 IP \u5730\u5740\u4e0e\u771f\u5b9e\u4e3b\u673a\u4e0d\u5728\u4e00\u4e2a\u7f51\u6bb5\n# \u771f\u5b9e\u4e3b\u673a\u5728\u6ca1\u6709 virt\u2010manger \u56fe\u5f62\u7684\u60c5\u51b5\u4e0b,\u8fdc\u7a0b\u8fde\u63a5\u865a\u62df\u673a\u5f88\u9ebb\u70e6\n# \u8be5\u811a\u672c\u53ef\u4ee5\u89e3\u51b3\u7c7b\u4f3c\u7684\u95ee\u9898\nread -p &quot;\u8bf7\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0:&quot; name\nif virsh domstate $name | grep -q running ;then\n  echo &quot;\u4fee\u6539\u865a\u62df\u673a\u7f51\u5361\u6570\u636e,\u9700\u8981\u5173\u95ed\u865a\u62df\u673a&quot;\n  virsh destroy $name\nfi\nmountpoint=&quot;\/media\/virtimage&quot;\n[ ! -d $mountpoint ] &amp;&amp; mkdir $mountpoint\necho &quot;\u8bf7\u7a0d\u540e...&quot;\nif mount | grep -q &quot;$mountpoint&quot; ;then\n  umount $mountpoint\nfi\nguestmount  -d $name -i $mountpoint\nread -p &quot;\u8bf7\u8f93\u5165\u9700\u8981\u4fee\u6539\u7684\u7f51\u5361\u540d\u79f0:&quot; dev\nread -p &quot;\u8bf7\u8f93\u5165 IP \u5730\u5740:&quot; addr\n# \u5224\u65ad\u539f\u672c\u7f51\u5361\u914d\u7f6e\u6587\u4ef6\u4e2d\u662f\u5426\u6709 IP \u5730\u5740,\u6709\u5c31\u4fee\u6539\u8be5 IP,\u6ca1\u6709\u5c31\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684 IP \u5730\u5740\nif grep -q &quot;IPADDR&quot;  $mountpoint\/etc\/sysconfig\/network\u2010scripts\/ifcfg\u2010$dev ;then\n  sed -i &quot;\/IPADDR\/s\/=.*\/=$addr\/&quot;  $mountpoint\/etc\/sysconfig\/network\u2010scripts\/ifcfg\u2010$dev\nelse\n  echo &quot;IPADDR=$addr&quot; &gt;&gt; $mountpoint\/etc\/sysconfig\/network\u2010scripts\/ifcfg\u2010$dev\nfi\n# \u5982\u679c\u7f51\u5361\u914d\u7f6e\u6587\u4ef6\u4e2d\u6709\u5ba2\u6237\u914d\u7f6e\u7684 IP \u5730\u5740,\u5219\u811a\u672c\u63d0\u793a\u4fee\u6539 IP \u5b8c\u6210\nawk -F= -v x=$addr &#039;$2==x{print &quot;\u5b8c\u6210...&quot;}&#039;  $mountpoint\/etc\/sysconfig\/network\u2010scripts\/ifcfg-$dev<\/code><\/pre>\n<p>86\u3001\u7834\u89e3\u865a\u62df\u673a\u5bc6\u7801,\u65e0\u5bc6\u7801\u767b\u9646\u865a\u62df\u673a\u7cfb\u7edf<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7834\u89e3\u865a\u62df\u673a\u5bc6\u7801,\u65e0\u5bc6\u7801\u767b\u9646\u865a\u62df\u673a\u7cfb\u7edf \n\n# \u8be5\u811a\u672c\u4f7f\u7528 guestmount \u5de5\u5177,Centos7.2 \u4e2d\u5b89\u88c5 libguestfs\u2010tools\u2010c \u53ef\u4ee5\u83b7\u5f97 guestmount \u5de5\u5177\n\nread -p &quot;\u8bf7\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0:&quot; name\nif virsh domstate $name | grep -q running ;then\n  echo &quot;\u7834\u89e3,\u9700\u8981\u5173\u95ed\u865a\u62df\u673a&quot;\n  virsh destroy $name\nfi\nmountpoint=&quot;\/media\/virtimage&quot;\n[ ! -d $mountpoint ] &amp;&amp; mkdir $mountpoint\necho &quot;\u8bf7\u7a0d\u540e...&quot;\nif mount | grep -q &quot;$mountpoint&quot; ;then\n  umount $mountpoint\nfi\nguestmount -d $name -i $mountpoint\n# \u5c06 passwd \u4e2d\u5bc6\u7801\u5360\u4f4d\u7b26\u53f7 x \u5220\u9664,\u8be5\u8d26\u6237\u5373\u53ef\u5b9e\u73b0\u65e0\u5bc6\u7801\u767b\u9646\u7cfb\u7edf\nsed -i &quot;\/^root\/s\/x\/\/&quot; $mountpoint\/etc\/passwd<\/code><\/pre>\n<p>87\u3001Shell \u811a\u672c\u5bf9\u4fe1\u53f7\u7684\u5904\u7406,\u6267\u884c\u811a\u672c\u540e,\u6309\u952e\u76d8 Ctrl+C \u65e0\u6cd5\u7ec8\u6b62\u7684\u811a\u672c<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# Shell \u811a\u672c\u5bf9\u4fe1\u53f7\u7684\u5904\u7406,\u6267\u884c\u811a\u672c\u540e,\u6309\u952e\u76d8 Ctrl+C \u65e0\u6cd5\u7ec8\u6b62\u7684\u811a\u672c \n\n# \u4f7f\u7528 trap \u547d\u4ee4\u53ef\u4ee5\u62e6\u622a\u7528\u6237\u901a\u8fc7\u952e\u76d8\u6216 kill \u547d\u4ee4\u53d1\u9001\u8fc7\u6765\u7684\u4fe1\u53f7\n# \u4f7f\u7528 kill \u2010l \u53ef\u4ee5\u67e5\u770b Linux \u7cfb\u7edf\u4e2d\u6240\u6709\u7684\u4fe1\u53f7\u5217\u8868,\u5176\u4e2d 2 \u4ee3\u8868 Ctrl+C\n# trap \u5f53\u53d1\u73b0\u6709\u7528\u6237 ctrl+C \u5e0c\u671b\u7ec8\u7aef\u811a\u672c\u65f6,\u5c31\u6267\u884c echo &quot;\u6682\u505c 10s&quot;;sleep 10 \u8fd9\u4e24\u6761\u547d\u4ee4\n# \u53e6\u5916\u7528\u6237\u4f7f\u7528\u547d\u4ee4:[ kill \u20102 \u811a\u672c\u7684 PID ] \u4e5f\u53ef\u4ee5\u4e2d\u65ad\u811a\u672c\u548c Ctrl+C \u4e00\u6837\u7684\u6548\u679c,\u90fd\u4f1a\u88ab trap \u62e6\u622a\ntrap &#039;echo &quot;\u6682\u505c 10s&quot;;sleep 10&#039; 2\nwhile :\ndo\n  echo &quot;go go go&quot;\ndone<\/code><\/pre>\n<p>88\u3001\u4e00\u952e\u90e8\u7f72 memcached<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4e00\u952e\u90e8\u7f72 memcached \n\n# \u811a\u672c\u7528\u6e90\u7801\u6765\u5b89\u88c5 memcached \u670d\u52a1\u5668\n# \u6ce8\u610f:\u5982\u679c\u8f6f\u4ef6\u7684\u4e0b\u8f7d\u94fe\u63a5\u8fc7\u671f\u4e86,\u8bf7\u66f4\u65b0 memcached \u7684\u4e0b\u8f7d\u94fe\u63a5\nwget http:\/\/www.memcached.org\/files\/memcached-1.5.1.tar.gz\nyum -y install gcc\ntar -xf  memcached\u20101.5.1.tar.gz\ncd memcached\u20101.5.1\n.\/configure\nmake\nmake install<\/code><\/pre>\n<p>89\u3001\u4e00\u952e\u914d\u7f6e VNC \u8fdc\u7a0b\u684c\u9762\u670d\u52a1\u5668(\u65e0\u5bc6\u7801\u7248\u672c)<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4e00\u952e\u914d\u7f6e VNC \u8fdc\u7a0b\u684c\u9762\u670d\u52a1\u5668(\u65e0\u5bc6\u7801\u7248\u672c)\n\n# \u811a\u672c\u914d\u7f6e\u7684 VNC \u670d\u52a1\u5668,\u5ba2\u6237\u7aef\u65e0\u9700\u5bc6\u7801\u5373\u53ef\u8fde\u63a5\n# \u5ba2\u6237\u7aef\u4ec5\u6709\u67e5\u770b\u8fdc\u7a0b\u684c\u9762\u7684\u6743\u9650,\u6ca1\u6709\u9f20\u6807\u548c\u952e\u76d8\u7684\u64cd\u4f5c\u6743\u9650\n\nrpm --quiet -q tigervnc\u2010server\nif [  $? -ne  0 ];then\n  yum  -y  tigervnc\u2010server\nfi\nx0vncserver AcceptKeyEvents=0 AlwaysShared=1 \\\nAcceptPointerEvents=0 SecurityTypes=None  rfbport=5908<\/code><\/pre>\n<p>90\u3001\u5173\u95ed SELinux<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5173\u95ed SELinux \n\nsed -i  &#039;\/^SELINUX\/s\/=.*\/=disabled\/&#039; \/etc\/selinux\/config\nsetenforce 0<\/code><\/pre>\n<p>91\u3001\u67e5\u770b\u6240\u6709\u865a\u62df\u673a\u78c1\u76d8\u4f7f\u7528\u91cf\u4ee5\u53caCPU\u4f7f\u7528\u91cf\u4fe1\u606f<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u67e5\u770b\u6240\u6709\u865a\u62df\u673a\u78c1\u76d8\u4f7f\u7528\u91cf\u4ee5\u53caCPU\u4f7f\u7528\u91cf\u4fe1\u606f \n\nvirt\u2010df\nread -n1 &quot;\u6309\u4efb\u610f\u952e\u7ee7\u7eed&quot; key\nvirt\u2010top<\/code><\/pre>\n<p>92\u3001\u4f7f\u7528 shell \u811a\u672c\u6253\u5370\u56fe\u5f62<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528 shell \u811a\u672c\u6253\u5370\u5982\u4e0b\u56fe\u5f62: \n\n# \u6253\u5370\u7b2c\u4e00\u7ec4\u56fe\u7247\n# for(())\u4e3a\u7c7b C \u8bed\u8a00\u7684\u8bed\u6cd5\u683c\u5f0f,\u4e5f\u53ef\u4ee5\u4f7f\u7528 for i  in;do  ;done \u7684\u683c\u5f0f\u66ff\u6362\n# for((i=1;i&lt;=9;i++))\u5faa\u73af\u4f1a\u6267\u884c 9 \u6b21,i \u4ece 1 \u5f00\u59cb\u5230 9,\u6bcf\u5faa\u73af\u4e00\u6b21 i \u81ea\u52a0 1\nclear\nfor (( i=1; i&lt;=9; i++ ))\ndo\n  for (( j=1; j&lt;=i; j++ ))\n  do\n    echo -n &quot;$i&quot;\n  done\n  echo &quot;&quot;\ndone\nread  -n1  &quot;\u6309\u4efb\u610f\u952e\u7ee7\u7eed&quot;  key\n#\u6253\u5370\u7b2c\u4e8c\u7ec4\u56fe\u7247\nclear\nfor (( i=1; i&lt;=5; i++ )) \ndo\n  for (( j=1; j&lt;=i; j++ ))\n  do\n    echo -n &quot; |&quot;\n  done\n  echo &quot;_ &quot;\ndone\nread  -n1  &quot;\u6309\u4efb\u610f\u952e\u7ee7\u7eed&quot;  key\n#\u6253\u5370\u7b2c\u4e09\u7ec4\u56fe\u7247\nclear\nfor (( i=1; i&lt;=5; i++ ))\ndo\n  for (( j=1; j&lt;=i; j++ ))\n  do\n    echo -n &quot; *&quot;\n  done\n  echo &quot;&quot;\ndone\nfor (( i=5; i&gt;=1; i\u2010\u2010 ))\ndo\n  for (( j=1; j&lt;=i; j++ ))\n  do\n    echo -n &quot; *&quot;\n  done\n  echo &quot;&quot;\ndone<\/code><\/pre>\n<p>93\u3001\u6839\u636e\u8ba1\u7b97\u673a\u5f53\u524d\u65f6\u95f4,\u8fd4\u56de\u95ee\u5019\u8bed,\u53ef\u4ee5\u5c06\u8be5\u811a\u672c\u8bbe\u7f6e\u4e3a\u5f00\u673a\u542f\u52a8<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u6839\u636e\u8ba1\u7b97\u673a\u5f53\u524d\u65f6\u95f4,\u8fd4\u56de\u95ee\u5019\u8bed,\u53ef\u4ee5\u5c06\u8be5\u811a\u672c\u8bbe\u7f6e\u4e3a\u5f00\u673a\u542f\u52a8 \n\n# 00\u201012 \u70b9\u4e3a\u65e9\u6668,12\u201018 \u70b9\u4e3a\u4e0b\u5348,18\u201024 \u70b9\u4e3a\u665a\u4e0a\n# \u4f7f\u7528 date \u547d\u4ee4\u83b7\u53d6\u65f6\u95f4\u540e,if \u5224\u65ad\u65f6\u95f4\u7684\u533a\u95f4,\u786e\u5b9a\u95ee\u5019\u8bed\u5185\u5bb9\ntm=$(date +%H)\nif [ $tm -le 12 ];then\n  msg=&quot;Good Morning $USER&quot;\nelif [ $tm -gt 12 -a $tm -le 18 ];then\n    msg=&quot;Good Afternoon $USER&quot;\nelse\n    msg=&quot;Good Night $USER&quot;\nfi\necho &quot;\u5f53\u524d\u65f6\u95f4\u662f:$(date +&quot;%Y\u2010%m\u2010%d %H:%M:%S&quot;)&quot;\necho -e &quot;\\033[34m$msg\\033[0m&quot;<\/code><\/pre>\n<p>94\u3001\u8bfb\u53d6\u7528\u6237\u8f93\u5165\u7684\u8d26\u6237\u540d\u79f0,\u5c06\u8d26\u6237\u540d\u5199\u5165\u5230\u6570\u7ec4\u4fdd\u5b58<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u8bfb\u53d6\u7528\u6237\u8f93\u5165\u7684\u8d26\u6237\u540d\u79f0,\u5c06\u8d26\u6237\u540d\u5199\u5165\u5230\u6570\u7ec4\u4fdd\u5b58 \n\n# \u5b9a\u4e49\u6570\u7ec4\u540d\u79f0\u4e3a name,\u6570\u7ec4\u7684\u4e0b\u6807\u4e3a i,\u5c0f\u6807\u4ece 0 \u5f00\u59cb,\u6bcf\u8f93\u5165\u4e00\u4e2a\u8d26\u6237\u540d,\u4e0b\u6807\u52a0 1,\u7ee7\u7eed\u5b58\u4e0b\u4e00\u4e2a\u8d26\u6237\n# \u6700\u540e,\u8f93\u5165 over,\u811a\u672c\u8f93\u51fa\u603b\u7ed3\u6027\u4fe1\u606f\u540e\u811a\u672c\u9000\u51fa\ni=0\nwhile :\ndo\n  read -p &quot;\u8bf7\u8f93\u5165\u8d26\u6237\u540d,\u8f93\u5165 over \u7ed3\u675f:&quot; key\n  if [ $key == &quot;over&quot; ];then \n    break\n    else\n    name[$i]=$key\n    let i++\n    fi\ndone\necho &quot;\u603b\u8d26\u6237\u540d\u6570\u91cf:${#name[*]}&quot;\necho &quot;${name[@]}&quot;<\/code><\/pre>\n<p>95\u3001\u5224\u65ad\u6587\u4ef6\u6216\u76ee\u5f55\u662f\u5426\u5b58\u5728<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u5224\u65ad\u6587\u4ef6\u6216\u76ee\u5f55\u662f\u5426\u5b58\u5728 \n\nif [ $# -eq 0 ] ;then\necho &quot;\u672a\u8f93\u5165\u4efb\u4f55\u53c2\u6570,\u8bf7\u8f93\u5165\u53c2\u6570&quot;\necho &quot;\u7528\u6cd5:$0 [\u6587\u4ef6\u540d|\u76ee\u5f55\u540d]&quot;\nfi\nif [ -f $1 ];then\n  echo &quot;\u8be5\u6587\u4ef6,\u5b58\u5728&quot;\n  ls -l $1\nelse\n  echo &quot;\u6ca1\u6709\u8be5\u6587\u4ef6&quot;\nfi\nif [ -d  $1 ];then\n     echo &quot;\u8be5\u76ee\u5f55,\u5b58\u5728&quot;\n     ls -ld  $2\nelse\n     echo &quot;\u6ca1\u6709\u8be5\u76ee\u5f55&quot;\nfi<\/code><\/pre>\n<p>96\u3001\u6253\u5370\u5404\u79cd\u683c\u5f0f\u7684\u65f6\u95f4<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u6253\u5370\u5404\u79cd\u65f6\u95f4\u683c\u5f0f \n\necho &quot;\u663e\u793a\u661f\u671f\u7b80\u79f0(\u5982:Sun)&quot;\ndate +%a\necho &quot;\u663e\u793a\u661f\u671f\u5168\u79f0(\u5982:Sunday)&quot;\ndate +%A\necho &quot;\u663e\u793a\u6708\u4efd\u7b80\u79f0(\u5982:Jan)&quot;\ndate +%b\necho &quot;\u663e\u793a\u6708\u4efd\u5168\u79f0(\u5982:January)&quot;\ndate +%B\necho &quot;\u663e\u793a\u6570\u5b57\u6708\u4efd(\u5982:12)&quot;\ndate +%m\necho &quot;\u663e\u793a\u6570\u5b57\u65e5\u671f(\u5982:01 \u53f7)&quot;\ndate +%d\necho &quot;\u663e\u793a\u6570\u5b57\u5e74(\u5982:01 \u53f7)&quot;\ndate +%Y echo &quot;\u663e\u793a\u5e74\u2010\u6708\u2010\u65e5&quot;\ndate +%F\necho &quot;\u663e\u793a\u5c0f\u65f6(24 \u5c0f\u65f6\u5236)&quot;\ndate +%H\necho &quot;\u663e\u793a\u5206\u949f(00..59)&quot;\ndate +%M\necho &quot;\u663e\u793a\u79d2&quot;\ndate +%S\necho &quot;\u663e\u793a\u7eb3\u79d2&quot;\ndate +%N\necho &quot;\u7ec4\u5408\u663e\u793a&quot;\ndate +&quot;%Y%m%d %H:%M:%S&quot;<\/code><\/pre>\n<p>97\u3001\u4f7f\u7528 egrep \u8fc7\u6ee4 MAC \u5730\u5740<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528 egrep \u8fc7\u6ee4 MAC \u5730\u5740 \n\n# MAC \u5730\u5740\u7531 16 \u8fdb\u5236\u7ec4\u6210,\u5982 AA:BB:CC:DD:EE:FF\n# [0\u20109a\u2010fA\u2010F]{2}\u8868\u793a\u4e00\u6bb5\u5341\u516d\u8fdb\u5236\u6570\u503c,{5}\u8868\u793a\u8fde\u7eed\u51fa\u73b05\u7ec4\u524d\u7f6e:\u7684\u5341\u516d\u8fdb\u5236\negrep &quot;[0\u20109a\u2010fA\u2010F]{2}(:[0\u20109a\u2010fA\u2010F]{2}){5}&quot; $1<\/code><\/pre>\n<p>98\u3001\u7edf\u8ba1\u53cc\u8272\u7403\u5404\u4e2a\u6570\u5b57\u7684\u4e2d\u5956\u6982\u7387<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u7edf\u8ba1\u53cc\u8272\u7403\u5404\u4e2a\u6570\u5b57\u7684\u4e2d\u5956\u6982\u7387 \n\n# \u5f80\u671f\u53cc\u8272\u7403\u4e2d\u5956\u53f7\u7801\u5982\u4e0b:\n# 01 04 11 28 31 32  16\n# 04 07 08 18 23 24  02\n# 02 05 06 16 28 29  04\n# 04 19 22 27 30 33  01\n# 05 10 18 19 30 31  03\n# 02 06 11 12 19 29  06\n# \u7edf\u8ba1\u7bee\u7403\u548c\u7ea2\u7403\u6570\u636e\u51fa\u73b0\u7684\u6982\u7387\u6b21\u6570(\u7bee\u7403\u4e0d\u5206\u987a\u5e8f,\u7edf\u8ba1\u6240\u6709\u7bee\u7403\u6df7\u5408\u5728\u4e00\u8d77\u7684\u6982\u7387)\nawk &#039;{print $1&quot;\\n&quot;$2&quot;\\n&quot;$3&quot;\\n&quot;$4&quot;\\n&quot;$5&quot;\\n&quot;$6}&#039; 1.txt | sort | uniq -c | sort\nawk &#039;{print $7}&#039; 1.txt | sort | uniq -c | sort<\/code><\/pre>\n<p>99\u3001\u751f\u6210\u7b7e\u540d\u79c1\u94a5\u548c\u8bc1\u4e66<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u751f\u6210\u7b7e\u540d\u79c1\u94a5\u548c\u8bc1\u4e66 \n\nread -p &quot;\u8bf7\u8f93\u5165\u5b58\u653e\u8bc1\u4e66\u7684\u76ee\u5f55:&quot; dir\nif [ ! -d $dir ];then\n  echo &quot;\u8be5\u76ee\u5f55\u4e0d\u5b58\u5728&quot;\n  exit\nfi\nread -p &quot;\u8bf7\u8f93\u5165\u5bc6\u94a5\u540d\u79f0:&quot; name\n# \u4f7f\u7528 openssl \u751f\u6210\u79c1\u94a5\nopenssl genrsa -out ${dir}\/${name}.key\n# \u4f7f\u7528 openssl \u751f\u6210\u8bc1\u4e66 #subj \u9009\u9879\u53ef\u4ee5\u5728\u751f\u6210\u8bc1\u4e66\u65f6,\u975e\u4ea4\u4e92\u81ea\u52a8\u586b\u5199 Common Name \u4fe1\u606f\nopenssl req -new -x509 -key ${dir}\/${name}.key -subj &quot;\/CN=common&quot; -out ${dir}\/${name}.crt<\/code><\/pre>\n<p>100\u3001\u4f7f\u7528awk\u7f16\u5199\u7684wc\u7a0b\u5e8f<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\n# \u4f7f\u7528awk\u7f16\u5199\u7684wc\u7a0b\u5e8f \n\n# \u81ea\u5b9a\u4e49\u53d8\u91cf chars \u53d8\u91cf\u5b58\u50a8\u5b57\u7b26\u4e2a\u6570,\u81ea\u5b9a\u4e49\u53d8\u91cf words \u53d8\u91cf\u5b58\u50a8\u5355\u8bcd\u4e2a\u6570\n# awk \u5185\u7f6e\u53d8\u91cf NR \u5b58\u50a8\u884c\u6570\n# length()\u4e3a awk \u5185\u7f6e\u51fd\u6570,\u7528\u6765\u7edf\u8ba1\u6bcf\u884c\u7684\u5b57\u7b26\u6570\u91cf,\u56e0\u4e3a\u6bcf\u884c\u90fd\u4f1a\u6709\u4e00\u4e2a\u9690\u85cf\u7684$,\u6240\u4ee5\u6bcf\u6b21\u7edf\u8ba1\u540e\u90fd+1\n# wc \u7a0b\u5e8f\u4f1a\u628a\u6587\u4ef6\u7ed3\u5c3e\u7b26$\u4e5f\u7edf\u8ba1\u5728\u5185,\u53ef\u4ee5\u4f7f\u7528 cat \u2010A \u6587\u4ef6\u540d,\u67e5\u770b\u8be5\u9690\u85cf\u5b57\u7b26\nawk &#039;{chars+=length($0)+1;words+=NF} END{print NR,words,chars}&#039; $1<\/code><\/pre>\n<p>\u8f6c\u81ea\uff1aDevOps\u6280\u672f\u6808 <\/p>\n<p>\u539f\u6587\uff1a<a href=\"https:\/\/wenku.baidu.com\/view\/4f089430a11614791711cc7931b765ce05087a09.htm\">https:\/\/wenku.baidu.com\/view\/4f089430a11614791711cc7931b765ce05087a09.htm<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>100\u4e2aLinux Shell\u811a\u672c\u7ecf\u5178\u6848\u4f8b \u6211\u4e0d\u7231\u673a\u5668\u5b66\u4e60 2022-05-22 12:38 \u53d1\u8868\u4e8e\u6d59\u6c5f \u6536\u5f55\u4e8e\u5408\u96c6#Linux1\u4e2a 1   \u2026 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[14],"tags":[],"_links":{"self":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts\/890"}],"collection":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=890"}],"version-history":[{"count":2,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/890\/revisions"}],"predecessor-version":[{"id":1123,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/890\/revisions\/1123"}],"wp:attachment":[{"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=890"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=890"},{"taxonomy":"post_tag","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}