[{"data":1,"prerenderedAt":3066},["ShallowReactive",2],{"navigation_docs":3,"-guides-notes-bash-cheatsheet":168,"-guides-notes-bash-cheatsheet-surround":3063},[4,46,75],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":45},"Bookmarks","i-lucide:bookmark","\u002Fbookmarks","10.bookmarks",[10,15,20,25,30,35,40],{"title":11,"path":12,"stem":13,"icon":14},"工具","\u002Fbookmarks\u002Ftools","10.bookmarks\u002F10.tools","i-lucide:wrench",{"title":16,"path":17,"stem":18,"icon":19},"开发","\u002Fbookmarks\u002Fdev","10.bookmarks\u002F20.dev","i-lucide:code-xml",{"title":21,"path":22,"stem":23,"icon":24},"学习","\u002Fbookmarks\u002Flearn","10.bookmarks\u002F30.learn","i-lucide:graduation-cap",{"title":26,"path":27,"stem":28,"icon":29},"视觉素材","\u002Fbookmarks\u002Fmedia","10.bookmarks\u002F40.media","i-lucide:image",{"title":31,"path":32,"stem":33,"icon":34},"AI","\u002Fbookmarks\u002Fai","10.bookmarks\u002F50.ai","i-lucide:sparkles",{"title":36,"path":37,"stem":38,"icon":39},"设计","\u002Fbookmarks\u002Fdesign","10.bookmarks\u002F60.design","i-lucide:palette",{"title":41,"path":42,"stem":43,"icon":44},"其它","\u002Fbookmarks\u002Fmore","10.bookmarks\u002F70.more","i-lucide:ellipsis",false,{"title":31,"icon":34,"path":47,"stem":48,"children":49,"page":45},"\u002Fai","20.ai",[50,55,60,65,70],{"title":51,"path":52,"stem":53,"icon":54},"Agent 工具","\u002Fai\u002Fagent-tools","20.ai\u002F10.agent-tools","i-lucide:puzzle",{"title":56,"path":57,"stem":58,"icon":59},"OmniRoute 使用","\u002Fai\u002Fomniroute-setup","20.ai\u002F20.omniroute-setup","i-lucide:route",{"title":61,"path":62,"stem":63,"icon":64},"RTK 使用","\u002Fai\u002Frtk-setup","20.ai\u002F30.rtk-setup","i-lucide:scissors",{"title":66,"path":67,"stem":68,"icon":69},"Headroom 使用","\u002Fai\u002Fheadroom-setup","20.ai\u002F40.headroom-setup","i-lucide:minimize-2",{"title":71,"path":72,"stem":73,"icon":74},"Serena 使用","\u002Fai\u002Fserena-setup","20.ai\u002F50.serena-setup","i-lucide:scan-search",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":45},"Guides","i-lucide:book-open","\u002Fguides","30.guides",[81,133,154],{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":45},"Notes","i-lucide:notebook-text","\u002Fguides\u002Fnotes","30.guides\u002F10.notes",[87,91,96,100,105,109,113,118,123,128],{"title":88,"path":89,"stem":90,"icon":19},"开发问题记录","\u002Fguides\u002Fnotes\u002Fdev-qa","30.guides\u002F10.notes\u002F10.dev-qa",{"title":92,"path":93,"stem":94,"icon":95},"js 常用整理","\u002Fguides\u002Fnotes\u002Fjs-tidy","30.guides\u002F10.notes\u002F20.js-tidy","i-lucide:braces",{"title":97,"path":98,"stem":99,"icon":95},"js 小技巧","\u002Fguides\u002Fnotes\u002Fjs-tips","30.guides\u002F10.notes\u002F30.js-tips",{"title":101,"path":102,"stem":103,"icon":104},"git 问题记录","\u002Fguides\u002Fnotes\u002Fgit-qa","30.guides\u002F10.notes\u002F40.git-qa","i-lucide:git-branch",{"title":106,"path":107,"stem":108,"icon":104},"git 扩展命令","\u002Fguides\u002Fnotes\u002Fgit-expand","30.guides\u002F10.notes\u002F50.git-expand",{"title":110,"path":111,"stem":112,"icon":104},"git 命令速查表","\u002Fguides\u002Fnotes\u002Fgit-cheatsheet","30.guides\u002F10.notes\u002F60.git-cheatsheet",{"title":114,"path":115,"stem":116,"icon":117},"bash 命令速查表","\u002Fguides\u002Fnotes\u002Fbash-cheatsheet","30.guides\u002F10.notes\u002F70.bash-cheatsheet","i-lucide:square-terminal",{"title":119,"path":120,"stem":121,"icon":122},"linux 命令速查表","\u002Fguides\u002Fnotes\u002Flinux-cheatsheet","30.guides\u002F10.notes\u002F80.linux-cheatsheet","i-lucide:server",{"title":124,"path":125,"stem":126,"icon":127},"Docker 使用","\u002Fguides\u002Fnotes\u002Fdocker-setup","30.guides\u002F10.notes\u002F90.docker-setup","i-lucide:container",{"title":129,"path":130,"stem":131,"icon":132},"常用工具命令","\u002Fguides\u002Fnotes\u002Fcommon-tool-commands","30.guides\u002F10.notes\u002F95.common-tool-commands","i-lucide:toolbox",{"title":134,"icon":135,"path":136,"stem":137,"children":138,"page":45},"System","i-lucide:monitor","\u002Fguides\u002Fsystem","30.guides\u002F20.system",[139,144,149],{"title":140,"path":141,"stem":142,"icon":143},"系统常用软件","\u002Fguides\u002Fsystem\u002Fsystem-software","30.guides\u002F20.system\u002F10.system-software","i-lucide:package",{"title":145,"path":146,"stem":147,"icon":148},"开发工具命令","\u002Fguides\u002Fsystem\u002Fdev-tools-commands","30.guides\u002F20.system\u002F20.dev-tools-commands","i-lucide:terminal",{"title":150,"path":151,"stem":152,"icon":153},"macOS 使用记录","\u002Fguides\u002Fsystem\u002Fmacos-usage-record","30.guides\u002F20.system\u002F30.macos-usage-record","i-simple-icons:apple",{"title":155,"icon":54,"path":156,"stem":157,"children":158,"page":45},"Other","\u002Fguides\u002Fother","30.guides\u002F30.other",[159,164],{"title":160,"path":161,"stem":162,"icon":163},"汉语拼音和小鹤双拼","\u002Fguides\u002Fother\u002Fflypy-pinyin","30.guides\u002F30.other\u002F10.flypy-pinyin","i-lucide:notebook-pen",{"title":165,"path":166,"stem":167,"icon":143},"魔方公式","\u002Fguides\u002Fother\u002Frubik-cube-formula","30.guides\u002F30.other\u002F20.rubik-cube-formula",{"id":169,"title":114,"body":170,"description":205,"extension":3057,"links":3058,"meta":3059,"navigation":3060,"path":115,"seo":3061,"stem":116,"__hash__":3062},"docs\u002F30.guides\u002F10.notes\u002F70.bash-cheatsheet.md",{"type":171,"value":172,"toc":3045},"minimark",[173,190,194,337,340,508,511,947,950,1126,1129,1378,1381,1877,1880,2192,2195,2596,2599,2666,2669,3041],[174,175,181,186],"div",{"className":176},[177,178,179,180],"grid","gap-4","sm:grid-cols-2","[&>*]:my-0!",[182,183,185],"tip",{"to":184},"https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fbash\u002F","GNU Bash - 官网",[182,187,189],{"to":188},"https:\u002F\u002Fzh.wikipedia.org\u002Fzh\u002FBash","bash - 维基百科",[191,192,193],"h2",{"id":193},"基本操作",[195,196,206],"pre",{"className":197,"code":198,"highlights":199,"language":204,"meta":205,"style":205},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","$ exit                      # 退出当前登陆（退出终端）\n$ env                       # 显示环境变量\n$ echo $SHELL               # 显示你在使用什么 SHELL\n\n$ bash                      # 使用 bash，用 exit 返回\n$ which bash                # 搜索 $PATH，查找哪个程序对应命令 bash\n$ whereis bash              # 搜索可执行，头文件和帮助信息的位置，使用系统内建数据库\n$ whatis bash               # 查看某个命令的解释，一句话告诉你这是干什么的\n\n$ clear                     # 清除屏幕内容\n$ reset                     # 重置终端\n",[200,201,202,203],1,6,7,10,"sh","",[207,208,209,227,238,253,260,271,284,297,310,315,326],"code",{"__ignoreMap":205},[210,211,215,219,223],"span",{"class":212,"line":200},[213,214],"line","highlight",[210,216,218],{"class":217},"sBMFI","$",[210,220,222],{"class":221},"sfazB"," exit",[210,224,226],{"class":225},"sHwdD","                      # 退出当前登陆（退出终端）\n",[210,228,230,232,235],{"class":213,"line":229},2,[210,231,218],{"class":217},[210,233,234],{"class":221}," env",[210,236,237],{"class":225},"                       # 显示环境变量\n",[210,239,241,243,246,250],{"class":213,"line":240},3,[210,242,218],{"class":217},[210,244,245],{"class":221}," echo",[210,247,249],{"class":248},"sTEyZ"," $SHELL               ",[210,251,252],{"class":225},"# 显示你在使用什么 SHELL\n",[210,254,256],{"class":213,"line":255},4,[210,257,259],{"emptyLinePlaceholder":258},true,"\n",[210,261,263,265,268],{"class":213,"line":262},5,[210,264,218],{"class":217},[210,266,267],{"class":221}," bash",[210,269,270],{"class":225},"                      # 使用 bash，用 exit 返回\n",[210,272,274,276,279,281],{"class":273,"line":201},[213,214],[210,275,218],{"class":217},[210,277,278],{"class":221}," which",[210,280,267],{"class":221},[210,282,283],{"class":225},"                # 搜索 $PATH，查找哪个程序对应命令 bash\n",[210,285,287,289,292,294],{"class":286,"line":202},[213,214],[210,288,218],{"class":217},[210,290,291],{"class":221}," whereis",[210,293,267],{"class":221},[210,295,296],{"class":225},"              # 搜索可执行，头文件和帮助信息的位置，使用系统内建数据库\n",[210,298,300,302,305,307],{"class":213,"line":299},8,[210,301,218],{"class":217},[210,303,304],{"class":221}," whatis",[210,306,267],{"class":221},[210,308,309],{"class":225},"               # 查看某个命令的解释，一句话告诉你这是干什么的\n",[210,311,313],{"class":213,"line":312},9,[210,314,259],{"emptyLinePlaceholder":258},[210,316,318,320,323],{"class":317,"line":203},[213,214],[210,319,218],{"class":217},[210,321,322],{"class":221}," clear",[210,324,325],{"class":225},"                     # 清除屏幕内容\n",[210,327,329,331,334],{"class":213,"line":328},11,[210,330,218],{"class":217},[210,332,333],{"class":221}," reset",[210,335,336],{"class":225},"                     # 重置终端\n",[191,338,339],{"id":339},"目录操作",[195,341,344],{"className":197,"code":342,"highlights":343,"language":204,"meta":205,"style":205},"$ cd                        # 返回自己 $HOME 目录\n$ cd ..                     # 返回上级目录\n$ cd ~                      # 返回用户主目录\n$ cd e:                     # 切换盘符（Windows）\n$ cd {dirname}              # 进入目录\n$ pwd                       # 显示当前所在目录\n$ mkdir {dirname}           # 创建目录\n$ mkdir -p {dirname}        # 递归创建目录\n$ pushd {dirname}           # 目录压栈并进入新目录\n$ popd                      # 弹出并进入栈顶的目录\n$ dirs -v                   # 列出当前目录栈\n$ cd -                      # 回到之前的目录\n$ cd -{N}                   # 切换到目录栈中的第 N个目录，比如 cd -2 将切换到第二个\n",[200,229,240,255,299,312,203],[207,345,346,357,370,383,396,408,418,430,445,458,469,482,495],{"__ignoreMap":205},[210,347,349,351,354],{"class":348,"line":200},[213,214],[210,350,218],{"class":217},[210,352,353],{"class":221}," cd",[210,355,356],{"class":225},"                        # 返回自己 $HOME 目录\n",[210,358,360,362,364,367],{"class":359,"line":229},[213,214],[210,361,218],{"class":217},[210,363,353],{"class":221},[210,365,366],{"class":221}," ..",[210,368,369],{"class":225},"                     # 返回上级目录\n",[210,371,373,375,377,380],{"class":372,"line":240},[213,214],[210,374,218],{"class":217},[210,376,353],{"class":221},[210,378,379],{"class":221}," ~",[210,381,382],{"class":225},"                      # 返回用户主目录\n",[210,384,386,388,390,393],{"class":385,"line":255},[213,214],[210,387,218],{"class":217},[210,389,353],{"class":221},[210,391,392],{"class":221}," e:",[210,394,395],{"class":225},"                     # 切换盘符（Windows）\n",[210,397,398,400,402,405],{"class":213,"line":262},[210,399,218],{"class":217},[210,401,353],{"class":221},[210,403,404],{"class":221}," {dirname}",[210,406,407],{"class":225},"              # 进入目录\n",[210,409,410,412,415],{"class":213,"line":201},[210,411,218],{"class":217},[210,413,414],{"class":221}," pwd",[210,416,417],{"class":225},"                       # 显示当前所在目录\n",[210,419,420,422,425,427],{"class":213,"line":202},[210,421,218],{"class":217},[210,423,424],{"class":221}," mkdir",[210,426,404],{"class":221},[210,428,429],{"class":225},"           # 创建目录\n",[210,431,433,435,437,440,442],{"class":432,"line":299},[213,214],[210,434,218],{"class":217},[210,436,424],{"class":221},[210,438,439],{"class":221}," -p",[210,441,404],{"class":221},[210,443,444],{"class":225},"        # 递归创建目录\n",[210,446,448,450,453,455],{"class":447,"line":312},[213,214],[210,449,218],{"class":217},[210,451,452],{"class":221}," pushd",[210,454,404],{"class":221},[210,456,457],{"class":225},"           # 目录压栈并进入新目录\n",[210,459,461,463,466],{"class":460,"line":203},[213,214],[210,462,218],{"class":217},[210,464,465],{"class":221}," popd",[210,467,468],{"class":225},"                      # 弹出并进入栈顶的目录\n",[210,470,471,473,476,479],{"class":213,"line":328},[210,472,218],{"class":217},[210,474,475],{"class":221}," dirs",[210,477,478],{"class":221}," -v",[210,480,481],{"class":225},"                   # 列出当前目录栈\n",[210,483,485,487,489,492],{"class":213,"line":484},12,[210,486,218],{"class":217},[210,488,353],{"class":221},[210,490,491],{"class":221}," -",[210,493,494],{"class":225},"                      # 回到之前的目录\n",[210,496,498,500,502,505],{"class":213,"line":497},13,[210,499,218],{"class":217},[210,501,353],{"class":221},[210,503,504],{"class":221}," -{N}",[210,506,507],{"class":225},"                   # 切换到目录栈中的第 N个目录，比如 cd -2 将切换到第二个\n",[191,509,510],{"id":510},"文件操作",[195,512,519],{"className":197,"code":513,"highlights":514,"language":204,"meta":205,"style":205},"$ ls                        # 显示当前目录内容，后面可接目录名：ls {dir} 显示指定目录\n$ ls -l                     # 列表方式显示目录内容，包括文件日期，大小，权限等信息\n$ ls -1                     # 列表方式显示目录内容，只显示文件名称，减号后面是数字 1\n$ ls -a                     # 显示所有文件和目录，包括隐藏文件（.开头的文件\u002F目录名）\n$ ln -s {fn} {link}         # 给指定文件创建一个软链接\n$ cp {src} {dest}           # 拷贝文件，cp -r dir1 dir2 可以递归拷贝（目录）\n$ rm {fn}                   # 删除文件，rm -r 递归删除目录，rm -f 强制删除\n$ rm -rf {fn}               # 删除指定文件夹所有内容\n$ mv {src} {dest}           # 移动文件，如果 dest 是目录，则移动，是文件名则覆盖\n$ touch {fn}                # 创建或者更新一下制定文件\n$ cat {fn}                  # 输出文件原始内容\n$ any_cmd > {fn}            # 执行任意命令并将标准输出重定向到指定文件\n$ more {fn}                 # 逐屏显示某文件内容，空格翻页，q 退出\n$ less {fn}                 # 更高级点的 more，更多操作，q 退出\n$ head {fn}                 # 显示文件头部数行，可用 head -3 abc.txt 显示头三行\n$ tail {fn}                 # 显示文件尾部数行，可用 tail -3 abc.txt 显示尾部三行\n$ tail -f {fn}              # 持续显示文件尾部数据，可用于监控日志\n$ nano {fn}                 # 使用 nano 编辑器编辑文件\n$ vim {fn}                  # 使用 vim 编辑文件\n$ diff {f1} {f2}            # 比较两个文件的内容\n$ wc {fn}                   # 统计文件有多少行，多少个单词\n$ chmod 644 {fn}            # 修改文件权限为 644，可以接 -R 对目录循环改权限\n$ chgrp group {fn}          # 修改文件所属的用户组\n$ chown user1 {fn}          # 修改文件所有人为 user1, chown user1:group1 fn 可以修改组\n$ file {fn}                 # 检测文件的类型和编码\n$ basename {fn}             # 查看文件的名字（不包括路径）\n$ dirname {fn}              # 查看文件的路径（不包括名字）\n$ grep {pat} {fn}           # 在文件中查找出现过 pat 的内容\n$ grep -r {pat} .           # 在当前目录下递归查找所有出现过 pat 的文件内容\n$ stat {fn}                 # 显示文件的详细信息\n",[200,229,240,255,202,299,203,328,515,516,517,518],15,16,21,30,[207,520,521,532,545,558,571,590,606,619,634,648,661,674,690,702,715,728,741,756,769,782,799,812,829,845,861,874,887,900,916,934],{"__ignoreMap":205},[210,522,524,526,529],{"class":523,"line":200},[213,214],[210,525,218],{"class":217},[210,527,528],{"class":221}," ls",[210,530,531],{"class":225},"                        # 显示当前目录内容，后面可接目录名：ls {dir} 显示指定目录\n",[210,533,535,537,539,542],{"class":534,"line":229},[213,214],[210,536,218],{"class":217},[210,538,528],{"class":221},[210,540,541],{"class":221}," -l",[210,543,544],{"class":225},"                     # 列表方式显示目录内容，包括文件日期，大小，权限等信息\n",[210,546,548,550,552,555],{"class":547,"line":240},[213,214],[210,549,218],{"class":217},[210,551,528],{"class":221},[210,553,554],{"class":221}," -1",[210,556,557],{"class":225},"                     # 列表方式显示目录内容，只显示文件名称，减号后面是数字 1\n",[210,559,561,563,565,568],{"class":560,"line":255},[213,214],[210,562,218],{"class":217},[210,564,528],{"class":221},[210,566,567],{"class":221}," -a",[210,569,570],{"class":225},"                     # 显示所有文件和目录，包括隐藏文件（.开头的文件\u002F目录名）\n",[210,572,573,575,578,581,584,587],{"class":213,"line":262},[210,574,218],{"class":217},[210,576,577],{"class":221}," ln",[210,579,580],{"class":221}," -s",[210,582,583],{"class":221}," {fn}",[210,585,586],{"class":221}," {link}",[210,588,589],{"class":225},"         # 给指定文件创建一个软链接\n",[210,591,592,594,597,600,603],{"class":213,"line":201},[210,593,218],{"class":217},[210,595,596],{"class":221}," cp",[210,598,599],{"class":221}," {src}",[210,601,602],{"class":221}," {dest}",[210,604,605],{"class":225},"           # 拷贝文件，cp -r dir1 dir2 可以递归拷贝（目录）\n",[210,607,609,611,614,616],{"class":608,"line":202},[213,214],[210,610,218],{"class":217},[210,612,613],{"class":221}," rm",[210,615,583],{"class":221},[210,617,618],{"class":225},"                   # 删除文件，rm -r 递归删除目录，rm -f 强制删除\n",[210,620,622,624,626,629,631],{"class":621,"line":299},[213,214],[210,623,218],{"class":217},[210,625,613],{"class":221},[210,627,628],{"class":221}," -rf",[210,630,583],{"class":221},[210,632,633],{"class":225},"               # 删除指定文件夹所有内容\n",[210,635,636,638,641,643,645],{"class":213,"line":312},[210,637,218],{"class":217},[210,639,640],{"class":221}," mv",[210,642,599],{"class":221},[210,644,602],{"class":221},[210,646,647],{"class":225},"           # 移动文件，如果 dest 是目录，则移动，是文件名则覆盖\n",[210,649,651,653,656,658],{"class":650,"line":203},[213,214],[210,652,218],{"class":217},[210,654,655],{"class":221}," touch",[210,657,583],{"class":221},[210,659,660],{"class":225},"                # 创建或者更新一下制定文件\n",[210,662,664,666,669,671],{"class":663,"line":328},[213,214],[210,665,218],{"class":217},[210,667,668],{"class":221}," cat",[210,670,583],{"class":221},[210,672,673],{"class":225},"                  # 输出文件原始内容\n",[210,675,676,678,681,685,687],{"class":213,"line":484},[210,677,218],{"class":217},[210,679,680],{"class":221}," any_cmd",[210,682,684],{"class":683},"sMK4o"," >",[210,686,583],{"class":221},[210,688,689],{"class":225},"            # 执行任意命令并将标准输出重定向到指定文件\n",[210,691,692,694,697,699],{"class":213,"line":497},[210,693,218],{"class":217},[210,695,696],{"class":221}," more",[210,698,583],{"class":221},[210,700,701],{"class":225},"                 # 逐屏显示某文件内容，空格翻页，q 退出\n",[210,703,705,707,710,712],{"class":213,"line":704},14,[210,706,218],{"class":217},[210,708,709],{"class":221}," less",[210,711,583],{"class":221},[210,713,714],{"class":225},"                 # 更高级点的 more，更多操作，q 退出\n",[210,716,718,720,723,725],{"class":717,"line":515},[213,214],[210,719,218],{"class":217},[210,721,722],{"class":221}," head",[210,724,583],{"class":221},[210,726,727],{"class":225},"                 # 显示文件头部数行，可用 head -3 abc.txt 显示头三行\n",[210,729,731,733,736,738],{"class":730,"line":516},[213,214],[210,732,218],{"class":217},[210,734,735],{"class":221}," tail",[210,737,583],{"class":221},[210,739,740],{"class":225},"                 # 显示文件尾部数行，可用 tail -3 abc.txt 显示尾部三行\n",[210,742,744,746,748,751,753],{"class":213,"line":743},17,[210,745,218],{"class":217},[210,747,735],{"class":221},[210,749,750],{"class":221}," -f",[210,752,583],{"class":221},[210,754,755],{"class":225},"              # 持续显示文件尾部数据，可用于监控日志\n",[210,757,759,761,764,766],{"class":213,"line":758},18,[210,760,218],{"class":217},[210,762,763],{"class":221}," nano",[210,765,583],{"class":221},[210,767,768],{"class":225},"                 # 使用 nano 编辑器编辑文件\n",[210,770,772,774,777,779],{"class":213,"line":771},19,[210,773,218],{"class":217},[210,775,776],{"class":221}," vim",[210,778,583],{"class":221},[210,780,781],{"class":225},"                  # 使用 vim 编辑文件\n",[210,783,785,787,790,793,796],{"class":213,"line":784},20,[210,786,218],{"class":217},[210,788,789],{"class":221}," diff",[210,791,792],{"class":221}," {f1}",[210,794,795],{"class":221}," {f2}",[210,797,798],{"class":225},"            # 比较两个文件的内容\n",[210,800,802,804,807,809],{"class":801,"line":517},[213,214],[210,803,218],{"class":217},[210,805,806],{"class":221}," wc",[210,808,583],{"class":221},[210,810,811],{"class":225},"                   # 统计文件有多少行，多少个单词\n",[210,813,815,817,820,824,826],{"class":213,"line":814},22,[210,816,218],{"class":217},[210,818,819],{"class":221}," chmod",[210,821,823],{"class":822},"sbssI"," 644",[210,825,583],{"class":221},[210,827,828],{"class":225},"            # 修改文件权限为 644，可以接 -R 对目录循环改权限\n",[210,830,832,834,837,840,842],{"class":213,"line":831},23,[210,833,218],{"class":217},[210,835,836],{"class":221}," chgrp",[210,838,839],{"class":221}," group",[210,841,583],{"class":221},[210,843,844],{"class":225},"          # 修改文件所属的用户组\n",[210,846,848,850,853,856,858],{"class":213,"line":847},24,[210,849,218],{"class":217},[210,851,852],{"class":221}," chown",[210,854,855],{"class":221}," user1",[210,857,583],{"class":221},[210,859,860],{"class":225},"          # 修改文件所有人为 user1, chown user1:group1 fn 可以修改组\n",[210,862,864,866,869,871],{"class":213,"line":863},25,[210,865,218],{"class":217},[210,867,868],{"class":221}," file",[210,870,583],{"class":221},[210,872,873],{"class":225},"                 # 检测文件的类型和编码\n",[210,875,877,879,882,884],{"class":213,"line":876},26,[210,878,218],{"class":217},[210,880,881],{"class":221}," basename",[210,883,583],{"class":221},[210,885,886],{"class":225},"             # 查看文件的名字（不包括路径）\n",[210,888,890,892,895,897],{"class":213,"line":889},27,[210,891,218],{"class":217},[210,893,894],{"class":221}," dirname",[210,896,583],{"class":221},[210,898,899],{"class":225},"              # 查看文件的路径（不包括名字）\n",[210,901,903,905,908,911,913],{"class":213,"line":902},28,[210,904,218],{"class":217},[210,906,907],{"class":221}," grep",[210,909,910],{"class":221}," {pat}",[210,912,583],{"class":221},[210,914,915],{"class":225},"           # 在文件中查找出现过 pat 的内容\n",[210,917,919,921,923,926,928,931],{"class":213,"line":918},29,[210,920,218],{"class":217},[210,922,907],{"class":221},[210,924,925],{"class":221}," -r",[210,927,910],{"class":221},[210,929,930],{"class":221}," .",[210,932,933],{"class":225},"           # 在当前目录下递归查找所有出现过 pat 的文件内容\n",[210,935,937,939,942,944],{"class":936,"line":518},[213,214],[210,938,218],{"class":217},[210,940,941],{"class":221}," stat",[210,943,583],{"class":221},[210,945,946],{"class":225},"                 # 显示文件的详细信息\n",[191,948,949],{"id":949},"系统信息",[195,951,954],{"className":197,"code":952,"highlights":953,"language":204,"meta":205,"style":205},"$ uname -a                  # 查看内核版本等信息\n$ man {help}                # 查看帮助\n$ man -k {keyword}          # 查看哪些帮助文档里包含了该关键字\n$ info {help}               # 查看 info pages，比 man 更强的帮助系统\n$ uptime                    # 查看系统启动时间\n$ date                      # 显示日期\n$ cal                       # 显示日历\n$ vmstat                    # 显示内存和 CPU 使用情况\n$ vmstat 10                 # 每 10 秒打印一行内存和 CPU情况，CTRL+C 退出\n$ free                      # 显示内存和交换区使用情况\n$ df                        # 显示磁盘使用情况\n$ du                        # 显示当前目录占用，du . --max-depth=2 可以指定深度\n$ uname                     # 显示系统版本号\n$ hostname                  # 显示主机名称\n$ showkey -a                # 查看终端发送的按键编码\n",[262,201,202,497,704],[207,955,956,968,981,996,1008,1019,1030,1041,1051,1063,1073,1083,1093,1103,1114],{"__ignoreMap":205},[210,957,958,960,963,965],{"class":213,"line":200},[210,959,218],{"class":217},[210,961,962],{"class":221}," uname",[210,964,567],{"class":221},[210,966,967],{"class":225},"                  # 查看内核版本等信息\n",[210,969,970,972,975,978],{"class":213,"line":229},[210,971,218],{"class":217},[210,973,974],{"class":221}," man",[210,976,977],{"class":221}," {help}",[210,979,980],{"class":225},"                # 查看帮助\n",[210,982,983,985,987,990,993],{"class":213,"line":240},[210,984,218],{"class":217},[210,986,974],{"class":221},[210,988,989],{"class":221}," -k",[210,991,992],{"class":221}," {keyword}",[210,994,995],{"class":225},"          # 查看哪些帮助文档里包含了该关键字\n",[210,997,998,1000,1003,1005],{"class":213,"line":255},[210,999,218],{"class":217},[210,1001,1002],{"class":221}," info",[210,1004,977],{"class":221},[210,1006,1007],{"class":225},"               # 查看 info pages，比 man 更强的帮助系统\n",[210,1009,1011,1013,1016],{"class":1010,"line":262},[213,214],[210,1012,218],{"class":217},[210,1014,1015],{"class":221}," uptime",[210,1017,1018],{"class":225},"                    # 查看系统启动时间\n",[210,1020,1022,1024,1027],{"class":1021,"line":201},[213,214],[210,1023,218],{"class":217},[210,1025,1026],{"class":221}," date",[210,1028,1029],{"class":225},"                      # 显示日期\n",[210,1031,1033,1035,1038],{"class":1032,"line":202},[213,214],[210,1034,218],{"class":217},[210,1036,1037],{"class":221}," cal",[210,1039,1040],{"class":225},"                       # 显示日历\n",[210,1042,1043,1045,1048],{"class":213,"line":299},[210,1044,218],{"class":217},[210,1046,1047],{"class":221}," vmstat",[210,1049,1050],{"class":225},"                    # 显示内存和 CPU 使用情况\n",[210,1052,1053,1055,1057,1060],{"class":213,"line":312},[210,1054,218],{"class":217},[210,1056,1047],{"class":221},[210,1058,1059],{"class":822}," 10",[210,1061,1062],{"class":225},"                 # 每 10 秒打印一行内存和 CPU情况，CTRL+C 退出\n",[210,1064,1065,1067,1070],{"class":213,"line":203},[210,1066,218],{"class":217},[210,1068,1069],{"class":221}," free",[210,1071,1072],{"class":225},"                      # 显示内存和交换区使用情况\n",[210,1074,1075,1077,1080],{"class":213,"line":328},[210,1076,218],{"class":217},[210,1078,1079],{"class":221}," df",[210,1081,1082],{"class":225},"                        # 显示磁盘使用情况\n",[210,1084,1085,1087,1090],{"class":213,"line":484},[210,1086,218],{"class":217},[210,1088,1089],{"class":221}," du",[210,1091,1092],{"class":225},"                        # 显示当前目录占用，du . --max-depth=2 可以指定深度\n",[210,1094,1096,1098,1100],{"class":1095,"line":497},[213,214],[210,1097,218],{"class":217},[210,1099,962],{"class":221},[210,1101,1102],{"class":225},"                     # 显示系统版本号\n",[210,1104,1106,1108,1111],{"class":1105,"line":704},[213,214],[210,1107,218],{"class":217},[210,1109,1110],{"class":221}," hostname",[210,1112,1113],{"class":225},"                  # 显示主机名称\n",[210,1115,1116,1118,1121,1123],{"class":213,"line":515},[210,1117,218],{"class":217},[210,1119,1120],{"class":221}," showkey",[210,1122,567],{"class":221},[210,1124,1125],{"class":225},"                # 查看终端发送的按键编码\n",[191,1127,1128],{"id":1128},"用户管理",[195,1130,1133],{"className":197,"code":1131,"highlights":1132,"language":204,"meta":205,"style":205},"$ sudo {command}            # 以 root 权限执行某命令\n$ whoami                    # 显示我的用户名\n$ who                       # 显示已登陆用户信息，w \u002F who \u002F users 内容略有不同\n$ w                         # 显示已登陆用户信息，w \u002F who \u002F users 内容略有不同\n$ users                     # 显示已登陆用户信息，w \u002F who \u002F users 内容略有不同\n$ passwd                    # 修改密码，passwd {user} 可以用于 root 修改别人密码\n$ finger {user}             # 显示某用户信息，包括 id, 名字, 登陆状态等\n$ adduser {user}            # 添加用户\n$ deluser {user}            # 删除用户\n$ su                        # 切换到 root 用户\n$ su -                      # 切换到 root 用户并登陆（执行登陆脚本）\n$ su {user}                 # 切换到某用户\n$ su -{user}                # 切换到某用户并登陆（执行登陆脚本）\n$ id {user}                 # 查看用户的 uid，gid 以及所属其他用户组\n$ id -u {user}              # 打印用户 uid\n$ id -g {user}              # 打印用户 gid\n$ write {user}              # 向某用户发送一句消息\n$ last                      # 显示最近用户登陆列表\n$ last {user}               # 显示登陆记录\n$ lastb                     # 显示失败登陆记录\n$ lastlog                   # 显示所有用户的最近登陆记录\n",[200,229,240,255,262,201],[207,1134,1135,1149,1160,1171,1182,1193,1204,1217,1229,1241,1251,1262,1273,1285,1297,1311,1325,1337,1347,1358,1368],{"__ignoreMap":205},[210,1136,1138,1140,1143,1146],{"class":1137,"line":200},[213,214],[210,1139,218],{"class":217},[210,1141,1142],{"class":221}," sudo",[210,1144,1145],{"class":221}," {command}",[210,1147,1148],{"class":225},"            # 以 root 权限执行某命令\n",[210,1150,1152,1154,1157],{"class":1151,"line":229},[213,214],[210,1153,218],{"class":217},[210,1155,1156],{"class":221}," whoami",[210,1158,1159],{"class":225},"                    # 显示我的用户名\n",[210,1161,1163,1165,1168],{"class":1162,"line":240},[213,214],[210,1164,218],{"class":217},[210,1166,1167],{"class":221}," who",[210,1169,1170],{"class":225},"                       # 显示已登陆用户信息，w \u002F who \u002F users 内容略有不同\n",[210,1172,1174,1176,1179],{"class":1173,"line":255},[213,214],[210,1175,218],{"class":217},[210,1177,1178],{"class":221}," w",[210,1180,1181],{"class":225},"                         # 显示已登陆用户信息，w \u002F who \u002F users 内容略有不同\n",[210,1183,1185,1187,1190],{"class":1184,"line":262},[213,214],[210,1186,218],{"class":217},[210,1188,1189],{"class":221}," users",[210,1191,1192],{"class":225},"                     # 显示已登陆用户信息，w \u002F who \u002F users 内容略有不同\n",[210,1194,1196,1198,1201],{"class":1195,"line":201},[213,214],[210,1197,218],{"class":217},[210,1199,1200],{"class":221}," passwd",[210,1202,1203],{"class":225},"                    # 修改密码，passwd {user} 可以用于 root 修改别人密码\n",[210,1205,1206,1208,1211,1214],{"class":213,"line":202},[210,1207,218],{"class":217},[210,1209,1210],{"class":221}," finger",[210,1212,1213],{"class":221}," {user}",[210,1215,1216],{"class":225},"             # 显示某用户信息，包括 id, 名字, 登陆状态等\n",[210,1218,1219,1221,1224,1226],{"class":213,"line":299},[210,1220,218],{"class":217},[210,1222,1223],{"class":221}," adduser",[210,1225,1213],{"class":221},[210,1227,1228],{"class":225},"            # 添加用户\n",[210,1230,1231,1233,1236,1238],{"class":213,"line":312},[210,1232,218],{"class":217},[210,1234,1235],{"class":221}," deluser",[210,1237,1213],{"class":221},[210,1239,1240],{"class":225},"            # 删除用户\n",[210,1242,1243,1245,1248],{"class":213,"line":203},[210,1244,218],{"class":217},[210,1246,1247],{"class":221}," su",[210,1249,1250],{"class":225},"                        # 切换到 root 用户\n",[210,1252,1253,1255,1257,1259],{"class":213,"line":328},[210,1254,218],{"class":217},[210,1256,1247],{"class":221},[210,1258,491],{"class":221},[210,1260,1261],{"class":225},"                      # 切换到 root 用户并登陆（执行登陆脚本）\n",[210,1263,1264,1266,1268,1270],{"class":213,"line":484},[210,1265,218],{"class":217},[210,1267,1247],{"class":221},[210,1269,1213],{"class":221},[210,1271,1272],{"class":225},"                 # 切换到某用户\n",[210,1274,1275,1277,1279,1282],{"class":213,"line":497},[210,1276,218],{"class":217},[210,1278,1247],{"class":221},[210,1280,1281],{"class":221}," -{user}",[210,1283,1284],{"class":225},"                # 切换到某用户并登陆（执行登陆脚本）\n",[210,1286,1287,1289,1292,1294],{"class":213,"line":704},[210,1288,218],{"class":217},[210,1290,1291],{"class":221}," id",[210,1293,1213],{"class":221},[210,1295,1296],{"class":225},"                 # 查看用户的 uid，gid 以及所属其他用户组\n",[210,1298,1299,1301,1303,1306,1308],{"class":213,"line":515},[210,1300,218],{"class":217},[210,1302,1291],{"class":221},[210,1304,1305],{"class":221}," -u",[210,1307,1213],{"class":221},[210,1309,1310],{"class":225},"              # 打印用户 uid\n",[210,1312,1313,1315,1317,1320,1322],{"class":213,"line":516},[210,1314,218],{"class":217},[210,1316,1291],{"class":221},[210,1318,1319],{"class":221}," -g",[210,1321,1213],{"class":221},[210,1323,1324],{"class":225},"              # 打印用户 gid\n",[210,1326,1327,1329,1332,1334],{"class":213,"line":743},[210,1328,218],{"class":217},[210,1330,1331],{"class":221}," write",[210,1333,1213],{"class":221},[210,1335,1336],{"class":225},"              # 向某用户发送一句消息\n",[210,1338,1339,1341,1344],{"class":213,"line":758},[210,1340,218],{"class":217},[210,1342,1343],{"class":221}," last",[210,1345,1346],{"class":225},"                      # 显示最近用户登陆列表\n",[210,1348,1349,1351,1353,1355],{"class":213,"line":771},[210,1350,218],{"class":217},[210,1352,1343],{"class":221},[210,1354,1213],{"class":221},[210,1356,1357],{"class":225},"               # 显示登陆记录\n",[210,1359,1360,1362,1365],{"class":213,"line":784},[210,1361,218],{"class":217},[210,1363,1364],{"class":221}," lastb",[210,1366,1367],{"class":225},"                     # 显示失败登陆记录\n",[210,1369,1370,1372,1375],{"class":213,"line":517},[210,1371,218],{"class":217},[210,1373,1374],{"class":221}," lastlog",[210,1376,1377],{"class":225},"                   # 显示所有用户的最近登陆记录\n",[191,1379,1380],{"id":1380},"进程管理",[195,1382,1385],{"className":197,"code":1383,"highlights":1384,"language":204,"meta":205,"style":205},"$ ps                        # 查看当前会话进程\n$ ps ax                     # 查看所有进程，类似 ps -e\n$ ps aux                    # 查看所有进程详细信息，类似 ps -ef\n$ ps auxww                  # 查看所有进程，并且显示进程的完整启动命令\n$ ps -u {user}              # 查看某用户进程\n$ ps axjf                   # 列出进程树\n$ ps xjf -u {user}          # 列出某用户的进程树\n$ ps -eo pid,user,command   # 按用户指定的格式查看进程\n$ ps aux | grep httpd       # 查看名为 httpd 的所有进程\n$ ps --ppid {pid}           # 查看父进程为 pid 的所有进程\n$ pstree                    # 树形列出所有进程，pstree 默认一般不带，需安装\n$ pstree {user}             # 进程树列出某用户的进程\n$ pstree -u                 # 树形列出所有进程以及所属用户\n$ pgrep {procname}          # 搜索名字匹配的进程的 pid，比如 pgrep apache2\n\n$ kill {pid}                # 结束进程\n$ kill -9 {pid}             # 强制结束进程，9\u002FSIGKILL 是强制不可捕获结束信号\n$ kill -KILL {pid}          # 强制执行进程，kill -9 的另外一种写法\n$ kill -l                   # 查看所有信号\n$ kill -l TERM              # 查看 TERM 信号的编号\n$ killall {procname}        # 按名称结束所有进程\n$ pkill {procname}          # 按名称结束进程，除名称外还可以有其他参数\n\n$ top                       # 查看最活跃的进程\n$ top -u {user}             # 查看某用户最活跃的进程\n\n$ any_command &             # 在后台运行某命令，也可用 CTRL+Z 将当前进程挂到后台\n$ jobs                      # 查看所有后台进程（jobs）\n$ bg                        # 查看后台进程，并切换过去\n$ fg                        # 切换后台进程到前台\n$ fg {job}                  # 切换特定后台进程到前台\n\n$ trap cmd sig1 sig2        # 在脚本中设置信号处理命令\n$ trap \"\" sig1 sig2         # 在脚本中屏蔽某信号\n$ trap - sig1 sig2          # 恢复默认信号处理行为\n\n$ nohup {command}           # 长期运行某程序，在你退出登陆都保持它运行\n$ nohup {command} &         # 在后台长期运行某程序\n$ disown {PID|JID}          # 将进程从后台任务列表（jobs）移除\n\n$ wait                      # 等待所有后台进程任务结束\n",[200,516,847],[207,1386,1387,1398,1410,1422,1434,1447,1459,1475,1490,1509,1524,1534,1545,1556,1569,1573,1586,1600,1614,1625,1639,1651,1663,1667,1678,1691,1695,1708,1718,1728,1738,1751,1756,1776,1793,1809,1814,1827,1841,1861,1866],{"__ignoreMap":205},[210,1388,1390,1392,1395],{"class":1389,"line":200},[213,214],[210,1391,218],{"class":217},[210,1393,1394],{"class":221}," ps",[210,1396,1397],{"class":225},"                        # 查看当前会话进程\n",[210,1399,1400,1402,1404,1407],{"class":213,"line":229},[210,1401,218],{"class":217},[210,1403,1394],{"class":221},[210,1405,1406],{"class":221}," ax",[210,1408,1409],{"class":225},"                     # 查看所有进程，类似 ps -e\n",[210,1411,1412,1414,1416,1419],{"class":213,"line":240},[210,1413,218],{"class":217},[210,1415,1394],{"class":221},[210,1417,1418],{"class":221}," aux",[210,1420,1421],{"class":225},"                    # 查看所有进程详细信息，类似 ps -ef\n",[210,1423,1424,1426,1428,1431],{"class":213,"line":255},[210,1425,218],{"class":217},[210,1427,1394],{"class":221},[210,1429,1430],{"class":221}," auxww",[210,1432,1433],{"class":225},"                  # 查看所有进程，并且显示进程的完整启动命令\n",[210,1435,1436,1438,1440,1442,1444],{"class":213,"line":262},[210,1437,218],{"class":217},[210,1439,1394],{"class":221},[210,1441,1305],{"class":221},[210,1443,1213],{"class":221},[210,1445,1446],{"class":225},"              # 查看某用户进程\n",[210,1448,1449,1451,1453,1456],{"class":213,"line":201},[210,1450,218],{"class":217},[210,1452,1394],{"class":221},[210,1454,1455],{"class":221}," axjf",[210,1457,1458],{"class":225},"                   # 列出进程树\n",[210,1460,1461,1463,1465,1468,1470,1472],{"class":213,"line":202},[210,1462,218],{"class":217},[210,1464,1394],{"class":221},[210,1466,1467],{"class":221}," xjf",[210,1469,1305],{"class":221},[210,1471,1213],{"class":221},[210,1473,1474],{"class":225},"          # 列出某用户的进程树\n",[210,1476,1477,1479,1481,1484,1487],{"class":213,"line":299},[210,1478,218],{"class":217},[210,1480,1394],{"class":221},[210,1482,1483],{"class":221}," -eo",[210,1485,1486],{"class":221}," pid,user,command",[210,1488,1489],{"class":225},"   # 按用户指定的格式查看进程\n",[210,1491,1492,1494,1496,1498,1501,1503,1506],{"class":213,"line":312},[210,1493,218],{"class":217},[210,1495,1394],{"class":221},[210,1497,1418],{"class":221},[210,1499,1500],{"class":683}," |",[210,1502,907],{"class":217},[210,1504,1505],{"class":221}," httpd",[210,1507,1508],{"class":225},"       # 查看名为 httpd 的所有进程\n",[210,1510,1511,1513,1515,1518,1521],{"class":213,"line":203},[210,1512,218],{"class":217},[210,1514,1394],{"class":221},[210,1516,1517],{"class":221}," --ppid",[210,1519,1520],{"class":221}," {pid}",[210,1522,1523],{"class":225},"           # 查看父进程为 pid 的所有进程\n",[210,1525,1526,1528,1531],{"class":213,"line":328},[210,1527,218],{"class":217},[210,1529,1530],{"class":221}," pstree",[210,1532,1533],{"class":225},"                    # 树形列出所有进程，pstree 默认一般不带，需安装\n",[210,1535,1536,1538,1540,1542],{"class":213,"line":484},[210,1537,218],{"class":217},[210,1539,1530],{"class":221},[210,1541,1213],{"class":221},[210,1543,1544],{"class":225},"             # 进程树列出某用户的进程\n",[210,1546,1547,1549,1551,1553],{"class":213,"line":497},[210,1548,218],{"class":217},[210,1550,1530],{"class":221},[210,1552,1305],{"class":221},[210,1554,1555],{"class":225},"                 # 树形列出所有进程以及所属用户\n",[210,1557,1558,1560,1563,1566],{"class":213,"line":704},[210,1559,218],{"class":217},[210,1561,1562],{"class":221}," pgrep",[210,1564,1565],{"class":221}," {procname}",[210,1567,1568],{"class":225},"          # 搜索名字匹配的进程的 pid，比如 pgrep apache2\n",[210,1570,1571],{"class":213,"line":515},[210,1572,259],{"emptyLinePlaceholder":258},[210,1574,1576,1578,1581,1583],{"class":1575,"line":516},[213,214],[210,1577,218],{"class":217},[210,1579,1580],{"class":221}," kill",[210,1582,1520],{"class":221},[210,1584,1585],{"class":225},"                # 结束进程\n",[210,1587,1588,1590,1592,1595,1597],{"class":213,"line":743},[210,1589,218],{"class":217},[210,1591,1580],{"class":221},[210,1593,1594],{"class":221}," -9",[210,1596,1520],{"class":221},[210,1598,1599],{"class":225},"             # 强制结束进程，9\u002FSIGKILL 是强制不可捕获结束信号\n",[210,1601,1602,1604,1606,1609,1611],{"class":213,"line":758},[210,1603,218],{"class":217},[210,1605,1580],{"class":221},[210,1607,1608],{"class":221}," -KILL",[210,1610,1520],{"class":221},[210,1612,1613],{"class":225},"          # 强制执行进程，kill -9 的另外一种写法\n",[210,1615,1616,1618,1620,1622],{"class":213,"line":771},[210,1617,218],{"class":217},[210,1619,1580],{"class":221},[210,1621,541],{"class":221},[210,1623,1624],{"class":225},"                   # 查看所有信号\n",[210,1626,1627,1629,1631,1633,1636],{"class":213,"line":784},[210,1628,218],{"class":217},[210,1630,1580],{"class":221},[210,1632,541],{"class":221},[210,1634,1635],{"class":221}," TERM",[210,1637,1638],{"class":225},"              # 查看 TERM 信号的编号\n",[210,1640,1641,1643,1646,1648],{"class":213,"line":517},[210,1642,218],{"class":217},[210,1644,1645],{"class":221}," killall",[210,1647,1565],{"class":221},[210,1649,1650],{"class":225},"        # 按名称结束所有进程\n",[210,1652,1653,1655,1658,1660],{"class":213,"line":814},[210,1654,218],{"class":217},[210,1656,1657],{"class":221}," pkill",[210,1659,1565],{"class":221},[210,1661,1662],{"class":225},"          # 按名称结束进程，除名称外还可以有其他参数\n",[210,1664,1665],{"class":213,"line":831},[210,1666,259],{"emptyLinePlaceholder":258},[210,1668,1670,1672,1675],{"class":1669,"line":847},[213,214],[210,1671,218],{"class":217},[210,1673,1674],{"class":221}," top",[210,1676,1677],{"class":225},"                       # 查看最活跃的进程\n",[210,1679,1680,1682,1684,1686,1688],{"class":213,"line":863},[210,1681,218],{"class":217},[210,1683,1674],{"class":221},[210,1685,1305],{"class":221},[210,1687,1213],{"class":221},[210,1689,1690],{"class":225},"             # 查看某用户最活跃的进程\n",[210,1692,1693],{"class":213,"line":876},[210,1694,259],{"emptyLinePlaceholder":258},[210,1696,1697,1699,1702,1705],{"class":213,"line":889},[210,1698,218],{"class":217},[210,1700,1701],{"class":221}," any_command",[210,1703,1704],{"class":683}," &",[210,1706,1707],{"class":225},"             # 在后台运行某命令，也可用 CTRL+Z 将当前进程挂到后台\n",[210,1709,1710,1712,1715],{"class":213,"line":902},[210,1711,218],{"class":217},[210,1713,1714],{"class":221}," jobs",[210,1716,1717],{"class":225},"                      # 查看所有后台进程（jobs）\n",[210,1719,1720,1722,1725],{"class":213,"line":918},[210,1721,218],{"class":217},[210,1723,1724],{"class":221}," bg",[210,1726,1727],{"class":225},"                        # 查看后台进程，并切换过去\n",[210,1729,1730,1732,1735],{"class":213,"line":518},[210,1731,218],{"class":217},[210,1733,1734],{"class":221}," fg",[210,1736,1737],{"class":225},"                        # 切换后台进程到前台\n",[210,1739,1741,1743,1745,1748],{"class":213,"line":1740},31,[210,1742,218],{"class":217},[210,1744,1734],{"class":221},[210,1746,1747],{"class":221}," {job}",[210,1749,1750],{"class":225},"                  # 切换特定后台进程到前台\n",[210,1752,1754],{"class":213,"line":1753},32,[210,1755,259],{"emptyLinePlaceholder":258},[210,1757,1759,1761,1764,1767,1770,1773],{"class":213,"line":1758},33,[210,1760,218],{"class":217},[210,1762,1763],{"class":221}," trap",[210,1765,1766],{"class":221}," cmd",[210,1768,1769],{"class":221}," sig1",[210,1771,1772],{"class":221}," sig2",[210,1774,1775],{"class":225},"        # 在脚本中设置信号处理命令\n",[210,1777,1779,1781,1783,1786,1788,1790],{"class":213,"line":1778},34,[210,1780,218],{"class":217},[210,1782,1763],{"class":221},[210,1784,1785],{"class":683}," \"\"",[210,1787,1769],{"class":221},[210,1789,1772],{"class":221},[210,1791,1792],{"class":225},"         # 在脚本中屏蔽某信号\n",[210,1794,1796,1798,1800,1802,1804,1806],{"class":213,"line":1795},35,[210,1797,218],{"class":217},[210,1799,1763],{"class":221},[210,1801,491],{"class":221},[210,1803,1769],{"class":221},[210,1805,1772],{"class":221},[210,1807,1808],{"class":225},"          # 恢复默认信号处理行为\n",[210,1810,1812],{"class":213,"line":1811},36,[210,1813,259],{"emptyLinePlaceholder":258},[210,1815,1817,1819,1822,1824],{"class":213,"line":1816},37,[210,1818,218],{"class":217},[210,1820,1821],{"class":221}," nohup",[210,1823,1145],{"class":221},[210,1825,1826],{"class":225},"           # 长期运行某程序，在你退出登陆都保持它运行\n",[210,1828,1830,1832,1834,1836,1838],{"class":213,"line":1829},38,[210,1831,218],{"class":217},[210,1833,1821],{"class":221},[210,1835,1145],{"class":221},[210,1837,1704],{"class":683},[210,1839,1840],{"class":225},"         # 在后台长期运行某程序\n",[210,1842,1844,1846,1849,1852,1855,1858],{"class":213,"line":1843},39,[210,1845,218],{"class":217},[210,1847,1848],{"class":221}," disown",[210,1850,1851],{"class":221}," {PID",[210,1853,1854],{"class":683},"|",[210,1856,1857],{"class":217},"JID}",[210,1859,1860],{"class":225},"          # 将进程从后台任务列表（jobs）移除\n",[210,1862,1864],{"class":213,"line":1863},40,[210,1865,259],{"emptyLinePlaceholder":258},[210,1867,1869,1871,1874],{"class":213,"line":1868},41,[210,1870,218],{"class":217},[210,1872,1873],{"class":221}," wait",[210,1875,1876],{"class":225},"                      # 等待所有后台进程任务结束\n",[191,1878,1879],{"id":1879},"网络操作",[195,1881,1883],{"className":197,"code":1882,"language":204,"meta":205,"style":205},"$ ping {host}               # ping 远程主机并显示结果，CTRL+C 退出\n$ ping -c N {host}          # ping 远程主机 N 次\n$ traceroute {host}         # 侦测路由连通情况\n$ mtr {host}                # 高级版本 traceroute\n$ host {domain}             # DNS 查询，{domain} 前面可加 -a 查看详细信息\n$ whois {domain}            # 取得域名 whois 信息\n$ dig {domain}              # 取得域名 dns 信息\n$ route -n                  # 查看路由表\n$ netstat -a                # 列出所有端口\n$ netstat -an               # 查看所有连接信息，不解析域名\n$ netstat -anp              # 查看所有连接信息，包含进程信息（需要 sudo）\n$ netstat -l                # 查看所有监听的端口\n$ netstat -t                # 查看所有 TCP 链接\n$ netstat -lntu             # 显示所有正在监听的 TCP 和 UDP 信息\n$ netstat -lntup            # 显示所有正在监听的 socket 及进程信息\n$ netstat -i                # 显示网卡信息\n$ netstat -rn               # 显示当前系统路由表，同 route -n\n$ ss -an                    # 比 netstat -an 更快速更详细\n$ ss -s                     # 统计 TCP 的 established, wait 等\n\n$ wget {url}                # 下载，可加 --no-check-certificate，忽略ssl验证\n$ wget -qO- {url}           # 下载文件并输出到标准输出（不保存）\n$ curl -sL {url}            # 同 wget -qO- {url} 没有 wget 的时候使用\n\n$ sz {file}                 # 发送文件到终端，zmodem 协议\n$ rz                        # 接收终端发送过来的文件\n",[207,1884,1885,1898,1915,1927,1939,1952,1964,1976,1989,2001,2013,2025,2036,2048,2060,2072,2084,2096,2108,2119,2123,2136,2150,2165,2169,2182],{"__ignoreMap":205},[210,1886,1887,1889,1892,1895],{"class":213,"line":200},[210,1888,218],{"class":217},[210,1890,1891],{"class":221}," ping",[210,1893,1894],{"class":221}," {host}",[210,1896,1897],{"class":225},"               # ping 远程主机并显示结果，CTRL+C 退出\n",[210,1899,1900,1902,1904,1907,1910,1912],{"class":213,"line":229},[210,1901,218],{"class":217},[210,1903,1891],{"class":221},[210,1905,1906],{"class":221}," -c",[210,1908,1909],{"class":221}," N",[210,1911,1894],{"class":221},[210,1913,1914],{"class":225},"          # ping 远程主机 N 次\n",[210,1916,1917,1919,1922,1924],{"class":213,"line":240},[210,1918,218],{"class":217},[210,1920,1921],{"class":221}," traceroute",[210,1923,1894],{"class":221},[210,1925,1926],{"class":225},"         # 侦测路由连通情况\n",[210,1928,1929,1931,1934,1936],{"class":213,"line":255},[210,1930,218],{"class":217},[210,1932,1933],{"class":221}," mtr",[210,1935,1894],{"class":221},[210,1937,1938],{"class":225},"                # 高级版本 traceroute\n",[210,1940,1941,1943,1946,1949],{"class":213,"line":262},[210,1942,218],{"class":217},[210,1944,1945],{"class":221}," host",[210,1947,1948],{"class":221}," {domain}",[210,1950,1951],{"class":225},"             # DNS 查询，{domain} 前面可加 -a 查看详细信息\n",[210,1953,1954,1956,1959,1961],{"class":213,"line":201},[210,1955,218],{"class":217},[210,1957,1958],{"class":221}," whois",[210,1960,1948],{"class":221},[210,1962,1963],{"class":225},"            # 取得域名 whois 信息\n",[210,1965,1966,1968,1971,1973],{"class":213,"line":202},[210,1967,218],{"class":217},[210,1969,1970],{"class":221}," dig",[210,1972,1948],{"class":221},[210,1974,1975],{"class":225},"              # 取得域名 dns 信息\n",[210,1977,1978,1980,1983,1986],{"class":213,"line":299},[210,1979,218],{"class":217},[210,1981,1982],{"class":221}," route",[210,1984,1985],{"class":221}," -n",[210,1987,1988],{"class":225},"                  # 查看路由表\n",[210,1990,1991,1993,1996,1998],{"class":213,"line":312},[210,1992,218],{"class":217},[210,1994,1995],{"class":221}," netstat",[210,1997,567],{"class":221},[210,1999,2000],{"class":225},"                # 列出所有端口\n",[210,2002,2003,2005,2007,2010],{"class":213,"line":203},[210,2004,218],{"class":217},[210,2006,1995],{"class":221},[210,2008,2009],{"class":221}," -an",[210,2011,2012],{"class":225},"               # 查看所有连接信息，不解析域名\n",[210,2014,2015,2017,2019,2022],{"class":213,"line":328},[210,2016,218],{"class":217},[210,2018,1995],{"class":221},[210,2020,2021],{"class":221}," -anp",[210,2023,2024],{"class":225},"              # 查看所有连接信息，包含进程信息（需要 sudo）\n",[210,2026,2027,2029,2031,2033],{"class":213,"line":484},[210,2028,218],{"class":217},[210,2030,1995],{"class":221},[210,2032,541],{"class":221},[210,2034,2035],{"class":225},"                # 查看所有监听的端口\n",[210,2037,2038,2040,2042,2045],{"class":213,"line":497},[210,2039,218],{"class":217},[210,2041,1995],{"class":221},[210,2043,2044],{"class":221}," -t",[210,2046,2047],{"class":225},"                # 查看所有 TCP 链接\n",[210,2049,2050,2052,2054,2057],{"class":213,"line":704},[210,2051,218],{"class":217},[210,2053,1995],{"class":221},[210,2055,2056],{"class":221}," -lntu",[210,2058,2059],{"class":225},"             # 显示所有正在监听的 TCP 和 UDP 信息\n",[210,2061,2062,2064,2066,2069],{"class":213,"line":515},[210,2063,218],{"class":217},[210,2065,1995],{"class":221},[210,2067,2068],{"class":221}," -lntup",[210,2070,2071],{"class":225},"            # 显示所有正在监听的 socket 及进程信息\n",[210,2073,2074,2076,2078,2081],{"class":213,"line":516},[210,2075,218],{"class":217},[210,2077,1995],{"class":221},[210,2079,2080],{"class":221}," -i",[210,2082,2083],{"class":225},"                # 显示网卡信息\n",[210,2085,2086,2088,2090,2093],{"class":213,"line":743},[210,2087,218],{"class":217},[210,2089,1995],{"class":221},[210,2091,2092],{"class":221}," -rn",[210,2094,2095],{"class":225},"               # 显示当前系统路由表，同 route -n\n",[210,2097,2098,2100,2103,2105],{"class":213,"line":758},[210,2099,218],{"class":217},[210,2101,2102],{"class":221}," ss",[210,2104,2009],{"class":221},[210,2106,2107],{"class":225},"                    # 比 netstat -an 更快速更详细\n",[210,2109,2110,2112,2114,2116],{"class":213,"line":771},[210,2111,218],{"class":217},[210,2113,2102],{"class":221},[210,2115,580],{"class":221},[210,2117,2118],{"class":225},"                     # 统计 TCP 的 established, wait 等\n",[210,2120,2121],{"class":213,"line":784},[210,2122,259],{"emptyLinePlaceholder":258},[210,2124,2125,2127,2130,2133],{"class":213,"line":517},[210,2126,218],{"class":217},[210,2128,2129],{"class":221}," wget",[210,2131,2132],{"class":221}," {url}",[210,2134,2135],{"class":225},"                # 下载，可加 --no-check-certificate，忽略ssl验证\n",[210,2137,2138,2140,2142,2145,2147],{"class":213,"line":814},[210,2139,218],{"class":217},[210,2141,2129],{"class":221},[210,2143,2144],{"class":221}," -qO-",[210,2146,2132],{"class":221},[210,2148,2149],{"class":225},"           # 下载文件并输出到标准输出（不保存）\n",[210,2151,2152,2154,2157,2160,2162],{"class":213,"line":831},[210,2153,218],{"class":217},[210,2155,2156],{"class":221}," curl",[210,2158,2159],{"class":221}," -sL",[210,2161,2132],{"class":221},[210,2163,2164],{"class":225},"            # 同 wget -qO- {url} 没有 wget 的时候使用\n",[210,2166,2167],{"class":213,"line":847},[210,2168,259],{"emptyLinePlaceholder":258},[210,2170,2171,2173,2176,2179],{"class":213,"line":863},[210,2172,218],{"class":217},[210,2174,2175],{"class":221}," sz",[210,2177,2178],{"class":221}," {file}",[210,2180,2181],{"class":225},"                 # 发送文件到终端，zmodem 协议\n",[210,2183,2184,2186,2189],{"class":213,"line":876},[210,2185,218],{"class":217},[210,2187,2188],{"class":221}," rz",[210,2190,2191],{"class":225},"                        # 接收终端发送过来的文件\n",[191,2193,2194],{"id":2194},"网络管理",[195,2196,2199],{"className":197,"code":2197,"highlights":2198,"language":204,"meta":205,"style":205},"$ ip a                               # 显示所有网络地址，同 ip address\n$ ip a show eth1                     # 显示网卡 IP 地址\n$ ip a add 172.16.1.23\u002F24 dev eth1   # 添加网卡 IP 地址\n$ ip a del 172.16.1.23\u002F24 dev eth1   # 删除网卡 IP 地址\n$ ip link show dev eth0              # 显示网卡设备属性\n$ ip link set eth1 up                # 激活网卡\n$ ip link set eth1 down              # 关闭网卡\n$ ip link set eth1 address {mac}     # 修改 MAC 地址\n$ ip neighbour                       # 查看 ARP 缓存\n$ ip route                           # 查看路由表\n$ ip route add 10.1.0.0\u002F24 via 10.0.0.253 dev eth0    # 添加静态路由\n$ ip route del 10.1.0.0\u002F24           # 删除静态路由\n\n$ ifconfig                           # 显示所有网卡和接口信息\n$ ifconfig -a                        # 显示所有网卡（包括开机没启动的）信息\n$ ifconfig eth0                      # 指定设备显示信息\n$ ifconfig eth0 up                   # 激活网卡\n$ ifconfig eth0 down                 # 关闭网卡\n$ ifconfig eth0 192.168.120.56       # 给网卡配置 IP 地址\n$ ifconfig eth0 10.0.0.8 netmask 255.255.255.0 up     # 配置 IP 并启动\n$ ifconfig eth0 hw ether 00:aa:bb:cc:dd:ee            # 修改 MAC 地址\n\n$ nmap 10.0.0.12                     # 扫描主机 1-1000 端口\n$ nmap -p 1024-65535 10.0.0.12       # 扫描给定端口\n$ nmap 10.0.0.0\u002F24                   # 给定网段扫描局域网内所有主机\n$ nmap -O -sV 10.0.0.12              # 探测主机服务和操作系统版本\n",[704,515],[207,2200,2201,2214,2231,2253,2273,2292,2311,2329,2350,2362,2373,2399,2414,2418,2429,2441,2452,2465,2478,2492,2514,2534,2538,2551,2567,2579],{"__ignoreMap":205},[210,2202,2203,2205,2208,2211],{"class":213,"line":200},[210,2204,218],{"class":217},[210,2206,2207],{"class":221}," ip",[210,2209,2210],{"class":221}," a",[210,2212,2213],{"class":225},"                               # 显示所有网络地址，同 ip address\n",[210,2215,2216,2218,2220,2222,2225,2228],{"class":213,"line":229},[210,2217,218],{"class":217},[210,2219,2207],{"class":221},[210,2221,2210],{"class":221},[210,2223,2224],{"class":221}," show",[210,2226,2227],{"class":221}," eth1",[210,2229,2230],{"class":225},"                     # 显示网卡 IP 地址\n",[210,2232,2233,2235,2237,2239,2242,2245,2248,2250],{"class":213,"line":240},[210,2234,218],{"class":217},[210,2236,2207],{"class":221},[210,2238,2210],{"class":221},[210,2240,2241],{"class":221}," add",[210,2243,2244],{"class":221}," 172.16.1.23\u002F24",[210,2246,2247],{"class":221}," dev",[210,2249,2227],{"class":221},[210,2251,2252],{"class":225},"   # 添加网卡 IP 地址\n",[210,2254,2255,2257,2259,2261,2264,2266,2268,2270],{"class":213,"line":255},[210,2256,218],{"class":217},[210,2258,2207],{"class":221},[210,2260,2210],{"class":221},[210,2262,2263],{"class":221}," del",[210,2265,2244],{"class":221},[210,2267,2247],{"class":221},[210,2269,2227],{"class":221},[210,2271,2272],{"class":225},"   # 删除网卡 IP 地址\n",[210,2274,2275,2277,2279,2282,2284,2286,2289],{"class":213,"line":262},[210,2276,218],{"class":217},[210,2278,2207],{"class":221},[210,2280,2281],{"class":221}," link",[210,2283,2224],{"class":221},[210,2285,2247],{"class":221},[210,2287,2288],{"class":221}," eth0",[210,2290,2291],{"class":225},"              # 显示网卡设备属性\n",[210,2293,2294,2296,2298,2300,2303,2305,2308],{"class":213,"line":201},[210,2295,218],{"class":217},[210,2297,2207],{"class":221},[210,2299,2281],{"class":221},[210,2301,2302],{"class":221}," set",[210,2304,2227],{"class":221},[210,2306,2307],{"class":221}," up",[210,2309,2310],{"class":225},"                # 激活网卡\n",[210,2312,2313,2315,2317,2319,2321,2323,2326],{"class":213,"line":202},[210,2314,218],{"class":217},[210,2316,2207],{"class":221},[210,2318,2281],{"class":221},[210,2320,2302],{"class":221},[210,2322,2227],{"class":221},[210,2324,2325],{"class":221}," down",[210,2327,2328],{"class":225},"              # 关闭网卡\n",[210,2330,2331,2333,2335,2337,2339,2341,2344,2347],{"class":213,"line":299},[210,2332,218],{"class":217},[210,2334,2207],{"class":221},[210,2336,2281],{"class":221},[210,2338,2302],{"class":221},[210,2340,2227],{"class":221},[210,2342,2343],{"class":221}," address",[210,2345,2346],{"class":221}," {mac}",[210,2348,2349],{"class":225},"     # 修改 MAC 地址\n",[210,2351,2352,2354,2356,2359],{"class":213,"line":312},[210,2353,218],{"class":217},[210,2355,2207],{"class":221},[210,2357,2358],{"class":221}," neighbour",[210,2360,2361],{"class":225},"                       # 查看 ARP 缓存\n",[210,2363,2364,2366,2368,2370],{"class":213,"line":203},[210,2365,218],{"class":217},[210,2367,2207],{"class":221},[210,2369,1982],{"class":221},[210,2371,2372],{"class":225},"                           # 查看路由表\n",[210,2374,2375,2377,2379,2381,2383,2386,2389,2392,2394,2396],{"class":213,"line":328},[210,2376,218],{"class":217},[210,2378,2207],{"class":221},[210,2380,1982],{"class":221},[210,2382,2241],{"class":221},[210,2384,2385],{"class":221}," 10.1.0.0\u002F24",[210,2387,2388],{"class":221}," via",[210,2390,2391],{"class":822}," 10.0.0.253",[210,2393,2247],{"class":221},[210,2395,2288],{"class":221},[210,2397,2398],{"class":225},"    # 添加静态路由\n",[210,2400,2401,2403,2405,2407,2409,2411],{"class":213,"line":484},[210,2402,218],{"class":217},[210,2404,2207],{"class":221},[210,2406,1982],{"class":221},[210,2408,2263],{"class":221},[210,2410,2385],{"class":221},[210,2412,2413],{"class":225},"           # 删除静态路由\n",[210,2415,2416],{"class":213,"line":497},[210,2417,259],{"emptyLinePlaceholder":258},[210,2419,2421,2423,2426],{"class":2420,"line":704},[213,214],[210,2422,218],{"class":217},[210,2424,2425],{"class":221}," ifconfig",[210,2427,2428],{"class":225},"                           # 显示所有网卡和接口信息\n",[210,2430,2432,2434,2436,2438],{"class":2431,"line":515},[213,214],[210,2433,218],{"class":217},[210,2435,2425],{"class":221},[210,2437,567],{"class":221},[210,2439,2440],{"class":225},"                        # 显示所有网卡（包括开机没启动的）信息\n",[210,2442,2443,2445,2447,2449],{"class":213,"line":516},[210,2444,218],{"class":217},[210,2446,2425],{"class":221},[210,2448,2288],{"class":221},[210,2450,2451],{"class":225},"                      # 指定设备显示信息\n",[210,2453,2454,2456,2458,2460,2462],{"class":213,"line":743},[210,2455,218],{"class":217},[210,2457,2425],{"class":221},[210,2459,2288],{"class":221},[210,2461,2307],{"class":221},[210,2463,2464],{"class":225},"                   # 激活网卡\n",[210,2466,2467,2469,2471,2473,2475],{"class":213,"line":758},[210,2468,218],{"class":217},[210,2470,2425],{"class":221},[210,2472,2288],{"class":221},[210,2474,2325],{"class":221},[210,2476,2477],{"class":225},"                 # 关闭网卡\n",[210,2479,2480,2482,2484,2486,2489],{"class":213,"line":771},[210,2481,218],{"class":217},[210,2483,2425],{"class":221},[210,2485,2288],{"class":221},[210,2487,2488],{"class":822}," 192.168.120.56",[210,2490,2491],{"class":225},"       # 给网卡配置 IP 地址\n",[210,2493,2494,2496,2498,2500,2503,2506,2509,2511],{"class":213,"line":784},[210,2495,218],{"class":217},[210,2497,2425],{"class":221},[210,2499,2288],{"class":221},[210,2501,2502],{"class":822}," 10.0.0.8",[210,2504,2505],{"class":221}," netmask",[210,2507,2508],{"class":822}," 255.255.255.0",[210,2510,2307],{"class":221},[210,2512,2513],{"class":225},"     # 配置 IP 并启动\n",[210,2515,2516,2518,2520,2522,2525,2528,2531],{"class":213,"line":517},[210,2517,218],{"class":217},[210,2519,2425],{"class":221},[210,2521,2288],{"class":221},[210,2523,2524],{"class":221}," hw",[210,2526,2527],{"class":221}," ether",[210,2529,2530],{"class":221}," 00:aa:bb:cc:dd:ee",[210,2532,2533],{"class":225},"            # 修改 MAC 地址\n",[210,2535,2536],{"class":213,"line":814},[210,2537,259],{"emptyLinePlaceholder":258},[210,2539,2540,2542,2545,2548],{"class":213,"line":831},[210,2541,218],{"class":217},[210,2543,2544],{"class":221}," nmap",[210,2546,2547],{"class":822}," 10.0.0.12",[210,2549,2550],{"class":225},"                     # 扫描主机 1-1000 端口\n",[210,2552,2553,2555,2557,2559,2562,2564],{"class":213,"line":847},[210,2554,218],{"class":217},[210,2556,2544],{"class":221},[210,2558,439],{"class":221},[210,2560,2561],{"class":221}," 1024-65535",[210,2563,2547],{"class":822},[210,2565,2566],{"class":225},"       # 扫描给定端口\n",[210,2568,2569,2571,2573,2576],{"class":213,"line":863},[210,2570,218],{"class":217},[210,2572,2544],{"class":221},[210,2574,2575],{"class":221}," 10.0.0.0\u002F24",[210,2577,2578],{"class":225},"                   # 给定网段扫描局域网内所有主机\n",[210,2580,2581,2583,2585,2588,2591,2593],{"class":213,"line":876},[210,2582,218],{"class":217},[210,2584,2544],{"class":221},[210,2586,2587],{"class":221}," -O",[210,2589,2590],{"class":221}," -sV",[210,2592,2547],{"class":822},[210,2594,2595],{"class":225},"              # 探测主机服务和操作系统版本\n",[191,2597,2598],{"id":2598},"命令处理",[195,2600,2603],{"className":197,"code":2601,"highlights":2602,"language":204,"meta":205,"style":205},"$ command ls                         # 忽略 alias 直接执行程序或者内建命令 ls\n$ builtin cd                         # 忽略 alias 直接运行内建的 cd 命令\n$ enable                             # 列出所有 bash 内置命令，或禁止某命令\n$ help {builtin_command}             # 查看内置命令的帮助（仅限 bash 内置命令）\n$ eval $script                       # 对 script 变量中的字符串求值（执行）\n",[240],[207,2604,2605,2617,2629,2640,2653],{"__ignoreMap":205},[210,2606,2607,2609,2612,2614],{"class":213,"line":200},[210,2608,218],{"class":217},[210,2610,2611],{"class":221}," command",[210,2613,528],{"class":221},[210,2615,2616],{"class":225},"                         # 忽略 alias 直接执行程序或者内建命令 ls\n",[210,2618,2619,2621,2624,2626],{"class":213,"line":229},[210,2620,218],{"class":217},[210,2622,2623],{"class":221}," builtin",[210,2625,353],{"class":221},[210,2627,2628],{"class":225},"                         # 忽略 alias 直接运行内建的 cd 命令\n",[210,2630,2632,2634,2637],{"class":2631,"line":240},[213,214],[210,2633,218],{"class":217},[210,2635,2636],{"class":221}," enable",[210,2638,2639],{"class":225},"                             # 列出所有 bash 内置命令，或禁止某命令\n",[210,2641,2642,2644,2647,2650],{"class":213,"line":255},[210,2643,218],{"class":217},[210,2645,2646],{"class":221}," help",[210,2648,2649],{"class":221}," {builtin_command}",[210,2651,2652],{"class":225},"             # 查看内置命令的帮助（仅限 bash 内置命令）\n",[210,2654,2655,2657,2660,2663],{"class":213,"line":262},[210,2656,218],{"class":217},[210,2658,2659],{"class":221}," eval",[210,2661,2662],{"class":248}," $script                       ",[210,2664,2665],{"class":225},"# 对 script 变量中的字符串求值（执行）\n",[191,2667,2668],{"id":2668},"其他命令",[195,2670,2673],{"className":197,"code":2671,"highlights":2672,"language":204,"meta":205,"style":205},"$ man hier                           # 查看文件系统的结构和含义\n$ man test                           # 查看 posix sh 的条件判断帮助\n$ man ascii                          # 显示 ascii 表\n$ getconf LONG_BIT                   # 查看系统是 32 位还是 64 位\n$ bind -P                            # 列出所有 bash 的快捷键\n$ mount | column -t                  # 漂亮的列出当前加载的文件系统\n$ curl ip.cn                         # 取得外网 ip 地址和服务商信息\n$ disown -a && exit                  # 关闭所有后台任务并退出\n$ cat \u002Fetc\u002Fissue                     # 查看 Linux 发行版信息\n$ lsof -i port:80                    # 哪个程序在使用 80 端口\n$ showkey -a                         # 取得按键的 ASCII 码\n$ svn diff | view -                  # 使用 Vim 来显示带色彩的 diff 输出\n$ mv filename.{old,new}              # 快速文件改名\n$ time read                          # 使用 CTRL-D 停止，最简单的计时功能\n$ cp file.txt{,.bak}                 # 快速备份文件\n$ sudo touch \u002Fforcefsck              # 强制在下次重启时扫描磁盘\n$ find ~ -mmin 60 -type f            # 查找 $HOME 目录中，60 分钟内修改过的文件\n$ curl wttr.in\u002F~beijing              # 查看北京的天气预报\n$ echo ${SSH_CLIENT%% *}             # 取得你是从什么 IP 链接到当前主机上的\n$ echo $[RANDOM%X+1]                 # 取得 1 到 X 之间的随机数\n$ bind -x '\"\\C-l\":ls -l'             # 设置 CTRL+l 为执行 ls -l 命令\n$ find \u002F -type f -size +5M           # 查找大于 5M 的文件\n$ chmod --reference f1 f2            # 将 f2 的权限设置成 f1 一模一样的\n$ curl -L cheat.sh                   # 速查表大全\n",[240,255],[207,2674,2675,2687,2699,2712,2726,2739,2756,2768,2785,2797,2812,2823,2842,2854,2867,2879,2893,2917,2929,2950,2965,2986,3008,3026],{"__ignoreMap":205},[210,2676,2677,2679,2681,2684],{"class":213,"line":200},[210,2678,218],{"class":217},[210,2680,974],{"class":221},[210,2682,2683],{"class":221}," hier",[210,2685,2686],{"class":225},"                           # 查看文件系统的结构和含义\n",[210,2688,2689,2691,2693,2696],{"class":213,"line":229},[210,2690,218],{"class":217},[210,2692,974],{"class":221},[210,2694,2695],{"class":221}," test",[210,2697,2698],{"class":225},"                           # 查看 posix sh 的条件判断帮助\n",[210,2700,2702,2704,2706,2709],{"class":2701,"line":240},[213,214],[210,2703,218],{"class":217},[210,2705,974],{"class":221},[210,2707,2708],{"class":221}," ascii",[210,2710,2711],{"class":225},"                          # 显示 ascii 表\n",[210,2713,2715,2717,2720,2723],{"class":2714,"line":255},[213,214],[210,2716,218],{"class":217},[210,2718,2719],{"class":221}," getconf",[210,2721,2722],{"class":221}," LONG_BIT",[210,2724,2725],{"class":225},"                   # 查看系统是 32 位还是 64 位\n",[210,2727,2728,2730,2733,2736],{"class":213,"line":262},[210,2729,218],{"class":217},[210,2731,2732],{"class":221}," bind",[210,2734,2735],{"class":221}," -P",[210,2737,2738],{"class":225},"                            # 列出所有 bash 的快捷键\n",[210,2740,2741,2743,2746,2748,2751,2753],{"class":213,"line":201},[210,2742,218],{"class":217},[210,2744,2745],{"class":221}," mount",[210,2747,1500],{"class":683},[210,2749,2750],{"class":217}," column",[210,2752,2044],{"class":221},[210,2754,2755],{"class":225},"                  # 漂亮的列出当前加载的文件系统\n",[210,2757,2758,2760,2762,2765],{"class":213,"line":202},[210,2759,218],{"class":217},[210,2761,2156],{"class":221},[210,2763,2764],{"class":221}," ip.cn",[210,2766,2767],{"class":225},"                         # 取得外网 ip 地址和服务商信息\n",[210,2769,2770,2772,2774,2776,2779,2782],{"class":213,"line":299},[210,2771,218],{"class":217},[210,2773,1848],{"class":221},[210,2775,567],{"class":221},[210,2777,2778],{"class":683}," &&",[210,2780,222],{"class":2781},"s2Zo4",[210,2783,2784],{"class":225},"                  # 关闭所有后台任务并退出\n",[210,2786,2787,2789,2791,2794],{"class":213,"line":312},[210,2788,218],{"class":217},[210,2790,668],{"class":221},[210,2792,2793],{"class":221}," \u002Fetc\u002Fissue",[210,2795,2796],{"class":225},"                     # 查看 Linux 发行版信息\n",[210,2798,2799,2801,2804,2806,2809],{"class":213,"line":203},[210,2800,218],{"class":217},[210,2802,2803],{"class":221}," lsof",[210,2805,2080],{"class":221},[210,2807,2808],{"class":221}," port:80",[210,2810,2811],{"class":225},"                    # 哪个程序在使用 80 端口\n",[210,2813,2814,2816,2818,2820],{"class":213,"line":328},[210,2815,218],{"class":217},[210,2817,1120],{"class":221},[210,2819,567],{"class":221},[210,2821,2822],{"class":225},"                         # 取得按键的 ASCII 码\n",[210,2824,2825,2827,2830,2832,2834,2837,2839],{"class":213,"line":484},[210,2826,218],{"class":217},[210,2828,2829],{"class":221}," svn",[210,2831,789],{"class":221},[210,2833,1500],{"class":683},[210,2835,2836],{"class":217}," view",[210,2838,491],{"class":221},[210,2840,2841],{"class":225},"                  # 使用 Vim 来显示带色彩的 diff 输出\n",[210,2843,2844,2846,2848,2851],{"class":213,"line":497},[210,2845,218],{"class":217},[210,2847,640],{"class":221},[210,2849,2850],{"class":221}," filename.{old,new}",[210,2852,2853],{"class":225},"              # 快速文件改名\n",[210,2855,2856,2858,2861,2864],{"class":213,"line":704},[210,2857,218],{"class":217},[210,2859,2860],{"class":221}," time",[210,2862,2863],{"class":221}," read",[210,2865,2866],{"class":225},"                          # 使用 CTRL-D 停止，最简单的计时功能\n",[210,2868,2869,2871,2873,2876],{"class":213,"line":515},[210,2870,218],{"class":217},[210,2872,596],{"class":221},[210,2874,2875],{"class":221}," file.txt{,.bak}",[210,2877,2878],{"class":225},"                 # 快速备份文件\n",[210,2880,2881,2883,2885,2887,2890],{"class":213,"line":516},[210,2882,218],{"class":217},[210,2884,1142],{"class":221},[210,2886,655],{"class":221},[210,2888,2889],{"class":221}," \u002Fforcefsck",[210,2891,2892],{"class":225},"              # 强制在下次重启时扫描磁盘\n",[210,2894,2895,2897,2900,2902,2905,2908,2911,2914],{"class":213,"line":743},[210,2896,218],{"class":217},[210,2898,2899],{"class":221}," find",[210,2901,379],{"class":221},[210,2903,2904],{"class":221}," -mmin",[210,2906,2907],{"class":822}," 60",[210,2909,2910],{"class":221}," -type",[210,2912,2913],{"class":221}," f",[210,2915,2916],{"class":225},"            # 查找 $HOME 目录中，60 分钟内修改过的文件\n",[210,2918,2919,2921,2923,2926],{"class":213,"line":758},[210,2920,218],{"class":217},[210,2922,2156],{"class":221},[210,2924,2925],{"class":221}," wttr.in\u002F~beijing",[210,2927,2928],{"class":225},"              # 查看北京的天气预报\n",[210,2930,2931,2933,2935,2938,2941,2944,2947],{"class":213,"line":771},[210,2932,218],{"class":217},[210,2934,245],{"class":221},[210,2936,2937],{"class":683}," ${",[210,2939,2940],{"class":248},"SSH_CLIENT",[210,2942,2943],{"class":683},"%%",[210,2945,2946],{"class":683}," *}",[210,2948,2949],{"class":225},"             # 取得你是从什么 IP 链接到当前主机上的\n",[210,2951,2952,2954,2956,2959,2962],{"class":213,"line":784},[210,2953,218],{"class":217},[210,2955,245],{"class":221},[210,2957,2958],{"class":248}," $",[210,2960,2961],{"class":221},"[RANDOM%X+1]",[210,2963,2964],{"class":225},"                 # 取得 1 到 X 之间的随机数\n",[210,2966,2967,2969,2971,2974,2977,2980,2983],{"class":213,"line":517},[210,2968,218],{"class":217},[210,2970,2732],{"class":221},[210,2972,2973],{"class":221}," -x",[210,2975,2976],{"class":683}," '",[210,2978,2979],{"class":221},"\"\\C-l\":ls -l",[210,2981,2982],{"class":683},"'",[210,2984,2985],{"class":225},"             # 设置 CTRL+l 为执行 ls -l 命令\n",[210,2987,2988,2990,2992,2995,2997,2999,3002,3005],{"class":213,"line":814},[210,2989,218],{"class":217},[210,2991,2899],{"class":221},[210,2993,2994],{"class":221}," \u002F",[210,2996,2910],{"class":221},[210,2998,2913],{"class":221},[210,3000,3001],{"class":221}," -size",[210,3003,3004],{"class":221}," +5M",[210,3006,3007],{"class":225},"           # 查找大于 5M 的文件\n",[210,3009,3010,3012,3014,3017,3020,3023],{"class":213,"line":831},[210,3011,218],{"class":217},[210,3013,819],{"class":221},[210,3015,3016],{"class":221}," --reference",[210,3018,3019],{"class":221}," f1",[210,3021,3022],{"class":221}," f2",[210,3024,3025],{"class":225},"            # 将 f2 的权限设置成 f1 一模一样的\n",[210,3027,3028,3030,3032,3035,3038],{"class":213,"line":847},[210,3029,218],{"class":217},[210,3031,2156],{"class":221},[210,3033,3034],{"class":221}," -L",[210,3036,3037],{"class":221}," cheat.sh",[210,3039,3040],{"class":225},"                   # 速查表大全\n",[3042,3043,3044],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}",{"title":205,"searchDepth":229,"depth":229,"links":3046},[3047,3048,3049,3050,3051,3052,3053,3054,3055,3056],{"id":193,"depth":229,"text":193},{"id":339,"depth":229,"text":339},{"id":510,"depth":229,"text":510},{"id":949,"depth":229,"text":949},{"id":1128,"depth":229,"text":1128},{"id":1380,"depth":229,"text":1380},{"id":1879,"depth":229,"text":1879},{"id":2194,"depth":229,"text":2194},{"id":2598,"depth":229,"text":2598},{"id":2668,"depth":229,"text":2668},"md",null,{},{"icon":117},{"title":114,"description":205},"pCfX1y3S2p-gqyQR0dSDEK8rwtLUIdssQmFCyxZK1Eg",[3064,3065],{"title":110,"path":111,"stem":112,"description":205,"icon":104,"children":-1},{"title":119,"path":120,"stem":121,"description":205,"icon":122,"children":-1},1789315516800]