{"id":306,"date":"2026-07-06T08:33:26","date_gmt":"2026-07-06T00:33:26","guid":{"rendered":"https:\/\/numsimlab.com\/?p=306"},"modified":"2026-07-06T08:33:26","modified_gmt":"2026-07-06T00:33:26","slug":"cli-%e5%91%bd%e4%bb%a4%e8%a1%8c%e7%95%8c%e9%9d%a2%e5%ae%8c%e5%85%a8%e6%8c%87%e5%8d%97","status":"publish","type":"post","link":"https:\/\/numsimlab.com\/?p=306","title":{"rendered":"CLI \u547d\u4ee4\u884c\u754c\u9762\u5b8c\u5168\u6307\u5357"},"content":{"rendered":"\n<!-- Generated by   -->\n<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>CLI \u547d\u4ee4\u884c\u754c\u9762\u5b8c\u5168\u6307\u5357 | CLI Command Line Interface Guide<\/title>\n<style>\n  :root {\n    --bg: #f8f9fb;\n    --surface: #ffffff;\n    --ink: #1a1a2e;\n    --muted: #5a6578;\n    --rule: #e2e5ea;\n    --accent: #2563eb;\n    --accent2: #059669;\n    --accent3: #8b5cf6;\n    --code-bg: #1e293b;\n    --code-text: #e2e8f0;\n    --warn-bg: #fffbeb;\n    --warn-border: #f59e0b;\n    --err-bg: #fef2f2;\n    --err-border: #ef4444;\n    --ok-bg: #ecfdf5;\n    --ok-border: #10b981;\n    --info-bg: #eff6ff;\n    --info-border: #3b82f6;\n    --tip-bg: #f5f3ff;\n    --tip-border: #8b5cf6;\n  }\n\n  [data-theme=\"dark\"] {\n    --bg: #0f172a;\n    --surface: #1e293b;\n    --ink: #f1f5f9;\n    --muted: #94a3b8;\n    --rule: #334155;\n    --accent: #60a5fa;\n    --accent2: #34d399;\n    --accent3: #a78bfa;\n    --code-bg: #020617;\n    --code-text: #cbd5e1;\n    --warn-bg: #2a1b0f;\n    --warn-border: #f59e0b;\n    --err-bg: #2a0f0f;\n    --err-border: #ef4444;\n    --ok-bg: #0f2a1b;\n    --ok-border: #10b981;\n    --info-bg: #0f1f2a;\n    --info-border: #3b82f6;\n    --tip-bg: #1f0f2a;\n    --tip-border: #8b5cf6;\n  }\n\n  *{margin:0;padding:0;box-sizing:border-box}\n  body{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",\"Noto Sans SC\",\"PingFang SC\",\"Microsoft YaHei\",sans-serif;background:var(--bg);color:var(--ink);line-height:1.75;font-size:15px;transition:background 0.3s,color 0.3s}\n\n  \/* Header *\/\n  header {\n    background: var(--surface);\n    border-bottom: 1px solid var(--rule);\n    padding: 0.75rem 0;\n    position: sticky;\n    top: 0;\n    z-index: 100;\n  }\n\n  .header-inner {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    max-width: 920px;\n    margin: 0 auto;\n    padding: 0 1.25rem;\n  }\n\n  .logo {\n    font-size: 1.2rem;\n    font-weight: 700;\n    color: var(--accent);\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n  }\n\n  .controls {\n    display: flex;\n    gap: 0.6rem;\n    align-items: center;\n  }\n\n  .lang-switch {\n    display: flex;\n    background: var(--bg);\n    border: 1px solid var(--rule);\n    border-radius: 6px;\n    overflow: hidden;\n  }\n\n  .lang-switch button {\n    border: none;\n    background: transparent;\n    color: var(--muted);\n    padding: 0.35rem 0.85rem;\n    cursor: pointer;\n    font-size: 0.85rem;\n    transition: all 0.2s;\n  }\n\n  .lang-switch button.active {\n    background: var(--accent);\n    color: white;\n  }\n\n  .theme-toggle {\n    background: var(--bg);\n    border: 1px solid var(--rule);\n    border-radius: 6px;\n    padding: 0.35rem 0.65rem;\n    cursor: pointer;\n    color: var(--muted);\n    font-size: 1rem;\n    line-height: 1;\n  }\n\n  \/* Language sections *\/\n  .lang-section { display: none; }\n  .lang-section.active { display: block; }\n\n  .container{max-width:920px;margin:0 auto;padding:2rem 1.25rem 3rem}\n\n  .page-header{margin-bottom:2.5rem;text-align:center}\n  .page-header h1{font-size:1.8rem;font-weight:800;letter-spacing:-0.02em;margin-bottom:.5rem}\n  .page-header p{color:var(--muted);font-size:1rem;max-width:640px;margin:0 auto}\n  .badge{display:inline-block;background:var(--accent3);color:#fff;padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;margin-bottom:.8rem;text-transform:uppercase;letter-spacing:.05em}\n\n  .card{background:var(--surface);border:1px solid var(--rule);border-radius:12px;padding:1.75rem 2rem;margin-bottom:1.5rem}\n  .card h2{font-size:1.25rem;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--accent);display:inline-block}\n  .card h3{font-size:1.05rem;font-weight:600;margin:1.5rem 0 .5rem;color:var(--accent)}\n  .card h3:first-child{margin-top:0}\n  .card p,.card li{color:var(--muted);margin-bottom:.6rem}\n  .card ul,.card ol{padding-left:1.5rem;margin-bottom:.75rem}\n\n  .cmd{display:flex;align-items:center;gap:.75rem;background:var(--code-bg);color:var(--code-text);padding:.8rem 1.2rem;border-radius:8px;font-family:\"SF Mono\",Monaco,\"Cascadia Code\",Consolas,monospace;font-size:.87rem;margin:.6rem 0;overflow-x:auto}\n  .cmd .p{color:#6ee7b7;user-select:none;flex-shrink:0}\n  .cmd .c{white-space:nowrap}\n\n  pre{background:var(--code-bg);color:var(--code-text);padding:1.1rem 1.25rem;border-radius:8px;overflow-x:auto;font-family:\"SF Mono\",Monaco,\"Cascadia Code\",Consolas,monospace;font-size:.85rem;line-height:1.6;margin:.75rem 0}\n  code{background:var(--bg);color:var(--accent);padding:.15rem .4rem;border-radius:4px;font-family:\"SF Mono\",Monaco,\"Cascadia Code\",Consolas,monospace;font-size:.87em}\n  pre code{background:transparent;color:inherit;padding:0}\n  .cm{color:#94a3b8}\n\n  .callout{padding:1rem 1.25rem;border-radius:8px;margin:1rem 0;border-left:4px solid}\n  .callout.warn{background:var(--warn-bg);border-color:var(--warn-border)}\n  .callout.err{background:var(--err-bg);border-color:var(--err-border)}\n  .callout.ok{background:var(--ok-bg);border-color:var(--ok-border)}\n  .callout.info{background:var(--info-bg);border-color:var(--info-border)}\n  .callout.tip{background:var(--tip-bg);border-color:var(--tip-border)}\n  .callout strong{display:block;margin-bottom:.3rem;color:var(--ink)}\n\n  .table-wrap{overflow-x:auto;margin:1rem 0}\n  table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:500px}\n  th,td{padding:.6rem .85rem;text-align:left;border-bottom:1px solid var(--rule)}\n  th{background:var(--bg);font-weight:600;color:var(--ink);white-space:nowrap}\n  tr:hover td{background:var(--bg)}\n\n  .compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}\n  .compare-box{border:1px solid var(--rule);border-radius:8px;padding:1.1rem;background:var(--surface)}\n  .compare-box .box-title{font-weight:700;font-size:.88rem;margin-bottom:.5rem;color:var(--accent)}\n\n  .tag{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;margin-right:.2rem}\n  .tag-win{background:#dbeafe;color:#1d4ed8}\n  .tag-mac{background:#fce7f3;color:#be185d}\n  .tag-linux{background:#fef3c7;color:#92400e}\n  .tag-all{background:var(--accent);color:#fff}\n\n  .diagram{margin:1.5rem 0;text-align:center}\n  .diagram svg{max-width:100%;height:auto}\n\n  .summary-box{background:var(--surface);border:2px solid var(--accent);border-radius:12px;padding:1.5rem 1.75rem;margin-top:1.5rem}\n  .summary-box h2{border-bottom-color:var(--accent2);margin-top:0}\n  .s-row{display:flex;gap:1.5rem;margin:.6rem 0;align-items:flex-start}\n  .s-label{flex-shrink:0;font-weight:700;font-size:.9rem;color:var(--accent);min-width:110px}\n  .s-desc{color:var(--muted);font-size:.92rem}\n\n  .nav-toc{background:var(--surface);border:1px solid var(--rule);border-radius:12px;padding:1.25rem 1.75rem;margin-bottom:1.5rem}\n  .nav-toc h2{font-size:1.1rem;font-weight:700;margin-bottom:.75rem;color:var(--ink);border:none;padding:0}\n  .nav-toc ol{margin:0;padding-left:1.5rem;column-count:2;column-gap:2rem}\n  .nav-toc li{margin-bottom:.3rem;font-size:.92rem}\n  .nav-toc a{color:var(--accent);text-decoration:none}\n  .nav-toc a:hover{text-decoration:underline}\n\n  footer{text-align:center;color:var(--muted);font-size:.8rem;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--rule)}\n\n  @media(max-width:640px){\n    .compare-grid{grid-template-columns:1fr}\n    .nav-toc ol{column-count:1}\n    .page-header h1{font-size:1.5rem}\n    .card{padding:1.25rem 1.5rem}\n    .s-row{flex-direction:column;gap:.3rem}\n    .header-inner{flex-wrap:wrap;gap:.5rem}\n  }\n<\/style>\n<\/head>\n<body>\n\n<header>\n  <div class=\"header-inner\">\n    <div class=\"logo\">CLI Guide<\/div>\n    <div class=\"controls\">\n      <div class=\"lang-switch\">\n        <button class=\"active\" onclick=\"setLang('zh')\" id=\"btn-zh\">\u4e2d\u6587<\/button>\n        <button onclick=\"setLang('en')\" id=\"btn-en\">English<\/button>\n      <\/div>\n      <button class=\"theme-toggle\" onclick=\"toggleTheme()\" title=\"Toggle theme\">&#9788;<\/button>\n    <\/div>\n  <\/div>\n<\/header>\n\n<div class=\"container\">\n\n  <!-- ========== \u4e2d\u6587\u5185\u5bb9 ========== -->\n  <div class=\"lang-section active\" id=\"lang-zh\">\n\n    <div class=\"page-header\">\n      <span class=\"badge\">CLI \u5b8c\u5168\u6307\u5357<\/span>\n      <h1>\u547d\u4ee4\u884c\u754c\u9762\uff08CLI\uff09\u8be6\u7ec6\u8bf4\u660e\u6587\u6863<\/h1>\n      <p>\u4ece\u6982\u5ff5\u89e3\u6790\u5230\u5b9e\u9645\u64cd\u4f5c\uff0c\u5168\u9762\u7406\u89e3\u4ec0\u4e48\u662f CLI \u4ee5\u53ca\u5982\u4f55\u9ad8\u6548\u4f7f\u7528\u547d\u4ee4\u884c\u5b8c\u6210\u65e5\u5e38\u5de5\u4f5c<\/p>\n    <\/div>\n\n    <!-- \u76ee\u5f55 -->\n    <div class=\"nav-toc\">\n      <h2>\u76ee\u5f55<\/h2>\n      <ol>\n        <li><a href=\"#s1\">\u4ec0\u4e48\u662f CLI<\/a><\/li>\n        <li><a href=\"#s2\">CLI \u4e0e GUI \u7684\u533a\u522b<\/a><\/li>\n        <li><a href=\"#s3\">\u5e38\u89c1 CLI \u7a0b\u5e8f<\/a><\/li>\n        <li><a href=\"#s4\">\u5982\u4f55\u6253\u5f00 CLI<\/a><\/li>\n        <li><a href=\"#s5\">\u547d\u4ee4\u57fa\u672c\u7ed3\u6784<\/a><\/li>\n        <li><a href=\"#s6\">\u6587\u4ef6\u7cfb\u7edf\u5bfc\u822a<\/a><\/li>\n        <li><a href=\"#s7\">\u6587\u4ef6\u4e0e\u76ee\u5f55\u64cd\u4f5c<\/a><\/li>\n        <li><a href=\"#s8\">\u6587\u4ef6\u67e5\u770b\u4e0e\u7f16\u8f91<\/a><\/li>\n        <li><a href=\"#s9\">\u8fdb\u7a0b\u7ba1\u7406<\/a><\/li>\n        <li><a href=\"#s10\">\u7ba1\u9053\u4e0e\u91cd\u5b9a\u5411<\/a><\/li>\n        <li><a href=\"#s11\">\u73af\u5883\u53d8\u91cf<\/a><\/li>\n        <li><a href=\"#s12\">\u5305\u7ba1\u7406\u5668<\/a><\/li>\n        <li><a href=\"#s13\">\u5e38\u7528\u5f00\u53d1\u547d\u4ee4<\/a><\/li>\n        <li><a href=\"#s14\">\u8fdb\u9636\u6280\u5de7<\/a><\/li>\n        <li><a href=\"#s15\">\u901f\u67e5\u8868<\/a><\/li>\n      <\/ol>\n    <\/div>\n\n    <!-- \u7b2c1\u8282 -->\n    <div class=\"card\" id=\"s1\">\n      <h2>\u4e00\u3001\u4ec0\u4e48\u662f CLI<\/h2>\n      <p><strong>CLI<\/strong>\uff08Command Line Interface\uff0c\u547d\u4ee4\u884c\u754c\u9762\uff09\u662f\u4e00\u79cd\u901a\u8fc7<strong>\u7eaf\u6587\u672c\u547d\u4ee4<\/strong>\u4e0e\u8ba1\u7b97\u673a\u4ea4\u4e92\u7684\u65b9\u5f0f\u3002\u4e0e\u4f7f\u7528\u9f20\u6807\u70b9\u51fb\u56fe\u5f62\u754c\u9762\uff08GUI\uff09\u4e0d\u540c\uff0cCLI \u8981\u6c42\u7528\u6237\u5728\u7ec8\u7aef\u4e2d\u8f93\u5165\u6587\u5b57\u6307\u4ee4\uff0c\u8ba1\u7b97\u673a\u6267\u884c\u540e\u8fd4\u56de\u6587\u672c\u7ed3\u679c\u3002<\/p>\n\n      <h3>\u6838\u5fc3\u7ec4\u6210\u8981\u7d20<\/h3>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>\u8981\u7d20<\/th><th>\u8bf4\u660e<\/th><th>\u793a\u4f8b<\/th><\/tr>\n          <tr><td>\u7ec8\u7aef \/ Terminal<\/td><td>\u63a5\u6536\u548c\u663e\u793a\u6587\u672c\u7684\u7a97\u53e3\u7a0b\u5e8f<\/td><td>Windows Terminal\u3001iTerm2<\/td><\/tr>\n          <tr><td>Shell<\/td><td>\u89e3\u91ca\u548c\u6267\u884c\u547d\u4ee4\u7684\u7a0b\u5e8f<\/td><td>PowerShell\u3001bash\u3001zsh<\/td><\/tr>\n          <tr><td>\u547d\u4ee4 \/ Command<\/td><td>\u544a\u8bc9\u8ba1\u7b97\u673a\u6267\u884c\u4ec0\u4e48\u64cd\u4f5c<\/td><td><code>cd<\/code>\u3001<code>ls<\/code>\u3001<code>git<\/code><\/td><\/tr>\n          <tr><td>\u53c2\u6570 \/ Argument<\/td><td>\u547d\u4ee4\u64cd\u4f5c\u7684\u76ee\u6807\u5bf9\u8c61<\/td><td>\u6587\u4ef6\u540d\u3001\u8def\u5f84\u3001URL<\/td><\/tr>\n          <tr><td>\u9009\u9879 \/ Option (Flag)<\/td><td>\u4fee\u6539\u547d\u4ee4\u884c\u4e3a\u7684\u5f00\u5173<\/td><td><code>-h<\/code>\u3001<code>--help<\/code>\u3001<code>-f<\/code><\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>\u5386\u53f2\u80cc\u666f<\/h3>\n      <p>\u5728 20 \u4e16\u7eaa 60-80 \u5e74\u4ee3\uff0cCLI \u662f\u8ba1\u7b97\u673a<strong>\u552f\u4e00<\/strong>\u7684\u4ea4\u4e92\u65b9\u5f0f\u3002\u56fe\u5f62\u754c\u9762\uff08GUI\uff09\u666e\u53ca\u540e\uff0cCLI \u9010\u6e10\u9000\u5c45\u5e55\u540e\uff0c\u4f46\u5728\u4ee5\u4e0b\u9886\u57df\u4ecd\u7136\u4e0d\u53ef\u66ff\u4ee3\uff1a<\/p>\n      <ul>\n        <li><strong>\u8f6f\u4ef6\u5f00\u53d1<\/strong> \u2014 \u4ee3\u7801\u7f16\u8bd1\u3001\u6d4b\u8bd5\u3001\u7248\u672c\u63a7\u5236\u3001\u4f9d\u8d56\u7ba1\u7406<\/li>\n        <li><strong>\u670d\u52a1\u5668\u8fd0\u7ef4<\/strong> \u2014 \u8fdc\u7a0b\u7ba1\u7406\u65e0\u56fe\u5f62\u754c\u9762\u7684\u670d\u52a1\u5668<\/li>\n        <li><strong>\u6570\u636e\u79d1\u5b66<\/strong> \u2014 Python \u865a\u62df\u73af\u5883\u3001pip \u5305\u7ba1\u7406\u3001Jupyter \u542f\u52a8<\/li>\n        <li><strong>DevOps \/ CI\/CD<\/strong> \u2014 \u81ea\u52a8\u5316\u90e8\u7f72\u811a\u672c\u3001Docker \u64cd\u4f5c<\/li>\n      <\/ul>\n    <\/div>\n\n    <!-- \u7b2c2\u8282 -->\n    <div class=\"card\" id=\"s2\">\n      <h2>\u4e8c\u3001CLI \u4e0e GUI \u7684\u533a\u522b<\/h2>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>\u7ef4\u5ea6<\/th><th>CLI\uff08\u547d\u4ee4\u884c\uff09<\/th><th>GUI\uff08\u56fe\u5f62\u754c\u9762\uff09<\/th><\/tr>\n          <tr><td><strong>\u4ea4\u4e92\u65b9\u5f0f<\/strong><\/td><td>\u952e\u76d8\u8f93\u5165\u6587\u672c\u547d\u4ee4<\/td><td>\u9f20\u6807\u70b9\u51fb\u3001\u62d6\u62fd<\/td><\/tr>\n          <tr><td><strong>\u5b66\u4e60\u66f2\u7ebf<\/strong><\/td><td>\u8f83\u9661\uff0c\u9700\u8bb0\u5fc6\u547d\u4ee4<\/td><td>\u5e73\u7f13\uff0c\u6240\u89c1\u5373\u6240\u5f97<\/td><\/tr>\n          <tr><td><strong>\u64cd\u4f5c\u6548\u7387<\/strong><\/td><td>\u719f\u7ec3\u540e\u6781\u5feb\uff08\u6279\u91cf\/\u81ea\u52a8\u5316\uff09<\/td><td>\u9002\u5408\u7b80\u5355\u3001\u5076\u5c14\u7684\u64cd\u4f5c<\/td><\/tr>\n          <tr><td><strong>\u53ef\u91cd\u590d\u6027<\/strong><\/td><td>\u53ef\u5c06\u547d\u4ee4\u5199\u5165\u811a\u672c\u81ea\u52a8\u6267\u884c<\/td><td>\u96be\u4ee5\u7cbe\u786e\u590d\u5236\u6b65\u9aa4<\/td><\/tr>\n          <tr><td><strong>\u8d44\u6e90\u6d88\u8017<\/strong><\/td><td>\u6781\u4f4e\uff0c\u65e0\u56fe\u5f62\u6e32\u67d3\u5f00\u9500<\/td><td>\u8f83\u9ad8<\/td><\/tr>\n          <tr><td><strong>\u8fdc\u7a0b\u64cd\u4f5c<\/strong><\/td><td>SSH \u539f\u751f\u652f\u6301<\/td><td>\u9700\u8fdc\u7a0b\u684c\u9762\/VNC<\/td><\/tr>\n          <tr><td><strong>\u7cbe\u5ea6<\/strong><\/td><td>\u5b8c\u5168\u7cbe\u786e\uff0c\u65e0\u6b67\u4e49<\/td><td>\u4f9d\u8d56 UI \u8bbe\u8ba1<\/td><\/tr>\n        <\/table>\n      <\/div>\n      <div class=\"callout info\">\n        <strong>\u6838\u5fc3\u89c2\u70b9<\/strong>\n        CLI \u548c GUI \u5e76\u975e\u5bf9\u7acb\u5173\u7cfb\u3002GUI \u9002\u5408\u63a2\u7d22\u548c\u65e5\u5e38\u4f7f\u7528\uff0cCLI \u9002\u5408\u7cbe\u786e\u63a7\u5236\u548c\u81ea\u52a8\u5316\u3002\u4e13\u4e1a\u5f00\u53d1\u8005\u901a\u5e38<strong>\u4e24\u8005\u5e76\u7528<\/strong>\u3002\n      <\/div>\n    <\/div>\n\n    <!-- \u7b2c3\u8282 -->\n    <div class=\"card\" id=\"s3\">\n      <h2>\u4e09\u3001\u5e38\u89c1 CLI \u7a0b\u5e8f\uff08Shell\uff09<\/h2>\n      <p>Shell \u662f&#8221;\u547d\u4ee4\u89e3\u91ca\u5668&#8221;\uff0c\u8d1f\u8d23\u8bfb\u53d6\u7528\u6237\u8f93\u5165\u7684\u547d\u4ee4\u5e76\u4ea4\u7ed9\u64cd\u4f5c\u7cfb\u7edf\u6267\u884c\u3002\u4e0d\u540c\u64cd\u4f5c\u7cfb\u7edf\u63d0\u4f9b\u4e0d\u540c\u7684 Shell\uff1a<\/p>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Shell<\/th><th>\u5e73\u53f0<\/th><th>\u7279\u70b9<\/th><th>\u63d0\u793a\u7b26\u793a\u4f8b<\/th><\/tr>\n          <tr><td><strong>cmd.exe<\/strong><\/td><td><span class=\"tag tag-win\">Windows<\/span><\/td><td>Windows \u4f20\u7edf\u547d\u4ee4\u884c\uff0c\u529f\u80fd\u57fa\u7840<\/td><td><code>C:\\Users\\xxx><\/code><\/td><\/tr>\n          <tr><td><strong>PowerShell<\/strong><\/td><td><span class=\"tag tag-win\">Windows<\/span> <span class=\"tag tag-mac\">macOS<\/span> <span class=\"tag tag-linux\">Linux<\/span><\/td><td>\u5fae\u8f6f\u73b0\u4ee3 Shell\uff0c\u652f\u6301\u7ba1\u9053\u3001\u5bf9\u8c61\u3001\u811a\u672c<\/td><td><code>PS C:\\Users\\xxx><\/code><\/td><\/tr>\n          <tr><td><strong>bash<\/strong><\/td><td><span class=\"tag tag-mac\">macOS<\/span> <span class=\"tag tag-linux\">Linux<\/span><\/td><td>\u6700\u901a\u7528\u7684 Unix Shell\uff0c\u51e0\u4e4e\u6240\u6709\u670d\u52a1\u5668\u9ed8\u8ba4<\/td><td><code>user@host:~$<\/code><\/td><\/tr>\n          <tr><td><strong>zsh<\/strong><\/td><td><span class=\"tag tag-mac\">macOS<\/span><\/td><td>macOS Catalina \u8d77\u9ed8\u8ba4 Shell\uff0c\u63d2\u4ef6\u751f\u6001\u4e30\u5bcc\uff08Oh My Zsh\uff09<\/td><td><code>user@mac ~ %<\/code><\/td><\/tr>\n          <tr><td><strong>fish<\/strong><\/td><td><span class=\"tag tag-all\">\u8de8\u5e73\u53f0<\/span><\/td><td>\u53cb\u597d\u7684\u81ea\u52a8\u8865\u5168\u548c\u8bed\u6cd5\u9ad8\u4eae<\/td><td><code>user@host ~><\/code><\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>Windows \u7528\u6237\u7684\u9009\u62e9\u5efa\u8bae<\/h3>\n      <p>Windows \u63d0\u4f9b\u4e09\u79cd\u5e38\u7528\u7ec8\u7aef\uff1a<\/p>\n      <div class=\"compare-grid\">\n        <div class=\"compare-box\">\n          <div class=\"box-title\">cmd.exe<\/div>\n          <p style=\"font-size:.85rem;\">\u6700\u57fa\u7840\uff0c\u517c\u5bb9\u8001\u65e7\u811a\u672c\u3002\u4e0d\u652f\u6301\u73b0\u4ee3\u7279\u6027\uff08\u5982\u7ba1\u9053\u5bf9\u8c61\u3001\u522b\u540d\uff09\uff0c<strong>\u4e0d\u63a8\u8350\u4f5c\u4e3a\u65e5\u5e38\u4e3b\u529b<\/strong>\u3002<\/p>\n        <\/div>\n        <div class=\"compare-box\">\n          <div class=\"box-title\">PowerShell\uff08\u63a8\u8350\uff09<\/div>\n          <p style=\"font-size:.85rem;\">\u529f\u80fd\u5f3a\u5927\uff0c\u652f\u6301 <code>ls<\/code>\u3001<code>cd<\/code> \u7b49 Unix \u98ce\u683c\u547d\u4ee4\uff0c\u539f\u751f\u5904\u7406 JSON\/XML\uff0c<strong>Windows \u5f00\u53d1\u9996\u9009<\/strong>\u3002<\/p>\n        <\/div>\n        <div class=\"compare-box\">\n          <div class=\"box-title\">WSL \/ Git Bash<\/div>\n          <p style=\"font-size:.85rem;\">\u5728 Windows \u4e2d\u8fd0\u884c Linux \u73af\u5883\u3002\u9002\u5408\u9700\u8981 Linux \u547d\u4ee4\u7684\u573a\u666f\uff08\u5982 shell \u811a\u672c\u3001Docker\uff09\u3002<\/p>\n        <\/div>\n        <div class=\"compare-box\">\n          <div class=\"box-title\">Windows Terminal<\/div>\n          <p style=\"font-size:.85rem;\">\u5fae\u8f6f\u5b98\u65b9\u7ec8\u7aef\u5e94\u7528\uff0c\u652f\u6301\u591a\u6807\u7b7e\u3001\u81ea\u5b9a\u4e49\u4e3b\u9898\u3002\u53ef\u540c\u65f6\u8fd0\u884c cmd \/ PowerShell \/ WSL\u3002<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u7b2c4\u8282 -->\n    <div class=\"card\" id=\"s4\">\n      <h2>\u56db\u3001\u5982\u4f55\u6253\u5f00 CLI<\/h2>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>\u5e73\u53f0<\/th><th>\u65b9\u5f0f<\/th><th>\u8bf4\u660e<\/th><\/tr>\n          <tr><td><span class=\"tag tag-win\">Windows<\/span><\/td><td><code>Win + R<\/code> \u2192 \u8f93\u5165 <code>powershell<\/code> \u2192 \u56de\u8f66<\/td><td>\u5feb\u901f\u6253\u5f00 PowerShell<\/td><\/tr>\n          <tr><td><span class=\"tag tag-win\">Windows<\/span><\/td><td>\u53f3\u952e\u5f00\u59cb\u83dc\u5355 \u2192 &#8220;Windows Terminal&#8221; \u6216 &#8220;\u7ec8\u7aef&#8221;<\/td><td>\u6253\u5f00\u591a\u6807\u7b7e\u7ec8\u7aef<\/td><\/tr>\n          <tr><td><span class=\"tag tag-win\">Windows<\/span><\/td><td>\u5728\u6587\u4ef6\u8d44\u6e90\u7ba1\u7406\u5668\u5730\u5740\u680f\u8f93\u5165 <code>powershell<\/code><\/td><td>\u5728\u5f53\u524d\u76ee\u5f55\u6253\u5f00\u7ec8\u7aef<\/td><\/tr>\n          <tr><td><span class=\"tag tag-win\">Windows<\/span><\/td><td>\u53f3\u952e\u6587\u4ef6\u5939 \u2192 &#8220;\u5728\u7ec8\u7aef\u4e2d\u6253\u5f00&#8221;<\/td><td>Win11 \u539f\u751f\u652f\u6301<\/td><\/tr>\n          <tr><td><span class=\"tag tag-mac\">macOS<\/span><\/td><td><code>Cmd + \u7a7a\u683c<\/code> \u2192 \u641c\u7d22 &#8220;Terminal&#8221;<\/td><td>\u6253\u5f00\u7ec8\u7aef\uff08zsh\uff09<\/td><\/tr>\n          <tr><td><span class=\"tag tag-mac\">macOS<\/span><\/td><td>Finder \u2192 \u5e94\u7528\u7a0b\u5e8f \u2192 \u5b9e\u7528\u5de5\u5177 \u2192 \u7ec8\u7aef<\/td><td>\u624b\u52a8\u5bfc\u822a<\/td><\/tr>\n          <tr><td><span class=\"tag tag-linux\">Linux<\/span><\/td><td><code>Ctrl + Alt + T<\/code><\/td><td>\u5927\u591a\u6570\u53d1\u884c\u7248\u7684\u5feb\u6377\u952e<\/td><\/tr>\n        <\/table>\n      <\/div>\n      <div class=\"callout ok\">\n        <strong>\u6253\u5f00\u540e\u7684\u7b2c\u4e00\u4ef6\u4e8b<\/strong>\n        \u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\u9a8c\u8bc1 Shell \u7c7b\u578b\uff1a\n        <div class=\"cmd\" style=\"margin-top:.5rem\"><span class=\"p\">$<\/span><span class=\"c\">echo $SHELL<\/span><\/div>\n        \u6216\u5728 PowerShell \u4e2d\uff1a\n        <div class=\"cmd\" style=\"margin-top:.3rem\"><span class=\"p\">PS><\/span><span class=\"c\">$PSVersionTable<\/span><\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u7b2c5\u8282 -->\n    <div class=\"card\" id=\"s5\">\n      <h2>\u4e94\u3001\u547d\u4ee4\u7684\u57fa\u672c\u7ed3\u6784<\/h2>\n      <p>\u6bcf\u4e00\u6761 CLI \u547d\u4ee4\u90fd\u9075\u5faa\u7edf\u4e00\u7684\u8bed\u6cd5\u683c\u5f0f\uff1a<\/p>\n\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">\u547d\u4ee4 [\u9009\u9879] [\u53c2\u6570]<\/span><\/div>\n\n      <p>\u5404\u90e8\u5206\u7684\u542b\u4e49\uff1a<\/p>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>\u90e8\u5206<\/th><th>\u4f5c\u7528<\/th><th>\u793a\u4f8b<\/th><\/tr>\n          <tr><td><strong>\u547d\u4ee4<\/strong><\/td><td>\u8981\u6267\u884c\u7684\u7a0b\u5e8f\u6216\u64cd\u4f5c<\/td><td><code>git<\/code>\u3001<code>python<\/code>\u3001<code>pip<\/code>\u3001<code>npm<\/code><\/td><\/tr>\n          <tr><td><strong>\u9009\u9879\uff08\u77ed\u683c\u5f0f\uff09<\/strong><\/td><td>\u4ee5\u5355\u4e2a <code>-<\/code> \u5f00\u5934\uff0c\u63a7\u5236\u884c\u4e3a<\/td><td><code>-h<\/code>\u3001<code>-v<\/code>\u3001<code>-f<\/code><\/td><\/tr>\n          <tr><td><strong>\u9009\u9879\uff08\u957f\u683c\u5f0f\uff09<\/strong><\/td><td>\u4ee5\u53cc <code>--<\/code> \u5f00\u5934\uff0c\u542b\u4e49\u66f4\u660e\u786e<\/td><td><code>--help<\/code>\u3001<code>--version<\/code><\/td><\/tr>\n          <tr><td><strong>\u53c2\u6570<\/strong><\/td><td>\u547d\u4ee4\u64cd\u4f5c\u7684\u5bf9\u8c61<\/td><td>\u6587\u4ef6\u540d\u3001\u8def\u5f84\u3001URL\u3001\u6587\u672c<\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>\u5b9e\u9645\u62c6\u89e3\u793a\u4f8b<\/h3>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">pip install &#8211;upgrade numpy<\/span><\/div>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>\u90e8\u5206<\/th><th>\u5185\u5bb9<\/th><th>\u542b\u4e49<\/th><\/tr>\n          <tr><td>\u547d\u4ee4<\/td><td><code>pip<\/code><\/td><td>Python \u5305\u7ba1\u7406\u5de5\u5177<\/td><\/tr>\n          <tr><td>\u5b50\u547d\u4ee4<\/td><td><code>install<\/code><\/td><td>\u6267\u884c\u5b89\u88c5\u64cd\u4f5c<\/td><\/tr>\n          <tr><td>\u9009\u9879<\/td><td><code>--upgrade<\/code><\/td><td>\u5347\u7ea7\u5df2\u5b89\u88c5\u7684\u5305\u5230\u6700\u65b0\u7248<\/td><\/tr>\n          <tr><td>\u53c2\u6570<\/td><td><code>numpy<\/code><\/td><td>\u8981\u5b89\u88c5\/\u5347\u7ea7\u7684\u5305\u540d<\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>\u66f4\u591a\u793a\u4f8b<\/h3>\n      <pre><code><span class=\"cm\"># \u67e5\u770b\u5e2e\u52a9\uff08\u51e0\u4e4e\u6240\u6709 CLI \u5de5\u5177\u90fd\u652f\u6301\uff09<\/span>\ngit --help\npython --help\npip --help\n\n<span class=\"cm\"># \u67e5\u770b\u7248\u672c<\/span>\npython --version\nnode --version\n\n<span class=\"cm\"># \u591a\u4e2a\u77ed\u9009\u9879\u53ef\u5408\u5e76<\/span>\nls -a -l -h     <span class=\"cm\"># \u7b49\u4ef7\u4e8e<\/span>\nls -alh\n\n<span class=\"cm\"># \u957f\u9009\u9879\u548c\u77ed\u9009\u9879\u7b49\u4ef7<\/span>\npip install -r requirements.txt\npip install --requirement requirements.txt<\/code><\/pre>\n\n      <div class=\"callout tip\">\n        <strong>\u6551\u547d\u6280\u5de7<\/strong>\n        \u5fd8\u8bb0\u547d\u4ee4\u600e\u4e48\u7528\u65f6\uff0c\u968f\u65f6\u8f93\u5165 <code>\u547d\u4ee4 --help<\/code> \u6216 <code>\u547d\u4ee4 -h<\/code>\u3002\u8fd9\u51e0\u4e4e\u9002\u7528\u4e8e\u6240\u6709 CLI \u5de5\u5177\u3002\u4f8b\u5982 <code>git --help<\/code>\u3001<code>docker --help<\/code>\u3001<code>pytest --help<\/code>\u3002\n      <\/div>\n    <\/div>\n\n    <!-- \u7b2c6\u8282 -->\n    <div class=\"card\" id=\"s6\">\n      <h2>\u516d\u3001\u6587\u4ef6\u7cfb\u7edf\u5bfc\u822a<\/h2>\n      <p>CLI \u64cd\u4f5c\u7684\u7b2c\u4e00\u6b65\u662f\u5b66\u4f1a\u5728\u6587\u4ef6\u7cfb\u7edf\u4e2d\u79fb\u52a8\u3002\u4ee5\u4e0b\u547d\u4ee4\u5728\u6240\u6709\u5e73\u53f0\u901a\u7528\uff08PowerShell \u540c\u6837\u652f\u6301\uff09\uff1a<\/p>\n\n      <h3>6.1 \u67e5\u770b\u5f53\u524d\u8def\u5f84<\/h3>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">pwd<\/span><\/div>\n      <pre><code>\/home\/user\/projects\/my-app<\/code><\/pre>\n\n      <h3>6.2 \u5217\u51fa\u76ee\u5f55\u5185\u5bb9<\/h3>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">ls<\/span><\/div>\n      <pre><code>file1.txt  folder_a  README.md  src\/<\/code><\/pre>\n      <p>\u5e38\u7528\u9009\u9879\uff1a<\/p>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>\u9009\u9879<\/th><th>\u542b\u4e49<\/th><th>Windows (cmd) \u7b49\u4ef7<\/th><\/tr>\n          <tr><td><code>ls -l<\/code><\/td><td>\u8be6\u7ec6\u5217\u8868\uff08\u6743\u9650\u3001\u5927\u5c0f\u3001\u65f6\u95f4\uff09<\/td><td><code>dir<\/code><\/td><\/tr>\n          <tr><td><code>ls -a<\/code><\/td><td>\u663e\u793a\u9690\u85cf\u6587\u4ef6\uff08\u4ee5 . \u5f00\u5934\u7684\u6587\u4ef6\uff09<\/td><td><code>dir \/a<\/code><\/td><\/tr>\n          <tr><td><code>ls -la<\/code><\/td><td>\u8be6\u7ec6\u5217\u8868 + \u9690\u85cf\u6587\u4ef6<\/td><td><code>dir \/a<\/code><\/td><\/tr>\n          <tr><td><code>ls -lh<\/code><\/td><td>\u4eba\u7c7b\u53ef\u8bfb\u7684\u6587\u4ef6\u5927\u5c0f\uff08KB\/MB\uff09<\/td><td>\u2014<\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>6.3 \u5207\u6362\u76ee\u5f55<\/h3>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">cd \/home\/user\/projects<\/span><\/div>\n      <pre><code><span class=\"cm\"># \u8fdb\u5165\u5b50\u76ee\u5f55<\/span>\ncd src\n\n<span class=\"cm\"># \u8fd4\u56de\u4e0a\u4e00\u7ea7\u76ee\u5f55<\/span>\ncd ..\n\n<span class=\"cm\"># \u8fd4\u56de\u4e0a\u4e24\u7ea7<\/span>\ncd ..\/..\n\n<span class=\"cm\"># \u56de\u5230\u7528\u6237\u4e3b\u76ee\u5f55<\/span>\ncd ~          <span class=\"cm\"># Linux\/macOS<\/span>\ncd %USERPROFILE%    <span class=\"cm\"># Windows (cmd)<\/span>\ncd $HOME     <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># \u56de\u5230\u4e0a\u4e00\u6b21\u6240\u5728\u7684\u76ee\u5f55<\/span>\ncd -<\/code><\/pre>\n\n      <div class=\"callout info\">\n        <strong>Windows \u8def\u5f84\u5199\u6cd5<\/strong>\n        Windows \u4f7f\u7528\u53cd\u659c\u6760 <code>\\<\/code>\uff08\u5982 <code>C:\\Users\\xxx<\/code>\uff09\uff0c\u4f46 PowerShell \u548c\u73b0\u4ee3\u5de5\u5177\u4e5f\u652f\u6301\u6b63\u659c\u6760 <code>\/<\/code>\uff08\u5982 <code>C:\/Users\/xxx<\/code>\uff09\u3002\u5efa\u8bae\u7edf\u4e00\u4f7f\u7528\u6b63\u659c\u6760\u4ee5\u4fdd\u6301\u8de8\u5e73\u53f0\u4e00\u81f4\u6027\u3002\n      <\/div>\n    <\/div>\n\n    <!-- \u7b2c7\u8282 -->\n    <div class=\"card\" id=\"s7\">\n      <h2>\u4e03\u3001\u6587\u4ef6\u4e0e\u76ee\u5f55\u64cd\u4f5c<\/h2>\n\n      <h3>7.1 \u521b\u5efa\u76ee\u5f55<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS \/ PowerShell<\/span>\nmkdir new_folder\n\n<span class=\"cm\"># \u521b\u5efa\u591a\u7ea7\u76ee\u5f55\uff08\u7236\u76ee\u5f55\u4e0d\u5b58\u5728\u65f6\u81ea\u52a8\u521b\u5efa\uff09<\/span>\nmkdir -p project\/src\/utils     <span class=\"cm\"># Linux\/macOS<\/span>\nNew-Item -ItemType Directory -Force -Path project\/src\/utils  <span class=\"cm\"># PowerShell<\/span><\/code><\/pre>\n\n      <h3>7.2 \u521b\u5efa \/ \u5199\u5165\u6587\u4ef6<\/h3>\n      <pre><code><span class=\"cm\"># \u7528 touch \u521b\u5efa\u7a7a\u6587\u4ef6\uff08Linux\/macOS\/PowerShell \u5747\u53ef\uff09<\/span>\ntouch config.json\n\n<span class=\"cm\"># \u7528 echo \u5199\u5165\u5185\u5bb9\uff08> \u8986\u76d6\uff0c>> \u8ffd\u52a0\uff09<\/span>\necho \"Hello\" > hello.txt\necho \"World\" >> hello.txt<\/code><\/pre>\n\n      <h3>7.3 \u590d\u5236\u6587\u4ef6 \/ \u76ee\u5f55<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\ncp file1.txt file2.txt          <span class=\"cm\"># \u590d\u5236\u6587\u4ef6<\/span>\ncp -r folder_a folder_b          <span class=\"cm\"># \u9012\u5f52\u590d\u5236\u76ee\u5f55<\/span>\n\n<span class=\"cm\"># Windows (cmd)<\/span>\ncopy file1.txt file2.txt\nxcopy folder_a folder_b \/E \/I\n\n<span class=\"cm\"># PowerShell<\/span>\nCopy-Item file1.txt file2.txt\nCopy-Item -Recurse folder_a folder_b<\/code><\/pre>\n\n      <h3>7.4 \u79fb\u52a8 \/ \u91cd\u547d\u540d<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\nmv old_name.txt new_name.txt     <span class=\"cm\"># \u91cd\u547d\u540d<\/span>\nmv file.txt folder\/              <span class=\"cm\"># \u79fb\u52a8\u5230\u76ee\u5f55<\/span>\n\n<span class=\"cm\"># Windows (cmd)<\/span>\nmove old_name.txt new_name.txt\n\n<span class=\"cm\"># PowerShell<\/span>\nMove-Item old_name.txt new_name.txt\nMove-Item file.txt folder\/<\/code><\/pre>\n\n      <h3>7.5 \u5220\u9664\u6587\u4ef6 \/ \u76ee\u5f55<\/h3>\n      <div class=\"callout err\">\n        <strong>\u8b66\u544a<\/strong>\n        CLI \u4e2d\u6ca1\u6709&#8221;\u56de\u6536\u7ad9&#8221;\u673a\u5236\uff0c<code>rm<\/code> \/ <code>del<\/code> \u547d\u4ee4\u5220\u9664\u7684\u6587\u4ef6<strong>\u65e0\u6cd5\u6062\u590d<\/strong>\u3002\u52a1\u5fc5\u8c28\u614e\u64cd\u4f5c\uff0c\u5c24\u5176\u662f <code>rm -rf<\/code>\u3002\n      <\/div>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\nrm file.txt                      <span class=\"cm\"># \u5220\u9664\u6587\u4ef6<\/span>\nrm -r folder\/                    <span class=\"cm\"># \u9012\u5f52\u5220\u9664\u76ee\u5f55\u53ca\u5185\u5bb9<\/span>\nrm -rf folder\/                   <span class=\"cm\"># \u5f3a\u5236\u9012\u5f52\u5220\u9664\uff08\u4e0d\u8be2\u95ee\u786e\u8ba4\uff09<\/span>\n\n<span class=\"cm\"># Windows (cmd)<\/span>\ndel file.txt\nrmdir \/s \/q folder\n\n<span class=\"cm\"># PowerShell<\/span>\nRemove-Item file.txt\nRemove-Item -Recurse -Force folder<\/code><\/pre>\n    <\/div>\n\n    <!-- \u7b2c8\u8282 -->\n    <div class=\"card\" id=\"s8\">\n      <h2>\u516b\u3001\u6587\u4ef6\u67e5\u770b\u4e0e\u7f16\u8f91<\/h2>\n\n      <h3>8.1 \u67e5\u770b\u6587\u4ef6\u5185\u5bb9<\/h3>\n      <pre><code><span class=\"cm\"># \u67e5\u770b\u5168\u90e8\u5185\u5bb9\uff08\u5c0f\u6587\u4ef6\uff09<\/span>\ncat file.txt      <span class=\"cm\"># Linux\/macOS\/PowerShell<\/span>\ntype file.txt     <span class=\"cm\"># Windows cmd<\/span>\nGet-Content file.txt  <span class=\"cm\"># PowerShell \u5b8c\u6574\u5199\u6cd5<\/span>\n\n<span class=\"cm\"># \u5206\u9875\u67e5\u770b\uff08\u5927\u6587\u4ef6\uff09<\/span>\nless file.txt     <span class=\"cm\"># Linux\/macOS\uff0c\u6309 q \u9000\u51fa<\/span>\nmore file.txt     <span class=\"cm\"># Windows cmd<\/span>\n\n<span class=\"cm\"># \u67e5\u770b\u524d N \u884c<\/span>\nhead -20 file.txt\nGet-Content file.txt -Head 20   <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># \u67e5\u770b\u540e N \u884c<\/span>\ntail -20 file.txt\nGet-Content file.txt -Tail 20   <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># \u5b9e\u65f6\u8ffd\u8e2a\u6587\u4ef6\u672b\u5c3e\uff08\u5e38\u7528\u4e8e\u67e5\u770b\u65e5\u5fd7\uff09<\/span>\ntail -f app.log<\/code><\/pre>\n\n      <h3>8.2 \u641c\u7d22\u6587\u4ef6\u5185\u5bb9<\/h3>\n      <pre><code><span class=\"cm\"># \u5728\u6587\u4ef6\u4e2d\u641c\u7d22\u5173\u952e\u8bcd<\/span>\ngrep \"error\" log.txt\nSelect-String \"error\" log.txt    <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># \u9012\u5f52\u641c\u7d22\u76ee\u5f55\u4e2d\u6240\u6709\u6587\u4ef6<\/span>\ngrep -r \"TODO\" src\/\nSelect-String -Recurse \"TODO\" src\/   <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># \u641c\u7d22\u6587\u4ef6\u540d<\/span>\nfind . -name \"*.py\"\nGet-ChildItem -Recurse -Filter \"*.py\"   <span class=\"cm\"># PowerShell<\/span><\/code><\/pre>\n\n      <h3>8.3 \u6587\u4ef6\u4fe1\u606f<\/h3>\n      <pre><code><span class=\"cm\"># \u67e5\u770b\u6587\u4ef6\u5927\u5c0f\u548c\u78c1\u76d8\u4f7f\u7528<\/span>\ndu -sh folder\/                       <span class=\"cm\"># Linux\/macOS<\/span>\ndu -h --max-depth=1                  <span class=\"cm\"># \u67e5\u770b\u4e00\u7ea7\u5b50\u76ee\u5f55\u5927\u5c0f<\/span>\n\n<span class=\"cm\"># \u67e5\u770b\u78c1\u76d8\u603b\u7a7a\u95f4<\/span>\ndf -h                                <span class=\"cm\"># Linux\/macOS<\/span>\nGet-PSDrive C                        <span class=\"cm\"># PowerShell<\/span><\/code><\/pre>\n    <\/div>\n\n    <!-- \u7b2c9\u8282 -->\n    <div class=\"card\" id=\"s9\">\n      <h2>\u4e5d\u3001\u8fdb\u7a0b\u7ba1\u7406<\/h2>\n      <h3>9.1 \u67e5\u770b\u8fd0\u884c\u4e2d\u7684\u8fdb\u7a0b<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\nps aux                  <span class=\"cm\"># \u67e5\u770b\u6240\u6709\u8fdb\u7a0b<\/span>\nps aux | grep python    <span class=\"cm\"># \u7b5b\u9009 Python \u76f8\u5173\u8fdb\u7a0b<\/span>\ntop                     <span class=\"cm\"># \u5b9e\u65f6\u8fdb\u7a0b\u76d1\u63a7\uff08\u6309 q \u9000\u51fa\uff09<\/span>\n\n<span class=\"cm\"># Windows<\/span>\ntasklist\ntasklist | findstr python\n\n<span class=\"cm\"># PowerShell<\/span>\nGet-Process\nGet-Process | Where-Object {$_.Name -like \"*python*\"}<\/code><\/pre>\n\n      <h3>9.2 \u7ec8\u6b62\u8fdb\u7a0b<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\nkill 12345               <span class=\"cm\"># PID \u4e3a\u8fdb\u7a0b ID<\/span>\nkill -9 12345             <span class=\"cm\"># \u5f3a\u5236\u7ec8\u6b62<\/span>\npkill -f \"python app.py\"  <span class=\"cm\"># \u6309\u540d\u79f0\u7ec8\u6b62<\/span>\n\n<span class=\"cm\"># Windows<\/span>\ntaskkill \/PID 12345 \/F\n\n<span class=\"cm\"># PowerShell<\/span>\nStop-Process -Id 12345 -Force\nStop-Process -Name python -Force<\/code><\/pre>\n\n      <div class=\"callout tip\">\n        <strong>\u5feb\u901f\u7ec8\u6b62\u524d\u53f0\u8fdb\u7a0b<\/strong>\n        \u6309 <code>Ctrl + C<\/code> \u53ef\u7acb\u5373\u7ec8\u6b62\u5f53\u524d\u6b63\u5728\u524d\u53f0\u8fd0\u884c\u7684\u547d\u4ee4\u3002\u8fd9\u662f\u6700\u5e38\u7528\u7684\u4e2d\u65ad\u65b9\u5f0f\u3002\n      <\/div>\n    <\/div>\n\n    <!-- \u7b2c10\u8282 -->\n    <div class=\"card\" id=\"s10\">\n      <h2>\u5341\u3001\u7ba1\u9053\u4e0e\u91cd\u5b9a\u5411<\/h2>\n      <p>\u7ba1\u9053\u548c\u91cd\u5b9a\u5411\u662f CLI \u7684\u6838\u5fc3\u80fd\u529b\uff0c\u5141\u8bb8\u5c06\u547d\u4ee4\u7684<strong>\u8f93\u51fa<\/strong>\u4f5c\u4e3a\u53e6\u4e00\u4e2a\u547d\u4ee4\u7684<strong>\u8f93\u5165<\/strong>\uff0c\u6216\u5c06\u8f93\u51fa<strong>\u5199\u5165\u6587\u4ef6<\/strong>\u3002<\/p>\n\n      <h3>10.1 \u7ba1\u9053 <code>|<\/code><\/h3>\n      <p>\u5c06\u5de6\u8fb9\u547d\u4ee4\u7684\u8f93\u51fa\u4f20\u7ed9\u53f3\u8fb9\u547d\u4ee4\u5904\u7406\uff1a<\/p>\n      <pre><code><span class=\"cm\"># \u7edf\u8ba1\u76ee\u5f55\u4e0b Python \u6587\u4ef6\u6570\u91cf<\/span>\nls | grep \".py\" | wc -l\n\n<span class=\"cm\"># \u67e5\u627e\u5360\u7528 8080 \u7aef\u53e3\u7684\u8fdb\u7a0b<\/span>\nnetstat -ano | findstr :8080\n\n<span class=\"cm\"># \u5c06\u957f\u8f93\u51fa\u5206\u9875\u663e\u793a<\/span>\nps aux | less\n\n<span class=\"cm\"># PowerShell \u7ba1\u9053\u793a\u4f8b<\/span>\nGet-Process | Sort-Object CPU -Descending | Select-Object -First 5<\/code><\/pre>\n\n      <h3>10.2 \u91cd\u5b9a\u5411<\/h3>\n      <pre><code><span class=\"cm\"># > \u8986\u76d6\u5199\u5165\u6587\u4ef6<\/span>\necho \"log message\" > output.log\n\n<span class=\"cm\"># >> \u8ffd\u52a0\u5199\u5165\u6587\u4ef6<\/span>\necho \"another line\" >> output.log\n\n<span class=\"cm\"># 2> \u91cd\u5b9a\u5411\u9519\u8bef\u8f93\u51fa<\/span>\npython script.py 2> error.log\n\n<span class=\"cm\"># &> \u540c\u65f6\u91cd\u5b9a\u5411\u6807\u51c6\u8f93\u51fa\u548c\u9519\u8bef<\/span>\npython script.py &> all_output.log<\/code><\/pre>\n\n      <h3>10.3 \u5b9e\u7528\u7ec4\u5408<\/h3>\n      <pre><code><span class=\"cm\"># \u5c06 pip \u5b89\u88c5\u65e5\u5fd7\u4fdd\u5b58\u5230\u6587\u4ef6<\/span>\npip install numpy > install.log 2>&1\n\n<span class=\"cm\"># \u7edf\u8ba1\u4ee3\u7801\u884c\u6570<\/span>\nfind . -name \"*.py\" | xargs wc -l | tail -1\n\n<span class=\"cm\"># \u5feb\u901f\u521b\u5efa\u591a\u6587\u4ef6\u5907\u4efd<\/span>\ncp *.py backup\/<\/code><\/pre>\n    <\/div>\n\n    <!-- \u7b2c11\u8282 -->\n    <div class=\"card\" id=\"s11\">\n      <h2>\u5341\u4e00\u3001\u73af\u5883\u53d8\u91cf<\/h2>\n      <p>\u73af\u5883\u53d8\u91cf\u662f\u64cd\u4f5c\u7cfb\u7edf\u5c42\u9762\u7684\u5168\u5c40\u914d\u7f6e\uff0c\u5f71\u54cd\u6240\u6709\u7a0b\u5e8f\u7684\u8fd0\u884c\u884c\u4e3a\u3002<\/p>\n\n      <h3>11.1 \u67e5\u770b\u73af\u5883\u53d8\u91cf<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\necho $PATH\necho $HOME\n\n<span class=\"cm\"># Windows (cmd)<\/span>\necho %PATH%\n\n<span class=\"cm\"># PowerShell<\/span>\necho $env:PATH\necho $env:USERPROFILE<\/code><\/pre>\n\n      <h3>11.2 \u8bbe\u7f6e\u73af\u5883\u53d8\u91cf<\/h3>\n      <pre><code><span class=\"cm\"># \u4e34\u65f6\u8bbe\u7f6e\uff08\u4ec5\u5f53\u524d\u7ec8\u7aef\u4f1a\u8bdd\u6709\u6548\uff09<\/span>\nexport API_KEY=\"abc123\"             <span class=\"cm\"># Linux\/macOS<\/span>\n$env:API_KEY = \"abc123\"             <span class=\"cm\"># PowerShell<\/span>\nset API_KEY=abc123                  <span class=\"cm\"># Windows cmd<\/span>\n\n<span class=\"cm\"># \u6c38\u4e45\u8bbe\u7f6e\uff08\u5199\u5165\u914d\u7f6e\u6587\u4ef6\uff09<\/span>\n<span class=\"cm\"># Linux\/macOS: \u6dfb\u52a0\u5230 ~\/.bashrc \u6216 ~\/.zshrc<\/span>\necho 'export API_KEY=\"abc123\"' >> ~\/.bashrc\n\n<span class=\"cm\"># Windows: \u7cfb\u7edf\u5c5e\u6027 \u2192 \u9ad8\u7ea7 \u2192 \u73af\u5883\u53d8\u91cf\uff0c\u6216\u4f7f\u7528 PowerShell<\/span>\n[Environment]::SetEnvironmentVariable(\"API_KEY\", \"abc123\", \"User\")<\/code><\/pre>\n\n      <h3>11.3 PATH \u53d8\u91cf<\/h3>\n      <div class=\"callout info\">\n        <strong>PATH \u662f\u6700\u91cd\u8981\u7684\u73af\u5883\u53d8\u91cf<\/strong>\n        \u5b83\u544a\u8bc9\u64cd\u4f5c\u7cfb\u7edf\u53bb\u54ea\u4e9b\u76ee\u5f55\u67e5\u627e\u53ef\u6267\u884c\u7a0b\u5e8f\u3002\u5f53\u5728\u7ec8\u7aef\u8f93\u5165 <code>python<\/code> \u65f6\uff0c\u7cfb\u7edf\u4f1a\u6309 PATH \u4e2d\u5217\u51fa\u7684\u76ee\u5f55\u987a\u5e8f\u4f9d\u6b21\u67e5\u627e <code>python.exe<\/code>\u3002\u82e5\u62a5\u9519&#8221;\u547d\u4ee4\u672a\u627e\u5230&#8221;\uff0c\u901a\u5e38\u662f\u8be5\u7a0b\u5e8f\u672a\u5b89\u88c5\u6216\u672a\u52a0\u5165 PATH\u3002\n      <\/div>\n    <\/div>\n\n    <!-- \u7b2c12\u8282 -->\n    <div class=\"card\" id=\"s12\">\n      <h2>\u5341\u4e8c\u3001\u5305\u7ba1\u7406\u5668<\/h2>\n      <p>\u5305\u7ba1\u7406\u5668\u662f CLI \u4e2d\u6700\u5e38\u7528\u7684\u5de5\u5177\u7c7b\u522b\u4e4b\u4e00\uff0c\u7528\u4e8e\u5b89\u88c5\u3001\u5347\u7ea7\u3001\u5378\u8f7d\u8f6f\u4ef6\u3002<\/p>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>\u7ba1\u7406\u5668<\/th><th>\u7528\u9014<\/th><th>\u5e73\u53f0<\/th><th>\u5e38\u7528\u547d\u4ee4<\/th><\/tr>\n          <tr><td><code>pip<\/code><\/td><td>Python \u5305<\/td><td><span class=\"tag tag-all\">\u8de8\u5e73\u53f0<\/span><\/td><td><code>pip install \/ uninstall \/ list<\/code><\/td><\/tr>\n          <tr><td><code>npm<\/code><\/td><td>Node.js \u5305<\/td><td><span class=\"tag tag-all\">\u8de8\u5e73\u53f0<\/span><\/td><td><code>npm install \/ init \/ run<\/code><\/td><\/tr>\n          <tr><td><code>conda<\/code><\/td><td>Python + \u79d1\u5b66\u8ba1\u7b97<\/td><td><span class=\"tag tag-all\">\u8de8\u5e73\u53f0<\/span><\/td><td><code>conda install \/ create \/ activate<\/code><\/td><\/tr>\n          <tr><td><code>winget<\/code><\/td><td>Windows \u8f6f\u4ef6<\/td><td><span class=\"tag tag-win\">Windows<\/span><\/td><td><code>winget install \/ search \/ upgrade<\/code><\/td><\/tr>\n          <tr><td><code>brew<\/code><\/td><td>macOS \u8f6f\u4ef6<\/td><td><span class=\"tag tag-mac\">macOS<\/span><\/td><td><code>brew install \/ search \/ update<\/code><\/td><\/tr>\n          <tr><td><code>apt<\/code><\/td><td>Linux (Debian) \u8f6f\u4ef6<\/td><td><span class=\"tag tag-linux\">Linux<\/span><\/td><td><code>apt install \/ search \/ update<\/code><\/td><\/tr>\n          <tr><td><code>git<\/code><\/td><td>\u7248\u672c\u63a7\u5236<\/td><td><span class=\"tag tag-all\">\u8de8\u5e73\u53f0<\/span><\/td><td><code>git clone \/ pull \/ push \/ add \/ commit<\/code><\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>pip \u5feb\u901f\u53c2\u8003<\/h3>\n      <pre><code>pip install package_name         <span class=\"cm\"># \u5b89\u88c5\u5305<\/span>\npip install -r requirements.txt   <span class=\"cm\"># \u4ece\u6587\u4ef6\u6279\u91cf\u5b89\u88c5<\/span>\npip install -e .                  <span class=\"cm\"># \u53ef\u7f16\u8f91\u6a21\u5f0f\u5b89\u88c5\u672c\u5730\u9879\u76ee<\/span>\npip uninstall package_name       <span class=\"cm\"># \u5378\u8f7d\u5305<\/span>\npip list                          <span class=\"cm\"># \u67e5\u770b\u5df2\u5b89\u88c5\u5305<\/span>\npip show package_name             <span class=\"cm\"># \u67e5\u770b\u5305\u8be6\u7ec6\u4fe1\u606f<\/span>\npip install --upgrade package    <span class=\"cm\"># \u5347\u7ea7\u5305<\/span>\npip freeze > requirements.txt     <span class=\"cm\"># \u5bfc\u51fa\u5f53\u524d\u73af\u5883\u4f9d\u8d56<\/span><\/code><\/pre>\n    <\/div>\n\n    <!-- \u7b2c13\u8282 -->\n    <div class=\"card\" id=\"s13\">\n      <h2>\u5341\u4e09\u3001\u5e38\u7528\u5f00\u53d1\u547d\u4ee4<\/h2>\n      <pre><code><span class=\"cm\">######## Python \u5f00\u53d1 ########<\/span>\npython --version                 <span class=\"cm\"># \u67e5\u770b Python \u7248\u672c<\/span>\npython -m venv venv               <span class=\"cm\"># \u521b\u5efa\u865a\u62df\u73af\u5883<\/span>\nvenv\\Scripts\\activate             <span class=\"cm\"># \u6fc0\u6d3b\u865a\u62df\u73af\u5883 (Windows)<\/span>\nsource venv\/bin\/activate          <span class=\"cm\"># \u6fc0\u6d3b\u865a\u62df\u73af\u5883 (macOS\/Linux)<\/span>\npython main.py                    <span class=\"cm\"># \u8fd0\u884c Python \u811a\u672c<\/span>\npython -m pytest tests\/           <span class=\"cm\"># \u8fd0\u884c\u6d4b\u8bd5<\/span>\njupyter notebook                  <span class=\"cm\"># \u542f\u52a8 Jupyter<\/span>\n\n<span class=\"cm\">######## Git \u7248\u672c\u63a7\u5236 ########<\/span>\ngit clone https:\/\/github.com\/xxx\/project.git   <span class=\"cm\"># \u514b\u9686\u9879\u76ee<\/span>\ngit status                                   <span class=\"cm\"># \u67e5\u770b\u72b6\u6001<\/span>\ngit add .                                    <span class=\"cm\"># \u6682\u5b58\u6240\u6709\u4fee\u6539<\/span>\ngit commit -m \"\u63cf\u8ff0\u4fe1\u606f\"                       <span class=\"cm\"># \u63d0\u4ea4<\/span>\ngit push origin main                         <span class=\"cm\"># \u63a8\u9001<\/span>\ngit pull origin main                         <span class=\"cm\"># \u62c9\u53d6\u66f4\u65b0<\/span>\ngit log --oneline                            <span class=\"cm\"># \u67e5\u770b\u63d0\u4ea4\u5386\u53f2<\/span>\ngit branch feature-xxx                        <span class=\"cm\"># \u521b\u5efa\u5206\u652f<\/span>\ngit checkout feature-xxx                      <span class=\"cm\"># \u5207\u6362\u5206\u652f<\/span>\n\n<span class=\"cm\">######## Node.js \u5f00\u53d1 ########<\/span>\nnode --version                    <span class=\"cm\"># \u67e5\u770b Node \u7248\u672c<\/span>\nnpm init -y                       <span class=\"cm\"># \u521d\u59cb\u5316\u9879\u76ee<\/span>\nnpm install express               <span class=\"cm\"># \u5b89\u88c5\u4f9d\u8d56<\/span>\nnpm run dev                       <span class=\"cm\"># \u8fd0\u884c\u811a\u672c<\/span>\n\n<span class=\"cm\">######## Docker ########<\/span>\ndocker ps                         <span class=\"cm\"># \u67e5\u770b\u8fd0\u884c\u4e2d\u7684\u5bb9\u5668<\/span>\ndocker run -it ubuntu bash        <span class=\"cm\"># \u542f\u52a8\u5bb9\u5668<\/span>\ndocker build -t myapp .           <span class=\"cm\"># \u6784\u5efa\u955c\u50cf<\/span><\/code><\/pre>\n    <\/div>\n\n    <!-- \u7b2c14\u8282 -->\n    <div class=\"card\" id=\"s14\">\n      <h2>\u5341\u56db\u3001\u8fdb\u9636\u6280\u5de7<\/h2>\n\n      <h3>14.1 \u547d\u4ee4\u5386\u53f2<\/h3>\n      <pre><code><span class=\"cm\"># \u67e5\u770b\u5386\u53f2\u547d\u4ee4<\/span>\nhistory                              <span class=\"cm\"># Linux\/macOS<\/span>\nhistory | Select-String \"git\"        <span class=\"cm\"># PowerShell \u641c\u7d22\u5386\u53f2<\/span>\n\n<span class=\"cm\"># \u5feb\u6377\u952e<\/span>\n\u2191 \/ \u2193                                <span class=\"cm\"># \u4e0a\u4e0b\u7ffb\u5386\u53f2\u547d\u4ee4<\/span>\nCtrl + R                             <span class=\"cm\"># \u641c\u7d22\u5386\u53f2\u547d\u4ee4\uff08\u53cd\u5411\u641c\u7d22\uff09<\/span>\n!!                                   <span class=\"cm\"># \u91cd\u590d\u4e0a\u4e00\u6761\u547d\u4ee4<\/span>\n!$                                   <span class=\"cm\"># \u4e0a\u4e00\u6761\u547d\u4ee4\u7684\u6700\u540e\u4e00\u4e2a\u53c2\u6570<\/span><\/code><\/pre>\n\n      <h3>14.2 Tab \u81ea\u52a8\u8865\u5168<\/h3>\n      <p>\u8f93\u5165\u547d\u4ee4\u6216\u8def\u5f84\u7684\u524d\u51e0\u4e2a\u5b57\u7b26\u540e\uff0c\u6309 <code>Tab<\/code> \u952e\u81ea\u52a8\u8865\u5168\uff1a<\/p>\n      <pre><code><span class=\"cm\"># \u8f93\u5165\u90e8\u5206\u547d\u4ee4\u540e\u6309 Tab<\/span>\npyth[TAB]        <span class=\"cm\"># \u2192 python<\/span>\ncd doc[TAB]      <span class=\"cm\"># \u2192 cd Documents\/<\/span>\npip ins[TAB]     <span class=\"cm\"># \u2192 pip install<\/span><\/code><\/pre>\n      <div class=\"callout ok\">\n        <strong>\u517b\u6210\u4e60\u60ef<\/strong>\n        \u9891\u7e41\u4f7f\u7528 Tab \u8865\u5168\u53ef\u4ee5\u5927\u5e45\u51cf\u5c11\u6253\u5b57\u91cf\u5e76\u907f\u514d\u62fc\u5199\u9519\u8bef\u3002\u51e0\u4e4e\u6240\u6709\u73b0\u4ee3 Shell \u90fd\u652f\u6301\u6b64\u529f\u80fd\u3002\n      <\/div>\n\n      <h3>14.3 \u5feb\u6377\u952e\u901f\u67e5<\/h3>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>\u5feb\u6377\u952e<\/th><th>\u529f\u80fd<\/th><\/tr>\n          <tr><td><code>Ctrl + C<\/code><\/td><td>\u4e2d\u65ad\u5f53\u524d\u547d\u4ee4<\/td><\/tr>\n          <tr><td><code>Ctrl + Z<\/code><\/td><td>\u6302\u8d77\u5f53\u524d\u8fdb\u7a0b\uff08Linux\/macOS\uff09\/ \u64a4\u9500\u8f93\u5165\uff08Windows\uff09<\/td><\/tr>\n          <tr><td><code>Ctrl + L<\/code><\/td><td>\u6e05\u5c4f\uff08\u7b49\u4ef7\u4e8e <code>clear<\/code>\uff09<\/td><\/tr>\n          <tr><td><code>Ctrl + A<\/code><\/td><td>\u5149\u6807\u8df3\u5230\u884c\u9996<\/td><\/tr>\n          <tr><td><code>Ctrl + E<\/code><\/td><td>\u5149\u6807\u8df3\u5230\u884c\u5c3e<\/td><\/tr>\n          <tr><td><code>Ctrl + W<\/code><\/td><td>\u5220\u9664\u5149\u6807\u524d\u7684\u4e00\u4e2a\u5355\u8bcd<\/td><\/tr>\n          <tr><td><code>Ctrl + U<\/code><\/td><td>\u5220\u9664\u4ece\u884c\u9996\u5230\u5149\u6807\u7684\u6240\u6709\u5185\u5bb9<\/td><\/tr>\n          <tr><td><code>Ctrl + K<\/code><\/td><td>\u5220\u9664\u4ece\u5149\u6807\u5230\u884c\u5c3e\u7684\u6240\u6709\u5185\u5bb9<\/td><\/tr>\n          <tr><td><code>Ctrl + R<\/code><\/td><td>\u53cd\u5411\u641c\u7d22\u5386\u53f2\u547d\u4ee4<\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>14.4 \u901a\u914d\u7b26<\/h3>\n      <pre><code><span class=\"cm\"># * \u5339\u914d\u4efb\u610f\u5b57\u7b26<\/span>\nls *.py                  <span class=\"cm\"># \u5217\u51fa\u6240\u6709 .py \u6587\u4ef6<\/span>\nrm *.log                  <span class=\"cm\"># \u5220\u9664\u6240\u6709 .log \u6587\u4ef6<\/span>\n\n<span class=\"cm\"># ? \u5339\u914d\u5355\u4e2a\u5b57\u7b26<\/span>\nls file?.txt              <span class=\"cm\"># \u5339\u914d file1.txt, fileA.txt \u7b49<\/span><\/code><\/pre>\n\n      <h3>14.5 \u7f16\u5199 Shell \u811a\u672c<\/h3>\n      <p>\u5c06\u5e38\u7528\u547d\u4ee4\u7ec4\u5408\u5199\u5165\u811a\u672c\u6587\u4ef6\uff0c\u4e00\u952e\u6267\u884c\uff1a<\/p>\n      <pre><code><span class=\"cm\">#!\/bin\/bash<\/span>\n<span class=\"cm\"># deploy.sh \u2014 \u4e00\u952e\u90e8\u7f72\u811a\u672c<\/span>\n\necho \"=== \u66f4\u65b0\u4ee3\u7801 ===\"\ngit pull origin main\n\necho \"=== \u5b89\u88c5\u4f9d\u8d56 ===\"\npip install -r requirements.txt\n\necho \"=== \u8fd0\u884c\u6d4b\u8bd5 ===\"\npython -m pytest tests\/ -v\n\necho \"=== \u90e8\u7f72\u5b8c\u6210 ===\"<\/code><\/pre>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">bash deploy.sh<\/span><\/div>\n    <\/div>\n\n    <!-- \u7b2c15\u8282 -->\n    <div class=\"card\" id=\"s15\">\n      <h2>\u5341\u4e94\u3001\u547d\u4ee4\u901f\u67e5\u8868<\/h2>\n      <div class=\"table-wrap\">\n        <table>\n          <thead>\n            <tr><th>\u7528\u9014<\/th><th>Linux\/macOS<\/th><th>Windows (cmd)<\/th><th>PowerShell<\/th><\/tr>\n          <\/thead>\n          <tbody>\n            <tr><td>\u5f53\u524d\u8def\u5f84<\/td><td><code>pwd<\/code><\/td><td><code>cd<\/code><\/td><td><code>Get-Location<\/code><\/td><\/tr>\n            <tr><td>\u5217\u76ee\u5f55<\/td><td><code>ls -la<\/code><\/td><td><code>dir<\/code><\/td><td><code>Get-ChildItem<\/code><\/td><\/tr>\n            <tr><td>\u5207\u76ee\u5f55<\/td><td><code>cd path<\/code><\/td><td><code>cd path<\/code><\/td><td><code>Set-Location path<\/code><\/td><\/tr>\n            <tr><td>\u5efa\u76ee\u5f55<\/td><td><code>mkdir -p path<\/code><\/td><td><code>mkdir path<\/code><\/td><td><code>New-Item -ItemType Dir<\/code><\/td><\/tr>\n            <tr><td>\u590d\u5236<\/td><td><code>cp src dst<\/code><\/td><td><code>copy src dst<\/code><\/td><td><code>Copy-Item src dst<\/code><\/td><\/tr>\n            <tr><td>\u79fb\u52a8<\/td><td><code>mv src dst<\/code><\/td><td><code>move src dst<\/code><\/td><td><code>Move-Item src dst<\/code><\/td><\/tr>\n            <tr><td>\u5220\u9664\u6587\u4ef6<\/td><td><code>rm file<\/code><\/td><td><code>del file<\/code><\/td><td><code>Remove-Item file<\/code><\/td><\/tr>\n            <tr><td>\u5220\u76ee\u5f55<\/td><td><code>rm -rf dir<\/code><\/td><td><code>rmdir \/s \/q dir<\/code><\/td><td><code>Remove-Item -Recurse dir<\/code><\/td><\/tr>\n            <tr><td>\u770b\u6587\u4ef6<\/td><td><code>cat file<\/code><\/td><td><code>type file<\/code><\/td><td><code>Get-Content file<\/code><\/td><\/tr>\n            <tr><td>\u641c\u5185\u5bb9<\/td><td><code>grep \"x\" file<\/code><\/td><td><code>findstr \"x\" file<\/code><\/td><td><code>Select-String \"x\" file<\/code><\/td><\/tr>\n            <tr><td>\u770b\u8fdb\u7a0b<\/td><td><code>ps aux<\/code><\/td><td><code>tasklist<\/code><\/td><td><code>Get-Process<\/code><\/td><\/tr>\n            <tr><td>\u6740\u8fdb\u7a0b<\/td><td><code>kill PID<\/code><\/td><td><code>taskkill \/PID n \/F<\/code><\/td><td><code>Stop-Process -Id n<\/code><\/td><\/tr>\n            <tr><td>\u6e05\u5c4f<\/td><td><code>clear<\/code><\/td><td><code>cls<\/code><\/td><td><code>Clear-Host<\/code><\/td><\/tr>\n            <tr><td>\u5e2e\u52a9<\/td><td><code>man command<\/code><\/td><td><code>command \/?<\/code><\/td><td><code>Get-Help command<\/code><\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n    <\/div>\n\n    <!-- \u603b\u7ed3 -->\n    <div class=\"summary-box\">\n      <h2>\u6838\u5fc3\u8981\u70b9\u603b\u7ed3<\/h2>\n      <div class=\"s-row\"><div class=\"s-label\">CLI \u672c\u8d28<\/div><div class=\"s-desc\">\u901a\u8fc7\u6587\u672c\u547d\u4ee4\u4e0e\u8ba1\u7b97\u673a\u4ea4\u4e92\uff0c\u6838\u5fc3\u4f18\u52bf\u662f\u7cbe\u786e\u3001\u9ad8\u6548\u3001\u53ef\u811a\u672c\u5316<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">\u547d\u4ee4\u7ed3\u6784<\/div><div class=\"s-desc\"><code>\u547d\u4ee4 [\u9009\u9879] [\u53c2\u6570]<\/code>\uff0c\u5fd8\u5c31\u7528 <code>--help<\/code><\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">\u5bfc\u822a<\/div><div class=\"s-desc\"><code>pwd<\/code> \u770b\u4f4d\u7f6e\u3001<code>ls<\/code> \u770b\u5185\u5bb9\u3001<code>cd<\/code> \u5207\u76ee\u5f55<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">\u6587\u4ef6\u64cd\u4f5c<\/div><div class=\"s-desc\"><code>mkdir<\/code> \u5efa\u3001<code>cp<\/code> \u590d\u5236\u3001<code>mv<\/code> \u79fb\u52a8\u3001<code>rm<\/code> \u5220\u9664\uff08\u614e\u7528\uff09<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">\u6548\u7387\u6280\u5de7<\/div><div class=\"s-desc\">Tab \u8865\u5168\u3001\u65b9\u5411\u952e\u7ffb\u5386\u53f2\u3001<code>Ctrl+C<\/code> \u4e2d\u65ad\u3001<code>Ctrl+R<\/code> \u641c\u7d22\u5386\u53f2<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">\u8fdb\u9636\u80fd\u529b<\/div><div class=\"s-desc\">\u7ba1\u9053 <code>|<\/code> \u8fde\u63a5\u547d\u4ee4\u3001\u91cd\u5b9a\u5411 <code>>><\/code> \u5199\u6587\u4ef6\u3001\u73af\u5883\u53d8\u91cf\u914d\u7f6e<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">\u5b66\u4e60\u8def\u5f84<\/div><div class=\"s-desc\">\u5148\u638c\u63e1\u5bfc\u822a+\u6587\u4ef6\u64cd\u4f5c \u2192 \u518d\u5b66\u5e38\u7528\u5de5\u5177\uff08git\/pip\/npm\uff09\u2192 \u6700\u540e\u7ec3\u811a\u672c\u81ea\u52a8\u5316<\/div><\/div>\n    <\/div>\n\n  <\/div>\n  <!-- ========== \u4e2d\u6587\u5185\u5bb9\u7ed3\u675f ========== -->\n\n  <!-- ========== \u82f1\u6587\u5185\u5bb9 ========== -->\n  <div class=\"lang-section\" id=\"lang-en\">\n\n    <div class=\"page-header\">\n      <span class=\"badge\">CLI Complete Guide<\/span>\n      <h1>Command Line Interface (CLI) Detailed Guide<\/h1>\n      <p>From concepts to hands-on practice, a comprehensive understanding of what CLI is and how to use the command line efficiently in daily work<\/p>\n    <\/div>\n\n    <!-- Table of Contents -->\n    <div class=\"nav-toc\">\n      <h2>Table of Contents<\/h2>\n      <ol>\n        <li><a href=\"#s1\">What is CLI<\/a><\/li>\n        <li><a href=\"#s2\">CLI vs GUI<\/a><\/li>\n        <li><a href=\"#s3\">Common CLI Programs<\/a><\/li>\n        <li><a href=\"#s4\">How to Open CLI<\/a><\/li>\n        <li><a href=\"#s5\">Basic Command Structure<\/a><\/li>\n        <li><a href=\"#s6\">File System Navigation<\/a><\/li>\n        <li><a href=\"#s7\">File &amp; Directory Operations<\/a><\/li>\n        <li><a href=\"#s8\">File Viewing &amp; Editing<\/a><\/li>\n        <li><a href=\"#s9\">Process Management<\/a><\/li>\n        <li><a href=\"#s10\">Pipes &amp; Redirection<\/a><\/li>\n        <li><a href=\"#s11\">Environment Variables<\/a><\/li>\n        <li><a href=\"#s12\">Package Managers<\/a><\/li>\n        <li><a href=\"#s13\">Common Development Commands<\/a><\/li>\n        <li><a href=\"#s14\">Advanced Tips<\/a><\/li>\n        <li><a href=\"#s15\">Quick Reference<\/a><\/li>\n      <\/ol>\n    <\/div>\n\n    <!-- Section 1 -->\n    <div class=\"card\" id=\"s1\">\n      <h2>1. What is CLI<\/h2>\n      <p><strong>CLI<\/strong> (Command Line Interface) is a way of interacting with a computer through <strong>plain-text commands<\/strong>. Unlike using a mouse to click on graphical interfaces (GUI), CLI requires users to type text commands in a terminal, and the computer returns text results after execution.<\/p>\n\n      <h3>Core Components<\/h3>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Component<\/th><th>Description<\/th><th>Examples<\/th><\/tr>\n          <tr><td>Terminal<\/td><td>A window program that receives and displays text<\/td><td>Windows Terminal, iTerm2<\/td><\/tr>\n          <tr><td>Shell<\/td><td>A program that interprets and executes commands<\/td><td>PowerShell, bash, zsh<\/td><\/tr>\n          <tr><td>Command<\/td><td>Tells the computer what operation to perform<\/td><td><code>cd<\/code>, <code>ls<\/code>, <code>git<\/code><\/td><\/tr>\n          <tr><td>Argument<\/td><td>The target object the command operates on<\/td><td>File name, path, URL<\/td><\/tr>\n          <tr><td>Option (Flag)<\/td><td>Switches that modify command behavior<\/td><td><code>-h<\/code>, <code>--help<\/code>, <code>-f<\/code><\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>Historical Background<\/h3>\n      <p>In the 1960s-1980s, CLI was the <strong>only<\/strong> way to interact with computers. After graphical interfaces (GUI) became widespread, CLI gradually moved behind the scenes, but it remains indispensable in the following areas:<\/p>\n      <ul>\n        <li><strong>Software Development<\/strong> \u2014 Code compilation, testing, version control, dependency management<\/li>\n        <li><strong>Server Administration<\/strong> \u2014 Remote management of headless servers<\/li>\n        <li><strong>Data Science<\/strong> \u2014 Python virtual environments, pip package management, Jupyter startup<\/li>\n        <li><strong>DevOps \/ CI\/CD<\/strong> \u2014 Automated deployment scripts, Docker operations<\/li>\n      <\/ul>\n    <\/div>\n\n    <!-- Section 2 -->\n    <div class=\"card\" id=\"s2\">\n      <h2>2. CLI vs GUI<\/h2>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Dimension<\/th><th>CLI (Command Line)<\/th><th>GUI (Graphical Interface)<\/th><\/tr>\n          <tr><td><strong>Interaction<\/strong><\/td><td>Keyboard text command input<\/td><td>Mouse click, drag-and-drop<\/td><\/tr>\n          <tr><td><strong>Learning Curve<\/strong><\/td><td>Steep, requires memorizing commands<\/td><td>Gentle, WYSIWYG<\/td><\/tr>\n          <tr><td><strong>Efficiency<\/strong><\/td><td>Extremely fast once proficient (batch\/automation)<\/td><td>Suitable for simple, occasional tasks<\/td><\/tr>\n          <tr><td><strong>Reproducibility<\/strong><\/td><td>Commands can be written into scripts for automatic execution<\/td><td>Difficult to precisely replicate steps<\/td><\/tr>\n          <tr><td><strong>Resource Usage<\/strong><\/td><td>Minimal, no graphical rendering overhead<\/td><td>Higher<\/td><\/tr>\n          <tr><td><strong>Remote Operations<\/strong><\/td><td>Native SSH support<\/td><td>Requires Remote Desktop \/ VNC<\/td><\/tr>\n          <tr><td><strong>Precision<\/strong><\/td><td>Completely precise, unambiguous<\/td><td>Depends on UI design<\/td><\/tr>\n        <\/table>\n      <\/div>\n      <div class=\"callout info\">\n        <strong>Key Takeaway<\/strong>\n        CLI and GUI are not opposing approaches. GUI is suited for exploration and daily use, while CLI excels at precise control and automation. Professional developers typically <strong>use both<\/strong>.\n      <\/div>\n    <\/div>\n\n    <!-- Section 3 -->\n    <div class=\"card\" id=\"s3\">\n      <h2>3. Common CLI Programs (Shells)<\/h2>\n      <p>A Shell is a &#8220;command interpreter&#8221; that reads user-input commands and passes them to the operating system for execution. Different operating systems provide different Shells:<\/p>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Shell<\/th><th>Platform<\/th><th>Features<\/th><th>Prompt Example<\/th><\/tr>\n          <tr><td><strong>cmd.exe<\/strong><\/td><td><span class=\"tag tag-win\">Windows<\/span><\/td><td>Traditional Windows command line, basic functionality<\/td><td><code>C:\\Users\\xxx><\/code><\/td><\/tr>\n          <tr><td><strong>PowerShell<\/strong><\/td><td><span class=\"tag tag-win\">Windows<\/span> <span class=\"tag tag-mac\">macOS<\/span> <span class=\"tag tag-linux\">Linux<\/span><\/td><td>Microsoft&#8217;s modern Shell, supports pipelines, objects, scripting<\/td><td><code>PS C:\\Users\\xxx><\/code><\/td><\/tr>\n          <tr><td><strong>bash<\/strong><\/td><td><span class=\"tag tag-mac\">macOS<\/span> <span class=\"tag tag-linux\">Linux<\/span><\/td><td>Most universal Unix Shell, default on almost all servers<\/td><td><code>user@host:~$<\/code><\/td><\/tr>\n          <tr><td><strong>zsh<\/strong><\/td><td><span class=\"tag tag-mac\">macOS<\/span><\/td><td>Default Shell since macOS Catalina, rich plugin ecosystem (Oh My Zsh)<\/td><td><code>user@mac ~ %<\/code><\/td><\/tr>\n          <tr><td><strong>fish<\/strong><\/td><td><span class=\"tag tag-all\">Cross-platform<\/span><\/td><td>Friendly auto-completion and syntax highlighting<\/td><td><code>user@host ~><\/code><\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>Recommendations for Windows Users<\/h3>\n      <p>Windows offers three commonly used terminals:<\/p>\n      <div class=\"compare-grid\">\n        <div class=\"compare-box\">\n          <div class=\"box-title\">cmd.exe<\/div>\n          <p style=\"font-size:.85rem;\">The most basic option, compatible with legacy scripts. Does not support modern features (such as pipeline objects, aliases). <strong>Not recommended as the daily driver<\/strong>.<\/p>\n        <\/div>\n        <div class=\"compare-box\">\n          <div class=\"box-title\">PowerShell (Recommended)<\/div>\n          <p style=\"font-size:.85rem;\">Powerful, supports Unix-style commands like <code>ls<\/code> and <code>cd<\/code>, native JSON\/XML processing. <strong>The top choice for Windows development<\/strong>.<\/p>\n        <\/div>\n        <div class=\"compare-box\">\n          <div class=\"box-title\">WSL \/ Git Bash<\/div>\n          <p style=\"font-size:.85rem;\">Run a Linux environment within Windows. Ideal for scenarios that require Linux commands (such as shell scripts, Docker).<\/p>\n        <\/div>\n        <div class=\"compare-box\">\n          <div class=\"box-title\">Windows Terminal<\/div>\n          <p style=\"font-size:.85rem;\">Microsoft&#8217;s official terminal app, supports multi-tab, custom themes. Can run cmd \/ PowerShell \/ WSL simultaneously.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Section 4 -->\n    <div class=\"card\" id=\"s4\">\n      <h2>4. How to Open CLI<\/h2>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Platform<\/th><th>Method<\/th><th>Description<\/th><\/tr>\n          <tr><td><span class=\"tag tag-win\">Windows<\/span><\/td><td><code>Win + R<\/code> \u2192 type <code>powershell<\/code> \u2192 Enter<\/td><td>Quick open PowerShell<\/td><\/tr>\n          <tr><td><span class=\"tag tag-win\">Windows<\/span><\/td><td>Right-click Start menu \u2192 &#8220;Windows Terminal&#8221; or &#8220;Terminal&#8221;<\/td><td>Open multi-tab terminal<\/td><\/tr>\n          <tr><td><span class=\"tag tag-win\">Windows<\/span><\/td><td>Type <code>powershell<\/code> in File Explorer address bar<\/td><td>Open terminal in current directory<\/td><\/tr>\n          <tr><td><span class=\"tag tag-win\">Windows<\/span><\/td><td>Right-click folder \u2192 &#8220;Open in Terminal&#8221;<\/td><td>Native in Windows 11<\/td><\/tr>\n          <tr><td><span class=\"tag tag-mac\">macOS<\/span><\/td><td><code>Cmd + Space<\/code> \u2192 search &#8220;Terminal&#8221;<\/td><td>Open Terminal (zsh)<\/td><\/tr>\n          <tr><td><span class=\"tag tag-mac\">macOS<\/span><\/td><td>Finder \u2192 Applications \u2192 Utilities \u2192 Terminal<\/td><td>Manual navigation<\/td><\/tr>\n          <tr><td><span class=\"tag tag-linux\">Linux<\/span><\/td><td><code>Ctrl + Alt + T<\/code><\/td><td>Shortcut on most distributions<\/td><\/tr>\n        <\/table>\n      <\/div>\n      <div class=\"callout ok\">\n        <strong>First Thing After Opening<\/strong>\n        Enter the following command to verify your Shell type:\n        <div class=\"cmd\" style=\"margin-top:.5rem\"><span class=\"p\">$<\/span><span class=\"c\">echo $SHELL<\/span><\/div>\n        Or in PowerShell:\n        <div class=\"cmd\" style=\"margin-top:.3rem\"><span class=\"p\">PS><\/span><span class=\"c\">$PSVersionTable<\/span><\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Section 5 -->\n    <div class=\"card\" id=\"s5\">\n      <h2>5. Basic Command Structure<\/h2>\n      <p>Every CLI command follows a unified syntax format:<\/p>\n\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">command [options] [arguments]<\/span><\/div>\n\n      <p>Meaning of each part:<\/p>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Part<\/th><th>Purpose<\/th><th>Examples<\/th><\/tr>\n          <tr><td><strong>Command<\/strong><\/td><td>The program or operation to execute<\/td><td><code>git<\/code>, <code>python<\/code>, <code>pip<\/code>, <code>npm<\/code><\/td><\/tr>\n          <tr><td><strong>Option (short)<\/strong><\/td><td>Starts with a single <code>-<\/code>, controls behavior<\/td><td><code>-h<\/code>, <code>-v<\/code>, <code>-f<\/code><\/td><\/tr>\n          <tr><td><strong>Option (long)<\/strong><\/td><td>Starts with double <code>--<\/code>, more explicit meaning<\/td><td><code>--help<\/code>, <code>--version<\/code><\/td><\/tr>\n          <tr><td><strong>Argument<\/strong><\/td><td>The target object the command operates on<\/td><td>File name, path, URL, text<\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>Practical Breakdown Example<\/h3>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">pip install &#8211;upgrade numpy<\/span><\/div>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Part<\/th><th>Content<\/th><th>Meaning<\/th><\/tr>\n          <tr><td>Command<\/td><td><code>pip<\/code><\/td><td>Python package manager<\/td><\/tr>\n          <tr><td>Sub-command<\/td><td><code>install<\/code><\/td><td>Perform installation<\/td><\/tr>\n          <tr><td>Option<\/td><td><code>--upgrade<\/code><\/td><td>Upgrade installed package to latest version<\/td><\/tr>\n          <tr><td>Argument<\/td><td><code>numpy<\/code><\/td><td>Name of the package to install\/upgrade<\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>More Examples<\/h3>\n      <pre><code><span class=\"cm\"># View help (supported by almost all CLI tools)<\/span>\ngit --help\npython --help\npip --help\n\n<span class=\"cm\"># View version<\/span>\npython --version\nnode --version\n\n<span class=\"cm\"># Multiple short options can be combined<\/span>\nls -a -l -h     <span class=\"cm\"># equivalent to<\/span>\nls -alh\n\n<span class=\"cm\"># Long and short options are equivalent<\/span>\npip install -r requirements.txt\npip install --requirement requirements.txt<\/code><\/pre>\n\n      <div class=\"callout tip\">\n        <strong>Lifesaver Tip<\/strong>\n        When you forget how to use a command, type <code>command --help<\/code> or <code>command -h<\/code> at any time. This works for almost all CLI tools. For example, <code>git --help<\/code>, <code>docker --help<\/code>, <code>pytest --help<\/code>.\n      <\/div>\n    <\/div>\n\n    <!-- Section 6 -->\n    <div class=\"card\" id=\"s6\">\n      <h2>6. File System Navigation<\/h2>\n      <p>The first step in CLI is learning to navigate the file system. The following commands work across all platforms (PowerShell also supports them):<\/p>\n\n      <h3>6.1 Check Current Path<\/h3>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">pwd<\/span><\/div>\n      <pre><code>\/home\/user\/projects\/my-app<\/code><\/pre>\n\n      <h3>6.2 List Directory Contents<\/h3>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">ls<\/span><\/div>\n      <pre><code>file1.txt  folder_a  README.md  src\/<\/code><\/pre>\n      <p>Common options:<\/p>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Option<\/th><th>Meaning<\/th><th>Windows (cmd) Equivalent<\/th><\/tr>\n          <tr><td><code>ls -l<\/code><\/td><td>Detailed listing (permissions, size, time)<\/td><td><code>dir<\/code><\/td><\/tr>\n          <tr><td><code>ls -a<\/code><\/td><td>Show hidden files (files starting with .)<\/td><td><code>dir \/a<\/code><\/td><\/tr>\n          <tr><td><code>ls -la<\/code><\/td><td>Detailed listing + hidden files<\/td><td><code>dir \/a<\/code><\/td><\/tr>\n          <tr><td><code>ls -lh<\/code><\/td><td>Human-readable file sizes (KB\/MB)<\/td><td>\u2014<\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>6.3 Change Directory<\/h3>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">cd \/home\/user\/projects<\/span><\/div>\n      <pre><code><span class=\"cm\"># Enter subdirectory<\/span>\ncd src\n\n<span class=\"cm\"># Go up one level<\/span>\ncd ..\n\n<span class=\"cm\"># Go up two levels<\/span>\ncd ..\/..\n\n<span class=\"cm\"># Return to home directory<\/span>\ncd ~          <span class=\"cm\"># Linux\/macOS<\/span>\ncd %USERPROFILE%    <span class=\"cm\"># Windows (cmd)<\/span>\ncd $HOME     <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># Return to previous directory<\/span>\ncd -<\/code><\/pre>\n\n      <div class=\"callout info\">\n        <strong>Windows Path Notation<\/strong>\n        Windows uses backslashes <code>\\<\/code> (e.g., <code>C:\\Users\\xxx<\/code>), but PowerShell and modern tools also support forward slashes <code>\/<\/code> (e.g., <code>C:\/Users\/xxx<\/code>). It is recommended to use forward slashes consistently for cross-platform compatibility.\n      <\/div>\n    <\/div>\n\n    <!-- Section 7 -->\n    <div class=\"card\" id=\"s7\">\n      <h2>7. File &amp; Directory Operations<\/h2>\n\n      <h3>7.1 Create Directories<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS \/ PowerShell<\/span>\nmkdir new_folder\n\n<span class=\"cm\"># Create nested directories (auto-create parent directories if they don't exist)<\/span>\nmkdir -p project\/src\/utils     <span class=\"cm\"># Linux\/macOS<\/span>\nNew-Item -ItemType Directory -Force -Path project\/src\/utils  <span class=\"cm\"># PowerShell<\/span><\/code><\/pre>\n\n      <h3>7.2 Create \/ Write Files<\/h3>\n      <pre><code><span class=\"cm\"># Create empty file with touch (works on Linux\/macOS\/PowerShell)<\/span>\ntouch config.json\n\n<span class=\"cm\"># Write content with echo (> overwrite, >> append)<\/span>\necho \"Hello\" > hello.txt\necho \"World\" >> hello.txt<\/code><\/pre>\n\n      <h3>7.3 Copy Files \/ Directories<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\ncp file1.txt file2.txt          <span class=\"cm\"># Copy file<\/span>\ncp -r folder_a folder_b          <span class=\"cm\"># Recursively copy directory<\/span>\n\n<span class=\"cm\"># Windows (cmd)<\/span>\ncopy file1.txt file2.txt\nxcopy folder_a folder_b \/E \/I\n\n<span class=\"cm\"># PowerShell<\/span>\nCopy-Item file1.txt file2.txt\nCopy-Item -Recurse folder_a folder_b<\/code><\/pre>\n\n      <h3>7.4 Move \/ Rename<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\nmv old_name.txt new_name.txt     <span class=\"cm\"># Rename<\/span>\nmv file.txt folder\/              <span class=\"cm\"># Move to directory<\/span>\n\n<span class=\"cm\"># Windows (cmd)<\/span>\nmove old_name.txt new_name.txt\n\n<span class=\"cm\"># PowerShell<\/span>\nMove-Item old_name.txt new_name.txt\nMove-Item file.txt folder\/<\/code><\/pre>\n\n      <h3>7.5 Delete Files \/ Directories<\/h3>\n      <div class=\"callout err\">\n        <strong>Warning<\/strong>\n        There is no &#8220;Recycle Bin&#8221; mechanism in CLI. Files deleted with <code>rm<\/code> \/ <code>del<\/code> <strong>cannot be recovered<\/strong>. Always operate with caution, especially with <code>rm -rf<\/code>.\n      <\/div>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\nrm file.txt                      <span class=\"cm\"># Delete file<\/span>\nrm -r folder\/                    <span class=\"cm\"># Recursively delete directory and contents<\/span>\nrm -rf folder\/                   <span class=\"cm\"># Force recursive delete (no confirmation)<\/span>\n\n<span class=\"cm\"># Windows (cmd)<\/span>\ndel file.txt\nrmdir \/s \/q folder\n\n<span class=\"cm\"># PowerShell<\/span>\nRemove-Item file.txt\nRemove-Item -Recurse -Force folder<\/code><\/pre>\n    <\/div>\n\n    <!-- Section 8 -->\n    <div class=\"card\" id=\"s8\">\n      <h2>8. File Viewing &amp; Editing<\/h2>\n\n      <h3>8.1 View File Contents<\/h3>\n      <pre><code><span class=\"cm\"># View entire content (small files)<\/span>\ncat file.txt      <span class=\"cm\"># Linux\/macOS\/PowerShell<\/span>\ntype file.txt     <span class=\"cm\"># Windows cmd<\/span>\nGet-Content file.txt  <span class=\"cm\"># PowerShell full syntax<\/span>\n\n<span class=\"cm\"># Paginated view (large files)<\/span>\nless file.txt     <span class=\"cm\"># Linux\/macOS, press q to exit<\/span>\nmore file.txt     <span class=\"cm\"># Windows cmd<\/span>\n\n<span class=\"cm\"># View first N lines<\/span>\nhead -20 file.txt\nGet-Content file.txt -Head 20   <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># View last N lines<\/span>\ntail -20 file.txt\nGet-Content file.txt -Tail 20   <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># Real-time tail (commonly used for log viewing)<\/span>\ntail -f app.log<\/code><\/pre>\n\n      <h3>8.2 Search File Contents<\/h3>\n      <pre><code><span class=\"cm\"># Search for a keyword in a file<\/span>\ngrep \"error\" log.txt\nSelect-String \"error\" log.txt    <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># Recursively search all files in a directory<\/span>\ngrep -r \"TODO\" src\/\nSelect-String -Recurse \"TODO\" src\/   <span class=\"cm\"># PowerShell<\/span>\n\n<span class=\"cm\"># Search by filename<\/span>\nfind . -name \"*.py\"\nGet-ChildItem -Recurse -Filter \"*.py\"   <span class=\"cm\"># PowerShell<\/span><\/code><\/pre>\n\n      <h3>8.3 File Information<\/h3>\n      <pre><code><span class=\"cm\"># Check file sizes and disk usage<\/span>\ndu -sh folder\/                       <span class=\"cm\"># Linux\/macOS<\/span>\ndu -h --max-depth=1                  <span class=\"cm\"># View first-level subdirectory sizes<\/span>\n\n<span class=\"cm\"># Check total disk space<\/span>\ndf -h                                <span class=\"cm\"># Linux\/macOS<\/span>\nGet-PSDrive C                        <span class=\"cm\"># PowerShell<\/span><\/code><\/pre>\n    <\/div>\n\n    <!-- Section 9 -->\n    <div class=\"card\" id=\"s9\">\n      <h2>9. Process Management<\/h2>\n      <h3>9.1 View Running Processes<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\nps aux                  <span class=\"cm\"># View all processes<\/span>\nps aux | grep python    <span class=\"cm\"># Filter Python-related processes<\/span>\ntop                     <span class=\"cm\"># Real-time process monitoring (press q to exit)<\/span>\n\n<span class=\"cm\"># Windows<\/span>\ntasklist\ntasklist | findstr python\n\n<span class=\"cm\"># PowerShell<\/span>\nGet-Process\nGet-Process | Where-Object {$_.Name -like \"*python*\"}<\/code><\/pre>\n\n      <h3>9.2 Terminate Processes<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\nkill 12345               <span class=\"cm\"># PID is the process ID<\/span>\nkill -9 12345             <span class=\"cm\"># Force terminate<\/span>\npkill -f \"python app.py\"  <span class=\"cm\"># Terminate by name<\/span>\n\n<span class=\"cm\"># Windows<\/span>\ntaskkill \/PID 12345 \/F\n\n<span class=\"cm\"># PowerShell<\/span>\nStop-Process -Id 12345 -Force\nStop-Process -Name python -Force<\/code><\/pre>\n\n      <div class=\"callout tip\">\n        <strong>Quickly Terminate Foreground Process<\/strong>\n        Press <code>Ctrl + C<\/code> to immediately terminate the currently running foreground command. This is the most commonly used interruption method.\n      <\/div>\n    <\/div>\n\n    <!-- Section 10 -->\n    <div class=\"card\" id=\"s10\">\n      <h2>10. Pipes &amp; Redirection<\/h2>\n      <p>Pipes and redirection are core CLI capabilities that allow the <strong>output<\/strong> of one command to be used as <strong>input<\/strong> for another, or to <strong>write output to files<\/strong>.<\/p>\n\n      <h3>10.1 Pipes <code>|<\/code><\/h3>\n      <p>Pass the output of the left command to the right command for processing:<\/p>\n      <pre><code><span class=\"cm\"># Count Python files in a directory<\/span>\nls | grep \".py\" | wc -l\n\n<span class=\"cm\"># Find the process using port 8080<\/span>\nnetstat -ano | findstr :8080\n\n<span class=\"cm\"># Paginate long output<\/span>\nps aux | less\n\n<span class=\"cm\"># PowerShell pipe example<\/span>\nGet-Process | Sort-Object CPU -Descending | Select-Object -First 5<\/code><\/pre>\n\n      <h3>10.2 Redirection<\/h3>\n      <pre><code><span class=\"cm\"># > Overwrite to file<\/span>\necho \"log message\" > output.log\n\n<span class=\"cm\"># >> Append to file<\/span>\necho \"another line\" >> output.log\n\n<span class=\"cm\"># 2> Redirect error output<\/span>\npython script.py 2> error.log\n\n<span class=\"cm\"># &> Redirect both stdout and stderr<\/span>\npython script.py &> all_output.log<\/code><\/pre>\n\n      <h3>10.3 Practical Combinations<\/h3>\n      <pre><code><span class=\"cm\"># Save pip install log to file<\/span>\npip install numpy > install.log 2>&1\n\n<span class=\"cm\"># Count lines of code<\/span>\nfind . -name \"*.py\" | xargs wc -l | tail -1\n\n<span class=\"cm\"># Quick backup of multiple files<\/span>\ncp *.py backup\/<\/code><\/pre>\n    <\/div>\n\n    <!-- Section 11 -->\n    <div class=\"card\" id=\"s11\">\n      <h2>11. Environment Variables<\/h2>\n      <p>Environment variables are global configurations at the operating system level that affect the runtime behavior of all programs.<\/p>\n\n      <h3>11.1 View Environment Variables<\/h3>\n      <pre><code><span class=\"cm\"># Linux \/ macOS<\/span>\necho $PATH\necho $HOME\n\n<span class=\"cm\"># Windows (cmd)<\/span>\necho %PATH%\n\n<span class=\"cm\"># PowerShell<\/span>\necho $env:PATH\necho $env:USERPROFILE<\/code><\/pre>\n\n      <h3>11.2 Set Environment Variables<\/h3>\n      <pre><code><span class=\"cm\"># Temporary setting (only valid for current terminal session)<\/span>\nexport API_KEY=\"abc123\"             <span class=\"cm\"># Linux\/macOS<\/span>\n$env:API_KEY = \"abc123\"             <span class=\"cm\"># PowerShell<\/span>\nset API_KEY=abc123                  <span class=\"cm\"># Windows cmd<\/span>\n\n<span class=\"cm\"># Permanent setting (write to config file)<\/span>\n<span class=\"cm\"># Linux\/macOS: add to ~\/.bashrc or ~\/.zshrc<\/span>\necho 'export API_KEY=\"abc123\"' >> ~\/.bashrc\n\n<span class=\"cm\"># Windows: System Properties \u2192 Advanced \u2192 Environment Variables, or use PowerShell<\/span>\n[Environment]::SetEnvironmentVariable(\"API_KEY\", \"abc123\", \"User\")<\/code><\/pre>\n\n      <h3>11.3 The PATH Variable<\/h3>\n      <div class=\"callout info\">\n        <strong>PATH is the Most Important Environment Variable<\/strong>\n        It tells the operating system which directories to search for executable programs. When you type <code>python<\/code> in the terminal, the system searches for <code>python.exe<\/code> in the directories listed in PATH in order. If you get a &#8220;command not found&#8221; error, the program is usually not installed or not added to PATH.\n      <\/div>\n    <\/div>\n\n    <!-- Section 12 -->\n    <div class=\"card\" id=\"s12\">\n      <h2>12. Package Managers<\/h2>\n      <p>Package managers are one of the most commonly used tool categories in CLI, used for installing, upgrading, and uninstalling software.<\/p>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Manager<\/th><th>Purpose<\/th><th>Platform<\/th><th>Common Commands<\/th><\/tr>\n          <tr><td><code>pip<\/code><\/td><td>Python packages<\/td><td><span class=\"tag tag-all\">Cross-platform<\/span><\/td><td><code>pip install \/ uninstall \/ list<\/code><\/td><\/tr>\n          <tr><td><code>npm<\/code><\/td><td>Node.js packages<\/td><td><span class=\"tag tag-all\">Cross-platform<\/span><\/td><td><code>npm install \/ init \/ run<\/code><\/td><\/tr>\n          <tr><td><code>conda<\/code><\/td><td>Python + scientific computing<\/td><td><span class=\"tag tag-all\">Cross-platform<\/span><\/td><td><code>conda install \/ create \/ activate<\/code><\/td><\/tr>\n          <tr><td><code>winget<\/code><\/td><td>Windows software<\/td><td><span class=\"tag tag-win\">Windows<\/span><\/td><td><code>winget install \/ search \/ upgrade<\/code><\/td><\/tr>\n          <tr><td><code>brew<\/code><\/td><td>macOS software<\/td><td><span class=\"tag tag-mac\">macOS<\/span><\/td><td><code>brew install \/ search \/ update<\/code><\/td><\/tr>\n          <tr><td><code>apt<\/code><\/td><td>Linux (Debian) software<\/td><td><span class=\"tag tag-linux\">Linux<\/span><\/td><td><code>apt install \/ search \/ update<\/code><\/td><\/tr>\n          <tr><td><code>git<\/code><\/td><td>Version control<\/td><td><span class=\"tag tag-all\">Cross-platform<\/span><\/td><td><code>git clone \/ pull \/ push \/ add \/ commit<\/code><\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>pip Quick Reference<\/h3>\n      <pre><code>pip install package_name         <span class=\"cm\"># Install package<\/span>\npip install -r requirements.txt   <span class=\"cm\"># Batch install from file<\/span>\npip install -e .                  <span class=\"cm\"># Install local project in editable mode<\/span>\npip uninstall package_name       <span class=\"cm\"># Uninstall package<\/span>\npip list                          <span class=\"cm\"># View installed packages<\/span>\npip show package_name             <span class=\"cm\"># View package details<\/span>\npip install --upgrade package    <span class=\"cm\"># Upgrade package<\/span>\npip freeze > requirements.txt     <span class=\"cm\"># Export current environment dependencies<\/span><\/code><\/pre>\n    <\/div>\n\n    <!-- Section 13 -->\n    <div class=\"card\" id=\"s13\">\n      <h2>13. Common Development Commands<\/h2>\n      <pre><code><span class=\"cm\">######## Python Development ########<\/span>\npython --version                 <span class=\"cm\"># Check Python version<\/span>\npython -m venv venv               <span class=\"cm\"># Create virtual environment<\/span>\nvenv\\Scripts\\activate             <span class=\"cm\"># Activate virtual environment (Windows)<\/span>\nsource venv\/bin\/activate          <span class=\"cm\"># Activate virtual environment (macOS\/Linux)<\/span>\npython main.py                    <span class=\"cm\"># Run Python script<\/span>\npython -m pytest tests\/           <span class=\"cm\"># Run tests<\/span>\njupyter notebook                  <span class=\"cm\"># Start Jupyter<\/span>\n\n<span class=\"cm\">######## Git Version Control ########<\/span>\ngit clone https:\/\/github.com\/xxx\/project.git   <span class=\"cm\"># Clone project<\/span>\ngit status                                   <span class=\"cm\"># Check status<\/span>\ngit add .                                    <span class=\"cm\"># Stage all changes<\/span>\ngit commit -m \"commit message\"               <span class=\"cm\"># Commit<\/span>\ngit push origin main                         <span class=\"cm\"># Push<\/span>\ngit pull origin main                         <span class=\"cm\"># Pull updates<\/span>\ngit log --oneline                            <span class=\"cm\"># View commit history<\/span>\ngit branch feature-xxx                        <span class=\"cm\"># Create branch<\/span>\ngit checkout feature-xxx                      <span class=\"cm\"># Switch branch<\/span>\n\n<span class=\"cm\">######## Node.js Development ########<\/span>\nnode --version                    <span class=\"cm\"># Check Node version<\/span>\nnpm init -y                       <span class=\"cm\"># Initialize project<\/span>\nnpm install express               <span class=\"cm\"># Install dependency<\/span>\nnpm run dev                       <span class=\"cm\"># Run script<\/span>\n\n<span class=\"cm\">######## Docker ########<\/span>\ndocker ps                         <span class=\"cm\"># View running containers<\/span>\ndocker run -it ubuntu bash        <span class=\"cm\"># Start container<\/span>\ndocker build -t myapp .           <span class=\"cm\"># Build image<\/span><\/code><\/pre>\n    <\/div>\n\n    <!-- Section 14 -->\n    <div class=\"card\" id=\"s14\">\n      <h2>14. Advanced Tips<\/h2>\n\n      <h3>14.1 Command History<\/h3>\n      <pre><code><span class=\"cm\"># View command history<\/span>\nhistory                              <span class=\"cm\"># Linux\/macOS<\/span>\nhistory | Select-String \"git\"        <span class=\"cm\"># PowerShell search history<\/span>\n\n<span class=\"cm\"># Shortcuts<\/span>\n\u2191 \/ \u2193                                <span class=\"cm\"># Navigate up\/down through history<\/span>\nCtrl + R                             <span class=\"cm\"># Reverse search command history<\/span>\n!!                                   <span class=\"cm\"># Repeat last command<\/span>\n!$                                   <span class=\"cm\"># Last argument of previous command<\/span><\/code><\/pre>\n\n      <h3>14.2 Tab Auto-Completion<\/h3>\n      <p>After typing the first few characters of a command or path, press <code>Tab<\/code> to auto-complete:<\/p>\n      <pre><code><span class=\"cm\"># Type partial command then press Tab<\/span>\npyth[TAB]        <span class=\"cm\"># \u2192 python<\/span>\ncd doc[TAB]      <span class=\"cm\"># \u2192 cd Documents\/<\/span>\npip ins[TAB]     <span class=\"cm\"># \u2192 pip install<\/span><\/code><\/pre>\n      <div class=\"callout ok\">\n        <strong>Build the Habit<\/strong>\n        Frequently using Tab completion significantly reduces typing and avoids spelling errors. Almost all modern Shells support this feature.\n      <\/div>\n\n      <h3>14.3 Keyboard Shortcuts Reference<\/h3>\n      <div class=\"table-wrap\">\n        <table>\n          <tr><th>Shortcut<\/th><th>Function<\/th><\/tr>\n          <tr><td><code>Ctrl + C<\/code><\/td><td>Interrupt current command<\/td><\/tr>\n          <tr><td><code>Ctrl + Z<\/code><\/td><td>Suspend current process (Linux\/macOS) \/ Undo input (Windows)<\/td><\/tr>\n          <tr><td><code>Ctrl + L<\/code><\/td><td>Clear screen (equivalent to <code>clear<\/code>)<\/td><\/tr>\n          <tr><td><code>Ctrl + A<\/code><\/td><td>Move cursor to beginning of line<\/td><\/tr>\n          <tr><td><code>Ctrl + E<\/code><\/td><td>Move cursor to end of line<\/td><\/tr>\n          <tr><td><code>Ctrl + W<\/code><\/td><td>Delete the word before the cursor<\/td><\/tr>\n          <tr><td><code>Ctrl + U<\/code><\/td><td>Delete everything from line start to cursor<\/td><\/tr>\n          <tr><td><code>Ctrl + K<\/code><\/td><td>Delete everything from cursor to end of line<\/td><\/tr>\n          <tr><td><code>Ctrl + R<\/code><\/td><td>Reverse search command history<\/td><\/tr>\n        <\/table>\n      <\/div>\n\n      <h3>14.4 Wildcards<\/h3>\n      <pre><code><span class=\"cm\"># * matches any characters<\/span>\nls *.py                  <span class=\"cm\"># List all .py files<\/span>\nrm *.log                  <span class=\"cm\"># Delete all .log files<\/span>\n\n<span class=\"cm\"># ? matches a single character<\/span>\nls file?.txt              <span class=\"cm\"># Matches file1.txt, fileA.txt, etc.<\/span><\/code><\/pre>\n\n      <h3>14.5 Writing Shell Scripts<\/h3>\n      <p>Combine frequently used commands into a script file for one-click execution:<\/p>\n      <pre><code><span class=\"cm\">#!\/bin\/bash<\/span>\n<span class=\"cm\"># deploy.sh \u2014 One-click deployment script<\/span>\n\necho \"=== Updating code ===\"\ngit pull origin main\n\necho \"=== Installing dependencies ===\"\npip install -r requirements.txt\n\necho \"=== Running tests ===\"\npython -m pytest tests\/ -v\n\necho \"=== Deployment complete ===\"<\/code><\/pre>\n      <div class=\"cmd\"><span class=\"p\">$<\/span><span class=\"c\">bash deploy.sh<\/span><\/div>\n    <\/div>\n\n    <!-- Section 15 -->\n    <div class=\"card\" id=\"s15\">\n      <h2>15. Command Quick Reference<\/h2>\n      <div class=\"table-wrap\">\n        <table>\n          <thead>\n            <tr><th>Purpose<\/th><th>Linux\/macOS<\/th><th>Windows (cmd)<\/th><th>PowerShell<\/th><\/tr>\n          <\/thead>\n          <tbody>\n            <tr><td>Current path<\/td><td><code>pwd<\/code><\/td><td><code>cd<\/code><\/td><td><code>Get-Location<\/code><\/td><\/tr>\n            <tr><td>List directory<\/td><td><code>ls -la<\/code><\/td><td><code>dir<\/code><\/td><td><code>Get-ChildItem<\/code><\/td><\/tr>\n            <tr><td>Change directory<\/td><td><code>cd path<\/code><\/td><td><code>cd path<\/code><\/td><td><code>Set-Location path<\/code><\/td><\/tr>\n            <tr><td>Create directory<\/td><td><code>mkdir -p path<\/code><\/td><td><code>mkdir path<\/code><\/td><td><code>New-Item -ItemType Dir<\/code><\/td><\/tr>\n            <tr><td>Copy<\/td><td><code>cp src dst<\/code><\/td><td><code>copy src dst<\/code><\/td><td><code>Copy-Item src dst<\/code><\/td><\/tr>\n            <tr><td>Move<\/td><td><code>mv src dst<\/code><\/td><td><code>move src dst<\/code><\/td><td><code>Move-Item src dst<\/code><\/td><\/tr>\n            <tr><td>Delete file<\/td><td><code>rm file<\/code><\/td><td><code>del file<\/code><\/td><td><code>Remove-Item file<\/code><\/td><\/tr>\n            <tr><td>Delete directory<\/td><td><code>rm -rf dir<\/code><\/td><td><code>rmdir \/s \/q dir<\/code><\/td><td><code>Remove-Item -Recurse dir<\/code><\/td><\/tr>\n            <tr><td>View file<\/td><td><code>cat file<\/code><\/td><td><code>type file<\/code><\/td><td><code>Get-Content file<\/code><\/td><\/tr>\n            <tr><td>Search content<\/td><td><code>grep \"x\" file<\/code><\/td><td><code>findstr \"x\" file<\/code><\/td><td><code>Select-String \"x\" file<\/code><\/td><\/tr>\n            <tr><td>View processes<\/td><td><code>ps aux<\/code><\/td><td><code>tasklist<\/code><\/td><td><code>Get-Process<\/code><\/td><\/tr>\n            <tr><td>Kill process<\/td><td><code>kill PID<\/code><\/td><td><code>taskkill \/PID n \/F<\/code><\/td><td><code>Stop-Process -Id n<\/code><\/td><\/tr>\n            <tr><td>Clear screen<\/td><td><code>clear<\/code><\/td><td><code>cls<\/code><\/td><td><code>Clear-Host<\/code><\/td><\/tr>\n            <tr><td>Help<\/td><td><code>man command<\/code><\/td><td><code>command \/?<\/code><\/td><td><code>Get-Help command<\/code><\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n    <\/div>\n\n    <!-- Summary -->\n    <div class=\"summary-box\">\n      <h2>Key Takeaways Summary<\/h2>\n      <div class=\"s-row\"><div class=\"s-label\">CLI Essence<\/div><div class=\"s-desc\">Interact with computers via text commands; core advantages are precision, efficiency, and scriptability<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">Command Structure<\/div><div class=\"s-desc\"><code>command [options] [arguments]<\/code>; if you forget, use <code>--help<\/code><\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">Navigation<\/div><div class=\"s-desc\"><code>pwd<\/code> to check location, <code>ls<\/code> to view contents, <code>cd<\/code> to change directory<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">File Operations<\/div><div class=\"s-desc\"><code>mkdir<\/code> to create, <code>cp<\/code> to copy, <code>mv<\/code> to move, <code>rm<\/code> to delete (use with caution)<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">Efficiency Tips<\/div><div class=\"s-desc\">Tab completion, arrow keys for history, <code>Ctrl+C<\/code> to interrupt, <code>Ctrl+R<\/code> to search history<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">Advanced Skills<\/div><div class=\"s-desc\">Pipe <code>|<\/code> to chain commands, redirect <code>>><\/code> to write files, environment variable configuration<\/div><\/div>\n      <div class=\"s-row\"><div class=\"s-label\">Learning Path<\/div><div class=\"s-desc\">Master navigation + file ops first \u2192 then learn common tools (git\/pip\/npm) \u2192 finally practice scripting automation<\/div><\/div>\n    <\/div>\n\n  <\/div>\n  <!-- ========== \u82f1\u6587\u5185\u5bb9\u7ed3\u675f ========== -->\n\n  <footer>\n    <p>Based on Linux man pages, Microsoft PowerShell documentation, and Git official documentation<\/p>\n  <\/footer>\n\n<\/div>\n\n<script>\n  function setLang(lang) {\n      document.querySelectorAll('.lang-section').forEach(el => el.classList.remove('active'));\n      document.getElementById('lang-' + lang).classList.add('active');\n      document.querySelectorAll('.lang-switch button').forEach(btn => btn.classList.remove('active'));\n      document.getElementById('btn-' + lang).classList.add('active');\n      document.documentElement.lang = lang === 'zh' ? 'zh-CN' : 'en';\n  }\n\n  function toggleTheme() {\n      const html = document.documentElement;\n      if (html.hasAttribute('data-theme')) {\n          html.removeAttribute('data-theme');\n          localStorage.removeItem('theme');\n      } else {\n          html.setAttribute('data-theme', 'dark');\n          localStorage.setItem('theme', 'dark');\n      }\n  }\n\n  \/\/ Restore theme preference\n  if (localStorage.getItem('theme') === 'dark') {\n      document.documentElement.setAttribute('data-theme', 'dark');\n  }\n<\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>CLI \u547d\u4ee4\u884c\u754c\u9762\u5b8c\u5168\u6307\u5357 | CLI Command Line Interface Guide CLI Gu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,9],"tags":[],"class_list":["post-306","post","type-post","status-publish","format-standard","hentry","category-cad","category-ai"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/posts\/306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/numsimlab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=306"}],"version-history":[{"count":1,"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/posts\/306\/revisions"}],"predecessor-version":[{"id":307,"href":"https:\/\/numsimlab.com\/index.php?rest_route=\/wp\/v2\/posts\/306\/revisions\/307"}],"wp:attachment":[{"href":"https:\/\/numsimlab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/numsimlab.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/numsimlab.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}