{"pdfData":[[{"bbox":[88,79,117,90],"type":"text","angle":0,"index":0,"text":"Posix ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"7df97618-a100-4cdc-946f-12874a3ecec0","page_size":[595,841],"block_position":"0-0"},{"bbox":[88,95,113,105],"type":"text","angle":0,"index":1,"text":"GNU ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"ca276ca3-cc92-439f-92bf-002b7c76e308","page_size":[595,841],"block_position":"0-1"},{"bbox":[88,111,132,121],"type":"text","angle":0,"index":2,"text":"Makefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"239b04dc-c4bb-4850-9419-dd261c179367","page_size":[595,841],"block_position":"0-2"},{"bbox":[88,126,124,137],"type":"text","angle":0,"index":3,"text":"Cmake ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"ed054735-154f-4f7f-856f-1ad7b44ba04a","page_size":[595,841],"block_position":"0-3"},{"bbox":[88,142,114,153],"type":"text","angle":0,"index":4,"text":"Bash ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"2a772ed7-710b-4de1-98af-44f7e0b18fa2","page_size":[595,841],"block_position":"0-4"},{"bbox":[88,157,114,169],"type":"text","angle":0,"index":5,"text":"Shell ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"5c95511b-49a7-47b7-a631-b7e0f9b26220","page_size":[595,841],"block_position":"0-5"},{"bbox":[88,172,144,184],"type":"text","angle":0,"index":6,"text":"Powershell ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"5fff075f-1923-4e27-a3ff-5901b50c7a5c","page_size":[595,841],"block_position":"0-6"},{"bbox":[88,188,110,199],"type":"text","angle":0,"index":7,"text":"BSD ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"c1c7fcb7-f416-48cb-a277-10c66cb4d686","page_size":[595,841],"block_position":"0-7"},{"bbox":[88,203,265,216],"type":"text","angle":0,"index":8,"text":"Linux包括内核、系统调用、应用程序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"c616a64c-901b-490e-860b-3f3d02dafbdf","page_size":[595,841],"block_position":"0-8"},{"bbox":[88,219,163,231],"type":"text","angle":0,"index":9,"text":"GNU GPL V2V3 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"796c83bc-7bca-496a-8617-457386a111e3","page_size":[595,841],"block_position":"0-9"},{"bbox":[88,235,132,247],"type":"text","angle":0,"index":10,"text":"开源软件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"3503b4a3-20ac-4b98-add8-e72e11360204","page_size":[595,841],"block_position":"0-10"},{"bbox":[88,250,149,264],"type":"text","angle":0,"index":11,"text":"Tty 终端设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"ee45c7da-1c70-4d94-8a0f-abcc5cc904fb","page_size":[595,841],"block_position":"0-11"},{"bbox":[88,266,149,279],"type":"text","angle":0,"index":12,"text":"Pty 虚拟设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"d231c027-7486-4cac-ba69-ab4e04b1b5fa","page_size":[595,841],"block_position":"0-12"},{"bbox":[88,282,128,295],"type":"text","angle":0,"index":13,"text":"Pts ptm ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"f954ce4b-9500-4031-80de-650bab96325f","page_size":[595,841],"block_position":"0-13"},{"bbox":[88,297,139,309],"type":"text","angle":0,"index":14,"text":"Linux 接口 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"cba07671-2105-4fb0-9eb0-04003d43aa06","page_size":[595,841],"block_position":"0-14"},{"bbox":[88,312,190,325],"type":"text","angle":0,"index":15,"text":"终端用户 GUI/TUICLI ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"511d08c8-fec8-4dfb-b354-de1d7769af14","page_size":[595,841],"block_position":"0-15"},{"bbox":[88,327,177,342],"type":"text","angle":0,"index":16,"text":"程序员 system call ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"b5a67e00-3493-4763-a00b-d6d538d9cc21","page_size":[595,841],"block_position":"0-16"},{"bbox":[88,377,262,396],"type":"title","angle":0,"index":17,"text":"# Linux——操作系统介绍","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":0,"id":"2c33f775-3917-4154-aea9-b81ed71093d7","page_size":[595,841],"block_position":"0-17"},{"bbox":[88,431,239,555],"index":18,"angle":0,"type":"image","img_path":"/0a519fcf88d6f52f0584df04cc94bdd1a7e1488dd602bd171a23f240a56d0d59.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.253781512605042,"page_idx":0,"id":"311f4c9b-11dd-459e-86ce-2d827bed888e","page_size":[595,841],"block_position":"0-18"},{"bbox":[87,576,154,595],"type":"title","angle":0,"index":19,"text":"# 历史背景","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":0,"id":"9631e659-3ade-48f9-a8bc-d86e1b77175d","page_size":[595,841],"block_position":"0-19"},{"bbox":[86,632,477,645],"type":"text","angle":0,"index":20,"text":"贝尔实验室开发 Multics （multiplexed information and compuing service）系统，但失败 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"52489a0e-c188-4d93-aedc-472ccbefcc51","page_size":[595,841],"block_position":"0-20"},{"bbox":[86,647,505,676],"type":"text","angle":0,"index":21,"text":"Ken Thompson（C 语言之父）利用汇编语言开发了 File Server System（Unics，即 UNIX 的原 型）； ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"c14165bb-34bc-4a8a-9f7d-afc168c429ef","page_size":[595,841],"block_position":"0-21"},{"bbox":[87,678,268,691],"type":"text","angle":0,"index":22,"text":"发明了 C 语言，而后写出了 UNIX 的内核； ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"dd551193-65e5-454d-a8a1-3e7a8655a136","page_size":[595,841],"block_position":"0-22"},{"bbox":[86,704,499,731],"type":"text","angle":0,"index":23,"text":"Dennis Rirchie和Ken Thompson发明了C语言，而后贝尔实验室开发了他们自己的一个操作系统 UNIX 。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"c6b21a29-6c72-4ffa-858a-78ceb2c2e663","page_size":[595,841],"block_position":"0-23"},{"bbox":[87,745,245,757],"type":"text","angle":0,"index":24,"text":"Bill Joy 修改了 UNIX 源码称为，BSD ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":0,"id":"8d448487-55c8-4c6e-9cdf-f4c126f69438","page_size":[595,841],"block_position":"0-24"}],[{"bbox":[86,79,437,91],"type":"text","angle":0,"index":0,"text":"UNIX 最初免费发布并因此在大学里受到欢迎。后来，UNIX 实现了 TCP/IP 协议栈。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"8e2e25d3-7d84-4e7b-8667-8f29a23b6da9","page_size":[595,841],"block_position":"1-0"},{"bbox":[86,104,496,131],"type":"text","angle":0,"index":1,"text":"UNIX 开始变得商业化，它的价格也变得非常昂贵。而唯一低廉的选择就是 MINIX，这是一个功能 有限的类似 UNIX 的操作系统。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"09143161-0a85-4cc4-b8cc-683cbe30425a","page_size":[595,841],"block_position":"1-1"},{"bbox":[86,145,412,157],"type":"text","angle":0,"index":2,"text":"计划开发一个比 MINIX 性能更好的操作系统，即LInux。于是开发出了Linux。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"0b5d4e02-fcd4-4fb2-a355-02d5fae93a79","page_size":[595,841],"block_position":"1-2"},{"bbox":[86,170,218,181],"type":"text","angle":0,"index":3,"text":"Linux 是类 Unix 系统（POSIX） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"01c02e49-c15b-4a74-8fbf-7987e237a091","page_size":[595,841],"block_position":"1-3"},{"bbox":[87,195,114,206],"type":"text","angle":0,"index":4,"text":"包含： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"4c13782f-8e5c-41b0-ad2b-441e944ad9e7","page_size":[595,841],"block_position":"1-4"},{"bbox":[87,221,188,232],"type":"text","angle":0,"index":5,"text":"用户级接口 各种管理器 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"68f3120e-998a-4f52-aa0e-afa48f6ede8d","page_size":[595,841],"block_position":"1-5"},{"bbox":[87,246,188,257],"type":"text","angle":0,"index":6,"text":"程序员级接口 系统调用 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"a8cf27e2-7816-4356-9baa-631b2b4f9289","page_size":[595,841],"block_position":"1-6"},{"bbox":[86,271,318,282],"type":"text","angle":0,"index":7,"text":"适用于多种硬件平台、分布式系统和嵌入式系统的应用 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"c93af129-667c-47e1-b5f2-9f10f8388b38","page_size":[595,841],"block_position":"1-7"},{"bbox":[86,296,352,307],"type":"text","angle":0,"index":8,"text":"Linux的内核结构是模块结构，可以动态加载，适于嵌入式系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"0cdd23cf-d1a7-48f7-9b97-8a1b6e12a1b7","page_size":[595,841],"block_position":"1-8"},{"bbox":[87,322,135,333],"type":"text","angle":0,"index":9,"text":"Kernel.org ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"54da0c2b-7c99-4c38-a4b5-2bfe89bfa58f","page_size":[595,841],"block_position":"1-9"},{"bbox":[87,347,247,358],"type":"text","angle":0,"index":10,"text":"内核版本 双树系统（稳定树、开发树） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"afbd611f-9879-4a25-a4a0-4b3fcc05c365","page_size":[595,841],"block_position":"1-10"},{"bbox":[86,372,232,384],"type":"text","angle":0,"index":11,"text":"x.y.z y-偶数-稳定树 y-奇数-开发树 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"f2fae745-4e96-475a-89d7-3cfeeba39702","page_size":[595,841],"block_position":"1-11"},{"bbox":[87,397,220,408],"type":"text","angle":0,"index":12,"text":"Linux不是一个完整的操作系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"3a2df526-e0a4-40b3-b49d-d958b571222e","page_size":[595,841],"block_position":"1-12"},{"bbox":[87,423,270,433],"type":"text","angle":0,"index":13,"text":"负责控制硬件设备、文件系统、进程调度等 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"cb55f4de-1636-4d93-a9c8-c5427071993e","page_size":[595,841],"block_position":"1-13"},{"bbox":[87,448,247,459],"type":"text","angle":0,"index":14,"text":"不包括应用程序如编辑器/多媒体/网络 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"79033232-b472-4fa8-9d8e-456f2ff9f27d","page_size":[595,841],"block_position":"1-14"},{"bbox":[87,473,229,484],"type":"text","angle":0,"index":15,"text":"Linux的发行版是完整的操作系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"f42540c4-4492-4c89-9a19-7a01c7216cb8","page_size":[595,841],"block_position":"1-15"},{"bbox":[86,498,375,509],"type":"text","angle":0,"index":16,"text":"DistroWatch.com: Put the fun back into computing. Use Linux, BSD. ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"0d252646-1799-4fb3-ad3e-10e4af4ab93a","page_size":[595,841],"block_position":"1-16"},{"bbox":[87,524,132,534],"type":"text","angle":0,"index":17,"text":"如 Ubuntu ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"60e45d0c-1114-4f03-9fe0-7bbed23ad5c5","page_size":[595,841],"block_position":"1-17"},{"bbox":[86,599,230,610],"type":"text","angle":0,"index":18,"text":"GNU（GNU’S NOT UNIX）项目： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"617916e5-1f3f-4b60-98eb-3d50bd9db0f9","page_size":[595,841],"block_position":"1-18"},{"bbox":[86,624,275,634],"type":"text","angle":0,"index":19,"text":"产品：GCC、Emacs、Bash Shell、GLIBC； ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"82afb644-0cc1-4e62-b367-fd6c27074734","page_size":[595,841],"block_position":"1-19"},{"bbox":[86,648,418,660],"type":"text","angle":0,"index":20,"text":"倡导 自由软件 ；“ ” GNU 的软件缺乏一个开放的平台运行，只能在 UNIX 上运行； ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"07039573-8697-445a-ae3d-d0fa0b05a7dc","page_size":[595,841],"block_position":"1-20"},{"bbox":[86,673,494,685],"type":"text","angle":0,"index":21,"text":"自由软件指用户可以对软件做任何修改，甚至再发行，但是始终要挂着 GPL (GENERAL PUBLIC ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"e33956fd-cffb-4dc2-af36-ffc5b99cc37f","page_size":[595,841],"block_position":"1-21"},{"bbox":[86,689,449,701],"type":"text","angle":0,"index":22,"text":"LINCENSE)的版权；自由软件是可以卖的，但是不能只卖软件，而是卖服务、手册等； ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"45b87458-e096-44d7-a58d-f1fa783c4ce2","page_size":[595,841],"block_position":"1-22"},{"bbox":[86,715,249,726],"type":"text","angle":0,"index":23,"text":"GNU开发一个完全的类Unix操作系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"0c834502-8fda-4990-8a3a-182f77ab59be","page_size":[595,841],"block_position":"1-23"},{"bbox":[87,740,232,751],"type":"text","angle":0,"index":24,"text":"GNU 的内核是 Linux，GNU/Linux ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":1,"id":"a18724c8-b7dd-4c47-9c05-e0d0a611e144","page_size":[595,841],"block_position":"1-24"}],[{"bbox":[88,79,190,90],"type":"text","angle":0,"index":0,"text":"自由软件 Free Sofrware ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"669efdfa-7251-4378-ba9f-3d58e4fecb9d","page_size":[595,841],"block_position":"2-0"},{"bbox":[88,105,139,116],"type":"text","angle":0,"index":1,"text":"基金会FSF ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"f07a879b-d2ab-4457-8058-87a3ef6717cd","page_size":[595,841],"block_position":"2-1"},{"bbox":[88,130,137,141],"type":"text","angle":0,"index":2,"text":"自由和免费 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"7e789baf-01d8-4692-ac00-8ae57fdccb79","page_size":[595,841],"block_position":"2-2"},{"bbox":[88,155,223,166],"type":"text","angle":0,"index":3,"text":"自由软件关乎权利，≠免费软件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"e685ac89-100b-448d-87e4-02e26d09d5e9","page_size":[595,841],"block_position":"2-3"},{"bbox":[88,180,204,191],"type":"text","angle":0,"index":4,"text":"自由软件可以是商业化软件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"f5cb3227-8233-458d-9d53-bdb64b7037d1","page_size":[595,841],"block_position":"2-4"},{"bbox":[87,205,492,232],"type":"text","angle":0,"index":5,"text":"为了避免 GNU 开发的自由软件被其它人用作专利软件，因此创建 GPL（general public lincense） 版权声明 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"58548054-4670-4249-9207-6158a4c1d39b","page_size":[595,841],"block_position":"2-5"},{"bbox":[88,246,226,257],"type":"text","angle":0,"index":6,"text":"开源软件 Open Source Software ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"ab2f0465-88fd-4211-8fe5-194e38c683ed","page_size":[595,841],"block_position":"2-6"},{"bbox":[88,271,176,282],"type":"text","angle":0,"index":7,"text":"是一种软件开发方法 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"f4e6af73-8a14-4db0-92ff-ce21a1e155c0","page_size":[595,841],"block_position":"2-7"},{"bbox":[88,296,223,307],"type":"text","angle":0,"index":8,"text":"完全开放源代码、接受各种测试 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"9108818a-1ed7-4b94-8424-96eafc48453f","page_size":[595,841],"block_position":"2-8"},{"bbox":[88,322,171,333],"type":"text","angle":0,"index":9,"text":"Linux也是开源软件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"77d9d969-1af1-4a0f-9d71-e310ed59cace","page_size":[595,841],"block_position":"2-9"},{"bbox":[88,347,242,358],"type":"text","angle":0,"index":10,"text":"MIT 开发了 GUI,成立了研发 Xfree86 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"865f34b2-601c-4d6a-810c-19eb48278388","page_size":[595,841],"block_position":"2-10"},{"bbox":[87,371,498,398],"type":"text","angle":0,"index":11,"text":"Linux 本身只是操作系统的内核。内核是使其它程序能够运行的基础。它实现了多任务和硬件管理， 用户或者系统管理员交互运行的所有程序实际上都运行在内核之上。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"685ebd7f-fa27-4e1f-95e9-61ab78ca7224","page_size":[595,841],"block_position":"2-11"},{"bbox":[87,434,227,653],"index":12,"angle":0,"type":"image","img_path":"/4ba8e4415c6e24e415d18508714a7954f70ddb5016e33c13e4acc25ace803787.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.23529411764705882,"page_idx":2,"id":"55c4aced-15ce-4bec-8eeb-172f7a774391","page_size":[595,841],"block_position":"2-12"},{"bbox":[88,671,490,718],"type":"text","angle":0,"index":13,"text":"Unix 哲学强调构建简单、紧凑、清晰、模块化且可扩展的代码，便于开发者 （非原始创建者）维护和复用。该哲学推崇可组合性，而非整体式设计。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":2,"id":"258be62a-0233-4bc4-b7b2-8157e92da19c","page_size":[595,841],"block_position":"2-13"}],[{"bbox":[88,84,170,103],"type":"title","angle":0,"index":0,"text":"# 虚拟机软件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":3,"id":"98acf48e-125b-4aff-a899-de69e04c76a0","page_size":[595,841],"block_position":"3-0"},{"bbox":[87,140,143,153],"type":"text","angle":0,"index":1,"text":"虚拟机软件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"c44e33c7-8496-4165-be8a-310427054efa","page_size":[595,841],"block_position":"3-1"},{"bbox":[86,155,168,167],"type":"text","angle":0,"index":2,"text":"Virtual Machine ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"0cf15447-c8d6-4f28-a14f-8250c39b0125","page_size":[595,841],"block_position":"3-2"},{"bbox":[86,170,504,230],"type":"text","angle":0,"index":3,"text":"通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 virtual box：是开源的轻量级虚拟机平台。完整安装包很小，功能相对也很精简。不能通 过文件拖拽的方式文件共享，而是通过“映射网络驱动器”的方式与主机通过共享文件夹 共享文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"196f7d89-274c-4e2b-95ea-fb4b0fdb86c2","page_size":[595,841],"block_position":"3-3"},{"bbox":[86,233,504,278],"type":"text","angle":0,"index":4,"text":"virtual PC适合做Windows虚拟机。作为微软自已的产品，在Windows平台下使用非常 方便，占用内存小，启动快，联网方面。无需桥接、NAT等，直接作为同一子网的一台普 通计算机使用，无需任何网络设置即可上网。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"a320f647-41c4-4009-9c34-0a7686b032c2","page_size":[595,841],"block_position":"3-4"},{"bbox":[86,280,504,309],"type":"text","angle":0,"index":5,"text":"VMWare软件兼容性好，快照功能很快捷方便，适合调试极易产生蓝屏的软件和工具。可 以 虚 拟 两 块 甚 至 更 多 网 卡 ， 使 用 桥 接 Bridge 或 者 NAT 方 式 访 问 网 络 。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":3,"id":"644f51aa-bd83-4632-83e7-49bafef1f0bc","page_size":[595,841],"block_position":"3-5"},{"bbox":[88,311,492,551],"index":6,"angle":0,"type":"image","img_path":"/f73e58b67db2b3b16663459f8f1330b3de9638cd30fe88f57765ea265078db41.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6789915966386555,"page_idx":3,"id":"1c615da6-6204-49e0-89b2-8abc25e422ad","page_size":[595,841],"block_position":"3-6"}],[{"bbox":[88,75,271,253],"index":0,"angle":0,"type":"image","img_path":"/c4cc693edd1733f45c9c7957013d135b333ada1b5e084a985479b579076f4ff2.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.30756302521008405,"page_idx":4,"id":"ee353452-f2cc-478f-acb9-26e044a336a6","page_size":[595,841],"block_position":"4-0"},{"bbox":[278,91,463,253],"index":1,"angle":0,"type":"image","img_path":"/ea4990f4ce5ddbc5bcc3e3f8b30815683e141672e48a936e6cf71d0e078cd762.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.31092436974789917,"page_idx":4,"id":"014d3baa-9296-4232-adbb-58f5f511cac1","page_size":[595,841],"block_position":"4-1"},{"bbox":[89,258,167,268],"type":"text","angle":0,"index":2,"text":"·虚拟机名称自己输入。 ","id":"4e19df78-9875-4a2d-af9e-a6e41f61a60d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"page_size":[595,841],"block_position":"4-2"},{"bbox":[89,270,261,290],"type":"text","angle":0,"index":3,"text":"·虚拟机位置一般选择在空间比较大的数据磁盘分区 中，如D盘、E盘。 ","id":"0dc1bf06-9d87-4bb4-82eb-2cd3a3d95f1f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"page_size":[595,841],"block_position":"4-3"},{"bbox":[279,258,452,296],"type":"text","angle":0,"index":5,"text":"·安装Cent0S7的磁盘建议不小于10GB，用于学习 RAID的数据盘可以设置为5GB。 ·虚拟磁盘拆分成多个文件适合在不支持单个文件大 于4GB的文件系统中需要使用。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"3594781a-01ee-4cac-8c63-8f6b86fb8c99","page_size":[595,841],"block_position":"4-4"},{"bbox":[112,317,329,345],"type":"title","angle":0,"index":6,"text":"# 创建一台新虚拟机","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":4,"id":"3431eb1b-e3d3-4578-b3a9-c7ad391fb5da","page_size":[595,841],"block_position":"4-5"},{"bbox":[101,365,142,375],"type":"text","angle":0,"index":7,"text":"新建虚拟机向导 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"6b5c995c-a287-47cb-b031-1c8a15c7a4e7","page_size":[595,841],"block_position":"4-6"},{"bbox":[112,380,164,388],"type":"text","angle":0,"index":8,"text":"已准备好创建虚拟机 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"9c182266-72ed-4843-8ea6-b5309700ea65","page_size":[595,841],"block_position":"4-7"},{"bbox":[124,389,255,396],"type":"text","angle":0,"index":9,"text":"单击完成创建虚拟机，然后开始安装CentOS764位。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"eecb2208-e81c-4568-b760-7989995df56a","page_size":[595,841],"block_position":"4-8"},{"bbox":[109,406,174,414],"type":"text","angle":0,"index":10,"text":"将使用下列设置创建虚拟机： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"65daf506-a630-44a9-aca8-c3472249c689","page_size":[595,841],"block_position":"4-9"},{"bbox":[112,419,201,426],"type":"text","angle":0,"index":11,"text":"名称： CentOs764bit ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"681815f7-e7b3-4779-9d19-2865210a9170","page_size":[595,841],"block_position":"4-10"},{"bbox":[112,427,204,433],"type":"text","angle":0,"index":12,"text":"位置： C:\\VM\\CentOS71 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"3ab49c18-bd1a-42e2-b2c2-bb574cd70aef","page_size":[595,841],"block_position":"4-11"},{"bbox":[112,434,205,442],"type":"text","angle":0,"index":13,"text":"版本 Workstation14.x ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"e0e5be43-b749-46db-ba79-1f99bf345d2f","page_size":[595,841],"block_position":"4-12"},{"bbox":[112,443,202,450],"type":"text","angle":0,"index":14,"text":"操作系统： CentOS764位 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"2cb42311-4a98-4e55-9782-84bd01cba0ee","page_size":[595,841],"block_position":"4-13"},{"bbox":[112,459,191,465],"type":"text","angle":0,"index":15,"text":"硬盘： 20GB，拆分 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"5f49fcfb-60d6-4ae2-a750-a6793b9cdc40","page_size":[595,841],"block_position":"4-14"},{"bbox":[112,466,184,473],"type":"text","angle":0,"index":16,"text":"内存： 1024MB ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"df733eda-6f50-4b66-a70d-da4dfd07ccc4","page_size":[595,841],"block_position":"4-15"},{"bbox":[112,474,174,481],"type":"text","angle":0,"index":17,"text":"网络适配器： NAT ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"29a677b8-a325-4e18-9e71-eb6d7ba286ba","page_size":[595,841],"block_position":"4-16"},{"bbox":[112,482,245,490],"type":"text","angle":0,"index":18,"text":"其他设备： CD/DVD，USB控制器，打印机，声卡 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"089ed18c-7ae3-40aa-b093-996b9427bb7f","page_size":[595,841],"block_position":"4-17"},{"bbox":[125,498,166,507],"type":"text","angle":0,"index":19,"text":"自定义硬件（C）.. ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"73fb999c-0d5d-45b5-93e0-cadac279bc3c","page_size":[595,841],"block_position":"4-18"},{"bbox":[109,513,171,522],"type":"text","angle":0,"index":20,"text":"创建后开启此虚拟机（P） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"193e42f5-111a-4200-8524-7aefa5f1f5c8","page_size":[595,841],"block_position":"4-19"},{"bbox":[246,540,258,547],"type":"text","angle":0,"index":22,"text":"完成 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"210d09cc-2581-49dc-814b-c8d5ebe4bc3a","page_size":[595,841],"block_position":"4-20"},{"bbox":[287,540,299,547],"type":"text","angle":0,"index":23,"text":"取消 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"id":"78adf9aa-9c03-43ba-975c-c9336115b169","page_size":[595,841],"block_position":"4-21"},{"bbox":[331,372,415,384],"type":"text","angle":0,"index":24,"text":"·虚拟机的主要配置 ","id":"400967e1-0828-40ab-96da-cc4202bed6e5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"page_size":[595,841],"block_position":"4-22"},{"bbox":[332,398,445,411],"type":"text","angle":0,"index":25,"text":"·通过自定义硬件修改配置 ","id":"13d6d37a-11f6-4a9d-9275-8d2641f3feab","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"page_size":[595,841],"block_position":"4-23"},{"bbox":[352,421,427,434],"type":"text","angle":0,"index":27,"text":"·内存：调整大小 ","id":"94809ee1-c1ea-4ca6-b290-134bab8df00f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"page_size":[595,841],"block_position":"4-24"},{"bbox":[352,441,437,453],"type":"text","angle":0,"index":28,"text":"·处理器：调整数量 ","id":"9e43c28d-22c7-4f76-a09b-b50411c9f6fb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"page_size":[595,841],"block_position":"4-25"},{"bbox":[352,460,448,472],"type":"text","angle":0,"index":29,"text":"·网络：调整连接模式 ","id":"810fae33-2273-42e6-84e8-bc91d1a969ec","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"page_size":[595,841],"block_position":"4-26"},{"bbox":[352,479,467,491],"type":"text","angle":0,"index":30,"text":"·其他：不需要的可以移除 ","id":"7aa34119-b3c1-40c3-9cff-8a010cad96f7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":4,"page_size":[595,841],"block_position":"4-27"}],[{"bbox":[108,83,287,105],"type":"title","angle":0,"index":0,"text":"# 自定义硬件—－内存","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":5,"id":"40ffde61-0e11-4b33-b833-935d47aa05d9","page_size":[595,841],"block_position":"5-0"},{"bbox":[94,119,276,270],"index":1,"angle":0,"type":"image","img_path":"/8069ea3ae0b512643d7f2276a2f0d0f8ceca2e70f4006177ae96ecc8742a1945.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3058823529411765,"page_idx":5,"id":"f7c3f371-9479-466b-8925-60cc0daa0eb4","page_size":[595,841],"block_position":"5-1"},{"bbox":[289,140,387,158],"type":"text","angle":0,"index":2,"text":"·虚拟机配置的内存就是实际 用的内存容量 ","id":"824e77bf-13ec-4f42-bb75-a7c96332c4d9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":5,"page_size":[595,841],"block_position":"5-2"},{"bbox":[289,169,383,179],"type":"text","angle":0,"index":3,"text":"·根据原始硬件系统配置调整 ","id":"38edebb5-71cf-48b9-bfdc-778c8f3b6cf3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":5,"page_size":[595,841],"block_position":"5-3"},{"bbox":[289,189,376,198],"type":"text","angle":0,"index":4,"text":"·建议不少于2GB，1GB也可 ","id":"c542efe7-40d6-499c-b880-e35db3398df3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":5,"page_size":[595,841],"block_position":"5-4"},{"bbox":[102,293,324,315],"type":"title","angle":0,"index":6,"text":"# 自定义硬件一一处理器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":5,"id":"2bc4ea41-9907-4842-a071-876eb0da5fdc","page_size":[595,841],"block_position":"5-5"},{"bbox":[89,331,286,495],"index":7,"angle":0,"type":"image","img_path":"/2b779ef161074c865f8e2ed7398957de48ce9094eaf3f719362bbf9656dac5c8.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3310924369747899,"page_idx":5,"id":"e31c94a5-754b-4b1f-b66e-afbc481636cb","page_size":[595,841],"block_position":"5-6"},{"bbox":[304,353,376,364],"type":"text","angle":0,"index":8,"text":"·根据硬件配置设置 ","id":"49082a21-a7e8-4532-b11b-127b61dde112","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":5,"page_size":[595,841],"block_position":"5-7"},{"bbox":[304,375,352,386],"type":"text","angle":0,"index":9,"text":"·1CPU/2内核 ","id":"6a35e104-7b6a-4e9d-bcfd-893f4ddc0064","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":5,"page_size":[595,841],"block_position":"5-8"},{"bbox":[127,502,368,524],"type":"title","angle":0,"index":11,"text":"# 自定义硬件--网络适配器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":5,"id":"c8ec5272-a292-4ded-b5c0-15a2d0294e16","page_size":[595,841],"block_position":"5-9"},{"bbox":[115,539,294,690],"index":12,"angle":0,"type":"image","img_path":"/11d7bede9b31bc91bcc38142f288822937f97c645c7420d08968c4674ca9235c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.30084033613445377,"page_idx":5,"id":"01742917-a9ef-4926-b66d-bec465766c7e","page_size":[595,841],"block_position":"5-10"},{"bbox":[305,559,361,568],"type":"text","angle":0,"index":13,"text":"·勾选启动时连接 ","id":"d5bb3892-5e8b-4410-8258-a44c04363907","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":5,"page_size":[595,841],"block_position":"5-11"},{"bbox":[305,578,425,588],"type":"text","angle":0,"index":14,"text":"·网络连接选择桥接模式或者NAT模式 ","id":"c386385e-b902-4b85-a0d3-1099743b2d23","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":5,"page_size":[595,841],"block_position":"5-12"}],[{"bbox":[120,89,354,117],"type":"title","angle":0,"index":0,"text":"# 安装目标和分区设置","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":6,"id":"3912825c-b47b-4241-a35e-2ee29f57554c","page_size":[595,841],"block_position":"6-0"},{"bbox":[101,125,294,306],"index":1,"angle":0,"type":"image","img_path":"/7f9b484fb10b23e2e20dad376e7d31bdad2f2073307c4b0f1575b8d731bd9739.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3243697478991597,"page_idx":6,"id":"71581d09-c0c6-4e42-a5df-2ba6d3c32ec7","page_size":[595,841],"block_position":"6-1"},{"bbox":[105,310,280,323],"type":"text","angle":0,"index":2,"text":"·有黄色和红色提示的是需要进一步设置的 ","id":"0c7bf3c4-ab14-43cb-ae08-6dd36bc9f400","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"page_size":[595,841],"block_position":"6-2"},{"bbox":[105,326,252,338],"type":"text","angle":0,"index":3,"text":"·图中所示是安装目标和分区的设置 ","id":"b7d063c0-6f4d-42bb-a1e4-d5eb60e8e2c0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"page_size":[595,841],"block_position":"6-3"},{"bbox":[305,125,499,306],"index":5,"angle":0,"type":"image","img_path":"/5785f2c2b607682942e966e6aca69c2db4ce66d157148815f7a5f102b704472c.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.32605042016806723,"page_idx":6,"id":"38f9a309-35f0-4574-9ad6-78e9e2281e3c","page_size":[595,841],"block_position":"6-4"},{"bbox":[309,310,457,323],"type":"text","angle":0,"index":6,"text":"·有自动分区和用户自定义分区两种 ","id":"dc6951b4-6025-4c26-b5ab-681653e1c61d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"page_size":[595,841],"block_position":"6-5"},{"bbox":[310,326,471,338],"type":"text","angle":0,"index":7,"text":"·选择lwillconfigurepartitioning ","id":"d52210c8-0383-4651-a662-c3292afcd0a9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"page_size":[595,841],"block_position":"6-6"},{"bbox":[113,364,274,383],"type":"title","angle":0,"index":9,"text":"# 设置分区模式和挂载点","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":6,"id":"33952a2b-cedf-4245-8be7-326fff262912","page_size":[595,841],"block_position":"6-7"},{"bbox":[96,392,261,546],"index":10,"angle":0,"type":"image","img_path":"/3b717c769939e6009352a104a9d7bf7867b6e1d7dda5f54a1b99df9a7a1398d2.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2773109243697479,"page_idx":6,"id":"1d7f9076-ca08-4e0f-bf7a-83809360639e","page_size":[595,841],"block_position":"6-8"},{"bbox":[100,550,182,560],"type":"text","angle":0,"index":11,"text":"·默认选择LVM分区模式 ","id":"7a2e202d-14fb-4264-823b-3c0a675bd99b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"page_size":[595,841],"block_position":"6-9"},{"bbox":[100,562,254,573],"type":"text","angle":0,"index":12,"text":"·我们先选择使用标准分区模式（standard） ","id":"1c1f87e9-052b-4a67-b634-ca5abff0920a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"page_size":[595,841],"block_position":"6-10"},{"bbox":[271,392,436,546],"index":14,"angle":0,"type":"image","img_path":"/f4bd8a76f3cfd2f92e8effc08d10f06220963094dd3727d0c4981cd127436091.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2773109243697479,"page_idx":6,"id":"c774d2fd-8d30-4243-85b1-b1d1bace8bdf","page_size":[595,841],"block_position":"6-11"},{"bbox":[274,550,428,560],"type":"text","angle":0,"index":15,"text":"·点击“+”按钮新建挂载点（mountpoint） ","id":"9c8769a1-ddfe-4bac-9493-999e87bd565b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"page_size":[595,841],"block_position":"6-12"},{"bbox":[274,562,367,573],"type":"text","angle":0,"index":16,"text":"·这就是在进行分区设置了 ","id":"f321b593-30f7-4e2b-9212-8a8d92b2d2f4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":6,"page_size":[595,841],"block_position":"6-13"}],[{"bbox":[117,84,268,104],"type":"title","angle":0,"index":0,"text":"# 设置分区和文件系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":7,"id":"fa113044-f212-45e7-b191-490effb9ddc7","page_size":[595,841],"block_position":"7-0"},{"bbox":[100,114,270,274],"index":1,"angle":0,"type":"image","img_path":"/8f3893e7a5be3ef3617b0bec0b424b7e6ac96d616fa2ed03a555a35ff968e38a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2857142857142857,"page_idx":7,"id":"aad7b923-f7f7-4917-aff8-ad32b9817693","page_size":[595,841],"block_position":"7-1"},{"bbox":[103,279,196,289],"type":"text","angle":0,"index":2,"text":"·设置挂载点mountpoint ","id":"2e24bbd1-45a8-485c-b55e-e8125dd07d8f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-2"},{"bbox":[103,292,192,302],"type":"text","angle":0,"index":3,"text":"·设置分区大小capacity ","id":"7fbccc72-8175-402b-8eda-b98e2e6c9e5e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-3"},{"bbox":[103,305,250,315],"type":"text","angle":0,"index":4,"text":"·容量空着不填写就是分配剩余所有容量 ","id":"02a2197b-b5aa-4a55-afe6-08926eb6200f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-4"},{"bbox":[281,114,452,274],"index":6,"angle":0,"type":"image","img_path":"/236e87da7b7e73df5e7a6020b65b66f74f3b4c19f911ab59296cf457b1031d13.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.28739495798319326,"page_idx":7,"id":"66d75515-9c63-4182-9fb7-4621154217a2","page_size":[595,841],"block_position":"7-5"},{"bbox":[283,279,434,290],"type":"text","angle":0,"index":7,"text":"·至少设置两个分区：swap（交换）和/（根） ","id":"e6ccfaf3-9302-4b2d-87d4-282f14f0c357","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-6"},{"bbox":[284,292,380,302],"type":"text","angle":0,"index":8,"text":"·Swap大小与内存容量相近 ","id":"0d6ce455-c040-4d69-a593-42af581f1b06","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-7"},{"bbox":[284,305,380,315],"type":"text","angle":0,"index":9,"text":"·根分区选择ext4文件系统 ","id":"a60e1b2d-5ca5-408e-a22e-c05230919ebe","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-8"},{"bbox":[110,334,268,355],"type":"title","angle":0,"index":12,"text":"# 分区设置方案确认","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":7,"id":"17c231ac-8dba-4053-9a97-bed5a04b6752","page_size":[595,841],"block_position":"7-9"},{"bbox":[105,368,264,512],"index":13,"angle":0,"type":"image","img_path":"/df6ee3b9d3442f4acc21317bbaa6053dfc77f16e34d74a23afd258d948c91905.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2672268907563025,"page_idx":7,"id":"db45790f-56dc-442d-8822-6df49e027135","page_size":[595,841],"block_position":"7-10"},{"bbox":[278,372,391,391],"type":"text","angle":0,"index":14,"text":"·如果有多块磁盘，可以考虑把用户 /home挂载点划分到单独磁盘上 ","id":"c06798bb-57c5-4180-93b3-4e1793e7f4fb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-11"},{"bbox":[279,401,387,410],"type":"text","angle":0,"index":15,"text":"·还可以把启动/boot单独划分分区 ","id":"40adf9e5-906b-4755-abef-d8e9a71ba3b0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-12"},{"bbox":[279,420,377,429],"type":"text","angle":0,"index":16,"text":"·左图所示是两个分区：/和swap ","id":"1c587e79-f6d7-4d98-8c43-1b4906432b14","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":7,"page_size":[595,841],"block_position":"7-13"}],[{"bbox":[99,83,263,104],"type":"title","angle":0,"index":0,"text":"# 选择服务器软件包","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":8,"id":"084a6652-21d7-477f-b0c8-2f5b689d07af","page_size":[595,841],"block_position":"8-0"},{"bbox":[88,110,238,255],"index":1,"angle":0,"type":"image","img_path":"/67d9e31c0e75f77def79da7570d39c90036ed63b441c8d303ddfa3d771d66aed.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.25210084033613445,"page_idx":8,"id":"560d6c6a-bf40-4977-8ed9-b8f97401592b","page_size":[595,841],"block_position":"8-1"},{"bbox":[88,257,223,266],"type":"text","angle":0,"index":2,"text":"·生产用服务器可以考虑Minimal Install ","id":"2f873007-cefa-488f-bcb5-39036829c1ac","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-2"},{"bbox":[88,269,213,278],"type":"text","angle":0,"index":3,"text":"·学习建议选用带有桌面管理器的环境 ","id":"70a040fa-cf53-4622-af77-cfa478ceb6be","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-3"},{"bbox":[88,281,220,290],"type":"text","angle":0,"index":4,"text":"·ServerwithGUI或者GNOMEDesktop ","id":"77d89fc1-8e87-4d98-a338-9bf57b57d136","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-4"},{"bbox":[247,110,399,253],"index":6,"angle":0,"type":"image","img_path":"/a3ee5eed4e61893192dfa00f0e8723cb49591a62d6147d5298c530788d80d12d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.25546218487394956,"page_idx":8,"id":"b3c37800-dc23-48f8-beb5-2eb7d41fb27b","page_size":[595,841],"block_position":"8-5"},{"bbox":[249,257,321,267],"type":"text","angle":0,"index":7,"text":"·进行软件包依赖检查 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"917778ee-5536-4de7-808a-bf90c8d67229","page_size":[595,841],"block_position":"8-6"},{"bbox":[265,269,365,278],"type":"text","angle":0,"index":8,"text":"checking software dependencies ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"ea7bada7-42e8-4233-8cb6-d3d2834490ab","page_size":[595,841],"block_position":"8-7"},{"bbox":[375,293,383,300],"type":"text","angle":0,"index":9,"text":"29 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"id":"d2d298d5-21e8-498a-b3ac-208aa821fa72","page_size":[595,841],"block_position":"8-8"},{"bbox":[95,310,246,330],"type":"title","angle":0,"index":10,"text":"# 配置网络和主机名","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":8,"id":"55d8f7a8-e281-427e-9abe-d9e88cd1698d","page_size":[595,841],"block_position":"8-9"},{"bbox":[88,336,370,495],"index":11,"angle":0,"type":"image","img_path":"/101094ec5cc8493113345e2da45eddba4ee1ace1d7f2ffa4a1a0a599661b56a1.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.47394957983193275,"page_idx":8,"id":"d9b2fb54-dc09-45e0-af91-d133f5c3483c","page_size":[595,841],"block_position":"8-10"},{"bbox":[88,500,154,512],"type":"title","angle":0,"index":12,"text":"# 三种网络模式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":8,"id":"4585fc38-e3b1-499e-96ff-b048f35674e7","page_size":[595,841],"block_position":"8-11"},{"bbox":[94,524,211,538],"type":"title","angle":0,"index":13,"text":"# ·桥接模式（Bridged）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":8,"id":"f64faa17-efaf-495a-9e56-d478c5c4c33b","page_size":[595,841],"block_position":"8-12"},{"bbox":[110,539,363,597],"type":"text","angle":0,"index":14,"text":"桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚 拟网桥进行通信。在桥接的作用下，类似于把物理主 机虚拟为一个交换机，所有桥接设置的虚拟机连接到 这个交换机的一个接口上，物理主机也同样插在这个 交换机当中。 ","id":"a349a269-7561-49ec-a82e-751cca591e71","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-13"},{"bbox":[110,598,363,657],"type":"text","angle":0,"index":15,"text":"桥接模式使用vMneto。虚拟机和主机就如同插在同 一台交换机上的两台主机。如果路由器开启了DHCP 服务，主机和虚拟机能够自动获得IP地址。否则，需 要仿照主机网卡手动配置，设置一个同网段的不同的 IP地址即可。 ","id":"a3569145-a4cf-4fef-a4a4-e4ef5f0fb8dc","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":8,"page_size":[595,841],"block_position":"8-14"}],[{"bbox":[94,81,358,100],"type":"text","angle":0,"index":0,"text":"在桥接模式，虚拟机ip地址需要与主机在同一个网段，如果需要联网，则 网关与DNS需要与主机网卡一致。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":9,"id":"ebdf8f4d-6f31-4dfb-88f9-2e04ff2944c7","page_size":[595,841],"block_position":"9-0"},{"bbox":[117,106,366,269],"index":1,"angle":0,"type":"image","img_path":"/de9ec9cd1e50b12c0a553fa434bf4e1ee55c7bee6c31e88e4b3abc1c9ba8a3ea.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4184873949579832,"page_idx":9,"id":"fc5ed18d-8c9d-4b58-a8b6-f19592426f8a","page_size":[595,841],"block_position":"9-1"},{"bbox":[88,285,398,417],"index":2,"angle":0,"type":"image","img_path":"/1f2c577c5aa91380b64876a271b2c053b5ea35ae85b1c2c3e90beb8c06b21a76.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5210084033613446,"page_idx":9,"id":"3644066e-d1ec-4f70-ad7e-a7a35ef7577b","page_size":[595,841],"block_position":"9-2"},{"bbox":[88,423,415,731],"index":3,"angle":0,"type":"image","img_path":"/e337bbb71dfd19e3dc71aa3e7d76e8f6b5c2806922c8b6df2a4fde7c058bc53a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5495798319327732,"page_idx":9,"id":"db21eb31-d65f-4dd9-83c5-62de81f81548","page_size":[595,841],"block_position":"9-3"}],[{"bbox":[88,74,287,286],"index":0,"angle":0,"type":"image","img_path":"/55ec8f2eca97a65c1771438437ed4fc3361d14f90f6db50c383a95ca1fee9be6.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.334453781512605,"page_idx":10,"id":"1c502792-3528-41ff-957c-b1ce570e24a0","page_size":[595,841],"block_position":"10-0"},{"bbox":[87,296,208,310],"type":"text","angle":0,"index":1,"text":"网络地址转换模式（NAT） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"974f872c-19cc-400c-9a19-a7f47d161fb2","page_size":[595,841],"block_position":"10-1"},{"bbox":[86,312,505,341],"type":"text","angle":0,"index":2,"text":"桥接模式配置简单，但如果网络环境是ip资源很缺少或对ip管理比较严格的话，那桥接模 式就不适用了。要使用vmware的NAT模式。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"23ad3243-7c18-4468-b635-3e38b2e4d686","page_size":[595,841],"block_position":"10-2"},{"bbox":[91,343,443,555],"index":3,"angle":0,"type":"image","img_path":"/2bccc9986ca379d3208f97794ae09243b20745bfbedd3fad74155a86656b5b7f.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5915966386554622,"page_idx":10,"id":"2d6707be-f0a2-4efe-9331-5bbe808d6d1f","page_size":[595,841],"block_position":"10-3"},{"bbox":[86,561,505,591],"type":"text","angle":0,"index":4,"text":"在NAT模式中，主机网卡直接与虚拟 NAT设备相连，然后虚拟 NAT设备与虚拟DHCP服 务器一起连接在虚拟交换机VMnet8上，这样就实现了虚拟机联网。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"f1ed1ab5-c950-41e4-bb19-75c8b669b44b","page_size":[595,841],"block_position":"10-4"},{"bbox":[86,593,495,607],"type":"text","angle":0,"index":5,"text":"VMware Network Adapter VMnet8 虚拟网卡主要是为了实现主机与虚拟机之间的通信。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"0630c50d-2864-4fc8-9fb7-93b679778274","page_size":[595,841],"block_position":"10-5"},{"bbox":[87,608,230,621],"type":"text","angle":0,"index":6,"text":"设置虚拟机中NAT模式的选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"dae7fdad-5e75-4d27-94d0-d5c9e2daf65b","page_size":[595,841],"block_position":"10-6"},{"bbox":[86,624,336,638],"type":"text","angle":0,"index":7,"text":"打开 vmware，点击“编辑”下的“虚拟网络编辑器” ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"ee7b15f4-3fcd-49df-b1b7-9ee741fc05d0","page_size":[595,841],"block_position":"10-7"},{"bbox":[87,640,224,652],"type":"text","angle":0,"index":8,"text":"设置NAT参数及DHCP参数。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":10,"id":"5efd6631-2b10-4f97-bc22-0d2bb5116936","page_size":[595,841],"block_position":"10-8"}],[{"bbox":[88,76,398,374],"index":0,"angle":0,"type":"image","img_path":"/2b9a00a77deed2856f72a54693e08d84ec9127d250fc43d94cbe4f0fa258673d.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5210084033613446,"page_idx":11,"id":"546c0e53-db7d-430c-a791-90385e1d23a2","page_size":[595,841],"block_position":"11-0"},{"bbox":[88,374,362,597],"index":1,"angle":0,"type":"image","img_path":"/1094e136a3f1b7d356e21e396b3a9bd9369e0aeec7e3b7d7996c2e856fcf6819.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.46050420168067224,"page_idx":11,"id":"3e21b04c-a92b-481c-bef3-a4f41c90af31","page_size":[595,841],"block_position":"11-1"}],[{"bbox":[88,75,322,277],"index":0,"angle":0,"type":"image","img_path":"/a6e05baaae21f007356b392d8cd5002e26b342bae4266c45f3979b615f171865.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.39327731092436974,"page_idx":12,"id":"7213daec-9c52-4d8f-b5da-c154d2d05177","page_size":[595,841],"block_position":"12-0"},{"bbox":[88,277,290,450],"index":1,"angle":0,"type":"image","img_path":"/ad0b83e95b6f4d0489dd7e3cd05e80a3101300f2f738c48865a255ec2f3271c1.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.33949579831932775,"page_idx":12,"id":"ba29771d-491e-431a-ac4d-ca0d4d00f024","page_size":[595,841],"block_position":"12-1"},{"bbox":[87,471,154,490],"type":"title","angle":0,"index":2,"text":"# 学习工具","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":12,"id":"1eff3e1c-607d-46fb-a978-9464ff3283aa","page_size":[595,841],"block_position":"12-2"},{"bbox":[86,526,205,539],"type":"text","angle":0,"index":3,"text":"在线查看Linux内核代码 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"f5d4d48f-c124-47cf-9c5c-d8b5ae71997c","page_size":[595,841],"block_position":"12-3"},{"bbox":[87,542,337,555],"type":"text","angle":0,"index":4,"text":"http://https://elixir.bootlin.com/linux/latest/source ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"cfd606c0-74db-48a8-a3dd-565c03a6e1e0","page_size":[595,841],"block_position":"12-4"},{"bbox":[88,558,174,571],"type":"text","angle":0,"index":5,"text":"http://lxr.linux.no ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"5c83b486-d163-465f-a238-1156134b4509","page_size":[595,841],"block_position":"12-5"},{"bbox":[88,573,205,587],"type":"text","angle":0,"index":6,"text":"下载某版本内核源码文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"117ced99-1fd9-416c-bbc1-aac8e1c32cbc","page_size":[595,841],"block_position":"12-6"},{"bbox":[88,589,142,602],"type":"text","angle":0,"index":7,"text":"Kernel.org ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"0aaecde9-5f47-47ee-971d-0fdcf71794bf","page_size":[595,841],"block_position":"12-7"},{"bbox":[88,604,215,618],"type":"text","angle":0,"index":8,"text":"解压缩到本地文件系统目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"7a17b6dc-b13e-4471-8976-5bb701e20b40","page_size":[595,841],"block_position":"12-8"},{"bbox":[88,620,174,634],"type":"text","angle":0,"index":9,"text":"使用工具阅读源码 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"e4cc1f12-1800-41f1-bd3c-4c96b55000b6","page_size":[595,841],"block_position":"12-9"},{"bbox":[88,636,160,649],"type":"text","angle":0,"index":10,"text":"Source insight ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"42192154-b189-41e3-adb9-5e1b9ccdd363","page_size":[595,841],"block_position":"12-10"},{"bbox":[87,658,163,675],"type":"title","angle":0,"index":11,"text":"# Vim+ctags","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":12,"id":"a2588a29-d525-4eef-a743-aa0c05a1b39f","page_size":[595,841],"block_position":"12-11"},{"bbox":[86,682,493,696],"type":"text","angle":0,"index":12,"text":"在 vim 中安装插件 ctags 后，就可以在终端方便地使用 vim 命令查看 Linux 源码内容了。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"935fbd94-e25f-4f4e-9b55-5afad6fc27a7","page_size":[595,841],"block_position":"12-12"},{"bbox":[88,698,163,712],"type":"text","angle":0,"index":13,"text":"安装 ctags 插件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"0f360c15-f3bf-4bff-927b-0ef9daff3e0b","page_size":[595,841],"block_position":"12-13"},{"bbox":[88,714,202,727],"type":"text","angle":0,"index":14,"text":"方法一：ctags 源码安装 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"bfe5445e-88ef-4c21-acb3-aae5a6760cce","page_size":[595,841],"block_position":"12-14"},{"bbox":[88,729,307,743],"type":"text","angle":0,"index":15,"text":"方法二：安装工具 apt-get、yum、pacman 等 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"64d86613-cf80-46e2-b450-b24943335d61","page_size":[595,841],"block_position":"12-15"},{"bbox":[88,745,174,758],"type":"text","angle":0,"index":16,"text":"修改vim配置文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":12,"id":"5cfef9cc-91b1-496d-b9f9-c9dcfa7a6ed0","page_size":[595,841],"block_position":"12-16"}],[{"bbox":[87,79,296,91],"type":"text","angle":0,"index":0,"text":"编辑 vim 配置文件 sudo vim /etc/vim/vimrc ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"f3db3c8b-9fbc-43a0-8b7a-d972d5b0ad49","page_size":[595,841],"block_position":"13-0"},{"bbox":[87,95,158,107],"type":"text","angle":0,"index":1,"text":"添加如下内容： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"1f5d2337-854e-487c-b972-6562dc12cb16","page_size":[595,841],"block_position":"13-1"},{"bbox":[87,110,296,123],"type":"text","angle":0,"index":2,"text":"set tags=/home/stu01/src/linux-4.12/tags ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"efd06947-c3b4-432c-a474-5928fdab58df","page_size":[595,841],"block_position":"13-2"},{"bbox":[87,126,158,137],"type":"text","angle":0,"index":3,"text":"set autochdir ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"866158a5-98b0-4225-82d8-bdeaf18fe0a2","page_size":[595,841],"block_position":"13-3"},{"bbox":[87,141,257,153],"type":"text","angle":0,"index":4,"text":"利用 ctags 文件查看 Linux 源码信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"97d8f38e-f188-4b5b-aa17-87e540220f14","page_size":[595,841],"block_position":"13-4"},{"bbox":[115,163,194,178],"type":"title","angle":0,"index":5,"text":"# 源码安装ctags","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":13,"id":"0558e6d4-c0a4-48b5-a6d8-c8736617af70","page_size":[595,841],"block_position":"13-5"},{"bbox":[115,182,155,192],"type":"text","angle":0,"index":6,"text":"·下载源码 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"e1ac7356-e45f-4a7d-aa7c-9cada9c7b2e5","page_size":[595,841],"block_position":"13-6"},{"bbox":[126,193,275,211],"index":7,"angle":0,"type":"code","text":"```txt\nhttp://prddownloads.sourceforge.net/ctags-5.8.tar.gz  \nhttp://ctags.sourceforge.net/ \n```","id":"df920ddb-2223-41d2-bbd2-0d89fbec6004","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":13,"page_size":[595,841],"block_position":"13-7"},{"bbox":[115,212,155,222],"type":"text","angle":0,"index":8,"text":"·编译安装 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"73fee5b1-d11b-41c7-9fb2-1b859a8c3430","page_size":[595,841],"block_position":"13-8"},{"bbox":[125,223,158,232],"type":"text","angle":0,"index":9,"text":"./configure ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"619c7616-0b04-4efa-aa9c-5ca010575626","page_size":[595,841],"block_position":"13-9"},{"bbox":[126,233,143,240],"type":"text","angle":0,"index":10,"text":"make ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"8715bfaa-df42-40c8-9b8e-fbd70bac29dc","page_size":[595,841],"block_position":"13-10"},{"bbox":[126,241,176,248],"type":"text","angle":0,"index":11,"text":"sudo make install ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"a39f4ce2-5b58-46eb-a059-7945455abd55","page_size":[595,841],"block_position":"13-11"},{"bbox":[177,225,304,267],"index":12,"angle":0,"type":"image","img_path":"/bbbfc857a4773f70bf9965b2b61aff339af564b9c87abf928cd695b61ab720c7.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2134453781512605,"page_idx":13,"id":"603adbb0-8489-4352-b14b-d2cd421f8f5a","page_size":[595,841],"block_position":"13-12"},{"bbox":[115,260,154,269],"type":"text","angle":0,"index":13,"text":"·生成索引 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"e5e6012f-74bc-4846-b3d1-7863fbc0a5c0","page_size":[595,841],"block_position":"13-13"},{"bbox":[125,270,258,279],"index":14,"angle":0,"type":"code","text":"```txt\n- sudo ctags -R * //在Linux源码目录中执行 \n```","id":"17deb4c4-fee2-4098-adf3-46e46b0e39a1","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":13,"page_size":[595,841],"block_position":"13-14"},{"bbox":[126,280,232,288],"type":"text","angle":0,"index":15,"text":"·-R表示递归创建*表示所有文件 ","id":"49e308cb-1f6e-4f4f-8ae9-f98acfb92546","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"page_size":[595,841],"block_position":"13-15"},{"bbox":[126,289,221,297],"type":"text","angle":0,"index":16,"text":"·命令执行后生成一个tags目录 ","id":"cb2f4275-df30-4d91-b9b1-38c8b821bf88","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"page_size":[595,841],"block_position":"13-16"},{"bbox":[96,313,270,328],"type":"title","angle":0,"index":18,"text":"# 利用ctags文件查看Linux源码信息","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":13,"id":"0924914c-2685-4d36-b5b2-fe691a2795cc","page_size":[595,841],"block_position":"13-17"},{"bbox":[96,339,190,350],"type":"text","angle":0,"index":19,"text":"· vim -t effective_prio ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"9d21d838-a17e-48f5-aa85-3f042ad1f44f","page_size":[595,841],"block_position":"13-18"},{"bbox":[90,353,307,429],"index":20,"angle":0,"type":"algorithm","text":"static int effective_prio(struct task_struct \\*p)   \n{ p->normal_prio $=$ normal_prio(p); /\\* If we are RT tasks or we were boosted to RT priority, \\* keep the priority unchanged. otherwise, update priority \\* to the normal priority: /\\* if (!rt_prio(p->prio)) return p->normal_prio; return p->prio; ","id":"5ef6446e-3630-479d-8bb8-6bb491207fce","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"page_size":[595,841],"block_position":"13-19"},{"bbox":[95,433,296,455],"type":"text","angle":0,"index":21,"text":"-t之后是要显示的tag，包括变量名、数据结构名 和函数名等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"542362d8-b613-4d58-9afa-e976cc92bba8","page_size":[595,841],"block_position":"13-20"},{"bbox":[87,469,117,481],"type":"text","angle":0,"index":22,"text":"Ctrl+] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"ec391ace-8c52-4778-b508-497031ab3196","page_size":[595,841],"block_position":"13-21"},{"bbox":[87,483,494,496],"type":"text","angle":0,"index":23,"text":"当光标处于要查看的变量名、数据结构名、函数名处时，Ctrl+]可以跳转到相应的定义处 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"d227b3c9-00fb-47aa-a731-2521e872c8ba","page_size":[595,841],"block_position":"13-22"},{"bbox":[88,499,120,510],"type":"text","angle":0,"index":24,"text":"Ctrl+T ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"c0984186-8fb4-4b49-9c42-d99786afa71a","page_size":[595,841],"block_position":"13-23"},{"bbox":[87,515,185,528],"type":"text","angle":0,"index":25,"text":"返回前一次的位置处 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"127388ea-9593-4e4d-8a91-b6747734a57e","page_size":[595,841],"block_position":"13-24"},{"bbox":[87,533,99,541],"type":"text","angle":0,"index":26,"text":"ta ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"39a67e0d-a13e-493f-aa06-3b70bc79b26e","page_size":[595,841],"block_position":"13-25"},{"bbox":[87,546,289,559],"type":"text","angle":0,"index":27,"text":"在命令模式下使用，可以显示变量等的定义 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"84d004c0-ee29-4ec1-b7f4-8b3987615d2a","page_size":[595,841],"block_position":"13-26"},{"bbox":[87,562,307,576],"type":"text","angle":0,"index":28,"text":":ta normal_prio // 显示 normal_prio()的源码 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"5e50addc-4590-4899-8cfe-280aaceb6f38","page_size":[595,841],"block_position":"13-27"},{"bbox":[87,577,132,590],"type":"text","angle":0,"index":29,"text":"其他用法 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"bd47dcb8-3e86-41b1-b351-17144ef47930","page_size":[595,841],"block_position":"13-28"},{"bbox":[87,594,143,606],"type":"text","angle":0,"index":30,"text":"man ctags ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"d9a61f06-e4e8-41ef-bf0b-cfcf16ab5e9d","page_size":[595,841],"block_position":"13-29"},{"bbox":[87,609,174,622],"type":"text","angle":0,"index":31,"text":"Vim 中 help ctags ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"05f1c0f8-2d3a-40f0-974a-fc56f4eedbde","page_size":[595,841],"block_position":"13-30"},{"bbox":[87,640,181,652],"type":"text","angle":0,"index":32,"text":"Linux中的软件发布 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"d8363dbc-9ac0-41c3-b520-a4420dbd1c3e","page_size":[595,841],"block_position":"13-31"},{"bbox":[88,655,132,667],"type":"text","angle":0,"index":33,"text":"二进制包 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"664c9f87-ad2e-4c7e-b8b2-540b6203b342","page_size":[595,841],"block_position":"13-32"},{"bbox":[88,672,111,684],"type":"text","angle":0,"index":34,"text":"rmp ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"9dadbf66-8aed-4056-a831-b8c85d97aabb","page_size":[595,841],"block_position":"13-33"},{"bbox":[88,687,108,698],"type":"text","angle":0,"index":35,"text":"deb ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"998da022-377a-40e0-a798-0fa8f5bd0e8e","page_size":[595,841],"block_position":"13-34"},{"bbox":[88,703,121,714],"type":"text","angle":0,"index":36,"text":"源码包 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"81750543-97bb-4317-a2eb-e0d730204888","page_size":[595,841],"block_position":"13-35"},{"bbox":[88,719,104,729],"type":"text","angle":0,"index":37,"text":"tar ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":13,"id":"abfadeee-20d4-4220-94ab-4c69e24520f3","page_size":[595,841],"block_position":"13-36"}],[{"bbox":[88,81,104,89],"type":"text","angle":0,"index":0,"text":"rar ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"3c4265b5-ee62-4810-bdce-852e63d70dec","page_size":[595,841],"block_position":"14-0"},{"bbox":[98,102,152,124],"type":"title","angle":0,"index":1,"text":"# Rpm包","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":14,"id":"22d7ef94-e468-499c-986c-af3d82a8da60","page_size":[595,841],"block_position":"14-1"},{"bbox":[98,145,370,162],"type":"text","angle":0,"index":2,"text":"·红帽包管理工具 (Red hat Package Manager) ","id":"a1902ca1-7fc0-4be4-ad4d-e3397a03489c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-2"},{"bbox":[99,164,136,179],"type":"text","angle":0,"index":3,"text":"·安装 ","id":"853bfbab-31cb-4575-90fa-5cc9dabcc711","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-3"},{"bbox":[98,183,304,208],"type":"text","angle":0,"index":5,"text":"rpm -ivh /home/user01/zsh-5.0.2- 31. e17. x86_64. rpm ","id":"3e6caa6d-b12c-4f87-af25-51afb0f71e56","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-4"},{"bbox":[99,211,198,226],"type":"text","angle":0,"index":6,"text":"·RPM安装常用选项： ","id":"cffbb210-0a3c-48d6-acc1-93353cf4f99a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-5"},{"bbox":[112,229,251,243],"type":"text","angle":0,"index":8,"text":"-i:安装（Install）软件。 ","id":"5e8ef206-5035-47f7-bffa-3896b9b41a68","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-6"},{"bbox":[113,245,296,259],"type":"text","angle":0,"index":9,"text":"-U：升级（Upgrade）旧版本的软件。 ","id":"cd16c7fb-f74e-4717-be3e-f1b5ebfd3741","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-7"},{"bbox":[113,262,268,276],"type":"text","angle":0,"index":10,"text":"-e:移除/删除 (Erase）软件。 ","id":"aee2e732-9928-47a2-98ca-d2a83be08cfc","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-8"},{"bbox":[113,279,245,292],"type":"text","angle":0,"index":11,"text":"- v：显示详细的处理信息。 ","id":"88be5a02-52c5-4bbd-8889-1d06f80d5173","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-9"},{"bbox":[113,296,275,310],"type":"text","angle":0,"index":12,"text":"-h：显示安装进度。卸载不能用 ","id":"1da4e4f4-a6e0-497f-94e5-609ace421b0c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-10"},{"bbox":[314,206,399,216],"type":"text","angle":0,"index":14,"text":"如何查看安装的shell: ","id":"20529fd6-9755-4b0a-974a-c094f20196f6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-11"},{"bbox":[314,217,390,227],"type":"text","angle":0,"index":15,"text":"#cat /etc/shells ","id":"922126e0-51eb-4040-90d5-97dc4269a669","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-12"},{"bbox":[314,227,348,237],"type":"text","angle":0,"index":16,"text":"/bin/sh ","id":"59562da0-0e98-4eda-9d50-43a9b11007fc","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-13"},{"bbox":[315,238,357,247],"type":"text","angle":0,"index":17,"text":"/bin/bash ","id":"f8727721-1452-4d1d-87fd-ae903ed37697","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-14"},{"bbox":[315,248,367,257],"type":"text","angle":0,"index":18,"text":"/usr/bin/sh ","id":"b5afcb0c-737c-424d-b8e2-cf7fcb621ed8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-15"},{"bbox":[315,258,376,267],"type":"text","angle":0,"index":19,"text":"/usr/bin/bash ","id":"7bf3897d-d060-40fa-aaf4-a3ad43c67f26","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-16"},{"bbox":[315,268,353,277],"type":"text","angle":0,"index":20,"text":"/bin/zsh ","id":"0585360e-b87a-4210-b5a0-a550d2f38b5a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-17"},{"bbox":[99,340,170,354],"type":"text","angle":0,"index":22,"text":"·rpm-q 查询 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"39b4f08f-a87f-4039-a649-70620deefa56","page_size":[595,841],"block_position":"14-18"},{"bbox":[113,356,163,365],"type":"text","angle":0,"index":23,"text":"rpm -q zsh ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"efc4c5c2-85c5-4ade-9bee-31cbdbc0645a","page_size":[595,841],"block_position":"14-19"},{"bbox":[112,367,220,379],"type":"text","angle":0,"index":24,"text":"·常与下面参数组合使用 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"5230db3a-44ed-4f55-bf47-ee1fb4071452","page_size":[595,841],"block_position":"14-20"},{"bbox":[98,417,104,423],"index":25,"angle":0,"type":"image","img_path":"/02935e6da91fd2430156cca09e174fb52de43a966b64123620258b5da6976839.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":14,"id":"b1bdc065-014e-4ded-bf87-004a82722a85","page_size":[595,841],"block_position":"14-21"},{"bbox":[118,386,220,395],"type":"text","angle":0,"index":26,"text":"-a 查询所有已经安装的软件包 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"13bd7548-9204-4be3-867c-7476e3d55a81","page_size":[595,841],"block_position":"14-22"},{"bbox":[122,396,243,404],"type":"text","angle":0,"index":27,"text":"-f查询文件所属哪个软件包，反向查询 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"c38a51a3-53e5-4a7e-bd76-88281179fa1a","page_size":[595,841],"block_position":"14-23"},{"bbox":[121,405,285,412],"type":"text","angle":0,"index":28,"text":"-i显示已经安装的rpm软件包信息，后面直接跟包名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"e8264022-ee69-4be0-afd3-45219d514373","page_size":[595,841],"block_position":"14-24"},{"bbox":[121,413,226,422],"type":"text","angle":0,"index":29,"text":"-|查询软件包中，文件安装的位置 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"34f6a082-7e2a-4dfe-9293-1f0b9fab29de","page_size":[595,841],"block_position":"14-25"},{"bbox":[122,423,295,430],"type":"text","angle":0,"index":30,"text":"-p 查询未安装软件包的相关信息,后面要跟软件的命名 ","id":"0180832c-87fe-406b-8595-3e5282119a68","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-26"},{"bbox":[122,431,198,439],"type":"text","angle":0,"index":31,"text":"-R查询软件包的依赖性 ","id":"bd4d8f89-80ae-4806-b5ed-8d994d74ca3c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-27"},{"bbox":[116,447,229,456],"type":"text","angle":0,"index":33,"text":"rpm -qa」grep vi#不需要后缀 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"1e4e3daf-7ade-49ef-a1db-7876d90ee2b9","page_size":[595,841],"block_position":"14-28"},{"bbox":[98,459,346,476],"type":"text","angle":0,"index":34,"text":"rpm -qf /usr/sbin/ifconfig #查询ifconfig属于哪个安装包（配合 which) ","id":"e0df21a8-8dc4-4a4e-96c7-efb9df9569a0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-29"},{"bbox":[99,479,141,492],"type":"text","angle":0,"index":35,"text":"·卸载包 ","id":"eb1d798b-ffb3-484d-ad78-a20d83716972","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-30"},{"bbox":[116,496,141,505],"type":"text","angle":0,"index":37,"text":"rpm -e ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"33ba4f17-5c1a-41de-9a3a-17a9a61efb53","page_size":[595,841],"block_position":"14-31"},{"bbox":[146,496,163,505],"type":"text","angle":0,"index":38,"text":"dhcp ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"abe70ec5-0b3e-4562-8aae-ff200fa432bf","page_size":[595,841],"block_position":"14-32"},{"bbox":[171,496,224,505],"type":"text","angle":0,"index":39,"text":"#卸载包 (包名) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"id":"78ac861a-e25d-4cca-8e92-97ef2f78a3a4","page_size":[595,841],"block_position":"14-33"},{"bbox":[102,550,194,586],"type":"title","angle":0,"index":40,"text":"# Deb包","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":14,"id":"e94959bb-a377-4b0e-b554-8be19bd9ca53","page_size":[595,841],"block_position":"14-34"},{"bbox":[102,614,456,640],"type":"text","angle":0,"index":41,"text":"·Debian-based系统的安装包(.exe) ","id":"6d4ecea5-cc0b-4903-a814-edf87d434bca","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-35"},{"bbox":[102,663,438,691],"type":"text","angle":0,"index":42,"text":"·一般是软件源repository中安装 ","id":"9434ee52-20bf-45e1-81b3-21a5e229ce8f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-36"},{"bbox":[103,712,404,739],"type":"text","angle":0,"index":43,"text":"·有时需要下载deb包手动安装 ","id":"2ddf8e9b-29cc-4cc3-a7ea-9527075879ed","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":14,"page_size":[595,841],"block_position":"14-37"},{"bbox":[333,325,342,334],"index":45,"angle":0,"type":"image","img_path":"/446ab45bba3405b4aea38f4da2662685aaa7b1cec87e36c6bf7c6963c4bda1f9.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":14,"id":"e6227694-3f48-487a-b087-40b041991a0e","page_size":[595,841],"block_position":"14-38"}],[{"bbox":[98,89,155,113],"type":"title","angle":0,"index":0,"text":"# Deb包","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":15,"id":"11906cf3-9735-42e2-ae68-5cb633fdc2f4","page_size":[595,841],"block_position":"15-0"},{"bbox":[98,126,191,145],"type":"title","angle":0,"index":1,"text":"# dpkg工具安装","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":15,"id":"cc46d21c-c60e-4d60-bb44-295bae580e6d","page_size":[595,841],"block_position":"15-1"},{"bbox":[115,153,396,206],"index":2,"angle":0,"type":"code","text":"```batch\n安装：sudo dpkg -i deb文件名 sudo dpkg --install deb文件名  \ndo dpkg -i /home/user01/teamviewer_14.5.1691_amd64.def \n```","id":"b04d490f-2b12-4180-80e6-2c7445517764","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-2"},{"bbox":[115,217,298,233],"index":3,"angle":0,"type":"code","text":"```txt\n- 查看安装的应用：sudo dpkg -1 \n```","id":"d05ba366-27f2-4ed8-912a-7f7ec43cded1","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-3"},{"bbox":[116,240,319,280],"index":4,"angle":0,"type":"code","text":"```txt\n- 卸载：sudo dpkg -r 软件包 sudo dpkg -p 软件包 \n```","id":"fa36c0a4-4412-48e9-943d-be601ce8c05b","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-4"},{"bbox":[100,322,249,340],"type":"title","angle":0,"index":5,"text":"# apt/apt-get工具安装","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":15,"id":"4c5c03b6-0d7a-4711-9d2b-66b411b87c13","page_size":[595,841],"block_position":"15-5"},{"bbox":[118,348,395,389],"index":6,"angle":0,"type":"code","text":"```txt\n- 安装：sudo apt install 软件名 sudo apt --fix-broken install \n```","id":"2cc43f5f-0532-4f45-b348-e88ac9043c7f","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-6"},{"bbox":[118,394,158,411],"type":"text","angle":0,"index":7,"text":"软件名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":15,"id":"966d196c-998f-4f4b-94f1-a5cdd968cb1f","page_size":[595,841],"block_position":"15-7"},{"bbox":[189,418,388,435],"index":8,"angle":0,"type":"code","text":"```txt\nGUI下可以直接双击deb文件开始安装 \n```","id":"df804567-834c-47c5-b730-0b2ebdbb8aba","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-8"},{"bbox":[119,444,395,484],"index":9,"angle":0,"type":"code","text":"```txt\n- 卸载：sudo apt autoremove #卸载无用的依赖 sudo apt remove 软件名 #软件包 \n```","id":"06910d9d-aee5-4bca-9382-eafaf9298289","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-9"},{"bbox":[98,507,233,531],"type":"title","angle":0,"index":10,"text":"# 配置yum软件源","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":15,"id":"cf0e0f01-d01d-4ecb-b606-f8a2d0ac4aad","page_size":[595,841],"block_position":"15-10"},{"bbox":[98,550,312,566],"index":11,"angle":0,"type":"code","text":"```txt\n- yum (yellowdog updater modified) \n```","id":"06f53bad-5757-48b0-ad96-b902233d912b","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-11"},{"bbox":[99,569,365,585],"index":12,"angle":0,"type":"code","text":"```txt\n- vim /etc/yum repos.d/Local(repo #新建源 \n```","id":"5f2ec04d-4c6b-45dc-8916-98af18882915","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-12"},{"bbox":[99,587,270,602],"index":13,"angle":0,"type":"code","text":"```txt\n·yum clean all #清理缓存 \n```","id":"ecd0798e-1b5f-47c6-9948-20e3140d4500","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-13"},{"bbox":[99,606,262,621],"index":14,"angle":0,"type":"code","text":"```txt\n- yum -y install dhclient \n```","id":"0dc7a885-5a04-494b-9002-cace02db5923","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":15,"page_size":[595,841],"block_position":"15-14"}],[{"bbox":[107,89,206,118],"type":"title","angle":0,"index":0,"text":"# 源码安装","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":16,"id":"a2bea33a-6b62-4e9f-9f7b-717e2df68058","page_size":[595,841],"block_position":"16-0"},{"bbox":[108,141,317,159],"type":"text","angle":0,"index":1,"text":"·./configure #也可能是其他 ","id":"12bb6e24-1012-42a4-ae4d-39d2623048d7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-1"},{"bbox":[108,163,219,181],"type":"text","angle":0,"index":2,"text":"· make #编译 ","id":"6f09be19-b99b-4474-97c7-122093799811","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-2"},{"bbox":[108,186,280,203],"type":"text","angle":0,"index":3,"text":"·make install #安装 ","id":"74ca025f-9dd5-4088-b9eb-7b6ec9379a64","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-3"},{"bbox":[108,208,271,224],"type":"text","angle":0,"index":4,"text":"· make clean #清理 ","id":"7a3b131d-f66b-4f33-8f27-0f91f370362f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-4"},{"bbox":[87,284,123,302],"type":"title","angle":0,"index":6,"text":"# 终端","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":16,"id":"37171875-4514-4d21-a9b6-103324cfe3e9","page_size":[595,841],"block_position":"16-5"},{"bbox":[86,339,504,368],"type":"text","angle":0,"index":7,"text":"UNIX/Linux 本身是没有图形界面的，我们通常在 UNIX/Linux 发行版上看到的图形界面实 际都只是运行在 Linux 系统之上的一套软件， ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"id":"bb2177bd-199e-40b0-8224-41cb4822cf17","page_size":[595,841],"block_position":"16-6"},{"bbox":[86,370,505,478],"type":"text","angle":0,"index":8,"text":"而 Linux 上的这套软件以前是 XFree86，现在则是 xorg（X.Org），而这套软件又是通过 X 窗口系统（X Window System，也常被称为 X11 或 X）实现的，X 本身只是工具包及架 构协议，而 xorg 便是 X 架构规范的一个实现体，也就是说它是实现了 X 协议规范的一个 提供图形界面服务的服务器，就像实现了 http 协议提供 web 服务的 Apache 。如果只有 服务器也是不能实现一个完整的桌面环境的，当然还需要一个客户端，我们称为 X Client，像如下 几个 大家 熟 知也 最流行 的 实 现 了 客户 端 功 能 的 桌 面 环 境 KD E，GNOME，XFCE，LXDE 。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"id":"150ae1e0-18b2-4648-8323-906f4ed6b26b","page_size":[595,841],"block_position":"16-7"},{"bbox":[107,491,464,695],"index":9,"angle":0,"type":"image","img_path":"/d1c681e1fe1a10011942116f6d5ef4328214297d2c7d5aebf7c8f6e3cd4ce017.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6,"page_idx":16,"id":"3b022422-5593-4f64-8393-5a9e1337e4ad","page_size":[595,841],"block_position":"16-8"},{"bbox":[202,709,376,723],"index":10,"angle":0,"type":"image_caption","text":"Linux/UNIX内核的XWindow图形架构","id":"cf9964cf-f679-417a-82c5-d0ab7c1e6618","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":16,"page_size":[595,841],"block_position":"16-9"},{"bbox":[513,531,595,692],"index":11,"angle":0,"type":"image","img_path":"/1a26caf02e0a3644f55cd108f01f997a7845e4fa7b6e30f255e3b6b7ee2999f6.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":16,"id":"c11eae57-b6fc-46fe-a9c5-6d3bac404d50","page_size":[595,841],"block_position":"16-10"}],[{"bbox":[88,85,119,101],"type":"title","angle":0,"index":0,"text":"# 终端","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":17,"id":"2df95bd0-7855-4222-9a3b-fad7459a9443","page_size":[595,841],"block_position":"17-0"},{"bbox":[86,136,504,164],"type":"text","angle":0,"index":1,"text":"我们并不是直接利用操作系统，而是利用shell的中间程序来完成。在图形界面下为了实现让我们在 一个窗口中完成用户输入和显示输出。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"6cdb8b68-f0b3-43a8-a6a4-b16feecf076e","page_size":[595,841],"block_position":"17-1"},{"bbox":[87,176,503,205],"type":"text","angle":0,"index":2,"text":"Linux 系统还提供了一个叫做终端模拟器的程序（Terminal）。 下面是几个比较常见的终端模拟器： gnome-terminal，Konsole，xterm，rxvt，kvt，nxterm 和 eterm 。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"1c79cc48-5d1a-4bbf-8dc5-0efc4e0a89f9","page_size":[595,841],"block_position":"17-2"},{"bbox":[87,216,424,229],"type":"text","angle":0,"index":3,"text":"不过要注意的是这里所说的终端（Terminal）和控制台（Console）是有区别的。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"f7d40e3d-26ba-4d54-a8fe-6a7b9c00e26b","page_size":[595,841],"block_position":"17-3"},{"bbox":[86,243,314,256],"type":"text","angle":0,"index":4,"text":"Tty 终端设备的统称 teletypewriters 电传打字机 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"7cccf211-3f5a-46b8-9d67-ff3fce193b85","page_size":[595,841],"block_position":"17-4"},{"bbox":[87,258,199,270],"type":"text","angle":0,"index":5,"text":"现在叫终端（terminal） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"7421e131-bc02-4b15-b9d4-996a4c8b651a","page_size":[595,841],"block_position":"17-5"},{"bbox":[87,274,196,286],"type":"text","angle":0,"index":6,"text":"终端是一种字符型设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"d781c990-01e1-4695-ab1b-84f7aa735e19","page_size":[595,841],"block_position":"17-6"},{"bbox":[86,289,433,302],"type":"text","angle":0,"index":7,"text":"Tty1-tty6 表示文字界面，可以用 alt+ctrl+F1~F6 切换，F7 是返回图形界面 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"36ac410f-8d0c-4f00-b4bb-63eeeea8293b","page_size":[595,841],"block_position":"17-7"},{"bbox":[87,305,151,318],"type":"text","angle":0,"index":8,"text":"Pty 虚拟终端 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"6468e0da-1151-4265-8e8a-a06ca5eefb6e","page_size":[595,841],"block_position":"17-8"},{"bbox":[86,320,504,350],"type":"text","angle":0,"index":9,"text":"远程 telnet 连接 到主 机或 使 用 xterm 时，需要 一 个 终 端 交 互 ， 这 就 是 虚 拟 终 端 pty（pseudo-tty） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"58341994-5dff-4411-b69a-8137a2c46778","page_size":[595,841],"block_position":"17-9"},{"bbox":[87,352,136,364],"type":"text","angle":0,"index":10,"text":"Pts/ptmx ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"12ad20a1-78a1-4200-8c05-97408ed56cfb","page_size":[595,841],"block_position":"17-10"},{"bbox":[86,367,504,426],"type":"text","angle":0,"index":11,"text":"终端本质上是对应着 Linux 上的 /dev/tty 设备，Linux 的多用户登录就是通过不同的 /dev/tty 设备完 成的，Linux 默认提供了 6 个纯命令行界面的 “terminal”（准确的说这里应该是 6 个 virtual consoles）来让用户登录。在物理机系统上你可以通过使用[Ctrl]+[Alt]+[F1]～[F6]进行切换。当 你切换到其中一个终端后想要切换回图形界面，你可以按下[Ctrl] $^ +$ [Alt]+[F7]来完成。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"73c30524-b91f-47cf-a834-a6fd765de13c","page_size":[595,841],"block_position":"17-11"},{"bbox":[87,439,135,451],"type":"text","angle":0,"index":12,"text":"Linux 接口 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"e9f4e12e-7802-4b6d-aa0e-9e286b715a8c","page_size":[595,841],"block_position":"17-12"},{"bbox":[87,465,147,476],"type":"text","angle":0,"index":13,"text":"终端用户 GUI ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"9225977b-d4e5-40ff-998b-671faf38e1e1","page_size":[595,841],"block_position":"17-13"},{"bbox":[87,490,123,500],"type":"text","angle":0,"index":14,"text":"TUI/CLI ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"230389ef-d5eb-4991-a42f-e8a0babbd1db","page_size":[595,841],"block_position":"17-14"},{"bbox":[87,515,119,527],"type":"text","angle":0,"index":15,"text":"程序员 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"e901ba87-63d0-49d9-b1ad-ce924680afbb","page_size":[595,841],"block_position":"17-15"},{"bbox":[87,540,139,552],"type":"text","angle":0,"index":16,"text":"System call ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"id":"8e2d0270-cc6c-4e35-8170-920c47a030fa","page_size":[595,841],"block_position":"17-16"},{"bbox":[86,572,505,588],"type":"title","angle":0,"index":17,"text":"# 在进行目录切换的过程中请多使用Tab 键自动补全，可避免输入错误，连续按","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":17,"id":"56b2d599-adaf-4738-8689-532f237624b5","page_size":[595,841],"block_position":"17-17"},{"bbox":[87,603,261,618],"index":18,"angle":0,"type":"table_caption","text":"两次Tab 可以显示全部候选结果","id":"ca319d8f-dca9-4f37-9739-b47b3851976a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":17,"page_size":[595,841],"block_position":"17-18"},{"bbox":[88,624,397,736],"index":19,"angle":0,"type":"table_body","img_path":"/","id":"63048d63-4952-47ac-9387-2fb340ccfbba","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td></td><td></td></tr><tr><td>按键</td><td>作用</td></tr><tr><td>Ctrl+d</td><td>键盘输入结束或退出终端</td></tr><tr><td>Ctrl+c</td><td>终止当前程序</td></tr><tr><td>按键</td><td>作用</td></tr><tr><td>Tab键</td><td>补全命令、目录、参数等</td></tr><tr><td>Ctrl+s</td><td>暂停当前程序,暂停后按下任意键恢复运行</td></tr><tr><td>Ctrl+z</td><td>将当前程序放到后台运行,恢复到前台为命令fg</td></tr><tr><td>Ctrl+a</td><td>将光标移至输入行头,相当于Home键</td></tr><tr><td>Ctrl+e</td><td>将光标移至输入行末,相当于End键</td></tr><tr><td>Ctrl+k</td><td>删除从光标所在位置到行末</td></tr><tr><td>Alt+Backspace</td><td>向前删除一个单词</td></tr><tr><td>Shift+PgUp</td><td>将终端显示向上滚动</td></tr><tr><td>Shift+PgDn</td><td>将终端显示向下滚动</td></tr><tr><td>Arrow up 向上键</td><td>恢复之前输入过的命令</td></tr><tr><td></td><td></td></tr></table>","page_idx":17,"page_size":[595,841],"block_position":"17-19"}],[{"bbox":[86,76,395,443],"index":0,"angle":0,"type":"table_body","lines_deleted":true,"text":"","id":"63048d63-4952-47ac-9387-2fb340ccfbba","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"","page_idx":18,"page_size":[595,841],"block_position":"18-0"},{"bbox":[88,464,160,481],"type":"title","angle":0,"index":1,"text":"# 命令程序行","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":18,"id":"82f50e22-9d53-4b4f-8c86-df9a69e426f6","page_size":[595,841],"block_position":"18-1"},{"bbox":[86,514,505,589],"type":"text","angle":0,"index":2,"text":"这个 Shell（壳）。有壳就有核，这里的核就是指 UNIX/Linux 内核，Shell 是指“提供给使用者使用 界面” 的软件（命令解析器），类似于 DOS （磁盘操作系统）下的 command（命令行）和后来的 cmd.exe 。普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它 隐藏了操作系统底层的细节。同样的 UNIX/Linux 下的图形用户界面 GNOME 和 KDE，有时也被叫 做 虚拟“ shell”或“ 图形 shell”。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"8dccc335-ad14-451f-9de2-7958b351c037","page_size":[595,841],"block_position":"18-2"},{"bbox":[86,593,500,653],"type":"text","angle":0,"index":3,"text":"UNIX/Linux 操作系统下的 Shell 既是用户交互的界面，也是控制系统的脚本语言。当然这一点也有 别于 Windows 下的命令行，虽然该命令行也提供了很简单的控制语句。在 Windows 操作系统下， 有些用户从来都不会直接使用 Shell，然而在 UNIX 系列操作系统下，Shell 仍然是控制系统启动、 X11 启动和很多其它实用工具的脚本解释程序。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"3d53b942-6e92-446e-94db-c814ecfc2acb","page_size":[595,841],"block_position":"18-3"},{"bbox":[86,665,505,693],"type":"text","angle":0,"index":4,"text":"在 UNIX/Linux 中比较流行的常见的 Shell 有 bash、zsh、ksh、csh 等等，Ubuntu 终端默认使用的 是 bash，默认的桌面环境是 GNOME 或者 Unity（基于 GNOME）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"93951bec-d778-413e-a98c-bf5ddf74115c","page_size":[595,841],"block_position":"18-4"},{"bbox":[86,712,381,724],"type":"text","angle":0,"index":5,"text":"在 linux 中，最最重要的就是命令，这就包含了 2 个过程，输入和输出 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"2d1f9e5e-9fd6-4c60-adb2-74efd79bbab4","page_size":[595,841],"block_position":"18-5"},{"bbox":[87,735,325,749],"type":"text","angle":0,"index":6,"text":"linux 的哲学就是：没有结果就是最好的结果 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":18,"id":"7a495f71-860b-4c31-999e-07e6e0e3220e","page_size":[595,841],"block_position":"18-6"}],[{"bbox":[88,85,132,101],"type":"title","angle":0,"index":0,"text":"# 通配符","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":19,"id":"15be4e4c-c078-424b-bbf5-6272662641b9","page_size":[595,841],"block_position":"19-0"},{"bbox":[86,136,505,164],"type":"text","angle":0,"index":1,"text":"通配符是一种特殊语句，主要有星号（*）和问号（?），用来对字符串进行模糊匹配（比 如文件名、参数名） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"8f7bf49b-a748-4f0a-9ee3-503d0d203cb4","page_size":[595,841],"block_position":"19-1"},{"bbox":[86,167,506,226],"type":"text","angle":0,"index":2,"text":"终端里面输入的通配符是由 Shell 处理的，不是由所涉及的命令语句处理的，它只会出现在命令的 “ ” 参数值 里（它不能出现在命令名称里， 命令不记得，那就用 Tab补全）.总之，通配符实际上就是 一种 Shell 实现的路径扩展功能。在通配符被处理后， Shell 会先完成该命令的重组，然后继续处理 重组后的命令，直至执行该命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"3de94178-357d-4fe0-a1fa-62687ad8b733","page_size":[595,841],"block_position":"19-2"},{"bbox":[87,245,165,257],"type":"text","angle":0,"index":3,"text":"Shell 常用通配符： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"379b412b-d7ac-455e-8851-2e28a03f7310","page_size":[595,841],"block_position":"19-3"},{"bbox":[87,267,347,518],"index":4,"angle":0,"type":"table_body","img_path":"/","id":"fec5c379-a1a7-4010-9979-817548b3e93e","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>字符</td><td>含义</td></tr><tr><td>*</td><td>匹配0或多个字符</td></tr><tr><td>?</td><td>匹配任意一个字符</td></tr><tr><td>[list]</td><td>匹配list中的任意单一字符</td></tr><tr><td>^[list]</td><td>匹配除list中的任意单一字符以外的字符</td></tr><tr><td>[c1-c2]</td><td>匹配c1-c2中的任意单一字符如：[0-9][a-z]</td></tr><tr><td>{string1, string2, .}</td><td>匹配string1或string2(或更多)其一字符串</td></tr><tr><td>{c1..c2}</td><td>匹配c1-c2中全部字符如{1..10}</td></tr></table>","page_idx":19,"page_size":[595,841],"block_position":"19-4"},{"bbox":[87,538,154,555],"type":"title","angle":0,"index":5,"text":"# 帮助命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":19,"id":"6bef1602-207e-4e6b-a90b-a1c636684d22","page_size":[595,841],"block_position":"19-5"},{"bbox":[86,593,439,606],"type":"text","angle":0,"index":6,"text":"在 Linux 环境中，如果你遇到困难，可以使用 $\\mathfrak { m a n }$ 命令，它是 Manual pages 的缩写。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"e8ca4f26-532b-483d-b461-ebbba5e66ad9","page_size":[595,841],"block_position":"19-6"},{"bbox":[88,629,195,645],"type":"title","angle":0,"index":7,"text":"# Man command","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":19,"id":"18c2135f-ed25-46be-a66c-a41b68900366","page_size":[595,841],"block_position":"19-7"},{"bbox":[86,679,211,692],"type":"text","angle":0,"index":8,"text":"Man [options] command ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"1883931b-3c88-43c1-8130-3328b98d2c8b","page_size":[595,841],"block_position":"19-8"},{"bbox":[86,694,480,722],"type":"text","angle":0,"index":9,"text":"为了便于查找，man 手册被进行了分册（分区段）处理，在 Research UNIX、BSD、OS X 和 Linux 中，手册通常被分为 8 个区段，安排如下： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":19,"id":"aa07dd83-fc0c-4bd4-9c1a-3bc523b55a48","page_size":[595,841],"block_position":"19-9"}],[{"bbox":[88,76,347,343],"index":0,"angle":0,"type":"table_body","img_path":"/","id":"ff6c956b-c9fa-4a60-8d48-fa34f60f5314","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>区段</td><td>说明</td></tr><tr><td>1</td><td>一般命令</td></tr><tr><td>2</td><td>系统调用</td></tr><tr><td>3</td><td>库函数，涵盖了C标准函数库</td></tr><tr><td>4</td><td>特殊文件（通常是/dev中的设备）和驱动程序</td></tr><tr><td>5</td><td>文件格式和约定</td></tr><tr><td>6</td><td>游戏和屏保</td></tr><tr><td>7</td><td>杂项</td></tr><tr><td>8</td><td>系统管理命令和守护进程</td></tr><tr><td>9</td><td>其他（Linux特定的），用来存放内核例行程序的文档。</td></tr></table>","page_idx":20,"page_size":[595,841],"block_position":"20-0"},{"bbox":[87,368,384,380],"type":"text","angle":0,"index":1,"text":"要查看相应区段的内容，就在 man 后面加上相应区段的数字即可，如： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"84d9b1e1-851d-4200-9840-2e2d90e57129","page_size":[595,841],"block_position":"20-1"},{"bbox":[88,394,139,405],"type":"title","angle":0,"index":2,"text":"# $ man 1 ls","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"c5518103-5a96-4582-808e-8749997be39e","page_size":[595,841],"block_position":"20-2"},{"bbox":[86,433,501,461],"type":"text","angle":0,"index":3,"text":"所有的手册页遵循一个常见的布局，为了通过简单的 ASCII 文本展示而被优化，而这种情况下可能 没有任何形式的高亮或字体控制。一般包括以下部分内容： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"c164338d-091f-4c77-aa21-b71f4e1546c0","page_size":[595,841],"block_position":"20-3"},{"bbox":[87,475,151,486],"type":"title","angle":0,"index":4,"text":"# NAME（名称）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"68bc36a3-674f-4047-bacd-be9b1425f324","page_size":[595,841],"block_position":"20-4"},{"bbox":[123,500,291,512],"type":"text","angle":0,"index":5,"text":"该命令或函数的名称，接着是一行简介。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"dbfa5ab4-eaef-4648-aaf4-3314ac29946c","page_size":[595,841],"block_position":"20-5"},{"bbox":[87,516,171,528],"type":"title","angle":0,"index":6,"text":"# SYNOPSIS（概要）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"03eb823e-8927-4af9-b30e-3472fc97c467","page_size":[595,841],"block_position":"20-6"},{"bbox":[123,541,468,568],"type":"text","angle":0,"index":7,"text":"对于命令，正式的描述它如何运行，以及需要什么样的命令行参数。对于函数，介 绍函数所需的参数，以及哪个头文件包含该函数的定义。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"541df147-2d84-4305-8a61-e2afdf89a8c5","page_size":[595,841],"block_position":"20-7"},{"bbox":[87,572,188,584],"type":"title","angle":0,"index":8,"text":"# DESCRIPTION（说明）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"5d9ad953-8ae5-43f5-b4cb-933c924ec503","page_size":[595,841],"block_position":"20-8"},{"bbox":[123,597,244,608],"type":"text","angle":0,"index":9,"text":"命令或函数功能的文本描述。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"c5516ee2-1774-40db-b664-793ffe571a0b","page_size":[595,841],"block_position":"20-9"},{"bbox":[87,613,133,624],"type":"title","angle":0,"index":10,"text":"# OPTIONS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"f63ef985-8bc4-4b03-9d7c-0aefc437bed6","page_size":[595,841],"block_position":"20-10"},{"bbox":[89,629,327,640],"type":"text","angle":0,"index":11,"text":"针对SYNOPSIS 部分中，有列举的所有可用的选项说明 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"cbe78683-582b-4ac7-9677-00e6a2f4913e","page_size":[595,841],"block_position":"20-11"},{"bbox":[88,645,146,655],"type":"title","angle":0,"index":12,"text":"# COMMANDS","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"89f8a55a-d817-4dbe-9eb4-99775fb5d967","page_size":[595,841],"block_position":"20-12"},{"bbox":[88,660,318,672],"type":"text","angle":0,"index":13,"text":"当这个程序在执行的时候，可以在此程序中下达的指令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"3e93f3e0-5ccc-4167-8db6-48b5a26f05eb","page_size":[595,841],"block_position":"20-13"},{"bbox":[88,676,117,686],"type":"title","angle":0,"index":14,"text":"# FILES","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"4ffc76ed-c882-4e58-8453-9f45e1781a39","page_size":[595,841],"block_position":"20-14"},{"bbox":[87,691,289,703],"type":"text","angle":0,"index":15,"text":"这个程序或数据所使用或参考连接到的某些文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"375efeda-ba23-4c3e-b4ed-9d5674e01022","page_size":[595,841],"block_position":"20-15"},{"bbox":[87,707,175,718],"type":"title","angle":0,"index":16,"text":"# EXAMPLES（示例）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"75911227-5519-4006-bff5-d51c336a8e99","page_size":[595,841],"block_position":"20-16"},{"bbox":[123,731,196,743],"type":"text","angle":0,"index":17,"text":"常用的一些示例。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":20,"id":"b3f31691-0a80-4cbf-b499-88de40281315","page_size":[595,841],"block_position":"20-17"},{"bbox":[87,747,171,759],"type":"title","angle":0,"index":18,"text":"# SEE ALSO（参见）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":20,"id":"9a69e561-faac-4335-a5ac-2a6968d44c26","page_size":[595,841],"block_position":"20-18"}],[{"bbox":[123,79,224,90],"type":"text","angle":0,"index":0,"text":"相关命令或函数的列表。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"2db499cd-8497-4202-974a-f6e7f71e6e46","page_size":[595,841],"block_position":"21-0"},{"bbox":[86,110,509,169],"type":"text","angle":0,"index":1,"text":"也可能存在其它部分内容，但这些部分没有得到跨手册页的标准化。常见的例子包括：OPTIONS （ 选 项 ） ，EXIT STATUS（退出状态 ） ，ENVIRONMENT（环境） ，BUGS（ 程 序漏洞）， FILES（文件），AUTHOR（作者），REPORTING BUGS（已知漏洞），HISTORY（历史）和 COPYRIGHT（版权）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"44e89df6-b7da-4872-bf54-703596779fe6","page_size":[595,841],"block_position":"21-1"},{"bbox":[86,188,506,247],"type":"text","angle":0,"index":2,"text":"在 man 中使用搜索/<你要搜索的关键字>，查找完毕后你可以使用n键切换到下一个关键字所在处， shift $+ \\Pi$ 为上一个关键字所在处。使用Space（空格键）翻页，Enter（回车键）向下滚动一行，或 者使用k,j（vim 编辑器的移动键）进行向前向后滚动一行。按下h键为显示使用帮助（因为 man 使 用 less 作为阅读器，实为 less 工具的帮助），按下 q 退出。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"61a1cd5a-4e9b-4d3e-8be9-5da35657d0fd","page_size":[595,841],"block_position":"21-2"},{"bbox":[86,259,502,303],"type":"text","angle":0,"index":3,"text":"想要获得更详细的帮助，你还可以使用info命令，不过通常使用man就足够了。如果你知道某个命 令的作用，只是想快速查看一些它的某个具体参数的作用，那么你可以使用--help参数，大部分命 令都会带有这个参数，如： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"25eebf1d-0fbc-459b-9fb0-7369e46e12b7","page_size":[595,841],"block_position":"21-3"},{"bbox":[87,317,143,327],"type":"title","angle":0,"index":4,"text":"# $ ls --help","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":21,"id":"fee2b908-b525-4114-b4a1-7fc7d78d7b34","page_size":[595,841],"block_position":"21-4"},{"bbox":[87,352,188,368],"type":"title","angle":0,"index":5,"text":"# 查看版本内核号","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":21,"id":"36d5ae89-8533-48f3-8e7c-0f072a5a3847","page_size":[595,841],"block_position":"21-5"},{"bbox":[87,402,218,414],"type":"text","angle":0,"index":6,"text":"第一个种方法使用 uname 命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"e752f010-4b88-42a4-a1a5-0439cd15a0ca","page_size":[595,841],"block_position":"21-6"},{"bbox":[86,428,502,470],"type":"text","angle":0,"index":7,"text":"常用的选项是-a，也可以使用-r。使用-a显示信息很长，包含不仅仅内核版本，所以也可以使用-r 就是只是显示内核版本号。可以再配以-s和-m选项，显示稍微完整一些的信息，包括操作系统和硬 件系统信息。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"d473769d-9eb9-4579-b36d-44e3673da034","page_size":[595,841],"block_position":"21-7"},{"bbox":[86,484,504,512],"type":"text","angle":0,"index":8,"text":"第二种方法是查看/proc下的version文件，该文件中包含内核版本信息。因为只是一个文件，所以 使用任何可以查看文件内容的方法都可以，例如使用cat命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"818cfe95-fc18-49e3-b4cf-df9b4b8cc2d3","page_size":[595,841],"block_position":"21-8"},{"bbox":[87,535,208,552],"type":"title","angle":0,"index":9,"text":"# 命令格式一般格式：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":21,"id":"4d16884b-e17c-4481-a96a-53fd748f6c24","page_size":[595,841],"block_position":"21-9"},{"bbox":[86,602,223,615],"type":"text","angle":0,"index":10,"text":"cmd [options] [arguments] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"2a1322d2-1b24-4fd5-b40a-792c07586e2d","page_size":[595,841],"block_position":"21-10"},{"bbox":[87,618,116,629],"type":"text","angle":0,"index":11,"text":"说明： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"74264364-3c56-4297-b238-a31b214532d9","page_size":[595,841],"block_position":"21-11"},{"bbox":[86,633,432,646],"type":"text","angle":0,"index":12,"text":"最简单的Shell命令只有命令名，复杂的Shell命令可以有多个选项和参数。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"b51b1f6c-6e8e-48f4-aad0-acb9c08e3459","page_size":[595,841],"block_position":"21-12"},{"bbox":[86,649,405,661],"type":"text","angle":0,"index":13,"text":"选项和参数都作为Shell命令执行时的输入，它们之间用空格分隔开。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"eee76001-d900-4020-b9c6-9a011b98e669","page_size":[595,841],"block_position":"21-13"},{"bbox":[87,665,171,677],"type":"text","angle":0,"index":14,"text":"Linux区分大小写 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"7dbd67fb-31b5-491c-91e8-ee1fc7aa39e4","page_size":[595,841],"block_position":"21-14"},{"bbox":[86,695,235,708],"type":"text","angle":0,"index":15,"text":"单字符参数前使用一个减号（-） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"6f1d16bb-cc82-40fc-8c64-e0400e62b57e","page_size":[595,841],"block_position":"21-15"},{"bbox":[86,711,238,724],"type":"text","angle":0,"index":16,"text":"单词参数前使用两个减号（--）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"61ea0a9e-cf6d-4036-998a-47732c9ec038","page_size":[595,841],"block_position":"21-16"},{"bbox":[86,727,272,739],"type":"text","angle":0,"index":17,"text":"多个单字符参数前可以只使用一个减号。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"75cce68f-ed67-40cd-aaa4-6355c8b62c1a","page_size":[595,841],"block_position":"21-17"},{"bbox":[86,742,504,756],"type":"text","angle":0,"index":18,"text":"操作对象（arguments）可以是文件也可以是目录，有些命令必须使用多个操作对象， 如 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":21,"id":"f5836829-941c-492c-8889-9c4fe760f6b3","page_size":[595,841],"block_position":"21-18"}],[{"bbox":[86,79,297,92],"type":"text","angle":0,"index":0,"text":"cp 命令必须指定源操作对象和目标操作对象。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"e2ae2ad8-ab61-4c56-b9e8-f93769f74eab","page_size":[595,841],"block_position":"22-0"},{"bbox":[86,95,347,107],"type":"text","angle":0,"index":1,"text":"并非所有命令的格式都遵从以上规则，例如 dd、find 等 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"b5fdd701-f7e7-43a8-ab2e-423798f4e446","page_size":[595,841],"block_position":"22-1"},{"bbox":[86,110,503,139],"type":"text","angle":0,"index":2,"text":"命令在正常执行结果后返回一个 0 值，如果命令出错，则返回一个非零值 (在 shell 中可用 变量 $\\$ 7$ 查看)。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"e8d76e9c-b89b-4c3c-8701-ec8fb6132eb9","page_size":[595,841],"block_position":"22-2"},{"bbox":[87,177,146,193],"type":"title","angle":0,"index":3,"text":"# 命令区别","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":22,"id":"de60be84-e2d6-43f6-af7a-0bce8e7740e5","page_size":[595,841],"block_position":"22-3"},{"bbox":[122,227,468,302],"type":"text","angle":0,"index":4,"text":"内建命令实际上是 shell 程序的一部分，其中包含的是一些比较简单的 Linux 系统 命令，这些命令是写在 bash 源码的 builtins 里面的，由 shell 程序识别并在 shell 程序内部完成运行，通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内 存中。而且解析内部命令 shell 不需要创建子进程，因此其执行速度比外部命令快。 比如：history、cd、exit 等等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"2517cd07-83f7-4db6-be3c-0dd16c14bc3b","page_size":[595,841],"block_position":"22-4"},{"bbox":[122,305,468,380],"type":"text","angle":0,"index":5,"text":"外部命令是 Linux 系统中的实用程序部分，因为实用程序的功能通常都比较强大， 所以其包含的程序量也会很大，在系统加载时并不随系统一起被加载到内存中，而 是在需要时才将其调入内存。虽然其不包含在 shell 中，但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的，通常放 在/bin，/usr/bin，/sbin，/usr/sbin 等等。比如：ls、vi 等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"de2474e0-37b8-4ea4-b5aa-9930693886d3","page_size":[595,841],"block_position":"22-5"},{"bbox":[123,384,362,396],"type":"text","angle":0,"index":6,"text":"我们可以使用 type 命令来区分命令是内建的还是外部的。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"e10d239f-9660-4822-b85d-4b5b246e8715","page_size":[595,841],"block_position":"22-6"},{"bbox":[102,409,121,419],"type":"text","angle":0,"index":7,"text":"Info ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"a82c6f35-8f60-47ac-bbe5-d99d90f14678","page_size":[595,841],"block_position":"22-7"},{"bbox":[102,424,251,437],"type":"text","angle":0,"index":8,"text":"与man功能相似的帮助，分页显示 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"d88e81fe-e08e-45af-8cae-044ab4db9f72","page_size":[595,841],"block_position":"22-8"},{"bbox":[102,440,209,452],"type":"text","angle":0,"index":9,"text":"Info [optinons] command ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"069ea806-307f-4204-8dbc-2da4593a430a","page_size":[595,841],"block_position":"22-9"},{"bbox":[101,454,504,499],"type":"text","angle":0,"index":10,"text":"help 命令是用于显示 shell 内建命令的简要帮助信息。帮助信息中显示有该命令的简要说明以及 一些参数的使用以及说明，一定记住 help 命令只能用于显示内建命令的帮助信息，不然就会得 到你刚刚得到的结果。其实外部命令基本上都有一个参数command —help。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"ae4ff398-d701-4b75-a953-869f00869cd2","page_size":[595,841],"block_position":"22-10"},{"bbox":[87,523,139,537],"type":"title","angle":0,"index":11,"text":"# Whatis","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":22,"id":"c092fc39-d40b-4e23-890a-37887b3a6840","page_size":[595,841],"block_position":"22-11"},{"bbox":[86,571,405,585],"type":"text","angle":0,"index":12,"text":"查找一个存储所有相关命令信息的数据库，根据命令名返回相关结果 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"a5e7ec6e-ed95-4903-91b2-ac953c3f8ed3","page_size":[595,841],"block_position":"22-12"},{"bbox":[88,587,338,634],"index":13,"angle":0,"type":"code","text":"```txt\n- Usage: whatis [options] command\n- options: 选项（常用-d|-v|-r|-w|-l）\n- command: 命令名 \n```","id":"dbbf14bd-55de-46c6-a7f8-35e27c9baf49","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":22,"page_size":[595,841],"block_position":"22-13"},{"bbox":[87,669,154,687],"type":"title","angle":0,"index":14,"text":"# 文件系统","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":22,"id":"160f2141-bf90-4657-997b-e41947269148","page_size":[595,841],"block_position":"22-14"},{"bbox":[86,724,504,753],"type":"text","angle":0,"index":15,"text":"一种不同是体现在目录与存储介质（磁盘，内存，DVD 等）的关系上，以往的 Windows 一直是以 存储介质为主的，主要以盘符（C 盘，D 盘...）及分区来实现文件管理，然后之下才是目录。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":22,"id":"74156f28-1435-4b61-a391-bc1725d9a4f3","page_size":[595,841],"block_position":"22-15"}],[{"bbox":[86,79,508,200],"type":"text","angle":0,"index":0,"text":"然而 UNIX/Linux 恰好相反，UNIX 是以目录为主的，Linux 也继承了这一优良特性。 Linux 是以树 形目录结构的形式来构建整个系统的，可以理解为树形目录是一个用户可操作系统的骨架。虽然本 质上无论是目录结构还是操作系统内核都是存储在磁盘上的，但从逻辑上来说 Linux 的磁盘是“挂在” （挂载在）目录上的，每一个目录不仅能使用本地磁盘分区的文件系统，也可以使用网络上的文件 系统。举例来说，可以利用网络文件系统（Network File System，NFS）服务器载入某特定目录等。 Tip：目录是文件系统中的一个概念，因为目录本身也是文件，叫做目录文件，简称目录。在图形用 户界面中，目录被表示为文件夹。主要区别在于，文件夹是一个逻辑概念，不一定映射到物理目录。 目录是文件系统对象，而文件夹是图形用户界面对象。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"9def9567-f796-4f79-a8b7-19efa77f1c2a","page_size":[595,841],"block_position":"23-0"},{"bbox":[86,204,505,247],"type":"text","angle":0,"index":1,"text":"若指代文档的容器，使用“文件夹”一词更为贴切。而“目录”一词则指代计算机上存储文档文件 和文件夹的结构化列表方式，类似于电话簿包含姓名、号码和地址的列表，但并不包含实际文档本 身。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"fae673c6-14da-42b6-af62-83091a6a6d94","page_size":[595,841],"block_position":"23-1"},{"bbox":[87,251,332,263],"type":"text","angle":0,"index":2,"text":"在 Windows 系统中，文件夹 $\\mathbf { \\bar { \\mathbf { \\tau } } } = \\mathbf { \\tau } _ { \\cdot }$ 虚拟文件夹 $^ +$ 文件系统目录。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"0d2f4aea-beae-4c33-a9f5-5eb7010cb2a2","page_size":[595,841],"block_position":"23-2"},{"bbox":[88,286,147,303],"type":"title","angle":0,"index":3,"text":"# FHS 定义","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":23,"id":"35e09c0d-f461-44ac-879a-3867d50c9784","page_size":[595,841],"block_position":"23-3"},{"bbox":[86,337,506,364],"type":"text","angle":0,"index":4,"text":"FHS 定义了两层规范，第一层是，/下面的各个目录应该要放什么文件数据，例如/etc 应该放置设置 文件，/bin 与/sbin 则应该放置可执行文件等等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"01f7e30e-1948-4ee9-a3b6-2bf38734037b","page_size":[595,841],"block_position":"23-4"},{"bbox":[86,368,506,395],"type":"text","angle":0,"index":5,"text":"第二层则是针对 /usr 及/var 这两个目录的子目录来定义。例如 /var/log 放置系统日志文件，/usr/ share 放置共享数据等等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"aa7def6b-c0e3-41d0-a91e-9a01cfe72f08","page_size":[595,841],"block_position":"23-5"},{"bbox":[88,396,204,524],"index":6,"angle":0,"type":"image","img_path":"/5a0420fefef9e200b0d0038ac63a507d8d857db101a28ff6f1c8ed2f69eb23b0.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":23,"id":"c44492fe-4de5-4135-90e3-dc1b3dd7874e","page_size":[595,841],"block_position":"23-6"},{"bbox":[87,539,294,552],"type":"text","angle":0,"index":7,"text":"将目录定义为四种交互作用的形态，如下表所示： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":23,"id":"eba0d2dd-c011-44f1-a4ec-66f9820286d1","page_size":[595,841],"block_position":"23-7"},{"bbox":[88,567,595,706],"index":8,"angle":0,"type":"table_body","img_path":"/","id":"08413316-78f1-4c35-bbcf-624201102228","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td></td><td>可分享的shareable)</td><td>不可分享</td></tr><tr><td rowspan=\"2\">不可变的(static)</td><td>/usr(软件放置处)</td><td>/etc(配置)</td></tr><tr><td>/opt(第三方软件)</td><td>/boot(开)</td></tr><tr><td rowspan=\"2\">可变动的(variable)</td><td>/var/mail(用户邮件信箱)</td><td>/var/run</td></tr><tr><td>/var/news(新闻组)</td><td>/var/log</td></tr></table>","page_idx":23,"page_size":[595,841],"block_position":"23-8"}],[{"bbox":[88,85,119,101],"type":"title","angle":0,"index":0,"text":"# 路径","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":24,"id":"2d037896-617c-42be-9217-6e816452e111","page_size":[595,841],"block_position":"24-0"},{"bbox":[86,136,505,164],"type":"text","angle":0,"index":1,"text":"如果你想进入某个具体的目录或者想获得某个目录的文件（目录本身也是文件）那就得用路径来找 到了。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"f993f19f-6b44-4165-94c8-a9453f4d1910","page_size":[595,841],"block_position":"24-1"},{"bbox":[86,167,506,227],"type":"text","angle":0,"index":2,"text":"使用cd 命令可以切换目录，在 Linux 里面使用. 表示当前目录，.. 表示上一级目录（注意，我们上 一节介绍过的，以. 开头的文件都是隐藏文件，所以这两个目录必然也是隐藏的，你可以使用 ls -a 命令查看隐藏文件）, - 表示上一次所在目录，～ 通常表示当前用户的 home 目录。使用 pwd 命令 可以获取当前所在路径（绝对路径）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"67cfa913-fb74-4605-a042-8d6f25479428","page_size":[595,841],"block_position":"24-2"},{"bbox":[87,230,129,241],"type":"title","angle":0,"index":3,"text":"# 绝对路径","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":24,"id":"00d36a40-2dd3-4c22-ac79-50fc120b3842","page_size":[595,841],"block_position":"24-3"},{"bbox":[86,245,506,273],"type":"text","angle":0,"index":4,"text":"关于绝对路径，简单地说就是以根\" / \"目录为起点的完整路径，以你所要到的目录为终点，表现形式 如： /usr/local/bin，表示根目录下的 usr 目录中的 local 目录中的 bin 目录。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"d7b56e9a-05a3-4d11-b3a3-d9155bd3aab9","page_size":[595,841],"block_position":"24-4"},{"bbox":[87,276,129,288],"type":"title","angle":0,"index":5,"text":"# 相对路径","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":24,"id":"ec971c21-3543-4915-83d5-e565c9abd56d","page_size":[595,841],"block_position":"24-5"},{"bbox":[86,291,504,383],"type":"text","angle":0,"index":6,"text":"相对路径，也就是相对于你当前的目录的路径，相对路径是以当前目录 . 为起点，以你所要到的目 录为终点，表现形式如： usr/local/bin （这里假设你当前目录为根目录）。你可能注意到，我们表 示相对路径实际并没有加上表示当前目录的那个 . ，而是直接以目录名开头，因为这个 usr 目录为/ 目录下的子目录，是可以省略这个 . 的（以后会讲到一个类似不能省略的情况）；如果是当前目录 的上一级目录，则需要使用.. ，比如你当前目录为/home/shiyanlou 目录下，根目录就应该表示为 ../../ ，表示上一级目录（home 目录）的上一级目录（/ 目录）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"3d7efbcd-3cf0-4559-817c-60c404516e8e","page_size":[595,841],"block_position":"24-6"},{"bbox":[87,405,147,422],"type":"title","angle":0,"index":7,"text":"# 文件类型","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":24,"id":"0003041e-0602-4c6c-b904-23b7ecb4851f","page_size":[595,841],"block_position":"24-7"},{"bbox":[87,471,151,485],"type":"text","angle":0,"index":8,"text":"普通文件 ( - ) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"cb234a99-d98c-4742-b5dd-322ced4557ed","page_size":[595,841],"block_position":"24-8"},{"bbox":[88,487,132,500],"type":"text","angle":0,"index":9,"text":"目录 ( d ) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"63767a93-f37b-4c9b-987f-70f681c74847","page_size":[595,841],"block_position":"24-9"},{"bbox":[88,503,149,516],"type":"text","angle":0,"index":10,"text":"符号链接 ( l ) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"f14417ce-63ea-4212-beee-fd9b811277aa","page_size":[595,841],"block_position":"24-10"},{"bbox":[88,518,172,532],"type":"text","angle":0,"index":11,"text":"字符设备文件 ( c ) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"287a0bb4-5786-4be4-aa5e-63cd73366a64","page_size":[595,841],"block_position":"24-11"},{"bbox":[88,534,163,547],"type":"text","angle":0,"index":12,"text":"块设备文件 ( b ) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"3f37c5cf-bb73-41a3-a81e-8d9b80253aea","page_size":[595,841],"block_position":"24-12"},{"bbox":[88,550,141,563],"type":"text","angle":0,"index":13,"text":"套接字 ( s ) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"c29895ab-3c22-4afc-aff5-9d845f688fd5","page_size":[595,841],"block_position":"24-13"},{"bbox":[88,565,152,579],"type":"text","angle":0,"index":14,"text":"命名管道 ( p ) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"c76e52d1-8dba-4fdf-9d15-43c1021dbb40","page_size":[595,841],"block_position":"24-14"},{"bbox":[86,612,407,625],"type":"text","angle":0,"index":15,"text":"普通文件仅仅就是字节序列，Linux 并没有对其内容规定任何的结构。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"45308546-9035-46b2-9beb-bf4914c524d3","page_size":[595,841],"block_position":"24-15"},{"bbox":[86,627,504,656],"type":"text","angle":0,"index":16,"text":"普通文件可以是程序源代码（c、 ${ \\mathsf { C } } ^ { + + }$ 、python、perl等）、可执行文件（文件编辑器、数 据库系统、出版工具、绘图工具等）、图片、声音、图像等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"945f56fd-282b-4ec9-9032-51ea284b5ed8","page_size":[595,841],"block_position":"24-16"},{"bbox":[86,659,504,687],"type":"text","angle":0,"index":17,"text":"Linux 不会区别对待这些普通文件，只有处理这些文件的应用程序才会根据文件的内容赋 予相应的含义。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"808224d4-6a44-4481-bf84-590fd48e10ee","page_size":[595,841],"block_position":"24-17"},{"bbox":[86,690,504,719],"type":"text","angle":0,"index":18,"text":"在Linux环境下，只要是可执行的文件并具有可执行属性它就能执行，不管其文件名后缀 是什么。但是对一些数据文件一般也遵循一些文件名后缀规则。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"b58ce5c0-ddc3-416c-bb69-22f487b8d5be","page_size":[595,841],"block_position":"24-18"},{"bbox":[86,721,504,750],"type":"text","angle":0,"index":19,"text":"目录文件是由一组目录项组成，目录项可以是对其他文件的指向也可以是其下的子目录指 向。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":24,"id":"fd3d2e1e-9673-4de1-836d-c69e7bff733a","page_size":[595,841],"block_position":"24-19"}],[{"bbox":[86,79,453,92],"type":"text","angle":0,"index":0,"text":"一个文件的名称是存储在他的父目录中的，而并非同文件内容本身存储在一起。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"a3a4ad77-60aa-4ebb-88b7-1b5135e9a37b","page_size":[595,841],"block_position":"25-0"},{"bbox":[86,95,506,123],"type":"text","angle":0,"index":1,"text":"硬连接文件实际上就是在某目录中创建目录项，从而使不止一个目录可以引用到同一个文 件。这种链接关系由 ln 命令行来建立。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"b0e1535c-bd65-45bc-8e6e-ec8a490a0a78","page_size":[595,841],"block_position":"25-1"},{"bbox":[86,125,506,154],"type":"text","angle":0,"index":2,"text":"硬链接并不是一种特殊类型的文件，只是因为在文件系统中允许不止一个目录项指向同一 个文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"94b3ec2b-7123-4ee5-90df-752395f5cea6","page_size":[595,841],"block_position":"25-2"},{"bbox":[86,157,506,185],"type":"text","angle":0,"index":3,"text":"用户登录后，将会进入一个系统指定的专属目录，即用户的主目录，该目录名通常为用户 的登录账号。如 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"9a3f0433-0c3c-4f45-bea5-33a657cbbee8","page_size":[595,841],"block_position":"25-3"},{"bbox":[86,188,291,201],"type":"text","angle":0,"index":4,"text":"用户 bigdata 的主目录为：/home/bigdata ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"15a76e7c-f599-464b-9b1d-a4f7b1e3ec34","page_size":[595,841],"block_position":"25-4"},{"bbox":[86,203,473,217],"type":"text","angle":0,"index":5,"text":"在创建用户时，系统管理员会给每个用户建立一个主目录，通常在 /home/ 目录下。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"63a04a01-80dc-43a7-987e-9c0310ed0046","page_size":[595,841],"block_position":"25-5"},{"bbox":[86,219,442,232],"type":"text","angle":0,"index":6,"text":"用户对自己主目录的文件拥有所有权，可以在自己的主目录下进行相关操作。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"8826cd05-f952-4b70-896e-c7f27c1d332e","page_size":[595,841],"block_position":"25-6"},{"bbox":[86,234,506,263],"type":"text","angle":0,"index":7,"text":"每个用户名对应一个用户 ID 号（一个数字）；每个用户都被分配到一个指定的组 (group) 中。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"8f46e5da-3243-48a4-a773-242650169eac","page_size":[595,841],"block_position":"25-7"},{"bbox":[86,265,449,279],"type":"text","angle":0,"index":8,"text":"默认情况下 RHEL/CentOS 在创建用户的同时会创建一个和用户同名的私有组。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"c500bdd9-f16e-42de-94ca-7750697cc173","page_size":[595,841],"block_position":"25-8"},{"bbox":[86,281,399,295],"type":"text","angle":0,"index":9,"text":"符号链接又称软链接，是指将一个文件指向另外一个文件的文件名。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"300b8082-49f9-41b1-b9c2-d3dc27970f4c","page_size":[595,841],"block_position":"25-9"},{"bbox":[86,297,289,310],"type":"text","angle":0,"index":10,"text":"这种符号链接的关系由 ln -s 命令行来建立。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"503b253e-51ab-44b6-9ced-34513b00db33","page_size":[595,841],"block_position":"25-10"},{"bbox":[86,313,122,326],"type":"text","angle":0,"index":11,"text":"硬链接 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"8458f189-bbe4-4988-8d73-406bc88a3c77","page_size":[595,841],"block_position":"25-11"},{"bbox":[86,328,321,341],"type":"text","angle":0,"index":12,"text":"链接文件和被链接文件必须位于同一个文件系统内 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"4e7adc68-f73b-4f3a-86fc-ee05a33f9a82","page_size":[595,841],"block_position":"25-12"},{"bbox":[86,343,216,356],"type":"text","angle":0,"index":13,"text":"不能建立指向目录的硬链接 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"0fb3d940-9a15-464a-bd75-b4373c688647","page_size":[595,841],"block_position":"25-13"},{"bbox":[86,359,122,372],"type":"text","angle":0,"index":14,"text":"软链接 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"bdeb59e7-2693-4677-a657-298c059add14","page_size":[595,841],"block_position":"25-14"},{"bbox":[86,375,301,388],"type":"text","angle":0,"index":15,"text":"链接文件和被链接文件可以位于不同文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"61708c8f-cf75-458a-84af-e746dba16daf","page_size":[595,841],"block_position":"25-15"},{"bbox":[86,391,216,403],"type":"text","angle":0,"index":16,"text":"可以建立指向目录的软链接 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"40a0be37-2be2-46d5-a604-be1f3f757fbe","page_size":[595,841],"block_position":"25-16"},{"bbox":[86,407,132,418],"type":"text","angle":0,"index":17,"text":"设备文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"91d0bc63-cea6-4263-b701-2df8b33cdf30","page_size":[595,841],"block_position":"25-17"},{"bbox":[86,422,506,450],"type":"text","angle":0,"index":18,"text":"设备是指计算机中的外围硬件装置，即除了CPU和内存以外的所有设备。通常，设备中含 有数据寄存器或数据缓存器、设备控制器，它们用于完成设备同CPU或内存的数据交换。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"4e8d1cdd-85d2-47d0-8ea2-125345ff3e77","page_size":[595,841],"block_position":"25-18"},{"bbox":[86,453,504,481],"type":"text","angle":0,"index":19,"text":"在 Linux 下，为了屏蔽用户对设备访问的复杂性，采用了设备文件，即可以通过象访问普 通文件一样的方式来对设备进行访问读写。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"a36fe528-8cd4-4c84-a323-e8da35ada43b","page_size":[595,841],"block_position":"25-19"},{"bbox":[86,484,506,513],"type":"text","angle":0,"index":20,"text":"设备文件用来访问硬件设备，包括硬盘、光驱、打印机等。每个硬件设备至少与一个设备 文件相关联。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"b1cbf779-8361-4ab4-b5ff-d9c0a3cdbb83","page_size":[595,841],"block_position":"25-20"},{"bbox":[86,515,379,528],"type":"text","angle":0,"index":21,"text":"设备文件分为：字符设备（如：键盘）和块设备（如：磁盘）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"4f2fb4e9-5b2f-43eb-af14-8b9c96faca46","page_size":[595,841],"block_position":"25-21"},{"bbox":[86,531,164,544],"type":"text","angle":0,"index":22,"text":"设备的使用方法 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"503ff0fb-1a1c-4319-af00-cb61bdf3ec4c","page_size":[595,841],"block_position":"25-22"},{"bbox":[86,546,227,559],"type":"text","angle":0,"index":23,"text":"用户可以用设备名来使用设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"261cf2db-a6b6-497f-84c8-3bc743dced21","page_size":[595,841],"block_position":"25-23"},{"bbox":[86,562,268,575],"type":"text","angle":0,"index":24,"text":"用户可以用访问文件的方法来使用设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"2c84ef8f-72ac-46fb-96e4-c6eab0cde1bb","page_size":[595,841],"block_position":"25-24"},{"bbox":[89,577,293,591],"type":"text","angle":0,"index":25,"text":"设备名以文件系统中的设备文件的形式存在 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"ac1c062a-1be4-4f93-af63-6a20a0dd95b2","page_size":[595,841],"block_position":"25-25"},{"bbox":[89,593,253,606],"type":"text","angle":0,"index":26,"text":"所有的设备文件存放在/dev 目录下 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"c20c92ed-8277-4482-8d23-5709d88219f6","page_size":[595,841],"block_position":"25-26"},{"bbox":[89,609,166,621],"type":"text","angle":0,"index":27,"text":"几个特殊的设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"7888e5a5-ea9c-4b2e-9645-db3594f24dae","page_size":[595,841],"block_position":"25-27"},{"bbox":[86,624,216,637],"type":"text","angle":0,"index":28,"text":"/dev/null －空设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"9c2c482c-d565-43b7-9c64-23fedab1fd38","page_size":[595,841],"block_position":"25-28"},{"bbox":[86,640,216,652],"type":"text","angle":0,"index":29,"text":"/dev/zero －零设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"72c349d5-a1e3-4fc4-a5dc-bf78e5c3e362","page_size":[595,841],"block_position":"25-29"},{"bbox":[86,655,172,668],"type":"text","angle":0,"index":30,"text":"Linux的目录结构 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"f21b6eb8-62cf-4fe6-8ed5-13e4b48d825d","page_size":[595,841],"block_position":"25-30"},{"bbox":[86,671,506,699],"type":"text","angle":0,"index":31,"text":"Linux 文件系统是一个目录树的结构，文件系统结构从一个根目录开始，根目录下可以有 任意多个文件和子目录，子目录中又可以有任意多个文件和子目录。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"ec437ed5-fe64-443e-b23d-0c498acf7936","page_size":[595,841],"block_position":"25-31"},{"bbox":[86,702,495,715],"type":"text","angle":0,"index":32,"text":"Linux 的这种文件系统结构使得一个目录和它包含的文件/子目录之间形成一种层次关系。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"9467103a-687c-4b6a-9541-0dc11fabd4b7","page_size":[595,841],"block_position":"25-32"},{"bbox":[86,718,143,730],"type":"text","angle":0,"index":33,"text":"大小写敏感 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"7a17b25a-8024-4230-8881-b9695fa9d56e","page_size":[595,841],"block_position":"25-33"},{"bbox":[86,734,244,746],"type":"text","angle":0,"index":34,"text":"以“.”开头的文件或目录是隐含的 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":25,"id":"9524da51-78cd-4f59-9a64-7da1ba5e1d34","page_size":[595,841],"block_position":"25-34"}],[{"bbox":[94,81,398,315],"index":0,"angle":0,"type":"image","img_path":"/2c593a284b9247a11712bcf3e90b3d0fd57379c15277f13b41023975c749cd34.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5109243697478991,"page_idx":26,"id":"4cdedcc5-deae-4e1e-8b31-d1d6cb0a9c6b","page_size":[595,841],"block_position":"26-0"},{"bbox":[88,348,147,366],"type":"title","angle":0,"index":1,"text":"# 文件操作","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":26,"id":"82e92c41-c08b-45cf-8ef9-54f32943e624","page_size":[595,841],"block_position":"26-1"},{"bbox":[88,412,396,731],"index":2,"angle":0,"type":"table_body","img_path":"/","id":"3598a7a7-260f-42b4-bac2-fa29dae522d7","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>cat</td><td>查看文件内容</td><td>more/less</td><td>查看文件内容</td></tr><tr><td>cd</td><td>切换工作目录</td><td>touch</td><td>改变文件的时间属性</td></tr><tr><td>chown</td><td>改变文件属权</td><td>mv</td><td>改名或移动文件</td></tr><tr><td>chmod</td><td>改变文件权限</td><td>pwd</td><td>显示当前所在的目录</td></tr><tr><td>clear</td><td>清除屏幕</td><td>rm</td><td>删除文件或目录</td></tr><tr><td>cp</td><td>拷贝文件</td><td>find</td><td>查找文件</td></tr><tr><td>In</td><td>创建文件链接</td><td>which</td><td>寻找命令</td></tr><tr><td>Is</td><td>显示目录内容</td><td>tar</td><td>文件打包</td></tr><tr><td>mkdir</td><td rowspan=\"2\">创建/删除空目录</td><td>[g]zip/unzip</td><td rowspan=\"2\">文件压缩和解压</td></tr><tr><td>rmdir</td><td>7za</td></tr><tr><td>Tree</td><td>显示目录树</td><td></td><td></td></tr></table>","page_idx":26,"page_size":[595,841],"block_position":"26-2"},{"bbox":[88,748,143,761],"type":"title","angle":0,"index":3,"text":"# 1．新建文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":26,"id":"9b9b8d15-ec28-4f6f-af91-df860f2b9422","page_size":[595,841],"block_position":"26-3"}],[{"bbox":[86,79,505,123],"type":"text","angle":0,"index":0,"text":"使用touch 命令生成新的空文件或更改现有文件的时间，关于touch 命令，其主要作用是来更改已 有文件的时间戳的（比如，最近访问时间，最近修改时间），但其在不加任何参数的情况下，只指 定一个文件名，则可以创建一个指定文件名的空白文件（不会覆盖已有同名文件） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"f0923e1c-798c-4e22-97ab-3ab183ace8d0","page_size":[595,841],"block_position":"27-0"},{"bbox":[87,126,214,138],"type":"text","angle":0,"index":1,"text":"格式：touch [参数] <文件> … ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"0d368174-2dda-4afb-ab38-274ffd3d7f50","page_size":[595,841],"block_position":"27-1"},{"bbox":[88,142,110,153],"type":"text","angle":0,"index":2,"text":"参数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"eefb71e0-cb7a-4ac8-ab69-cb152a4d40bf","page_size":[595,841],"block_position":"27-2"},{"bbox":[87,158,176,169],"type":"text","angle":0,"index":3,"text":"-a : 只更改访问时间。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"bfa7a29a-9092-4eb8-b80f-1bedacca5e5e","page_size":[595,841],"block_position":"27-3"},{"bbox":[87,173,180,184],"type":"text","angle":0,"index":4,"text":"-m : 只更改修改时间。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"ba842c96-19ae-446b-a05b-27262ca429e5","page_size":[595,841],"block_position":"27-4"},{"bbox":[87,188,388,200],"type":"text","angle":0,"index":5,"text":"-t <STAMP> : 使用[[CC]YY]MMDDhhmm[.ss]格式的时间而非当前时间。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"f4937cc4-874a-4b2a-b1c1-158374ce7205","page_size":[595,841],"block_position":"27-5"},{"bbox":[87,204,349,216],"type":"text","angle":0,"index":6,"text":"-r <参考文件或目录 $\\mathrm { > }$ : 使用指定文件的时间属性而非当前时间。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"27c81c2b-5649-4160-b0cc-6da276cfb0d8","page_size":[595,841],"block_position":"27-6"},{"bbox":[87,220,249,231],"type":"text","angle":0,"index":7,"text":"GNU/Linux 文件的3种类型的时间戳： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"718798a4-5096-4a3c-86f4-ee999446d228","page_size":[595,841],"block_position":"27-7"},{"bbox":[87,235,208,247],"type":"text","angle":0,"index":8,"text":"mtime: 最后修改时间 (ls -lt) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"bd620a21-a095-4a7b-9e1d-c47d8e73742d","page_size":[595,841],"block_position":"27-8"},{"bbox":[87,251,204,263],"type":"text","angle":0,"index":9,"text":"ctime: 状态改变时间 (ls -lc) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"ed64122e-af63-4fbe-a20c-67c41a1d4866","page_size":[595,841],"block_position":"27-9"},{"bbox":[87,267,206,279],"type":"text","angle":0,"index":10,"text":"atime: 最后访问时间 (ls -lu) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"429c4d7b-0fb9-430f-9e22-93a897b8fec6","page_size":[595,841],"block_position":"27-10"},{"bbox":[88,282,110,293],"type":"text","angle":0,"index":11,"text":"说明 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"8e631cfd-7d9b-4853-8902-e0eb8cfdae55","page_size":[595,841],"block_position":"27-11"},{"bbox":[87,297,196,309],"type":"text","angle":0,"index":12,"text":"ctime并非文件创建时间。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"4ce13baf-dae1-4360-9dad-8b435257cd8d","page_size":[595,841],"block_position":"27-12"},{"bbox":[87,313,323,325],"type":"text","angle":0,"index":13,"text":"覆盖一个文件会改变mtime、ctime和atime三类时间。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"f96a641a-5c81-48e7-8955-ff9d1aad7a02","page_size":[595,841],"block_position":"27-13"},{"bbox":[87,329,339,340],"type":"text","angle":0,"index":14,"text":"改变文件的访问权限或拥有者会改变文件的 ctime 和 atime。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"fd025c0e-bc1d-476d-a975-bfe67fd7aa06","page_size":[595,841],"block_position":"27-14"},{"bbox":[87,344,207,356],"type":"text","angle":0,"index":15,"text":"读文件会改变文件的atime。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"fd90d699-28b6-41fd-bbb1-0c8dff51e2ac","page_size":[595,841],"block_position":"27-15"},{"bbox":[87,391,139,402],"type":"title","angle":0,"index":16,"text":"# 2. 新建目录","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":27,"id":"7d3ffa85-50cd-47ed-8f72-0ced5bf5dada","page_size":[595,841],"block_position":"27-16"},{"bbox":[86,406,490,417],"type":"text","angle":0,"index":17,"text":"使用mkdir（make directories）命令可以创建一个空目录，也可同时指定创建目录的权限属性。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"56de34bd-e006-4c54-ae2a-74f70fefdf39","page_size":[595,841],"block_position":"27-17"},{"bbox":[87,423,316,434],"type":"text","angle":0,"index":18,"text":"使用-p 参数，同时创建父目录（如果不存在该父目录） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"c6ba4e0f-4971-4c11-9932-8d2843e91c4e","page_size":[595,841],"block_position":"27-18"},{"bbox":[87,438,199,449],"type":"text","angle":0,"index":19,"text":"Rmdir 删除目录（空目录） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"dd48c11d-2a86-47db-b477-f5645f7ee6ee","page_size":[595,841],"block_position":"27-19"},{"bbox":[88,454,139,465],"type":"title","angle":0,"index":20,"text":"# 1. 复制文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":27,"id":"f00cc980-4726-4234-8246-580fecf9eb7e","page_size":[595,841],"block_position":"27-20"},{"bbox":[87,469,291,481],"type":"text","angle":0,"index":21,"text":"使用 cp 命令（copy）复制一个文件到指定目录。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"ce663350-bc66-4641-b516-8c4dcf3326b0","page_size":[595,841],"block_position":"27-21"},{"bbox":[87,485,215,496],"type":"text","angle":0,"index":22,"text":"cp test father/son/grandson ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"51a8a82d-0557-4331-ab6f-f08aa3c7ee30","page_size":[595,841],"block_position":"27-22"},{"bbox":[87,500,212,512],"type":"text","angle":0,"index":23,"text":"格式：cp [参数] <源> <目标> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"bb6e777e-4c51-4bab-bdac-f399a976dbbd","page_size":[595,841],"block_position":"27-23"},{"bbox":[88,516,110,527],"type":"text","angle":0,"index":24,"text":"说明 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"e83a3bf4-f2d0-406f-9297-a279552fc00d","page_size":[595,841],"block_position":"27-24"},{"bbox":[87,531,246,543],"type":"text","angle":0,"index":25,"text":"若复制的目标文件已存在，则被覆盖。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"99d86c0a-59db-4748-a35c-fa4223623452","page_size":[595,841],"block_position":"27-25"},{"bbox":[87,547,246,558],"type":"text","angle":0,"index":26,"text":"可以将多个源文件复制到目标目录中。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"45aaa753-3ee0-4de3-970f-f9ccc92189bc","page_size":[595,841],"block_position":"27-26"},{"bbox":[87,562,331,574],"type":"text","angle":0,"index":27,"text":"可以将源目录复制为指定的目标目录（目标目录不存在）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"41382174-c0ac-4618-bc58-f845e11a17a2","page_size":[595,841],"block_position":"27-27"},{"bbox":[87,578,255,589],"type":"text","angle":0,"index":28,"text":"可以将源目录复制到指定的目标目录中。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":27,"id":"85c89dd8-7ecf-4825-b08e-d7f3ab802f4a","page_size":[595,841],"block_position":"27-28"},{"bbox":[88,607,593,752],"index":29,"angle":0,"type":"table_body","img_path":"/","id":"821e7313-0b15-4445-ace0-843a50501fd3","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>参数</td><td>说明</td></tr><tr><td>-a</td><td>等价于 -dpR</td></tr><tr><td>-R, -r</td><td>递归地复制目录及目录内的所有项目</td></tr><tr><td>-p</td><td>在复制文件过程中保留文件属性，包括属主、组、权限与时间戳</td></tr><tr><td>-d</td><td>当复制符号链接的源文件时，目标文件也将创建符号链接且指向源文件所链接的原始文件</td></tr><tr><td>-f</td><td>强制复制，不管目标是否存在</td></tr><tr><td>-i</td><td>交互式复制，覆盖文件前需要确认</td></tr><tr><td>-u</td><td>只有当源文件的状态改变时间（ctime）比目标文件更新时或目标尚不存在时才进行复制</td></tr></table>","page_idx":27,"page_size":[595,841],"block_position":"27-29"}],[{"bbox":[88,77,594,157],"index":0,"angle":0,"type":"table_body","lines_deleted":true,"text":"","id":"821e7313-0b15-4445-ace0-843a50501fd3","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"","page_idx":28,"page_size":[595,841],"block_position":"28-0"},{"bbox":[86,175,140,188],"type":"title","angle":0,"index":1,"text":"# 2. 复制目录","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":28,"id":"08813216-a53c-43dd-aa60-d4dfdf5fa993","page_size":[595,841],"block_position":"28-1"},{"bbox":[86,191,509,204],"type":"text","angle":0,"index":2,"text":"如果直接使用cp 命令复制一个目录的话，要成功复制目录需要加上 -r 或者-R 参数，表示递归复制， ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"3bfbd6e1-958b-4418-86d0-5173bda4cf77","page_size":[595,841],"block_position":"28-2"},{"bbox":[86,206,323,219],"type":"text","angle":0,"index":3,"text":"就是说有点目录及其下面的子目录层层进入复制的意思。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"70c7e325-0276-45cd-b5d5-1aef974b7b9b","page_size":[595,841],"block_position":"28-3"},{"bbox":[87,223,140,235],"type":"title","angle":0,"index":4,"text":"# 1. 删除文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":28,"id":"e9a3e418-18f4-4393-800d-55bb547e4312","page_size":[595,841],"block_position":"28-4"},{"bbox":[86,238,336,251],"type":"text","angle":0,"index":5,"text":"使用 rm（remove files or directories）命令删除一个文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"77411aa7-0788-422f-8848-35c71ef71989","page_size":[595,841],"block_position":"28-5"},{"bbox":[86,253,362,266],"type":"text","angle":0,"index":6,"text":"你如果想忽略这提示，直接删除文件，可以使用-f 参数强制删除： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"a04d531f-eb1a-4b49-8cf2-c7e38ef8d2db","page_size":[595,841],"block_position":"28-6"},{"bbox":[87,269,140,281],"type":"title","angle":0,"index":7,"text":"# 2. 删除目录","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":28,"id":"e3f5bf1a-cd46-43b1-b5b7-f1bbc7461d1a","page_size":[595,841],"block_position":"28-7"},{"bbox":[86,285,348,297],"type":"text","angle":0,"index":8,"text":"跟复制目录一样，要删除一个目录，也需要加上-r 或-R 参数： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"d15ad9f8-be73-490c-8a98-cb87147e8604","page_size":[595,841],"block_position":"28-8"},{"bbox":[87,301,140,312],"type":"title","angle":0,"index":9,"text":"# 1. 移动文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":28,"id":"1c30c7f0-090b-4f82-92aa-cfe7765af7d0","page_size":[595,841],"block_position":"28-9"},{"bbox":[86,316,499,328],"type":"text","angle":0,"index":10,"text":"使用mv（move or rename files）命令移动文件（剪切）。命令格式是mv 源目录文件 目的目录。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"aa374db7-5dec-406c-92a6-d03c1ddf2678","page_size":[595,841],"block_position":"28-10"},{"bbox":[87,332,149,344],"type":"title","angle":0,"index":11,"text":"# 2. 重命名文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":28,"id":"0ced8c45-4623-4249-99b0-312f709dccf1","page_size":[595,841],"block_position":"28-11"},{"bbox":[86,348,463,359],"type":"text","angle":0,"index":12,"text":"mv 命令除了能移动文件外，还能给文件重命名。命令格式为mv 旧的文件名新的文件名。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"95e348b6-08ac-4130-88d7-da29007faa8b","page_size":[595,841],"block_position":"28-12"},{"bbox":[87,364,148,375],"type":"title","angle":0,"index":13,"text":"# 3. 批量重命名","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":28,"id":"aa9844d5-8e8f-4398-9769-59d1ccdd3537","page_size":[595,841],"block_position":"28-13"},{"bbox":[86,379,503,407],"type":"text","angle":0,"index":14,"text":"要实现批量重命名，mv 命令就有点力不从心了，我们可以使用一个看起来更专业的命令 rename 来实现。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"77efc236-9cbd-4559-ac87-07cab46aed00","page_size":[595,841],"block_position":"28-14"},{"bbox":[87,410,110,420],"type":"text","angle":0,"index":15,"text":"Tree ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"10321f59-6c4f-4051-9763-ef6a1662cea5","page_size":[595,841],"block_position":"28-15"},{"bbox":[87,425,138,437],"type":"text","angle":0,"index":16,"text":"显示目录树 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"ea51f560-05ea-40b9-bb22-c4b7e35fa46c","page_size":[595,841],"block_position":"28-16"},{"bbox":[87,441,147,453],"type":"text","angle":0,"index":17,"text":"判断文件类型 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"60fef00e-b70a-4012-ad9a-1a496ea07272","page_size":[595,841],"block_position":"28-17"},{"bbox":[87,456,214,469],"type":"text","angle":0,"index":18,"text":"文件可以包含许多类型的数据 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"95953691-1d64-42a6-9ed4-ec4edd010f8f","page_size":[595,841],"block_position":"28-18"},{"bbox":[86,472,327,484],"type":"text","angle":0,"index":19,"text":"在打开前检查文件的类型来决定要使用的恰当命令或程序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"67e6361d-fb7b-4941-8111-c6d54438e07e","page_size":[595,841],"block_position":"28-19"},{"bbox":[87,488,110,499],"type":"text","angle":0,"index":20,"text":"命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"54ba9b97-bccd-45ce-aa3d-b56dfc12b619","page_size":[595,841],"block_position":"28-20"},{"bbox":[87,503,181,516],"type":"text","angle":0,"index":21,"text":"file [选项] <文件名>… ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"bc7a071c-3df4-447a-bea7-ff6205fdfdd0","page_size":[595,841],"block_position":"28-21"},{"bbox":[87,519,184,531],"type":"text","angle":0,"index":22,"text":"stat [选项] <文件名>… ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"65c57392-86c6-460b-b772-cc1cede33add","page_size":[595,841],"block_position":"28-22"},{"bbox":[87,534,120,546],"type":"text","angle":0,"index":23,"text":"ln命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"4354a8c9-31e9-4786-8f8d-1063ba63653c","page_size":[595,841],"block_position":"28-23"},{"bbox":[87,550,180,562],"type":"text","angle":0,"index":24,"text":"功能：创建链接文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"edaad11e-34ed-4280-8ef6-b1a95d6930fc","page_size":[595,841],"block_position":"28-24"},{"bbox":[86,565,286,578],"type":"text","angle":0,"index":25,"text":"格式：ln [参数] <被链接的文件> <链接文件名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"39472d76-d9be-4174-b6c8-837fb35557ae","page_size":[595,841],"block_position":"28-25"},{"bbox":[87,581,113,592],"type":"text","angle":0,"index":26,"text":"参数： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"ba2256ce-26e3-4d9c-bea0-50cdf581524b","page_size":[595,841],"block_position":"28-26"},{"bbox":[87,597,223,608],"type":"text","angle":0,"index":27,"text":"-s : 创建符号链接，而非硬链接。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"0ad6351c-3afe-4a35-a1c4-c45a2ad9a3cc","page_size":[595,841],"block_position":"28-27"},{"bbox":[87,613,240,624],"type":"text","angle":0,"index":28,"text":"-f : 强行创建链接，不论其是否存在。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"3f60807c-bcf5-4526-9fbf-f0f2db75e209","page_size":[595,841],"block_position":"28-28"},{"bbox":[87,628,230,640],"type":"text","angle":0,"index":29,"text":"-i : 覆盖原有文件之前先询问用户。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"088f252e-25c1-4d5b-99a8-89c07948460e","page_size":[595,841],"block_position":"28-29"},{"bbox":[87,644,113,655],"type":"text","angle":0,"index":30,"text":"举例： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"9bb7c5df-18af-41f2-ac7d-55033284f523","page_size":[595,841],"block_position":"28-30"},{"bbox":[89,659,202,670],"type":"text","angle":0,"index":31,"text":"$\\$ 1$ ln somefile hardlinkfile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"59a2ec3e-7e0e-4f9f-9f35-e258034c47f3","page_size":[595,841],"block_position":"28-31"},{"bbox":[90,675,208,686],"type":"text","angle":0,"index":32,"text":"$\\$ 1$ ln -s somefile softlinkfile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"3a4a7fbc-29de-4deb-8951-fc8ec4e9b89c","page_size":[595,841],"block_position":"28-32"},{"bbox":[90,690,207,701],"type":"text","angle":0,"index":33,"text":"$\\$ 1$ ln -s somedir softlinkfile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":28,"id":"67c96798-1bdf-4749-b4f6-ebeda4a7dd9d","page_size":[595,841],"block_position":"28-33"}],[{"bbox":[88,85,174,101],"type":"title","angle":0,"index":0,"text":"# 标准输入输出","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":29,"id":"dea01c64-6978-4680-a435-4c69c1ea053b","page_size":[595,841],"block_position":"29-0"},{"bbox":[86,151,505,195],"type":"text","angle":0,"index":1,"text":"当我们执行一个 shell 命令行时通常会自动打开三个标准文件，即标准输入文件（stdin），默认对 应终端的键盘、标准输出文件（stdout）和标准错误输出文件（stderr），后两个文件都对应被重 定向到终端的屏幕，以便我们能直接看到输出内容。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"e782db1c-2ab4-4087-92b7-971a925fd056","page_size":[595,841],"block_position":"29-1"},{"bbox":[86,198,505,226],"type":"text","angle":0,"index":2,"text":"进程将从标准输入文件中得到输入数据，将正常输出数据输出到标准输出文件，而将错误信息送到 标准错误文件中。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"ab69fb05-c673-4dcc-884e-b25c09c1936a","page_size":[595,841],"block_position":"29-2"},{"bbox":[86,229,505,258],"type":"text","angle":0,"index":3,"text":"前两个命令都是用来打印文件内容到标准输出（终端），其中 cat 为正序显示，tac 为倒序显示。可 以加上-n 参数显示行号 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"7588d110-f81b-460e-a938-d59b4128cc0c","page_size":[595,841],"block_position":"29-3"},{"bbox":[86,291,289,304],"type":"text","angle":0,"index":4,"text":"用户登录后进入的目录通常是自己的主目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"650f81d1-82e0-4457-9d85-8bd330936da0","page_size":[595,841],"block_position":"29-4"},{"bbox":[87,307,258,320],"type":"text","angle":0,"index":5,"text":"可用 pwd 命令查看用户的当前目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"329186c3-9147-4a82-bd75-a7b60e045599","page_size":[595,841],"block_position":"29-5"},{"bbox":[88,323,202,335],"type":"text","angle":0,"index":6,"text":"可用 cd 命令来切换目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"dd7121f4-d757-4a9f-b334-899fc419b02d","page_size":[595,841],"block_position":"29-6"},{"bbox":[88,338,210,351],"type":"text","angle":0,"index":7,"text":"一些特殊字符的特殊含义： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"8832c1f0-b5e2-4b52-a417-f6ddb5c76673","page_size":[595,841],"block_position":"29-7"},{"bbox":[88,354,169,366],"type":"text","angle":0,"index":8,"text":"“ .” 表示当前目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"1dd312d5-5f55-4f74-9780-909276099d2a","page_size":[595,841],"block_position":"29-8"},{"bbox":[88,370,277,382],"type":"text","angle":0,"index":9,"text":"“..” 表示当前目录的上一级目录（父目录） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"0b58155e-1759-42e3-aef9-eca59f9e4780","page_size":[595,841],"block_position":"29-9"},{"bbox":[88,385,278,397],"type":"text","angle":0,"index":10,"text":"“-” 表示用 cd 命令切换目录前所在的目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"2408b34e-b2f9-4723-a76f-e9106da084e1","page_size":[595,841],"block_position":"29-10"},{"bbox":[88,401,242,413],"type":"text","angle":0,"index":11,"text":"“~” 表示用户主目录的绝对路径名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"fd57adb7-06fa-444b-9360-8e649bc0c632","page_size":[595,841],"block_position":"29-11"},{"bbox":[88,417,132,428],"type":"text","angle":0,"index":12,"text":"绝对路径 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"1da95a34-8748-490d-a92f-1ed300ea43cf","page_size":[595,841],"block_position":"29-12"},{"bbox":[88,432,167,444],"type":"text","angle":0,"index":13,"text":"以斜线（/）开头 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"e3b9403c-6575-4d97-91b5-482e95fcc378","page_size":[595,841],"block_position":"29-13"},{"bbox":[88,448,216,460],"type":"text","angle":0,"index":14,"text":"描述到文件位置的完整说明 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"8b297bd5-bbcc-4fa7-8645-c179e77e27a1","page_size":[595,841],"block_position":"29-14"},{"bbox":[88,463,289,476],"type":"text","angle":0,"index":15,"text":"任何时候你想指定文件名的时候都可以使用 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"7a9a1eb0-dda1-4bb8-a71e-0ec08bcd6245","page_size":[595,841],"block_position":"29-15"},{"bbox":[88,479,132,491],"type":"text","angle":0,"index":16,"text":"相对路径 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"cbd814c4-82e6-42f0-bc6e-47d97907e195","page_size":[595,841],"block_position":"29-16"},{"bbox":[88,494,178,507],"type":"text","angle":0,"index":17,"text":"不以斜线（/）开头 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"adbbc54a-184b-48cf-9f10-94fbdd180a3a","page_size":[595,841],"block_position":"29-17"},{"bbox":[88,510,279,523],"type":"text","angle":0,"index":18,"text":"指定相对于你的当前工作目录而言的位置 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"ae20b0cc-558e-4cd7-83bf-292921e94a8d","page_size":[595,841],"block_position":"29-18"},{"bbox":[88,525,248,538],"type":"text","angle":0,"index":19,"text":"可以被用作指定文件名的简捷方式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"b5042254-d899-4a7f-baec-b2ea9a20ff1c","page_size":[595,841],"block_position":"29-19"},{"bbox":[88,541,205,553],"type":"text","angle":0,"index":20,"text":"常用的文本文件提取命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":29,"id":"ead04e6c-cc3f-4d00-a32a-eea887fde385","page_size":[595,841],"block_position":"29-20"},{"bbox":[88,555,594,731],"index":21,"angle":0,"type":"table_body","img_path":"/","id":"11509a10-6a4a-4429-9544-d3b4678b19a1","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>命令</td><td>功能</td></tr><tr><td>cat、tac</td><td>滚屏显示文本文件内容</td></tr><tr><td>more、less</td><td>分屏显示文本文件内容</td></tr><tr><td>head、tail</td><td>显示文本文件的前或后若干行\n(横向截取文本文件内容)</td></tr><tr><td>cut</td><td>纵向切割出文本指定的部分\n(纵向截取文本文件内容)</td></tr><tr><td>grep</td><td>在文本文件中查找指定的字符串\n(按关键字提取文本文件中匹配的行)</td></tr></table>","page_idx":29,"page_size":[595,841],"block_position":"29-21"}],[{"bbox":[88,76,594,164],"index":0,"angle":0,"type":"table_body","lines_deleted":true,"text":"","id":"11509a10-6a4a-4429-9544-d3b4678b19a1","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"","page_idx":30,"page_size":[595,841],"block_position":"30-0"},{"bbox":[87,203,113,216],"type":"title","angle":0,"index":1,"text":"# cat","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"34a5931c-e9de-4599-a853-12b633aad18e","page_size":[595,841],"block_position":"30-1"},{"bbox":[106,251,477,264],"type":"text","angle":0,"index":2,"text":"真实功能命令的核心功能其实是读取输入并原样输出（concatenate 的缩写），它既能： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"d998d7a2-48cf-4d40-8217-9d6105727d28","page_size":[595,841],"block_position":"30-2"},{"bbox":[141,267,305,279],"type":"text","angle":0,"index":3,"text":" 输入侧：可以接受文件参数或stdin ","id":"f672bea6-4ede-449b-a31e-762945701aff","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"page_size":[595,841],"block_position":"30-3"},{"bbox":[141,283,352,295],"type":"text","angle":0,"index":4,"text":" 输出侧：总是输出到 stdout（除非用 $>$ 重定向） ","id":"85839d93-52a7-465f-b1dc-60aa6b43925b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"page_size":[595,841],"block_position":"30-4"},{"bbox":[86,299,151,310],"type":"text","angle":0,"index":6,"text":"cat -n passwd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"b3f57b02-9fad-4770-b049-0973c4332b5e","page_size":[595,841],"block_position":"30-5"},{"bbox":[87,314,196,326],"type":"text","angle":0,"index":7,"text":"nl 命令，添加行号并打印 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"c0347a71-6bf5-47d9-8436-fa70a368721a","page_size":[595,841],"block_position":"30-6"},{"bbox":[88,349,333,366],"type":"title","angle":0,"index":8,"text":"# 1.使用 more 和 less 命令分页查看文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"1aa8382e-3df9-4727-8eb4-2ac9b0416ba8","page_size":[595,841],"block_position":"30-7"},{"bbox":[86,400,509,444],"type":"text","angle":0,"index":9,"text":"。其中more 命令比较简单，只能向一个方向滚动，而 less 为基于more 和vi （一个强大的编辑器， 我们有单独的课程来让你学习）开发，功能更强大。less 的使用基本和 more 一致，具体使用请查 看man 手册，这里只介绍more 命令的使用。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"8960f94a-1e20-42c1-b400-9d448b474382","page_size":[595,841],"block_position":"30-8"},{"bbox":[86,447,506,476],"type":"text","angle":0,"index":10,"text":"打开后默认只显示一屏内容，终端底部显示当前阅读的进度。可以使用 Enter 键向下滚动一行，使 用Space 键向下滚动一屏，按下h 显示帮助，q 退出。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"62db6516-d3fc-4c77-affc-96bf91587896","page_size":[595,841],"block_position":"30-9"},{"bbox":[87,479,233,491],"type":"text","angle":0,"index":11,"text":"zless file1 分页显示压缩文本文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"1cd4f6f6-ea5c-4d89-9348-f77315a23643","page_size":[595,841],"block_position":"30-10"},{"bbox":[86,529,303,546],"type":"title","angle":0,"index":12,"text":"# 2. 使用 head 和 tail 命令查看文件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":30,"id":"1c8dd361-5981-4d5f-81ba-1207a312594c","page_size":[595,841],"block_position":"30-11"},{"bbox":[86,580,509,655],"type":"text","angle":0,"index":13,"text":"这两个命令，那些性子比较急的人应该会喜欢，因为它们一个是只查看文件的头几行（默认为 10 行， 不足10 行则显示全部）和尾几行。还是拿passwd 文件举例，比如当我们想要查看最近新增加的用 户，那么我们可以查看这个 /etc/passwd 文件，不过我们前面也看到了，这个文件里面一大堆乱糟 糟的东西，看起来实在费神啊。因为系统新增加一个用户，会将用户的信息添加到 passwd 文件的 最后，那么这时候我们就可以使用tail 命令了： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"dc858aa7-3ac3-4037-a4a9-8f63bf601910","page_size":[595,841],"block_position":"30-12"},{"bbox":[87,658,168,670],"type":"text","angle":0,"index":14,"text":"$\\$ 1$ tail /etc/passwd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"9a5efbaf-0658-4a70-a4e8-730fdb84e45a","page_size":[595,841],"block_position":"30-13"},{"bbox":[87,674,318,686],"type":"text","angle":0,"index":15,"text":"甚至更直接的只看一行， 加上-n 参数，后面紧跟行数： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"6b3df0a5-6748-45bd-862b-09581e332e4c","page_size":[595,841],"block_position":"30-14"},{"bbox":[87,690,188,702],"type":"text","angle":0,"index":16,"text":"$\\$ 1$ tail -n 1 /etc/passwd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"f8aa305e-9eac-410b-a069-5a7a2358e1b2","page_size":[595,841],"block_position":"30-15"},{"bbox":[86,705,504,733],"type":"text","angle":0,"index":17,"text":"关于tail 命令，不得不提的还有它一个很牛的参数 -f，这个参数可以实现不停地读取某个文件的内 容并显示。这可以让我们动态查看日志，达到实时监视的目的。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"41bfec14-cb43-44b8-b390-fa78bf23e708","page_size":[595,841],"block_position":"30-16"},{"bbox":[88,737,119,748],"type":"text","angle":0,"index":18,"text":"下一步 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":30,"id":"9b72756e-2e5b-4cc0-9230-dc809e4c097c","page_size":[595,841],"block_position":"30-17"}],[{"bbox":[86,79,256,91],"type":"text","angle":0,"index":0,"text":"我们可以使用file 命令查看文件的类型： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"21dc35ab-b314-46d8-a900-70009b111fc1","page_size":[595,841],"block_position":"31-0"},{"bbox":[86,95,433,106],"type":"text","angle":0,"index":1,"text":"说明这是一个可执行文件，运行在 64 位平台，并使用了动态链接文件（共享库）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"84784d27-0cc0-4156-bafa-d124bd7575a7","page_size":[595,841],"block_position":"31-1"},{"bbox":[86,111,505,153],"type":"text","angle":0,"index":2,"text":"与 Windows 不同的是，如果你新建了一个 shiyanlou.txt 文件，Windows 会自动把它识别为文本 文件，而 file 命令会识别为一个空文件。这个前面我提到过，在 Linux 中文件的类型不是根据文件 后缀来判断的。当你在文件里输入内容后才会显示文件类型。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"c39fdb80-79f4-4ba0-b05a-fe4ffa66679f","page_size":[595,841],"block_position":"31-2"},{"bbox":[86,157,348,169],"type":"text","angle":0,"index":3,"text":"与搜索相关的命令常用的有 whereis，which，find 和 locate。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"ad26e841-d22d-4dcc-81f6-a0a7fa437f8b","page_size":[595,841],"block_position":"31-3"},{"bbox":[86,173,389,185],"type":"text","angle":0,"index":4,"text":"whereis 只能搜索二进制文件(-b)，man 帮助文件(-m)和源代码文件(-s)。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"1fcbde10-9577-42d6-b9da-2c2adc061769","page_size":[595,841],"block_position":"31-4"},{"bbox":[86,188,505,263],"type":"text","angle":0,"index":5,"text":"使用 locate 命令查找文件也不会遍历硬盘，它通过查询 /var/lib/mlocate/mlocate.db 数据库来检 索信息。不过这个数据库也不是实时更新的，系统会使用定时任务每天自动执行 updatedb 命令来 更新数据库。所以有时候你刚添加的文件，它可能会找不到，需要手动执行一次 updatedb 命令 （在我们的环境中必须先执行一次该命令）注意，它不只是在 /etc 目录下查找，还会自动递归子目 录进行查找。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"09471254-705a-483f-ad85-30d74c59b5cf","page_size":[595,841],"block_position":"31-5"},{"bbox":[87,286,147,301],"type":"title","angle":0,"index":6,"text":"# 3. which","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":31,"id":"965edff4-4b82-4a7c-a040-08c3ee7f807d","page_size":[595,841],"block_position":"31-6"},{"bbox":[86,336,505,380],"type":"text","angle":0,"index":7,"text":"which 本身是 Shell 内建的一个命令，我们通常使用 which 来确定是否安装了某个指定的程序，因 为它只从 PATH 环境变量指定的路径中去搜索命令并且返回第一个搜索到的结果。也就是说，我们 可以看到某个系统命令是否存在以及执行的到底是哪一个地方的命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"215b2788-f270-49e9-bd66-5f557e4a1b78","page_size":[595,841],"block_position":"31-7"},{"bbox":[86,403,193,419],"type":"title","angle":0,"index":8,"text":"# 4. find 查找命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":31,"id":"afd06d45-a23c-49d7-9e48-71d9e253be6a","page_size":[595,841],"block_position":"31-8"},{"bbox":[86,454,504,482],"type":"text","angle":0,"index":9,"text":"find 应该是这几个命令中最强大的了，它不但可以通过文件类型、文件名进行查找而且可以根据文 件的属性（如文件的时间戳，文件的权限等）进行搜索 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"00d58f06-4659-46ad-abb1-6d1b204c0d5c","page_size":[595,841],"block_position":"31-9"},{"bbox":[86,486,151,497],"type":"text","angle":0,"index":10,"text":"find命令语法： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"1d4f187d-5d33-447a-a567-5fe8803e7383","page_size":[595,841],"block_position":"31-10"},{"bbox":[86,501,208,513],"type":"text","angle":0,"index":11,"text":"find [path][option] [action] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"b0e48262-f19d-4851-894f-6ca5fa73bbdf","page_size":[595,841],"block_position":"31-11"},{"bbox":[86,517,395,528],"type":"text","angle":0,"index":12,"text":"find [<起始目录> ...] [<选项表达式>] [<条件匹配表达式>] [<动作表达式>] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"11874838-b7d4-4a9f-bb96-e712f77e83bd","page_size":[595,841],"block_position":"31-12"},{"bbox":[86,532,326,544],"type":"text","angle":0,"index":13,"text":"<起始目录>：对每个指定的 <起始目录> 递归搜索目录树 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"06badb9d-f31a-47d7-9ca6-e7a819dcbe51","page_size":[595,841],"block_position":"31-13"},{"bbox":[86,548,224,560],"type":"text","angle":0,"index":14,"text":"省略<起始目录>时表示当前目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"60849ab8-7230-41d6-9cbe-c90d33dfc534","page_size":[595,841],"block_position":"31-14"},{"bbox":[86,563,246,575],"type":"text","angle":0,"index":15,"text":"<选项表达式>：控制 find 命令的行为 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"82cc3623-7486-4d2b-81fe-daf915b1a5dd","page_size":[595,841],"block_position":"31-15"},{"bbox":[86,579,271,591],"type":"text","angle":0,"index":16,"text":"<条件匹配表达式>：根据匹配条件查找文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"de7ccf68-398d-4306-a08f-6a09c79b0451","page_size":[595,841],"block_position":"31-16"},{"bbox":[86,594,395,607],"type":"text","angle":0,"index":17,"text":"<动作表达式>：指定对查找结果的操作，默认为显示在标准输出（-print） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"977815d0-5626-4e59-b820-d03da7ed19ea","page_size":[595,841],"block_position":"31-17"},{"bbox":[86,610,381,622],"type":"text","angle":0,"index":18,"text":"不带任何参数的 find 命令将在屏幕上递归显示当前目录下的文件列表。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"b138f42d-b14b-446d-a58e-0566d4f9608a","page_size":[595,841],"block_position":"31-18"},{"bbox":[93,644,116,657],"type":"title","angle":0,"index":19,"text":"# 选项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":31,"id":"29455a98-843e-4e6f-89fd-2af293c3553f","page_size":[595,841],"block_position":"31-19"},{"bbox":[334,645,355,657],"type":"title","angle":0,"index":20,"text":"# 说明","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":31,"id":"44e94934-27d9-4e1d-ade0-98586b3cf9de","page_size":[595,841],"block_position":"31-20"},{"bbox":[334,679,535,692],"type":"text","angle":0,"index":22,"text":"如果遇到符号链接文件，就跟踪链接所指的文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":31,"id":"a8a1dced-0b4b-4f80-93a6-14200dfedcc1","page_size":[595,841],"block_position":"31-21"}],[{"bbox":[88,77,595,327],"index":0,"angle":0,"type":"table_body","img_path":"/","id":"56500ad5-1921-4f6f-8e4a-c185f7275742","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>-regexotype TYPE</td><td>指定 -regex 和 -iregex 使用的正则表达式类型，默认为emacs</td></tr><tr><td>-depth/-d</td><td>查找目录自身之前先处理目录中的文件（即深度优先）</td></tr><tr><td>-mount/-xdev</td><td>查找文件时不跨越文件系统</td></tr><tr><td>-maxdepth LEVELS</td><td>设置最大的查找深度</td></tr><tr><td>--help</td><td>显示 find 命令帮助信息</td></tr><tr><td>--version</td><td>显示 find 的版本</td></tr></table>","page_idx":32,"page_size":[595,841],"block_position":"32-0"},{"bbox":[88,331,128,343],"index":1,"angle":0,"type":"table_caption","text":"用户和组","id":"f5db078c-ea2f-49f8-9c7a-ad632a950095","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":32,"page_size":[595,841],"block_position":"32-1"},{"bbox":[88,344,595,549],"index":2,"angle":0,"type":"table_body","img_path":"/","id":"08d41a42-791c-4c57-8340-bfd596bd202e","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>条件</td><td>说明</td></tr><tr><td>-uid N</td><td>用户ID为N的所有文件</td></tr><tr><td>-gid N</td><td>组ID为N的所有文件</td></tr><tr><td>-user USERNAME</td><td>用户名为 USERNAME的所有文件</td></tr><tr><td>-group GROUPNAME</td><td>组名为GROUPNAME的所有文件</td></tr><tr><td>-nouser</td><td>文件属于不在 /etc/passwd 文件中的用户</td></tr><tr><td>-nogroup</td><td>文件属于不在 /etc/group 文件中的组</td></tr></table>","page_idx":32,"page_size":[595,841],"block_position":"32-2"},{"bbox":[87,567,174,579],"type":"text","angle":0,"index":3,"text":"N可以使用 $\\mathsf { N } , + \\mathsf { N } _ { i }$ ,-N ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":32,"id":"66e8007c-33af-4e0e-affe-40870db337f6","page_size":[595,841],"block_position":"32-3"},{"bbox":[88,583,128,594],"index":4,"angle":0,"type":"table_caption","text":"文件权限","id":"911113dd-a243-4041-b4cd-4660faa042ab","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":32,"page_size":[595,841],"block_position":"32-4"},{"bbox":[88,596,595,733],"index":5,"angle":0,"type":"table_body","img_path":"/","id":"1658c856-2abf-4c1d-b8f6-c0178fc5d141","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>条件</td><td>说明</td></tr><tr><td>-perm MODE</td><td>精确匹配权限模式为 MODE 的文件</td></tr><tr><td>-perm -MODE</td><td>匹配权限模式至少为 MODE 的文件\n(用户、组和其他人这三种权限必须都匹配)</td></tr><tr><td>-perm /MODE 或\n-perm +MODE</td><td>匹配权限模式至少为 MODE 的文件\n(用户、组和其他人这三种权限中有一种匹配即可)</td></tr></table>","page_idx":32,"page_size":[595,841],"block_position":"32-5"}],[{"bbox":[88,79,140,90],"type":"header","angle":0,"index":-99999,"text":"-name 选项 ","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":33,"is_discarded":true,"id":"b0d3e6ef-46d5-403a-9922-8b1d6475fcb5","page_size":[595,841],"block_position":"33-0"},{"bbox":[105,111,224,122],"index":1,"angle":0,"type":"table_caption","text":"2. 与时间相关的命令参数：","id":"f28c8949-a50f-4a6c-9cc3-f6de68456ab9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"page_size":[595,841],"block_position":"33-1"},{"bbox":[88,123,411,227],"index":2,"angle":0,"type":"table_body","img_path":"/","id":"914421da-352a-42da-93b3-985b4f77a495","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>参数</td><td>说明</td></tr><tr><td>-atime</td><td>最后访问时间</td></tr><tr><td>-ctime</td><td>最后修改文件内容的时间</td></tr><tr><td>-mtime</td><td>最后修改文件属性的时间</td></tr></table>","page_idx":33,"page_size":[595,841],"block_position":"33-2"},{"bbox":[105,228,167,239],"type":"title","angle":0,"index":3,"text":"# 3. -size 选项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":33,"id":"de42dc54-e05e-4d81-b4a7-922e7be941cc","page_size":[595,841],"block_position":"33-3"},{"bbox":[87,243,302,255],"type":"text","angle":0,"index":4,"text":"如果要根据文件的大小进行搜索，则使用-size选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"3ffa4fd5-ab27-4804-9ff5-cf6b833de943","page_size":[595,841],"block_position":"33-4"},{"bbox":[105,260,196,270],"type":"title","angle":0,"index":5,"text":"# 4. -exec 和-ok 选项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":33,"id":"1ea80eaa-c479-469c-8fa7-f78b6f2c8c3d","page_size":[595,841],"block_position":"33-5"},{"bbox":[86,275,407,286],"type":"text","angle":0,"index":6,"text":"这两个选项可以对搜索到的文件执行命令，例如重命名、删除、移动等操作。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"99f8d5d1-c6e6-4928-8a05-3c77cdd2ec39","page_size":[595,841],"block_position":"33-6"},{"bbox":[86,290,426,301],"type":"text","angle":0,"index":7,"text":"注意，对于应用与集合的命令，是不适合使用这两个选项的，应该使用管道通信。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"1578656b-c600-426c-a37a-45b012fc1885","page_size":[595,841],"block_position":"33-7"},{"bbox":[86,306,504,349],"type":"text","angle":0,"index":8,"text":"-exec 选项会对每个文件单独执行命令。如果你使用 wc -l 计算每个文件的行数，你会得到每个文件 的行数结果，而不是这些文件行数的总和。并且，执行 wc -l 会多次调用 wc 命令，每次处理一个文 件，这对于计算所有文件的行数总和并不高效。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"2302448b-6b29-4030-8fc1-7132db3f278b","page_size":[595,841],"block_position":"33-8"},{"bbox":[87,353,224,364],"type":"text","angle":0,"index":9,"text":"要使用kill 命令来杀死这个进程。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"4e631dbb-11f5-4ac1-ba77-95c05ee1ae55","page_size":[595,841],"block_position":"33-9"},{"bbox":[87,368,264,380],"type":"text","angle":0,"index":10,"text":"今天就教你怎么召唤一双眼睛出来监督你： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"96623610-44d0-4f6b-803b-805f3f0483e8","page_size":[595,841],"block_position":"33-10"},{"bbox":[88,385,123,396],"type":"text","angle":0,"index":11,"text":"$\\$ 1$ xeyes ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"d8b10bc5-9d93-49b8-8fa5-e263a436bf2c","page_size":[595,841],"block_position":"33-11"},{"bbox":[87,400,255,411],"type":"text","angle":0,"index":12,"text":"你可以使用如下命令将它放到后台运行： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"99f69241-cd10-4f6d-8cff-094065176a9c","page_size":[595,841],"block_position":"33-12"},{"bbox":[88,416,164,427],"type":"text","angle":0,"index":13,"text":"$\\$ 1$ nohup xeyes & ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"126a3cf0-92bb-4dc1-a61c-d5c8ab5b58bf","page_size":[595,841],"block_position":"33-13"},{"bbox":[87,451,123,465],"type":"title","angle":0,"index":14,"text":"# 6、ls","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":33,"id":"a2974bc4-9e6a-45dd-a8a5-b18d7b246ad2","page_size":[595,841],"block_position":"33-14"},{"bbox":[87,502,117,513],"type":"text","angle":0,"index":15,"text":"ls 命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"e1896fcb-a479-4644-9afc-ebe4b0990983","page_size":[595,841],"block_position":"33-15"},{"bbox":[87,517,198,529],"type":"text","angle":0,"index":16,"text":"ls [选项] [目录或是文件] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"d3b1c662-32fa-493a-a116-5421cb2d817c","page_size":[595,841],"block_position":"33-16"},{"bbox":[86,533,452,544],"type":"text","angle":0,"index":17,"text":"ls －l 按完整格式显示目录及文件信息（权限、所有者、文件大小、修改时间、文件名） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"dd1f14c8-95a1-43bd-a817-4a28dc55df68","page_size":[595,841],"block_position":"33-17"},{"bbox":[97,549,187,560],"type":"text","angle":0,"index":18,"text":"r－读w－写 x－执行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"fcfb24db-7f75-493b-b550-576860f274ed","page_size":[595,841],"block_position":"33-18"},{"bbox":[98,565,190,576],"type":"text","angle":0,"index":19,"text":"owner/group/others ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"67ec3563-eb67-49d6-9b5c-6003419a7cc3","page_size":[595,841],"block_position":"33-19"},{"bbox":[88,581,114,590],"type":"text","angle":0,"index":20,"text":"ls －a ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"1b8a8ee4-c9ff-4044-aefe-f9e1e72827a3","page_size":[595,841],"block_position":"33-20"},{"bbox":[88,596,111,606],"type":"text","angle":0,"index":21,"text":"ls －i ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"a15b8ea9-89b2-4935-ad11-41e7c1427b74","page_size":[595,841],"block_position":"33-21"},{"bbox":[88,612,117,621],"type":"text","angle":0,"index":22,"text":"ls －al ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":33,"id":"daa6ddee-8549-4b7c-8312-90af5d36afe4","page_size":[595,841],"block_position":"33-22"},{"bbox":[88,640,593,743],"index":23,"angle":0,"type":"table_body","img_path":"/","id":"12fe9bf6-6b9f-4af2-95ca-36f0a870408d","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>选项</td><td>说明</td></tr><tr><td>-a</td><td>列出目录下的所有文件，包括以.开头的隐含文件。</td></tr><tr><td>-l</td><td>列出文件的详细信息，通常称为“长格式”。</td></tr><tr><td>-d</td><td>输入参数是目录时，只显示该目录本身。</td></tr><tr><td>-A</td><td>显示除“.”和“..”外的所有文件。</td></tr><tr><td>-R</td><td>递归地列出所有子目录下的文件。</td></tr><tr><td>-h</td><td>以人类易读的单位显示文件大小。</td></tr><tr><td>-S</td><td>以文件大小排序输出。</td></tr><tr><td>-t</td><td>以时间排序输出。</td></tr></table>","page_idx":33,"page_size":[595,841],"block_position":"33-23"}],[{"bbox":[88,77,595,281],"index":0,"angle":0,"type":"table_body","lines_deleted":true,"text":"","id":"12fe9bf6-6b9f-4af2-95ca-36f0a870408d","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"","page_idx":34,"page_size":[595,841],"block_position":"34-0"},{"bbox":[87,320,189,338],"type":"title","angle":0,"index":1,"text":"# 文件打包与压缩","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":34,"id":"65ac7a8a-1b88-4e1f-bbc1-747669887ace","page_size":[595,841],"block_position":"34-1"},{"bbox":[86,371,358,383],"type":"text","angle":0,"index":2,"text":"Linux tar（英文全拼：tape archive ）命令用于备份文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"eed12cf5-0be9-4f58-ae66-79a3c041bf19","page_size":[595,841],"block_position":"34-2"},{"bbox":[86,386,401,398],"type":"text","angle":0,"index":3,"text":"tar 是 Linux 和 Unix 系统中用于归档文件和目录的强大命令行工具。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"98b33f68-35a7-44ca-870a-c476a2c8b0ae","page_size":[595,841],"block_position":"34-3"},{"bbox":[86,402,504,428],"type":"text","angle":0,"index":4,"text":"tar 名字来自 \"tape archive\"（磁带归档），最初用于将文件打包到磁带设备中，但现在广 泛用于在文件系统中打包和压缩文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"750ea5a3-a0ff-4640-a264-be66a3824d54","page_size":[595,841],"block_position":"34-4"},{"bbox":[86,433,504,460],"type":"text","angle":0,"index":5,"text":"tar 通常用于将多个文件和目录打包成一个归档文件，称为 \"tarball\"（通常带有 .tar 扩展 名）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"7c773bee-0074-4473-bf83-e30d145c8a22","page_size":[595,841],"block_position":"34-5"},{"bbox":[86,465,504,491],"type":"text","angle":0,"index":6,"text":"tar 本身不压缩文件，但可以与压缩工具（如 gzip 或 bzip2）结合使用，创建压缩的归档 文件（如 .tar.gz 或 .tar.bz2）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":34,"id":"61543e74-816c-47ca-bab7-99e39a7178ff","page_size":[595,841],"block_position":"34-6"},{"bbox":[88,495,594,756],"index":7,"angle":0,"type":"table_body","img_path":"/","id":"3824aef3-75ac-4219-b446-577ce1bf2cf1","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>命令</td><td>功能</td></tr><tr><td>xz</td><td>使用 LZMA 算法的高性能压缩/解压工具</td></tr><tr><td>gzip</td><td>流行的 GNU gzip 数据压缩/解压程序</td></tr><tr><td>bzip2</td><td>免费的,无专利的高性能数据压缩工具</td></tr><tr><td>zip/unzip</td><td>与 WinZIP 兼容的压缩/解压工具</td></tr><tr><td>rar</td><td>与 WinRAR 兼容的压缩/解压工具</td></tr><tr><td>7za</td><td>使用 LZMA 算法的高性能压缩/解压工具</td></tr><tr><td>tar</td><td>文件打包、归档工具</td></tr></table>","page_idx":34,"page_size":[595,841],"block_position":"34-7"}],[{"bbox":[88,75,595,144],"index":0,"angle":0,"type":"table_body","lines_deleted":true,"text":"","id":"3824aef3-75ac-4219-b446-577ce1bf2cf1","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"","page_idx":35,"page_size":[595,841],"block_position":"35-0"},{"bbox":[87,173,411,479],"index":1,"angle":0,"type":"table_body","img_path":"/","id":"b3239829-7807-4d8b-85d4-54b2b68e77db","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>文件后缀名</td><td>说明</td></tr><tr><td>*.zip</td><td>zip 程序打包压缩的文件</td></tr><tr><td>*.rar</td><td>rar 程序压缩的文件</td></tr><tr><td>*.7z</td><td>7zip 程序压缩的文件</td></tr><tr><td>*.tar</td><td>tar 程序打包，未压缩的文件</td></tr><tr><td>*.gz</td><td>gzip 程序（GNU zip）压缩的文件</td></tr><tr><td>*.xz</td><td>xz 程序压缩的文件</td></tr><tr><td>*.bz2</td><td>bzip2 程序压缩的文件</td></tr><tr><td>*.tar.gz(.tgz)</td><td>tar 打包，gzip 程序压缩的文件</td></tr><tr><td>*.tar.xz</td><td>tar 打包，xz 程序压缩的文件</td></tr><tr><td>*.tar.bz2(.tbz)</td><td>tar 打包，bzip2 程序压缩的文件</td></tr><tr><td>*.tar.7z</td><td>tar 打包，7z 程序压缩的文件</td></tr></table>","page_idx":35,"page_size":[595,841],"block_position":"35-1"},{"bbox":[87,496,240,508],"type":"text","angle":0,"index":2,"text":"tar [options] -f archive.tar [files...] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"id":"5050becb-899e-4e59-9c29-a05025f6df06","page_size":[595,841],"block_position":"35-2"},{"bbox":[105,511,280,523],"type":"text","angle":0,"index":3,"text":"-f archive.tar：指定归档文件的名称。 ","id":"47649013-79fe-48d0-86f4-6f194c946476","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-3"},{"bbox":[105,527,257,539],"type":"text","angle":0,"index":4,"text":"[files...]：要打包的文件和目录。 ","id":"edc53106-6845-4e1f-a188-74297d3b9ca3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-4"},{"bbox":[87,542,186,554],"type":"text","angle":0,"index":6,"text":"基本功能：打包和解包 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"id":"5dcfd308-3a6c-4d36-a5e2-0957bf60148e","page_size":[595,841],"block_position":"35-5"},{"bbox":[87,558,228,571],"type":"text","angle":0,"index":7,"text":"格式： tar [选项] 文件或者目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"id":"152c7667-c96e-4c56-b18f-3652c62d3c55","page_size":[595,841],"block_position":"35-6"},{"bbox":[88,573,129,585],"type":"text","angle":0,"index":8,"text":"常用选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"id":"d458fb56-cfbf-476e-a413-e1a375fa7399","page_size":[595,841],"block_position":"35-7"},{"bbox":[87,589,188,601],"type":"text","angle":0,"index":9,"text":"-c：创建新的打包文件。 ","id":"3a55876a-b46f-4e4b-b2d2-38be74555289","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-8"},{"bbox":[87,605,309,617],"type":"text","angle":0,"index":10,"text":"-t：列出打包文件的内容，查看已经打包了哪些文件。 ","id":"19e3db72-a7e2-48c5-93d6-9486854e3ef0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-9"},{"bbox":[88,620,207,632],"type":"text","angle":0,"index":11,"text":"-x：从打包文件中释放文件。 ","id":"87f989e8-179a-4ea2-a1ea-43294fd5f29d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-10"},{"bbox":[87,636,176,648],"type":"text","angle":0,"index":13,"text":"-f：指定打包文件名。 ","id":"2bd6fe89-b22a-4e38-a0c0-80dd149956c5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-11"},{"bbox":[87,651,233,663],"type":"text","angle":0,"index":14,"text":"-v：详细列出 tar 处理的文件信息。 ","id":"009e740b-93a0-4dec-bc95-43b5c9fb8181","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-12"},{"bbox":[87,667,242,680],"type":"text","angle":0,"index":15,"text":"-z：用 gzip 来压缩/解压缩打包文件。 ","id":"7be04e7c-f9d8-450c-9784-223c58ecefc6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-13"},{"bbox":[87,683,245,695],"type":"text","angle":0,"index":16,"text":"-j：用 bzip2 来压缩/解压缩打包文件。 ","id":"9ac2fd42-c728-4e1f-aaff-5b4ef4e1cc92","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-14"},{"bbox":[87,698,231,710],"type":"text","angle":0,"index":17,"text":"-J：用 xz 来压缩/解压缩打包文件。 ","id":"4733fe2d-bf92-42d0-a72a-c6d75a33663a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"page_size":[595,841],"block_position":"35-15"},{"bbox":[86,745,505,758],"type":"text","angle":0,"index":19,"text":"命令中，-r 参数表示递归打包包含子目录的全部内容，-q 参数表示为安静模式，即不向屏幕输出信 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":35,"id":"8b56c4ba-dffd-4069-9295-c753ac71b699","page_size":[595,841],"block_position":"35-16"}],[{"bbox":[86,79,506,107],"type":"text","angle":0,"index":0,"text":"息，-o，表示输出文件，需在其后紧跟打包输出文件名。后面使用 du 命令查看打包后文件的大小 （后面会具体说明该命令）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"0787e87d-ce94-4b9b-bad8-22090c5f68e1","page_size":[595,841],"block_position":"36-0"},{"bbox":[104,111,355,122],"type":"text","angle":0,"index":1,"text":". 设置压缩级别为 9 和 1（9 最大，1 最小），重新打包： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"2856608b-4c9f-4a0c-a829-f14dcb0171f5","page_size":[595,841],"block_position":"36-1"},{"bbox":[86,126,505,154],"type":"text","angle":0,"index":2,"text":"这里添加了一个参数用于设置压缩级别 -[1-9]，1 表示最快压缩但体积大，9 表示体积最小但耗时最 久。最后那个 -x 是为了排除我们上一次创建的 zip 文件，否则又会被打包进这一次的压缩文件中， ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"41ffee30-2253-47b9-91c8-cb735ebde9cc","page_size":[595,841],"block_position":"36-2"},{"bbox":[86,157,285,169],"type":"text","angle":0,"index":3,"text":"注意：这里只能使用绝对路径，否则不起作用。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"892789d8-abe9-47b4-841b-bb19e081d400","page_size":[595,841],"block_position":"36-3"},{"bbox":[86,173,232,185],"type":"text","angle":0,"index":4,"text":"使用-e 参数可以创建加密压缩包： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"812aa5f6-a515-4cbe-be3e-70405a00dc74","page_size":[595,841],"block_position":"36-4"},{"bbox":[86,188,508,280],"type":"text","angle":0,"index":5,"text":"关于zip 命令，因为 Windows 系统与Linux/Unix 在文本文件格式上的一些兼容问题，比 如换行符（为不可见字符），在 Windows 为 ${ \\mathsf { C R } } { + } \\mathsf { L F }$ （Carriage-Return+Line-Feed：回车 加换行），而在 Linux/Unix 上为 LF（换行），所以如果在不加处理的情况下，在 Linux 上编辑的文本，在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题，那么你还需要对命令做一些修 改： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"399a680b-ed6e-4656-b9b7-fa6c927cf41c","page_size":[595,841],"block_position":"36-5"},{"bbox":[86,281,343,295],"type":"text","angle":0,"index":6,"text":"$\\$ 1$ zip -r -l -o shiyanlou.zip /home/shiyanlou/Desktop ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"f1083ba8-0762-40c7-8c4c-7dac664aee8b","page_size":[595,841],"block_position":"36-6"},{"bbox":[86,297,336,310],"type":"text","angle":0,"index":7,"text":"需要加上 -l 参数将 LF 转换为 ${ \\mathsf { C R } } { + } \\mathsf { L F }$ 来达到以上目的。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"088f51cb-c26f-4191-961f-99f734474f56","page_size":[595,841],"block_position":"36-7"},{"bbox":[86,312,317,326],"type":"text","angle":0,"index":8,"text":"使用 -O（英文字母，大写 o）参数指定编码类型： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"d7d7b61b-fd2e-48a2-a8c4-86af13069465","page_size":[595,841],"block_position":"36-8"},{"bbox":[86,328,157,341],"type":"text","angle":0,"index":9,"text":"unzip -O GBK ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"d20c8314-2db4-4ad6-8487-1803bce796ac","page_size":[595,841],"block_position":"36-9"},{"bbox":[86,343,248,357],"type":"text","angle":0,"index":10,"text":"将 shiyanlou.zip 解压到当前目录： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"e7384ed8-809d-4432-b073-39b4244aaee6","page_size":[595,841],"block_position":"36-10"},{"bbox":[86,359,193,373],"type":"text","angle":0,"index":11,"text":"$\\$ 1$ unzip shiyanlou.zip ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"abdf1f05-2995-4709-9520-7e9f1dd01006","page_size":[595,841],"block_position":"36-11"},{"bbox":[86,390,273,403],"type":"text","angle":0,"index":12,"text":"使用安静模式，将文件解压到指定目录： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"2a86c3c0-4f1b-4d66-89ce-6406fb58c56f","page_size":[595,841],"block_position":"36-12"},{"bbox":[86,407,254,419],"type":"text","angle":0,"index":13,"text":"$\\$ 1$ unzip -q shiyanlou.zip -d ziptest ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"87f4fb0e-0b33-4cf1-bdd6-2f834ac2ea28","page_size":[595,841],"block_position":"36-13"},{"bbox":[86,437,505,465],"type":"text","angle":0,"index":14,"text":"上述指定目录不存在，将会自动创建。如果你不想解压只想查看压缩包的内容你可以使用- l 参数： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"55a375f4-157d-433a-9699-07c720ce60ec","page_size":[595,841],"block_position":"36-14"},{"bbox":[86,469,202,481],"type":"text","angle":0,"index":15,"text":"$\\$ 1$ unzip -l shiyanlou.zip ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"ef4d83a3-2761-45d1-a4da-fecd76bd6518","page_size":[595,841],"block_position":"36-15"},{"bbox":[86,484,505,544],"type":"text","angle":0,"index":16,"text":"在 Linux 上面更常用的是 tar 工具，tar 原本只是一个打包工具，只是同时还是实现了对 7z、gzip、xz、bzip2 等工具的支持，这些压缩工具本身只能实现对文件或目录（单独压 缩目录中的文件）的压缩，没有实现对文件的打包压缩，所以我们也无需再单独去学习其 他几个工具，tar 的解压和压缩都是同一个命令，只需参数不同，使用比较方便。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"a656dd97-dc95-4598-9344-cd5c4ac4fcb6","page_size":[595,841],"block_position":"36-16"},{"bbox":[86,546,500,575],"type":"text","angle":0,"index":17,"text":"下面先掌握tar 命令一些基本的使用方式，即不进行压缩只是进行打包（创建归档文件） 和解包的操作。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"c0d121cd-f248-4126-8bab-d45e7dd8a6d9","page_size":[595,841],"block_position":"36-17"},{"bbox":[86,577,273,591],"type":"text","angle":0,"index":18,"text":"行打包（创建归档文件）和解包的操作。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"b484cdbb-2c36-4519-97e2-944b2376b56d","page_size":[595,841],"block_position":"36-18"},{"bbox":[104,593,202,606],"type":"text","angle":0,"index":19,"text":"创建一个 tar 包： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"0bd070ee-9dce-46ff-b01e-7c42a1b874fd","page_size":[595,841],"block_position":"36-19"},{"bbox":[86,608,198,622],"type":"text","angle":0,"index":20,"text":"$\\$ 1$ cd /home/shiyanlou ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"f029a8ca-ef04-4ba1-914b-d09f018b39d6","page_size":[595,841],"block_position":"36-20"},{"bbox":[86,624,339,638],"type":"text","angle":0,"index":21,"text":"$\\$ 1$ tar -P -cf shiyanlou.tar /home/shiyanlou/Desktop ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"8d591c6f-7d43-43ef-b35a-7033918db029","page_size":[595,841],"block_position":"36-21"},{"bbox":[86,640,509,684],"type":"text","angle":0,"index":22,"text":"上面命令中，-P 保留绝对路径符，-c 表示创建一个 tar 包文件，-f 用于指定创建的文件名， 注意文件名必须紧跟在 -f 参数之后，比如不能写成 tar -fc shiyanlou.tar，可以写成 tar -f shiyanlou.tar -c ~。你还可以加上-v 参数以可视的的方式输出打包的文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"2ce2e659-af12-4811-962e-1c8e32faa54b","page_size":[595,841],"block_position":"36-22"},{"bbox":[103,687,418,700],"type":"text","angle":0,"index":23,"text":" 解包一个文件（ $- \\mathsf { X }$ 参数）到指定路径的已存在目录（-C 参数）： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"430f774c-d724-4297-99e2-80d7d1434885","page_size":[595,841],"block_position":"36-23"},{"bbox":[86,703,158,714],"type":"text","angle":0,"index":24,"text":"$\\$ 1$ mkdir tardir ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"b2698a00-ac7a-45ec-a2c0-ade179cf1fa2","page_size":[595,841],"block_position":"36-24"},{"bbox":[86,718,238,730],"type":"text","angle":0,"index":25,"text":"$\\$ 1$ tar -xf shiyanlou.tar -C tardir ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"319830ec-6ce5-496a-abbe-8c0d98f632ba","page_size":[595,841],"block_position":"36-25"},{"bbox":[104,734,247,746],"type":"text","angle":0,"index":26,"text":"只查看不解包文件-t 参数： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"3a985120-c4c5-4619-afe3-d5aca69af258","page_size":[595,841],"block_position":"36-26"},{"bbox":[86,750,193,762],"type":"text","angle":0,"index":27,"text":"$\\$ 1$ tar -tf shiyanlou.tar ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":36,"id":"50e4eca5-aaa9-4f2e-9358-9783f5d221cb","page_size":[595,841],"block_position":"36-27"}],[{"bbox":[104,79,504,122],"type":"text","angle":0,"index":0,"text":"保留文件属性和跟随链接（符号链接或软链接），有时候我们使用 tar 备份文件当 你在其他主机还原时希望保留文件的属性（-p 参数）和备份链接指向的源文件而 不是链接本身（-h 参数）： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"01eb7180-9d1e-461e-a70f-f74b8a00cc44","page_size":[595,841],"block_position":"37-0"},{"bbox":[86,126,196,137],"type":"text","angle":0,"index":1,"text":"$\\$ 1$ tar -cphf etc.tar /etc ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"63b8a50c-aab6-4b08-9bf6-f8f58c2de1b9","page_size":[595,841],"block_position":"37-1"},{"bbox":[103,141,461,154],"type":"text","angle":0,"index":2,"text":" 我们只需要在创建 tar 文件的基础上添加 -z 参数，使用 gzip 来压缩文件： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"b7a4c020-9999-497e-b781-016522b19c96","page_size":[595,841],"block_position":"37-2"},{"bbox":[86,157,343,170],"type":"text","angle":0,"index":3,"text":"$\\$ 1$ tar -czf shiyanlou.tar.gz /home/shiyanlou/Desktop ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"ab956849-24d7-481a-a518-a5620baea6a6","page_size":[595,841],"block_position":"37-3"},{"bbox":[104,188,212,201],"type":"text","angle":0,"index":4,"text":"解压 *.tar.gz 文件： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"d75fe84e-2e37-4b3f-9894-dcf36ec35e0d","page_size":[595,841],"block_position":"37-4"},{"bbox":[87,204,213,216],"type":"text","angle":0,"index":5,"text":"$\\$ 1$ tar -xzf shiyanlou.tar.gz ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"9941a899-eb1f-4c52-9d7e-66c99ccbcf8f","page_size":[595,841],"block_position":"37-5"},{"bbox":[87,216,411,319],"index":6,"angle":0,"type":"table_body","img_path":"/","id":"2e0c0dd2-c9ad-47a4-ae74-f38755d2f13f","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>压缩文件格式</td><td>参数</td></tr><tr><td>*.tar.gz</td><td>-z</td></tr><tr><td>*.tar.xz</td><td>-j</td></tr><tr><td>*.tar.bz2</td><td>-j</td></tr></table>","page_idx":37,"page_size":[595,841],"block_position":"37-6"},{"bbox":[105,322,145,334],"type":"text","angle":0,"index":7,"text":". zip： ","id":"0d8ae698-8c82-4327-a559-5e3d5699d988","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"page_size":[595,841],"block_position":"37-7"},{"bbox":[105,337,395,350],"type":"text","angle":0,"index":8,"text":" 打包 ：zip something.zip something （目录请加 -r 参数） ","id":"fdfd80a5-2ebe-4be8-9451-92e638c7d9f3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"page_size":[595,841],"block_position":"37-8"},{"bbox":[105,353,258,366],"type":"text","angle":0,"index":9,"text":" 解包：unzip something.zip ","id":"41ece39c-7c9a-421c-8745-31c602377bba","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"page_size":[595,841],"block_position":"37-9"},{"bbox":[105,368,212,380],"type":"text","angle":0,"index":10,"text":"指定路径：-d 参数 ","id":"c894b521-20fc-43df-be3b-969c75ea5f20","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"page_size":[595,841],"block_position":"37-10"},{"bbox":[105,385,144,395],"type":"text","angle":0,"index":11,"text":"tar： ","id":"34862667-aef8-4e6c-8e62-63f04dac0272","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"page_size":[595,841],"block_position":"37-11"},{"bbox":[105,399,314,413],"type":"text","angle":0,"index":12,"text":" 打包：tar -cf something.tar something ","id":"6e81f045-9392-407d-9bbd-8ba511391c04","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"page_size":[595,841],"block_position":"37-12"},{"bbox":[105,415,259,428],"type":"text","angle":0,"index":13,"text":"解包：tar -xf something.tar ","id":"db9170fb-aac3-4b2c-93bc-8f174b803c35","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"page_size":[595,841],"block_position":"37-13"},{"bbox":[105,430,212,443],"type":"text","angle":0,"index":14,"text":"指定路径：-C 参数 ","id":"9c38be69-a20e-4a47-a1b0-3c94a7ed6f17","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"page_size":[595,841],"block_position":"37-14"},{"bbox":[86,461,315,475],"type":"text","angle":0,"index":17,"text":"压缩后 gzip 会在每个文件的后面添加扩展名 .gz。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"3a15ba9d-7688-477f-bab9-47dd0aa9001d","page_size":[595,841],"block_position":"37-15"},{"bbox":[86,477,220,490],"type":"text","angle":0,"index":18,"text":"压缩后原文件会被自动删除。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"041e59f7-4db4-4e95-8cb9-0eca6f72ac8a","page_size":[595,841],"block_position":"37-16"},{"bbox":[86,492,337,506],"type":"text","angle":0,"index":19,"text":"在 windows 下可以用 winzip 或 winrar 或 7-zip 解压。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"fcee69ac-86d1-4a63-b56d-12600fadaefc","page_size":[595,841],"block_position":"37-17"},{"bbox":[86,508,231,521],"type":"text","angle":0,"index":20,"text":"用法：gzip [选项] 文件列表 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"43b1c0eb-5fa9-4456-ac4d-85c7dbbf5fa0","page_size":[595,841],"block_position":"37-18"},{"bbox":[86,524,115,536],"type":"title","angle":0,"index":21,"text":"# 选项：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":37,"id":"0a82afca-aa83-4cb1-918a-ffe9def59dbe","page_size":[595,841],"block_position":"37-19"},{"bbox":[86,539,172,552],"type":"text","angle":0,"index":22,"text":"-d: 解开压缩文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"04e36535-0980-4740-8b83-4e9ef64c5bf9","page_size":[595,841],"block_position":"37-20"},{"bbox":[86,555,463,567],"type":"text","angle":0,"index":23,"text":"-f: 强行压缩文件，不理会文件名称或硬链接是否存在以及该文件是否为符号链接。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"0874d708-1b25-4a0f-835c-2c82f6e24073","page_size":[595,841],"block_position":"37-21"},{"bbox":[86,571,503,598],"type":"text","angle":0,"index":24,"text":"-l: 列出压缩文件的相关信息（压缩文件的大小；未压缩文件的大小；压缩比；未压缩文件 的名字）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"a554ece3-974f-462a-bd6b-eeb2c1e348c6","page_size":[595,841],"block_position":"37-22"},{"bbox":[86,602,425,614],"type":"text","angle":0,"index":25,"text":"-n: 压缩文件时，不保存原来的文件名称及时间戳（默认为保存，即-N）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"4570aec4-35f6-42ba-90ed-42aa65978518","page_size":[595,841],"block_position":"37-23"},{"bbox":[86,618,362,630],"type":"text","angle":0,"index":26,"text":"-r : 递归处理，将指定目录下的所有文件及子目录一同处理。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"8b8bdb73-f024-4235-8da4-43b659e1d026","page_size":[595,841],"block_position":"37-24"},{"bbox":[86,634,236,645],"type":"text","angle":0,"index":27,"text":"-t : 测试压缩文件是否正确无误。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"0bb4fdfe-94b6-497d-b590-89751ed7562f","page_size":[595,841],"block_position":"37-25"},{"bbox":[86,649,195,661],"type":"text","angle":0,"index":28,"text":"-v : 显示指令执行过程。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"500773d4-a1cd-421c-bfd9-34adb0832d8b","page_size":[595,841],"block_position":"37-26"},{"bbox":[86,664,469,677],"type":"text","angle":0,"index":29,"text":"-<压缩率> : 压缩率是一个介于 $\\uparrow \\mathord { \\sim } 9$ 的数值，默认值为“6”，数值越大压缩率越高。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"caa687d7-0460-4275-8f91-e22d9579ce08","page_size":[595,841],"block_position":"37-27"},{"bbox":[86,680,286,692],"type":"text","angle":0,"index":30,"text":"--best 参数等价于-9；--fast 参数等价于-1。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":37,"id":"f98dddb1-ff3a-4ae9-a185-16ba5db71c0d","page_size":[595,841],"block_position":"37-28"},{"bbox":[86,696,152,708],"type":"title","angle":0,"index":31,"text":"# 信息显示命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":37,"id":"b2d6d55d-099c-4011-afef-131d6fb96ff7","page_size":[595,841],"block_position":"37-29"},{"bbox":[87,708,593,737],"index":32,"angle":0,"type":"table_body","img_path":"/","id":"58c971f0-bb19-442b-832f-6f60c1edb541","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>命令</td><td>功能</td></tr><tr><td>hostname</td><td>显示主机名称</td></tr><tr><td>uname</td><td>显示操作系统信息</td></tr><tr><td>dmesg</td><td>显示系统启动信息</td></tr><tr><td>lsmod</td><td>显示系统加载的内核模块</td></tr><tr><td>date</td><td>显示系统时间（cal可以显示系统时间的日历）</td></tr><tr><td>env</td><td>显示系统环境变量</td></tr><tr><td>locale</td><td>显示当前语言环境（cat /etc/sysconfig/i18n）</td></tr><tr><td>cat /etc/redhat-release</td><td>显示操作系统版本（head -1 /etc/issue）</td></tr><tr><td>cat /proc/cpuinfo</td><td>显示CPU信息</td></tr><tr><td>lspci/lsusb</td><td>显示PCI/USB接口信息</td></tr><tr><td>rpm -qa</td><td>显示系统已安装的所有软件包</td></tr></table>","page_idx":37,"page_size":[595,841],"block_position":"37-30"}],[{"bbox":[88,76,595,377],"index":0,"angle":0,"type":"table_body","lines_deleted":true,"text":"","id":"58c971f0-bb19-442b-832f-6f60c1edb541","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"","page_idx":38,"page_size":[595,841],"block_position":"38-0"},{"bbox":[88,405,595,715],"index":1,"angle":0,"type":"table_body","img_path":"/","id":"84b0bba0-8a41-4b00-ba92-770da380114d","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>命令</td><td>功能</td></tr><tr><td>top</td><td>显示当前系统中耗费资源最多的进程</td></tr><tr><td>free</td><td>显示当前内存的使用情况 (cat /proc/meminfo)</td></tr><tr><td>du -h</td><td>显示指定的文件（目录）已使用的磁盘空间的总量</td></tr><tr><td>df -h</td><td>显示文件系统磁盘空间的使用情况</td></tr><tr><td>uptime</td><td>显示系统运行时间、用户数、负载</td></tr><tr><td>fdisk -l</td><td>查看所有分区</td></tr><tr><td>mount</td><td>查看已经挂装的分区</td></tr><tr><td>swapon -s</td><td>查看所有交换分区</td></tr><tr><td>ps -ef</td><td>查看所有进程</td></tr><tr><td>pstree</td><td>显示进程树</td></tr><tr><td>chkconfig --list</td><td>列出所有系统服务</td></tr><tr><td>who、w</td><td>显示在线登录用户</td></tr><tr><td>whoami</td><td>显示用户自己的身份</td></tr><tr><td>tty</td><td>显示用户当前使用的终端</td></tr><tr><td>id</td><td>显示当前用户的 id 信息</td></tr><tr><td>groups</td><td>显示当前用户属于哪些组</td></tr><tr><td>last</td><td>查看用户登录日志</td></tr><tr><td>crontab -l</td><td>查看当前用户的计划任务</td></tr></table>","page_idx":38,"page_size":[595,841],"block_position":"38-1"}],[{"bbox":[88,76,595,290],"index":0,"angle":0,"type":"table_body","lines_deleted":true,"text":"","id":"84b0bba0-8a41-4b00-ba92-770da380114d","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"","page_idx":39,"page_size":[595,841],"block_position":"39-0"},{"bbox":[88,321,595,512],"index":1,"angle":0,"type":"table_body","img_path":"/","id":"ce3674b0-d501-4b32-a095-abe2b22ecc7c","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>命令</td><td>功能</td></tr><tr><td>ifconfig</td><td>显示网络接口信息</td></tr><tr><td>route</td><td>显示系统路由表</td></tr><tr><td>iptables -nL</td><td>显示包过滤防火墙的规则设置</td></tr><tr><td>netstat</td><td>显示网络状态信息</td></tr><tr><td>cat /etc/resolv.conf</td><td>显示DNS配置</td></tr><tr><td>cat /etc/hosts</td><td>显示静态主机解析表</td></tr></table>","page_idx":39,"page_size":[595,841],"block_position":"39-1"},{"bbox":[87,546,187,565],"type":"title","angle":0,"index":2,"text":"# 数据流重定向","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":39,"id":"c8481127-0414-4aac-b3db-f26b50fa1bab","page_size":[595,841],"block_position":"39-2"},{"bbox":[86,602,509,661],"type":"text","angle":0,"index":3,"text":"你可能对重定向这个概念感到些许陌生，但你应该在前面的课程中多次见过 $>$ 或 ${ } > > { }$ 操作了， 并知道他们分别是将标准输出导向一个文件或追加到一个文件中。这其实就是（输出）重 定向，将原本输出到标准输出的数据重定向到一个文件中，因为标准输出(/dev/stdout)本 身也是一个文件，我们将命令输出导向另一个文件自然也是没有任何问题的。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":39,"id":"8fc068e3-a55b-4659-af5f-a08c39de056c","page_size":[595,841],"block_position":"39-3"},{"bbox":[87,664,449,678],"type":"text","angle":0,"index":4,"text":"上述两个重定向是输出重定向。相应的还有 $<$ 和 $< <$ 两种操作，是输入重定向。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":39,"id":"3511e58e-cdeb-42f4-8d1f-256b01b3651a","page_size":[595,841],"block_position":"39-4"},{"bbox":[86,680,506,725],"type":"text","angle":0,"index":5,"text":"在 Linux 系统中默认提供了三个逻辑设备（特殊文件），用于终端的显示和输出，分别 为stdin （标准输入,默认对应于终端作为输入），stdout （标准输出，默认对应于终端作 为输出），stderr （标准错误输出，默认对应于终端作为输出）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":39,"id":"8bb9f340-e959-42ec-87e7-69b5f4863c90","page_size":[595,841],"block_position":"39-5"}],[{"bbox":[88,76,585,179],"index":0,"angle":0,"type":"table_body","img_path":"/","id":"bc48291f-24dd-4413-9b5d-29e156af2f40","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>文件描述符</td><td>设备文件</td><td>说明</td><td>常见指向目标</td></tr><tr><td>0</td><td>/dev/stdin</td><td>标准输入</td><td>终端设备/dev/pts/1</td></tr><tr><td>1</td><td>dev/stdout</td><td>标准输出</td><td>终端设备</td></tr><tr><td>2</td><td>dev/stderr</td><td>标准错误</td><td>终端设备</td></tr></table>","page_idx":40,"page_size":[595,841],"block_position":"40-0"},{"bbox":[86,180,507,256],"type":"text","angle":0,"index":1,"text":"文件描述符：在形式上是一个非负整数。实际上，它是一个索引值，指向内核为每一个进 程所维护的记录表，表中记录该进程打开文件的信息。当进程打开一个现有文件或者创建 一个新文件时，内核就会向进程返回一个文件描述符。在程序设计中，一些涉及底层的程 序 编 写往往会围绕着 文 件描述符展开 。 但 是 文 件描述符这 一概念往往只 适 用 于 UNIX、Linux 这样的操作系统。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"8b8e321b-a1e0-4ed7-ba51-bc3de5ebd0ea","page_size":[595,841],"block_position":"40-1"},{"bbox":[86,265,330,280],"type":"title","angle":0,"index":2,"text":"# 操作符 文件存在时的行为 文件不存在时的行为","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":40,"id":"6349d67a-8127-4427-ab12-abd8834eed10","page_size":[595,841],"block_position":"40-2"},{"bbox":[86,296,288,312],"type":"text","angle":0,"index":3,"text":"> 覆盖原内容 创建新文件 ","id":"4d23984e-96be-4329-befa-eb45fe9903bf","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-3"},{"bbox":[86,328,287,342],"type":"text","angle":0,"index":4,"text":">> 追加到原内容末尾 创建新文件 ","id":"b53c4d73-f25f-4bd6-8e76-1d1b0dfd6998","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-4"},{"bbox":[104,383,475,396],"type":"text","angle":0,"index":6,"text":" 默认使用终端的标准输入stdin 作为命令的输入和标准输出作为命令的输出： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"032cb99d-3342-4847-bec3-d559c1df0b9a","page_size":[595,841],"block_position":"40-5"},{"bbox":[87,400,105,410],"type":"text","angle":0,"index":7,"text":"cat ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"9231c9d2-756c-4a0c-b316-428c470a0659","page_size":[595,841],"block_position":"40-6"},{"bbox":[94,414,170,428],"type":"text","angle":0,"index":8,"text":"（按 $\\mathsf { C t r l + C }$ 退出） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"84f4edb7-87e8-4540-b448-29695a5f75c2","page_size":[595,841],"block_position":"40-7"},{"bbox":[104,445,424,459],"type":"text","angle":0,"index":9,"text":" 将 cat 接收的输入又输出（heredoc 的方式）重定向到一个文件： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"351279c9-9351-458e-a864-36a7ebcd3d6a","page_size":[595,841],"block_position":"40-8"},{"bbox":[87,461,179,472],"type":"text","angle":0,"index":10,"text":"mkdir Documents ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"9acdab32-bc48-4d9c-8053-73cd8701aa95","page_size":[595,841],"block_position":"40-9"},{"bbox":[87,477,237,488],"type":"text","angle":0,"index":11,"text":"cat $>$ Documents/test.c <<EOF ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"9f56fb5b-2e6e-482b-b3f0-12451cf7b933","page_size":[595,841],"block_position":"40-10"},{"bbox":[88,492,127,504],"type":"text","angle":0,"index":12,"text":"...内容... ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"9581cb7c-98a4-4a04-8cc7-9edd511d27a6","page_size":[595,841],"block_position":"40-11"},{"bbox":[88,508,110,519],"type":"text","angle":0,"index":13,"text":"EOF ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"56f73ca1-5a8b-4acd-a66b-a73454660ede","page_size":[595,841],"block_position":"40-12"},{"bbox":[105,523,503,552],"type":"text","angle":0,"index":14,"text":"1. cat $>$ Documents/test.c 表示将 cat 命令的输出重定向到 Documents/test.c 文件（如果文件不存在则创建） ","id":"8f631fbf-67dd-4595-a5d0-b44be941bc28","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-13"},{"bbox":[105,555,401,567],"type":"text","angle":0,"index":15,"text":"1. <<EOF（输入重定向） 是 \"here document\" 语法，它表示： ","id":"693ec689-5cf5-4c87-be2d-05f3ed526600","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-14"},{"bbox":[141,571,247,582],"type":"text","angle":0,"index":17,"text":"o 开始一个多行输入 ","id":"dc0307aa-f2e6-49ee-8256-79a1e3016ac8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-15"},{"bbox":[141,586,309,598],"type":"text","angle":0,"index":18,"text":"o 将后续所有内容作为cat 的输入 ","id":"4d6a68de-cc80-4383-b0eb-a9200409626a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-16"},{"bbox":[141,602,505,629],"type":"text","angle":0,"index":19,"text":"o 直到遇到单独一行的 EOF 为止（这个标记词可以自定义，常用 EOF 或 END） ","id":"6105025a-78d8-441c-9e19-868619cd8546","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"page_size":[595,841],"block_position":"40-17"},{"bbox":[104,648,382,661],"type":"text","angle":0,"index":21,"text":" 将一个文件作为命令的输入，标准输出作为命令的输出： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"538417ad-247d-4433-9d3e-22fb689c1ef2","page_size":[595,841],"block_position":"40-18"},{"bbox":[87,664,195,676],"type":"text","angle":0,"index":22,"text":"cat Documents/test.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"12e12484-55e2-4392-95b6-4e88ea89308c","page_size":[595,841],"block_position":"40-19"},{"bbox":[86,694,503,708],"type":"text","angle":0,"index":23,"text":"上述命令也可以作为查看短文件内容的方法，但是如果文件内容很长就会滚屏到最后一屏。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"db253bfc-78e7-413c-9a9f-fbaa19eeefe5","page_size":[595,841],"block_position":"40-20"},{"bbox":[104,710,504,739],"type":"text","angle":0,"index":24,"text":" 将echo 命令通过管道传过来的数据作为 cat 命令的输入，将标准输出作为命令的 输出： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"e08efbc8-b8b6-474e-8243-c705b803bc91","page_size":[595,841],"block_position":"40-21"},{"bbox":[87,741,157,754],"type":"text","angle":0,"index":25,"text":"echo 'hi' | cat ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":40,"id":"8a93e308-b38f-410d-ae04-f907e61e10a6","page_size":[595,841],"block_position":"40-22"}],[{"bbox":[105,79,304,91],"type":"text","angle":0,"index":0,"text":"1. echo 'hi' 输出字符串 hi\\n 到标准输出 ","id":"f86e2e98-de00-4d3e-ac8a-6873699d0916","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"page_size":[595,841],"block_position":"41-0"},{"bbox":[104,95,420,107],"type":"text","angle":0,"index":1,"text":"2. 管道 | 将前一个命令的标准输出重定向为下一个命令的标准输入 ","id":"24e95105-586f-45f4-b521-10bc82dad5a4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"page_size":[595,841],"block_position":"41-1"},{"bbox":[105,110,386,122],"type":"text","angle":0,"index":2,"text":"3. cat 检测到自己没有文件名参数，于是开始读取标准输入 ","id":"5df2f77e-1d9b-4190-867c-9b5e7cf3a0e9","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"page_size":[595,841],"block_position":"41-2"},{"bbox":[105,126,371,138],"type":"text","angle":0,"index":3,"text":"4. 将读取到的内容（hi\\n）原样输出到标准输出（终端） ","id":"715d192d-93e9-4966-aec5-08df38da096e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"page_size":[595,841],"block_position":"41-3"},{"bbox":[104,157,411,169],"type":"text","angle":0,"index":5,"text":" 将 echo 命令的输出从默认的标准输出重定向到一个普通文件： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"8b762c49-0776-46b2-ab4c-386f7b9a8a23","page_size":[595,841],"block_position":"41-4"},{"bbox":[86,172,246,185],"type":"text","angle":0,"index":6,"text":"echo 'hello shiyanlou' $>$ redirect ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"9b451db0-44f4-4a3e-8088-353d8f39cd4f","page_size":[595,841],"block_position":"41-5"},{"bbox":[87,188,146,200],"type":"text","angle":0,"index":7,"text":"cat redirect ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"11bc474c-0573-4b62-8dab-dbd52df21e5a","page_size":[595,841],"block_position":"41-6"},{"bbox":[87,203,282,216],"type":"text","angle":0,"index":8,"text":"也就是说，cat和echo都可以重定向输出 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"60a12d32-3ae5-4636-b3c2-bf336e2da4e2","page_size":[595,841],"block_position":"41-7"},{"bbox":[86,219,504,248],"type":"text","angle":0,"index":9,"text":"管道默认是连接前一个命令的输出到下一个命令的输入，而重定向通常是需要一个文件来 建立两个命令的连接。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"52724902-e53b-4629-b75e-34c7a8b7b600","page_size":[595,841],"block_position":"41-8"},{"bbox":[86,250,504,294],"type":"text","angle":0,"index":10,"text":"重定向标准输出到文件，这是一个很实用的操作，另一个很实用的操作是将标准错误重定 向，标准输出和标准错误都被指向伪终端的屏幕显示，所以我们经常看到的一个命令的输 出通常是同时包含了标准输出和标准错误的结果的。比如下面的操作： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"2d98fe4e-866a-4f0d-b752-ce4a460f08fa","page_size":[595,841],"block_position":"41-9"},{"bbox":[86,297,392,310],"type":"text","angle":0,"index":11,"text":"# 使用 cat 命令同时读取两个文件，其中一个存在，另一个不存在 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"8e1ab0c2-c468-40af-a7d2-cd9cf6fd0630","page_size":[595,841],"block_position":"41-10"},{"bbox":[87,313,229,325],"type":"text","angle":0,"index":12,"text":"cat Documents/test.c hello.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"49a80ff6-ca16-4d7e-aff0-d18757f937dd","page_size":[595,841],"block_position":"41-11"},{"bbox":[86,328,456,341],"type":"text","angle":0,"index":13,"text":"# 你可以看到除了正确输出了前一个文件的内容，还在末尾出现了一条错误信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"0bf6b38e-e30f-4cf7-b61a-62a3795add22","page_size":[595,841],"block_position":"41-12"},{"bbox":[87,343,257,356],"type":"text","angle":0,"index":14,"text":"# 下面我们将输出重定向到一个文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"b35765f3-0dec-4d19-be95-11f0b5d3f1d4","page_size":[595,841],"block_position":"41-13"},{"bbox":[87,359,282,371],"type":"text","angle":0,"index":15,"text":"cat Documents/test.c hello.c $>$ somefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"a1886e2a-7b9e-4808-9045-406294addc17","page_size":[595,841],"block_position":"41-14"},{"bbox":[86,390,505,434],"type":"text","angle":0,"index":16,"text":"遗憾的是，这里依然出现了那条错误信息，这正是因为如我上面说的那样，标准输出和标 准错误虽然都指向终端屏幕，实际它们并不一样。那有的时候我们就是要隐藏某些错误或 者警告，那又该怎么做呢。这就需要用到我们前面讲的文件描述符了： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"6b1edabb-1072-46bb-9bab-bb23aa6c2481","page_size":[595,841],"block_position":"41-15"},{"bbox":[86,437,503,465],"type":"text","angle":0,"index":17,"text":"# 将标准错误重定向到标准输出，再将标准输出重定向到文件，注意要将重定向到文件写 到前面 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"dc5d23ee-1b39-437c-aa6e-42fb438b5034","page_size":[595,841],"block_position":"41-16"},{"bbox":[87,469,307,481],"type":"text","angle":0,"index":18,"text":"cat Documents/test.c hello.c $>$ somefile $2 { > } 8 1$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"707719a5-2463-485a-ae01-b9d6871cd7f2","page_size":[595,841],"block_position":"41-17"},{"bbox":[88,484,493,497],"type":"text","angle":0,"index":19,"text":"# 或者只用bash提供的特殊的重定向符号\"&\"将标准错误和标准输出同时重定向到文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"5065d7aa-fe65-46f2-864e-c60e19d9d7c6","page_size":[595,841],"block_position":"41-18"},{"bbox":[87,500,306,511],"type":"text","angle":0,"index":20,"text":"cat Documents/test.c hello.c $\\& >$ somefilehell ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"01c8ea8b-502a-44c9-8263-e6a7d599bcd5","page_size":[595,841],"block_position":"41-19"},{"bbox":[86,515,504,543],"type":"text","angle":0,"index":21,"text":"注意你应该在输出重定向文件描述符前加上&,否则 shell 会当做重定向到一个文件名为 1 的文件中 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"c98f6dd3-e835-4b73-b86c-c0ed74a63050","page_size":[595,841],"block_position":"41-20"},{"bbox":[87,546,240,560],"type":"text","angle":0,"index":22,"text":"方法 1：仅重定向标准错误 $( 2 > )$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"5fb3bdc1-0315-490d-82d7-ca85c0b551e2","page_size":[595,841],"block_position":"41-21"},{"bbox":[87,562,288,576],"type":"text","angle":0,"index":23,"text":"cat Documents/test.c hello.c $^ { 2 > }$ error.log ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"3726d7e4-3bdd-4538-a130-594a501eb052","page_size":[595,841],"block_position":"41-22"},{"bbox":[87,577,270,590],"type":"text","angle":0,"index":24,"text":"方法 2：丢弃标准错误（ $2 >$ /dev/null） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"8f83f955-0c3f-4bb7-a1b1-e1628d5ce72f","page_size":[595,841],"block_position":"41-23"},{"bbox":[87,593,273,606],"type":"text","angle":0,"index":25,"text":"如果不想保存错误信息，而是直接丢弃： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"aecbdfb9-6cf4-4bd6-b1a0-fad44f5e98bb","page_size":[595,841],"block_position":"41-24"},{"bbox":[87,609,290,621],"type":"text","angle":0,"index":26,"text":"cat Documents/test.c hello.c $^ { 2 > }$ /dev/null ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"de4b3281-ed79-4b4a-b1a7-2458d66dda66","page_size":[595,841],"block_position":"41-25"},{"bbox":[104,624,369,637],"type":"text","angle":0,"index":27,"text":" /dev/null 是一个特殊设备，写入它的数据会被丢弃。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"a59ba947-e7ea-41bb-8e22-0a3e6cb31ab2","page_size":[595,841],"block_position":"41-26"},{"bbox":[86,640,504,667],"type":"text","angle":0,"index":28,"text":"你可能还有这样的需求，除了需要将输出重定向到文件,也需要将信息打印在终端。那么你 可以使用tee命令来实现： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"67af5cf0-50af-495b-a2cf-7eb7829e714f","page_size":[595,841],"block_position":"41-27"},{"bbox":[87,671,249,683],"type":"text","angle":0,"index":29,"text":"echo 'hello shiyanlou' | tee hello ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"abfcb4ad-3328-493b-8608-63d25a55bad4","page_size":[595,841],"block_position":"41-28"},{"bbox":[86,687,504,761],"type":"text","angle":0,"index":30,"text":"你应该可以看出我们前面的重定向操作都只是临时性的，即只对当前命令有效，那如何做 到“永久”有效呢，比如在一个脚本中，你需要某一部分的命令的输出全部进行重定向， 难道要让你在每个命令上面加上临时重定向的操作嘛，当然不需要，我们可以使用 exec命 令实现“永久”重定向。exec命令的作用是使用指定的命令替换当前的 Shell，即使用一 个进程替换当前进程，或者指定新的重定向： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":41,"id":"edb53213-7b70-49d6-ad6b-b2873e8db703","page_size":[595,841],"block_position":"41-29"}],[{"bbox":[86,79,189,91],"type":"text","angle":0,"index":0,"text":"# 先开启一个子 Shell ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"4f7d8f24-c390-42d3-8cf0-fb9549c5759c","page_size":[595,841],"block_position":"42-0"},{"bbox":[87,95,107,106],"type":"text","angle":0,"index":1,"text":"zsh ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"001fff4f-1c71-4b54-915b-6e67dc241ef6","page_size":[595,841],"block_position":"42-1"},{"bbox":[86,110,398,122],"type":"text","angle":0,"index":2,"text":"# 使用 exec 替换当前进程的重定向，将标准输出重定向到一个文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"bcb2ba9f-d0ad-468c-8a8d-8f2b7880a525","page_size":[595,841],"block_position":"42-2"},{"bbox":[87,126,169,137],"type":"text","angle":0,"index":3,"text":"exec 1>somefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"711717e2-6286-47e1-b0b3-b64ecce85920","page_size":[595,841],"block_position":"42-3"},{"bbox":[86,141,505,170],"type":"text","angle":0,"index":4,"text":"# 后面你执行的命令的输出都将被重定向到文件中,直到你退出当前子 shell，或取消 exec 的重定向（后面将告诉你怎么做） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"891ff2fe-01ab-4a69-af57-2e8dbf2ed63d","page_size":[595,841],"block_position":"42-4"},{"bbox":[87,173,98,185],"type":"text","angle":0,"index":5,"text":"ls ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"b6b60729-ffcd-4601-a210-13077ffeae53","page_size":[595,841],"block_position":"42-5"},{"bbox":[87,189,108,200],"type":"text","angle":0,"index":6,"text":"exit ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"57de4bbc-7b25-48e9-95d2-61d80efbe2cf","page_size":[595,841],"block_position":"42-6"},{"bbox":[87,203,151,215],"type":"text","angle":0,"index":7,"text":"cat somefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"85e0b770-6558-47f5-81ce-67dc617779ef","page_size":[595,841],"block_position":"42-7"},{"bbox":[86,219,201,232],"type":"title","angle":0,"index":8,"text":"# 什么没有新开终端窗口？","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":42,"id":"50150926-0442-47b9-ba88-f8b0746febef","page_size":[595,841],"block_position":"42-8"},{"bbox":[104,235,203,247],"type":"title","angle":0,"index":9,"text":"#  zsh 命令的本质：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":42,"id":"3d4db729-febb-46cb-a871-9b88640f6a78","page_size":[595,841],"block_position":"42-9"},{"bbox":[121,250,505,279],"type":"text","angle":0,"index":10,"text":"它只是在当前终端中新建一个 Zsh 子进程，而不是像图形化终端（如 GNOME Terminal）那样创建一个新窗口。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"fdfe0ce6-c53f-483f-bfc9-32ac07a5dcce","page_size":[595,841],"block_position":"42-10"},{"bbox":[105,282,198,294],"type":"title","angle":0,"index":11,"text":"# 输入/输出继承：","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":42,"id":"af1d4c3d-fe09-42b7-8071-a7d5c1424de3","page_size":[595,841],"block_position":"42-11"},{"bbox":[122,297,505,326],"type":"text","angle":0,"index":12,"text":"子 Shell 默认绑定到父 Shell 的同一个终端设备（如 /dev/pts/1），所以输入/输 出仍在原窗口 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"f06303e9-4637-44c6-8028-0254355458e9","page_size":[595,841],"block_position":"42-12"},{"bbox":[105,328,211,341],"type":"title","angle":0,"index":13,"text":"# 方法 1：检查进程层级","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":42,"id":"11c8566b-52a4-4158-8fcd-50533120d916","page_size":[595,841],"block_position":"42-13"},{"bbox":[105,344,193,356],"type":"text","angle":0,"index":14,"text":"在子 Shell 中运行： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"7e56b3ea-2158-438f-91e0-c01b39433a39","page_size":[595,841],"block_position":"42-14"},{"bbox":[105,360,172,372],"type":"text","angle":0,"index":15,"text":"pstree -ps $$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"4fa06c74-4895-4d7d-860f-de1727c85d1e","page_size":[595,841],"block_position":"42-15"},{"bbox":[86,390,505,434],"type":"text","angle":0,"index":16,"text":"在 Shell 中有 9 个文件描述符。上面我们使用了也是它默认提供的 0,1,2 号文件描述符。另 外我们还可以使用 3-8 的文件描述符，只是它们默认没有打开而已。你可以使用下面命令 查看当前Shell 进程中打开的文件描述符： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"902d2bf4-0f03-4b13-bf0a-4904028dcfa7","page_size":[595,841],"block_position":"42-16"},{"bbox":[87,437,170,449],"type":"text","angle":0,"index":17,"text":"cd /dev/fd/;ls -Al ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"589a022f-f754-4979-9f29-b6fcc86931e7","page_size":[595,841],"block_position":"42-17"},{"bbox":[86,468,299,481],"type":"text","angle":0,"index":18,"text":"同样使用 exec 命令可以创建新的文件描述符： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"c8ce29a6-e9ef-4972-8433-bfc463659e72","page_size":[595,841],"block_position":"42-18"},{"bbox":[87,485,107,496],"type":"text","angle":0,"index":19,"text":"zsh ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"f17f53da-0236-4bee-8e1f-01aebbb38ade","page_size":[595,841],"block_position":"42-19"},{"bbox":[87,500,169,511],"type":"text","angle":0,"index":20,"text":"exec $\\mathsf { 3 > }$ somefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"a962ea30-9a7e-4e22-b5f4-c819753a9999","page_size":[595,841],"block_position":"42-20"},{"bbox":[86,515,477,528],"type":"text","angle":0,"index":21,"text":"# 先进入目录，再查看，否则你可能不能得到正确的结果，然后再回到上一次的目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"ce9bc11b-46fb-461f-a7cc-3831cbc0980e","page_size":[595,841],"block_position":"42-21"},{"bbox":[87,531,190,543],"type":"text","angle":0,"index":22,"text":"cd /dev/fd/;ls -Al;cd - ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"935a8c6c-acf0-49c8-8713-6ed0875b5f67","page_size":[595,841],"block_position":"42-22"},{"bbox":[86,546,386,559],"type":"text","angle":0,"index":23,"text":"# 注意下面的命令>与&之间不应该有空格，如果有空格则会出错 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"9afe918f-92a9-4702-88ba-77e040b3b27e","page_size":[595,841],"block_position":"42-23"},{"bbox":[87,562,198,574],"type":"text","angle":0,"index":24,"text":"echo \"this is test\" $> 8 . 3$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"b2f5ef9e-9e71-4fbe-ab8f-f0867a8e7df1","page_size":[595,841],"block_position":"42-24"},{"bbox":[87,578,150,589],"type":"text","angle":0,"index":25,"text":"cat somefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"4f78e774-c7f5-41ad-aa5a-226653019935","page_size":[595,841],"block_position":"42-25"},{"bbox":[87,594,108,604],"type":"text","angle":0,"index":26,"text":"exit ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"2a23a685-c93e-4407-a7e1-6843cfda2797","page_size":[595,841],"block_position":"42-26"},{"bbox":[86,608,389,621],"type":"text","angle":0,"index":27,"text":"如上面我们打开的 3 号文件描述符，可以使用如下操作将它关闭： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"9c4d18fc-868f-48e9-b52d-2cda31a6eb05","page_size":[595,841],"block_position":"42-27"},{"bbox":[87,625,138,636],"type":"text","angle":0,"index":28,"text":"exec $3 > 8 \\cdot$ - ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"b694fc23-3a96-40dd-a03e-8c6f5d70be2b","page_size":[595,841],"block_position":"42-28"},{"bbox":[87,640,186,652],"type":"text","angle":0,"index":29,"text":"cd /dev/fd;ls -Al;cd - ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"75c1af0e-283e-4374-b41c-7e314a637d56","page_size":[595,841],"block_position":"42-29"},{"bbox":[86,655,464,668],"type":"text","angle":0,"index":30,"text":"在 Linux 中有一个被称为“黑洞”的设备文件,所有导入它的数据都将被“吞噬”。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"b7da05e2-cb08-4f74-89c8-11d048a7f7ad","page_size":[595,841],"block_position":"42-30"},{"bbox":[86,671,504,714],"type":"text","angle":0,"index":31,"text":"在类 UNIX 系统中，/dev/null，或称空设备，是一个特殊的设备文件，它通常被用于丢弃 不需要的输出流，或作为用于输入流的空文件，这些操作通常由重定向完成。读取它则会 立即得到一个 EOF。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"806ec332-fcc5-4226-be20-966b41832849","page_size":[595,841],"block_position":"42-31"},{"bbox":[86,717,277,730],"type":"text","angle":0,"index":32,"text":"我们可以利用/dev/null屏蔽命令的输出： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"63a4cae7-6cbd-476d-aec1-92a99a3d8642","page_size":[595,841],"block_position":"42-32"},{"bbox":[87,734,280,745],"type":"text","angle":0,"index":33,"text":"cat Documents/test.c 1>/dev/null $2 { > } 8 1$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"ddf36632-4332-4f9c-8fed-1038557c88b1","page_size":[595,841],"block_position":"42-33"},{"bbox":[86,749,504,762],"type":"text","angle":0,"index":34,"text":"当我们需要使用apt-get安装一个软件，然后安装完成后立即运行安装的软件（或命令工 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":42,"id":"ab79fcde-0ec6-49d7-905b-9cbec53da71a","page_size":[595,841],"block_position":"42-34"}],[{"bbox":[88,79,115,91],"type":"text","angle":0,"index":0,"text":"具）， ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"fb83f07c-fbda-483b-a9a5-f7138a5d4762","page_size":[595,841],"block_position":"43-0"},{"bbox":[86,95,504,122],"type":"text","angle":0,"index":1,"text":"这时你可能就会想：要是我可以一次性输入完，让它自己去依次执行各命令就好了，这就 是这一小节要解决的问题。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"46f7c608-7636-4802-874e-caea54becebb","page_size":[595,841],"block_position":"43-1"},{"bbox":[87,125,329,138],"type":"text","angle":0,"index":2,"text":"简单的顺序执行可以使用;，比如上述操作可以写为： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"16c1c3c2-0967-4e4f-9cc5-85afbc4e4c3a","page_size":[595,841],"block_position":"43-2"},{"bbox":[86,142,163,153],"type":"text","angle":0,"index":3,"text":"# 命令顺序执行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"46803a8d-a256-4127-8a63-1218f7778fa7","page_size":[595,841],"block_position":"43-3"},{"bbox":[86,157,393,169],"type":"text","angle":0,"index":4,"text":"sudo apt-get update;sudo apt-get install some-tool;some-tool ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"45fa9475-3670-410e-ae4f-ac0069b8e159","page_size":[595,841],"block_position":"43-4"},{"bbox":[86,172,504,232],"type":"text","angle":0,"index":5,"text":"但是有时候这样的错误并不是直观可以判断出来的。因此需要能够有选择性的执行命令， 比如上一条命令执行成功才继续下一条，或者不成功又该做出其它什么处理,比如我们使用 which来查找是否安装了某个命令，如果找到就执行该命令，否则什么也不做（虽然这个 操作没有什么实际意义，但可帮你更好的理解一些概念）： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"ac956778-02d1-49a8-bd2c-857604957508","page_size":[595,841],"block_position":"43-5"},{"bbox":[86,235,352,248],"type":"text","angle":0,"index":6,"text":"which cowsay $>$ /dev/null && cowsay -f head-in ohch~ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"d0a262f7-a651-4f4b-b792-1e646cf40d2e","page_size":[595,841],"block_position":"43-6"},{"bbox":[87,250,199,263],"type":"text","angle":0,"index":7,"text":"cowsay 没有是 1 有是 0 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"a80f8cf6-2129-43d9-a4b1-0d69eeae1460","page_size":[595,841],"block_position":"43-7"},{"bbox":[86,265,504,310],"type":"text","angle":0,"index":8,"text":"上面命令中的 && 就是用来实现选择性执行的，它表示如果前面的命令执行结果（不是表 示终端输出的内容，而是表示命令执行状态的结果）返回 0 则执行后面的命令，否则不继 续执行。上一次命令的返回结果从 $\\$ 7$ 环境变量获取. ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"aa76225f-cb74-4b2b-af4f-b87573117561","page_size":[595,841],"block_position":"43-8"},{"bbox":[86,312,504,371],"type":"text","angle":0,"index":9,"text":"而且还有一个 || 表示逻辑或，同样 Shell 也有一个 ||，它们的区别就在于，shell 中的这 两个符号除了也可用于表示逻辑与和或之外，就是可以实现这里的命令执行顺序的简单控 制。|| 在这里就是与&& 相反的控制效果，当上一条命令执行结果为 $\\neq 0 ( \\$ 20)$ 时则执行 它后面的命令： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"ecb05f8a-e137-42ed-aac9-cd9a0a4e1aff","page_size":[595,841],"block_position":"43-9"},{"bbox":[88,374,146,537],"index":10,"angle":0,"type":"image","img_path":"/ab750f6726b902e0fc0de54e6354b6ff90d9bafd3e35cdf5693a2fc44eeed82b.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":43,"id":"e5cf78b7-8a01-46b7-9048-087165001a53","page_size":[595,841],"block_position":"43-10"},{"bbox":[86,545,381,560],"type":"text","angle":0,"index":11,"text":"which cowsay>/dev/null && echo \"exist\" || echo \"not exist\" ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"647414c0-5c72-4bc1-b22c-7921e3b58b4d","page_size":[595,841],"block_position":"43-11"},{"bbox":[86,562,382,575],"type":"text","angle":0,"index":12,"text":"如果存在 ——echo “exists”成立，返回 0——后面那一句不成立 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"6c983787-d82d-4159-8c27-f66c27cd2dbc","page_size":[595,841],"block_position":"43-12"},{"bbox":[86,577,390,590],"type":"text","angle":0,"index":13,"text":"如果不存在——echo “exists”不成立，返回 1——后面那一句成立 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"b169a962-e016-4bf7-8ef8-ff90506cc611","page_size":[595,841],"block_position":"43-13"},{"bbox":[87,593,154,606],"type":"text","angle":0,"index":14,"text":"如果二者互换 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"048692ea-5e16-4fe9-910c-bbd7f6ea01cf","page_size":[595,841],"block_position":"43-14"},{"bbox":[86,608,379,622],"type":"text","angle":0,"index":15,"text":"which cowsay>/dev/null || echo \"not exist\" && echo \"exist\" ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"ec76bc00-c642-48ba-bdad-ab70ddb2fa7d","page_size":[595,841],"block_position":"43-15"},{"bbox":[86,624,376,637],"type":"text","angle":0,"index":16,"text":"如果存在——echo “not exist”不成立,返回 1——后面也不成立 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"919b233f-2541-4897-9fdd-bf31e12a2f45","page_size":[595,841],"block_position":"43-16"},{"bbox":[86,640,353,653],"type":"text","angle":0,"index":17,"text":"如果不存在—echo “not exist”成立，返回 0——后面成立 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"da49e4a4-1a1c-418f-b3ea-b7460885e4ff","page_size":[595,841],"block_position":"43-17"},{"bbox":[87,655,154,667],"type":"text","angle":0,"index":18,"text":"如果二者互换 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"d17e709a-49f4-45cf-b279-490ed19cd53a","page_size":[595,841],"block_position":"43-18"},{"bbox":[86,671,379,684],"type":"text","angle":0,"index":19,"text":"which cowsay>/dev/null || echo \"exist\" && echo \"not exist\" ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"dca23f1d-5189-4140-8542-157f91a3549a","page_size":[595,841],"block_position":"43-19"},{"bbox":[87,687,152,699],"type":"text","angle":0,"index":20,"text":"那完全就反了 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"c6c21e16-7626-43c5-95c4-cfccabb0ff7b","page_size":[595,841],"block_position":"43-20"},{"bbox":[86,702,369,714],"type":"text","angle":0,"index":21,"text":"如果存在——echo “exists”不成立，返回 1——后面也不成立 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"d48b07d1-350f-4b57-a93b-117d9eb4d09a","page_size":[595,841],"block_position":"43-21"},{"bbox":[86,717,504,762],"type":"text","angle":0,"index":22,"text":"管道是什么？管道是一种通信机制，通常用于进程间的通信（也可通过 socket 进行网络通 信），它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输 入(stdin)。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":43,"id":"8256ffef-5d93-40aa-97c7-046afdc7aab0","page_size":[595,841],"block_position":"43-22"}],[{"bbox":[86,79,506,185],"type":"text","angle":0,"index":0,"text":"管道又分为匿名管道和具名管道（这里将不会讨论在源程序中使用系统调用创建并使用管 道的情况，它与命令行的管道在内核中实际都是采用相同的机制）。我们在使用一些过滤 程序时经常会用到的就是匿名管道，在命令行中由 | 分隔符表示， | 在前面的内容中我们 已经多次使用到了。具名管道简单的说就是有名字的管道，通常只会在源程序中用到具名 管道。下面我们就将通过一些常用的可以使用管道的\"过滤程序\"来帮助你熟练管道的使用。 先试用一下管道，比如查看/etc 目录下有哪些文件和目录，使用ls 命令来查看： ls -al /etc ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"5f32fcb1-5b3f-4bfc-a126-100a32dcf5b1","page_size":[595,841],"block_position":"44-0"},{"bbox":[86,203,506,233],"type":"text","angle":0,"index":1,"text":"有太多内容，屏幕不能完全显示，这时候可以使用滚动条或快捷键滚动窗口来查看。不过 这时候可以使用管道： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"753b77ea-febb-4c6c-b688-addbadd85f0f","page_size":[595,841],"block_position":"44-1"},{"bbox":[87,235,164,247],"index":2,"angle":0,"type":"code","text":"```txt\nIs -al /etc | less \n```","id":"8488e74a-b8bd-483f-98c9-ec9648bd0e75","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-2"},{"bbox":[86,265,500,279],"type":"text","angle":0,"index":3,"text":"通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入，然后就可以一行一行地看。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"290a0056-9a89-40e6-bb62-9a626d6034e6","page_size":[595,841],"block_position":"44-3"},{"bbox":[88,282,129,294],"index":4,"angle":0,"type":"code","text":"```txt\ncut命令 \n```","id":"ad5af914-fb04-48db-9445-fe5b23b7e6b4","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-4"},{"bbox":[88,296,195,309],"type":"text","angle":0,"index":5,"text":"打印每一行的某一字段 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"25038a32-115e-4939-a349-50f409faf6cf","page_size":[595,841],"block_position":"44-5"},{"bbox":[88,312,504,341],"type":"text","angle":0,"index":6,"text":"打印/etc/passwd 文件中以: 为分隔符的第 1 个字段和第 6 个字段分别表示用户名和其家 目录： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"63f72633-d8cc-4387-a25d-36020e94f63a","page_size":[595,841],"block_position":"44-6"},{"bbox":[88,343,218,356],"index":7,"angle":0,"type":"code","text":"```batch\ncut /etc/passwd -d ':-' -f 1,6 \n```","id":"40944c96-71d8-42fa-b176-6a6b38468ab3","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-7"},{"bbox":[88,359,308,372],"type":"text","angle":0,"index":8,"text":"打印 /etc/passwd 文件中每一行的前 N 个字符： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"bc3a1c11-a405-45e9-96b9-75091a488fbc","page_size":[595,841],"block_position":"44-8"},{"bbox":[88,375,198,387],"index":9,"angle":0,"type":"code","text":"```txt\n前五个（包含第五个） \n```","id":"624c80fb-3289-452f-babf-cbc3bddf41df","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-9"},{"bbox":[88,391,190,403],"index":10,"angle":0,"type":"code","text":"```batch\ncut /etc/passwd -c -5 \n```","id":"968cabff-b686-42ff-9076-d5f88cf1d0fe","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-10"},{"bbox":[88,406,229,418],"index":11,"angle":0,"type":"code","text":"```txt\n前五个之后的（包含第五个） \n```","id":"cbb1a15f-4c17-4f7d-8f99-e3eec92d962e","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-11"},{"bbox":[99,423,201,434],"index":12,"angle":0,"type":"code","text":"```txt\ncut /etc/passwd -c 5- \n```","id":"4db8c85f-0a46-42fd-b861-ab1febcc03d6","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-12"},{"bbox":[88,438,130,449],"index":13,"angle":0,"type":"code","text":"```txt\n第五个 \n```","id":"9fb9469a-046b-468c-8025-04781a7573ad","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-13"},{"bbox":[88,454,188,465],"index":14,"angle":0,"type":"code","text":"```batch\ncut /etc/passwd -c 5 \n```","id":"562c0cb2-292f-4347-805e-1a2ab86c9d97","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-14"},{"bbox":[88,469,227,481],"index":15,"angle":0,"type":"code","text":"```txt\n2到5之间的（包含第五个） \n```","id":"b254451d-a709-479f-bfa8-c986aa136d19","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-15"},{"bbox":[88,485,197,497],"index":16,"angle":0,"type":"code","text":"```batch\ncut /etc/passwd -c 2-5 \n```","id":"1788c152-a679-44d1-a400-5fd4ee27f211","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-16"},{"bbox":[86,515,500,560],"type":"text","angle":0,"index":17,"text":"输出时，cut 直接拼接 \"one\" 和 \"three\"，不添加任何字符，所以结果是 \"onethree\" 但你的测试显示输出是\"one:three\"，这说明：你的cut 版本（可能是某些定制版或不同 环境）可能行为略有不同 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"81d25ab4-8140-4ded-9cc7-273df6ed3325","page_size":[595,841],"block_position":"44-17"},{"bbox":[88,562,201,574],"index":18,"angle":0,"type":"code","text":"```txt\n-d, -- delimiter=DELIM \n```","id":"5f308a2b-6e17-42e5-9beb-e694e1b1a081","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-18"},{"bbox":[86,577,318,590],"type":"text","angle":0,"index":19,"text":"作用：指定字段的分隔符（默认是 TAB 制表符）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"ec59c827-afb2-465e-a9a6-5903c6809958","page_size":[595,841],"block_position":"44-19"},{"bbox":[88,593,166,605],"index":20,"angle":0,"type":"code","text":"```txt\n-f, --fields=LIST \n```","id":"e596b449-7159-44b4-8464-39333daaf4c4","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":44,"page_size":[595,841],"block_position":"44-20"},{"bbox":[86,608,419,621],"type":"text","angle":0,"index":21,"text":"作用：选择要提取的字段（列），可以指定单个字段、多个字段或范围。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"f905cb2a-e55c-417e-8b90-d5259905fb65","page_size":[595,841],"block_position":"44-21"},{"bbox":[87,660,154,678],"type":"title","angle":0,"index":22,"text":"# grep 命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":44,"id":"6bf8b679-6f40-4d29-851a-e096086efb08","page_size":[595,841],"block_position":"44-22"},{"bbox":[86,726,505,756],"type":"text","angle":0,"index":23,"text":"grep（global search regular expression）是一个强大的文本搜索工具。grep 使用正则 表达式搜索文本，并把匹配的行打印出来。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":44,"id":"5f5c9308-aea6-4b35-8741-35d1c5c7ee7b","page_size":[595,841],"block_position":"44-23"}],[{"bbox":[86,79,310,92],"type":"text","angle":0,"index":0,"text":"UNIX 的 grep 家族包括 grep、egrep 和 fgrep： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"dba89638-e011-4653-80a8-cac406da7baf","page_size":[595,841],"block_position":"45-0"},{"bbox":[86,95,435,108],"type":"text","angle":0,"index":1,"text":"grep 使用 Basic regular expression (BRE) 书写匹配模式，等效于 grep -G ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"85fcddf5-26ee-4c5d-b536-578d120ec5c7","page_size":[595,841],"block_position":"45-1"},{"bbox":[86,110,458,123],"type":"text","angle":0,"index":2,"text":"egrep 使用 Extended regular expression (ERE) 书写匹配模式，等效于 grep -E ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"fa74eafb-ef19-4a57-a3e2-8552c18e891f","page_size":[595,841],"block_position":"45-2"},{"bbox":[86,125,503,155],"type":"text","angle":0,"index":3,"text":"fgrep 不使用任何正则表达式书写匹配模式（以固定字符串对待），执行快速搜索，等效 于 grep -F ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"97f1047a-c044-458b-aae4-2710de43808c","page_size":[595,841],"block_position":"45-3"},{"bbox":[86,172,372,185],"type":"text","angle":0,"index":4,"text":"在文本中或 stdin 中查找匹配字符串 grep 命令的一般形式为： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"b70ad9bf-9d2d-46ce-9887-0f74482cecbe","page_size":[595,841],"block_position":"45-4"},{"bbox":[86,188,298,201],"type":"text","angle":0,"index":5,"text":"grep [命令选项]... 用于匹配的表达式 [文件]... ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"dba58391-01dd-48e3-9290-b4dcff4e685f","page_size":[595,841],"block_position":"45-5"},{"bbox":[86,203,245,216],"type":"text","angle":0,"index":6,"text":"grep [options] PATTERN [FILE...] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"cd90de48-f66b-42e2-85f3-1f90a0220156","page_size":[595,841],"block_position":"45-6"},{"bbox":[86,219,189,232],"type":"text","angle":0,"index":7,"text":"PATTERN 是查找条件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"4793227c-143e-44da-a22d-d8dee8a672c8","page_size":[595,841],"block_position":"45-7"},{"bbox":[87,234,174,248],"type":"text","angle":0,"index":8,"text":"可以是普通字符串 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"5309a9ad-ec05-49e3-bbf0-9527fd2e02c4","page_size":[595,841],"block_position":"45-8"},{"bbox":[86,250,310,263],"type":"text","angle":0,"index":9,"text":"可以是正则表达式，通常用单引号将RE括起来。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"4ec6aa2a-07c1-403e-9fd5-b54b1856cef2","page_size":[595,841],"block_position":"45-9"},{"bbox":[86,265,503,294],"type":"text","angle":0,"index":10,"text":"FILE 是要查找的文件，可以是用空格间隔的多个文件，也可是使用Shell的通配符在多个 文件中查找PATTERN，省略时表示在标准输入中查找。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"6724380d-d242-439b-a0d7-59fc33b0cd24","page_size":[595,841],"block_position":"45-10"},{"bbox":[86,297,486,311],"type":"text","angle":0,"index":11,"text":"grep 命令不会对输入文件进行任何修改或影响，可以使用输出重定向将结果存为文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"2e168fe1-ef2d-46b0-9667-bd5355545027","page_size":[595,841],"block_position":"45-11"},{"bbox":[85,324,594,611],"index":12,"angle":0,"type":"table_body","img_path":"/","id":"2ddb5adb-ced1-4f72-8e65-c5de85980e2f","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>-c</td><td>只显示匹配行的次数</td></tr><tr><td>-i</td><td>搜索时不区分大小写</td></tr><tr><td>-n</td><td>输出匹配行的行号</td></tr><tr><td>-v</td><td>输出不匹配的行（反向选择）</td></tr><tr><td>-r</td><td>对目录（子目录）的所有文件递归地进行</td></tr><tr><td>-l</td><td>列出匹配PATTERN的文件名</td></tr><tr><td>--color=auto</td><td>对匹配内容高亮显示</td></tr><tr><td>-A NUM</td><td>同时输出匹配行的后NUM行</td></tr><tr><td>-B NUM</td><td>同时输出匹配行的前NUM行</td></tr><tr><td>-C NUM</td><td>同时输出匹配行的前、后各NUM行</td></tr></table>","page_idx":45,"page_size":[595,841],"block_position":"45-12"},{"bbox":[86,628,209,641],"type":"text","angle":0,"index":13,"text":"grep在文件中查找字符串 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"ab2a4269-d4c3-4f34-baf6-dae032e64c61","page_size":[595,841],"block_position":"45-13"},{"bbox":[86,643,196,657],"type":"text","angle":0,"index":14,"text":"grep 表达式 目标文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"234b82ff-0623-45bb-8681-46567abfd4c6","page_size":[595,841],"block_position":"45-14"},{"bbox":[86,659,163,672],"type":"text","angle":0,"index":15,"text":"grep “abc” file1 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"4785d70b-0497-43d5-9cc0-503f2bd317b1","page_size":[595,841],"block_position":"45-15"},{"bbox":[86,674,173,688],"type":"text","angle":0,"index":16,"text":"ls –l | grep “^-r.x” ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"c07096e4-93bd-46f8-8620-0bbd56498b92","page_size":[595,841],"block_position":"45-16"},{"bbox":[86,705,504,734],"type":"text","angle":0,"index":17,"text":"xargs 是一条 UNIX 和类 UNIX 操作系统的常用命令。它的作用是将参数列表转换成小块 分段传递给其他命令，以避免参数列表过长的问题。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"7ebbd842-6f2a-4396-bc90-74186fdfc9ee","page_size":[595,841],"block_position":"45-17"},{"bbox":[86,736,504,750],"type":"text","angle":0,"index":18,"text":"这 个命令在 有些时候十分 有 用 ，特别是当用 来处理 产生大量输出 结果的命令如 fin ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":45,"id":"82311f9a-f6da-4805-894e-002c2937c342","page_size":[595,841],"block_position":"45-18"}],[{"bbox":[86,79,214,92],"type":"text","angle":0,"index":0,"text":"d，locate 和 grep 的结果。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"196b20cb-2350-49f9-b902-c3a737040d1d","page_size":[595,841],"block_position":"46-0"},{"bbox":[86,95,304,108],"type":"text","angle":0,"index":1,"text":"cut -d: -f1 $<$ /etc/passwd | sort | xargs echo ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"86a72cfc-8159-415f-9d41-8b9681d36319","page_size":[595,841],"block_position":"46-1"},{"bbox":[86,110,504,139],"type":"text","angle":0,"index":2,"text":"上面这个命令用于将 /etc/passwd 文件按 : 分割取第一个字段排序后，使用 echo 命令生 成一个列表。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"1e3f734a-c4b4-4f99-8f08-c9de7b7eed25","page_size":[595,841],"block_position":"46-2"},{"bbox":[87,142,153,153],"index":3,"angle":0,"type":"table_caption","text":"文本分析命令","id":"84ad39f4-ffb8-4a2e-8b72-30ae5f2fb954","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"page_size":[595,841],"block_position":"46-3"},{"bbox":[88,155,595,446],"index":4,"angle":0,"type":"table_body","img_path":"/","id":"bc06faf1-0763-48f9-9d91-520fa22c55b9","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>命令</td><td>功能</td></tr><tr><td>wc</td><td>统计文本</td></tr><tr><td>sort</td><td>以行为单位对文本文件排序</td></tr><tr><td>uniq</td><td>删除文本文件中连续的重复的行</td></tr><tr><td>diff</td><td>比较两个文本文件的差异</td></tr><tr><td>diff3</td><td>比较三个文本文件的差异</td></tr><tr><td>patch</td><td>为文本文件打补丁</td></tr><tr><td>aspell</td><td>为文本文件做拼写检查（西文）</td></tr></table>","page_idx":46,"page_size":[595,841],"block_position":"46-4"},{"bbox":[86,484,141,500],"type":"title","angle":0,"index":5,"text":"# wc 命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":46,"id":"3042bd51-0649-44fa-8013-34f3aa7ef8e7","page_size":[595,841],"block_position":"46-5"},{"bbox":[86,534,505,548],"type":"text","angle":0,"index":6,"text":"用于统计并输出一个文件中行、单词和字节的数目，比如输出 /etc/passwd 文件的统计信 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"50cf1325-96cc-4d83-96dd-9003a4d8cdd3","page_size":[595,841],"block_position":"46-6"},{"bbox":[88,550,105,562],"type":"text","angle":0,"index":7,"text":"息： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"b2486a3e-5f92-48b7-b4a6-0a9b369fee0f","page_size":[595,841],"block_position":"46-7"},{"bbox":[88,565,166,578],"type":"text","angle":0,"index":8,"text":"wc /etc/passwd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"2745c500-95fe-464e-8c39-ce4d01628d81","page_size":[595,841],"block_position":"46-8"},{"bbox":[88,581,290,594],"type":"text","angle":0,"index":9,"text":"功能：统计文本文件的行数、字数、字符数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"e42f51c7-8e80-4e63-aca3-34ee6fb1b649","page_size":[595,841],"block_position":"46-9"},{"bbox":[88,597,220,610],"type":"text","angle":0,"index":10,"text":"格式：wc [选项] [<文件> …] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"5b1df1cb-4fb3-4c1a-8591-4e470abb90f5","page_size":[595,841],"block_position":"46-10"},{"bbox":[88,613,111,624],"type":"text","angle":0,"index":11,"text":"举例 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"6b32c71b-69bf-404f-901b-515820026e77","page_size":[595,841],"block_position":"46-11"},{"bbox":[88,628,130,640],"type":"text","angle":0,"index":12,"text":"$\\$ 1$ wc file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"e0f7c2bd-72f8-43b1-be13-88b6d03ad4b9","page_size":[595,841],"block_position":"46-12"},{"bbox":[88,644,139,655],"type":"text","angle":0,"index":13,"text":"$\\$ 1$ wc -l file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"a3d5b516-eb7a-4163-963e-033c33de8369","page_size":[595,841],"block_position":"46-13"},{"bbox":[169,644,223,655],"type":"text","angle":0,"index":14,"text":"# 统计行数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"9561b2b0-c224-46db-a58f-992f44180528","page_size":[595,841],"block_position":"46-14"},{"bbox":[88,660,143,671],"type":"text","angle":0,"index":15,"text":"$\\$ 1$ wc -w file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"bc605313-31df-477d-a885-88b58ef1af0e","page_size":[595,841],"block_position":"46-15"},{"bbox":[169,660,223,671],"type":"text","angle":0,"index":16,"text":"# 统计字数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"aae9bbb7-4d28-40cf-a001-c0d0e6ae1ec9","page_size":[595,841],"block_position":"46-16"},{"bbox":[88,675,141,686],"type":"text","angle":0,"index":17,"text":"$\\$ 1$ wc -c file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"bde658bc-db5d-436b-be51-3cafb0607100","page_size":[595,841],"block_position":"46-17"},{"bbox":[169,675,233,687],"type":"text","angle":0,"index":18,"text":"# 统计字符数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"be575df1-2a5b-4213-ae17-b60ed01438c4","page_size":[595,841],"block_position":"46-18"},{"bbox":[88,690,141,702],"type":"text","angle":0,"index":19,"text":"$\\$ 1$ wc -L file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"a361ed2f-880a-485d-b75f-e715cdb96a8e","page_size":[595,841],"block_position":"46-19"},{"bbox":[169,690,276,703],"type":"text","angle":0,"index":20,"text":"# 统计最长一行的长度 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":46,"id":"32375db9-d69c-496b-a5c9-c94d62ea5434","page_size":[595,841],"block_position":"46-20"}],[{"bbox":[88,85,149,101],"type":"title","angle":0,"index":0,"text":"# Sort 排序","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":47,"id":"35c7b585-4ec8-4d73-bb79-0cee2d31095b","page_size":[595,841],"block_position":"47-0"},{"bbox":[86,136,247,148],"type":"text","angle":0,"index":1,"text":"功能：以行为单位对文件进行排序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"e06b3a22-13d6-4a2a-bfbd-4f330a8a5efd","page_size":[595,841],"block_position":"47-1"},{"bbox":[87,151,225,164],"type":"text","angle":0,"index":2,"text":"格式：sort [选项] [<文件> …] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"308bf959-3ccb-4a73-af5b-5cac92b6717e","page_size":[595,841],"block_position":"47-2"},{"bbox":[88,167,111,179],"type":"text","angle":0,"index":3,"text":"选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"69976dba-32cf-41e0-a402-a2d30ea3b41d","page_size":[595,841],"block_position":"47-3"},{"bbox":[88,211,595,438],"index":4,"angle":0,"type":"table_body","img_path":"/","id":"b948203c-31cc-4faa-b73c-ccee6de00632","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>-r</td><td>逆向排序</td></tr><tr><td>-f</td><td>忽略字母的大小写</td></tr><tr><td>-n</td><td>根据字符串的数值进行排序</td></tr><tr><td>-u</td><td>对相同的行只输出一行</td></tr><tr><td>-t c</td><td>选项使用c做为列的间隔符</td></tr><tr><td>-b</td><td>忽略前导的空格</td></tr><tr><td>-i</td><td>只考虑可打印字符</td></tr><tr><td>-k N</td><td>以第N列进行排序（默认以空格或制表符作为列的间隔符）</td></tr></table>","page_idx":47,"page_size":[595,841],"block_position":"47-4"},{"bbox":[86,455,168,467],"type":"text","angle":0,"index":5,"text":"默认为字典排序： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"11f6b582-0783-40aa-8c0c-66ee5a4f9823","page_size":[595,841],"block_position":"47-5"},{"bbox":[87,471,198,484],"type":"text","angle":0,"index":6,"text":"cat /etc/passwd | sort ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"fd62afd7-24f8-487c-871d-9b1ad4de87f3","page_size":[595,841],"block_position":"47-6"},{"bbox":[87,502,136,514],"type":"text","angle":0,"index":7,"text":"反转排序： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"0338f830-d2de-4c69-a115-06fc02344288","page_size":[595,841],"block_position":"47-7"},{"bbox":[87,518,209,531],"type":"text","angle":0,"index":8,"text":"cat /etc/passwd | sort -r ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"b1a659d7-69c6-47dc-b2c2-66871e0a6294","page_size":[595,841],"block_position":"47-8"},{"bbox":[88,534,168,545],"type":"text","angle":0,"index":9,"text":"按特定字段排序： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"b5285590-9d95-44c4-8322-280dabd09bbc","page_size":[595,841],"block_position":"47-9"},{"bbox":[88,549,236,562],"type":"text","angle":0,"index":10,"text":"cat /etc/passwd | sort -t':' -k 3 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"9533c7ae-b44a-4163-aedd-2d7d6581209a","page_size":[595,841],"block_position":"47-10"},{"bbox":[86,579,504,624],"type":"text","angle":0,"index":11,"text":"上面的 -t 参数用于指定字段的分隔符，这里是以\":\"作为分隔符；-k 字段号 用于指定对哪 一个字段进行排序。这里 /etc/passwd 文件的第三个字段为数字，默认情况下是以字典序 排序的，如果要按照数字排序就要加上-n 参数： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"74da7264-1961-4388-b2d4-59ae9925e13a","page_size":[595,841],"block_position":"47-11"},{"bbox":[87,627,248,640],"type":"text","angle":0,"index":12,"text":"cat /etc/passwd | sort -t':' -k 3 -n ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"b131cf97-631c-4fe2-a1e2-21250318cf60","page_size":[595,841],"block_position":"47-12"},{"bbox":[87,643,276,655],"type":"text","angle":0,"index":13,"text":"uniq 命令可以用于过滤或者输出重复行。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"002ecca9-067e-4728-9f7a-5919b4c944e7","page_size":[595,841],"block_position":"47-13"},{"bbox":[105,658,179,671],"type":"text","angle":0,"index":14,"text":"过滤重复行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":47,"id":"033fc1f9-c853-451c-9819-11c1c267b5df","page_size":[595,841],"block_position":"47-14"}],[{"bbox":[88,85,173,103],"type":"title","angle":0,"index":0,"text":"# History 命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":48,"id":"4aeeab30-6536-4fc1-bacf-57a6fd87d2f5","page_size":[595,841],"block_position":"48-0"},{"bbox":[86,136,505,180],"type":"text","angle":0,"index":1,"text":"我们可以使用 history 命令查看最近执行过的命令（实际为读取${SHELL}_history 文件,如 我们环境中的~/.zsh_history 文件），不过你可能只想查看使用了哪个命令而不需要知道 具体干了什么，那么你可能就会要想去掉命令后面的参数然后去掉重复的命令： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"9aaa1026-d959-42be-aeff-abef5d3fc659","page_size":[595,841],"block_position":"48-1"},{"bbox":[87,182,276,196],"type":"text","angle":0,"index":2,"text":"history | cut -c 8- | cut -d ' ' -f 1 | uniq ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"780c0213-6e83-4840-8317-2ec0be303ace","page_size":[595,841],"block_position":"48-2"},{"bbox":[86,213,505,258],"type":"text","angle":0,"index":3,"text":"然后经过层层过滤，你会发现确是只输出了执行的命令那一列，不过去重效果好像不明显 仔细看你会发现它确实去重了，只是不那么明显，之所以不明显是因为uniq命令只能去 连续重复的行，不是全文去重，所以要达到预期效果，我们先排序： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"47c73917-e0d5-4b1c-9bbc-4844e0cc2b3a","page_size":[595,841],"block_position":"48-3"},{"bbox":[86,260,307,275],"type":"text","angle":0,"index":4,"text":"history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"a286a569-6619-4e8b-a3f9-d4d6093b6851","page_size":[595,841],"block_position":"48-4"},{"bbox":[87,276,121,289],"type":"text","angle":0,"index":5,"text":"# 或者 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"0882f6be-4ef4-4f60-a692-be73e6549c1e","page_size":[595,841],"block_position":"48-5"},{"bbox":[87,291,285,305],"type":"text","angle":0,"index":6,"text":"history | cut -c 8- | cut -d ' ' -f 1 | sort -u ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"2bd4439a-f953-4f95-97cc-db578a0b7d3a","page_size":[595,841],"block_position":"48-6"},{"bbox":[86,322,492,336],"type":"text","angle":0,"index":7,"text":"这就是 Linux/UNIX 哲学吸引人的地方，大繁至简，一个命令只干一件事却能干到最好。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"a5785257-6bf7-4042-adfd-d71f64922e9a","page_size":[595,841],"block_position":"48-7"},{"bbox":[105,338,180,351],"type":"text","angle":0,"index":8,"text":"输出重复行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"40d7bbb8-18fb-4cba-8ce2-377ec2ff445f","page_size":[595,841],"block_position":"48-8"},{"bbox":[86,354,330,367],"type":"text","angle":0,"index":9,"text":"# 输出重复过的行（重复的只输出一个）及重复次数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"b49b8ea3-0729-4571-88f3-e2b21e971909","page_size":[595,841],"block_position":"48-9"},{"bbox":[87,370,324,383],"type":"text","angle":0,"index":10,"text":"history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq -dc ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"ba47c919-12d6-40c7-a3f6-f428409a9a36","page_size":[595,841],"block_position":"48-10"},{"bbox":[88,386,183,397],"type":"text","angle":0,"index":11,"text":"# 输出所有重复的行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"bd0b4e37-26ce-484b-a82b-ca925d365935","page_size":[595,841],"block_position":"48-11"},{"bbox":[87,401,319,414],"type":"text","angle":0,"index":12,"text":"history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq -D ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"cfc1cb5f-c655-49d9-bee0-4ba1059c17b4","page_size":[595,841],"block_position":"48-12"},{"bbox":[88,417,177,429],"type":"text","angle":0,"index":13,"text":"没有 sort 则会重复 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"6b3c8263-13f6-4013-9055-218002cedaa5","page_size":[595,841],"block_position":"48-13"},{"bbox":[87,452,180,470],"type":"title","angle":0,"index":14,"text":"# 比较 compare","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":48,"id":"6bf9499a-4ed5-437d-9470-e04d9a3b6ccc","page_size":[595,841],"block_position":"48-14"},{"bbox":[86,534,209,547],"type":"text","angle":0,"index":15,"text":"cmp 发现第一处不同停止 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"a862f448-522b-40bd-82d2-099f5f31be25","page_size":[595,841],"block_position":"48-15"},{"bbox":[87,550,271,562],"type":"text","angle":0,"index":16,"text":"comm 显示两个文件的相同与不同之处 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"7effc6b8-c27f-4895-a62b-bbd89ab78a92","page_size":[595,841],"block_position":"48-16"},{"bbox":[87,565,298,578],"type":"text","angle":0,"index":17,"text":"diff 按行比较不同，显示所有不同的行的信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"3aa618b6-04f2-4f2c-8e6a-15da509f4441","page_size":[595,841],"block_position":"48-17"},{"bbox":[87,587,202,603],"type":"title","angle":0,"index":18,"text":"# 文本文件处理命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":48,"id":"c05eb688-a968-4a34-97c7-8a3f152ffead","page_size":[595,841],"block_position":"48-18"},{"bbox":[94,709,118,723],"type":"text","angle":0,"index":19,"text":"命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"814a078f-97f4-4895-b610-c5bf93761f36","page_size":[595,841],"block_position":"48-19"},{"bbox":[255,710,279,723],"type":"text","angle":0,"index":20,"text":"功能 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":48,"id":"0136a30f-f7c0-4767-8987-c545a9c9b61c","page_size":[595,841],"block_position":"48-20"}],[{"bbox":[88,76,595,401],"index":0,"angle":0,"type":"table_body","img_path":"/","id":"c7e807c1-d998-492f-b770-6f35ef0b961a","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>tr</td><td>字符替换</td></tr><tr><td>sed</td><td>流编辑器，常用于字符串替换</td></tr><tr><td>paste</td><td>纵向合并多个文本</td></tr><tr><td>expand</td><td>将文件中的制表符转换为空格</td></tr><tr><td>unexpand</td><td>将文件中的空格转换为制表符</td></tr><tr><td>dos2unix</td><td>将 DOS 格式的文本转换成 UNIX 格式</td></tr><tr><td>unix2dos</td><td>将 UNIX 格式的文本转换成 DOS 格式</td></tr><tr><td>iconv</td><td>将文本从一种编码转换成另一种编码</td></tr></table>","page_idx":49,"page_size":[595,841],"block_position":"49-0"},{"bbox":[88,404,132,416],"type":"title","angle":0,"index":1,"text":"# Sed 命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":49,"id":"b6989d79-4d2b-4598-b427-6ae01326e409","page_size":[595,841],"block_position":"49-1"},{"bbox":[87,418,505,463],"type":"text","angle":0,"index":2,"text":"sed 是一个流编辑器（stream editor）。sed 是一个非交互式的行编辑器，它在命令行中 输入编辑命令、指定被处理的输入文件，然后在屏幕上查看输出。输入文件可以是指定的 文件名，也可以来自一个管道的 输出。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"c1670fd8-410f-494d-b331-afc6ec16d043","page_size":[595,841],"block_position":"49-2"},{"bbox":[87,465,505,494],"type":"text","angle":0,"index":3,"text":"与vi 不同的是 sed 能够过滤来自管道的输入。在 sed 编辑器运行的时候不必人工干涉，所 以 sed 常常被称作批编辑器 。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"d9517937-c5ac-47b7-99b7-5dd633aa65af","page_size":[595,841],"block_position":"49-3"},{"bbox":[86,497,504,525],"type":"text","angle":0,"index":4,"text":"sed 默认不改变输入文件的内容，且总是将处理结果输出到标准输出，可以使用输出重定 向将sed 的输出保存到文件中。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"ce133bce-8718-4f7d-836d-df7eb7b2cc16","page_size":[595,841],"block_position":"49-4"},{"bbox":[88,544,112,555],"type":"title","angle":0,"index":5,"text":"# 格式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":49,"id":"e3e0555f-21ba-4b21-b923-36666489660a","page_size":[595,841],"block_position":"49-5"},{"bbox":[87,559,365,573],"type":"text","angle":0,"index":6,"text":"sed [选项] [-e] cmd1 [[-e cmd2] ... [-e cmdn]] [input-file]... ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"da6cd9bf-f006-49d9-8300-26a5749bf682","page_size":[595,841],"block_position":"49-6"},{"bbox":[88,575,112,587],"type":"title","angle":0,"index":7,"text":"# 说明","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":49,"id":"68bfa913-d7b7-41b6-973b-eb00775b5af2","page_size":[595,841],"block_position":"49-7"},{"bbox":[86,590,509,618],"type":"text","angle":0,"index":8,"text":"在命令行上执行sed编辑命令。可以指定多个编辑命令，每个编辑命令前都要使用 -e 参数， sed 将对这些编辑命令依次进行处理。若只有一个编辑命令时，-e 可以省略。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"e07ad175-aa47-4805-b65e-6a39cf1b85ad","page_size":[595,841],"block_position":"49-8"},{"bbox":[87,621,326,634],"type":"text","angle":0,"index":9,"text":"每个sed的编辑命令cmdX均应使用单引号括起来。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"e0514f52-9d67-4c73-8025-f64d2a0f1028","page_size":[595,841],"block_position":"49-9"},{"bbox":[86,637,505,666],"type":"text","angle":0,"index":10,"text":"input-file：sed 处理的文件列表，若省略，sed 将从标准输入中读取输入，也可以从输入 重定向或管道获得输入。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"a1f46eca-0de4-4291-8601-298a307cdec8","page_size":[595,841],"block_position":"49-10"},{"bbox":[88,669,111,681],"type":"title","angle":0,"index":11,"text":"# 选项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":49,"id":"e4a4f2fa-de4f-433a-a60c-2498226d9971","page_size":[595,841],"block_position":"49-11"},{"bbox":[87,684,266,697],"type":"text","angle":0,"index":12,"text":"-r：使用扩展正则表达式进行模式匹配 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"c1bd85ad-74f0-4900-8585-8aad00ebb1b5","page_size":[595,841],"block_position":"49-12"},{"bbox":[87,699,276,712],"type":"text","angle":0,"index":13,"text":"-i：直接对输入文件进行sed的命令操作 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"f3d17eb0-9f65-401f-a645-f278666d49fc","page_size":[595,841],"block_position":"49-13"},{"bbox":[87,715,139,727],"type":"text","angle":0,"index":14,"text":"iconv 命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"f62af46d-4460-4282-a827-49de4a0904c7","page_size":[595,841],"block_position":"49-14"},{"bbox":[86,730,289,743],"type":"text","angle":0,"index":15,"text":"功能：将文件从一种编码转换成另一种编码 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"7f7f4731-60b3-47db-8873-f91435dd87bb","page_size":[595,841],"block_position":"49-15"},{"bbox":[87,746,235,759],"type":"text","angle":0,"index":16,"text":"格式：iconv [选项] <输入文件> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":49,"id":"9e29b9b0-b597-442c-bbf0-f700ebd201e3","page_size":[595,841],"block_position":"49-16"}],[{"bbox":[88,79,112,91],"type":"title","angle":0,"index":0,"text":"# 选项","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":50,"id":"7447e23c-33d9-40c6-9aed-1c42f4242c8c","page_size":[595,841],"block_position":"50-0"},{"bbox":[87,95,255,107],"type":"text","angle":0,"index":1,"text":"-f <encoding> : 指定原始文本编码。 ","id":"889504ec-bedf-44d0-99eb-8aa6ebaa9924","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-1"},{"bbox":[87,111,255,123],"type":"text","angle":0,"index":2,"text":"-t <encoding> : 指定要转换的编码。 ","id":"e79cc88b-4864-46e5-804c-c8ce9f2d5e08","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-2"},{"bbox":[87,126,367,138],"type":"text","angle":0,"index":3,"text":"-o <output file> : 指定输出文件，而不是在标准输出上显示。 ","id":"27ea6fd6-933d-49a3-af3a-fde18dbfd42d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-3"},{"bbox":[87,142,224,154],"type":"text","angle":0,"index":4,"text":"-l : 列出所有已知编码字符集。 ","id":"7763d5e7-4d39-467c-9d18-2b0135bb4dca","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-4"},{"bbox":[87,190,154,209],"type":"title","angle":0,"index":6,"text":"# 进程管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":50,"id":"a0cb9d62-2c38-4e7f-bcc3-6298c42cbfb0","page_size":[595,841],"block_position":"50-5"},{"bbox":[86,246,327,259],"type":"text","angle":0,"index":7,"text":"首先程序与进程是什么？程序与进程又有什么区别？ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"cd941794-942a-41ce-8c3e-3672aeedea1c","page_size":[595,841],"block_position":"50-6"},{"bbox":[86,261,503,290],"type":"text","angle":0,"index":8,"text":"程序（program）：程序就是执行一系列有逻辑、有顺序结构的指令序列，可以实现某个 功能。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"3db4a643-bb95-4189-87cc-30a25b6ccf5d","page_size":[595,841],"block_position":"50-7"},{"bbox":[86,292,503,321],"type":"text","angle":0,"index":9,"text":"进 程（process） ： 进 程 是 程 序 在 一 个 数据集合上 的 一次 执行过程 ， 在早 期的 UNIX、Linux 2.4 及更早的版本中，它是系统进行资源分配和调度的独立基本单位。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"b87d6af8-5a6d-46e4-8974-4a88893dd05c","page_size":[595,841],"block_position":"50-8"},{"bbox":[86,324,504,353],"type":"text","angle":0,"index":10,"text":"就像做一道菜的菜谱（程序），当厨师按照这个菜谱（程序），把原材料（输入数据）进 行加工和处理（洗、切、搅拌、煎、炒、烹、炸等），然后得到了一道菜（输出结果）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"5430e931-ba11-4194-b528-d28c8a1fd768","page_size":[595,841],"block_position":"50-9"},{"bbox":[86,355,504,384],"type":"text","angle":0,"index":11,"text":"这就是程序的一次执行，就是进程。当执行完毕的时候，进程就结束了。可见，程序是静 态的，而进程是动态的。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"5c856da8-0240-4d2e-8219-999ddad1794e","page_size":[595,841],"block_position":"50-10"},{"bbox":[86,386,504,415],"type":"text","angle":0,"index":12,"text":"简单来说，程序是为了完成某种任务而设计的软件，比如 vim 是程序。什么是进程呢？进 程就是把程序执行一次。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"442426a2-6229-47bd-b4b1-5c826290971a","page_size":[595,841],"block_position":"50-11"},{"bbox":[86,417,473,431],"type":"text","angle":0,"index":13,"text":"程序只是一系列指令的集合，是一个静止的实体，而进程不同，进程有以下的特性： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"805615d9-7eca-47db-bb5a-46767f0116d0","page_size":[595,841],"block_position":"50-12"},{"bbox":[104,433,503,461],"type":"text","angle":0,"index":14,"text":"动态性：进程的实质是一次程序执行的过程，有创建、撤销等状态的变化。而程序 是一个静态的实体。 ","id":"bd4da54c-bb2e-4529-b958-4bfa654d2f19","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-13"},{"bbox":[104,465,503,492],"type":"text","angle":0,"index":15,"text":"并发性：进程可以做到在一个时间段内，有多个程序在运行中。程序只是静态的实 体，所以不存在并发性。 ","id":"d7ddef95-0d3a-48d1-89f7-322bca7c1fc5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-14"},{"bbox":[104,496,414,508],"type":"text","angle":0,"index":16,"text":"独立性：进程可以独立分配资源，独立接受调度，独立地运行。 ","id":"fdf88a3e-c840-4f6c-bc99-41c1523ba492","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-15"},{"bbox":[104,512,320,523],"type":"text","angle":0,"index":17,"text":"异步性：进程以不可预知的速度向前推进。 ","id":"ad70f10f-cf0a-45d7-95c5-7d36ad132277","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-16"},{"bbox":[104,527,498,555],"type":"text","angle":0,"index":18,"text":"结构性：进程拥有代码段、数据段、PCB（进程控制块，进程存在的唯一标志）。 也正是因为有结构性，进程才可以做到独立地运行。 ","id":"07c28bf3-7a0c-4a39-a370-705208a486a2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"page_size":[595,841],"block_position":"50-17"},{"bbox":[86,558,504,586],"type":"text","angle":0,"index":20,"text":"并发：在一个时间段内，宏观来看有多个程序都在活动，有条不紊的执行（每一瞬间只有 一个在执行，只是在一段时间有多个程序都执行过） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"7d1d81fc-78b1-4dcf-a733-107bb693de8b","page_size":[595,841],"block_position":"50-18"},{"bbox":[86,589,452,602],"type":"text","angle":0,"index":21,"text":"并行：在每一个瞬间，都有多个程序都在同时执行，这个必须有多个 CPU 才行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"2692882f-d7a0-4316-8fc7-fdc429811ee7","page_size":[595,841],"block_position":"50-19"},{"bbox":[86,604,508,634],"type":"text","angle":0,"index":22,"text":"引入进程是因为传统意义上的程序已经不足以描述 OS 中各种活动之间的动态性、并发性、 独立性还有相互制约性。程序就像一个公司，只是一些证书，文件的堆积（静态实体）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"22ba80ae-4705-4ce5-8c4a-4e1d3aa3d67c","page_size":[595,841],"block_position":"50-20"},{"bbox":[86,636,499,664],"type":"text","angle":0,"index":23,"text":"而当公司运作起来就有各个部门的区分，财务部，技术部，销售部等等，就像各个进程， 各个部门之间可以独立运做，也可以有交互（独立性、并发性）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"27c5498f-e132-4339-9389-5d34af419b30","page_size":[595,841],"block_position":"50-21"},{"bbox":[86,666,504,726],"type":"text","angle":0,"index":24,"text":"而随着程序的发展越做越大，又会继续细分，从而引入了线程的概念，当代多数操作系统 Linux 2.6 及更新的版本中，进程本身不是基本运行单位，而是线程的容器。就像上述所说 的，每个部门又会细分为各个工作小组（线程），而工作小组需要的资源需要向上级（进 程）申请。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"0a635e7d-9acc-47d6-9a12-b82974317579","page_size":[595,841],"block_position":"50-22"},{"bbox":[86,729,504,758],"type":"text","angle":0,"index":25,"text":"线程（thread）是操作系统能够进行运算调度的最小单位。它被包含在进程之中，是进程 中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流，一个进程中可以并发 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":50,"id":"657d0b69-d4a6-479c-88b9-61774fc1e540","page_size":[595,841],"block_position":"50-23"}],[{"bbox":[86,79,506,107],"type":"text","angle":0,"index":0,"text":"多个线程，每条线程并行执行不同的任务。因为线程中几乎不包含系统资源，所以执行更 快、更有效率。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"e991a741-5f2b-47e6-aa04-4152d1a14438","page_size":[595,841],"block_position":"51-0"},{"bbox":[86,110,506,155],"type":"text","angle":0,"index":1,"text":"简而言之,一个程序至少有一个进程,一个进程至少有一个线程。线程的划分尺度小于进程， 使得多线程程序的并发性高。另外，进程在执行过程中拥有独立的内存单元，而多个线程 共享内存，从而极大地提高了程序的运行效率。就如下图所示： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"15a8ab25-3680-493c-bf47-29306ba8621b","page_size":[595,841],"block_position":"51-1"},{"bbox":[86,172,506,200],"type":"text","angle":0,"index":2,"text":"大概明白进程是个什么样的存在后，我们需要进一步了解的就是进程分类。可以从两个角 度来分： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"f0a0f774-8329-408a-9569-1e3142cf20b4","page_size":[595,841],"block_position":"51-2"},{"bbox":[104,203,277,216],"type":"text","angle":0,"index":3,"text":"以进程的功能与服务的对象来分； ","id":"dddd6ba7-574a-4bba-940a-8c59b7f8fc1d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"page_size":[595,841],"block_position":"51-3"},{"bbox":[104,220,257,232],"type":"text","angle":0,"index":4,"text":"： 以应用程序的服务类型来分； ","id":"42f2346b-1f18-49eb-ad2a-e4b7eb19c3c3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"page_size":[595,841],"block_position":"51-4"},{"bbox":[86,235,336,248],"type":"text","angle":0,"index":6,"text":"第一个角度来看，我们可以分为用户进程与系统进程： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"1b7e4fed-2ac1-4631-9d3e-cd298a744e2a","page_size":[595,841],"block_position":"51-5"},{"bbox":[104,250,503,279],"type":"text","angle":0,"index":7,"text":"用户进程：通过执行用户程序、应用程序或称之为内核之外的系统程序而产生的进 程，此类进程可以在用户的控制下运行或关闭。 ","id":"57bb9fc1-ed95-427d-839f-98edc8afa4d2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"page_size":[595,841],"block_position":"51-6"},{"bbox":[104,281,503,325],"type":"text","angle":0,"index":8,"text":"系统进程：通过执行系统内核程序而产生的进程，比如可以执行内存资源分配和进 程切换等相对底层的工作；而且该进程的运行不受用户的干预，即使是 root 用户 也不能干预系统进程的运行。 ","id":"207e3e7d-6e83-4e41-adeb-a2bd5e031f95","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"page_size":[595,841],"block_position":"51-7"},{"bbox":[86,328,416,341],"type":"text","angle":0,"index":10,"text":"第二角度来看，我们可以将进程分为交互进程、批处理进程、守护进程 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"f0df1a3b-9e30-4366-bea8-acd9ce85ed92","page_size":[595,841],"block_position":"51-8"},{"bbox":[104,343,504,371],"type":"text","angle":0,"index":11,"text":"交互进程：由一个 Shell 终端启动的进程，在执行过程中，需要与用户进行交互操 作，可以运行于前台，也可以运行在后台。 ","id":"72d42d8d-5b5b-4c1e-8ec4-67ff28cd7442","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"page_size":[595,841],"block_position":"51-9"},{"bbox":[104,375,434,387],"type":"text","angle":0,"index":12,"text":"批处理进程：该进程是一个进程集合，负责按顺序启动其他的进程。 ","id":"e00a1d59-98ff-4f98-994a-3b414b075f2a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"page_size":[595,841],"block_position":"51-10"},{"bbox":[104,391,504,465],"type":"text","angle":0,"index":13,"text":"守护进程：守护进程是一直运行的一种进程，在 Linux 系统启动时启动，在系统关 闭时终止。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的 事件。例如 httpd 进程，一直处于运行状态，等待用户的访问。还有经常用的 计 划 任 务 进 程 cron（crond） 和 anacron（anacrond） ， 这 个 进 程 是守护进 程 （daemon），可以按照计划周期性的执行用户设定的某些任务。 ","id":"37ce0c5b-5c87-4bed-aac2-3fb487278769","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"page_size":[595,841],"block_position":"51-11"},{"bbox":[86,469,373,481],"type":"text","angle":0,"index":15,"text":"关于父进程与子进程便会提及这两个系统调用 fork() 与 exec() ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"50853005-f327-4086-8480-4db11a84db2b","page_size":[595,841],"block_position":"51-12"},{"bbox":[86,484,284,497],"type":"text","angle":0,"index":16,"text":"fork-exec 是由 Dennis M. Ritchie 创造的 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"1d0ea0ab-2743-4d06-9f17-01be6920de86","page_size":[595,841],"block_position":"51-13"},{"bbox":[86,500,505,544],"type":"text","angle":0,"index":17,"text":"fork() 是一个系统调用（system call），它的主要作用就是为当前的进程创建一个新的进 程，这个新的进程就是它的子进程，这个子进程除了父进程的返回值和 PID 以外其他的都 一模一样，如进程的执行代码段，内存信息，文件描述，寄存器状态等等 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"7ffde032-c926-4771-8351-2abe8ae5b2c0","page_size":[595,841],"block_position":"51-14"},{"bbox":[86,546,505,574],"type":"text","angle":0,"index":18,"text":"exec() 也是系统调用，作用是切换子进程中的执行程序也就是替换其从父进程复制过来的 代码段与数据段 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"ec5fb9aa-fa4a-4481-9178-313563e66c10","page_size":[595,841],"block_position":"51-15"},{"bbox":[86,577,505,636],"type":"text","angle":0,"index":19,"text":"既然子进程是通过父进程而衍生出来的，那么子进程的退出与资源的回收定然与父进程有 很大的相关性。当一个子进程要正常的终止运行时，或者该进程结束时它的主函数 main() 会执行 exit(n); 或者 return n，这里的返回值 n 是一个信号，系统会把这个 SIGCHLD 信 号传给其父进程，当然若是异常终止也往往是因为这个信号。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"0a33228c-d410-4a24-b693-81b1f0994b8d","page_size":[595,841],"block_position":"51-16"},{"bbox":[86,640,505,699],"type":"text","angle":0,"index":20,"text":"在将要结束的时候，子进程代码部分已经结束执行了，系统的资源也基本归还给系统了， 但若是其进程的进程控制块（PCB）仍驻留在内存中，代表这个进程还存在（因为 PCB 就 是进程存在的唯一标志，里面有 PID 等信息），并没有消亡，这样的进程称之为僵尸进程 （Zombie）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"57836d80-a9f1-43c0-a539-77c842d531e7","page_size":[595,841],"block_position":"51-17"},{"bbox":[86,702,505,762],"type":"text","angle":0,"index":21,"text":"正常情况下，父进程会收到两个返回值：exit code（SIGCHLD 信号）与 reason for termination（结束原因） 。之后，父进程会使用系统调用wait(&status) 获取子进程的退 出状态，然后内核从内存中释放已结束子进程的 PCB；而如若父进程没有这么做的话，子 进程的 PCB 就会一直驻留在内存中，一直留在系统中成为僵尸进程（Zombie）。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":51,"id":"9a6589c9-1804-4a7d-b538-81d7a8a364ef","page_size":[595,841],"block_position":"51-18"}],[{"bbox":[86,79,506,138],"type":"text","angle":0,"index":0,"text":"虽然僵尸进程是已经放弃了几乎所有内存空间，没有任何可执行代码，也不能被调度，仅 在进程列表中保留一个位置，记载该进程的退出状态等信息供其父进程收集，从而释放它 但是 Linux 系统中能使用的 PID 是有限的，如果系统中存在有大量的僵尸进程，系统将会 因为没有可用的 PID 从而导致不能产生新的进程。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"6c685a95-e639-4cb8-a59a-ede99d62bf02","page_size":[595,841],"block_position":"52-0"},{"bbox":[86,141,506,201],"type":"text","angle":0,"index":1,"text":"另外如果父进程结束（非正常的结束），未能及时收回子进程，子进程仍在运行，这样的 子进程称之为孤儿进程。在 Linux 系统中，孤儿进程一般会被 init 进程所“收养”，成为 init 的子进程。由 init 来做善后处理，所以它并不至于像僵尸进程那样无人问津，不管不 顾，僵尸进程大量存在会有危害。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"77e3e5eb-4a27-4a84-88e0-3c1287121bd6","page_size":[595,841],"block_position":"52-1"},{"bbox":[86,203,506,280],"type":"text","angle":0,"index":2,"text":"进程 0 是系统引导时创建的一个特殊进程，也称之为内核初始化，其最后一个动作就是调 用fork() 创建出一个子进程运行 /sbin/init 可执行文件,而该进程就是 $\\mathsf { P I D } { = } 1$ 的进程 1，而 进程 0 就转为交换进程（也被称为空闲进程），进程 1 （init 进程）是第一个用户态的进 程，再由它不断调用 fork() 来创建系统里其他的进程，所以它是所有进程的父进程或者祖 先进程。同时它是一个守护程序，直到计算机关机才会停止。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"a77f5460-2583-495e-9768-5cb10e6cb595","page_size":[595,841],"block_position":"52-2"},{"bbox":[86,281,506,326],"type":"text","angle":0,"index":3,"text":"每一个进程都会是一个进程组的成员，而且这个进程组是唯一存在的，他们是依靠 PGID（process group ID）来区别的，而每当一个进程被创建的时候，它便会成为其父进 程所在组中的一员。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"c2f1d8dc-0c48-4d6f-b878-5de728dcc527","page_size":[595,841],"block_position":"52-3"},{"bbox":[86,327,506,388],"type":"text","angle":0,"index":4,"text":"一般情况，进程组的 PGID 等同于进程组的第一个成员的 PID，并且这样的进程称为该进 程组的领导者,也就是领导进程，进程一般通过使用 getpgrp() 系统调用来寻找其所在组的 PGID，领导进程可以先终结，此时进程组依然存在，并持有相同的 PGID，直到进程组中 最后一个进程终结。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"8516dba0-9504-4ca3-ba6b-c32f8257de2f","page_size":[595,841],"block_position":"52-4"},{"bbox":[87,390,501,419],"type":"text","angle":0,"index":5,"text":"与进程组类似，每当一个进程被创建的时候，它便会成为其父进程所在 Session（会话） 中的一员，每一个进程组都会在一个 Session 中，并且这个 Session 是唯一存在的， ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"d73dd7e8-fa52-45ec-bd60-4cba3f5442b5","page_size":[595,841],"block_position":"52-5"},{"bbox":[86,422,505,482],"type":"text","angle":0,"index":6,"text":"Session 主要是针对一个 tty 建立，Session 中的每个进程都称为一个工作(job)。每个会话 可以连接一个终端(control terminal)。当控制终端有输入输出时，都传递给该会话的前台 进程组。Session 意义在于将多个 jobs 囊括在一个终端，并取其中的一个 job 作为前台， 来直接接收该终端的输入输出以及终端信号。 其他 jobs 在后台运行。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"213f32f5-8a4f-4db6-8598-ae235b450701","page_size":[595,841],"block_position":"52-6"},{"bbox":[87,484,442,497],"type":"text","angle":0,"index":7,"text":"前台（foreground）就是在终端中运行，能够与用户进行输入和输出的交互 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"99438b89-0352-44f6-b646-9e176341fe60","page_size":[595,841],"block_position":"52-7"},{"bbox":[86,499,505,528],"type":"text","angle":0,"index":8,"text":"后台（background）就是在终端中运行，但是不能与其进行任何的交互，也不会显示其 执行的过程 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"d61a6c38-331e-49fc-9e03-444f4f79ed87","page_size":[595,841],"block_position":"52-8"},{"bbox":[86,530,505,560],"type":"text","angle":0,"index":9,"text":"我们都知道当一个进程在前台运作时我们可以用 $\\mathsf { c t r l } + \\mathsf { c }$ 来终止它，但是若是在后台的话 就不行了。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"4d7d24ed-f77d-483e-9bf2-cbb2a6f8107a","page_size":[595,841],"block_position":"52-9"},{"bbox":[87,561,345,575],"type":"text","angle":0,"index":10,"text":"我们可以通过& 这个符号，让我们的命令在后台中运行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"f886acd9-0292-49bd-85ee-a63e0aa2f390","page_size":[595,841],"block_position":"52-10"},{"bbox":[88,577,107,589],"type":"text","angle":0,"index":11,"text":"ll & ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"d5e56293-ff92-4830-a1db-403443b11ad5","page_size":[595,841],"block_position":"52-11"},{"bbox":[86,593,506,622],"type":"text","angle":0,"index":12,"text":"图中所显示的 [1] 236 分别是该 job 的 job number 与该进程的 PID，而最后一行的 Done 表示该命令已经在后台执行完毕。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"a35b9f9b-87e6-4071-bc91-2f7966511881","page_size":[595,841],"block_position":"52-12"},{"bbox":[86,624,332,638],"type":"text","angle":0,"index":13,"text":"还可以通过 $\\mathsf { c t r l } + \\mathsf { z }$ 使当前工作停止并调到后台中去。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"85a4669c-5001-43a5-bcc6-37eed9e091f0","page_size":[595,841],"block_position":"52-13"},{"bbox":[86,640,506,669],"type":"text","angle":0,"index":14,"text":"被停止并放置在后台的工作可以使用jobs命令查看。（这里的描述有问题，应该是放置在 后台的工作，因为在后台运行的工作也可以） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"2b52ee1c-fe10-4671-b47a-1eccb51bea36","page_size":[595,841],"block_position":"52-14"},{"bbox":[88,671,112,684],"type":"text","angle":0,"index":15,"text":"jobs ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"de865072-4d65-452e-8df1-0cccdaf9c0bc","page_size":[595,841],"block_position":"52-15"},{"bbox":[86,687,506,762],"type":"text","angle":0,"index":16,"text":"其中第一列显示的为被放置后台 job 的编号，而第二列的 $+$ 表示最近(刚刚、最后)被放置 后台的 job，同时也表示预设的工作，也就是若是有什么针对后台 job 的操作，首先对预 设的 job，- 表示倒数第二（也就是在预设之前的一个）被放置后台的工作，倒数第三个 （再之前的）以后都不会有这样的符号修饰，第三列表示它们的状态，而最后一列表示该 进程执行的命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":52,"id":"438b7f1a-2577-4fe8-b217-10575f5c1d79","page_size":[595,841],"block_position":"52-16"}],[{"bbox":[86,79,287,91],"type":"text","angle":0,"index":0,"text":"可以通过 fg 命令将后台的工作调到前台来。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"249ff419-295b-4c7e-9229-239d7607cfda","page_size":[595,841],"block_position":"53-0"},{"bbox":[86,95,358,106],"type":"text","angle":0,"index":1,"text":"#后面不加参数提取预设工作，加参数提取指定工作的编号 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"77082407-b1c4-424e-8d9d-8c0b65217bea","page_size":[595,841],"block_position":"53-1"},{"bbox":[86,111,314,121],"type":"text","angle":0,"index":2,"text":"#ubuntu 在 zsh 中需要 $\\%$ ，在 bash 中不需要 $\\%$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"8560bcab-ad02-481c-81e3-2b2e07e765fa","page_size":[595,841],"block_position":"53-2"},{"bbox":[86,126,174,138],"type":"text","angle":0,"index":3,"text":"fg [%jobnumber] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"44cc556c-95b0-4b09-92e1-ca3f1f09047c","page_size":[595,841],"block_position":"53-3"},{"bbox":[86,141,498,153],"type":"text","angle":0,"index":4,"text":"之前通过ctrl + z 使得工作停止放置在后台，若是想让其在后台运作，可以使用如下命令： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"c8461caa-5362-4b64-8448-a05b99c8cb9f","page_size":[595,841],"block_position":"53-4"},{"bbox":[86,157,290,169],"type":"text","angle":0,"index":5,"text":"#与fg类似，加参则指定，不加参则取预设 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"07c94ac8-1034-45df-9b0f-f73ce3eadb9c","page_size":[595,841],"block_position":"53-5"},{"bbox":[86,173,176,185],"type":"text","angle":0,"index":6,"text":"bg [%jobnumber] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"990f3277-676c-45f4-9b9f-6e4ef7abb599","page_size":[595,841],"block_position":"53-6"},{"bbox":[86,188,503,216],"type":"text","angle":0,"index":7,"text":"既然有方法将被放置在后台的工作提至前台或者让它从停止变成继续在后台运行，当然也 有方法删除一个工作，或者重启等等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"3d268e18-052e-4383-a0e5-e814b58aa89a","page_size":[595,841],"block_position":"53-7"},{"bbox":[86,219,186,231],"type":"text","angle":0,"index":8,"text":"#kill的使用格式如下 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"709d570b-955f-4dad-9063-03e1fadf5e4e","page_size":[595,841],"block_position":"53-8"},{"bbox":[86,235,205,247],"type":"text","angle":0,"index":9,"text":"kill -signal %jobnumber ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"42ef6bca-8d7c-4a67-b59b-68a5784f1047","page_size":[595,841],"block_position":"53-9"},{"bbox":[86,265,321,279],"type":"text","angle":0,"index":10,"text":"#signal 从 1-64 个信号值可以选择，可以这样查看 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"b214dee0-6a0d-4d12-8b54-2fe59fe59bd5","page_size":[595,841],"block_position":"53-10"},{"bbox":[87,281,113,292],"type":"text","angle":0,"index":11,"text":"kill -l ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"e0708924-a303-4548-af82-10efac941909","page_size":[595,841],"block_position":"53-11"},{"bbox":[87,296,199,309],"type":"text","angle":0,"index":12,"text":"中常用的有这些信号值： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"044ceca0-b31b-4468-9f56-b8c31b65315e","page_size":[595,841],"block_position":"53-12"},{"bbox":[88,311,454,439],"index":13,"angle":0,"type":"table_body","img_path":"/","id":"10bc0849-3308-4da1-aa35-b0dca9baedd1","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>信号值</td><td>作用</td></tr><tr><td>-1</td><td>重新读取参数运行，类似与restart</td></tr><tr><td>-2</td><td>如同ctrl+c的操作退出</td></tr><tr><td>-9</td><td>强制终止该任务</td></tr><tr><td>-15</td><td>正常的方式终止该任务</td></tr></table>","page_idx":53,"page_size":[595,841],"block_position":"53-13"},{"bbox":[87,440,111,452],"type":"title","angle":0,"index":14,"text":"# 注意","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":53,"id":"f7f5275e-7c49-4fb5-846b-5d9d65ed7be7","page_size":[595,841],"block_position":"53-14"},{"bbox":[86,455,375,468],"type":"text","angle":0,"index":15,"text":"若是在使用 kill+信号值+pid，将会对 pid 对应的进程进行操作 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"bfd2ad30-db18-4bb9-a66d-a158d235cb4e","page_size":[595,841],"block_position":"53-15"},{"bbox":[86,470,503,499],"type":"text","angle":0,"index":16,"text":"若是在使用 kill+信号值 $+ \\%$ jobnumber，这时所操作的对象是 job，这个数字就是就当前 bash 中后台的运行的 job 的 ID ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"422a897f-dc2e-426f-a604-9cda180b6b82","page_size":[595,841],"block_position":"53-16"},{"bbox":[86,502,248,515],"type":"text","angle":0,"index":17,"text":"kill -9 3 # 终止 3 号进程，pid $^ { = 3 }$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"ca8d1441-2173-4438-bb48-77c3bd5d79ee","page_size":[595,841],"block_position":"53-17"},{"bbox":[86,518,262,531],"type":"text","angle":0,"index":18,"text":"kill $- 9 \\% 3$ # 终止 3 号 job，job $\\therefore d = 3$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"8af4a0ff-bbbc-48f1-9b7e-929a01564ab3","page_size":[595,841],"block_position":"53-18"},{"bbox":[86,533,504,608],"type":"text","angle":0,"index":19,"text":"不管在测试的时候、在实际的生产环境中，还是自己的使用过程中，难免会遇到一些进程 异常的情况，所以 Linux 为我们提供了一些工具来查看进程的状态信息。我们可以通 过top 实时的查看进程的状态，以及系统的一些信息（如 CPU、内存信息等），我们还可 以通过ps 来静态查看当前的进程信息，同时我们还可以使用 pstree 来查看当前活跃进程 的树形结构。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"f1c30d91-3d97-46cc-8c09-b7fe6eca24ef","page_size":[595,841],"block_position":"53-19"},{"bbox":[86,611,479,624],"type":"text","angle":0,"index":20,"text":"top 工具是我们常用的一个查看工具，能实时的查看我们系统的一些关键信息的变化: ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"44935ef3-b54d-4a67-a9d9-8857cff2c81b","page_size":[595,841],"block_position":"53-20"},{"bbox":[87,628,106,640],"type":"text","angle":0,"index":21,"text":"top ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"2ba94b98-45c3-413b-afa0-3fedb01c75e0","page_size":[595,841],"block_position":"53-21"},{"bbox":[86,642,504,687],"type":"text","angle":0,"index":22,"text":"top 是一个在前台执行的程序，所以执行后便进入到这样的一个交互界面，正是因为交互 界面我们才可以实时的获取到系统与进程的信息。在交互界面中我们可以通过一些指令来 操作和筛选。在此之前我们先来了解显示了哪些信息。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"87000ef4-8b31-422a-9bb3-248ff65ad3bc","page_size":[595,841],"block_position":"53-22"},{"bbox":[86,689,504,733],"type":"text","angle":0,"index":23,"text":"load average 在 wikipedia 中的解释是 the system load is a measure of the amount of work that a computer system is doing 也就是对当前 CPU 工作量的度量，具体来说也就 是指运行队列的平均长度，也就是等待 CPU 的平均进程数相关的一个计算值。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"a26b98a7-cd79-4f6d-b793-4e7ce7979047","page_size":[595,841],"block_position":"53-23"},{"bbox":[86,735,498,749],"type":"text","angle":0,"index":24,"text":"这是单个 CPU 单核的情况，而实际生活中我们需要将得到的这个值除以我们的核数来看。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":53,"id":"dc66ec5b-761d-4559-8650-4f8281b94c75","page_size":[595,841],"block_position":"53-24"}],[{"bbox":[86,79,337,91],"type":"text","angle":0,"index":0,"text":"我们可以通过以下的命令来查看 CPU 的个数与核心数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"401e76f5-7da5-4e4d-9c6d-6e9ae75eb551","page_size":[595,841],"block_position":"54-0"},{"bbox":[87,95,195,107],"type":"text","angle":0,"index":1,"text":"#查看物理CPU的个数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"9a42a7ff-72e5-4d71-b8a9-6f3b115b3641","page_size":[595,841],"block_position":"54-1"},{"bbox":[86,110,359,123],"type":"text","angle":0,"index":2,"text":"#cat /proc/cpuinfo |grep \"physical id\"|sort |uniq|wc -l ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"4ad01417-a1c6-4931-886d-cdd9b90f89aa","page_size":[595,841],"block_position":"54-2"},{"bbox":[86,141,183,154],"type":"text","angle":0,"index":3,"text":"#每个 cpu 的核心数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"b1599f63-5a54-4540-8531-58d355817f19","page_size":[595,841],"block_position":"54-3"},{"bbox":[86,157,342,170],"type":"text","angle":0,"index":4,"text":"cat /proc/cpuinfo |grep \"physical id\"|grep \"0\"|wc -l ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"2361df33-3af3-41cd-9555-1bade6275896","page_size":[595,841],"block_position":"54-4"},{"bbox":[86,187,504,232],"type":"text","angle":0,"index":5,"text":"通过上面的指数我们可以得知 load 的临界值为 1 ，但是在实际生活中，比较有经验的运 维或者系统管理员会将临界值定为 0.7。这里的指数都是除以核心数以后的值，不要混淆 了 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"12e6804f-8146-489a-957f-3f85b8c2d307","page_size":[595,841],"block_position":"54-5"},{"bbox":[86,234,504,263],"type":"text","angle":0,"index":6,"text":"通常我们都会先看 15 分钟的值来看这个大体的趋势，然后再看 5 分钟的值对比来看是否 有下降的趋势。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"920e849a-f8e8-4ac6-9643-813397fb14bb","page_size":[595,841],"block_position":"54-6"},{"bbox":[86,265,504,310],"type":"text","angle":0,"index":7,"text":"查看busybox 的代码可以知道，数据是每5 秒钟就检查一次活跃的进程数，然后计算出该 值，然后 load 从 /proc/loadavg 中读取的。而这个 load 的值是如何计算的呢，这是 load 的计算的源码 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"d6de8116-0fe3-439f-8c86-8031f8bd8617","page_size":[595,841],"block_position":"54-7"},{"bbox":[86,343,504,403],"type":"text","angle":0,"index":8,"text":"CPU 利用率是对一个时间段内 CPU 使用状况的统计，通过这个指标可以看出在某一个时 间段内 CPU 被占用的情况，而 Load Average 是 CPU 的 Load，它所包含的信息不是 CPU 的使用率状况，而是在一段时间内 CPU 正在处理以及等待 CPU 处理的进程数情况统计信 息，这两个指标并不一样。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"e15dada2-7891-4af4-a9b4-1ab8b5417669","page_size":[595,841],"block_position":"54-8"},{"bbox":[86,406,504,450],"type":"text","angle":0,"index":9,"text":"NICE 值叫做静态优先级，是用户空间的一个优先级值，其取值范围是-20 至 19。这个值 越小，表示进程”优先级”越高，而值越大“优先级”越低。nice 值中的 -20 到 19，中- 20 优先级最高， 0 是默认的值，而 19 优先级最低 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"a8bda1d7-3677-4bc3-b6d2-3c4792daf6d2","page_size":[595,841],"block_position":"54-9"},{"bbox":[86,453,504,512],"type":"text","angle":0,"index":10,"text":"PR 值表示Priority 值叫动态优先级，是进程在内核中实际的优先级值，进程优先级的取值 范围是通过一个宏定义的，这个宏的名称是 MAX_PRIO，它的值为 140。Linux 实际上实 现了 140 个优先级范围，取值范围是从 0-139，这个值越小，优先级越高。而这其中的 0 - 99 是实时进程的值，而 100 - 139 是给用户的。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"d5bf62db-4f35-4723-b394-b658b9fd29d1","page_size":[595,841],"block_position":"54-10"},{"bbox":[86,515,504,560],"type":"text","angle":0,"index":11,"text":"其中 PR 中的 100 to 139 值部分有这么一个对应 $\\mathsf { P R } = 2 0 + ( - 2 0 \\mathsf { t o } + 1 9 )$ $+ 1 9 )$ ，这里的 -20 to $+ 1 9$ 便是 nice 值，所以说两个虽然都是优先级，而且有千丝万缕的关系，但是他们的值， 他们的作用范围并不相同 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"4235539e-3f8a-4c05-b592-d7b98c639048","page_size":[595,841],"block_position":"54-11"},{"bbox":[86,561,504,590],"type":"text","angle":0,"index":12,"text":"** VIRT **任务所使用的虚拟内存的总数，其中包含所有的代码，数据，共享库和被换出 swap 空间的页面等所占据空间的总数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"0398e3fe-6b85-45ce-9de3-739a35a9a781","page_size":[595,841],"block_position":"54-12"},{"bbox":[86,593,504,622],"type":"text","angle":0,"index":13,"text":"ps 也是我们最常用的查看进程的工具之一，我们通过这样的一个命令来了解一下，他能给 我带来哪些信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"dcede88e-995d-4e95-82c8-26ba5c4816b4","page_size":[595,841],"block_position":"54-13"},{"bbox":[87,625,122,638],"type":"text","angle":0,"index":14,"text":"ps aux ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"8a63d23c-2a30-4388-8b8b-7b5c8725c61b","page_size":[595,841],"block_position":"54-14"},{"bbox":[86,662,500,708],"type":"text","angle":0,"index":15,"text":"通过pstree 可以很直接的看到相同的进程数量，最主要的还是我们可以看到所 有进程之间的相关性。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"c81e7e0b-2005-43af-a3bb-974797d12ac5","page_size":[595,841],"block_position":"54-15"},{"bbox":[86,729,504,759],"type":"text","angle":0,"index":16,"text":"在Linux进程概念实验中讲述了进程如何衍生，进程之间的相关性，这里先回顾一下，当 一个进程结束的时候或者要异常结束的时候，会向其父进程返回一个或者接收一个 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":54,"id":"d341df2c-47a3-41bc-9f3f-309f68cb4fff","page_size":[595,841],"block_position":"54-16"}],[{"bbox":[86,79,510,108],"type":"text","angle":0,"index":0,"text":"SIGHUP 信号而做出的结束进程或者其他的操作，这个 SIGHUP 信号不仅可以由系统发送， 我们可以使用 kill 来发送这个信号来操作进程的结束或者重启等等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"27d4baff-2827-430b-8569-7fc65860baec","page_size":[595,841],"block_position":"55-0"},{"bbox":[86,110,506,139],"type":"text","angle":0,"index":1,"text":"已经尝试过使用 kill 命令可以管理一些 job，这里尝试用 kill 来直接对进程的 pid 操作，但 是前提是要知道进程的 pid。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"95848794-bf0d-48f3-8472-b3288e6ac119","page_size":[595,841],"block_position":"55-1"},{"bbox":[86,142,355,155],"type":"text","angle":0,"index":2,"text":"#首先在桌面找到并打开 gedit、gvim，用 ps 可以查看到 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"4dbcc722-de5e-48d9-b063-2c9f293f454e","page_size":[595,841],"block_position":"55-2"},{"bbox":[87,158,123,170],"type":"text","angle":0,"index":3,"text":"ps aux ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"462c866e-76f3-4b3f-a82f-9e1d29e6ea72","page_size":[595,841],"block_position":"55-3"},{"bbox":[86,188,264,200],"type":"text","angle":0,"index":4,"text":"#使用 9 这个信号强制结束 gedit 进程 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"41b7ab16-d16e-4804-9b27-8fd4680a1785","page_size":[595,841],"block_position":"55-4"},{"bbox":[87,203,143,215],"type":"text","angle":0,"index":5,"text":"kill -9 1608 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"3205eebc-271b-48b9-999c-e5d366b3a188","page_size":[595,841],"block_position":"55-5"},{"bbox":[86,219,505,264],"type":"text","angle":0,"index":6,"text":"我们在使用 ps 命令的时候可以看到大部分的进程都是处于休眠的状态 S，如果这些进程都 被唤醒，那么该谁最先享受 CPU 的服务，后面的进程又该是一个什么样的顺序呢？进程调 度的队列又该如何去排列呢？ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"21744f8b-25ff-4e28-9bba-b89f56ca33b1","page_size":[595,841],"block_position":"55-6"},{"bbox":[86,281,505,310],"type":"text","angle":0,"index":7,"text":"需要靠该进程的优先级值来判定进程调度的优先级，而优先级的值就是上文所提到的 PR 与nice 来控制与体现了。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"214a82c9-a5a0-4fd8-a08b-6b3be25322af","page_size":[595,841],"block_position":"55-7"},{"bbox":[86,328,506,388],"type":"text","angle":0,"index":8,"text":"nice 的值可以通过 nice 命令来修改的，而需要注意的是 nice 值可以调整的范围是 -20 ~ 19。 root 账户既可以调整自己的进程也可以调整其他用户的程序，并且是所有的值都可 以用，而普通用户只可以调制属于自己的进程，并且其使用的范围只能是 0 ~ 19，因为系 统为了避免一般用户抢占系统资源而设置的一个限制。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"8673d606-bb53-4c9c-82e4-d5cb89f32470","page_size":[595,841],"block_position":"55-8"},{"bbox":[86,406,392,419],"type":"text","angle":0,"index":9,"text":"#这个实验在环境中无法做，因为权限不够，可以自己在本地尝试 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"50b21ce0-0f06-4616-80a0-e55e6276b020","page_size":[595,841],"block_position":"55-9"},{"bbox":[86,437,308,450],"type":"text","angle":0,"index":10,"text":"#打开一个程序放在后台，或者用图形界面打开 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"61cb576c-3dc7-4452-88d0-6b7142ee0ff5","page_size":[595,841],"block_position":"55-10"},{"bbox":[87,454,167,465],"type":"text","angle":0,"index":11,"text":"nice -n -5 vim & ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"7e14f1c9-85b6-4766-b6c0-cf9176f7deed","page_size":[595,841],"block_position":"55-11"},{"bbox":[86,484,188,497],"type":"text","angle":0,"index":12,"text":"#用 ps 查看其优先级 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"4eaa2819-d879-4500-acef-e62ccf31e666","page_size":[595,841],"block_position":"55-12"},{"bbox":[86,499,377,513],"type":"text","angle":0,"index":13,"text":"ps -afxo user,ppid,pid,stat,pri,ni,time,command | grep vim ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"3a88b14f-f2f9-4245-9578-b3393f34f603","page_size":[595,841],"block_position":"55-13"},{"bbox":[87,517,114,528],"type":"text","angle":0,"index":14,"text":"copy ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"1ccf7d2f-1c2e-4324-b1bb-821a19e4af25","page_size":[595,841],"block_position":"55-14"},{"bbox":[86,530,342,544],"type":"text","angle":0,"index":15,"text":"我们还可以用 renice 来修改已经存在的进程的优先级= ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"74a767ce-5d6d-4660-bd03-4e8227ef0e43","page_size":[595,841],"block_position":"55-15"},{"bbox":[87,562,151,575],"type":"text","angle":0,"index":16,"text":"renice -5 pid ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"edca0799-518c-4f85-840f-75a0bfac40f3","page_size":[595,841],"block_position":"55-16"},{"bbox":[87,596,155,614],"type":"title","angle":0,"index":17,"text":"# 存储管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":55,"id":"019b32e0-4227-4041-81fe-950d7d237c3f","page_size":[595,841],"block_position":"55-17"},{"bbox":[86,651,154,664],"type":"text","angle":0,"index":18,"text":"本地存储管理 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"af209575-516f-4903-9ee3-1f5975f9d26e","page_size":[595,841],"block_position":"55-18"},{"bbox":[87,666,185,680],"type":"text","angle":0,"index":19,"text":"存储管理与磁盘分区 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"4dbb4c57-92ca-4531-9776-e9c0c67e3d4f","page_size":[595,841],"block_position":"55-19"},{"bbox":[86,682,426,696],"type":"text","angle":0,"index":20,"text":"技术指标：主轴转速，平均寻道时间，数据传输率，高速缓存，单碟容量 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"825fccb5-55c8-4383-82f2-143622cb5ee3","page_size":[595,841],"block_position":"55-20"},{"bbox":[88,698,154,711],"type":"text","angle":0,"index":21,"text":"硬盘接口方式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"60c385d6-cd74-48c5-ac39-ec02dcb720dc","page_size":[595,841],"block_position":"55-21"},{"bbox":[88,714,190,726],"type":"text","angle":0,"index":22,"text":"FC-AL,SCSI,SAS,SATA ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"e8cba233-2aa2-4360-8f3a-2b456cc0c3c3","page_size":[595,841],"block_position":"55-22"},{"bbox":[88,729,164,742],"type":"text","angle":0,"index":23,"text":"常用的分区工具 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"4c3a6b5d-ef1e-4f3a-ba6a-926a3a859ee1","page_size":[595,841],"block_position":"55-23"},{"bbox":[88,745,114,756],"type":"text","angle":0,"index":24,"text":"fdisk ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":55,"id":"97443aa4-a47c-4c25-a1d0-f2b58777689c","page_size":[595,841],"block_position":"55-24"}],[{"bbox":[87,79,120,90],"type":"text","angle":0,"index":0,"text":"sfdisk ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"ba3364fe-0d55-4f5b-a06c-21e54f1ffd96","page_size":[595,841],"block_position":"56-0"},{"bbox":[88,95,149,107],"type":"text","angle":0,"index":1,"text":"GNU parted ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"8c28fceb-a85c-4558-aa9e-1ddc208b7df9","page_size":[595,841],"block_position":"56-1"},{"bbox":[99,110,315,123],"type":"text","angle":0,"index":2,"text":"－高级分区操作（创建、复制、调整大小等等） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"55b94742-ca6d-4f10-a9b8-ec8def77a442","page_size":[595,841],"block_position":"56-2"},{"bbox":[87,141,251,155],"type":"text","angle":0,"index":3,"text":"分区工作 fdisk sfdisk GNU parted ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"47199c19-dc52-46f9-af7e-925a5578a341","page_size":[595,841],"block_position":"56-3"},{"bbox":[88,157,154,169],"type":"text","angle":0,"index":4,"text":"进入交互模式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"f534067d-643e-479b-8ad7-5cb722755d9e","page_size":[595,841],"block_position":"56-4"},{"bbox":[88,172,183,185],"type":"text","angle":0,"index":5,"text":"Fdisk <硬盘设备名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"0f7408f1-c4a3-4218-9796-ee2aafe5b527","page_size":[595,841],"block_position":"56-5"},{"bbox":[88,188,279,200],"type":"text","angle":0,"index":6,"text":"在命令行方式下显示指定硬盘分区表信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"2f0bd26a-3e30-4794-9e49-807122d97341","page_size":[595,841],"block_position":"56-6"},{"bbox":[88,204,191,216],"type":"text","angle":0,"index":7,"text":"Fdisk -l <硬盘设备名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"48a5d713-dbb7-4160-abe9-ca4a8209e634","page_size":[595,841],"block_position":"56-7"},{"bbox":[88,217,595,391],"index":8,"angle":0,"type":"table_body","img_path":"/","id":"b7702f5b-a58e-4e06-9894-43d1c0c95728","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>子命令</td><td>说明</td><td>子命令</td><td>说明</td></tr><tr><td>a</td><td>调整硬盘的启动分区</td><td>p</td><td>列出硬盘分区表</td></tr><tr><td>d</td><td>删除一个硬盘分区</td><td>q</td><td>退出fdisk，不保存更改</td></tr><tr><td>l</td><td>列出所有支持的分区类型</td><td>t</td><td>更改分区类型</td></tr><tr><td>m</td><td>列出所有命令</td><td>u</td><td>切换所显示的分区大小的单位</td></tr><tr><td>n</td><td>创建一个新的分区</td><td>w</td><td>把设置写入硬盘分区表之后返回</td></tr></table>","page_idx":56,"page_size":[595,841],"block_position":"56-8"},{"bbox":[86,395,504,424],"type":"text","angle":0,"index":9,"text":"在安装 Linux 的过程中如何正确地评估各分区大小是一个难题，因为系统管理员不但要考 虑到当前某个分区需要的容量，还要预见该分区以后可能需要的容量的最大值。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"1f3bdb10-b6f7-48e5-b474-3132d8648546","page_size":[595,841],"block_position":"56-9"},{"bbox":[86,441,283,454],"type":"text","angle":0,"index":10,"text":"某个分区空间耗尽时，通常的解决方法是： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"528cede4-e916-4252-9127-a0be9b42bfb7","page_size":[595,841],"block_position":"56-10"},{"bbox":[88,457,154,470],"type":"text","angle":0,"index":11,"text":"使用符号链接 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"c53440bc-32e4-4d8c-b1c3-d45a81f540b6","page_size":[595,841],"block_position":"56-11"},{"bbox":[92,473,277,486],"type":"text","angle":0,"index":12,"text":"—— 破坏了Linux文件系统的标准结构 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"df5512e4-a982-4fef-9f6c-4aac85f782ea","page_size":[595,841],"block_position":"56-12"},{"bbox":[88,488,309,502],"type":"text","angle":0,"index":13,"text":"使用调整分区大小的工具(如:Patition Magic 等) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"5d58739d-3bdb-455d-a241-498adb452aa2","page_size":[595,841],"block_position":"56-13"},{"bbox":[92,504,246,517],"type":"text","angle":0,"index":14,"text":"—— 必须停机一段时间进行调整 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"052da4b2-b19a-42a8-9b86-78d8ea9972f2","page_size":[595,841],"block_position":"56-14"},{"bbox":[88,519,405,533],"type":"text","angle":0,"index":15,"text":"备份整个系统、清除硬盘、重新对硬盘分区，然后恢复数据到新分区 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"606d2aa1-f9e3-44a1-8253-3f9f25fba3a3","page_size":[595,841],"block_position":"56-15"},{"bbox":[92,535,267,549],"type":"text","angle":0,"index":16,"text":"—— 必须停机一段时间进行恢复操作 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"6ea313c1-19aa-432a-86a5-395af7e0c535","page_size":[595,841],"block_position":"56-16"},{"bbox":[88,566,154,579],"type":"text","angle":0,"index":17,"text":"磁盘分区工具 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"7c48150a-c1bd-4ae4-9e35-d31845ed8e20","page_size":[595,841],"block_position":"56-17"},{"bbox":[88,582,227,596],"type":"text","angle":0,"index":18,"text":"#parted [选项] <硬盘设备名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"c3be35f4-30fa-4b47-aad9-d4dbaf447c78","page_size":[595,841],"block_position":"56-18"},{"bbox":[88,598,143,610],"type":"text","angle":0,"index":19,"text":"命令行模式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"fd69cbe2-1af2-42f4-aa72-e4cd941b643b","page_size":[595,841],"block_position":"56-19"},{"bbox":[88,613,351,627],"type":"text","angle":0,"index":20,"text":"# parted [选项] <硬盘设备名> <子命令> [<子命令参数>] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"9bc700b8-5554-4b31-81d8-75a5816edf27","page_size":[595,841],"block_position":"56-20"},{"bbox":[88,629,121,641],"type":"text","angle":0,"index":21,"text":"子命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"95f7f9b3-1e76-4cc4-9172-cf6b5b32f593","page_size":[595,841],"block_position":"56-21"},{"bbox":[88,645,251,658],"type":"text","angle":0,"index":22,"text":"打印帮助信息：help [COMMAND] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"1d40259d-9072-44dc-afb7-5f3e9e9b30f6","page_size":[595,841],"block_position":"56-22"},{"bbox":[88,661,276,673],"type":"text","angle":0,"index":23,"text":"显示分区表： print [free|NUMBER|all] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"1488c21e-d1ed-4ffe-a662-cdc49c4be32d","page_size":[595,841],"block_position":"56-23"},{"bbox":[88,676,348,689],"type":"text","angle":0,"index":24,"text":"创建新分区：mkpart PART-TYPE [FS-TYPE] START END ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"2cd9a0de-7cd7-4bda-9dff-6c012694db24","page_size":[595,841],"block_position":"56-24"},{"bbox":[88,692,226,703],"type":"text","angle":0,"index":25,"text":"删除指定分区：rm NUMBER ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"202a711f-8583-4dfe-95b5-71dcd669b389","page_size":[595,841],"block_position":"56-25"},{"bbox":[88,707,285,719],"type":"text","angle":0,"index":26,"text":"设置分区标记：set NUMBER FLAG STATE ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"e44ac233-81f0-43e6-a002-f67286760280","page_size":[595,841],"block_position":"56-26"},{"bbox":[87,722,504,751],"type":"text","angle":0,"index":27,"text":"LVM 是逻辑盘卷管理（Logical Volume Manager）的简称，它是 Linux 环境下对卷进行 方便操作的抽象层。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":56,"id":"9170ac28-7a32-4037-aa1e-e338840175e0","page_size":[595,841],"block_position":"56-27"}],[{"bbox":[86,79,504,107],"type":"text","angle":0,"index":0,"text":"LVM 是建立在硬盘和分区之上的一个逻辑层，来为文件系统屏蔽下层磁盘分区布局，从而 提高磁盘分区管理的灵活性。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"4089dca8-a1e9-4d00-9f25-ea6fcb1cfd89","page_size":[595,841],"block_position":"57-0"},{"bbox":[86,110,453,122],"type":"text","angle":0,"index":1,"text":"LVM允许在多个物理设备间重新组织文件系统，包括重新设定文件系统的大小。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"9ed76104-6ef3-442f-9c9e-7f4e85ff4d61","page_size":[595,841],"block_position":"57-1"},{"bbox":[86,125,504,154],"type":"text","angle":0,"index":2,"text":"通过 LVM 可 以轻松管 理磁盘分区， 如 ：将若干个磁盘分区连接 为 一 个 整 块 的卷组 （volume group），形成一个存储池。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"934d175c-a833-43d2-aa27-770798846870","page_size":[595,841],"block_position":"57-2"},{"bbox":[86,157,496,200],"type":"text","angle":0,"index":3,"text":"可以在卷组中随意创建逻辑卷（logical volumes），并进一步在逻辑卷上创建文件系统。 通过LVM 可以方便的调整存储卷组的大小，并且可以对磁盘存储按照组的方式进行命名、 管理和分配。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"e476d758-80e3-479f-a336-c070f96a5699","page_size":[595,841],"block_position":"57-3"},{"bbox":[91,206,379,391],"index":4,"angle":0,"type":"image","img_path":"/4cbc28e93a9e75800549938774bad7f0ef3d1eb12b834d8abf9e81b712d18b64.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.48403361344537815,"page_idx":57,"id":"bca622a5-48b2-4740-a84c-efcfe6db603b","page_size":[595,841],"block_position":"57-4"},{"bbox":[86,406,345,417],"type":"text","angle":0,"index":5,"text":"物理卷(physical volume, PV)在 LVM 系统中处于最底层 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"104bfc41-9c20-4105-acb5-577a6c3c70f3","page_size":[595,841],"block_position":"57-5"},{"bbox":[86,422,498,449],"type":"text","angle":0,"index":6,"text":"物理卷可以是整个硬盘、硬盘上的分区或从逻辑上与磁盘分区具有同样功能的设备（如： RAID） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"77f00750-11fa-48b5-96d7-65c891691ee5","page_size":[595,841],"block_position":"57-6"},{"bbox":[86,453,504,481],"type":"text","angle":0,"index":7,"text":"物理卷是 LVM 的基本存储逻辑块，但和基本的物理存储介质（如分区、磁盘等）比较，却 包含有与LVM 相关的管理参数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"c9020709-2768-4d3c-8b50-809944d14575","page_size":[595,841],"block_position":"57-7"},{"bbox":[86,484,504,512],"type":"text","angle":0,"index":8,"text":"每一个物理卷被划分为基本单元（称为 Physical Extent, PE），具有唯一编号的 PE 是可 以被 LVM 寻址的最小存储单元 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"0db51f24-35e6-4c44-87c8-fce341b96b1b","page_size":[595,841],"block_position":"57-8"},{"bbox":[86,515,371,527],"type":"text","angle":0,"index":9,"text":"PE 的大小可根据实际情况在创建物理卷时指定，默认为 4MB ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"4a5901d6-d8ad-44f2-8b78-30ccf358dc82","page_size":[595,841],"block_position":"57-9"},{"bbox":[86,531,468,543],"type":"text","angle":0,"index":10,"text":"PE 的大小一旦确定将不能改变，同一个卷组中的所有物理卷的 PE 的大小需要一致 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"4b1d9144-66b0-4a68-b1cd-de8f7c1b9605","page_size":[595,841],"block_position":"57-10"},{"bbox":[86,546,428,559],"type":"text","angle":0,"index":11,"text":"卷组(Volume Group, VG)建立在物理卷之上，它由一个或多个物理卷组成 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"ad06697c-2a89-4949-9b8a-602c7d524290","page_size":[595,841],"block_position":"57-11"},{"bbox":[86,562,504,590],"type":"text","angle":0,"index":12,"text":"卷组创建之后，可以动态添加物理卷到卷组中，在卷组上可以创建一个或多个“LVM 分 区”（逻辑卷） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"495da1ec-c9bb-41ce-9907-8f3e31f59010","page_size":[595,841],"block_position":"57-12"},{"bbox":[86,593,357,605],"type":"text","angle":0,"index":13,"text":"一个 LVM 系统中可以只有一个卷组，也可以包含多个卷组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"b82a1aab-d9db-4eeb-8488-5c521ad4f9b1","page_size":[595,841],"block_position":"57-13"},{"bbox":[86,608,296,620],"type":"text","angle":0,"index":14,"text":"LVM 的卷组类似于非LVM系统中的物理硬盘 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"dec5edc9-e96f-4465-875f-f670c96e7361","page_size":[595,841],"block_position":"57-14"},{"bbox":[86,624,461,636],"type":"text","angle":0,"index":15,"text":"逻辑卷(Logical Volume, LV)建立在卷组之上，它是从卷组中“切出”的一块空间 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"b3d7d7f0-1a15-4dea-ab25-97cb2326fd91","page_size":[595,841],"block_position":"57-15"},{"bbox":[86,640,248,652],"type":"text","angle":0,"index":16,"text":"逻辑卷创建之后，其大小可以伸缩 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"2f2e2d8e-d9fd-4231-8d81-3b1b5e77a6bc","page_size":[595,841],"block_position":"57-16"},{"bbox":[86,655,504,683],"type":"text","angle":0,"index":17,"text":"LVM 的逻辑卷类似于非 LVM 系统中的硬盘分区，在逻辑卷之上可以建立文件系统 （比如 /home 或者 /usr 等） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"785a7bc6-0f29-4416-bc12-7c6f7a7aab5e","page_size":[595,841],"block_position":"57-17"},{"bbox":[86,687,407,698],"type":"text","angle":0,"index":18,"text":"/boot 分区不能位于卷组中，因为引导装载程序无法从逻辑卷中读取。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"1012d3a4-da30-4006-bbc9-297e0da03752","page_size":[595,841],"block_position":"57-18"},{"bbox":[86,702,428,714],"type":"text","angle":0,"index":19,"text":"如果你想把 / 分区放在逻辑卷上，必须创建一个与卷组分离的 /boot 分区。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":57,"id":"fe704bdf-ad4c-4f20-aa11-760aa1c1b941","page_size":[595,841],"block_position":"57-19"}],[{"bbox":[88,74,474,223],"index":0,"angle":0,"type":"image","img_path":"/117bf6748fa3cf0c523b2e5f45029875c8b21fb40e1f35fd979178d83d0ad3b3.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6487394957983194,"page_idx":58,"id":"db14e0b2-5ec5-4496-8575-2c5fa5a77351","page_size":[595,841],"block_position":"58-0"},{"bbox":[87,234,190,248],"type":"text","angle":0,"index":1,"text":"创建 LVM 类型的分区 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"a556cd5b-3f47-41e4-9bfa-e2cd3fb1b83a","page_size":[595,841],"block_position":"58-1"},{"bbox":[88,250,195,263],"type":"text","angle":0,"index":2,"text":"在新硬盘上创建物理卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"b8629cb0-5e6b-4e80-a801-56cbab7b6007","page_size":[595,841],"block_position":"58-2"},{"bbox":[88,266,227,279],"type":"text","angle":0,"index":3,"text":"将新创建的物理卷添加到卷组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"c060296d-bfb2-4ca3-a8ba-6e217b62d7f3","page_size":[595,841],"block_position":"58-3"},{"bbox":[88,281,185,294],"type":"text","angle":0,"index":4,"text":"在卷组中创建逻辑卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"d0c5eb4d-fef6-4b1d-b05d-5464fd3f672d","page_size":[595,841],"block_position":"58-4"},{"bbox":[88,297,206,310],"type":"text","angle":0,"index":5,"text":"在逻辑卷中创建文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"6d1f91b5-9f82-4190-ad8c-b349d0f7d567","page_size":[595,841],"block_position":"58-5"},{"bbox":[88,313,185,326],"type":"text","angle":0,"index":6,"text":"挂装创建的文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"0a369f96-2a71-4cdc-9496-94af99fccd0b","page_size":[595,841],"block_position":"58-6"},{"bbox":[88,343,126,356],"type":"text","angle":0,"index":7,"text":"PV 阶段 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"0ea56abb-5236-43d5-ba3c-508a99fae15d","page_size":[595,841],"block_position":"58-7"},{"bbox":[88,359,127,372],"type":"text","angle":0,"index":8,"text":"VG 阶段 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"e9d075cc-c2d6-43a2-af38-f444b370c7bf","page_size":[595,841],"block_position":"58-8"},{"bbox":[88,375,126,387],"type":"text","angle":0,"index":9,"text":"LV 阶段 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"f57a87b4-54f9-4ff4-b1c7-ddc40aee7d41","page_size":[595,841],"block_position":"58-9"},{"bbox":[88,391,242,403],"type":"text","angle":0,"index":10,"text":"物理卷在LV没系统中处于最底层 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"ff2bbd32-f68a-4432-8251-5e1d272d6f1b","page_size":[595,841],"block_position":"58-10"},{"bbox":[88,407,238,418],"type":"text","angle":0,"index":11,"text":"可以是整个硬盘、硬盘上的分区 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"4c22fb3b-a2f4-4fda-99be-e53fe9944c1c","page_size":[595,841],"block_position":"58-11"},{"bbox":[87,422,505,450],"type":"text","angle":0,"index":12,"text":"每一个物理卷被划分位基本单元 PE 具有唯一编号的PE是可以被LVM寻址的最小存储单 元 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"5968495c-15e1-48a8-886f-11658f90837d","page_size":[595,841],"block_position":"58-12"},{"bbox":[88,453,221,465],"type":"text","angle":0,"index":13,"text":"PE 的大小可以根据实际情况 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"d90cd9e4-f2cf-46d6-b454-f4a6b74c6e4b","page_size":[595,841],"block_position":"58-13"},{"bbox":[88,468,340,481],"type":"text","angle":0,"index":14,"text":"卷组VG建立在物理卷之上，由一个或多个物理卷组成 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"d37eb8b3-313b-4e43-94ef-83352e3f4efc","page_size":[595,841],"block_position":"58-14"},{"bbox":[88,484,132,497],"type":"text","angle":0,"index":15,"text":"卷组创建 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"98e1945e-8491-4be6-809e-4332caf7a84b","page_size":[595,841],"block_position":"58-15"},{"bbox":[88,500,247,512],"type":"text","angle":0,"index":16,"text":"可以由一个卷组，也可以多个卷组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"c0c46974-e714-43b1-be94-f2b124e3ef34","page_size":[595,841],"block_position":"58-16"},{"bbox":[88,515,342,528],"type":"text","angle":0,"index":17,"text":"逻辑卷建立在卷组之上，它是从卷组中切除的一块空间 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"b7c2a508-dd2d-4078-804c-f7f9cbc67788","page_size":[595,841],"block_position":"58-17"},{"bbox":[88,531,158,543],"type":"text","angle":0,"index":18,"text":"如home路径、 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"98ded960-96ec-47d9-b446-e23edd1f691f","page_size":[595,841],"block_position":"58-18"},{"bbox":[88,546,403,559],"type":"text","angle":0,"index":19,"text":"/boot分区不能位于卷组中没因为引导装载程序无法从逻辑卷中读取 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"e8f42986-0b67-4a04-8848-421a9ddcc789","page_size":[595,841],"block_position":"58-19"},{"bbox":[88,562,421,575],"type":"text","angle":0,"index":20,"text":"如果你想把/分区放在逻辑卷上，必须创建一个与卷组分离的/rooot分区 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"054090f5-0ec8-4adc-a5cf-317acd86f188","page_size":[595,841],"block_position":"58-20"},{"bbox":[88,593,143,606],"type":"text","angle":0,"index":21,"text":"创建物理卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"9ec5a6b8-e17c-4bee-964e-f33eb7477327","page_size":[595,841],"block_position":"58-21"},{"bbox":[88,609,132,621],"type":"text","angle":0,"index":22,"text":"创建卷组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"c2e5e006-564b-4ade-8875-5438b11100ee","page_size":[595,841],"block_position":"58-22"},{"bbox":[88,624,143,637],"type":"text","angle":0,"index":23,"text":"创建逻辑卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"216909fc-2842-4a46-a845-e601b6538371","page_size":[595,841],"block_position":"58-23"},{"bbox":[88,640,143,652],"type":"text","angle":0,"index":24,"text":"创建物理卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"5953671a-75a3-42b8-8caa-c30e4e168857","page_size":[595,841],"block_position":"58-24"},{"bbox":[88,655,240,668],"type":"text","angle":0,"index":25,"text":"# pvcreate <磁盘或分区设备名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"2f4bfa82-db74-4163-9ae2-76a678f84f02","page_size":[595,841],"block_position":"58-25"},{"bbox":[88,671,132,683],"type":"text","angle":0,"index":26,"text":"创建卷组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"addbd603-94a7-4e43-b3aa-888f639f1691","page_size":[595,841],"block_position":"58-26"},{"bbox":[88,687,284,700],"type":"text","angle":0,"index":27,"text":"# vgcreate $<$ 卷组名> <物理卷设备名> [...] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"7dee08c5-9117-42ff-a265-ccf46d5fd35c","page_size":[595,841],"block_position":"58-27"},{"bbox":[88,702,143,714],"type":"text","angle":0,"index":28,"text":"创建逻辑卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"d01c324b-86e9-492a-884b-01b16f805c5f","page_size":[595,841],"block_position":"58-28"},{"bbox":[88,718,333,730],"type":"text","angle":0,"index":29,"text":"# lvcreate ${ < } { - } \\lfloor$ 逻辑卷大小> <-n 逻辑卷名> <卷组名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"adb1544b-2b2a-4268-b523-9faf8bad739e","page_size":[595,841],"block_position":"58-29"},{"bbox":[88,734,305,746],"type":"text","angle":0,"index":30,"text":"# lvcreate ${ < } \\mathrm { - } |$ PE 值 $> < - \\mathsf { n }$ 逻辑卷名> <卷组名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":58,"id":"c85aa4c5-fb25-4bdf-9738-a0301a670935","page_size":[595,841],"block_position":"58-30"}],[{"bbox":[87,78,230,91],"type":"text","angle":0,"index":0,"text":"查看物理卷。卷组。逻辑卷。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"32f1be97-eed4-48f2-a95d-95b584c9ca36","page_size":[595,841],"block_position":"59-0"},{"bbox":[88,95,143,107],"type":"text","angle":0,"index":1,"text":"查看物理卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"436fa67b-9fa1-4094-bb85-f959333b7727","page_size":[595,841],"block_position":"59-1"},{"bbox":[88,110,230,123],"type":"text","angle":0,"index":2,"text":"# pvdisplay [<物理卷设备名>] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"c7943b49-91c0-4378-88b0-e480339ef065","page_size":[595,841],"block_position":"59-2"},{"bbox":[88,126,132,137],"type":"text","angle":0,"index":3,"text":"查看卷组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"11bae034-a0cf-4cb4-8db8-c8e1c72b6c52","page_size":[595,841],"block_position":"59-3"},{"bbox":[88,142,199,154],"type":"text","angle":0,"index":4,"text":"# vgdisplay [<卷组名>] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"61db5ece-32a8-4b78-bd65-529b44792e50","page_size":[595,841],"block_position":"59-4"},{"bbox":[88,157,142,169],"type":"text","angle":0,"index":5,"text":"查看逻辑卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"85522587-7e1f-4ea9-87f3-573f6df060c7","page_size":[595,841],"block_position":"59-5"},{"bbox":[88,172,237,185],"type":"text","angle":0,"index":6,"text":"# lvdisplay [<逻辑卷卷设备名>] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"c325bc6e-c086-4f4e-925c-4556358ad07e","page_size":[595,841],"block_position":"59-6"},{"bbox":[88,203,153,216],"type":"text","angle":0,"index":7,"text":"存储管理工具 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"16d98cfc-4bb7-49f8-816d-9144bcf0baaf","page_size":[595,841],"block_position":"59-7"},{"bbox":[88,219,237,232],"type":"text","angle":0,"index":8,"text":"LBM Logical Volumn Manager ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"d497dbbd-94e8-4e67-b16c-dccddf9b40cd","page_size":[595,841],"block_position":"59-8"},{"bbox":[88,235,268,248],"type":"text","angle":0,"index":9,"text":"逻辑盘卷管理，建立在硬盘和分区之上 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"18691645-d087-4bb3-94d1-898e4360b146","page_size":[595,841],"block_position":"59-9"},{"bbox":[88,250,453,264],"type":"text","angle":0,"index":10,"text":"将若干个磁盘分区链接为一个整块的卷组（volumn group），形成一个存储池 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"98dcf586-2068-4bf7-9996-ba45d79838c7","page_size":[595,841],"block_position":"59-10"},{"bbox":[88,266,258,279],"type":"text","angle":0,"index":11,"text":"若卷组中无剩余空间，首先扩展卷组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"05527b87-191b-43a2-8630-a4321bf1608c","page_size":[595,841],"block_position":"59-11"},{"bbox":[88,281,274,294],"type":"text","angle":0,"index":12,"text":"添加硬盘，在磁盘上创建 8e 类型的分区 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"d4789b83-3a08-4289-906e-29ce791cabb4","page_size":[595,841],"block_position":"59-12"},{"bbox":[88,297,184,310],"type":"text","angle":0,"index":13,"text":"在分区上创建物理卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"8978cdb4-6a17-4b59-bb92-c52b00925b9d","page_size":[595,841],"block_position":"59-13"},{"bbox":[88,313,194,325],"type":"text","angle":0,"index":14,"text":"将物理卷添加到卷组中 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"efe2eb4e-a726-4492-96b8-a507ce5f893e","page_size":[595,841],"block_position":"59-14"},{"bbox":[88,328,287,341],"type":"text","angle":0,"index":15,"text":"# vgextend <卷组名> <物理卷设备名 $>$ [...] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"13b4a5ca-3eef-4b29-a843-b7c97a6ca2cc","page_size":[595,841],"block_position":"59-15"},{"bbox":[88,343,289,356],"type":"text","angle":0,"index":16,"text":"若卷组中有剩余空间，扩展卷组中的逻辑卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"34d3d7dd-306a-40c2-bb64-8ff514227b11","page_size":[595,841],"block_position":"59-16"},{"bbox":[88,359,314,371],"type":"text","angle":0,"index":17,"text":"# lvextend ${ < } { - } \\lfloor ~ +$ $^ +$ 逻辑卷增量> <逻辑卷设备名称> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"e8ede382-7792-4265-9263-20f7a12310e4","page_size":[595,841],"block_position":"59-17"},{"bbox":[88,375,286,387],"type":"text","angle":0,"index":18,"text":"# lvextend $| < - | + \\mathsf { P E }$ 值> <逻辑卷设备名称> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"bcaa3415-c57d-46bc-9ae8-db994953952a","page_size":[595,841],"block_position":"59-18"},{"bbox":[88,391,299,403],"type":"text","angle":0,"index":19,"text":"对已扩展的逻辑卷中的文件系统进行容量扩展 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"64042a74-b09f-4c66-9dab-faa5f37884bf","page_size":[595,841],"block_position":"59-19"},{"bbox":[88,407,251,418],"type":"text","angle":0,"index":20,"text":"# resize2fs $<$ 分区或逻辑卷设备名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"a6572fd6-524f-48ec-bfa7-12d26d3b348a","page_size":[595,841],"block_position":"59-20"},{"bbox":[88,422,238,434],"type":"text","angle":0,"index":21,"text":"使用 umount 命令卸载文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"9b088a17-c7aa-4b12-8d4a-8bee68cd989c","page_size":[595,841],"block_position":"59-21"},{"bbox":[88,438,230,449],"type":"text","angle":0,"index":22,"text":"使用e2fsck命令检查文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"2ca0727c-2536-4695-9be2-52ff40db2c04","page_size":[595,841],"block_position":"59-22"},{"bbox":[88,453,263,465],"type":"text","angle":0,"index":23,"text":"使用 resize2fs 命令缩减文件系统容量 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"0f52b3c7-0169-422e-a545-8bdd71111783","page_size":[595,841],"block_position":"59-23"},{"bbox":[88,469,142,481],"type":"text","angle":0,"index":24,"text":"缩减逻辑卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"8cc07b80-d667-41d1-af4a-3d0a0a9cae85","page_size":[595,841],"block_position":"59-24"},{"bbox":[88,484,311,497],"type":"text","angle":0,"index":25,"text":"# lvreduce <-L -逻辑卷增量> <逻辑卷设备名称> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"1b2f4301-5451-40ed-a7a9-f8cbe8e9c116","page_size":[595,841],"block_position":"59-25"},{"bbox":[88,500,283,512],"type":"text","angle":0,"index":26,"text":"# lvreduce <-l -PE 值> <逻辑卷设备名称> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":59,"id":"a5194916-ec44-4e02-8ec3-a2e2486b8dee","page_size":[595,841],"block_position":"59-26"},{"bbox":[88,528,594,731],"index":27,"angle":0,"type":"table_body","img_path":"/","id":"8709e16d-fc28-426e-a655-c7fb0d1f023e","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>任务</td><td>PV</td><td>VG</td><td>LV</td></tr><tr><td>创建</td><td>pvcreate</td><td>vgcreate</td><td>lvm</td></tr><tr><td>删除</td><td>pvremove</td><td>vgremove</td><td>lvm</td></tr><tr><td>显示信息</td><td>pvs</td><td>vgs</td><td>lvs</td></tr><tr><td>扫描列表</td><td>pvscan</td><td>vgscan</td><td>lvs</td></tr><tr><td>显示属性</td><td>pvdisplay</td><td>vgdisplay</td><td>lvm</td></tr><tr><td>更改属性</td><td>pvchange</td><td>vgchange</td><td>lvm</td></tr><tr><td>扩展</td><td></td><td>vgextend</td><td>lve</td></tr><tr><td>缩减</td><td></td><td>vgreduce</td><td>lvr</td></tr></table>","page_idx":59,"page_size":[595,841],"block_position":"59-27"}],[{"bbox":[88,77,595,137],"index":0,"angle":0,"type":"table_body","lines_deleted":true,"text":"","id":"8709e16d-fc28-426e-a655-c7fb0d1f023e","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"","page_idx":60,"page_size":[595,841],"block_position":"60-0"},{"bbox":[87,154,161,167],"type":"text","angle":0,"index":1,"text":"Linux 文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"34b6f1fb-7c21-4976-8ccf-a0ab1d5e32e2","page_size":[595,841],"block_position":"60-1"},{"bbox":[88,170,142,183],"type":"text","angle":0,"index":2,"text":"硬盘的分类 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"551bb313-4cb6-424a-ad8e-8b20f79a7e48","page_size":[595,841],"block_position":"60-2"},{"bbox":[88,186,142,198],"type":"text","angle":0,"index":3,"text":"硬盘的接口 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"716b11a5-75d6-4208-bebd-a00c7de49577","page_size":[595,841],"block_position":"60-3"},{"bbox":[88,201,132,213],"type":"text","angle":0,"index":4,"text":"硬盘分区 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"7174ad02-beeb-4beb-afc1-c87e686ab510","page_size":[595,841],"block_position":"60-4"},{"bbox":[88,232,142,245],"type":"text","angle":0,"index":5,"text":"逻辑卷管理 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"2958b7bb-9bb1-4f5b-a461-8376b9ea8ad2","page_size":[595,841],"block_position":"60-5"},{"bbox":[88,248,182,260],"type":"text","angle":0,"index":6,"text":"Linux下的文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"475e1f2c-69b3-49a7-88af-67c826ffafe2","page_size":[595,841],"block_position":"60-6"},{"bbox":[88,264,503,291],"type":"text","angle":0,"index":7,"text":"文件系统是包括在一个磁盘（硬盘、光盘及其它存储设备）上的目录结构；一个磁盘设备 可以包含一个或多个文件系统。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"41262171-2988-47ea-8091-cae6b403ab63","page_size":[595,841],"block_position":"60-7"},{"bbox":[88,295,430,307],"type":"text","angle":0,"index":8,"text":"文件系统是在一个磁盘（硬盘、光盘及其它存储设备）上组织文件的方法。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"c9e98e9b-bff0-41e2-88de-c8b885d1492a","page_size":[595,841],"block_position":"60-8"},{"bbox":[88,311,272,323],"type":"text","angle":0,"index":9,"text":"文件系统是文件的数据结构或组织方法。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"75e1d0da-afec-4d22-bc5a-c0158f08fc91","page_size":[595,841],"block_position":"60-9"},{"bbox":[88,326,471,338],"type":"text","angle":0,"index":10,"text":"文件系统是基于被划分的存储设备上的一种文件的命名、存储、组织及读取的方法。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"54385755-aaef-4e4d-89b3-ab5e586e6692","page_size":[595,841],"block_position":"60-10"},{"bbox":[88,357,504,386],"type":"text","angle":0,"index":11,"text":"一个文件系统是有组织存储文件或数据的方法，目的是易于查询和存取。文件系统是基于 一个存储设备，比如硬盘或光盘，并且包含文件文件物理位置的维护。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"d8b23a2e-b067-4baa-a8fc-02e7fbe5cbad","page_size":[595,841],"block_position":"60-11"},{"bbox":[88,388,445,401],"type":"text","angle":0,"index":12,"text":"Linux下的所有文件和目录以一个树状的结构组织构成了 Linux 中的文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"f82b2752-947e-4dbb-bed1-6ce65d92f70b","page_size":[595,841],"block_position":"60-12"},{"bbox":[88,404,377,417],"type":"text","angle":0,"index":13,"text":"Linux 文件系统标准（Linux File System Standard，FSSTND） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"28c0e9ae-9300-4e05-9dc0-4f02f8e77fa0","page_size":[595,841],"block_position":"60-13"},{"bbox":[88,419,392,433],"type":"text","angle":0,"index":14,"text":"文件系统层次结构标准（File System Hierarchy Standard，FHS） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"105b3ee5-78f4-4553-baa2-9da4094fb756","page_size":[595,841],"block_position":"60-14"},{"bbox":[88,450,504,479],"type":"text","angle":0,"index":15,"text":"Linux 的内核采用了称之为虚拟文件系统（Virtual File System，VFS）的技术，因此 Linux 可以支持多种不同的文件系统类型。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"871660d9-c08e-49d3-952c-cfa40adb285b","page_size":[595,841],"block_position":"60-15"},{"bbox":[88,482,203,494],"type":"text","angle":0,"index":16,"text":"Linux可支持的文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"1f9cbfbf-0643-40a6-a8ff-dea0cafe151d","page_size":[595,841],"block_position":"60-16"},{"bbox":[88,497,499,526],"type":"text","angle":0,"index":17,"text":"Linux 目前几乎支持所有的 UNIX 类的文件系统，如 HFS、XFS、JFS、Minix FS 及 UFS 等 Linux 支持 NFS 文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"8dd90729-5e9e-45f8-9e08-1adc7f62270c","page_size":[595,841],"block_position":"60-17"},{"bbox":[88,528,255,541],"type":"text","angle":0,"index":18,"text":"Linux 也支持 NTFS 和 vfat（FAT32） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"d2328d63-61f0-4e27-bce6-9d67a67c98b2","page_size":[595,841],"block_position":"60-18"},{"bbox":[88,544,140,556],"type":"text","angle":0,"index":19,"text":"Linux 支持 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"4a75ba65-ff61-4d4b-ac59-5003a206911a","page_size":[595,841],"block_position":"60-19"},{"bbox":[88,560,136,571],"type":"text","angle":0,"index":20,"text":"ext3/ext4 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"5d2a1a59-4ee5-4e62-8771-43ea8d967cbf","page_size":[595,841],"block_position":"60-20"},{"bbox":[88,576,138,588],"type":"text","angle":0,"index":21,"text":"JFS（IBM） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"e72511a7-490d-496d-8542-a9411b4d3d63","page_size":[595,841],"block_position":"60-21"},{"bbox":[88,592,143,603],"type":"text","angle":0,"index":22,"text":"XFS（ SGI ） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"ed89456c-1690-4577-8e8f-14d4ae13f78f","page_size":[595,841],"block_position":"60-22"},{"bbox":[88,607,129,618],"type":"text","angle":0,"index":23,"text":"Reiserfs ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"6c6b7705-260a-4b11-914b-8a0f7a19af89","page_size":[595,841],"block_position":"60-23"},{"bbox":[89,622,184,634],"type":"text","angle":0,"index":24,"text":"日志文件系统的优点 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"273a3476-134e-45f6-af2e-0abc6319d0a2","page_size":[595,841],"block_position":"60-24"},{"bbox":[88,638,205,650],"type":"text","angle":0,"index":25,"text":"提高了文件的存储安全性 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"4a1244b0-47af-4291-ad4a-a224899dbb1f","page_size":[595,841],"block_position":"60-25"},{"bbox":[88,653,205,666],"type":"text","angle":0,"index":26,"text":"降低了文件被破坏的机率 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"08e7fbdf-fdef-4cf7-9cab-59639e93dc7b","page_size":[595,841],"block_position":"60-26"},{"bbox":[88,669,205,681],"type":"text","angle":0,"index":27,"text":"缩短了对磁盘的扫描时间 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"bc9794c9-4d59-4784-a385-df5edd7ea1d5","page_size":[595,841],"block_position":"60-27"},{"bbox":[88,685,205,697],"type":"text","angle":0,"index":28,"text":"减少了磁盘整体扫描次数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"e4283047-6ee4-4d6e-9208-2d28eeca3703","page_size":[595,841],"block_position":"60-28"},{"bbox":[88,701,160,712],"type":"text","angle":0,"index":29,"text":"ext2/ext3/ext4 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"99360e8d-237c-4f21-916b-5f46181d90db","page_size":[595,841],"block_position":"60-29"},{"bbox":[88,716,213,728],"type":"text","angle":0,"index":30,"text":"Linux使用的标准文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"d7482a7a-f43a-40e5-9a79-7621de209acf","page_size":[595,841],"block_position":"60-30"},{"bbox":[88,733,115,744],"type":"text","angle":0,"index":31,"text":"swap ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"88843b3b-67e8-43bb-a90f-f23e7543debb","page_size":[595,841],"block_position":"60-31"},{"bbox":[88,747,152,759],"type":"text","angle":0,"index":32,"text":"交换文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":60,"id":"7848b5ae-7ae0-4b61-b9b1-f9bfae90447a","page_size":[595,841],"block_position":"60-32"}],[{"bbox":[88,79,143,90],"type":"text","angle":0,"index":0,"text":"FAT32/vfat ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"ba51c1ba-5792-4113-8026-d303ed97582f","page_size":[595,841],"block_position":"61-0"},{"bbox":[88,95,180,107],"type":"text","angle":0,"index":1,"text":"Windows 文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"98cec155-e9ba-48f7-b9bf-709275a8a187","page_size":[595,841],"block_position":"61-1"},{"bbox":[88,111,110,121],"type":"text","angle":0,"index":2,"text":"NFS ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"f00067dd-4e0a-4df3-8ded-5a7293f9e4d4","page_size":[595,841],"block_position":"61-2"},{"bbox":[88,126,154,137],"type":"text","angle":0,"index":3,"text":"网络文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"3c7edf5f-1522-41d9-80ec-a1908f84ab65","page_size":[595,841],"block_position":"61-3"},{"bbox":[88,142,129,153],"type":"text","angle":0,"index":4,"text":"iso9660 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"85f0a65b-54e8-4f6b-ae18-7e954b8ffc8b","page_size":[595,841],"block_position":"61-4"},{"bbox":[88,157,176,169],"type":"text","angle":0,"index":5,"text":"标准光盘文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"e2d8b1e2-ddc9-443a-a416-fb0186edc6ea","page_size":[595,841],"block_position":"61-5"},{"bbox":[88,173,216,185],"type":"text","angle":0,"index":6,"text":"在硬盘上创建分区或逻辑卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"5d2d07bf-3ec0-4f01-9df2-f402bbfd3e9c","page_size":[595,841],"block_position":"61-6"},{"bbox":[88,188,227,200],"type":"text","angle":0,"index":7,"text":"可以使用fdisk命令创建分区。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"b941c54a-a7d5-4327-b1e6-3f10cc964104","page_size":[595,841],"block_position":"61-7"},{"bbox":[88,204,262,216],"type":"text","angle":0,"index":8,"text":"可以使用LVM的相关命令创建逻辑卷 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"5837935e-5686-4884-8025-243d1bcdb4a9","page_size":[595,841],"block_position":"61-8"},{"bbox":[88,219,214,232],"type":"text","angle":0,"index":9,"text":"在分区/LV上建立文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"f5dc7610-cedc-46eb-9f42-921a67f7a479","page_size":[595,841],"block_position":"61-9"},{"bbox":[88,235,270,248],"type":"text","angle":0,"index":10,"text":"类似于在Windows下进行格式化操作。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"8bfaf76e-2acb-4f31-9847-992465a39717","page_size":[595,841],"block_position":"61-10"},{"bbox":[88,250,195,263],"type":"text","angle":0,"index":11,"text":"挂装文件系统到系统中 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"1e13cefb-8127-4e93-a2f6-9abce2528157","page_size":[595,841],"block_position":"61-11"},{"bbox":[88,265,221,279],"type":"text","angle":0,"index":12,"text":"手工挂装：使用mount命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"b40c6e21-9a95-49b8-a405-cdbbeff5ce66","page_size":[595,841],"block_position":"61-12"},{"bbox":[88,281,348,294],"type":"text","angle":0,"index":13,"text":"启动时自动挂装：编辑“/etc/fstab” 添加相应的配置行。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"be14ce0d-9053-46aa-9bf4-762a00ca84b1","page_size":[595,841],"block_position":"61-13"},{"bbox":[88,297,154,310],"type":"text","angle":0,"index":14,"text":"卸装文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"2dce7d2e-47c9-4391-bed6-84b45dcf993f","page_size":[595,841],"block_position":"61-14"},{"bbox":[87,312,464,326],"type":"text","angle":0,"index":15,"text":"对于可移动介质上的文件系统，当使用完毕可以使用 umount 命令实施卸装操作。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"1b936fcf-bc58-43c7-bc97-3ddf9c2261e6","page_size":[595,841],"block_position":"61-15"},{"bbox":[88,343,230,356],"type":"text","angle":0,"index":16,"text":"挂载文件系统——mount 命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"6f0b2760-8c7c-4aee-9d0b-f9f443df0b5b","page_size":[595,841],"block_position":"61-16"},{"bbox":[88,359,185,372],"type":"text","angle":0,"index":17,"text":"功能：挂装文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"71bd0a51-305c-4f17-8827-b06e2d921593","page_size":[595,841],"block_position":"61-17"},{"bbox":[88,375,112,387],"type":"text","angle":0,"index":18,"text":"格式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"825212da-34b0-4697-9a6e-23f69e2ecc62","page_size":[595,841],"block_position":"61-18"},{"bbox":[88,391,289,404],"type":"text","angle":0,"index":19,"text":"mount [选项] [<分区设备名>] [<挂装点>] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"0f75b3a7-56fc-4c0e-81b8-2034bfa0353a","page_size":[595,841],"block_position":"61-19"},{"bbox":[88,407,132,418],"type":"text","angle":0,"index":20,"text":"常用选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"4a79f2c5-e503-4edd-a7b9-14c41b18400f","page_size":[595,841],"block_position":"61-20"},{"bbox":[88,422,270,434],"type":"text","angle":0,"index":21,"text":"-t <文件系统类型 $\\mathrm { . }$ ：指定文件系统类型 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"d7c82628-fc6f-4fe9-8594-2f22be7e85e8","page_size":[595,841],"block_position":"61-21"},{"bbox":[88,438,206,449],"type":"text","angle":0,"index":22,"text":"-r ：使用只读方式来挂载 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"6cd01eb8-83cb-4e61-8821-c74f0baf37dd","page_size":[595,841],"block_position":"61-22"},{"bbox":[88,454,264,465],"type":"text","angle":0,"index":23,"text":"-a：挂装/etc/fstab 文件中记录的设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"e920f051-d31e-4bfc-9531-d7d9c8d82090","page_size":[595,841],"block_position":"61-23"},{"bbox":[88,469,351,481],"type":"text","angle":0,"index":24,"text":"-o iocharset=cp936：使挂装的设备可以显示中文文件名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"ccd37cd3-152c-4e97-8503-53891124af2d","page_size":[595,841],"block_position":"61-24"},{"bbox":[88,484,314,497],"type":"text","angle":0,"index":25,"text":"-o loop：使用回送设备挂装ISO文件和映像文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"985f6825-9c97-49fb-8ac5-e5c9d86e1636","page_size":[595,841],"block_position":"61-25"},{"bbox":[88,500,185,512],"type":"text","angle":0,"index":26,"text":"挂装点目录必须存在 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"7d1f1660-148e-4edb-991d-5ec4a58060eb","page_size":[595,841],"block_position":"61-26"},{"bbox":[88,515,290,528],"type":"text","angle":0,"index":27,"text":"应该在挂装目录的上级目录下进行挂装操作 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"3d870d01-8de2-4195-9d37-51938029e5ef","page_size":[595,841],"block_position":"61-27"},{"bbox":[88,531,301,543],"type":"text","angle":0,"index":28,"text":"不该在同一个挂装点目录下挂装两个文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"2aa2a5bc-5942-42f6-b4a2-34275540577d","page_size":[595,841],"block_position":"61-28"},{"bbox":[88,546,296,560],"type":"text","angle":0,"index":29,"text":"当文件系统处于“busy”状态时不能进行卸装 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"a007f2bc-8663-4032-90ee-cd7ab91990ff","page_size":[595,841],"block_position":"61-29"},{"bbox":[88,562,233,575],"type":"text","angle":0,"index":30,"text":"文件系统何时处于“busy”状态 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"da0eed11-455d-4456-8a40-738a04948063","page_size":[595,841],"block_position":"61-30"},{"bbox":[88,577,216,590],"type":"text","angle":0,"index":31,"text":"文件系统上面有打开的文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"838d0919-99c5-4cbe-ae5c-69e3a34e74d3","page_size":[595,841],"block_position":"61-31"},{"bbox":[88,593,258,606],"type":"text","angle":0,"index":32,"text":"某个进程的工作目录在此文件系统上 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"af82231d-e493-4cc9-b79f-a7bea0dd4e47","page_size":[595,841],"block_position":"61-32"},{"bbox":[88,609,258,621],"type":"text","angle":0,"index":33,"text":"文件系统上面的缓存文件正在被使用 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"f37f969e-97d9-47f7-9e0e-6dfd0993e9b6","page_size":[595,841],"block_position":"61-33"},{"bbox":[87,624,504,653],"type":"text","angle":0,"index":34,"text":"fuser命令可以根据文件（目录、设备）查找使用它的进程，同时也提供了杀死这些进程 的方法。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"126dabbe-8e1c-4fe4-a8ae-4a008dc34d49","page_size":[595,841],"block_position":"61-34"},{"bbox":[88,655,132,668],"type":"text","angle":0,"index":35,"text":"使用举例 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"a217b066-7bfa-4f0f-9fb0-2ec4360c0c52","page_size":[595,841],"block_position":"61-35"},{"bbox":[88,671,238,683],"type":"text","angle":0,"index":36,"text":"查看挂接点有哪些进程需要杀掉 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"4d69e0ab-3031-4e10-816d-55dbdf05043d","page_size":[595,841],"block_position":"61-36"},{"bbox":[88,687,218,699],"type":"text","angle":0,"index":37,"text":"# fuser -cu /mount_point ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"1b5283d9-8d71-41ed-84e2-ea778a0ad58d","page_size":[595,841],"block_position":"61-37"},{"bbox":[88,703,287,715],"type":"text","angle":0,"index":38,"text":"杀死这些进程（向其发送[SIGKILL, 9]信号） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"afdb054b-dc5b-4908-8f47-b710d196a031","page_size":[595,841],"block_position":"61-38"},{"bbox":[88,719,218,730],"type":"text","angle":0,"index":39,"text":"# fuser -ck /mount_point ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"98c46eb0-57bc-4d21-a0bf-4c3dbfe53600","page_size":[595,841],"block_position":"61-39"},{"bbox":[88,734,237,746],"type":"text","angle":0,"index":40,"text":"查看是否还有进程在访问挂接点 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"44339218-1347-4822-8b83-5805546ae375","page_size":[595,841],"block_position":"61-40"},{"bbox":[88,750,212,762],"type":"text","angle":0,"index":41,"text":"# fuser -c /mount_point ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":61,"id":"16e03c3d-cc7f-4b2e-8e03-056b200e9b74","page_size":[595,841],"block_position":"61-41"}],[{"bbox":[86,79,182,89],"type":"text","angle":0,"index":0,"text":"卸载挂接点上的设备 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"9aae071a-fd3d-41ca-8fdd-5009f8812eff","page_size":[595,841],"block_position":"62-0"},{"bbox":[87,95,212,106],"type":"text","angle":0,"index":1,"text":"# umount /mount_point ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"211fbd6b-21f2-4561-a49f-48af2e147684","page_size":[595,841],"block_position":"62-1"},{"bbox":[86,125,213,137],"type":"text","angle":0,"index":2,"text":"什么是LVM,LVM如何管理 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"b07efb53-652d-4f9e-b83a-a6219dc73b0a","page_size":[595,841],"block_position":"62-2"},{"bbox":[87,141,153,153],"type":"text","angle":0,"index":3,"text":"卸载文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"22ed99f5-3779-495f-ad8e-4b4046d0784a","page_size":[595,841],"block_position":"62-3"},{"bbox":[87,157,154,169],"type":"text","angle":0,"index":4,"text":"Umount 命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"53daeca2-483e-459e-aff9-cda90b090f90","page_size":[595,841],"block_position":"62-4"},{"bbox":[87,172,184,185],"type":"text","angle":0,"index":5,"text":"挂载点目录必须存在 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"49495cf8-577c-4784-a9e1-3055079859c3","page_size":[595,841],"block_position":"62-5"},{"bbox":[86,188,342,200],"type":"text","angle":0,"index":6,"text":"应该在怪载目录的上级目录的上级目录下进行挂载操作 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"d1ffed63-fcfe-49d4-9ec0-661264a7b35c","page_size":[595,841],"block_position":"62-6"},{"bbox":[87,203,184,216],"type":"text","angle":0,"index":7,"text":"不该在同一个挂载点 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"b84f1153-3caa-4a21-b264-f4b7515c60d6","page_size":[595,841],"block_position":"62-7"},{"bbox":[86,218,496,247],"type":"text","angle":0,"index":8,"text":"Fuser可以根据文件（目录、设备）查找使用它的进程，同时提懂了杀死这些进程的方法 系统启动时，自动挂装文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"a806009a-2d30-486c-8493-5f8efa1226a2","page_size":[595,841],"block_position":"62-8"},{"bbox":[87,265,137,277],"type":"text","angle":0,"index":9,"text":"/etc/fstab ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"6b716436-f9ac-4768-8265-3481fd6572f8","page_size":[595,841],"block_position":"62-9"},{"bbox":[86,281,468,294],"type":"text","angle":0,"index":10,"text":"开机后系统会自动搜索该文件中的内容，对雷雨该文件重点文件系统进行自动挂载 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"4a7a1777-2724-40dc-aa16-02442bc3a026","page_size":[595,841],"block_position":"62-10"},{"bbox":[86,296,498,325],"type":"text","angle":0,"index":11,"text":"fstab (file system table) 是一个纯文本文件，开机后，系统会自动搜索该文件中的内容， 对列于该文件中的文件系统进行自动挂载。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"f65f79fa-c223-47f9-9ca4-e18a999aa186","page_size":[595,841],"block_position":"62-11"},{"bbox":[87,328,247,340],"type":"text","angle":0,"index":12,"text":"系统重启时保留文件系统体系结构 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"504fbbcf-d331-426d-b0bb-59b006d5b457","page_size":[595,841],"block_position":"62-12"},{"bbox":[87,343,195,356],"type":"text","angle":0,"index":13,"text":"配置文件系统体系结构 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"abc2d4a4-c80a-4293-b30f-9a0a6c291faa","page_size":[595,841],"block_position":"62-13"},{"bbox":[87,359,241,371],"type":"text","angle":0,"index":14,"text":"被 mount、fsck 和其它程序使用 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"49b83e5d-19e2-47f8-8dcb-8cc9254320f7","page_size":[595,841],"block_position":"62-14"},{"bbox":[87,375,339,387],"type":"text","angle":0,"index":15,"text":"使用 mount -a 命令挂载 /etc/fstab 中的所有文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"ed476682-55cf-4454-a501-33f5401a3e58","page_size":[595,841],"block_position":"62-15"},{"bbox":[87,391,237,402],"type":"text","angle":0,"index":16,"text":"可以在设备栏使用文件系统卷标 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"4b738919-0670-4a31-b574-8b8050a9e021","page_size":[595,841],"block_position":"62-16"},{"bbox":[87,406,192,417],"type":"text","angle":0,"index":17,"text":"/etc/fstab 包含的信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"e12d3a2a-3923-45b5-b21a-7d3fd46be8c8","page_size":[595,841],"block_position":"62-17"},{"bbox":[87,422,258,433],"type":"text","angle":0,"index":18,"text":"每一行说明一个文件系统的挂载信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"22316727-d9b7-4a68-8686-893f49629eae","page_size":[595,841],"block_position":"62-18"},{"bbox":[86,437,402,449],"type":"text","angle":0,"index":19,"text":"每一行由 6 列信息组成，列与列之间用 TAB 键隔开，一般格式如下： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"9c0e68e9-4a5e-4c25-b6fc-7e6c655d5b43","page_size":[595,841],"block_position":"62-19"},{"bbox":[86,474,400,561],"index":20,"angle":0,"type":"image","img_path":"/9303ce8214d567f55d42a0a06e6131a49607bc6c4c19ed7d6ee97b0a07b20ae3.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5277310924369748,"page_idx":62,"id":"5fa38e93-a110-4bab-9163-ed29f7500f0c","page_size":[595,841],"block_position":"62-20"},{"bbox":[86,592,381,605],"type":"text","angle":0,"index":21,"text":"分区或 LV 挂装点 文件系统类型 挂装选项 备份频率 检查顺序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"5d0510bd-cfaf-4b08-a200-bcd865b71ccd","page_size":[595,841],"block_position":"62-21"},{"bbox":[86,608,383,622],"type":"text","angle":0,"index":22,"text":"fs_spec fs_file fs_type fs_options fs_dump fs_pass ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"2b2184dd-fc62-4af0-974a-2bc016976389","page_size":[595,841],"block_position":"62-22"},{"bbox":[86,640,181,652],"type":"text","angle":0,"index":23,"text":"fs_file：挂装点目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"9ea474e6-28de-4661-a0a6-8206547be11a","page_size":[595,841],"block_position":"62-23"},{"bbox":[87,655,199,668],"type":"text","angle":0,"index":24,"text":"fs_type：文件系统类型 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"3228f85f-a6ea-4aa3-88cf-11e01cca0a3b","page_size":[595,841],"block_position":"62-24"},{"bbox":[87,671,235,683],"type":"text","angle":0,"index":25,"text":"fs_options：文件系统挂载选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"563c29db-bf89-4e03-9404-47c18ef12675","page_size":[595,841],"block_position":"62-25"},{"bbox":[86,687,503,714],"type":"text","angle":0,"index":26,"text":"fs_dump：被”dump”命令使用来检查一个文件系统应该以多快频率进行转储，若不需要 转储则该字段为“0” ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"1086cbd2-6de9-4817-abbf-eb7064a47161","page_size":[595,841],"block_position":"62-26"},{"bbox":[86,717,503,745],"type":"text","angle":0,"index":27,"text":"fs_pass：被”fsck”命令用来决定在启动时需要被扫描的文件系统的顺序，若无需在启动 时扫描则该字段为“0” ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":62,"id":"38526574-cb50-4e1a-89bf-1f3595861e56","page_size":[595,841],"block_position":"62-27"}],[{"bbox":[86,79,260,92],"type":"text","angle":0,"index":0,"text":"每一行说明一个文件系统的挂载信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"95fd86b1-c805-4892-af62-826219c59b60","page_size":[595,841],"block_position":"63-0"},{"bbox":[87,94,418,108],"type":"text","angle":0,"index":1,"text":"设备名 挂载点 文件系统类型 挂装选项列表 dump 时记录 fsck 时的顺序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"7b3b8b7a-69f2-4393-943f-f700a552bb4d","page_size":[595,841],"block_position":"63-1"},{"bbox":[88,110,182,122],"type":"text","angle":0,"index":2,"text":"EXT 2/3/4 文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"18c81171-fbba-42d5-9e05-52b2f4508000","page_size":[595,841],"block_position":"63-2"},{"bbox":[88,125,192,138],"type":"text","angle":0,"index":3,"text":"前端命令mkfs的格式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"21285a04-e108-4719-959d-bbe3737734d2","page_size":[595,841],"block_position":"63-3"},{"bbox":[88,141,245,154],"type":"text","angle":0,"index":4,"text":"Mkfs-t <fstype> -c <分区设备名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"c864013b-f336-49ab-8f79-b1aed65248aa","page_size":[595,841],"block_position":"63-4"},{"bbox":[88,156,192,169],"type":"text","angle":0,"index":5,"text":"前端命令mkfs的格式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"4d3b99fb-6a9b-4f7b-a1e9-793cc203c7dc","page_size":[595,841],"block_position":"63-5"},{"bbox":[88,172,259,185],"type":"text","angle":0,"index":6,"text":"# mkfs -t <fstype> -c <分区设备名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"429e4f72-8e00-4b80-843c-a1f007a5da08","page_size":[595,841],"block_position":"63-6"},{"bbox":[88,188,224,201],"type":"text","angle":0,"index":7,"text":"-t fstype：指定文件系统类型 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"7b287c98-e033-4bda-b6d6-4aafc4cd4eb1","page_size":[595,841],"block_position":"63-7"},{"bbox":[88,203,256,216],"type":"text","angle":0,"index":8,"text":"-c：建立文件系统前先检测有无坏块 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"6361f58c-ec3b-4585-b9ef-94e7f47ee1cb","page_size":[595,841],"block_position":"63-8"},{"bbox":[88,219,111,232],"type":"text","angle":0,"index":9,"text":"举例 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"91abc604-2985-46e7-88d1-568447bd1232","page_size":[595,841],"block_position":"63-9"},{"bbox":[88,235,221,247],"type":"text","angle":0,"index":10,"text":"# mkfs -t ext3 -c /dev/hda2 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"4137f208-6ae6-4cf2-9988-f5ecb3663cf8","page_size":[595,841],"block_position":"63-10"},{"bbox":[88,250,208,262],"type":"text","angle":0,"index":11,"text":"# mkfs -t vfat /dev/hdb2 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"36b54667-2918-4944-83a4-faf71cc9e796","page_size":[595,841],"block_position":"63-11"},{"bbox":[88,265,199,278],"type":"text","angle":0,"index":12,"text":"# mke2fs -c /dev/hda2 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"6dc6df73-fb65-48a7-9ce3-daf766875c53","page_size":[595,841],"block_position":"63-12"},{"bbox":[88,281,198,294],"type":"text","angle":0,"index":13,"text":"# mkfs.ext4 /dev/sda1 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"1a0c8a7a-bcf3-43cc-ab1a-4254c093500d","page_size":[595,841],"block_position":"63-13"},{"bbox":[87,312,357,326],"type":"text","angle":0,"index":14,"text":"fsck 是操作系统扫描文件系统内容检查内部一致性的工具。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"f36cc991-8cd4-4d63-9e52-017747597a3e","page_size":[595,841],"block_position":"63-14"},{"bbox":[88,327,132,341],"type":"text","angle":0,"index":15,"text":"主要功能 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"9b668db1-47a4-4f2b-8040-b4d0cddbfd7b","page_size":[595,841],"block_position":"63-15"},{"bbox":[88,343,216,356],"type":"text","angle":0,"index":16,"text":"检测并修正链接中断的目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"8c64008c-9e99-4f38-babe-9a31a843f1e3","page_size":[595,841],"block_position":"63-16"},{"bbox":[88,359,206,372],"type":"text","angle":0,"index":17,"text":"检测并修正错误时间标记 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"b496dddc-7d88-40d0-82cb-bc12d9fd99fb","page_size":[595,841],"block_position":"63-17"},{"bbox":[88,375,271,388],"type":"text","angle":0,"index":18,"text":"检测并修正指向错误磁盘区域的 i-node ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"cf50cec9-dd91-4211-bc23-755778f007e2","page_size":[595,841],"block_position":"63-18"},{"bbox":[88,391,132,402],"type":"text","angle":0,"index":19,"text":"命令格式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"ca201b60-71bc-41ab-a53e-ad49993e5984","page_size":[595,841],"block_position":"63-19"},{"bbox":[87,405,391,420],"type":"text","angle":0,"index":20,"text":"fsck [选项][-t 文件系统类型] <设备名 $>$ [特定文件系统的附加选项] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"bce9b12d-b66d-40a5-9c59-75058c67a02c","page_size":[595,841],"block_position":"63-20"},{"bbox":[88,437,198,450],"type":"text","angle":0,"index":21,"text":"Fsck ——检查文件系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"c4716b89-cad1-4702-90d8-c5f4d24d8569","page_size":[595,841],"block_position":"63-21"},{"bbox":[88,453,129,465],"type":"text","angle":0,"index":22,"text":"Tune2fs ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"ef8ed01c-94ba-4da9-ae9a-1b8041fc8652","page_size":[595,841],"block_position":"63-22"},{"bbox":[88,468,195,481],"type":"text","angle":0,"index":23,"text":"显示文件系统属性参数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"fc392a7b-2308-42c9-ad08-af2c17e0e7c2","page_size":[595,841],"block_position":"63-23"},{"bbox":[88,484,185,496],"type":"text","angle":0,"index":24,"text":"tune2fs -l <device> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"67531112-d403-4fb3-a5a2-74a78e1573b3","page_size":[595,841],"block_position":"63-24"},{"bbox":[88,499,198,512],"type":"text","angle":0,"index":25,"text":"dumpe2fs -h <device> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"e0504e08-5752-4e59-af52-dab964803f91","page_size":[595,841],"block_position":"63-25"},{"bbox":[88,515,216,528],"type":"text","angle":0,"index":26,"text":"可调整的文件系统属性参数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"a3faedca-e640-4b66-9290-c8e863691ecf","page_size":[595,841],"block_position":"63-26"},{"bbox":[88,531,121,543],"type":"text","angle":0,"index":27,"text":"保留块 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"86a654ea-7ab7-4259-9cbe-723257a5b9a6","page_size":[595,841],"block_position":"63-27"},{"bbox":[88,546,153,559],"type":"text","angle":0,"index":28,"text":"默认挂载选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"d5b65938-47cd-4d91-b98c-2be767e0713c","page_size":[595,841],"block_position":"63-28"},{"bbox":[88,562,133,574],"type":"text","angle":0,"index":29,"text":"fsck 频率 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"09debf34-cd68-4200-b2f2-d730cb47556f","page_size":[595,841],"block_position":"63-29"},{"bbox":[88,577,111,590],"type":"text","angle":0,"index":30,"text":"格式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"806f8782-97ca-44ac-8d81-3e075ff22719","page_size":[595,841],"block_position":"63-30"},{"bbox":[88,593,216,606],"type":"text","angle":0,"index":31,"text":"tune2fs [<选项>] <设备名> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"fc6a0b69-ed06-4537-b395-98bc94f655c8","page_size":[595,841],"block_position":"63-31"},{"bbox":[88,608,132,621],"type":"text","angle":0,"index":32,"text":"常用选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"2e4f2864-6eaa-4bfb-b633-6b3bfc4e745c","page_size":[595,841],"block_position":"63-32"},{"bbox":[87,624,437,637],"type":"text","angle":0,"index":33,"text":"-c：表示文件系统在 mount 次数达到设定后，需要运行 fsck 检查文件系统。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"ec6817c7-76f0-424d-8bb7-9d8a81adb9d7","page_size":[595,841],"block_position":"63-33"},{"bbox":[88,640,436,652],"type":"text","angle":0,"index":34,"text":"-i：文件系统的检查间隔时间。系统在达到时间间隔时，自动检查文件系统。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"da49f203-f2d2-4acd-9466-b497b303bc44","page_size":[595,841],"block_position":"63-34"},{"bbox":[88,655,383,668],"type":"text","angle":0,"index":35,"text":"-j：为 ext2 文件系统添加文件系统日志，转换为 ext3 文件系统。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"4aad37f1-19a3-47dc-aba2-ca652288dba0","page_size":[595,841],"block_position":"63-35"},{"bbox":[88,671,277,683],"type":"text","angle":0,"index":36,"text":"-m: 设置保留的空间百分比，预设为 $5 \\% .$ 。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"e0dce4cf-56c2-46cd-bc53-3757783d1733","page_size":[595,841],"block_position":"63-36"},{"bbox":[88,687,193,699],"type":"text","angle":0,"index":37,"text":"-o: 设置默认加载参数。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"875eb9e6-3e14-4395-83f0-768c59bea456","page_size":[595,841],"block_position":"63-37"},{"bbox":[88,702,283,714],"type":"text","angle":0,"index":38,"text":"-L: 为指定设备设置卷标，不大于 16 字符。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"05ff05d8-c8b5-42cf-9a12-11bff8d6ce13","page_size":[595,841],"block_position":"63-38"},{"bbox":[87,733,217,745],"type":"text","angle":0,"index":39,"text":"文件系统的 LABLE 和 UUID ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"7943795a-28f9-4471-9438-8020811f3ffb","page_size":[595,841],"block_position":"63-39"},{"bbox":[88,749,195,761],"type":"text","angle":0,"index":40,"text":"标识块设备的传统方法 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":63,"id":"f335c1b4-27ed-4b7a-a153-e4ddf66f6c24","page_size":[595,841],"block_position":"63-40"}],[{"bbox":[88,79,121,91],"type":"text","angle":0,"index":0,"text":"设备名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"fdfa866a-c0bb-457e-8e2a-b6a25c27cdde","page_size":[595,841],"block_position":"64-0"},{"bbox":[88,95,194,107],"type":"text","angle":0,"index":1,"text":"标识块设备的其他方法 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"6487e7bc-2758-4ee7-9f92-71700ab2531d","page_size":[595,841],"block_position":"64-1"},{"bbox":[88,111,164,122],"type":"text","angle":0,"index":2,"text":"文件系统 LABEL ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"288a7f6c-80b1-48e6-b24d-47f6ee434770","page_size":[595,841],"block_position":"64-2"},{"bbox":[88,126,171,137],"type":"text","angle":0,"index":3,"text":"文件系统的UUID ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"582a487d-96f9-4b85-9e31-6d70fe178199","page_size":[595,841],"block_position":"64-3"},{"bbox":[88,142,276,153],"type":"text","angle":0,"index":4,"text":"在生成文件系统时自动为设备只当 UUID ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"f8ce3fee-c461-4358-90ec-02fb63cb2fe8","page_size":[595,841],"block_position":"64-4"},{"bbox":[88,157,405,169],"type":"text","angle":0,"index":5,"text":"磁盘限额是系统管理员用来监控和限制用户或组对磁盘的使用的工具 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"0579e020-3d9a-4c5a-9f9d-c61e034e188c","page_size":[595,841],"block_position":"64-5"},{"bbox":[88,173,408,185],"type":"text","angle":0,"index":6,"text":"磁盘限额是系统管理员用来监控和限制用户或组对磁盘的使用的工具。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"6f838bba-8902-4c0f-8440-50194eb59ae5","page_size":[595,841],"block_position":"64-6"},{"bbox":[88,189,216,200],"type":"text","angle":0,"index":7,"text":"磁盘限额可以从两方面限制 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"a22af66e-e232-4a97-9271-06df6a22eabc","page_size":[595,841],"block_position":"64-7"},{"bbox":[88,204,315,216],"type":"text","angle":0,"index":8,"text":"限制用户或组可以拥有的inode数（即文件个数） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"3e24f72a-8127-4192-86d3-04771a28cc42","page_size":[595,841],"block_position":"64-8"},{"bbox":[88,220,257,232],"type":"text","angle":0,"index":9,"text":"限制分配给用户或组的磁盘块的数目 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"a163cee2-e7c4-4e3f-b09b-2e2ebf484911","page_size":[595,841],"block_position":"64-9"},{"bbox":[87,235,504,263],"type":"text","angle":0,"index":10,"text":"磁盘配额是以每一使用者，每一文件系统为基础的。如果使用者可以在超过一个以上的文 件系统上建立文件，那么必须在每一文件系统上分别设定。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"543a5f7c-45e7-4a98-b41a-246c17f1984d","page_size":[595,841],"block_position":"64-10"},{"bbox":[88,266,315,279],"type":"text","angle":0,"index":11,"text":"硬限制：超过此设定值后不能继续存储新的文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"e1763ace-33af-4963-a9c8-454612af4b0c","page_size":[595,841],"block_position":"64-11"},{"bbox":[87,281,504,309],"type":"text","angle":0,"index":12,"text":"软限制：超过此设定值后仍旧可以继续存储新的文件，同时系统发出警告信息, 建议用户清 理自己的文件，释放出更多的空间。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"0c6fbe82-0393-4a5b-aacf-62d4cb7d244e","page_size":[595,841],"block_position":"64-12"},{"bbox":[87,312,418,325],"type":"text","angle":0,"index":13,"text":"时限：超过软限制多长时间之内（默认为7天）可以继续存储新的文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"634e5fb7-b863-4209-8b62-7cc12287d1c1","page_size":[595,841],"block_position":"64-13"},{"bbox":[88,329,131,341],"type":"text","angle":0,"index":14,"text":"Edquota ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"8e471618-b4d6-46e5-87a7-1399d1987c6e","page_size":[595,841],"block_position":"64-14"},{"bbox":[90,343,166,356],"type":"text","angle":0,"index":15,"text":"交互式编辑配额 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"edb72288-71b1-46c4-ace3-da99af93a258","page_size":[595,841],"block_position":"64-15"},{"bbox":[88,360,131,372],"type":"text","angle":0,"index":16,"text":"edquota ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"4d0ed769-8056-4901-ba95-5a11b84a0eca","page_size":[595,841],"block_position":"64-16"},{"bbox":[88,375,163,387],"type":"text","angle":0,"index":17,"text":"命令式设置配额 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"399c2948-c548-4d8a-b6b9-d41c551d41b2","page_size":[595,841],"block_position":"64-17"},{"bbox":[88,392,133,403],"type":"text","angle":0,"index":18,"text":"setquota ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"7cb4a6e4-c916-4d3b-af73-880a81a64b5c","page_size":[595,841],"block_position":"64-18"},{"bbox":[88,406,276,418],"type":"text","angle":0,"index":19,"text":"将参考用户/组的配额复制给其他用户/组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"4af0d828-d0b5-44c5-a170-4ba552af6eca","page_size":[595,841],"block_position":"64-19"},{"bbox":[88,423,235,434],"type":"text","angle":0,"index":20,"text":"edquota -p <protoname> …… ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"b5fba746-db04-44a6-bfe6-0c11edeb368e","page_size":[595,841],"block_position":"64-20"},{"bbox":[88,439,235,450],"type":"text","angle":0,"index":21,"text":"setquota -p <protoname> …… ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"042db0b2-4bbf-4ee7-a3cb-dfb15a3ed159","page_size":[595,841],"block_position":"64-21"},{"bbox":[88,454,185,465],"type":"text","angle":0,"index":22,"text":"编辑指定用户的配额 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"60b9811c-ba77-4a43-91d9-05e9755d9d9f","page_size":[595,841],"block_position":"64-22"},{"bbox":[88,469,292,481],"type":"text","angle":0,"index":23,"text":"edquota [-u] [ -f filesystem ] <username> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"6a20048c-7c82-4789-8b8e-8e27f813e545","page_size":[595,841],"block_position":"64-23"},{"bbox":[88,484,174,496],"type":"text","angle":0,"index":24,"text":"编辑指定组的配额 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"957814f5-2035-4cde-b542-5627c5e66925","page_size":[595,841],"block_position":"64-24"},{"bbox":[88,500,299,513],"type":"text","angle":0,"index":25,"text":"edquota -g [ -f filesystem ] <groupname> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"7a549fba-8eb0-4d26-80d8-4117ff14342c","page_size":[595,841],"block_position":"64-25"},{"bbox":[88,515,205,528],"type":"text","angle":0,"index":26,"text":"编辑指定用户的配额时限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"69b4e3f5-54c8-49a2-83ad-9706d42bb4c1","page_size":[595,841],"block_position":"64-26"},{"bbox":[88,531,238,544],"type":"text","angle":0,"index":27,"text":"edquota -t [-u] [ -f filesystem ] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"b3bfbc4a-6784-4eea-981f-85cf70a84b0c","page_size":[595,841],"block_position":"64-27"},{"bbox":[88,547,194,559],"type":"text","angle":0,"index":28,"text":"编辑指定组的配额时限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"dc547319-061c-4211-b6bc-cec1977ee3af","page_size":[595,841],"block_position":"64-28"},{"bbox":[88,597,154,613],"type":"title","angle":0,"index":29,"text":"# 用户管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":64,"id":"97cc19bb-632e-4899-a4a4-cb107dbbef5c","page_size":[595,841],"block_position":"64-29"},{"bbox":[88,652,130,663],"type":"text","angle":0,"index":30,"text":"查看用户 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"d92a3e93-e504-4ebd-90fa-54cd4ef5c3f2","page_size":[595,841],"block_position":"64-30"},{"bbox":[88,698,199,710],"type":"text","angle":0,"index":31,"text":"请打开终端，输入命令： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"18db38d5-cbe2-42e3-97c9-fc7f7c564b89","page_size":[595,841],"block_position":"64-31"},{"bbox":[88,715,143,725],"type":"text","angle":0,"index":32,"text":"$\\$ 1$ who am i ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"dee8c46e-70cb-4f55-a184-8a4479e41484","page_size":[595,841],"block_position":"64-32"},{"bbox":[88,745,120,757],"type":"text","angle":0,"index":33,"text":"# 或者 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":64,"id":"2ba21341-d743-43ec-b9eb-6a0b604b6510","page_size":[595,841],"block_position":"64-33"}],[{"bbox":[88,95,174,106],"type":"header","angle":0,"index":-99999,"text":"$\\$ 1$ who mom likes ","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":65,"is_discarded":true,"id":"f67197e0-99fb-4a7e-ad15-e5b1ddae0f68","page_size":[595,841],"block_position":"65-0"},{"bbox":[86,125,507,232],"type":"text","angle":0,"index":1,"text":"说明：在不同的 Linux 发行版中，在线安装方式会有一些差异，包括使用的命令及它们的 包管理工具。本实验的环境是基于 Ubuntu 的，所以这里涉及的在线安装方式仅只适用于 Ubuntu 发行版，或其它基于 Ubuntu 的发行版如我国的 ubuntukylin(优麒麟)。Ubuntu 又是基于 Debian 的衍生发行版，使用的也是 Debian 的包管理工具dpkg，所以一些操作 也适用与 Debian。对于其他发行版，由于使用的包管理器不同，相应的命令和选项也会 有一些差异，例如 RHEL、CentOS、openEuler 等使用 yum 或者 dnf。请查阅资料学习相 应的命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"48a79eaa-feb3-447d-8cf9-704944e5f242","page_size":[595,841],"block_position":"65-1"},{"bbox":[87,234,285,248],"type":"text","angle":0,"index":2,"text":"通常 Linux 上的软件安装主要有四种方式： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"4e6bb631-5a60-4037-9015-c616920623d5","page_size":[595,841],"block_position":"65-2"},{"bbox":[105,250,168,262],"type":"text","angle":0,"index":3,"text":". 在线安装 ","id":"2ad7d431-60a0-4155-9e67-dd99cd0ab523","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"page_size":[595,841],"block_position":"65-3"},{"bbox":[105,265,233,278],"type":"text","angle":0,"index":4,"text":". 从磁盘安装deb 软件包 ","id":"1835898d-c16e-4d36-99f8-e2bce5fecfd6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"page_size":[595,841],"block_position":"65-4"},{"bbox":[105,281,221,294],"type":"text","angle":0,"index":5,"text":"从二进制软件包安装 ","id":"94b6df54-6c2d-46d3-9d30-4be932663ce7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"page_size":[595,841],"block_position":"65-5"},{"bbox":[105,297,210,309],"type":"text","angle":0,"index":6,"text":". 从源代码编译安装 ","id":"4db1eb95-d93f-47ad-a91e-33f0245538d0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"page_size":[595,841],"block_position":"65-6"},{"bbox":[86,312,506,357],"type":"text","angle":0,"index":8,"text":"这几种安装方式各有优劣，而大多数软件包会采用多种方式发布软件，所以我们常常需要 全部掌握这几种软件安装方式，以便适应各种环境。下面将介绍前三种安装方式，从源码 编译安装你将在 Linux 程序设计中学习到。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"d7e05b7b-a02a-4ff1-bde6-5b4211f65c2b","page_size":[595,841],"block_position":"65-7"},{"bbox":[86,375,465,388],"type":"text","angle":0,"index":9,"text":"在 Linux 系统里， root 账户拥有整个系统至高无上的权利，比如 新建/添加 用户。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"93b50314-eeec-4008-aa06-a869efb41161","page_size":[595,841],"block_position":"65-8"},{"bbox":[86,390,506,497],"type":"text","angle":0,"index":10,"text":"root 权 限 ， 系 统 权 限 的 一 种 ， 与 SYSTEM 权 限 可 以 理 解 成 一 个 概 念 ， 但 高 于 Administrator 权限，root 是 Linux 和 UNIX 系统中的超级管理员用户帐户，该帐户拥有 整个系统至高无上的权力，所有对象他都可以操作，所以很多黑客在入侵系统的时候，都 要把权限提升到 root 权限，这个操作等同于在 Windows 下就是将新建的非法帐户添加到 Administrators 用户组。更比如安卓操作系统中（基于 Linux 内核）获得 root 权限之后 就意味着已经获得了手机的最高权限，这时候你可以对手机中的任何文件（包括系统文 件）执行所有增、删、改、查的操作。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"39d0f7fd-4e58-48b1-b019-47c1834ab572","page_size":[595,841],"block_position":"65-9"},{"bbox":[86,499,508,574],"type":"text","angle":0,"index":11,"text":"大部分 Linux 系统在安装时都会建议用户新建一个用户而不是直接使用 root用户进行登录， 当然也有直接使用root 登录的，例如Kali（基于 Debian 的 Linux 发行版，集成大量工具 软件，主要用于数字取证的操作系统）。一般我们登录系统时都是以普通账户的身份登录 的，要创建用户需要 root 权限，这里就要用到 sudo 这个命令了。不过使用这个命令有两 个前提： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"7573c6ab-72eb-4e4d-a568-0a0afa2ed3dc","page_size":[595,841],"block_position":"65-10"},{"bbox":[105,577,252,590],"type":"text","angle":0,"index":12,"text":"要知道当前登录用户的密码 ","id":"48b1d9c0-0291-40aa-841b-444402467c9f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"page_size":[595,841],"block_position":"65-11"},{"bbox":[105,593,264,605],"type":"text","angle":0,"index":13,"text":"当前用户必须在 sudo 用户组。 ","id":"7d17c021-372f-4a97-bc3e-ce12d7f0e1c1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"page_size":[595,841],"block_position":"65-12"},{"bbox":[87,608,289,622],"type":"text","angle":0,"index":15,"text":"说明：shiyanlou 用户也属于 sudo 用户组。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"c3af459e-e61e-4134-ac53-75bae809d47b","page_size":[595,841],"block_position":"65-13"},{"bbox":[86,640,279,652],"type":"text","angle":0,"index":16,"text":"账户实质上就是一个用户在系统上的标识 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"156dd23f-897e-48ff-9508-5c0f0615568b","page_size":[595,841],"block_position":"65-14"},{"bbox":[86,655,478,668],"type":"text","angle":0,"index":17,"text":"系统依据账户来区分每个用户的文件、进程、任务，给每个用户提供特定的工作环境 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"d261bcad-e9e1-4100-95fa-e91f6497c3e2","page_size":[595,841],"block_position":"65-15"},{"bbox":[87,671,235,683],"type":"text","angle":0,"index":18,"text":"Linux系统下的用户账户有两种 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"6cd3c5f4-e4e9-4fc2-b7e6-09e45ab37b6d","page_size":[595,841],"block_position":"65-16"},{"bbox":[87,687,152,699],"type":"text","angle":0,"index":19,"text":"普通用户账户 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"18bd2ddc-3602-46a9-9404-e1fa99f41e63","page_size":[595,841],"block_position":"65-17"},{"bbox":[87,702,220,714],"type":"text","angle":0,"index":20,"text":"超级用户账户（管理员账户） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"6647dd70-1166-425c-91ac-d1f7c3abf16e","page_size":[595,841],"block_position":"65-18"},{"bbox":[87,718,202,731],"type":"text","angle":0,"index":21,"text":"超级用户 yud $\\mathtt { = 0 }$ ，gid $\\mathtt { = 0 }$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"d15e5570-e58b-462c-9b9a-78f22c22f313","page_size":[595,841],"block_position":"65-19"},{"bbox":[87,734,186,746],"type":"text","angle":0,"index":22,"text":"普通用户 u ${ \\mathsf { d } } { \\mathsf { s } } { = } 1 0 0 0$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"b3164a59-3789-4e87-b18c-7e0501654dbc","page_size":[595,841],"block_position":"65-20"},{"bbox":[87,749,155,761],"type":"text","angle":0,"index":23,"text":"系统用户： $0 <$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":65,"id":"f53c83b6-973f-4fa3-9ce4-f2f46c56d821","page_size":[595,841],"block_position":"65-21"}],[{"bbox":[86,79,277,92],"type":"text","angle":0,"index":0,"text":"用户名和 uid 被保存在/etc/passwd 文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"fc10bf82-99e7-4bc1-bda5-de388cd8a88b","page_size":[595,841],"block_position":"66-0"},{"bbox":[87,94,401,108],"type":"text","angle":0,"index":1,"text":"当用户登录时，它们被分配了一个主目录和一个运行的程序（shell） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"df70b6b3-187b-4eae-8a4b-f1846332f450","page_size":[595,841],"block_position":"66-1"},{"bbox":[88,110,167,122],"type":"text","angle":0,"index":2,"text":"组时用户的集合。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"e3411f07-6779-4a61-8a5f-f5b3cab4250f","page_size":[595,841],"block_position":"66-2"},{"bbox":[87,125,296,138],"type":"text","angle":0,"index":3,"text":"每个组都被分配了一个唯一的组 ID 号（GID） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"33cd3a62-9e94-410d-afa0-28f1a462ba22","page_size":[595,841],"block_position":"66-3"},{"bbox":[88,142,121,153],"type":"text","angle":0,"index":4,"text":"标准组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"fd80269e-4616-4b21-a7d0-daed4c8beac2","page_size":[595,841],"block_position":"66-4"},{"bbox":[88,157,173,169],"type":"text","angle":0,"index":5,"text":"可以容纳多个用户 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"e5ab6195-ff9f-4255-8125-4b7989907285","page_size":[595,841],"block_position":"66-5"},{"bbox":[88,173,121,185],"type":"text","angle":0,"index":6,"text":"私有组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"03a501d1-9127-470d-8cd2-ea782445efd6","page_size":[595,841],"block_position":"66-6"},{"bbox":[88,188,153,200],"type":"text","angle":0,"index":7,"text":"只有用户自己 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"f5b35cc5-21d8-4348-8707-357aab4fc6eb","page_size":[595,841],"block_position":"66-7"},{"bbox":[87,203,505,216],"type":"text","angle":0,"index":8,"text":"当创建一个新用户时，若没有指定他所属于的组，RHEL就会建立一个和该用户同名的私 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"7d37ca58-6ffa-4874-a8b9-bf2a8c6ad7fc","page_size":[595,841],"block_position":"66-8"},{"bbox":[88,219,258,232],"type":"text","angle":0,"index":9,"text":"有组，且用户被分配到这个私有组中 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"9855dc32-bf5c-4614-927e-8ec17e28be2e","page_size":[595,841],"block_position":"66-9"},{"bbox":[87,234,398,248],"type":"text","angle":0,"index":10,"text":"一个用户可以属于多个组，这些组可以是私有组，也可以是标准组。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"b772f3ec-f2c2-490f-b0a0-edab8ccb2d6f","page_size":[595,841],"block_position":"66-10"},{"bbox":[87,250,242,263],"type":"text","angle":0,"index":11,"text":"默认启用 shadow oasswird 功能 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"47d206bb-03c9-4c48-ba1b-59b225ef597b","page_size":[595,841],"block_position":"66-11"},{"bbox":[88,266,174,279],"type":"text","angle":0,"index":12,"text":"一般不设置组口令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"c47bb107-b66a-4c7a-b217-9637df984151","page_size":[595,841],"block_position":"66-12"},{"bbox":[88,281,247,294],"type":"text","angle":0,"index":13,"text":"尽量使用私有组来提高系统安全性 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"cd6850e2-603d-48ec-836a-c28ac37f6011","page_size":[595,841],"block_position":"66-13"},{"bbox":[88,297,195,310],"type":"text","angle":0,"index":14,"text":"不建议管理员直接编辑 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"b13b472c-9839-43f1-8a0a-0ae79d14ee84","page_size":[595,841],"block_position":"66-14"},{"bbox":[88,312,174,325],"type":"text","angle":0,"index":15,"text":"账户验证信息文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"5a916d26-7811-47c4-9fbd-b4f02df9eda4","page_size":[595,841],"block_position":"66-15"},{"bbox":[88,328,132,341],"type":"text","angle":0,"index":16,"text":"口令文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"c3eb0323-cfbf-4bb3-9f68-79dda0137454","page_size":[595,841],"block_position":"66-16"},{"bbox":[88,343,132,356],"type":"text","angle":0,"index":17,"text":"文件权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"fa9ec275-79ed-4a8a-b7e5-8e9654ff7923","page_size":[595,841],"block_position":"66-17"},{"bbox":[88,359,149,372],"type":"text","angle":0,"index":18,"text":"/etc/passwd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"3f4df3cb-6f63-4024-8111-bc3b6bfd9b27","page_size":[595,841],"block_position":"66-18"},{"bbox":[87,375,367,387],"type":"text","angle":0,"index":19,"text":"每一个用户一条记录，每条记录用分号杰哥的七个字段组成。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"8ea2af13-575a-433c-bb25-ca9a9e240a09","page_size":[595,841],"block_position":"66-19"},{"bbox":[88,391,152,403],"type":"text","angle":0,"index":20,"text":"影子口令文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"e9bce56e-71e0-4cb6-90f2-996f892f1afd","page_size":[595,841],"block_position":"66-20"},{"bbox":[88,407,142,418],"type":"text","angle":0,"index":21,"text":"组账号文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"0651a5fb-64a3-44f9-9a5e-4e13ebde8cc5","page_size":[595,841],"block_position":"66-21"},{"bbox":[88,422,225,434],"type":"text","angle":0,"index":22,"text":"组口令文件 每一组一i奥记录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"ee08c6c7-b964-42f5-a7ef-8eb2f23186bd","page_size":[595,841],"block_position":"66-22"},{"bbox":[88,437,258,450],"type":"text","angle":0,"index":23,"text":"用户默认配置文件‘新用户基本信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"d3bbd76d-3161-4556-833c-c6e2d06d7b2f","page_size":[595,841],"block_position":"66-23"},{"bbox":[88,453,195,465],"type":"text","angle":0,"index":24,"text":"添加用户账号 useradd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"5b3e22e3-4881-4d47-ac60-1aa0df730429","page_size":[595,841],"block_position":"66-24"},{"bbox":[87,483,195,497],"type":"text","angle":0,"index":25,"text":"编辑账户验证信息文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"849352f0-e2ac-4bf9-b02a-51f2638b5557","page_size":[595,841],"block_position":"66-25"},{"bbox":[88,500,142,513],"type":"text","angle":0,"index":26,"text":"创建主目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"8c906137-0cf6-4ddc-a80c-1bd5869d6dff","page_size":[595,841],"block_position":"66-26"},{"bbox":[88,531,152,543],"type":"text","angle":0,"index":27,"text":"设置用户口令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"26bcd665-b7d3-4538-9127-c0ac7b048775","page_size":[595,841],"block_position":"66-27"},{"bbox":[90,546,182,559],"type":"text","angle":0,"index":28,"text":"Passw的【用户名】 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"729dd755-13e8-4b8d-bb1c-966f65b62f0c","page_size":[595,841],"block_position":"66-28"},{"bbox":[88,562,152,575],"type":"text","angle":0,"index":29,"text":"修改用户账号 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"846e8406-74ee-4686-8545-66200ef4538a","page_size":[595,841],"block_position":"66-29"},{"bbox":[88,577,277,590],"type":"text","angle":0,"index":30,"text":"Usermod 选项与 useradd 命令基本相同 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"26fe0b3c-cfc8-4291-9fdc-43a4f0b91b5d","page_size":[595,841],"block_position":"66-30"},{"bbox":[88,593,171,606],"type":"text","angle":0,"index":31,"text":"Userdel 删除账号 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"64169260-d102-4f2c-8102-5daa826babb1","page_size":[595,841],"block_position":"66-31"},{"bbox":[88,609,195,622],"type":"text","angle":0,"index":32,"text":"Groupadd 添加组账号 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"e6cd0136-b604-48e6-b34c-3ce29c231b00","page_size":[595,841],"block_position":"66-32"},{"bbox":[88,624,198,637],"type":"text","angle":0,"index":33,"text":"Groupmod 修改组账号 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"a2d640bd-8a5d-417c-a2cf-d9f0f6f0de4f","page_size":[595,841],"block_position":"66-33"},{"bbox":[88,640,201,653],"type":"text","angle":0,"index":34,"text":"Groupdel 删除的组账号 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"348058fd-4a51-4c39-882e-f94f7be9fc65","page_size":[595,841],"block_position":"66-34"},{"bbox":[88,655,189,668],"type":"text","angle":0,"index":35,"text":"Gpasswd 修改组账号 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"810ebc2e-a25e-43e1-afd0-b328cc98073b","page_size":[595,841],"block_position":"66-35"},{"bbox":[88,671,174,683],"type":"text","angle":0,"index":36,"text":"批量用户管理工具 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"66657b85-6905-4fbb-9d34-3109c7e2341a","page_size":[595,841],"block_position":"66-36"},{"bbox":[88,687,190,699],"type":"text","angle":0,"index":37,"text":"Newusers chpasswd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"df0bfc88-f8e9-4428-9826-82b6937e9840","page_size":[595,841],"block_position":"66-37"},{"bbox":[88,702,184,714],"type":"text","angle":0,"index":38,"text":"批量生成安全的口令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"0067fcd8-69f1-4e32-bf7b-e07361b97755","page_size":[595,841],"block_position":"66-38"},{"bbox":[88,718,123,730],"type":"text","angle":0,"index":39,"text":"Pwgen ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"35590932-63be-4b5c-8b02-31c84928ba9c","page_size":[595,841],"block_position":"66-39"},{"bbox":[88,734,289,746],"type":"text","angle":0,"index":40,"text":"口令维护—— 禁用、删除和维护和口令时效 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"c1c6e327-33d8-425e-90e9-163cae0fa935","page_size":[595,841],"block_position":"66-40"},{"bbox":[88,749,216,761],"type":"text","angle":0,"index":41,"text":"设置已存在用户的口令时效 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":66,"id":"34a5c63d-aa13-4bab-a0c7-a815dcd73531","page_size":[595,841],"block_position":"66-41"}],[{"bbox":[88,79,153,91],"type":"text","angle":0,"index":0,"text":"用户切换命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"7d2a0f39-e7b6-4d3a-9021-0647ef58e24b","page_size":[595,841],"block_position":"67-0"},{"bbox":[88,95,103,105],"type":"text","angle":0,"index":1,"text":"Su ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"01f33a4b-85ec-4d21-9d6c-8c7cb5f38183","page_size":[595,841],"block_position":"67-1"},{"bbox":[88,110,184,122],"type":"text","angle":0,"index":2,"text":"直接切换为冲击用户 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"9ad4a261-b2fe-4482-ba07-12dc237a8124","page_size":[595,841],"block_position":"67-2"},{"bbox":[87,125,478,138],"type":"text","angle":0,"index":3,"text":"Sudo执行系统管理命令，无需知道超级用户的口令，使用普通用户自己的口令即可。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"8bd553b9-26cc-4f2d-9612-8e7ef74ea30c","page_size":[595,841],"block_position":"67-3"},{"bbox":[88,141,216,154],"type":"text","angle":0,"index":4,"text":"Id groups whoami w/who ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"d1150e66-b362-458f-82d7-faa2aaf93c90","page_size":[595,841],"block_position":"67-4"},{"bbox":[88,157,132,169],"type":"text","angle":0,"index":5,"text":"权限管理 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"e0216ca4-b8ee-4ba2-8ad7-11049d3c7726","page_size":[595,841],"block_position":"67-5"},{"bbox":[88,172,308,185],"type":"text","angle":0,"index":6,"text":"Linux允许多个用户同时在系统上个登录和工作 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"750bbe7c-0e00-4589-9686-1e163abbf723","page_size":[595,841],"block_position":"67-6"},{"bbox":[88,188,230,201],"type":"text","angle":0,"index":7,"text":"同归 uid、gid 来却分每个用户 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"8725e137-9bf5-4e89-9340-64240bc5b4f6","page_size":[595,841],"block_position":"67-7"},{"bbox":[88,203,318,217],"type":"text","angle":0,"index":8,"text":"每个进程都是用一个 uid 和一个或多个 gid 来运行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"ef8d6f9f-7712-4c76-bc33-4e1fe87f76e9","page_size":[595,841],"block_position":"67-8"},{"bbox":[88,219,267,232],"type":"text","angle":0,"index":9,"text":"读权限 r 对文件的含义和对目录的含义 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"3ab7c6b4-0723-4865-b605-d5efad36e239","page_size":[595,841],"block_position":"67-9"},{"bbox":[88,235,132,247],"type":"text","angle":0,"index":10,"text":"写权限 w ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"d5f54840-afc3-410a-905b-e2547db320c8","page_size":[595,841],"block_position":"67-10"},{"bbox":[88,250,140,263],"type":"text","angle":0,"index":11,"text":"执行权限 x ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"30a27068-8a41-49d7-9c7c-ce955603d2e0","page_size":[595,841],"block_position":"67-11"},{"bbox":[88,265,363,280],"type":"text","angle":0,"index":12,"text":"目录上只有执行权限，不能列出目录列表也不能删除改目录 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"3173f68a-1c04-4f78-a2e2-ce2968df56d5","page_size":[595,841],"block_position":"67-12"},{"bbox":[88,281,153,294],"type":"text","angle":0,"index":13,"text":"分配三种权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"b7abfe68-3247-46bc-9e7e-f634a2dc6bf2","page_size":[595,841],"block_position":"67-13"},{"bbox":[88,297,184,310],"type":"text","angle":0,"index":14,"text":"文件和目录的使用者 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"952d1afc-28a1-4526-b0c2-fca87df971e2","page_size":[595,841],"block_position":"67-14"},{"bbox":[88,312,195,326],"type":"text","angle":0,"index":15,"text":"属主、同组人、其他人 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"4175b8ac-e776-4bb8-b2b2-8656674a19a7","page_size":[595,841],"block_position":"67-15"},{"bbox":[88,328,132,341],"type":"text","angle":0,"index":16,"text":"权限分配 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"a00a4e1e-54d4-4465-95d7-542126a6f5a0","page_size":[595,841],"block_position":"67-16"},{"bbox":[88,343,289,356],"type":"text","angle":0,"index":17,"text":"属主的权限：用于限制文件或目录的创建者 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"36785c91-3279-4236-a6e6-6986b399d888","page_size":[595,841],"block_position":"67-17"},{"bbox":[88,359,195,372],"type":"text","angle":0,"index":18,"text":"属组的权限：用于限制 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"247acbd7-03a5-415c-a8e7-c9f81883d8f2","page_size":[595,841],"block_position":"67-18"},{"bbox":[88,375,132,387],"type":"text","angle":0,"index":19,"text":"查看权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"4399dbb1-d396-4496-93ee-6f84f3dab317","page_size":[595,841],"block_position":"67-19"},{"bbox":[88,391,504,419],"type":"text","angle":0,"index":20,"text":"D 文件类型 文件权限 硬链接数或目录包含的文件数 文件所有者 文件所有者所在的用户组 文件长度 文件上次修改时间和日期 文件名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"04d2da81-f5a2-4f44-97d8-9b0d8fb23ff2","page_size":[595,841],"block_position":"67-20"},{"bbox":[88,422,151,434],"type":"text","angle":0,"index":21,"text":"3套权限控制 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"81aa4eeb-cc73-4b23-abe9-936abd733130","page_size":[595,841],"block_position":"67-21"},{"bbox":[88,437,357,450],"type":"text","angle":0,"index":22,"text":"文件类型所有者的权限 同组用户权限 其他用户的访问权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"85b1ffd4-afd2-451d-8aab-d1604035911e","page_size":[595,841],"block_position":"67-22"},{"bbox":[88,453,195,465],"type":"text","angle":0,"index":23,"text":"可以用八进制数值表示 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"79a86016-b12b-424f-8a60-9cc3009041cc","page_size":[595,841],"block_position":"67-23"},{"bbox":[88,469,223,481],"type":"text","angle":0,"index":24,"text":"Chmod 改变文件或目录权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"17f300b9-30ac-4105-a221-294977960a34","page_size":[595,841],"block_position":"67-24"},{"bbox":[88,484,232,497],"type":"text","angle":0,"index":25,"text":"Chown 改变文件或目录的属主 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"c28053a7-a912-438a-8d8d-ab6a32117b95","page_size":[595,841],"block_position":"67-25"},{"bbox":[88,500,144,513],"type":"text","angle":0,"index":26,"text":"Chgrp 改变 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"e665be95-61a2-4d85-ba21-8726b8e37e03","page_size":[595,841],"block_position":"67-26"},{"bbox":[88,515,504,544],"type":"text","angle":0,"index":27,"text":"Chmod 命令有两种设置方法，一个文件字模是一个八进制。-R表示对目录中的所有文件 或子目录进行递归操作 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"3b8b1d91-bda0-446a-8857-a40be7699fd0","page_size":[595,841],"block_position":"67-27"},{"bbox":[88,547,208,559],"type":"text","angle":0,"index":28,"text":"chown 改变文件的所有者 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"b836e56f-d0ad-4a16-aa15-2b6949b63a5f","page_size":[595,841],"block_position":"67-28"},{"bbox":[88,562,200,575],"type":"text","angle":0,"index":29,"text":"chmod 改变文件的权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"d1f78ec8-8f2c-4157-a3b0-16e5e3c3264e","page_size":[595,841],"block_position":"67-29"},{"bbox":[90,577,178,590],"type":"text","angle":0,"index":30,"text":"chmod $\\uplus \\dag \\mathsf { r w }$ file1 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"0380119f-3c9f-4602-a3bb-412d3fb34fa5","page_size":[595,841],"block_position":"67-30"},{"bbox":[90,593,189,606],"type":"text","angle":0,"index":31,"text":"chmod $\\mathsf { U } ^ { + } \\mathsf { X } , \\mathsf { g } ^ { - } \\mathsf { X }$ file2 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"c30c4ce2-f2b2-4b24-8ad3-4030e2eca755","page_size":[595,841],"block_position":"67-31"},{"bbox":[90,609,167,622],"type":"text","angle":0,"index":32,"text":"chmod g-x file1 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"59ed14d8-6ff0-4a84-ad7e-7e98d6966e41","page_size":[595,841],"block_position":"67-32"},{"bbox":[90,624,242,636],"type":"text","angle":0,"index":33,"text":"chmod 610 file1 #r-4/w-2/x-1 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"69320c26-9a14-4731-bc6a-8d0610fa3f1a","page_size":[595,841],"block_position":"67-33"},{"bbox":[88,640,184,653],"type":"text","angle":0,"index":34,"text":"chgrp 改变文件的组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"08d0522b-760c-498d-bec7-772f8ff94b59","page_size":[595,841],"block_position":"67-34"},{"bbox":[88,671,123,682],"type":"text","angle":0,"index":35,"text":"U user ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"33f261f5-37dd-4b57-8da8-3d864b703ee9","page_size":[595,841],"block_position":"67-35"},{"bbox":[88,687,144,699],"type":"text","angle":0,"index":36,"text":"G 同组用户 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"1a6cf8d4-f346-4a21-b635-bf669f96b575","page_size":[595,841],"block_position":"67-36"},{"bbox":[88,703,138,714],"type":"text","angle":0,"index":37,"text":"R4w2x1-0 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"5851f541-7333-41a8-af4a-1d93ef9231ad","page_size":[595,841],"block_position":"67-37"},{"bbox":[87,717,428,730],"type":"text","angle":0,"index":38,"text":"使用三个数字模式来表示，分别代表用户n1、同组用户n2、其他用户n3 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"97e24189-9d85-43dc-b333-ff752a09bb2c","page_size":[595,841],"block_position":"67-38"},{"bbox":[88,734,342,746],"type":"text","angle":0,"index":39,"text":"每个数字模式由不同权限缩影的数字相加得到一个访问 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":67,"id":"1833c4f6-401e-4185-936f-5b6e4c3d43a9","page_size":[595,841],"block_position":"67-39"}],[{"bbox":[87,79,199,91],"type":"text","angle":0,"index":0,"text":"改变文件/目录属主或组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"dce66bb7-afe2-45ae-bb64-590a895145a0","page_size":[595,841],"block_position":"68-0"},{"bbox":[88,95,220,107],"type":"text","angle":0,"index":1,"text":"Root用户改变文件的所有者 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"a8dd4af4-23b2-4e1f-9687-37fbb3522d67","page_size":[595,841],"block_position":"68-1"},{"bbox":[88,110,283,122],"type":"text","angle":0,"index":2,"text":"Root 用户或所有者才能改变文件的所属组 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"d7ba48ae-375a-444a-9aca-0a778071a0c4","page_size":[595,841],"block_position":"68-2"},{"bbox":[88,125,260,137],"type":"text","angle":0,"index":3,"text":"默认的访问权限，由 unmask 去决定 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"f2352867-fd17-4a4b-9cf4-b732af30964e","page_size":[595,841],"block_position":"68-3"},{"bbox":[88,141,415,153],"type":"text","angle":0,"index":4,"text":"默认生成掩码告诉系统当创建一个文件或目录时不应该赋予其哪些权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"46cf190e-01fb-411c-9e39-b553923eb59d","page_size":[595,841],"block_position":"68-4"},{"bbox":[88,157,195,169],"type":"text","angle":0,"index":5,"text":"系统不允许用户在创建 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"3603adb9-6756-49a7-8c9d-139c39f28656","page_size":[595,841],"block_position":"68-5"},{"bbox":[88,172,190,185],"type":"text","angle":0,"index":6,"text":"设置umask值的方法 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"689ef3a5-559e-4407-acd2-620366388ad8","page_size":[595,841],"block_position":"68-6"},{"bbox":[88,188,217,200],"type":"text","angle":0,"index":7,"text":"使用 unmask 命令临时设置 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"3f999d56-68aa-4711-a8da-db566798c362","page_size":[595,841],"block_position":"68-7"},{"bbox":[88,204,170,216],"type":"text","angle":0,"index":8,"text":"在~/.bashrc 实现 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"80f932b6-7848-489e-ba17-c70eba1273d5","page_size":[595,841],"block_position":"68-8"},{"bbox":[88,234,153,247],"type":"title","angle":0,"index":9,"text":"# 三种特殊权限","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":68,"id":"b8e0ed12-5dde-4f45-b698-47b3f50dfb0d","page_size":[595,841],"block_position":"68-9"},{"bbox":[87,250,387,263],"type":"text","angle":0,"index":10,"text":"Suid 使用命令所属用户的权限来运行，而不是命令执行者的权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"5b7fda53-a8f5-4e6c-a0b4-0762dad30839","page_size":[595,841],"block_position":"68-10"},{"bbox":[88,266,230,279],"type":"text","angle":0,"index":11,"text":"Sgid 使用命令的组权限来运行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"7466b063-467a-4298-a56f-4ebbb5d0f344","page_size":[595,841],"block_position":"68-11"},{"bbox":[88,281,200,295],"type":"text","angle":0,"index":12,"text":"Suid 和 sgid 都用 s 表示 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"54c61429-7769-4b02-a2e2-c00f9f49b0f4","page_size":[595,841],"block_position":"68-12"},{"bbox":[88,297,176,310],"type":"text","angle":0,"index":13,"text":"Sticky-bit 用 t 表示 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"48054271-1951-4f6e-9e34-a81a35a96d5a","page_size":[595,841],"block_position":"68-13"},{"bbox":[87,312,380,326],"type":"text","angle":0,"index":14,"text":"Suid 时占用属主的 x 位置来表示、sgid 占用组的 x 位置来表示、 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"433b0cf8-67f6-4afa-8e94-a2ddf2b8b857","page_size":[595,841],"block_position":"68-14"},{"bbox":[87,327,483,341],"type":"text","angle":0,"index":15,"text":"使用一个单独 的数字模式（n0）由不同权限所对应的数字相加得到一个表示特殊权限 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"ecaf1746-861f-4b5a-9cdc-aadac5389a5e","page_size":[595,841],"block_position":"68-15"},{"bbox":[88,359,207,372],"type":"text","angle":0,"index":16,"text":"Ext2/3/4 的文件扩展说下 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"d5d74756-698d-4d51-9ea7-27bc45eadd58","page_size":[595,841],"block_position":"68-16"},{"bbox":[88,375,214,387],"type":"text","angle":0,"index":17,"text":"A atime 告诉系统不要修改 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"61e7dad2-0766-4cb1-b5c7-c9133a94f102","page_size":[595,841],"block_position":"68-17"},{"bbox":[88,391,186,403],"type":"text","angle":0,"index":18,"text":"S sync 写操作写到错 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"5ae87132-3dc0-40a8-aa58-23876d562850","page_size":[595,841],"block_position":"68-18"},{"bbox":[88,422,155,435],"type":"text","angle":0,"index":19,"text":"A append oly ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"32c6bbca-b3e0-46b1-bcff-312536000fa9","page_size":[595,841],"block_position":"68-19"},{"bbox":[88,438,151,449],"type":"text","angle":0,"index":20,"text":"I immutable ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"7e1d917b-a978-4d86-a43b-b96248ee900d","page_size":[595,841],"block_position":"68-20"},{"bbox":[88,454,119,464],"type":"text","angle":0,"index":21,"text":"Lsattr ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"4affd321-5c32-45ab-9cb9-977bd947ba46","page_size":[595,841],"block_position":"68-21"},{"bbox":[88,469,121,481],"type":"text","angle":0,"index":22,"text":"Chattr ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"b2c15333-013e-41c0-8548-fb3df9ca2629","page_size":[595,841],"block_position":"68-22"},{"bbox":[88,484,321,497],"type":"text","angle":0,"index":23,"text":"并不适用于所有点目录，注意如下目录的扩展属性 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"d65a33e7-0f69-4c0a-ae25-851a4e9690e1","page_size":[595,841],"block_position":"68-23"},{"bbox":[88,515,202,528],"type":"text","angle":0,"index":24,"text":"Posix文件访问控制列表 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"2a1caed0-bfa5-4021-b79f-d600f0c147cd","page_size":[595,841],"block_position":"68-24"},{"bbox":[88,531,132,543],"type":"text","angle":0,"index":25,"text":"ALC 标准 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"0ed96b9c-bc3e-4fba-be07-90d92a1a1657","page_size":[595,841],"block_position":"68-25"},{"bbox":[88,547,272,559],"type":"text","angle":0,"index":26,"text":"FACL 时 file access control lists 的缩写 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"1b4d31fd-46de-48b1-b0c2-b8aabdec100e","page_size":[595,841],"block_position":"68-26"},{"bbox":[88,578,105,589],"type":"text","angle":0,"index":27,"text":"Acl ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"6c23cf5d-5f2c-4593-872c-1ce27bbf9bfc","page_size":[595,841],"block_position":"68-27"},{"bbox":[88,593,270,606],"type":"text","angle":0,"index":28,"text":"通过文件系统的挂装选项实现 ACL 支持 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"55c751e6-e9e9-474d-be5c-3f7537838fca","page_size":[595,841],"block_position":"68-28"},{"bbox":[88,609,210,621],"type":"text","angle":0,"index":29,"text":"查看ext4文件的默认选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"65d15a90-10b0-4e89-a308-2b9aa549d55b","page_size":[595,841],"block_position":"68-29"},{"bbox":[88,625,132,636],"type":"text","angle":0,"index":30,"text":"存取 ACL ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"a8328b94-9d91-468a-9735-92c23ac68428","page_size":[595,841],"block_position":"68-30"},{"bbox":[88,640,247,652],"type":"text","angle":0,"index":31,"text":"对指定文件或目录的存取控制列表 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"c0a00e0f-3679-4172-80e2-ea1e346bf45e","page_size":[595,841],"block_position":"68-31"},{"bbox":[88,655,132,667],"type":"text","angle":0,"index":32,"text":"默认 ACL ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"3ca600eb-0e99-4395-9f10-dff0b5eccbc7","page_size":[595,841],"block_position":"68-32"},{"bbox":[88,671,132,683],"type":"text","angle":0,"index":33,"text":"ACL 工具 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"694ffe2b-8ac0-4241-9bfd-27cb27b6810f","page_size":[595,841],"block_position":"68-33"},{"bbox":[88,687,168,699],"type":"text","angle":0,"index":34,"text":"Gerfacl、serfacl ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"1e990370-6cae-4db9-b6c5-95a1a0574476","page_size":[595,841],"block_position":"68-34"},{"bbox":[88,702,111,714],"type":"text","angle":0,"index":35,"text":"程序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"c8863130-9624-4220-afa2-6b1d6e62066f","page_size":[595,841],"block_position":"68-35"},{"bbox":[88,718,111,729],"type":"text","angle":0,"index":36,"text":"进程 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"30cedb12-43d1-4438-8646-ed93acd73cd5","page_size":[595,841],"block_position":"68-36"},{"bbox":[88,734,135,745],"type":"text","angle":0,"index":37,"text":"职业/任务 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"1e4091da-f882-4e3c-a7ec-bf6307870972","page_size":[595,841],"block_position":"68-37"},{"bbox":[88,749,226,761],"type":"text","angle":0,"index":38,"text":"长须知识一个金泰的指令级和 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":68,"id":"19cfd362-e0fa-4526-bec0-5d9a1a999eb7","page_size":[595,841],"block_position":"68-38"}],[{"bbox":[86,79,506,108],"type":"text","angle":0,"index":0,"text":"进程时资源申请。调度、和独立运行的单位，因此，它使用系统中的运行资源；而程序不 能申请系统资源 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"60d5c434-ebb4-4eb0-b10a-55706090e203","page_size":[595,841],"block_position":"69-0"},{"bbox":[87,110,214,122],"type":"text","angle":0,"index":1,"text":"Linux时多用户多任务系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"ddb49b42-4154-4188-ae17-4ff0493d7d88","page_size":[595,841],"block_position":"69-1"},{"bbox":[86,125,426,138],"type":"text","angle":0,"index":2,"text":"每个用户均可同时运行多个程序。为了区分每一个，进程号pid 是唯一地 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"b09972dd-676a-4305-8fc7-125258194342","page_size":[595,841],"block_position":"69-2"},{"bbox":[87,142,214,154],"type":"text","angle":0,"index":3,"text":"Linux采用分时技术来处理 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"265296ed-effd-47bb-ac06-f9e52c72bae6","page_size":[595,841],"block_position":"69-3"},{"bbox":[87,157,267,170],"type":"text","angle":0,"index":4,"text":"西东启动后第一个进程是 init systemd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"b478b078-0f05-404f-a31f-5ea4e4f59d33","page_size":[595,841],"block_position":"69-4"},{"bbox":[87,173,183,185],"type":"text","angle":0,"index":5,"text":"Init 是唯一系统内核 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"3520246a-4a1a-4e4f-a811-f9408cf7c5dd","page_size":[595,841],"block_position":"69-5"},{"bbox":[88,188,150,201],"type":"text","angle":0,"index":6,"text":"它的 pid 是 1 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"c3ab0995-17a0-4b68-8c43-5106f062f928","page_size":[595,841],"block_position":"69-6"},{"bbox":[87,203,249,216],"type":"text","angle":0,"index":7,"text":"出了init之外每个进程都由父进程 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"979c322c-fcc1-46eb-aadf-9e26e4a74bb6","page_size":[595,841],"block_position":"69-7"},{"bbox":[87,220,199,232],"type":"text","angle":0,"index":8,"text":"Ruid。Rgideuid、egid ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"1968da57-7920-4679-afe0-48a85d99ff95","page_size":[595,841],"block_position":"69-8"},{"bbox":[87,235,358,248],"type":"text","angle":0,"index":9,"text":"交互进程 由 shell 启动进程 批处理进程 守护进程 daemon ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"8d15889c-41b6-47b3-99a5-37ebddd9b404","page_size":[595,841],"block_position":"69-9"},{"bbox":[88,250,177,263],"type":"text","angle":0,"index":10,"text":"前台进程 后台进程 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"1f938aa4-3b87-4105-b839-313f8629ad04","page_size":[595,841],"block_position":"69-10"},{"bbox":[87,265,287,279],"type":"text","angle":0,"index":11,"text":"运行后台进程的方法是在命令行最后加上& ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"aba71bc0-752a-44c7-9c9a-80d4cab5065c","page_size":[595,841],"block_position":"69-11"},{"bbox":[87,281,383,295],"type":"text","angle":0,"index":12,"text":"一个中断只能同时存在一个前台任务，但是可以由多个后台任务 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"d93fab49-9874-4b09-b9bb-ce4273adc880","page_size":[595,841],"block_position":"69-12"},{"bbox":[87,297,316,310],"type":"text","angle":0,"index":13,"text":"查看系统中的进程使用 ps 命令查看进程状态信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"1a387560-813c-4ac3-92b4-cacdb01999ac","page_size":[595,841],"block_position":"69-13"},{"bbox":[87,312,226,326],"type":"text","angle":0,"index":14,"text":"输出项包括：识别号 pid 中断 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"9acba2c4-c0e1-4ef1-8da1-57003135f118","page_size":[595,841],"block_position":"69-14"},{"bbox":[87,377,186,396],"type":"title","angle":0,"index":15,"text":"# 程序开发基础","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":69,"id":"fb3b09f6-97b8-41d1-a996-ea53312efc77","page_size":[595,841],"block_position":"69-15"},{"bbox":[86,433,220,447],"type":"text","angle":0,"index":16,"text":"C Programming Language ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"60dc51a5-9296-4935-bd5e-eb30218dd528","page_size":[595,841],"block_position":"69-16"},{"bbox":[87,449,201,462],"type":"text","angle":0,"index":17,"text":"Edit/Compile/Link/Run ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"de527186-acee-44ff-bfea-a6c43e63f648","page_size":[595,841],"block_position":"69-17"},{"bbox":[87,465,272,478],"type":"text","angle":0,"index":18,"text":"gcc for C program compiling in Linux ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"d0c806d1-989f-4127-b8cc-397f997fa758","page_size":[595,841],"block_position":"69-18"},{"bbox":[87,481,183,494],"type":"text","angle":0,"index":19,"text":"gdb for debugging ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"60c77301-ebf7-4977-b8d2-043cb1878f5e","page_size":[595,841],"block_position":"69-19"},{"bbox":[87,496,236,509],"type":"text","angle":0,"index":20,"text":"gprof for performance tuning ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"29b8e162-b160-4c31-9e56-34a26dd7790d","page_size":[595,841],"block_position":"69-20"},{"bbox":[87,512,184,523],"type":"text","angle":0,"index":21,"text":"make and makefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"a82fe8a0-8e39-4847-92a0-3d6e68963502","page_size":[595,841],"block_position":"69-21"},{"bbox":[87,542,164,555],"type":"text","angle":0,"index":22,"text":"程序的编译过程 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":69,"id":"bf16108c-09fb-4b0a-9f82-92ec3dd444a1","page_size":[595,841],"block_position":"69-22"}],[{"bbox":[94,80,439,294],"index":0,"angle":0,"type":"image","img_path":"/7588519c7f12e96c163525f9b3409ce4a08a894a2f7e00d9e8483feb1b56118b.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5798319327731093,"page_idx":70,"id":"7704141b-2cef-4772-bce1-62a21f3d9be1","page_size":[595,841],"block_position":"70-0"},{"bbox":[86,296,175,310],"type":"text","angle":0,"index":1,"text":"编译，链接和运行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"b33d5b20-dde3-4a23-b12a-91a021468c35","page_size":[595,841],"block_position":"70-1"},{"bbox":[87,312,123,326],"type":"text","angle":0,"index":2,"text":"编译器 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"1ed1179d-7ff6-4ce5-9eb3-243ae529fde1","page_size":[595,841],"block_position":"70-2"},{"bbox":[86,328,229,342],"type":"text","angle":0,"index":3,"text":"Gcc gnu compiler collection ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"db264452-4f2e-4002-8858-387b36b264f7","page_size":[595,841],"block_position":"70-3"},{"bbox":[86,343,485,373],"type":"text","angle":0,"index":4,"text":"Gnu 计划创建一个 unix-like 操作系统，免费软件。推动了在程序员之间的自由和合作 \"GNU C Compiler“  \"GNU Compiler Collection\" ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"e4c74d2c-d4bf-4f20-999f-b4e5d4c65c6e","page_size":[595,841],"block_position":"70-4"},{"bbox":[86,375,505,405],"type":"text","angle":0,"index":5,"text":"support many languages such as C (gcc), ${ \\mathsf { C } } ^ { + + } \\left( { \\mathsf { g } } ^ { + + } \\right) ,$ , Objective-C, Objective- $C ^ { + + }$ , Java (gcj), Fortran (gfortran), Ada (gnat), Go (gccgo), OpenMP, Cilk Plus, and OpenAcc. ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"24b51d57-2c45-4c93-8317-b583c2317049","page_size":[595,841],"block_position":"70-5"},{"bbox":[86,422,368,435],"type":"text","angle":0,"index":6,"text":"gcc 是一个开发应用和写操作系统的。也叫做 gnu toolchain ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"db8d39d1-beb3-47fe-ae98-1ba6cf0df3c7","page_size":[595,841],"block_position":"70-6"},{"bbox":[141,438,389,451],"type":"text","angle":0,"index":7,"text":"1、 编译器 gcc such as $\\subset / \\subset + +$ and Objective- $\\cdot \\mathsf { C } / \\mathsf { C } + +$ ","id":"fc04d48f-27b7-4485-a94d-8e0510a04075","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-7"},{"bbox":[141,454,213,465],"type":"text","angle":0,"index":8,"text":"2、 Gnu make ","id":"6aaa8ad5-ead9-489f-a125-35ed34c51ce1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-8"},{"bbox":[141,469,222,481],"type":"text","angle":0,"index":9,"text":"3、 Gnu binutils ","id":"e4b8a4be-4343-4d5d-9904-1b8c1ee5560a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-9"},{"bbox":[141,485,234,498],"type":"text","angle":0,"index":10,"text":"4、Gnu debugger ","id":"c4e2076c-e741-44cd-9624-0e7624304f36","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-10"},{"bbox":[141,501,232,513],"type":"text","angle":0,"index":11,"text":"5、Gnu autotools ","id":"99a8cdea-d57d-41b1-967d-968ba86b7e57","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-11"},{"bbox":[141,516,213,527],"type":"text","angle":0,"index":12,"text":"6、Gnu bison ","id":"d36fcc4b-ee4c-472a-b481-84fd7de53dbd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"page_size":[595,841],"block_position":"70-12"},{"bbox":[86,531,288,544],"type":"text","angle":0,"index":14,"text":"Gcc是可移植的、交叉编译器，可以跨平台 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"cd79d7de-bef6-4325-b5c1-455fceec822c","page_size":[595,841],"block_position":"70-13"},{"bbox":[86,546,505,576],"type":"text","angle":0,"index":15,"text":"也支持 windows（cygwin（unix emulator under windows） 、mingw（minimalist gnu forwindows）。、mingu-w64） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"227ada31-b21f-4edd-89a0-bc8fa9b68eeb","page_size":[595,841],"block_position":"70-14"},{"bbox":[86,577,402,590],"type":"text","angle":0,"index":16,"text":"Windows/intel 包括 x86 32 位指令集 i868 ‘x86——64 64 位指令集 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"6475b833-b7c8-4594-b0c4-933454fac6bf","page_size":[595,841],"block_position":"70-15"},{"bbox":[86,593,292,606],"type":"text","angle":0,"index":17,"text":"32 位编译器能运行在 32 位、64 位向后兼容 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"ea333044-4a2a-41e5-8fa9-dab7c206c658","page_size":[595,841],"block_position":"70-16"},{"bbox":[86,608,290,621],"type":"text","angle":0,"index":18,"text":"但是64位编译器、程序只能运行在64位上 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"077077d2-516e-497d-9204-af17faa1d4cb","page_size":[595,841],"block_position":"70-17"},{"bbox":[87,624,170,638],"type":"text","angle":0,"index":19,"text":"Cygwin 需要依赖 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"633b927c-86ab-4bc4-a7f8-11b2264e6fee","page_size":[595,841],"block_position":"70-18"},{"bbox":[87,640,167,654],"type":"text","angle":0,"index":20,"text":"Mingw 更加简单 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"998b3710-61c6-4445-9b93-240aa53e2b18","page_size":[595,841],"block_position":"70-19"},{"bbox":[87,657,108,668],"type":"text","angle":0,"index":21,"text":"gcc ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"125ac04f-c26d-40a3-82e4-6fa271831435","page_size":[595,841],"block_position":"70-20"},{"bbox":[87,671,219,684],"type":"text","angle":0,"index":22,"text":"gcc [options] [filenames] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"fc9376bc-1bbc-49ed-9511-b9c3d3b4d7d5","page_size":[595,841],"block_position":"70-21"},{"bbox":[87,687,188,700],"type":"text","angle":0,"index":23,"text":"- options 为编译选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"8ba02098-ad37-4950-b5dd-dae1d08c4246","page_size":[595,841],"block_position":"70-22"},{"bbox":[87,703,235,715],"type":"text","angle":0,"index":24,"text":"filenames为需要编译的文件名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"61dde6c5-ee53-4f57-94e8-5d2476e643b3","page_size":[595,841],"block_position":"70-23"},{"bbox":[87,718,237,730],"type":"text","angle":0,"index":25,"text":"gcc test.c # create “a.out” file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"ff608936-f088-47ce-ba31-14b559874576","page_size":[595,841],"block_position":"70-24"},{"bbox":[87,734,264,746],"type":"text","angle":0,"index":26,"text":"gcc –o test test.c # create “test” file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"4a832dff-2330-4278-9ebd-d378bdeecce2","page_size":[595,841],"block_position":"70-25"},{"bbox":[87,750,172,762],"type":"text","angle":0,"index":27,"text":"gcc test.c –o test ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":70,"id":"1b089f6f-fa22-4960-93dd-b40e543f422e","page_size":[595,841],"block_position":"70-26"}],[{"bbox":[87,79,110,92],"type":"text","angle":0,"index":0,"text":"gdb ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"1ff98c5e-9d1d-4f3a-91dc-5bec2246d642","page_size":[595,841],"block_position":"71-0"},{"bbox":[87,95,186,108],"type":"text","angle":0,"index":1,"text":"gcc –g –o test test.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"06d99739-2142-4047-a311-7e30c1208c4c","page_size":[595,841],"block_position":"71-1"},{"bbox":[88,111,132,123],"type":"text","angle":0,"index":2,"text":"gdb test ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"c6e466c7-2932-44d1-8b12-2826c3c53650","page_size":[595,841],"block_position":"71-2"},{"bbox":[88,126,135,138],"type":"text","angle":0,"index":3,"text":"Example: ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"a4bf9a05-541e-4329-9afa-63d02ee6db9e","page_size":[595,841],"block_position":"71-3"},{"bbox":[87,141,264,154],"type":"text","angle":0,"index":4,"text":"gcc hello.c //生成可执行文件 a.out ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"cb08de20-7d0f-40f5-9372-058d94f8ddc2","page_size":[595,841],"block_position":"71-4"},{"bbox":[87,157,305,170],"type":"text","angle":0,"index":5,"text":"gcc hello.c -o hello //生成可执行文件 hello ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"ec90a7cd-2bd1-4811-92f8-ceb6953938fb","page_size":[595,841],"block_position":"71-5"},{"bbox":[87,172,332,186],"type":"text","angle":0,"index":6,"text":"gcc -c hello.c -o hello.o //生成目标文件 hello.o ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"47f23a2f-ef22-4973-8be1-be5197d7d34e","page_size":[595,841],"block_position":"71-6"},{"bbox":[87,188,305,201],"type":"text","angle":0,"index":7,"text":"gcc hello1.c hello2.c -o hello //多文件编译 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"25594b5b-ff78-4b67-be8e-ad965ba9ea3c","page_size":[595,841],"block_position":"71-7"},{"bbox":[87,203,326,217],"type":"text","angle":0,"index":8,"text":"gcc -E hello.c -o hello.i //预处理后生成 hello.i ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"27d439de-2381-4dcb-8159-ababc54ab0e9","page_size":[595,841],"block_position":"71-8"},{"bbox":[87,219,330,232],"type":"text","angle":0,"index":9,"text":"gcc -S hello.c -o hello.s //生成汇编代码 hello.s ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"74667886-192c-4b63-b0a8-936ed25b9f41","page_size":[595,841],"block_position":"71-9"},{"bbox":[87,234,330,248],"type":"text","angle":0,"index":10,"text":"gcc -c -I /usr/dev/mysql/include test.c -o test.o ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"a6229094-7edd-4146-b2c3-2349667aec78","page_size":[595,841],"block_position":"71-10"},{"bbox":[87,250,354,264],"type":"text","angle":0,"index":11,"text":"gcc -L /usr/dev/mysql/lib -lmysqlclient test.o -o test ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"b99ac54e-086a-480e-b64b-683e61c655f0","page_size":[595,841],"block_position":"71-11"},{"bbox":[87,296,176,310],"type":"text","angle":0,"index":12,"text":"-o 生成可执行文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"b280d6fe-c46f-4a8f-b5fe-4468bfd3b32a","page_size":[595,841],"block_position":"71-12"},{"bbox":[87,312,173,325],"type":"text","angle":0,"index":13,"text":"-c 生成目标文件.o ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"71eed3a5-63e1-4f2f-bc95-3d4b23e3d56d","page_size":[595,841],"block_position":"71-13"},{"bbox":[88,328,197,341],"type":"text","angle":0,"index":14,"text":"-E 预处理后生成 hello.i ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"be1ee33c-8019-4c44-b79e-9b51e2edfcf2","page_size":[595,841],"block_position":"71-14"},{"bbox":[88,343,199,356],"type":"text","angle":0,"index":15,"text":"-S 生成汇编代码 hello.s ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"1e1292e6-f9ec-44eb-a58d-3ab70c642f86","page_size":[595,841],"block_position":"71-15"},{"bbox":[87,359,132,372],"type":"text","angle":0,"index":16,"text":"-I 头文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"4e636d7b-185d-462c-8946-b6140abde6b6","page_size":[595,841],"block_position":"71-16"},{"bbox":[88,375,143,387],"type":"text","angle":0,"index":17,"text":"-L 库的路径 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"9f6f4074-f086-40b8-a9de-75c2a7c460b0","page_size":[595,841],"block_position":"71-17"},{"bbox":[87,391,117,401],"type":"text","angle":0,"index":18,"text":"Make ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"c9910163-5097-4533-a741-6089ff9ee7fc","page_size":[595,841],"block_position":"71-18"},{"bbox":[87,406,205,418],"type":"text","angle":0,"index":19,"text":"一个程序包含多个源文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"e68dea2d-e9f6-4b07-98db-95a9d823b3ed","page_size":[595,841],"block_position":"71-19"},{"bbox":[87,421,332,434],"type":"text","angle":0,"index":20,"text":"全部重新编译需要花费时间，你只需要编译一些文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":71,"id":"95f045eb-7bf9-4a1d-abad-1f6f9b459e0f","page_size":[595,841],"block_position":"71-20"},{"bbox":[87,435,468,633],"index":21,"angle":0,"type":"image","img_path":"/07f7e876812d3d2040cc068589e6f5b764af4928a1f778c518f0de6415391b0e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6403361344537815,"page_idx":71,"id":"67221e63-85b7-4d18-badb-b458310fd8a7","page_size":[595,841],"block_position":"71-21"}],[{"bbox":[88,76,430,234],"index":0,"angle":0,"type":"image","img_path":"/a3f02bc1bbab3e899095c75e781d8ad6c53769d1d6375a308dc8ab99d4af3d18.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5747899159663865,"page_idx":72,"id":"cc1a3ddd-a0bf-43a4-bca8-8f65326d86c7","page_size":[595,841],"block_position":"72-0"},{"bbox":[88,235,166,248],"type":"text","angle":0,"index":1,"text":"makefile 的结构 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"18fa6379-8e1e-41e1-b8b3-bf145f82ce67","page_size":[595,841],"block_position":"72-1"},{"bbox":[88,250,154,264],"type":"text","angle":0,"index":2,"text":"objfile: files… ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"33356a20-bff6-4be0-980d-ed537ea3523c","page_size":[595,841],"block_position":"72-2"},{"bbox":[196,251,249,264],"type":"text","angle":0,"index":3,"text":" 文件依赖 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"933c95e9-2506-4003-8e5b-b43b96d6fc6f","page_size":[595,841],"block_position":"72-3"},{"bbox":[88,266,174,280],"type":"text","angle":0,"index":4,"text":"(tab)[commands] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"9e672880-4ce8-4eaa-b82e-a6e1a3315c6f","page_size":[595,841],"block_position":"72-4"},{"bbox":[192,266,244,279],"type":"text","angle":0,"index":5,"text":" 执行命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"bae69094-8c2f-4974-bf52-1a00b3b29452","page_size":[595,841],"block_position":"72-5"},{"bbox":[88,282,174,294],"type":"text","angle":0,"index":6,"text":"(tab)[commands] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"5517d9d3-8275-441a-8ea9-bb008232b3df","page_size":[595,841],"block_position":"72-6"},{"bbox":[160,293,261,306],"type":"title","angle":0,"index":7,"text":"# (tab)[commands]","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":72,"id":"98184249-2ffc-4789-a3d7-a501541fc734","page_size":[595,841],"block_position":"72-7"},{"bbox":[114,324,242,337],"type":"text","angle":0,"index":8,"text":"myprog : foo.o bar.0 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"4fc7659e-32d6-4969-ae1e-cfaaf37765e3","page_size":[595,841],"block_position":"72-8"},{"bbox":[127,338,283,349],"type":"text","angle":0,"index":9,"text":"gcc foo.o bar.o -o myprog ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"b2c85f91-ee0d-4620-8c57-d5fc201d4a8a","page_size":[595,841],"block_position":"72-9"},{"bbox":[116,360,271,371],"type":"text","angle":0,"index":10,"text":"foo.o : foo.c foo.h bar.h ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"32e8ee27-355e-411e-86d8-92b8c37308ca","page_size":[595,841],"block_position":"72-10"},{"bbox":[128,374,258,385],"type":"text","angle":0,"index":11,"text":"gcc -c foo.c -o foo.o ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"b122e5d8-bfb0-4418-86dc-be4f2b833a5d","page_size":[595,841],"block_position":"72-11"},{"bbox":[115,396,234,408],"type":"text","angle":0,"index":12,"text":"bar.o : bar.c bar.h ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"5dcc878d-1bf0-44b7-8495-b0015c8ce407","page_size":[595,841],"block_position":"72-12"},{"bbox":[127,410,258,421],"type":"text","angle":0,"index":13,"text":"gcc -c bar.c -o bar.o ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"cc490037-562a-4260-ac79-f195ca1807a1","page_size":[595,841],"block_position":"72-13"},{"bbox":[296,303,414,315],"type":"text","angle":0,"index":14,"text":"Myprog依赖于foo.o和bar.o ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"ee22d296-743e-41ac-a822-bdc7a689f72f","page_size":[595,841],"block_position":"72-14"},{"bbox":[296,315,342,326],"type":"text","angle":0,"index":15,"text":"两个文件。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"80c6c7be-a3f3-4903-9d94-11b0da9e07ce","page_size":[595,841],"block_position":"72-15"},{"bbox":[308,346,431,359],"type":"text","angle":0,"index":16,"text":"生成myprog文件使用的命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"00ed42a9-d13c-4da3-a9de-3aae6fc84975","page_size":[595,841],"block_position":"72-16"},{"bbox":[115,486,176,500],"type":"title","angle":0,"index":17,"text":"# · makefile","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":72,"id":"ab60ac94-dfa1-43bd-b18f-fb3b0e3aa929","page_size":[595,841],"block_position":"72-17"},{"bbox":[107,510,336,522],"type":"text","angle":0,"index":18,"text":"calc: add.. sub.. mult.. div.o main.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"e58419e5-ad1b-4fa1-9552-e07a18526a26","page_size":[595,841],"block_position":"72-18"},{"bbox":[144,523,409,535],"type":"text","angle":0,"index":19,"text":"gcc -o calc main.c add.o sub.o mult.o div.o ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"b961f901-9889-4297-bc6b-1f86964a78b9","page_size":[595,841],"block_position":"72-19"},{"bbox":[108,536,227,546],"type":"text","angle":0,"index":20,"text":"add.o: defs.h add.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"676f4210-7998-497f-a5c6-0fafe911c61a","page_size":[595,841],"block_position":"72-20"},{"bbox":[145,549,220,560],"type":"text","angle":0,"index":21,"text":"gcc -c add.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"71e2147a-9a3f-441a-8074-2d6be28086a5","page_size":[595,841],"block_position":"72-21"},{"bbox":[108,560,227,571],"type":"text","angle":0,"index":22,"text":"sub.o: defs.h sub.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"3bf69543-8808-41f7-b894-85c43f750e9c","page_size":[595,841],"block_position":"72-22"},{"bbox":[145,573,220,584],"type":"text","angle":0,"index":23,"text":"gcc -c sub.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"3cf7372b-35bc-47bc-b3ad-7da272e81bed","page_size":[595,841],"block_position":"72-23"},{"bbox":[108,585,196,595],"type":"text","angle":0,"index":24,"text":"mult.o: mult.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"9eb87a9e-e498-4d0a-a259-33f867b52249","page_size":[595,841],"block_position":"72-24"},{"bbox":[145,598,226,608],"type":"text","angle":0,"index":25,"text":"gcc -c mult.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"9ff677ae-a17b-407f-9efc-23fbbecd4193","page_size":[595,841],"block_position":"72-25"},{"bbox":[108,609,183,619],"type":"text","angle":0,"index":26,"text":"div.o: div.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"192eaa74-4719-4576-8b61-3e22f1d99c20","page_size":[595,841],"block_position":"72-26"},{"bbox":[145,622,220,633],"type":"text","angle":0,"index":27,"text":"gcc -c div.c ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"80e65bfc-89b5-43fa-b62f-d82184b518f4","page_size":[595,841],"block_position":"72-27"},{"bbox":[87,671,139,683],"type":"text","angle":0,"index":28,"text":"增加 clean ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"ccf79256-c9c4-45cf-bebd-2c65eb44d0eb","page_size":[595,841],"block_position":"72-28"},{"bbox":[88,687,119,698],"type":"text","angle":0,"index":29,"text":"clean: ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"db244b8f-b17b-4702-8738-d5f96c5650aa","page_size":[595,841],"block_position":"72-29"},{"bbox":[110,703,268,714],"type":"text","angle":0,"index":30,"text":"rm calc add.o sub.o mult.o div.o ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"8ec29053-2fb0-4248-82af-1b2c22fa1347","page_size":[595,841],"block_position":"72-30"},{"bbox":[88,718,183,729],"type":"text","angle":0,"index":31,"text":"How to use ‘make’? ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"81ecdd9e-a7ad-456f-ba36-dcd0f89abf50","page_size":[595,841],"block_position":"72-31"},{"bbox":[88,734,117,745],"type":"text","angle":0,"index":32,"text":"make ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"30d29cf0-456c-4b33-8dee-8ead10fbb45d","page_size":[595,841],"block_position":"72-32"},{"bbox":[88,749,274,762],"type":"text","angle":0,"index":33,"text":"make –f myfile #\"myfile\" is makefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":72,"id":"34ebd4a3-d368-4c15-9b3e-7a893b31242b","page_size":[595,841],"block_position":"72-33"}],[{"bbox":[87,79,276,92],"type":"text","angle":0,"index":0,"text":"make clean #delete all object file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"231708a6-eef9-442c-82f7-64147fdbfccf","page_size":[595,841],"block_position":"73-0"},{"bbox":[88,95,154,106],"type":"text","angle":0,"index":1,"text":"Default rules ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"d8bb4b97-3fbf-41a7-8db9-e19130c058e3","page_size":[595,841],"block_position":"73-1"},{"bbox":[88,110,193,123],"type":"text","angle":0,"index":2,"text":"Simplify the makefile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"bb7cb187-908a-4b7f-9ace-1041205bec00","page_size":[595,841],"block_position":"73-2"},{"bbox":[88,126,202,139],"type":"text","angle":0,"index":3,"text":"C program  object file ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"0575c342-5090-4e44-8f9b-e54b081717d1","page_size":[595,841],"block_position":"73-3"},{"bbox":[87,153,474,255],"index":4,"angle":0,"type":"code","text":"```txt\ncalc: main.c add.o sub.o mult.o div.o gcc -o calc main.c add.o sub.o mult.o div.o   \nadd.o sub.o: defends.h   \nclean: rm add.o sub.o mult.o div.o main.o \n```","id":"c4ad7c7a-44c4-4e1f-bf3a-bcb5e09eeecc","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":73,"page_size":[595,841],"block_position":"73-4"},{"bbox":[87,265,127,277],"type":"text","angle":0,"index":5,"text":"#ifndef ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"3d01c69b-7ad0-4b10-8d37-1e76fcab1e2c","page_size":[595,841],"block_position":"73-5"},{"bbox":[88,297,129,308],"type":"text","angle":0,"index":7,"text":"#dendif ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"0fd3a4e2-49b6-4ea0-833b-0cb6563b4bbb","page_size":[595,841],"block_position":"73-6"},{"bbox":[88,312,151,326],"type":"text","angle":0,"index":8,"text":"objfile：files ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"6af5b985-ec8a-465c-821b-d701e9ce215a","page_size":[595,841],"block_position":"73-7"},{"bbox":[88,329,160,340],"type":"text","angle":0,"index":9,"text":"Tab command ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"d9e8cabb-9f08-4764-855f-fa1b37c72728","page_size":[595,841],"block_position":"73-8"},{"bbox":[88,344,128,358],"type":"text","angle":0,"index":10,"text":"Myprog ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"dadb0a12-e58c-4008-b204-605cb72d6bcd","page_size":[595,841],"block_position":"73-9"},{"bbox":[88,359,267,371],"type":"text","angle":0,"index":11,"text":"Clean 并非真正的依赖目标而是伪目标 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"871b7154-2cba-4f6a-9674-aa1111ca2cb1","page_size":[595,841],"block_position":"73-10"},{"bbox":[88,375,142,387],"type":"text","angle":0,"index":12,"text":"编写完成后 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"09b98a9b-564e-4693-9c90-c704ea1e0c2e","page_size":[595,841],"block_position":"73-11"},{"bbox":[88,391,117,401],"type":"text","angle":0,"index":13,"text":"Make ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"0b0dc72d-5a10-4561-a922-d45dac311ea7","page_size":[595,841],"block_position":"73-12"},{"bbox":[88,406,160,419],"type":"text","angle":0,"index":14,"text":"Make -f myfile ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"07da9cca-368a-41f8-b5bb-c444e5c03137","page_size":[595,841],"block_position":"73-13"},{"bbox":[88,422,232,434],"type":"text","angle":0,"index":15,"text":"Make clean 所有目标文件清除 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"05941225-0b2f-4949-92c1-25bacd4a3b8d","page_size":[595,841],"block_position":"73-14"},{"bbox":[88,438,142,449],"type":"text","angle":0,"index":16,"text":"默认的规则 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"584ce2c7-34fc-437c-8eea-58d60e94941d","page_size":[595,841],"block_position":"73-15"},{"bbox":[88,454,163,465],"type":"text","angle":0,"index":17,"text":".c 文件->.o 文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"2666d9d4-2998-4f7b-a3af-d3996ef0e148","page_size":[595,841],"block_position":"73-16"},{"bbox":[88,469,195,481],"type":"text","angle":0,"index":18,"text":"为了简化内容，宏变量 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"9e657dd0-2a58-4d9d-9f66-a92ee423699c","page_size":[595,841],"block_position":"73-17"},{"bbox":[88,485,149,496],"type":"text","angle":0,"index":19,"text":"可以 macros ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":73,"id":"fed4eedc-5ed8-4d72-a7e6-70b0ef4bf912","page_size":[595,841],"block_position":"73-18"},{"bbox":[88,497,451,655],"index":20,"angle":0,"type":"code","text":"```txt\nTAB][commands] Myprog依赖于foo.o和bar.o两个文件。   \nmyprog:foo.o bar.o gcc foo.o bar.o -o myprog 生成myprog文件使用的命令。   \nfoo.o:foo.c foo.h bar.h gcc-c foo.c -o foo.o   \nbar.o:bar.c bar.h gcc-c bar.c -o bar.o \n```","id":"0f924862-da0a-4064-80ab-d3ea8f2013ca","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":73,"page_size":[595,841],"block_position":"73-19"}],[{"bbox":[91,77,377,223],"index":0,"angle":0,"type":"image","img_path":"/5c897ead6015a9ea32e36c645cec30039c0d68e53f25276691c381be70acbc89.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.48067226890756304,"page_idx":74,"id":"6b649b01-40eb-4c27-9c85-fda0dae3b7b5","page_size":[595,841],"block_position":"74-0"},{"bbox":[88,234,143,248],"type":"text","angle":0,"index":1,"text":"Cc c 编译器 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"a35cf15f-13b5-41f7-b85c-27fcf16de5f9","page_size":[595,841],"block_position":"74-1"},{"bbox":[88,250,176,264],"type":"text","angle":0,"index":2,"text":"Cflags 特殊的选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"628f2f63-25bd-479e-a118-e02765948c76","page_size":[595,841],"block_position":"74-2"},{"bbox":[88,265,396,279],"type":"text","angle":0,"index":3,"text":"$\\$ 0$ 当前目标的名字 依赖项的第一个文件 依赖项的所有文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"18d46f30-7abf-415c-b2d3-50e85905f7d0","page_size":[595,841],"block_position":"74-3"},{"bbox":[88,295,379,420],"index":4,"angle":0,"type":"image","img_path":"/da21cf6b9617a2ac6a35ad40827509244d8a0e0c05e7d500493476960e72be7b.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4890756302521008,"page_idx":74,"id":"6f8a6548-5a2b-4079-9aa9-077a3c3e23b5","page_size":[595,841],"block_position":"74-4"},{"bbox":[88,438,132,450],"type":"text","angle":0,"index":5,"text":"Example ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"ee144ec0-40bb-41f7-893d-9d0054f7bd12","page_size":[595,841],"block_position":"74-5"},{"bbox":[88,454,127,465],"type":"text","angle":0,"index":6,"text":"${ \\mathsf { C } } { \\mathsf { C } } { \\mathsf { = } } { \\mathsf { g } } { \\mathsf { + } } { \\mathsf { + } }$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"6e3d5333-70a0-4e6f-a7d4-8a38b8ca1626","page_size":[595,841],"block_position":"74-6"},{"bbox":[89,469,168,480],"type":"text","angle":0,"index":7,"text":"#LD=/usr/bin/ld ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"07c6a492-1035-47ee-887a-b06aa6ce310a","page_size":[595,841],"block_position":"74-7"},{"bbox":[89,484,248,497],"type":"text","angle":0,"index":8,"text":"INCLUDES=-I /usr/include/mysql ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"f95a36b2-9020-421d-b7b2-c64c38bc70ac","page_size":[595,841],"block_position":"74-8"},{"bbox":[121,500,190,511],"type":"text","angle":0,"index":9,"text":"-I /usr/include ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"d8a7a772-1e4b-4200-afbe-4a32d7c91de3","page_size":[595,841],"block_position":"74-9"},{"bbox":[88,531,227,544],"type":"text","angle":0,"index":10,"text":"LIBS ${ \\bf \\Pi } = { \\bf \\cdot }$ -L/lib –L /usr/lib/mysql ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"75aff0ef-c910-416d-9996-f93ed756f586","page_size":[595,841],"block_position":"74-10"},{"bbox":[152,546,262,559],"type":"text","angle":0,"index":11,"text":"-lmysqlclient -lpthread ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"6681fa34-bdc8-4646-b4d6-1278fe2cbeaf","page_size":[595,841],"block_position":"74-11"},{"bbox":[88,577,268,590],"type":"text","angle":0,"index":12,"text":"CPPFLAGS $\\mathbf { \\alpha } _ { \\mathbf { - } } \\mathbf { \\alpha } _ { \\mathbf { - } }$ -DLINUX -D_DEBUGE -O0 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"5d2a22fa-8205-4363-9516-c743eb5f3af2","page_size":[595,841],"block_position":"74-12"},{"bbox":[172,594,233,606],"type":"text","angle":0,"index":13,"text":"-w -g –I ./src ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"33e4b041-3641-408a-af8f-96aebd1518c5","page_size":[595,841],"block_position":"74-13"},{"bbox":[88,640,228,653],"type":"text","angle":0,"index":14,"text":"libsrcs=$(wildcard src/*.cpp) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"53e3d50b-0843-425f-ad77-53d1afaac1da","page_size":[595,841],"block_position":"74-14"},{"bbox":[88,671,210,684],"type":"text","angle":0,"index":15,"text":"libobjs $= \\$ 5$ (libsrcs:.cpp=.o) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"7330381f-4951-4983-bedb-efa8143acbed","page_size":[595,841],"block_position":"74-15"},{"bbox":[88,703,238,715],"type":"text","angle":0,"index":16,"text":"des_libsrcs=$(wildcard src/*.c) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"54179b00-4364-46aa-bb8d-d4ddc64dd773","page_size":[595,841],"block_position":"74-16"},{"bbox":[88,733,241,746],"type":"text","angle":0,"index":17,"text":"des_libobjs ${ \\ : = } \\$ 9$ (des_libsrcs:.c=.o) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"c468adab-190e-4e21-8c18-5f3edf628ded","page_size":[595,841],"block_position":"74-17"},{"bbox":[88,749,163,761],"type":"text","angle":0,"index":18,"text":"静态方式定义宏 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":74,"id":"301ec5b6-1eea-4c96-8d8b-70b259dcc724","page_size":[595,841],"block_position":"74-18"}],[{"bbox":[88,79,280,139],"index":0,"angle":0,"type":"code","text":"```makefile\nserver.exe: $(libobjs)gnu-md5.o\nserver.o $(des_libobjs)\n$(CC)-DDEBUGE -g -o $@ $^ -lptrhead\n$(INCLUDE) $(LIBS) \n```","id":"68734dc6-794e-41b3-acd3-c1a6a7819312","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-0"},{"bbox":[88,157,261,185],"index":1,"angle":0,"type":"algorithm","text":"%.o:%.cpp $(CC)$ (CPPFLAGS) -g -c -o $@$ < ","id":"c765348a-12fb-4332-a9c9-2996cc64ab28","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-1"},{"bbox":[88,188,188,217],"index":2,"angle":0,"type":"code","text":"```txt\n%.o:%.c\ngcc -g -c -o $@ $< \n```","id":"3b0b79aa-46c3-4fc0-a79a-b789359a4cab","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-2"},{"bbox":[88,235,212,246],"index":3,"angle":0,"type":"code","text":"```typescript\nserver.o: server.c server.h \n```","id":"d084f0c1-c7aa-4287-a010-389ec3f7cc7b","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-3"},{"bbox":[110,250,425,264],"index":4,"angle":0,"type":"algorithm","text":"$(CC) -c -w -g -DLINUX -o$ @ $<$ $(INCLUDES)$ ","id":"d9209bf4-31c3-49a3-a0ea-d119763810af","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-4"},{"bbox":[88,281,260,295],"index":5,"angle":0,"type":"code","text":"```css\ngnu-md5.o:gnu-md5.cgnu-md5.h \n```","id":"99468967-c5ed-48d8-a1f6-0c36bb30720a","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-5"},{"bbox":[110,297,205,310],"index":6,"angle":0,"type":"code","text":"```makefile\n$(CC) -c -g -o $@ $< \n```","id":"e118b2fc-3489-4cde-9de1-896b00fde5d0","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-6"},{"bbox":[88,313,114,324],"index":7,"angle":0,"type":"code","text":"```txt\nlean: \n```","id":"dc332430-6e49-4d54-93f8-720552347e9e","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-7"},{"bbox":[92,328,414,342],"index":8,"angle":0,"type":"code","text":"```txt\nrm -f server.exe server.o gnu-md5.o $(libobjs) $(des_libobjs) \n```","id":"5e39ae5e-fa45-4b03-bcff-bda974e16541","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-8"},{"bbox":[88,359,196,371],"type":"text","angle":0,"index":9,"text":"### 远程拷备到服务器 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"5eca5daf-5bef-466f-bae9-3b6d1b5e82b8","page_size":[595,841],"block_position":"75-9"},{"bbox":[88,375,121,386],"index":10,"angle":0,"type":"code","text":"```txt\ninstall: \n```","id":"d81d7113-6b7f-431c-b4c1-20d8c7b21707","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-10"},{"bbox":[110,391,396,404],"index":11,"angle":0,"type":"code","text":"```txt\nscp server.exe schkui@www.hostname.com:/var/bin_path/ \n```","id":"0b16b22e-c34e-499a-baad-222b3967987b","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-11"},{"bbox":[88,453,148,465],"type":"title","angle":0,"index":12,"text":"# Gdb 调试器","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":75,"id":"635fcfb9-80e3-44f5-b05b-2ecabdb5776e","page_size":[595,841],"block_position":"75-12"},{"bbox":[88,469,219,481],"type":"text","angle":0,"index":13,"text":"The gnu project debugger ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"c29408d5-cb4a-43c0-b55b-3a3041e57786","page_size":[595,841],"block_position":"75-13"},{"bbox":[143,484,256,497],"type":"text","angle":0,"index":14,"text":"1、监视程序中变量的值 ","id":"b83eeba3-f980-41fd-aa4c-5f1d375f32c1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-14"},{"bbox":[142,501,245,512],"type":"text","angle":0,"index":15,"text":"2、在程序中设置断点 ","id":"6d74aaad-b3ec-4e86-b102-1733d32bd35d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-15"},{"bbox":[142,515,245,528],"type":"text","angle":0,"index":16,"text":"3、程序性的单步执行 ","id":"0faa14ba-ab2e-4c0d-a572-1b8a13cbda95","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-16"},{"bbox":[88,531,267,544],"type":"text","angle":0,"index":18,"text":"Gcc 编译的时候需要添加选项-g -ggdb ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"691ecb1e-2bea-4519-b4e0-a626643d3006","page_size":[595,841],"block_position":"75-17"},{"bbox":[88,546,247,559],"type":"text","angle":0,"index":19,"text":"调试符号插入到生成的二进制代码 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"4c9a2c79-0ec0-482e-bb0e-cc04d620a71d","page_size":[595,841],"block_position":"75-18"},{"bbox":[88,562,205,574],"type":"text","angle":0,"index":20,"text":"默认不加入调试符号信息 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"46895921-47fb-4a3d-a56e-b2df52953dca","page_size":[595,841],"block_position":"75-19"},{"bbox":[88,577,195,590],"type":"text","angle":0,"index":21,"text":"可执行文件大小会增加 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"137a51a5-0dd8-42e9-aa95-b08230bd5902","page_size":[595,841],"block_position":"75-20"},{"bbox":[88,593,208,607],"type":"text","angle":0,"index":22,"text":"调试信息分级-g1/-g2/-g3 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"a2c18731-45f2-4137-b9bb-576a3a611996","page_size":[595,841],"block_position":"75-21"},{"bbox":[88,608,342,621],"type":"text","angle":0,"index":23,"text":"-g2 默认扩展到符号表、行号、局部或外部变量的信息 ","id":"46492e61-5df4-4ef5-8826-36be1d043769","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-22"},{"bbox":[88,624,329,637],"type":"text","angle":0,"index":24,"text":"-g3 包含级别 2 中的所有调试信息以及源代码中的宏 ","id":"a48b4411-3def-440b-89ad-98546a3740b4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-23"},{"bbox":[88,640,455,652],"type":"text","angle":0,"index":25,"text":"-g1 不包含局部变量和与行号有关的调试信息，因此只能用回溯跟踪和堆栈转储 ","id":"9ce3375d-f03a-4c21-8c70-e01406714d52","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-24"},{"bbox":[88,655,346,667],"type":"text","angle":0,"index":27,"text":"回溯追踪：指的是监视程序在运行过程中函数调用历史。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"962938dc-634b-4e52-af8c-e91f57177f48","page_size":[595,841],"block_position":"75-25"},{"bbox":[88,671,346,683],"type":"text","angle":0,"index":28,"text":"堆栈转储：以原始的十六进制格式保存程序的执行环境。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"62d176f8-21c6-48bd-b88c-b16152eca052","page_size":[595,841],"block_position":"75-26"},{"bbox":[87,687,504,714],"type":"text","angle":0,"index":29,"text":"任何调试选项都会急剧增大生成的二进制文件的大小，同时增加执行的开销，因此，通常 仅用于开发和调试。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"531cab05-a2cd-4771-a1c4-18f8e6f1818d","page_size":[595,841],"block_position":"75-27"},{"bbox":[88,718,376,730],"type":"text","angle":0,"index":30,"text":"使用 gdb filename 启动 gdb，其中 filename 应为可执行文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":75,"id":"c68477e2-ca56-45f6-89dc-f20f9330d8f4","page_size":[595,841],"block_position":"75-28"},{"bbox":[88,734,142,745],"index":31,"angle":0,"type":"code","text":"```txt\nGdba .out \n```","id":"8f810b14-19dc-4318-8a6b-8be0a1a6a743","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-29"},{"bbox":[88,749,154,761],"index":32,"angle":0,"type":"code","text":"```txt\nGdb 常用命令 \n```","id":"57f657a6-1049-4cf7-bd6c-ddd087b148ee","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":75,"page_size":[595,841],"block_position":"75-30"}],[{"bbox":[86,79,214,91],"type":"text","angle":0,"index":0,"text":"R命令 使用命令r运行程序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"06ca7b9a-c1d3-4633-b7f7-1a187f4ba03e","page_size":[595,841],"block_position":"76-0"},{"bbox":[86,95,504,123],"type":"text","angle":0,"index":1,"text":"如果在同一调试过程中需要多次运行程序(run)，后续再执行时便可直接使用 r 指令，系统 会默认使用之前的参数。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"f97b961f-729d-4be2-8e39-3cbcbf83d79b","page_size":[595,841],"block_position":"76-1"},{"bbox":[86,141,504,170],"type":"text","angle":0,"index":2,"text":"进行调试过程中重新编译程序后，不必退出 gdb，使用 r 指令重新运行程序，gdb 会自动 更新程序状态。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"a96fcb68-bbc4-4323-a0ea-7420ae75033f","page_size":[595,841],"block_position":"76-2"},{"bbox":[86,188,153,200],"type":"text","angle":0,"index":3,"text":"List（I）命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"71a81542-23e0-4cdb-b0b5-a0b40e8345f3","page_size":[595,841],"block_position":"76-3"},{"bbox":[86,203,331,215],"type":"text","angle":0,"index":4,"text":"用来列出源文件中的部分源代码。（需要编译时加入 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"367b04c1-b7f7-4e54-9d16-72bc26798631","page_size":[595,841],"block_position":"76-4"},{"bbox":[87,219,221,232],"type":"text","angle":0,"index":5,"text":"-g选项生成对应的编译符号） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"b8c20c10-8a04-402b-97da-9b6444e44389","page_size":[595,841],"block_position":"76-5"},{"bbox":[86,235,301,247],"type":"text","angle":0,"index":6,"text":"l source_file_name.c:col （l 源文件名：行号） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"9c689aa9-cd34-4651-b5f5-2fb292e9d1ef","page_size":[595,841],"block_position":"76-6"},{"bbox":[86,250,285,263],"type":"text","angle":0,"index":7,"text":"l function_name，以函数为整体进行输出 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"a60614c9-5906-47e7-afe8-a709a92edf26","page_size":[595,841],"block_position":"76-7"},{"bbox":[86,281,120,294],"type":"text","angle":0,"index":8,"text":"断点 b ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"8c05786a-a127-4655-9f45-84e876b6985d","page_size":[595,841],"block_position":"76-8"},{"bbox":[86,297,173,309],"type":"text","angle":0,"index":9,"text":"和继续执行c命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"eb47ef5b-2735-400b-812d-b3bc602f9fc0","page_size":[595,841],"block_position":"76-9"},{"bbox":[86,312,299,324],"type":"text","angle":0,"index":10,"text":"Disable /enable 来停用/启用编号为 n 的断点 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"7ddeaec9-f9d8-4882-a1ed-cde2d14ee273","page_size":[595,841],"block_position":"76-10"},{"bbox":[86,328,362,340],"type":"text","angle":0,"index":11,"text":"命令b可以在需要地方放置断点，程序在断点位置停止运行 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"5749e2ef-610c-4b69-a9a7-b030f71ddeab","page_size":[595,841],"block_position":"76-11"},{"bbox":[87,343,172,356],"type":"text","angle":0,"index":12,"text":"格式：b 断点位置 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"0fb40628-9a97-4aa7-82ec-5dba869438ae","page_size":[595,841],"block_position":"76-12"},{"bbox":[86,359,486,371],"type":"text","angle":0,"index":13,"text":"其中，断点位置可以是行号，也可以是函数名(指定方式与l 指令类似)，也可以是地址。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"f5784f34-4e56-4cb4-8f74-1cbc7c1e5a70","page_size":[595,841],"block_position":"76-13"},{"bbox":[86,375,504,403],"type":"text","angle":0,"index":14,"text":"使用 c 命令从断点继续执行后续指令。使用命令 disable/enable 断点号 可以启用/停用某 断点。使用指令 d 可删除所有的断点，d 1 删除 breakpoint 1. ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"b55dada8-26a5-4621-b948-5cc18d1f6a3c","page_size":[595,841],"block_position":"76-14"},{"bbox":[98,407,500,463],"index":15,"angle":0,"type":"code","text":"```txt\nb 10 //在源代码10行处放置断点  \nb main //在main函数开始处放置断点  \nb *0x80480000 //在存放在0x80480000处的指令处放置断点，直接使用地址时需要使用 *地址 的格式  \nb 10 if a<10 //可以在断点中加入中断执行的条件，表示当a < 10时才会中断程序执行 \n```","id":"31f7a7f5-f1af-434b-8404-2d97603edd26","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-15"},{"bbox":[86,484,151,497],"type":"text","angle":0,"index":16,"text":"Watch 。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"1d60234f-08c5-4d23-96f4-b0310b499788","page_size":[595,841],"block_position":"76-16"},{"bbox":[98,515,394,560],"index":17,"angle":0,"type":"code","text":"```txt\nwatch a //当变量a的值发生变化时，中断程序执行  \nwatch -1 a // watch指令指定了-1参数时，会将指令所接的表达式的计算结果作为地址，//观察该地址处的值的变化情况  \nrwatch a //当a的值被读取时，中断表达式的执行 \n```","id":"31af5c5a-ab51-4ac7-afa3-639af789566c","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":76,"page_size":[595,841],"block_position":"76-17"},{"bbox":[86,624,504,652],"type":"text","angle":0,"index":18,"text":"可以为某一表达式设置观察点，当程序执行过程中表达式的值发生改变时，gdb 会中断程 序执行，并显示表达式的变化情况 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"9684bc63-a0ce-496a-9b73-11572d3fcb72","page_size":[595,841],"block_position":"76-18"},{"bbox":[87,655,188,668],"type":"text","angle":0,"index":19,"text":"Disp 显示 打印命令 p ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"62329130-609c-48ff-85d6-a38966c68355","page_size":[595,841],"block_position":"76-19"},{"bbox":[87,671,141,683],"type":"text","angle":0,"index":20,"text":"P 打印命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"80f46cd5-0128-44e9-ab39-370ee2bae668","page_size":[595,841],"block_position":"76-20"},{"bbox":[86,687,361,699],"type":"text","angle":0,"index":21,"text":"disp(display)命令可以在每次程序暂停时显示指定变量的值 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"20ac6e45-5632-4c82-8678-8d5728e4638d","page_size":[595,841],"block_position":"76-21"},{"bbox":[87,702,176,714],"type":"text","angle":0,"index":22,"text":"格式：disp 变量名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"13768384-568a-4dab-a275-995c8d2286b4","page_size":[595,841],"block_position":"76-22"},{"bbox":[86,717,503,745],"type":"text","angle":0,"index":23,"text":"若输入的变量为数组名，则每次显示数组的所有元素，若为结构体，则输出结构体的所有 成员的值。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"af24a4ee-7ef3-434a-a84b-68f36a31e3a0","page_size":[595,841],"block_position":"76-23"},{"bbox":[86,749,439,761],"type":"text","angle":0,"index":24,"text":"p(print)命令也将变量的值打印出来，用法与 diap 类似，但结果只显示一次。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":76,"id":"474bf3ed-0930-4655-9a24-ed86d7d5dd0c","page_size":[595,841],"block_position":"76-24"}],[{"bbox":[86,79,366,92],"type":"text","angle":0,"index":0,"text":"除变量外，p 命令还可以输出给定寄存器、给定地址处的值。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"38c86669-7fde-4de2-9b7a-3fd2021887bb","page_size":[595,841],"block_position":"77-0"},{"bbox":[86,95,504,123],"type":"text","angle":0,"index":1,"text":"通过一些参数对打印格式进行规定，如 /x 表示以16进制格式打印值，/t表示以二进制格 式打印值。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"edec98be-e1a4-4fc4-b1d9-7d48867db2f6","page_size":[595,841],"block_position":"77-1"},{"bbox":[87,141,187,154],"index":2,"angle":0,"type":"code_caption","text":"其它显示类 info 命令","id":"c14eaf04-3128-4d9c-8ff8-5ea9f614dc02","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"page_size":[595,841],"block_position":"77-2"},{"bbox":[88,157,508,227],"index":3,"angle":0,"type":"code","text":"```txt\ninfo reg //输出所有寄存器的当前值  \ninfo frame //输出栈帧的使用情况  \ninfo b n //其中n为指定的断点号，显示指定断点的状态信息，//不加参数n时，会显示所有的断点的信息  \n内存检查 examine \n```","id":"91678257-10db-471c-9d4e-634dd7546d92","color":{"line":"rgba(200, 140, 58, 1)","fill":"rgba(200, 140, 58, 1)"},"page_idx":77,"page_size":[595,841],"block_position":"77-3"},{"bbox":[87,234,112,247],"type":"text","angle":0,"index":4,"text":"命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"187cc661-24b5-4bb9-a0fa-e822874074f0","page_size":[595,841],"block_position":"77-4"},{"bbox":[86,250,158,262],"type":"text","angle":0,"index":5,"text":"X fmt address ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"db5ca917-6b6e-4262-ba5b-8e050d7c4f37","page_size":[595,841],"block_position":"77-5"},{"bbox":[86,265,259,279],"type":"text","angle":0,"index":6,"text":"x 命令用于检查内存中某一区域的值， ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"f06a8ba9-4eb6-455f-98cb-c71cfb4c211b","page_size":[595,841],"block_position":"77-6"},{"bbox":[86,281,189,294],"type":"text","angle":0,"index":7,"text":"格式：x fmt address ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"7f990c6e-4094-4a75-a4e1-6468878aeb28","page_size":[595,841],"block_position":"77-7"},{"bbox":[86,296,471,311],"type":"text","angle":0,"index":8,"text":"其中 address 为内存地址的表达式，fmt 由 /重复次数 $\\cdot ^ { + }$ 格式化字符 $^ +$ 尺寸字符 组成。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"e739d32a-250e-431e-b595-40839359d6dc","page_size":[595,841],"block_position":"77-8"},{"bbox":[86,312,509,374],"type":"text","angle":0,"index":9,"text":"格式化字符有 o(octal，八进制)，x(hex，十六进制)， d(decimal，十进制)，u(unsigned decimal，无符号十进 制 )，t(binary，二进 制)，f(float，浮点)，a(address，地址)， i(instruction ， 指 令 ) ， c(char ， 字 符 ) ， s(string ， 字 符 串 ). 尺 寸 字 符 有 b(byte)，h(halfword)， w(word)， g(giant, 8 bytes) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"ece15fba-6b07-4137-831e-2e8f71a04073","page_size":[595,841],"block_position":"77-9"},{"bbox":[86,390,179,402],"type":"text","angle":0,"index":10,"text":"执行（s 与 n）命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"b0a5a07a-43a7-41f3-8952-29ac1e43705c","page_size":[595,841],"block_position":"77-10"},{"bbox":[87,406,163,418],"type":"text","angle":0,"index":11,"text":"回溯（bt）命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"c0aaafa8-9d12-402d-9aa2-60b4890351e1","page_size":[595,841],"block_position":"77-11"},{"bbox":[87,422,167,434],"type":"text","angle":0,"index":12,"text":"设置（set）指令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"d2de9ba1-143f-4887-a0e6-3ca3b761ef99","page_size":[595,841],"block_position":"77-12"},{"bbox":[93,437,223,458],"type":"title","angle":0,"index":13,"text":"# ·执行(s与n)命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":77,"id":"e246e305-f06a-41ce-9ca8-7f2542e0a6df","page_size":[595,841],"block_position":"77-13"},{"bbox":[96,460,337,475],"type":"text","angle":0,"index":14,"text":"s与n指令都是表示执行下一条指令指令的意思 ","id":"ae11d88f-2879-4759-8b26-a04836a540a4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"page_size":[595,841],"block_position":"77-14"},{"bbox":[96,477,442,491],"type":"text","angle":0,"index":15,"text":"s指令会进入函数调用内部进行执行，即下一步为被调函数的第一指令。 ","id":"7a594f47-fefd-4880-9db9-3e5795987e31","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"page_size":[595,841],"block_position":"77-15"},{"bbox":[96,494,433,508],"type":"text","angle":0,"index":16,"text":"n指令不进入函数调用内部，会将整个函数的执行过程当作一步执行。 ","id":"94ff0176-d0c2-4f4e-9f0c-c2f3fdab1a22","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"page_size":[595,841],"block_position":"77-16"},{"bbox":[94,535,205,556],"type":"title","angle":0,"index":18,"text":"# ·回潮(bt)命令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":77,"id":"7dad9ad5-7a84-460e-bb11-1d70d30ebb3d","page_size":[595,841],"block_position":"77-17"},{"bbox":[94,558,456,586],"type":"text","angle":0,"index":19,"text":"回溯指令(backtrace)可以查看程序内存访问越界等错误信息，显示程序出 错的位置，从而帮助定位程序错误。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"d6189b66-3bfb-410f-8b8f-71c2ab44577e","page_size":[595,841],"block_position":"77-18"},{"bbox":[94,608,211,629],"type":"title","angle":0,"index":20,"text":"# ·设置(set)指令","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":77,"id":"46812997-276b-4a4d-a15f-03662a472c8a","page_size":[595,841],"block_position":"77-19"},{"bbox":[96,631,452,659],"type":"text","angle":0,"index":21,"text":"设置指令set可以将指定的变量的值修改为调试所需要的值。如对于一个 int型的变量X，可以使用setX=12将变量的值进行设置。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"153bb89a-a319-449e-8fd2-6a32344eba8a","page_size":[595,841],"block_position":"77-20"},{"bbox":[87,687,283,699],"type":"text","angle":0,"index":22,"text":"可以使用宏定义对一些常用指令进行定义。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"848f296f-d641-43ee-818f-e58e06045f5f","page_size":[595,841],"block_position":"77-21"},{"bbox":[86,702,405,715],"type":"text","angle":0,"index":23,"text":"格式 ：define 宏名，并根据提示输入宏定义，以 end 作为结尾标志。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"cfb9d1d7-62fa-4a70-bb99-8ac6b882b938","page_size":[595,841],"block_position":"77-22"},{"bbox":[87,734,124,745],"type":"text","angle":0,"index":24,"text":"Cmake ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"8462343b-ebed-47a3-afb4-0f1988a8ed0f","page_size":[595,841],"block_position":"77-23"},{"bbox":[87,749,189,762],"type":"text","angle":0,"index":25,"text":"System call 系统调用 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":77,"id":"ab6723f1-1d16-444a-8bae-9a1b8ea561a4","page_size":[595,841],"block_position":"77-24"}],[{"bbox":[88,79,304,91],"type":"text","angle":0,"index":0,"text":"C函数库为每个系统调用提供了一个同名函数。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"bc234593-1b50-4de0-96cb-057aaabeabf3","page_size":[595,841],"block_position":"78-0"},{"bbox":[87,110,388,123],"type":"text","angle":0,"index":1,"text":"调用函数的时候，如果有对应的系统调用，自动调用该系统调用。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"6c17e49c-12c4-4e86-9244-7345f6545526","page_size":[595,841],"block_position":"78-1"},{"bbox":[87,141,377,186],"type":"text","angle":0,"index":2,"text":"从程序员使用角度看，系统调用与 C 库函数使用方法相似。 从执行角度看，系统调用运行在核心态，库函数运行在用户态。 printf 与 printk ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"f084c1e8-d179-4855-821f-8c8f2876d805","page_size":[595,841],"block_position":"78-2"},{"bbox":[87,203,262,216],"type":"text","angle":0,"index":3,"text":"系统调用引起状态切换，花销并不小。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"08828b70-c67a-416a-8ed4-9ed34e803f61","page_size":[595,841],"block_position":"78-3"},{"bbox":[87,234,227,248],"type":"text","angle":0,"index":4,"text":"调用返回时引起系统重新调度 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"f076286d-ad92-498b-86c1-9b9338c48db6","page_size":[595,841],"block_position":"78-4"},{"bbox":[87,250,189,263],"type":"text","angle":0,"index":5,"text":"整个系统调用的过程： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"bb72eefd-a4eb-4c5f-96a4-7b4afa190d4a","page_size":[595,841],"block_position":"78-5"},{"bbox":[87,265,193,279],"type":"text","angle":0,"index":6,"text":"执行用户程序(如:fork) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"d75e673d-d2a3-4608-a546-39c75270c131","page_size":[595,841],"block_position":"78-6"},{"bbox":[87,281,413,325],"type":"text","angle":0,"index":7,"text":"根据 glibc 中的函数实现，取得系统调用号并执行 int $\\$ 0 x80$ 产生中断。 进行地址空间的转换和堆栈的切换，执行 SAVE_ALL。（进入内核模式） 中断处理，根据系统调用表调用内核函数。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"f6036818-13d4-405a-8594-3333c59917b7","page_size":[595,841],"block_position":"78-7"},{"bbox":[88,328,157,341],"type":"text","angle":0,"index":8,"text":"执行内核函数。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"6e90e45b-2969-40eb-935d-2d3ccec03df5","page_size":[595,841],"block_position":"78-8"},{"bbox":[87,343,259,356],"type":"text","angle":0,"index":9,"text":"执行 RESTORE_ALL 并返回用户模式。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"ff0dc599-a642-42cd-bb5a-c02c2dc5079d","page_size":[595,841],"block_position":"78-9"},{"bbox":[88,359,178,372],"type":"text","angle":0,"index":10,"text":"引发系统进程调度。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"bdff2be0-78f0-4321-837a-1bfd7b033fe8","page_size":[595,841],"block_position":"78-10"},{"bbox":[88,375,153,387],"type":"text","angle":0,"index":11,"text":"四个重要的宏 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"96d60c50-557e-446f-b24b-afdbc72881b8","page_size":[595,841],"block_position":"78-11"},{"bbox":[88,391,136,402],"type":"text","angle":0,"index":12,"text":"SAVE_ALL ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"e833cfaa-14b1-4241-81e3-7c198a56a957","page_size":[595,841],"block_position":"78-12"},{"bbox":[87,406,345,420],"type":"text","angle":0,"index":13,"text":"保存用户模式的寄存器和堆栈信息,然后切换到内核模式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"2b4b33cf-4a04-44d2-b76e-d837477a0adb","page_size":[595,841],"block_position":"78-13"},{"bbox":[88,422,157,434],"type":"text","angle":0,"index":14,"text":"RESTORE_ALL ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"0ebeddd4-f15a-47e4-bb65-6a4f79ce1ebb","page_size":[595,841],"block_position":"78-14"},{"bbox":[88,438,172,450],"type":"text","angle":0,"index":15,"text":"与 SAVE_ALL 相反 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"1cf1267e-659c-4f1f-b5ae-486890705774","page_size":[595,841],"block_position":"78-15"},{"bbox":[88,453,196,465],"type":"text","angle":0,"index":16,"text":"SWITH_KERNELSPACE ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"8398cdde-f1e3-49a0-a14a-4ac553d748da","page_size":[595,841],"block_position":"78-16"},{"bbox":[88,469,184,481],"type":"text","angle":0,"index":17,"text":"实现地址空间的转换 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"2deaa4ec-253e-42ad-b98d-00e86462579f","page_size":[595,841],"block_position":"78-17"},{"bbox":[88,484,184,497],"type":"text","angle":0,"index":18,"text":"SWITH_USERSPACE ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"97d32e4e-c229-4ecd-a734-1ddbefd15f2a","page_size":[595,841],"block_position":"78-18"},{"bbox":[88,500,208,513],"type":"text","angle":0,"index":19,"text":"arch/i386/kernel/entry.S ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"a0fb949d-257b-4d1d-b524-225315820334","page_size":[595,841],"block_position":"78-19"},{"bbox":[88,515,143,528],"type":"text","angle":0,"index":20,"text":"系统调用表 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"f4e7982b-03e7-4c82-b0b4-984d154265a7","page_size":[595,841],"block_position":"78-20"},{"bbox":[88,531,208,544],"type":"text","angle":0,"index":21,"text":"arch/i386/kernel/entry.S ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"76ef4012-f1ea-43bb-a616-563b03814b17","page_size":[595,841],"block_position":"78-21"},{"bbox":[88,547,145,559],"type":"text","angle":0,"index":22,"text":"配置 TCP/IP ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"534c2fec-9e9d-49db-b7c0-8f31870b87e7","page_size":[595,841],"block_position":"78-22"},{"bbox":[88,562,231,575],"type":"text","angle":0,"index":23,"text":"配置TCP/IP涉及以下一些文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"cc9893d6-904e-43a8-b6e0-457de0e09771","page_size":[595,841],"block_position":"78-23"},{"bbox":[88,578,242,590],"type":"text","angle":0,"index":24,"text":"/etc/resolv.conf－－DNS 服务器 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"b91fe5dd-f2f4-4a36-aa87-0cfca68d5247","page_size":[595,841],"block_position":"78-24"},{"bbox":[88,593,242,606],"type":"text","angle":0,"index":25,"text":"/etc/host.conf－－域名解析次序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"767a1c38-6315-4ee6-ad9e-fd5d2637517e","page_size":[595,841],"block_position":"78-25"},{"bbox":[88,609,279,621],"type":"text","angle":0,"index":26,"text":"/etc/hosts－－本地域名到IP的映射文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"5f744a07-46ba-42c0-91a4-f17108fc76c4","page_size":[595,841],"block_position":"78-26"},{"bbox":[88,625,286,637],"type":"text","angle":0,"index":27,"text":"/etc/sysconfig/network－－网关、主机名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"2b253d85-ad27-4c25-9044-997d2ee17e29","page_size":[595,841],"block_position":"78-27"},{"bbox":[88,640,289,667],"type":"text","angle":0,"index":28,"text":"/etc/sysconfig/network-scripts/ifcfg.ethx －－网卡参数的主要文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"35088958-db07-49b6-877c-94c68e9ad7ad","page_size":[595,841],"block_position":"78-28"},{"bbox":[87,671,287,730],"type":"text","angle":0,"index":29,"text":"/etc/network/interfaces－－Ubuntu 文件 ping ping [ hostname | IP address ] [options] ping 210.32.34.137 –c 10 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"cc5b5cd6-e5c7-4277-8176-387f8c570c5b","page_size":[595,841],"block_position":"78-29"},{"bbox":[88,750,125,761],"type":"text","angle":0,"index":30,"text":"netstat ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":78,"id":"e905ca0f-089a-42e7-8d96-779b4c295e6e","page_size":[595,841],"block_position":"78-30"}],[{"bbox":[86,79,442,92],"type":"text","angle":0,"index":0,"text":"显示与网络有关的各种数据结构，如显示网络连接、路由表和网络接口信息。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"9ebec78f-e63c-4ca1-9807-9bd90fca3386","page_size":[595,841],"block_position":"79-0"},{"bbox":[87,95,180,107],"type":"text","angle":0,"index":1,"text":"netstat -[ r | i ] [n] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"40c76577-5276-46ab-a213-48eef2f1c117","page_size":[595,841],"block_position":"79-1"},{"bbox":[88,110,224,123],"type":"text","angle":0,"index":2,"text":"netstat -i -n (显示网络接口) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"c27fe43b-130d-468b-a12a-407e4523918e","page_size":[595,841],"block_position":"79-2"},{"bbox":[88,126,197,138],"type":"text","angle":0,"index":3,"text":"netstat -r(显示路由表) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"837052c0-ac1d-4147-a038-34b17f01c8d1","page_size":[595,841],"block_position":"79-3"},{"bbox":[88,141,127,154],"type":"text","angle":0,"index":4,"text":"ifconfig ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"3cd9f4b1-a1e0-4432-8903-294bfc9e3883","page_size":[595,841],"block_position":"79-4"},{"bbox":[88,157,227,169],"type":"text","angle":0,"index":5,"text":"显示当前有效网络接口的状态 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"016e19c0-d244-4d76-b600-a7b90715f3ac","page_size":[595,841],"block_position":"79-5"},{"bbox":[88,172,210,185],"type":"text","angle":0,"index":6,"text":"修改网络接口配置（暂时） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"64e8dc19-10ff-4c05-a536-018c90a67fcf","page_size":[595,841],"block_position":"79-6"},{"bbox":[88,189,160,201],"type":"text","angle":0,"index":7,"text":"ifconfig [接口] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"16c6de1e-5966-4fe4-8bfa-b8255765acba","page_size":[595,841],"block_position":"79-7"},{"bbox":[88,204,287,216],"type":"text","angle":0,"index":8,"text":"ifconfig eth0 #显示 eth0 网络接口的参数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"550d92bb-77ae-4aa2-ac27-f84694f70689","page_size":[595,841],"block_position":"79-8"},{"bbox":[88,219,267,232],"type":"text","angle":0,"index":9,"text":"ifconfig -a #显示所有网络接口参数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"f34d4959-69d9-4693-8b3d-68dd749d2a53","page_size":[595,841],"block_position":"79-9"},{"bbox":[88,267,117,278],"type":"text","angle":0,"index":10,"text":"route ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"46be8cec-c1c0-489a-9d3a-753cb609c70b","page_size":[595,841],"block_position":"79-10"},{"bbox":[88,281,224,294],"type":"text","angle":0,"index":11,"text":"对内核的IP路由表进行操作。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"2b919fec-502d-4bb9-a41c-6010cd3020ba","page_size":[595,841],"block_position":"79-11"},{"bbox":[88,297,303,310],"type":"text","angle":0,"index":12,"text":"route [add|del] [-net|-host] target [gw GW] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"54625d19-fdd0-46ee-875c-ecd22f784794","page_size":[595,841],"block_position":"79-12"},{"bbox":[113,312,281,326],"type":"text","angle":0,"index":13,"text":"[netmask Nm] [metric N] [[dev] If] ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"c1a410b8-bc37-4f66-b829-24f64dc7749c","page_size":[595,841],"block_position":"79-13"},{"bbox":[88,328,298,341],"type":"text","angle":0,"index":14,"text":"使用 add 表示增加一条路由条目，del 则删除 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"80c7e7d4-ba48-47fb-aeb2-53ea80a60850","page_size":[595,841],"block_position":"79-14"},{"bbox":[88,344,144,356],"type":"text","angle":0,"index":15,"text":"/etc/inittab ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"28a75e7c-90f8-4c4a-8a43-7ff0edec756e","page_size":[595,841],"block_position":"79-15"},{"bbox":[88,359,230,372],"type":"text","angle":0,"index":16,"text":"启动配置文件,每行分为四个域 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"620f8fe7-a92f-409b-8b00-9d1d83219daa","page_size":[595,841],"block_position":"79-16"},{"bbox":[99,375,258,386],"type":"text","angle":0,"index":17,"text":"code:runlevels:action:command ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"82aa2967-6f65-4503-80af-e120b65a967c","page_size":[595,841],"block_position":"79-17"},{"bbox":[88,391,504,418],"type":"text","angle":0,"index":18,"text":"code－－用单个或两个字符序列作为本行的标识，在文件中是唯一的。而某些记录必须使 用特定的code才能使系统工作正常。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"63a9c60d-c3b1-4ca1-a618-75b67874a277","page_size":[595,841],"block_position":"79-18"},{"bbox":[88,422,233,434],"type":"text","angle":0,"index":19,"text":"runlevels－－本行的运行级别。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"209b2bef-c7d2-4305-bccb-1284449e82ba","page_size":[595,841],"block_position":"79-19"},{"bbox":[88,438,309,450],"type":"text","angle":0,"index":20,"text":"action－－指明 init 程序执行 command 的方式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"4eda3506-8889-4e33-81b0-e2f9e56e5d0f","page_size":[595,841],"block_position":"79-20"},{"bbox":[88,454,297,465],"type":"text","angle":0,"index":21,"text":"command－－给出相应记录行要执行的命令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"da8fcbc0-e972-4d00-b725-5a063010d7d7","page_size":[595,841],"block_position":"79-21"},{"bbox":[88,500,126,513],"type":"text","angle":0,"index":22,"text":"Fork（） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"ec9a70fe-7acf-4cf3-81ab-0d890ef717d7","page_size":[595,841],"block_position":"79-22"},{"bbox":[88,531,367,544],"type":"text","angle":0,"index":23,"text":"exec() #Load and overwrite current image with new one ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"7ad2b655-159c-43cf-9015-3a0a7ef3b64f","page_size":[595,841],"block_position":"79-23"},{"bbox":[88,546,346,559],"type":"text","angle":0,"index":24,"text":"with fork() together, it can execute a shell command. ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"0bd16ed0-738d-48fd-a395-3afd10f2cc58","page_size":[595,841],"block_position":"79-24"},{"bbox":[88,562,132,575],"type":"text","angle":0,"index":25,"text":"Example ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"1effc7f5-2627-49a1-9558-4f2d268cf6aa","page_size":[595,841],"block_position":"79-25"},{"bbox":[88,592,259,606],"type":"text","angle":0,"index":26,"text":"execl ( “/bin/ls”, “ls”, “-l”, (char *)0 ); ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"dee922f9-22d1-41a4-a4c0-39d3a8ec6abd","page_size":[595,841],"block_position":"79-26"},{"bbox":[88,609,220,621],"type":"text","angle":0,"index":27,"text":"Terminate current process ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"78adb22a-6000-4fce-a1f2-fa9cfe8fe494","page_size":[595,841],"block_position":"79-27"},{"bbox":[88,625,120,637],"type":"text","angle":0,"index":28,"text":"exit(0) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"60e7b895-dd3a-455b-bf14-87a70b8b230a","page_size":[595,841],"block_position":"79-28"},{"bbox":[88,640,120,652],"type":"text","angle":0,"index":29,"text":"exit(n) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"fb160192-93ba-4078-852c-83fc84ecfb22","page_size":[595,841],"block_position":"79-29"},{"bbox":[88,656,123,668],"type":"text","angle":0,"index":30,"text":"exit(-1) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"5f8fd71e-8740-46a7-8770-ef255ff7ac90","page_size":[595,841],"block_position":"79-30"},{"bbox":[88,671,371,684],"type":"text","angle":0,"index":31,"text":"int open(const char *pathname, int flags,[mode_t mode]) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"f5709aa5-f517-4a6d-bea3-f4453a5f25b5","page_size":[595,841],"block_position":"79-31"},{"bbox":[88,687,504,715],"type":"text","angle":0,"index":32,"text":"pathname－－字符指针，指向所要打开文件的路径名。可以是相对路径也可以是绝对路 径。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"d1614210-691f-48aa-ac5d-9d73ae07cc61","page_size":[595,841],"block_position":"79-32"},{"bbox":[88,718,384,730],"type":"text","angle":0,"index":33,"text":"flags－－是打开文件的方式，在头文件fcntl.h中定义几个常量： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"66aa361e-bffc-4fb8-81d7-b6faad298e3f","page_size":[595,841],"block_position":"79-33"},{"bbox":[88,734,186,746],"type":"text","angle":0,"index":34,"text":"O_RDONLY－－只读 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"e7a7b154-a667-49f9-adf9-825f2204f4d4","page_size":[595,841],"block_position":"79-34"},{"bbox":[88,750,188,761],"type":"text","angle":0,"index":35,"text":"O_WRONLY－－只写 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":79,"id":"91d1dde0-f294-449e-9b27-13bda4a0a72b","page_size":[595,841],"block_position":"79-35"}],[{"bbox":[86,79,222,92],"type":"text","angle":0,"index":0,"text":"O_TRUNC－－截断为 0 长度 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"f8bd7651-4383-432e-a7a7-6f5610a96aab","page_size":[595,841],"block_position":"80-0"},{"bbox":[87,95,291,108],"type":"text","angle":0,"index":1,"text":"O_CREAT－－如果文件不存在，创建新文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"61bb2446-c4b5-446f-ba17-f74d8202679a","page_size":[595,841],"block_position":"80-1"},{"bbox":[88,110,169,123],"type":"text","angle":0,"index":2,"text":"O_EXCL－－互斥 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"837fc6b9-2a41-4876-a8c4-920c6d895ab6","page_size":[595,841],"block_position":"80-2"},{"bbox":[88,126,175,138],"type":"text","angle":0,"index":3,"text":"O_RDWR－－读写 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"6b131269-3ed2-485d-93ef-375c208cda86","page_size":[595,841],"block_position":"80-3"},{"bbox":[88,142,186,154],"type":"text","angle":0,"index":4,"text":"O_APPEND－－追加 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"0048e0a6-3e09-4eeb-9258-a141ec0117fb","page_size":[595,841],"block_position":"80-4"},{"bbox":[87,157,505,185],"type":"text","angle":0,"index":5,"text":"mode－－可选参数，只有当 flags 参数为 O_CREAT 时该参数才有效，表示文件的默认权 限。一般情况下不使用这个参数。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"33eda26a-46bb-4c94-822e-0140b017446e","page_size":[595,841],"block_position":"80-5"},{"bbox":[87,188,356,201],"type":"text","angle":0,"index":6,"text":"返回值就是文件描述符，一个整数；打开出错时，返回-1。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"00a702fb-fffc-4e25-bcaf-5b5c5053dd3b","page_size":[595,841],"block_position":"80-6"},{"bbox":[88,203,105,216],"type":"text","angle":0,"index":7,"text":"例： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"17636316-d131-46ae-a483-77cb950222f2","page_size":[595,841],"block_position":"80-7"},{"bbox":[87,218,362,232],"type":"text","angle":0,"index":8,"text":"fd $=$ open(\"file\", O_RDWR | O_CREAT | O_TRUNC, 0644); ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"af4c0377-5697-4846-81ec-4710487f37e8","page_size":[595,841],"block_position":"80-8"},{"bbox":[86,250,324,264],"type":"text","angle":0,"index":9,"text":"ssize_t read(int filedes, void *buffer, size_t n); ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"6326ef60-9482-421f-b347-9efe36717f4b","page_size":[595,841],"block_position":"80-9"},{"bbox":[88,265,196,279],"type":"text","angle":0,"index":10,"text":"filedes－－文件描述符 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"06b3e7df-64a8-4d0e-a8e5-4f5dd9dd7b2a","page_size":[595,841],"block_position":"80-10"},{"bbox":[87,281,498,294],"type":"text","angle":0,"index":11,"text":"buffer－－指向数组或结构的指针，读入的数据将填充到这里，一般就是数组本身的名字 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"284b690d-bb22-41ba-91df-640adde931ea","page_size":[595,841],"block_position":"80-11"},{"bbox":[88,297,223,310],"type":"text","angle":0,"index":12,"text":"n－－期望读入数据的字节数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"40902781-b05c-46d9-81d5-453e8510abd9","page_size":[595,841],"block_position":"80-12"},{"bbox":[87,312,387,326],"type":"text","angle":0,"index":13,"text":"返回值是读入数据的字节数，非负的整数；读入出错时，返回-1。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"7c3d7089-9b6f-4ef5-a50e-404c0cf695d1","page_size":[595,841],"block_position":"80-13"},{"bbox":[87,328,405,342],"type":"text","angle":0,"index":14,"text":"ssize_t write(int filedes, const void *buffer, size_t n); ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"4338aba5-0dd6-40c8-92ea-6ae059b3df15","page_size":[595,841],"block_position":"80-14"},{"bbox":[88,343,196,356],"type":"text","angle":0,"index":15,"text":"filedes－－文件描述符 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"cc14a0f2-f247-4f5a-9d92-876eedc2a7d6","page_size":[595,841],"block_position":"80-15"},{"bbox":[88,359,246,372],"type":"text","angle":0,"index":16,"text":"buffer－－指向数据缓冲区的指针 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"c659d525-7c65-48d7-9bb0-f9a164727b1c","page_size":[595,841],"block_position":"80-16"},{"bbox":[88,375,223,388],"type":"text","angle":0,"index":17,"text":"n－－要写入的数据的字节数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"d2f71af5-74fd-44ce-83bb-f119c13b78a4","page_size":[595,841],"block_position":"80-17"},{"bbox":[86,406,331,419],"type":"text","angle":0,"index":18,"text":"off_t lseek(int filedes, off_t offset, int start_flag); ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"69ffd573-19b2-41c4-8472-54348e822100","page_size":[595,841],"block_position":"80-18"},{"bbox":[88,422,269,434],"type":"text","angle":0,"index":19,"text":"filedes－－一个已经打开的文件描述符 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"2691fef2-550f-4548-ad41-fe34e1284600","page_size":[595,841],"block_position":"80-19"},{"bbox":[88,437,307,450],"type":"text","angle":0,"index":20,"text":"offset－－表示新位置相对于起始位置的字节数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"1eb272e0-1c74-4221-a2e6-10e5592bb885","page_size":[595,841],"block_position":"80-20"},{"bbox":[88,453,252,466],"type":"text","angle":0,"index":21,"text":"start_flag－－整型，决定起始位置 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"703073ef-b035-45b8-9228-91d2bb3306fd","page_size":[595,841],"block_position":"80-21"},{"bbox":[88,468,337,481],"type":"text","angle":0,"index":22,"text":"SEEK_SET offset 是从文件的起始位置算起，通常为 0 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"961335c3-4b4d-4818-8c5f-28976eeea31e","page_size":[595,841],"block_position":"80-22"},{"bbox":[88,484,382,497],"type":"text","angle":0,"index":23,"text":"SEEK_CUR offset是相对文件读写的当前位置而言的，通常为1 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"e963a4b4-e4f7-4604-816e-363b371627b2","page_size":[595,841],"block_position":"80-23"},{"bbox":[88,500,311,513],"type":"text","angle":0,"index":24,"text":"SEEK_END offset 是相对文件尾而言，通常为 2 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"2f01f046-a048-4cfd-99df-1ba319f12411","page_size":[595,841],"block_position":"80-24"},{"bbox":[87,550,154,567],"type":"title","angle":0,"index":25,"text":"# 基础架构","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":80,"id":"2bbf12c6-4e39-4c4f-8595-b212934d1cab","page_size":[595,841],"block_position":"80-25"},{"bbox":[87,604,189,618],"type":"text","angle":0,"index":26,"text":"守护进程（Daemon） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"3d5e1cbf-9718-4a76-aaf4-3a219e59b387","page_size":[595,841],"block_position":"80-26"},{"bbox":[87,620,268,634],"type":"text","angle":0,"index":27,"text":"始终在后台运行并响应合法请求的程序 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"7ceca519-a640-4f36-9a4b-58c21e2d3fcb","page_size":[595,841],"block_position":"80-27"},{"bbox":[88,635,129,649],"type":"text","angle":0,"index":28,"text":"SysVinit ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"bd4fae9c-770e-4d69-b6ff-ae21661fe2f3","page_size":[595,841],"block_position":"80-28"},{"bbox":[88,652,127,665],"type":"text","angle":0,"index":29,"text":"Upstart ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"60f773e4-2cc8-4090-9bf1-c92fa6ed647f","page_size":[595,841],"block_position":"80-29"},{"bbox":[88,667,132,680],"type":"text","angle":0,"index":30,"text":"Systemd ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"23997d37-e3a8-4c8e-80ef-1e564cf458f1","page_size":[595,841],"block_position":"80-30"},{"bbox":[88,682,204,696],"type":"text","angle":0,"index":31,"text":"使用 systemctl 管理服务 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"3c899321-3fc6-40e0-99fe-367f8d509558","page_size":[595,841],"block_position":"80-31"},{"bbox":[88,698,146,711],"type":"text","angle":0,"index":32,"text":"-缩写—全称 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"99cd4cfa-a14b-401e-864d-f82a290ac3b7","page_size":[595,841],"block_position":"80-32"},{"bbox":[88,714,152,726],"type":"text","angle":0,"index":33,"text":"已运行的服务 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"7c0ff934-767d-4ece-9c05-2f2826b17809","page_size":[595,841],"block_position":"80-33"},{"bbox":[88,729,215,742],"type":"text","angle":0,"index":34,"text":"为什么要安排调度进程任务 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"f501c714-d3b3-4cd5-940e-1bb75f166d56","page_size":[595,841],"block_position":"80-34"},{"bbox":[88,745,185,757],"type":"text","angle":0,"index":35,"text":"调度任务的守护进程 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":80,"id":"9560405d-39a8-4f7b-bdc8-fa5dfd939c82","page_size":[595,841],"block_position":"80-35"}],[{"bbox":[88,79,164,92],"type":"text","angle":0,"index":0,"text":"安排调度任务的 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"414638cd-1dd5-4f9d-9d07-0121944064b1","page_size":[595,841],"block_position":"81-0"},{"bbox":[88,95,153,107],"type":"text","angle":0,"index":1,"text":"Crontab 文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"2ffc1e0f-756a-45d5-ae9a-9f630fc422b2","page_size":[595,841],"block_position":"81-1"},{"bbox":[88,125,192,138],"type":"text","angle":0,"index":2,"text":"系统日常 的 cron 任务 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"bb1b9dfd-f2f8-4a92-9d0d-6247aac55ceb","page_size":[595,841],"block_position":"81-2"},{"bbox":[88,142,153,153],"type":"text","angle":0,"index":3,"text":"系统日志服务 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"67fa628a-fe33-4899-983f-b5245685e59b","page_size":[595,841],"block_position":"81-3"},{"bbox":[89,157,184,169],"type":"text","angle":0,"index":4,"text":"日志系统和系统体制 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"56636917-3b63-4a51-800f-1a970a832626","page_size":[595,841],"block_position":"81-4"},{"bbox":[89,173,143,185],"type":"text","angle":0,"index":5,"text":"日志的用途 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"c11710ce-4883-4f12-a4da-fc7b50ba8222","page_size":[595,841],"block_position":"81-5"},{"bbox":[89,188,247,200],"type":"text","angle":0,"index":6,"text":"系统审计、检查测追踪和分析统计 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"815ce631-dc12-41c4-b0a6-89de37f6f249","page_size":[595,841],"block_position":"81-6"},{"bbox":[89,204,143,216],"type":"text","angle":0,"index":7,"text":"日志的功能 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"7c353996-84d0-4e8f-87fc-ae3fa52441e3","page_size":[595,841],"block_position":"81-7"},{"bbox":[88,219,289,232],"type":"text","angle":0,"index":8,"text":"用于记录系统、程序运行中发送的各种实践 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"9c2be75a-e5a4-4534-81fe-a3b02d46f8f2","page_size":[595,841],"block_position":"81-8"},{"bbox":[88,235,195,248],"type":"text","angle":0,"index":9,"text":"通过阅读日志，有助于 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"74d187a1-3d9d-4194-93e6-66ac94915704","page_size":[595,841],"block_position":"81-9"},{"bbox":[89,250,132,263],"type":"text","angle":0,"index":10,"text":"日志系统 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"12a4f26b-a731-4af0-b5cf-5d59c5e60ed2","page_size":[595,841],"block_position":"81-10"},{"bbox":[88,265,279,279],"type":"text","angle":0,"index":11,"text":"系统日志和内核消息捕捉的日志记录胸痛 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"8f29f436-08f9-4c1e-8986-ee2608371807","page_size":[595,841],"block_position":"81-11"},{"bbox":[89,281,132,294],"type":"text","angle":0,"index":12,"text":"主要功能 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"ed5133de-fbfa-46d3-921a-1351ba6a97b7","page_size":[595,841],"block_position":"81-12"},{"bbox":[88,297,226,310],"type":"text","angle":0,"index":13,"text":"分类存放日志、方便日志管理 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"a812cb09-65b5-40f4-862b-ce6728ef3204","page_size":[595,841],"block_position":"81-13"},{"bbox":[88,313,226,326],"type":"text","angle":0,"index":14,"text":"可将日志消息记录到远程主机 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"5fcfffec-ef00-4fb1-8ed0-f217aff7393f","page_size":[595,841],"block_position":"81-14"},{"bbox":[88,343,301,358],"type":"text","angle":0,"index":16,"text":"Rsyslog 采用模块化设计，是 syslog 的替代品 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"e6f720c1-4760-4dfb-b1bc-aaf86636cb12","page_size":[595,841],"block_position":"81-15"},{"bbox":[88,359,209,373],"type":"text","angle":0,"index":17,"text":"实现了基本的 syslog 协议 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"82859042-2eec-4441-a6f8-25c829ec432e","page_size":[595,841],"block_position":"81-16"},{"bbox":[88,375,132,387],"type":"text","angle":0,"index":18,"text":"输入模块 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"3cb22392-dc70-4ff0-95f4-69c171961192","page_size":[595,841],"block_position":"81-17"},{"bbox":[88,391,239,405],"type":"text","angle":0,"index":19,"text":"Imklg、imsock、imfile、imtcp ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"1d639803-32c1-4d04-9ed3-9433957030f7","page_size":[595,841],"block_position":"81-18"},{"bbox":[88,407,142,418],"type":"text","angle":0,"index":20,"text":"预处理模块 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"a6227b19-6881-4d3e-b7d0-5dabf26afed6","page_size":[595,841],"block_position":"81-19"},{"bbox":[89,422,121,434],"type":"text","angle":0,"index":21,"text":"主队列 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"3731949f-dd6b-457e-b247-e66cf638bac8","page_size":[595,841],"block_position":"81-20"},{"bbox":[88,438,132,449],"type":"text","angle":0,"index":22,"text":"过滤模块 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"7485315c-899d-4f4f-999d-1c17de8fb727","page_size":[595,841],"block_position":"81-21"},{"bbox":[88,453,132,465],"type":"text","angle":0,"index":23,"text":"执行队列 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"4ac5a0fc-91ab-46b2-9c58-ab8cd403fd2d","page_size":[595,841],"block_position":"81-22"},{"bbox":[88,469,132,481],"type":"text","angle":0,"index":24,"text":"输出模块 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"526f0bcc-0cd0-4839-9b1c-6d7b39551611","page_size":[595,841],"block_position":"81-23"},{"bbox":[88,500,131,512],"type":"text","angle":0,"index":26,"text":"全局指令 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"bd6d1965-5f4f-4671-87e8-34a521efa9cc","page_size":[595,841],"block_position":"81-24"},{"bbox":[88,515,111,527],"type":"text","angle":0,"index":27,"text":"模板 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"c1b44f7e-d89a-4c2b-8aaf-1a93c091a273","page_size":[595,841],"block_position":"81-25"},{"bbox":[88,531,132,543],"type":"text","angle":0,"index":28,"text":"输出通道 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"04169cec-2d20-4a5e-9c6c-f4a8ac54649d","page_size":[595,841],"block_position":"81-26"},{"bbox":[88,547,111,559],"type":"text","angle":0,"index":29,"text":"规则 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"ae2bf39e-5d46-48c2-8875-59d0f609856e","page_size":[595,841],"block_position":"81-27"},{"bbox":[88,562,218,576],"type":"text","angle":0,"index":30,"text":"Facility.priority action 动作 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"aab9cfc6-edfe-4f48-a768-16ff37e0c509","page_size":[595,841],"block_position":"81-28"},{"bbox":[92,577,135,590],"type":"text","angle":0,"index":31,"text":"日志级别 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"39c8662c-a1bf-4dd2-80a5-67acd790f79a","page_size":[595,841],"block_position":"81-29"},{"bbox":[88,593,132,605],"type":"text","angle":0,"index":32,"text":"磁盘存储 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"cb933526-6bc6-4d9a-9866-23a5cb437ff8","page_size":[595,841],"block_position":"81-30"},{"bbox":[88,609,153,621],"type":"text","angle":0,"index":33,"text":"统计/statistic ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"5b3aafd9-f476-475a-bf0b-70a7722be624","page_size":[595,841],"block_position":"81-31"},{"bbox":[88,624,169,637],"type":"text","angle":0,"index":34,"text":"wc [-clw] file_list ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"729faae4-54ab-4d9c-9d0f-1e73953bcd5b","page_size":[595,841],"block_position":"81-32"},{"bbox":[89,640,159,652],"type":"text","angle":0,"index":35,"text":"Ex: ls -l | wc –l ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"56e8b6d9-6600-452a-b539-cc3b7a279120","page_size":[595,841],"block_position":"81-33"},{"bbox":[88,655,185,667],"type":"text","angle":0,"index":36,"text":"磁盘存储/Disk store ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"10b6e085-fae1-4f0f-bae3-e9708699afde","page_size":[595,841],"block_position":"81-34"},{"bbox":[88,671,155,684],"type":"text","angle":0,"index":37,"text":"df disk usage ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"598ea359-287b-430f-9649-16f0e9439c04","page_size":[595,841],"block_position":"81-35"},{"bbox":[88,687,156,699],"type":"text","angle":0,"index":38,"text":"du disk space ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"977b10f0-b498-45d6-bbc1-4be9d34adc0c","page_size":[595,841],"block_position":"81-36"},{"bbox":[88,703,240,714],"type":"text","angle":0,"index":39,"text":"文件系统装卸/mount/unmount ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"de69c804-ede9-4483-a13e-945204e29e48","page_size":[595,841],"block_position":"81-37"},{"bbox":[88,718,314,730],"type":"text","angle":0,"index":40,"text":"Ex: mount –t iso9660 /dev/cdrom /mnt/cdrom ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"8feb5747-fff3-4b48-aa02-80df0bb1d374","page_size":[595,841],"block_position":"81-38"},{"bbox":[104,734,205,745],"type":"text","angle":0,"index":41,"text":"umount /dev/cdrom ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"fa2963b4-dc3a-4cc2-b7e6-79e0ec14420d","page_size":[595,841],"block_position":"81-39"},{"bbox":[88,749,137,761],"type":"text","angle":0,"index":42,"text":"别名/alias ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":81,"id":"9c8ba3b1-e541-4778-8c43-50bd47b14d5a","page_size":[595,841],"block_position":"81-40"}],[{"bbox":[87,79,295,92],"type":"text","angle":0,"index":0,"text":"give alias name to complicated command ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"809af0c0-c0e8-44b7-92d4-719ffc6c3f71","page_size":[595,841],"block_position":"82-0"},{"bbox":[88,94,204,107],"type":"text","angle":0,"index":1,"text":"alias myls=‘ls –l | more’ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"2133ee2f-2a0a-427f-86cd-374c021cb410","page_size":[595,841],"block_position":"82-1"},{"bbox":[88,111,110,121],"type":"text","angle":0,"index":2,"text":"SSH ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"8296b633-2ea3-44dc-896a-066d3e0f6141","page_size":[595,841],"block_position":"82-2"},{"bbox":[87,126,163,137],"type":"text","angle":0,"index":3,"text":"TCP 协议的风险 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"7ff78e7b-34fe-4b13-a12d-4205e9151414","page_size":[595,841],"block_position":"82-3"},{"bbox":[142,142,267,153],"type":"text","angle":0,"index":4,"text":"1、窃听——获取通信内容 ","id":"ea6d6f1a-df69-49a5-9c91-11b7a92cfdd7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-4"},{"bbox":[142,157,267,169],"type":"text","angle":0,"index":5,"text":"2、篡改——修改通信内容 ","id":"6db21458-568f-4601-b5c0-bf25350b8850","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-5"},{"bbox":[142,172,308,185],"type":"text","angle":0,"index":6,"text":"3、冒充——猫村他人身份参与同学 ","id":"bf1ac0d5-c565-4d9f-a6a3-71db9af23e6e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-6"},{"bbox":[87,188,284,201],"type":"text","angle":0,"index":8,"text":"SSL $\\cdot ^ { - }$ secure socket layer（安全套接字层） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"f41291d9-8c1f-4cb1-bbf4-5a09937a574e","page_size":[595,841],"block_position":"82-7"},{"bbox":[88,203,224,216],"type":"text","angle":0,"index":9,"text":"1、提供身份验证的客户端‘ ","id":"2a7678ac-68bb-444b-ba00-072664fb9306","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-8"},{"bbox":[88,219,317,232],"type":"text","angle":0,"index":10,"text":"2、在一个公共通信通道发送之前对数据进行加密 ","id":"77903d3b-eecd-4e4d-a2c0-8be7b9c8ecdd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-9"},{"bbox":[88,235,181,247],"type":"text","angle":0,"index":11,"text":"3、确保数据完整性 ","id":"f617674a-530d-47ea-bab9-196376ba5f8e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-10"},{"bbox":[88,250,139,263],"type":"text","angle":0,"index":12,"text":"4、有效率 ","id":"eba953b2-905b-4fca-83ee-111029b1fb85","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-11"},{"bbox":[88,265,255,279],"type":"text","angle":0,"index":14,"text":"5、在双方协商使用的主要加密算法 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"fae999d9-61ad-453f-8a61-316f0945ad6a","page_size":[595,841],"block_position":"82-12"},{"bbox":[88,281,132,294],"type":"text","angle":0,"index":15,"text":"对称加密 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"dc7253aa-ada1-4d0c-addb-e243effd23f6","page_size":[595,841],"block_position":"82-13"},{"bbox":[88,297,142,309],"type":"text","angle":0,"index":16,"text":"非对称加密 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"255f9e97-180d-4d10-ab7e-8c1f9b72b86f","page_size":[595,841],"block_position":"82-14"},{"bbox":[88,312,131,325],"type":"text","angle":0,"index":17,"text":"数字签名 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"3346968c-8d05-4ac7-b23f-8a175cddc337","page_size":[595,841],"block_position":"82-15"},{"bbox":[88,328,183,341],"type":"text","angle":0,"index":18,"text":"数字签证（x509v.3） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"5763a05f-91c4-4cd5-a18f-8e39d16b5b6c","page_size":[595,841],"block_position":"82-16"},{"bbox":[88,343,174,356],"type":"text","angle":0,"index":19,"text":"明确和正式的规范 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"f9dcf95d-4aea-42fc-9542-9aa2b7b880ef","page_size":[595,841],"block_position":"82-17"},{"bbox":[88,359,132,372],"type":"text","angle":0,"index":20,"text":"协商参数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"725730a6-f2f7-481d-8b95-ff4149a048d0","page_size":[595,841],"block_position":"82-18"},{"bbox":[88,375,163,387],"type":"text","angle":0,"index":21,"text":"在连接时的握手 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"83908491-9d2e-4178-bf03-9a282a8e6393","page_size":[595,841],"block_position":"82-19"},{"bbox":[88,391,184,402],"type":"text","angle":0,"index":22,"text":"重用先前谈判的参数 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"5c0c4ad0-09ef-41c4-b5b0-014b09a17d58","page_size":[595,841],"block_position":"82-20"},{"bbox":[88,414,142,427],"type":"title","angle":0,"index":23,"text":"# 电子商务","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":82,"id":"b5dea942-5e0d-47ea-8d85-b1e010f4a372","page_size":[595,841],"block_position":"82-21"},{"bbox":[94,430,263,442],"type":"text","angle":0,"index":24,"text":"订单：订购的产品表单使用SSL发送 ","id":"defe525e-dd07-406a-a921-abbda3344e6b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-22"},{"bbox":[94,444,263,456],"type":"text","angle":0,"index":25,"text":"付款：使用SSL发送信用卡号等数据 ","id":"13dd926c-64ff-47fb-b53a-40cce7998b82","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-23"},{"bbox":[94,460,164,472],"type":"title","angle":0,"index":27,"text":"# 访问安全信息","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":82,"id":"18adeefd-09b4-453e-a434-1cd8adbb2244","page_size":[595,841],"block_position":"82-24"},{"bbox":[94,475,263,487],"type":"text","angle":0,"index":28,"text":"信息通信只能由“合格的”用户访问 ","id":"71e52ccb-0476-4244-a1c2-c3dbe95914ff","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-25"},{"bbox":[94,490,214,502],"type":"text","angle":0,"index":29,"text":"发送密码或其他敏感数据 ","id":"dfaceb99-ac53-4fd2-8859-6cc8665d486c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-26"},{"bbox":[94,545,254,555],"type":"text","angle":0,"index":31,"text":"·SSL-Secure Sockets Layer Version 2.0 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"f218dab6-17f4-4c69-ab44-18fa00ce69e1","page_size":[595,841],"block_position":"82-27"},{"bbox":[106,555,213,564],"type":"text","angle":0,"index":32,"text":"Initially developed by Netscape ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"391e9ce5-d8d9-4cf1-bfdb-2e738cf826d4","page_size":[595,841],"block_position":"82-28"},{"bbox":[107,564,290,579],"type":"text","angle":0,"index":33,"text":"SSL2.0is sensitive toman-in-the-middle attacks leading e.g.to the negotiation of weak encryption keys ","id":"2ef47218-597f-4afd-89e9-928c6d72945d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-29"},{"bbox":[107,579,230,586],"type":"text","angle":0,"index":34,"text":"uSSL2.0 should not be used anymore ","id":"36e1c658-2023-4b7e-b4ab-708fbe2e7078","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-30"},{"bbox":[97,587,252,595],"type":"text","angle":0,"index":36,"text":"·SSL-Secure Sockets LaverVersion 3.0 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"3eb17960-da5e-4514-a9ab-a19475b0de0d","page_size":[595,841],"block_position":"82-31"},{"bbox":[106,596,279,604],"type":"text","angle":0,"index":37,"text":"internet Draft authored by Netscape.November1996 ","id":"b485844e-d79b-4470-85a3-622c0f9caeaa","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-32"},{"bbox":[107,604,197,612],"type":"text","angle":0,"index":38,"text":"Supported byall browsers ","id":"642fb8bb-ee1d-46b5-94fc-86e550df1e7c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-33"},{"bbox":[107,613,305,621],"type":"text","angle":0,"index":39,"text":"Vulnerable to the BEAST Cipher-Block-Chaining (CBC)attack ","id":"0b5aba2c-7eaa-4a17-a00c-30190120453a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-34"},{"bbox":[97,622,299,630],"type":"text","angle":0,"index":41,"text":"TLS-Transport Layer Security Version 1.0 (SSL3.1) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"id":"b69a86af-25ba-4964-bc73-e8d6f23c732d","page_size":[595,841],"block_position":"82-35"},{"bbox":[107,631,213,639],"type":"text","angle":0,"index":42,"text":"IETFRFC2246,January1999 ","id":"c05abf95-86ec-4e50-aec3-2afc167ff8c7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-36"},{"bbox":[107,639,325,654],"type":"text","angle":0,"index":43,"text":"TLS 1.0 Ist not backwards compatible to SSL 3.0 (differences in MAC computation,PRF function formaster secretand keymaterial) ","id":"47056f63-e372-4929-9506-b8f326d408f7","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-37"},{"bbox":[107,654,197,661],"type":"text","angle":0,"index":44,"text":"Supported byall browsers ","id":"7c84bf55-6bbf-4917-8f19-4dc2a47c3191","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-38"},{"bbox":[107,661,305,669],"type":"text","angle":0,"index":45,"text":"Vulnerable tothe BEASTCipber-Block-Chaining (CBC)attack ","id":"dbd43ce9-6381-4de8-9c52-2905ebe6145f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":82,"page_size":[595,841],"block_position":"82-39"}],[{"bbox":[89,81,115,105],"index":0,"angle":0,"type":"image","img_path":"/b85f1d753ab271f4fb165278c746cb0e4a1a01c838573ce51f78379928aa0baf.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":83,"id":"081d6b89-1bc5-4bc6-be2e-6a4a84d16714","page_size":[595,841],"block_position":"83-0"},{"bbox":[116,80,214,105],"type":"title","angle":0,"index":1,"text":"# TLS增强的 基于TCP的应用协议","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":83,"id":"6b12b722-0e28-4711-ac0c-59c422f6700d","page_size":[595,841],"block_position":"83-1"},{"bbox":[95,111,261,211],"index":2,"angle":0,"type":"table_body","img_path":"/","id":"852d5bc7-1e8b-4f6c-b9f6-9362fb226842","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>服务名</td><td>端口号</td><td>实现的安全服务</td></tr><tr><td>https</td><td>443/tcp</td><td>http protocol over TLS</td></tr><tr><td>smtps</td><td>465/tcp</td><td>smtp protocol over TLS</td></tr><tr><td>smtp</td><td>25/tcp</td><td>STARTTLS keyword (RFC 2487)</td></tr><tr><td>imaps</td><td>993/tcp</td><td>imap4 protocol over TLS</td></tr><tr><td>imap4</td><td>143/tcp</td><td>STARTTLS keyword (RFC 2596)</td></tr><tr><td>pop3s</td><td>995/tcp</td><td>pop3 protocol over TLS</td></tr><tr><td>pop3</td><td>110/tcp</td><td>STLS keyword (RFC 2595)</td></tr><tr><td>Idaps</td><td>636/tcp</td><td>Idap protocol over TLS</td></tr><tr><td>nntp</td><td>563/tcp</td><td>nntp protocol over TLS</td></tr><tr><td>FTPS-Data</td><td>989/tcp</td><td>FTP Data over SSL/TLS</td></tr><tr><td>FTPS</td><td>990/tcp</td><td>FTP Control over SSL/TLS</td></tr></table>","page_idx":83,"page_size":[595,841],"block_position":"83-2"},{"bbox":[123,227,210,246],"type":"title","angle":0,"index":3,"text":"# SSL协议组件","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":83,"id":"abc02716-ecaa-40e9-ac25-1b42b5899011","page_size":[595,841],"block_position":"83-3"},{"bbox":[94,264,271,278],"type":"text","angle":0,"index":4,"text":"握手协议（Handshakeprotocol） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"id":"bdced016-0a33-4b74-8bb1-f37333b80b03","page_size":[595,841],"block_position":"83-4"},{"bbox":[104,280,314,292],"type":"text","angle":0,"index":5,"text":"□允许当事人协商需要交易的安全性的不同算法 ","id":"22a4c12a-5d77-4394-b524-a4dce852e115","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-5"},{"bbox":[104,294,255,306],"type":"text","angle":0,"index":6,"text":"允许当事人之问的任何身份验证 ","id":"07d9bb84-252d-47c6-b4a1-6cbc1908385a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-6"},{"bbox":[94,309,237,322],"type":"text","angle":0,"index":8,"text":"警报协议（Alertprotocol） ","id":"569d2056-a894-431f-8aa0-6e6de29f4499","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-7"},{"bbox":[104,324,226,337],"type":"text","angle":0,"index":9,"text":"通知异常情况或报告问题 ","id":"4627391f-49e7-4699-81b3-eafbe06ce7bc","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-8"},{"bbox":[94,340,332,354],"type":"text","angle":0,"index":10,"text":"更改密码说明协议（ChangeCipher Spec protocol） ","id":"823b6e54-0d14-4a06-b8d3-9a9b1ae2b4e6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-9"},{"bbox":[104,355,334,379],"type":"text","angle":0,"index":11,"text":"强制一个新的握手的执行重新协商安全参数，并重 复认证 ","id":"56ffa44f-6ffb-4ea0-beae-35086f4c681c","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-10"},{"bbox":[94,381,250,396],"type":"text","angle":0,"index":12,"text":"记录协议（Recordprotocol） ","id":"a402b4ba-8ea7-49f4-a763-645a2397e766","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-11"},{"bbox":[104,397,228,409],"type":"text","angle":0,"index":13,"text":"涉及的压缩，加密和MAC ","id":"c765048d-baa0-48cc-bf42-a89cde9998f2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-12"},{"bbox":[88,422,136,434],"type":"title","angle":0,"index":15,"text":"# Open SSL","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":83,"id":"26f9b8b7-fe3e-4d70-b5f3-2f3c6849aefb","page_size":[595,841],"block_position":"83-13"},{"bbox":[123,436,216,449],"type":"title","angle":0,"index":16,"text":"# OpenSSL特性","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":83,"id":"7c309566-562f-4c16-8738-5485211a8e1d","page_size":[595,841],"block_position":"83-14"},{"bbox":[90,474,312,488],"type":"text","angle":0,"index":17,"text":"开源，基于一个Apache风格的许可证发布 ","id":"824ca923-df60-4aa0-b653-e40e9b4a7aee","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-15"},{"bbox":[90,491,314,504],"type":"text","angle":0,"index":18,"text":"提供了SSLv2/v3和TLSv1.0的全功能实现 ","id":"5be1e7a4-7a6b-4046-9377-8355d31ce3cf","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-16"},{"bbox":[90,507,294,520],"type":"text","angle":0,"index":19,"text":"·用C语言开发，具有优秀的跨平台性能 ","id":"f45bdf57-7863-4f9d-a190-077d62e28f83","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-17"},{"bbox":[90,523,280,537],"type":"text","angle":0,"index":20,"text":"基于PKI标准，支持X509证书标准 ","id":"d2f7f374-5cf7-42ed-87e6-a8c54606dec2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-18"},{"bbox":[90,540,251,554],"type":"text","angle":0,"index":21,"text":"提供众多的加密和摘要算法库 ","id":"96053d64-d634-4a27-8a01-44c16dac0f3b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-19"},{"bbox":[90,556,273,571],"type":"text","angle":0,"index":22,"text":"提供了命令行界面（openssl命令） ","id":"3223b8a3-0698-4964-b32a-15be4b75ffb0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-20"},{"bbox":[90,573,227,586],"type":"text","angle":0,"index":23,"text":"·提供了应用程序编程接口 ","id":"fb809c40-2e1f-4fa6-b75b-dc430fd2db05","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":83,"page_size":[595,841],"block_position":"83-21"}],[{"bbox":[91,100,116,114],"type":"title","angle":0,"index":0,"text":"# 功能","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":84,"id":"a5db571c-5bd7-43b1-a8d6-d20c99ddf8fa","page_size":[595,841],"block_position":"84-0"},{"bbox":[91,116,230,128],"type":"text","angle":0,"index":1,"text":"创建RSA，DSA&DH密钥对 ","id":"25289ca4-63be-4bc0-bca4-d487a9558acc","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-1"},{"bbox":[91,131,182,142],"type":"text","angle":0,"index":2,"text":"公共密钥加密操作 ","id":"3ae33fe5-f8d7-4933-b9d3-5dddd35c61c4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-2"},{"bbox":[91,145,239,157],"type":"text","angle":0,"index":3,"text":"创建X509证书，CSRs&CRLs ","id":"ebb25289-8cdb-4e0b-bed4-56fc61617d2f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-3"},{"bbox":[91,159,162,171],"type":"text","angle":0,"index":4,"text":"生成消息摘要 ","id":"1fed9792-e396-405b-976e-41174c00eb26","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-4"},{"bbox":[91,174,208,185],"type":"text","angle":0,"index":5,"text":"使用加密算法加密&解密 ","id":"fb32fb73-dfa6-477b-a244-1790619f76be","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-5"},{"bbox":[91,188,237,200],"type":"text","angle":0,"index":6,"text":"SSL/TLS服务器端/客户端测试 ","id":"23891877-553d-46e7-87f4-740d13472d27","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-6"},{"bbox":[91,202,232,214],"type":"text","angle":0,"index":7,"text":"处理S/MIME签名或加密邮件 ","id":"2d64915d-be0d-4212-b040-ad9a3fcd0ebc","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-7"},{"bbox":[91,216,231,228],"type":"text","angle":0,"index":8,"text":"时间戳记的请求，生成和验证 ","id":"f724e302-96fc-4e13-9b16-9668ca99f760","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-8"},{"bbox":[91,231,166,242],"type":"text","angle":0,"index":9,"text":"创建和管理CA ","id":"f2dc2a67-e401-40a0-8235-864e338b5062","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-9"},{"bbox":[88,250,199,264],"type":"title","angle":0,"index":11,"text":"# OpenSSL 的命令和算法","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":84,"id":"f6d1e400-4b74-49a6-b06e-1da8c0f4abd8","page_size":[595,841],"block_position":"84-10"},{"bbox":[99,275,275,289],"type":"text","angle":0,"index":12,"text":"","id":"7a9bad85-fb20-4654-802f-abe2a4947fba","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-11"},{"bbox":[99,292,262,306],"type":"text","angle":0,"index":13,"text":"","id":"83b7de48-9d80-493c-9573-42573ae3066f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-12"},{"bbox":[99,309,309,322],"type":"text","angle":0,"index":14,"text":"","id":"7f6c56b5-0a0c-4b6a-9fde-a4567c1b0a7b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-13"},{"bbox":[99,342,269,356],"type":"text","angle":0,"index":15,"text":"","id":"e4fc6cab-f178-4c05-9755-b1add17bd49f","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-14"},{"bbox":[99,359,290,374],"type":"text","angle":0,"index":16,"text":"","id":"75cd3fe8-59a8-4675-a782-b240b4e82d36","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-15"},{"bbox":[101,429,324,457],"type":"text","angle":0,"index":18,"text":"","id":"35396d91-f335-49e5-8c3d-215fa18f77de","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-16"},{"bbox":[101,460,326,487],"type":"text","angle":0,"index":19,"text":"","id":"caff23e2-aa1d-4e6a-a0bd-d34028628550","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-17"},{"bbox":[101,491,326,505],"type":"text","angle":0,"index":20,"text":"","id":"15b20e42-5f1f-40b0-a170-31da6f48d613","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-18"},{"bbox":[101,507,326,534],"type":"text","angle":0,"index":21,"text":"","id":"e945b56a-c7b2-44a8-9b3a-d0381909d93a","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-19"},{"bbox":[101,537,327,551],"type":"text","angle":0,"index":22,"text":"","id":"3d395866-0dff-4278-9b20-f25f5c4713d5","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-20"},{"bbox":[96,621,249,633],"type":"text","angle":0,"index":25,"text":"","id":"b73c31ec-43ae-459b-bb04-6264abf87786","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-21"},{"bbox":[96,635,251,647],"type":"text","angle":0,"index":26,"text":"","id":"30abcaa5-33cb-440f-94ed-738b02cb6aa2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-22"},{"bbox":[96,666,294,679],"type":"text","angle":0,"index":29,"text":"","id":"0c3d13dd-c86b-4f84-9639-55fd5f2a67ef","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-23"},{"bbox":[105,680,207,690],"type":"text","angle":0,"index":30,"text":"","id":"e9d6b12f-c5b8-4b10-9733-b8d949bcc8e1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-24"},{"bbox":[96,692,308,705],"type":"text","angle":0,"index":31,"text":"","id":"c71d5451-1d3a-43cf-8e23-a459376780e8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-25"},{"bbox":[105,706,207,716],"type":"text","angle":0,"index":32,"text":"","id":"aa5232e1-50b8-4bff-a6ac-2c050e4973ea","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":84,"page_size":[595,841],"block_position":"84-26"}],[{"bbox":[88,82,472,243],"index":0,"angle":0,"type":"image","img_path":"/b252cd49cbe02651e20881ae10e69a1f8282d12e197925de730523b6a0d34125.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.6453781512605042,"page_idx":85,"id":"b04b08a8-7397-4eeb-a4ed-16a36996153a","page_size":[595,841],"block_position":"85-0"},{"bbox":[88,265,157,279],"type":"title","angle":0,"index":1,"text":"# 对称加密/解密","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":85,"id":"36bcc14c-c0f1-4a40-977b-8307955520d5","page_size":[595,841],"block_position":"85-1"},{"bbox":[91,284,400,462],"index":2,"angle":0,"type":"image","img_path":"/47a450f0e41dfb8c5381c4087f83280e7ec405a6d54c3377c85bcbb7378bae61.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.519327731092437,"page_idx":85,"id":"5de38133-382b-4ced-bb27-fa909dfa0a10","page_size":[595,841],"block_position":"85-2"},{"bbox":[88,483,174,497],"type":"title","angle":0,"index":3,"text":"# 非对称加密和解密","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":85,"id":"42898a5a-a5b3-4808-9762-c5676b9c9c71","page_size":[595,841],"block_position":"85-3"},{"bbox":[88,502,420,679],"index":4,"angle":0,"type":"image","img_path":"/8a30e7bca29df99f6cd121cef09ce9097cef1a05519373ed842df0925bbc761a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5579831932773109,"page_idx":85,"id":"21ee9efd-0902-470a-8a71-1873898d2bfb","page_size":[595,841],"block_position":"85-4"}],[{"bbox":[88,84,136,137],"index":0,"angle":0,"type":"image","img_path":"/14e6550cbf3a413ff555225f6b3762c487d4d4029e1f0be7eda24bd68068e7bc.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":86,"id":"b5e16eda-482b-4a91-b3b0-60fc41f6ef39","page_size":[595,841],"block_position":"86-0"},{"bbox":[136,89,320,112],"type":"title","angle":0,"index":1,"text":"# 加密/解密（非对称）","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":86,"id":"b41b7bfe-8b9d-4c27-84c3-98abef3ec6d6","page_size":[595,841],"block_position":"86-1"},{"bbox":[93,147,185,164],"type":"title","angle":0,"index":2,"text":"# 生成密钥对","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":86,"id":"69575e62-695e-4f28-aa63-5d06f73ff811","page_size":[595,841],"block_position":"86-2"},{"bbox":[106,168,346,185],"type":"text","angle":0,"index":3,"text":"$\\$ 9$ openssl genrsa-outpriv.keyfile2048 ","id":"ffa96585-7316-4322-85f7-fe41acb37754","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"page_size":[595,841],"block_position":"86-3"},{"bbox":[107,186,408,204],"type":"text","angle":0,"index":4,"text":"$\\$ 9$ opensslrsa-inpriv.keyfile-pubout $>$ pub.keyfile ","id":"8219620d-dc4d-49f6-9836-a389f3d72336","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"page_size":[595,841],"block_position":"86-4"},{"bbox":[94,206,185,223],"type":"title","angle":0,"index":6,"text":"# ·用公钥加密","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":86,"id":"7dc4afc6-031c-42ac-81c7-dab12205f884","page_size":[595,841],"block_position":"86-5"},{"bbox":[107,227,371,263],"type":"text","angle":0,"index":7,"text":"$\\$ 5$ openssl rsautl-in inputfile-out outputfile\\ -pubin-inkeypub.keyfile-encrypt ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"742ed201-efe3-4138-a139-b2e40f78960f","page_size":[595,841],"block_position":"86-6"},{"bbox":[94,264,185,282],"type":"title","angle":0,"index":8,"text":"# ·用私钥解密","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":86,"id":"06980e55-1cdf-47e7-b71c-650ea93d25da","page_size":[595,841],"block_position":"86-7"},{"bbox":[107,285,371,322],"type":"text","angle":0,"index":9,"text":"$\\$ 1$ opensslrsautl-ininputfile-outoutputfile\\ -inkeypriv.keyfiledecrypt ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"id":"ba0294d3-0258-4518-9921-7199ca224109","page_size":[595,841],"block_position":"86-8"},{"bbox":[88,359,132,373],"index":10,"angle":0,"type":"image_caption","text":"数字签名","id":"632a494a-4ae1-4fde-b0d0-e47df8d15cba","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"page_size":[595,841],"block_position":"86-9"},{"bbox":[88,375,429,574],"index":11,"angle":0,"type":"image","img_path":"/270b1ef0f055502b0d5807333740d44d7d8d2b806606fbf34c7dbd77967cfce6.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.573109243697479,"page_idx":86,"id":"7302ca6e-9ff8-4364-b566-3ab65dcf8333","page_size":[595,841],"block_position":"86-10"},{"bbox":[106,636,280,648],"type":"text","angle":0,"index":13,"text":"","id":"6b3a1329-53d6-46ec-ad35-766bcf3b27fd","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"page_size":[595,841],"block_position":"86-11"},{"bbox":[107,650,323,663],"type":"text","angle":0,"index":14,"text":"","id":"8553713b-a16c-441e-ab92-a90fe784fe08","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":86,"page_size":[595,841],"block_position":"86-12"}],[{"bbox":[107,168,217,180],"type":"text","angle":0,"index":2,"text":"","id":"67e70cc1-a8eb-453b-9f39-ff4ef06ced81","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-0"},{"bbox":[107,182,177,194],"type":"text","angle":0,"index":3,"text":"","id":"ae66cb08-864b-4c96-8315-c74203b4728d","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-1"},{"bbox":[107,212,220,226],"type":"text","angle":0,"index":6,"text":"","id":"4593b380-0a56-4740-aa16-e71f72f0df6b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-2"},{"bbox":[107,227,179,238],"type":"text","angle":0,"index":7,"text":"","id":"a6cf97f7-b44d-4c7c-a890-e16dc9072396","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-3"},{"bbox":[107,257,230,269],"type":"text","angle":0,"index":10,"text":"","id":"bddfd29c-8b1c-45b5-b0b2-54c489880486","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-4"},{"bbox":[107,270,189,283],"type":"text","angle":0,"index":11,"text":"","id":"d382efd5-acb6-4bea-a596-cdbf08eea046","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-5"},{"bbox":[111,356,295,369],"type":"text","angle":0,"index":14,"text":"","id":"33663780-7d56-4536-8fbc-81d3892dc22e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-6"},{"bbox":[111,370,329,394],"type":"text","angle":0,"index":15,"text":"","id":"f33a797c-c4eb-4708-8c99-484f89a74746","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-7"},{"bbox":[111,396,329,420],"type":"text","angle":0,"index":16,"text":"","id":"05592745-c243-43dd-8a15-8a93a619a184","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-8"},{"bbox":[111,423,289,434],"type":"text","angle":0,"index":17,"text":"","id":"8c870e6d-f168-4740-903c-2eae1080ecc8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-9"},{"bbox":[111,436,326,460],"type":"text","angle":0,"index":18,"text":"","id":"148baa54-c13d-45e1-9c0c-62cc51285aac","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-10"},{"bbox":[122,544,339,567],"type":"text","angle":0,"index":21,"text":"","id":"75b143ab-d98b-4a5a-b914-5b09b41753a3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-11"},{"bbox":[122,569,340,605],"type":"text","angle":0,"index":22,"text":"","id":"314048ce-0246-49cb-bf81-258bfb2e1108","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-12"},{"bbox":[122,608,340,631],"type":"text","angle":0,"index":23,"text":"","id":"9475def7-83f5-4ccd-aca5-cb105ddaa8f6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-13"},{"bbox":[121,634,307,645],"type":"text","angle":0,"index":24,"text":"","id":"3cf8fd84-d51a-4e44-babe-6af56048c09b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":87,"page_size":[595,841],"block_position":"87-14"}],[{"bbox":[88,79,127,123],"index":0,"angle":0,"type":"image","img_path":"/769775e6a15add89fbc96bc597ffee8c74af7bae2a9211155faa7d7495501270.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":88,"id":"8cac2aa4-ec2b-4b56-b903-998cfa64c305","page_size":[595,841],"block_position":"88-0"},{"bbox":[129,87,238,105],"type":"title","angle":0,"index":1,"text":"# 数字证书的组成","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":88,"id":"4bb51e48-380a-4a70-ac23-47fd60453fe9","page_size":[595,841],"block_position":"88-1"},{"bbox":[99,121,170,135],"type":"text","angle":0,"index":2,"text":"服务器公钥 ","id":"25e14e40-bb9c-4c4f-a2bd-41d2ce7f1fe6","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"page_size":[595,841],"block_position":"88-2"},{"bbox":[99,138,192,151],"type":"text","angle":0,"index":3,"text":"·支持的加密算法 ","id":"f7678b99-8a17-4b0f-b737-3da7c73ecabe","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"page_size":[595,841],"block_position":"88-3"},{"bbox":[100,155,244,168],"type":"text","angle":0,"index":4,"text":"DN(Distinguish Name）： ","id":"c8af1b02-e763-4a22-a5b5-0cd97fd33839","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"page_size":[595,841],"block_position":"88-4"},{"bbox":[108,170,334,182],"type":"text","angle":0,"index":6,"text":"uCN（CommonName）：通常是服务器的FQDN ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"df484e5c-b538-4ba3-bc44-8b1ae091f9e1","page_size":[595,841],"block_position":"88-5"},{"bbox":[109,185,329,208],"type":"text","angle":0,"index":7,"text":"其他的可选属性：Country（C）、State（S）、 Location(L) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"810ac46e-3c00-4889-8f1e-f1a73150c21c","page_size":[595,841],"block_position":"88-6"},{"bbox":[99,211,299,224],"type":"text","angle":0,"index":8,"text":"■证书的有效期（起始日期，截止日期） ","id":"91e0138f-b5dd-4c88-95b4-0066760655bb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"page_size":[595,841],"block_position":"88-7"},{"bbox":[99,227,266,240],"type":"text","angle":0,"index":9,"text":"证书的序列号（serialnumber） ","id":"9fba74cc-d73b-4452-bef1-da1de6b60c47","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"page_size":[595,841],"block_position":"88-8"},{"bbox":[99,244,244,257],"type":"text","angle":0,"index":10,"text":"被信任的CA的名字和签名 ","id":"cadd2ac6-a801-42b0-ab53-edb23bf55505","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"page_size":[595,841],"block_position":"88-9"},{"bbox":[99,260,235,274],"type":"text","angle":0,"index":11,"text":"X.509的其他扩展属性等 ","id":"f44ea47c-defb-4fa6-a38c-ac9062613c7b","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"page_size":[595,841],"block_position":"88-10"},{"bbox":[86,301,116,315],"type":"title","angle":0,"index":13,"text":"# Vim","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":88,"id":"bbe14646-8756-4d9f-bde2-4497b6fffc16","page_size":[595,841],"block_position":"88-11"},{"bbox":[86,352,501,381],"type":"text","angle":0,"index":14,"text":"vi 是 “Visual interface” 的简称，它可以执行输出、删除、查找、替换、块操作等众多文 本操作，而且用户可以根据自己的需要对其进行定制，这是其他编辑程序所没有的。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"0d2e28be-bcf0-4669-a7de-04caac79db88","page_size":[595,841],"block_position":"88-12"},{"bbox":[86,383,502,412],"type":"text","angle":0,"index":15,"text":"vi 不是一个排版程序，它不像 $\\mathsf { M } \\$ 1$ Word 或 WPS 那样可以对字体、格式、段落等其他属性 进行编排，它只是一个文本编辑程序。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"ccd92be2-d9b4-4979-a0d0-87fb8c688419","page_size":[595,841],"block_position":"88-13"},{"bbox":[86,415,315,428],"type":"text","angle":0,"index":16,"text":"vi 是全屏幕文本编辑器，它没有菜单，只有命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"40c47311-d56c-437b-aa93-ee71e7c4470f","page_size":[595,841],"block_position":"88-14"},{"bbox":[86,431,271,444],"type":"text","angle":0,"index":17,"text":"vim 即 Vi IMproved，vi 克隆版本之一。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"97ee3576-cd0c-4dd5-b86f-0572abded827","page_size":[595,841],"block_position":"88-15"},{"bbox":[88,459,594,663],"index":18,"angle":0,"type":"table_body","img_path":"/","id":"32abdbc5-11fe-4bd1-9a37-f9ba5a4243e0","color":{"line":"rgba(103, 194, 63, 1)","fill":"rgba(103, 194, 63, 1)"},"table_body":"<table><tr><td>命令</td><td>说明</td></tr><tr><td>vi</td><td>直接进入</td></tr><tr><td>vi filename</td><td>打开或新建文件filename，并将光标置于第一行首</td></tr><tr><td>vi+n filename</td><td>打开文件filename，并将光标置于第n行首</td></tr><tr><td>vi+filename</td><td>打开文件filename，并将光标置于最后一行首</td></tr><tr><td>vi+/pattern filename</td><td>打开文件filename，并将光标置于第一个与pattern匹配的行</td></tr><tr><td>vi-r filename</td><td>打开上次用vi编辑时发生系统崩溃，恢复filename</td></tr></table>","page_idx":88,"page_size":[595,841],"block_position":"88-16"},{"bbox":[86,666,175,680],"type":"text","angle":0,"index":19,"text":"Vi的3种运行模式 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":88,"id":"2464987c-2bf6-4337-b946-34e7cf95c714","page_size":[595,841],"block_position":"88-17"}],[{"bbox":[89,79,117,92],"index":0,"angle":0,"type":"image","img_path":"/0d0f73426ce14a69adac39f65f4553e97e8ff61ab1b76e0c3bb9bb73acc5e42a.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.2,"page_idx":89,"id":"1a8997aa-c43c-4211-979f-0e752b59d571","page_size":[595,841],"block_position":"89-0"},{"bbox":[92,101,193,139],"type":"text","angle":0,"index":1,"text":"■普通 (normal)模式 ","id":"3569f431-7073-4524-9e48-ab9a8a82eeea","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"page_size":[595,841],"block_position":"89-1"},{"bbox":[92,142,202,179],"type":"text","angle":0,"index":2,"text":"■插入 (insert)模式 ","id":"450ba2af-edbf-4116-9951-7c2a9febb6a3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"page_size":[595,841],"block_position":"89-2"},{"bbox":[92,182,202,216],"type":"text","angle":0,"index":3,"text":"■命令行 (Cmdline)模式 ","id":"949ef687-85d9-4de0-bf88-4ee0afe554f1","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"page_size":[595,841],"block_position":"89-3"},{"bbox":[205,89,431,225],"index":5,"angle":0,"type":"image","img_path":"/41e15b2ba440e2148fd57dedf6c6c920988001002ff64c0aec7ddb110d1f808f.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.3798319327731092,"page_idx":89,"id":"a60ee7a9-a007-474e-a819-c42f227bbdb6","page_size":[595,841],"block_position":"89-4"},{"bbox":[86,234,151,247],"type":"title","angle":0,"index":6,"text":"# Normal 模式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":89,"id":"7b2fe245-1503-4c23-a6e1-6df450cd2a17","page_size":[595,841],"block_position":"89-5"},{"bbox":[86,250,323,263],"type":"text","angle":0,"index":7,"text":"在 shell 中输入 vim 启动编辑器时，即进入该模式。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"4ad8fd16-7ec4-4c91-8336-ab4b3e45b04d","page_size":[595,841],"block_position":"89-6"},{"bbox":[86,265,501,294],"type":"text","angle":0,"index":8,"text":"无论什么时候，不管用户处于何种模式，只要按一下 Esc 键，即可使 vim 进入 Normal 模 式。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"d646df13-bcd1-47c1-85e3-893c4af9da0b","page_size":[595,841],"block_position":"89-7"},{"bbox":[86,296,501,326],"type":"text","angle":0,"index":9,"text":"在该模式下，用户可以输入各种合法的 vim 命令，用于管理自己的文档。此时从键盘上输 入的任何字符都被当做编辑命令来解释。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"dc7f2f66-2cf0-4eaf-b91a-5a8499e9ed0d","page_size":[595,841],"block_position":"89-8"},{"bbox":[86,327,502,372],"type":"text","angle":0,"index":10,"text":"若输入的字符是合法的 vim 命令，则vim 在接受用户命令之后完成相应的动作。但需注意 的是，所输入的命令并不在屏幕上显示出来。若输入的字符不是 vim 的合法命令，vim 会 响铃报警。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"e8a42bf5-8d3a-471d-845b-03a0301b9af1","page_size":[595,841],"block_position":"89-9"},{"bbox":[86,390,205,402],"type":"title","angle":0,"index":11,"text":"# G 用于直接跳转到文件尾","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":89,"id":"bcce87bd-5e47-4a67-afdf-4565e5b640db","page_size":[595,841],"block_position":"89-10"},{"bbox":[87,406,193,418],"type":"text","angle":0,"index":12,"text":"$\\mathsf { x }$ 删除光标所在的字符 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"87a71b1c-478e-4bbe-8378-a5a4d15f7bce","page_size":[595,841],"block_position":"89-11"},{"bbox":[87,422,191,434],"type":"text","angle":0,"index":13,"text":"r 替换光标所在的字符 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"81e3be43-b4f9-43d4-af1f-34d316aa475c","page_size":[595,841],"block_position":"89-12"},{"bbox":[87,437,224,449],"type":"text","angle":0,"index":14,"text":"~ 切换光标所在字母的大小写 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"010247a9-fa7f-4c73-ad0f-ee76a3e25a5c","page_size":[595,841],"block_position":"89-13"},{"bbox":[87,453,188,465],"type":"text","angle":0,"index":15,"text":"/和？用于查找字符串 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"fff38267-ce86-4a76-bcfd-a33ba62c8c15","page_size":[595,841],"block_position":"89-14"},{"bbox":[86,468,312,481],"type":"text","angle":0,"index":16,"text":"dd、YY、p 分别用于剪切、复制和粘贴一行文本 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"36430e23-ef97-4876-a4d3-9e1ce1a70706","page_size":[595,841],"block_position":"89-15"},{"bbox":[87,484,233,497],"type":"text","angle":0,"index":17,"text":"u 取消上一次编辑操作（undo） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"7b741a87-77a2-450d-8cf6-e09befd65126","page_size":[595,841],"block_position":"89-16"},{"bbox":[88,500,227,513],"type":"text","angle":0,"index":18,"text":". 重复上一次编辑操作（redo） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"4540103c-20e4-407b-bd2e-59d352626cfe","page_size":[595,841],"block_position":"89-17"},{"bbox":[87,515,179,528],"type":"text","angle":0,"index":19,"text":"ZZ 用于存盘退出Vi ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"330c2ff7-7b04-4281-a366-49e92a999a88","page_size":[595,841],"block_position":"89-18"},{"bbox":[87,531,190,543],"type":"text","angle":0,"index":20,"text":"ZQ用于不存盘退出Vi ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"f13ff37e-78f1-4673-8829-c75b7334d113","page_size":[595,841],"block_position":"89-19"},{"bbox":[87,547,142,559],"type":"title","angle":0,"index":21,"text":"# Insert 模式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":89,"id":"f37daf46-5767-4929-a6e1-66255d99ca75","page_size":[595,841],"block_position":"89-20"},{"bbox":[86,561,499,590],"type":"text","angle":0,"index":22,"text":"在 Normal 模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r 或 替换命令 s 等都可以进入 Insert 模式。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"8d989a2b-608c-4861-99e7-fad31c038a7f","page_size":[595,841],"block_position":"89-21"},{"bbox":[86,592,504,622],"type":"text","angle":0,"index":23,"text":"在该模式下，用户输入的任何字符都被vim当做文件内容保存起来，并将其显示在屏幕上。 在文本输入过程中，若想回到Normal模式下，按Esc 键即可。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"617cb20d-bb3c-468d-bbeb-bf1081caf58c","page_size":[595,841],"block_position":"89-22"},{"bbox":[87,624,165,637],"type":"title","angle":0,"index":24,"text":"# Command 模式","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":89,"id":"6de913d0-bfc1-4ace-9056-ba5118c0d7ec","page_size":[595,841],"block_position":"89-23"},{"bbox":[86,640,504,668],"type":"text","angle":0,"index":25,"text":"Normal 模式下，用户按冒号“:” 即可进入 Command 模式，此时vim 会在显示窗口的最 后一行 (屏幕的最后一行) 显示一个 “:” 作为 Command 模式的提示符，等待输入命令。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"d954f114-472b-4c97-ba47-45b79c4d052d","page_size":[595,841],"block_position":"89-24"},{"bbox":[87,671,330,684],"type":"text","angle":0,"index":26,"text":"多数文件管理都是在此模式下执行的 (如保存文件等) ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"cbced391-7ca2-4963-a3e1-ff66d6b43073","page_size":[595,841],"block_position":"89-25"},{"bbox":[86,687,483,714],"type":"text","angle":0,"index":27,"text":"Command 模式中所有的命令都必须按 <回车>后执行，命令执行完后，vim 自动回到 Normal 模式。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"c7b32ad1-b076-43fa-a9ca-fda8ac5feb0c","page_size":[595,841],"block_position":"89-26"},{"bbox":[86,717,502,746],"type":"text","angle":0,"index":28,"text":"若在 Command 模式下输入命令过程中改变了主意，可按Esc键，或用退格键将输入的命 令全部删除之后，再按一下退格键，即可使 vi 回到 Normal 模式下。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"db9d6b43-66a7-4804-89fe-70aa27f03bcb","page_size":[595,841],"block_position":"89-27"},{"bbox":[87,749,206,761],"type":"text","angle":0,"index":29,"text":":n1,n2 co n3 用于块复制 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":89,"id":"732709bc-aa16-45f8-94a7-cdb94aad65a8","page_size":[595,841],"block_position":"89-28"}],[{"bbox":[87,79,205,91],"type":"text","angle":0,"index":0,"text":":n1,n2 m n3 用于块移动 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"602223b1-7376-4abc-a4ec-395afb1aeae2","page_size":[595,841],"block_position":"90-0"},{"bbox":[88,95,227,107],"type":"text","angle":0,"index":1,"text":":n1,n2 d 用于块删除 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"67c8bcc8-431f-4c96-ba8c-b6483e60a0a1","page_size":[595,841],"block_position":"90-1"},{"bbox":[88,111,255,122],"type":"text","angle":0,"index":2,"text":":w 保存当前编辑文件，但并不退出 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"45c6aa7a-bec1-454e-a647-1690a6d8b881","page_size":[595,841],"block_position":"90-2"},{"bbox":[88,126,314,137],"type":"text","angle":0,"index":3,"text":":w newfile 存为另外一个名为 “newfile” 的文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"169e9cef-93c7-4536-bffd-7b987b314edf","page_size":[595,841],"block_position":"90-3"},{"bbox":[88,142,185,153],"type":"text","angle":0,"index":4,"text":":wq 用于存盘退出 Vi ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"f804322f-64ff-443d-b0e9-58e2b31d3c3f","page_size":[595,841],"block_position":"90-4"},{"bbox":[88,158,195,169],"type":"text","angle":0,"index":5,"text":":q! 用于不存盘退出 Vi ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"402737f0-b27f-4ced-abca-fd8359ee2b74","page_size":[595,841],"block_position":"90-5"},{"bbox":[88,173,244,185],"type":"text","angle":0,"index":6,"text":":q 用于直接退出Vi （未做修改） ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"23eb1e24-64fb-4034-aeed-867ffefdc5c2","page_size":[595,841],"block_position":"90-6"},{"bbox":[88,188,144,200],"type":"text","angle":0,"index":7,"text":"设置vi环境 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"6d762c46-13cd-4d56-b86e-3dbaa46be3ce","page_size":[595,841],"block_position":"90-7"},{"bbox":[88,204,177,216],"type":"text","angle":0,"index":8,"text":"配置文件 ~/.vimrc ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"84e9ea38-5203-4f9a-b2f5-e62d6c7ac4d8","page_size":[595,841],"block_position":"90-8"},{"bbox":[88,220,205,231],"type":"text","angle":0,"index":9,"text":":set 显示设置的所有选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"1552b67a-1bea-44d4-aac5-5e94f2aae87c","page_size":[595,841],"block_position":"90-9"},{"bbox":[88,235,239,247],"type":"text","angle":0,"index":10,"text":":set all 显示所有可以设置的选项 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"a2cced9e-0f69-47bd-82d5-274f05203b73","page_size":[595,841],"block_position":"90-10"},{"bbox":[88,266,277,278],"type":"text","angle":0,"index":11,"text":":set autoindent 缩进,常用于程序的编写 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"9d2d94c3-1515-4ef9-bfc9-05db44a68032","page_size":[595,841],"block_position":"90-11"},{"bbox":[88,282,222,294],"type":"text","angle":0,"index":12,"text":":set noautoindent 取消缩进 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"64ab41ed-46b7-4357-93e4-0f01ef7e4cd3","page_size":[595,841],"block_position":"90-12"},{"bbox":[88,312,368,325],"type":"text","angle":0,"index":13,"text":"显示隐藏行号 :set number/nonumber 简化:set nu/nonu ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"55b7862d-4adb-4a4f-8dee-3bbbe0b1087e","page_size":[595,841],"block_position":"90-13"},{"bbox":[88,328,274,340],"type":"text","angle":0,"index":14,"text":"设置 $> >$ 和 $< <$ 缩进数量 :set shiftwidth $^ { = 4 }$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"b29876c9-07c5-49f1-847b-e2959e1d2e4a","page_size":[595,841],"block_position":"90-14"},{"bbox":[88,344,236,356],"type":"text","angle":0,"index":15,"text":"状态栏标尺 :set ruler/noruler ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"749a7c3f-f5b4-4da4-8213-7f6a8aa16a00","page_size":[595,841],"block_position":"90-15"},{"bbox":[88,360,270,371],"type":"text","angle":0,"index":16,"text":"自动保存 :set autowrite/noautowrite ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"c1579a7a-0803-4d69-ba1a-f7dbb1b430a6","page_size":[595,841],"block_position":"90-16"},{"bbox":[88,375,285,387],"type":"text","angle":0,"index":17,"text":"指示当前行 :set cursorline/nocursorline ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"5f30ebfc-02f2-40fe-abc1-93b4b279e404","page_size":[595,841],"block_position":"90-17"},{"bbox":[88,391,304,403],"type":"text","angle":0,"index":18,"text":"语法高亮 :set syntax $\\mathtt { . } { } = \\mathtt { o n }$ 或 :syntax on/off ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"a5814951-46e9-40c2-9105-80e4423f9302","page_size":[595,841],"block_position":"90-18"},{"bbox":[88,407,207,418],"type":"text","angle":0,"index":19,"text":"Tab 宽度 :set tabstop $^ { - 4 }$ ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"49a0f787-68c2-4f4b-ad05-fa9398b9f3a1","page_size":[595,841],"block_position":"90-19"},{"bbox":[88,423,132,433],"type":"text","angle":0,"index":20,"text":"配色方案 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"dcebf8fb-a4e4-4efa-b004-e533b10ad560","page_size":[595,841],"block_position":"90-20"},{"bbox":[88,438,278,449],"type":"text","angle":0,"index":21,"text":":colorscheme #显示当前配色方案名称 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"ba9f3ac8-da47-48ec-873e-04094b8c2cab","page_size":[595,841],"block_position":"90-21"},{"bbox":[88,454,285,465],"type":"text","angle":0,"index":22,"text":":colorscheme 方案名称 #设置配置方案 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"2d5ad55f-22ba-4bd8-9930-c89d8813198f","page_size":[595,841],"block_position":"90-22"},{"bbox":[88,469,234,482],"type":"text","angle":0,"index":23,"text":"例： :colorscheme murphy ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"91173482-4819-486b-82e5-6b4268992989","page_size":[595,841],"block_position":"90-23"},{"bbox":[95,485,312,497],"type":"text","angle":0,"index":24,"text":"配色方案位置：/usr/share/vim/vim74/colors ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"5f95e731-2626-4a27-b4f4-6c83a9d9fcfb","page_size":[595,841],"block_position":"90-24"},{"bbox":[88,501,131,512],"type":"text","angle":0,"index":25,"text":"vim插件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"f01849d7-b82a-4ff9-a6c5-8d579ef53e72","page_size":[595,841],"block_position":"90-25"},{"bbox":[88,516,205,527],"type":"text","angle":0,"index":26,"text":"插件目录 ~/.vim/bundle ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"43deb775-709a-47cb-8cc1-0af73014c704","page_size":[595,841],"block_position":"90-26"},{"bbox":[88,532,255,543],"type":"text","angle":0,"index":27,"text":"Vundle 插件管理器——vim bundle ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"c4024596-2a65-4789-8155-4ed1b428ec91","page_size":[595,841],"block_position":"90-27"},{"bbox":[88,547,288,560],"type":"text","angle":0,"index":28,"text":"在 github 上下载到 ~/.vim/bundle 目录中 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"fa1e381f-437d-4958-9d12-cff3735fbf08","page_size":[595,841],"block_position":"90-28"},{"bbox":[88,563,359,576],"type":"text","angle":0,"index":29,"text":"git clone https://github.com/VundleVim/Vundle.vim.git ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"a1fa3237-7da6-477c-8bbd-1baeaab377ee","page_size":[595,841],"block_position":"90-29"},{"bbox":[88,578,164,590],"type":"text","angle":0,"index":30,"text":"修改.vimrc 文件 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"d39cd842-5b36-4681-9161-6296fdf965b9","page_size":[595,841],"block_position":"90-30"},{"bbox":[88,593,154,606],"type":"text","angle":0,"index":31,"text":":PluginInstall ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"283b5ee1-f29a-4e5a-aaf4-1a22429d9853","page_size":[595,841],"block_position":"90-31"},{"bbox":[88,640,132,652],"type":"title","angle":0,"index":32,"text":"# 应用管理","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":90,"id":"9a22b631-04df-4b3a-a0f6-ebdd3ddbbd1b","page_size":[595,841],"block_position":"90-32"},{"bbox":[88,655,205,667],"type":"text","angle":0,"index":33,"text":"浏览WEB网页的过程为： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"068a1ad7-553b-4c2f-b8d4-d4e81c04f5c2","page_size":[595,841],"block_position":"90-33"},{"bbox":[88,671,284,683],"type":"text","angle":0,"index":34,"text":"服务器端开启 WEB 服务始终侦听 80 端口； ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"99b4fca0-6eb9-491f-ad60-071728ccd513","page_size":[595,841],"block_position":"90-34"},{"bbox":[88,687,498,714],"type":"text","angle":0,"index":35,"text":"客户端主机根据本地设置的DNS服务器，首先查询网址的IP地址，查到网站服务器的IP 地址后，向其发送浏览网页的申请； ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"83fd39ce-be4b-4d71-92f4-a7dd9d0f3e9e","page_size":[595,841],"block_position":"90-35"},{"bbox":[88,718,502,745],"type":"text","angle":0,"index":36,"text":"当服务器收到浏览网页的申请时，WEB服务分配一个进程负责对这个申请进行应答，同时 继续侦听80端口，准备处理其他的申请； ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"6c34a897-2587-442b-a949-328d092e7df1","page_size":[595,841],"block_position":"90-36"},{"bbox":[88,749,498,761],"type":"text","angle":0,"index":37,"text":"根据申请的要求，WEB服务到网页所保存的目录中去查找需要浏览的内容，由WEB服务 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":90,"id":"fe748a0f-a26c-40a2-8c1f-79e09345bfdc","page_size":[595,841],"block_position":"90-37"}],[{"bbox":[86,79,189,91],"type":"text","angle":0,"index":0,"text":"将内容发送给客户端。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"34927772-7e4d-43ca-a7ed-bdf28063e070","page_size":[595,841],"block_position":"91-0"},{"bbox":[86,95,498,137],"type":"text","angle":0,"index":1,"text":"APACHE是被广泛应用的Web服务器。对于Linux用户来说，也是最容易使用的Web服 务器，如果仅仅是想用APACHE提供基本的Web页面服务，可能根本不需要调整任何配 置。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"f72d9f23-4d04-46e4-a9b2-9625025fb7fb","page_size":[595,841],"block_position":"91-1"},{"bbox":[87,141,126,153],"type":"text","angle":0,"index":2,"text":"LANMP ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"a3f6a802-5b3d-4ffb-95c3-dc145c8c8ad5","page_size":[595,841],"block_position":"91-2"},{"bbox":[87,157,261,170],"type":"text","angle":0,"index":3,"text":"Linux+Nginx+Apache+MySQL+PHP ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"e0932da9-f05d-401f-ba60-e157ca656c11","page_size":[595,841],"block_position":"91-3"},{"bbox":[88,173,119,184],"type":"text","angle":0,"index":4,"text":"LAMP ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"9569d4d0-3b08-414c-aa37-862e599da0ef","page_size":[595,841],"block_position":"91-4"},{"bbox":[88,188,218,200],"type":"text","angle":0,"index":5,"text":"Linux+Nginx+MySQL+PHP ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"a1b35b78-e930-4b1d-8f92-b1917634c56c","page_size":[595,841],"block_position":"91-5"},{"bbox":[88,204,120,215],"type":"text","angle":0,"index":6,"text":"LNMP ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"8693fa93-8ea4-439b-829e-f38d841e2bcf","page_size":[595,841],"block_position":"91-6"},{"bbox":[88,219,226,232],"type":"text","angle":0,"index":7,"text":"Linux+Apache+MySQL+PHP ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"96f91a69-12cd-4c70-82c6-a483ed0a285c","page_size":[595,841],"block_position":"91-7"},{"bbox":[88,233,383,377],"index":8,"angle":0,"type":"image","img_path":"/7d7c1d208f59f8dd23a73e63addb2f7ed07553479e8366087eb1b6168fca6240.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.4957983193277311,"page_idx":91,"id":"b3971498-cec2-4186-acc6-7f50a82627bf","page_size":[595,841],"block_position":"91-8"},{"bbox":[86,406,292,419],"type":"text","angle":0,"index":9,"text":"安装好 Apache 服务后，不用配置就可启动。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"b1acafd7-c738-47cf-911a-54176c93b28a","page_size":[595,841],"block_position":"91-9"},{"bbox":[86,422,498,450],"type":"text","angle":0,"index":10,"text":"启动后在客户端浏览器地址栏输入 apache 服务器的 IP 地址，检查是否可以看到 Apache 的测试页，如果能看到说明安装是成功的。如IP地址为127.0.0.1，测试页如图所示。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"a70d4c90-e684-4fd3-bbb3-39b248b3a9fc","page_size":[595,841],"block_position":"91-10"},{"bbox":[87,453,434,466],"type":"text","angle":0,"index":11,"text":"或者直接在 apache 服务器主机的浏览器地址栏输入“localhost”进行测试。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"b4e07872-f324-4856-8b96-6bd53ec8e82a","page_size":[595,841],"block_position":"91-11"},{"bbox":[88,469,151,481],"type":"text","angle":0,"index":12,"text":"模块 Module ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"8b3a7fda-66b6-40ea-921f-2a8a3b6f8ddd","page_size":[595,841],"block_position":"91-12"},{"bbox":[88,484,190,497],"type":"text","angle":0,"index":13,"text":"apache支持模块支持 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"15a8077a-ceb2-43cd-938a-154f37405efd","page_size":[595,841],"block_position":"91-13"},{"bbox":[88,500,268,512],"type":"text","angle":0,"index":14,"text":"在服务器核心中只包含了最基本的功能 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"92f57360-3445-4325-b69b-152b2411a5c4","page_size":[595,841],"block_position":"91-14"},{"bbox":[88,515,293,528],"type":"text","angle":0,"index":15,"text":"扩展的功能可以模块的形式加载到服务器中。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"a18d63cf-d271-4a19-b8f0-add6f202f2e4","page_size":[595,841],"block_position":"91-15"},{"bbox":[88,531,152,542],"type":"text","angle":0,"index":16,"text":"LoadModule ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"238259fe-ccc9-479a-a472-27991ddc8203","page_size":[595,841],"block_position":"91-16"},{"bbox":[88,546,240,559],"type":"text","angle":0,"index":17,"text":"查看已编译进去了哪些基本模块， ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"4694ac80-3ca2-4cf1-a5d3-e532237f557d","page_size":[595,841],"block_position":"91-17"},{"bbox":[88,563,150,575],"type":"text","angle":0,"index":18,"text":"#apachectl - ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":91,"id":"8da829ca-9489-46ac-a319-443e064ea71a","page_size":[595,841],"block_position":"91-18"}],[{"bbox":[88,79,182,92],"type":"header","angle":0,"index":-99999,"text":"#/usr/sbin/httpd -l ","color":{"line":"rgba(164, 164, 164, 1)","fill":"rgba(164, 164, 164, 1)"},"page_idx":92,"is_discarded":true,"id":"e5edd1bb-bdbc-452b-ab9b-8a39f96288d8","page_size":[595,841],"block_position":"92-0"},{"bbox":[93,118,276,149],"type":"title","angle":0,"index":1,"text":"# 容器Container","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"level":1,"page_idx":92,"id":"ea190b37-a783-4ec5-85de-b0288b99b591","page_size":[595,841],"block_position":"92-1"},{"bbox":[93,174,338,190],"type":"text","angle":0,"index":2,"text":"· 成对出现，如<IfDefine>和</IfDefine>; ","id":"126780b7-4ac6-4243-9a92-ec7624f5a5da","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-2"},{"bbox":[93,193,506,210],"type":"text","angle":0,"index":3,"text":"·指令放在容器中，限制了其使用范围。所处容器不同，指令适用范围也不同 ","id":"51fa9fe4-2c0e-427d-b42f-8fdff09432a0","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-3"},{"bbox":[94,212,348,228],"type":"text","angle":0,"index":4,"text":"·第1类，If开头。当满足条件时，才执行指令。 ","id":"d7eed5d0-ba1b-4335-a4f5-b22d855e9c52","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-4"},{"bbox":[117,232,201,243],"type":"text","angle":0,"index":6,"text":"<lfVersion >= 2.1> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"21b49be7-4eb9-4040-b43a-5a5e5bd7919c","page_size":[595,841],"block_position":"92-5"},{"bbox":[136,243,326,254],"type":"text","angle":0,"index":7,"text":"#this happens only in versions greater or ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"2521ba64-55c3-4936-bbea-329b29146ee1","page_size":[595,841],"block_position":"92-6"},{"bbox":[136,254,200,264],"type":"text","angle":0,"index":8,"text":"# equal 2.1.0. ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"e64dac8e-dd84-420c-88bb-40825cb53510","page_size":[595,841],"block_position":"92-7"},{"bbox":[117,264,176,275],"type":"text","angle":0,"index":9,"text":"</IfVersion> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"96f1d6c1-153b-4a0e-84bf-630adb5e3312","page_size":[595,841],"block_position":"92-8"},{"bbox":[93,291,507,307],"type":"text","angle":0,"index":10,"text":"·第2类，应用于filesystem/webspace。指令应用于指定的文件系统或URL ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"52d15b0c-1594-4275-82b3-dd1a7d819651","page_size":[595,841],"block_position":"92-9"},{"bbox":[510,132,574,143],"type":"text","angle":0,"index":11,"text":"□<lfDefine> ","id":"2421adda-1afb-401e-b900-fda35138f053","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-10"},{"bbox":[510,146,578,158],"type":"text","angle":0,"index":12,"text":"□<lfModule> ","id":"b318e9a0-bb06-4d52-927c-3a9c75414e90","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-11"},{"bbox":[510,161,580,174],"type":"text","angle":0,"index":13,"text":"□<lfVersion> ","id":"83ce47d3-3402-469c-9c03-136be27c8c37","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-12"},{"bbox":[510,175,581,189],"type":"text","angle":0,"index":14,"text":"-<Directory> ","id":"9b3d661a-6a20-45a5-8720-9f8d7277bbb3","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-13"},{"bbox":[510,190,593,203],"type":"text","angle":0,"index":15,"text":"□<DirectoryMat ","id":"373870cf-942b-4344-87bc-9186383eb089","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-14"},{"bbox":[510,205,558,216],"type":"text","angle":0,"index":16,"text":"□<Files> ","id":"c3964b0f-d641-474e-8b9a-c5057811eea8","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-15"},{"bbox":[510,219,592,231],"type":"text","angle":0,"index":17,"text":"□<FilesMatch: ","id":"c2ffea79-3662-4334-b4ac-66bd8e12b21e","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-16"},{"bbox":[510,234,578,246],"type":"text","angle":0,"index":18,"text":"o<Location> ","id":"dbd45215-3567-4173-abfe-b266745933d4","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-17"},{"bbox":[510,248,593,261],"type":"text","angle":0,"index":19,"text":"□<LocationMatc ","id":"5b9e1f4e-577f-4beb-b54e-f0bb79ec0dec","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-18"},{"bbox":[510,264,564,277],"type":"text","angle":0,"index":20,"text":"□<Proxy> ","id":"23a307a2-05bc-45b1-bfdf-cb65fd5305fb","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-19"},{"bbox":[510,278,593,290],"type":"text","angle":0,"index":21,"text":"o<ProxyMatch: ","id":"b11b2e2e-4159-4e3a-a64d-21e42dfd73a2","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-20"},{"bbox":[510,291,592,304],"type":"text","angle":0,"index":22,"text":"-<VirtualHost> ","id":"58c48f18-4560-4c64-876b-fa0b5d7b9575","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"page_size":[595,841],"block_position":"92-21"},{"bbox":[117,322,240,333],"type":"text","angle":0,"index":24,"text":"<Directory /var/web/dir1> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"9a86aeac-3fcb-4d87-a647-dd09efcaa662","page_size":[595,841],"block_position":"92-22"},{"bbox":[119,333,201,343],"type":"text","angle":0,"index":25,"text":"Options +Indexes ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"2562d269-1a95-4dfb-b9c2-32901cc6f72d","page_size":[595,841],"block_position":"92-23"},{"bbox":[119,343,180,355],"type":"text","angle":0,"index":26,"text":"</Directory > ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"03acfcb7-9dfe-4101-bcc0-e869b01047b1","page_size":[595,841],"block_position":"92-24"},{"bbox":[268,322,359,333],"type":"text","angle":0,"index":27,"text":"<Files private.html> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"182a5eb4-786d-4af4-bfee-2f8392548596","page_size":[595,841],"block_position":"92-25"},{"bbox":[268,333,352,344],"type":"text","angle":0,"index":28,"text":"Order allow,deny ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"cc361f2f-7c54-474f-9564-8c973325238b","page_size":[595,841],"block_position":"92-26"},{"bbox":[268,344,334,355],"type":"text","angle":0,"index":29,"text":"Deny from all ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"590a7c7b-0782-4f4e-b4e8-fc7a99f2db27","page_size":[595,841],"block_position":"92-27"},{"bbox":[265,355,302,364],"type":"text","angle":0,"index":30,"text":"</Files> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"e5bbafc0-1d33-461c-a93f-0435ec4208fc","page_size":[595,841],"block_position":"92-28"},{"bbox":[402,321,524,333],"type":"text","angle":0,"index":31,"text":"<Directory /var/web/dir1> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"c3bd87cb-12e1-4772-91ff-3573523d15aa","page_size":[595,841],"block_position":"92-29"},{"bbox":[411,333,500,343],"type":"text","angle":0,"index":32,"text":"<Files private.html> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"a99542bb-bf2d-438a-943e-7c32faba6cd1","page_size":[595,841],"block_position":"92-30"},{"bbox":[415,343,496,354],"type":"text","angle":0,"index":33,"text":"Order allow,deny ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"97a838d2-9bee-4724-aa6c-dee7d78bb000","page_size":[595,841],"block_position":"92-31"},{"bbox":[415,355,477,364],"type":"text","angle":0,"index":34,"text":"Deny from all ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"2fc1b668-b0ce-4271-8131-b5fb7ef7f59f","page_size":[595,841],"block_position":"92-32"},{"bbox":[108,390,458,404],"type":"text","angle":0,"index":35,"text":"虚拟主机概念：在同一台主机上，使用不同的配置文件，来配置不同的站点 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":92,"id":"24e8a8b6-7c8a-4831-8f98-00140b69b407","page_size":[595,841],"block_position":"92-33"},{"bbox":[89,411,318,661],"index":36,"angle":0,"type":"image","img_path":"/04ad62d5c5b02cc4a4abe906d01271ba945e3306a7b217373d42361c6455d494.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.38487394957983195,"page_idx":92,"id":"fa9150f3-ab86-485a-9767-55f628787bb0","page_size":[595,841],"block_position":"92-34"}],[{"bbox":[88,79,142,93],"index":0,"angle":0,"type":"image_caption","text":"代理 Proxy","id":"00731c5e-49fc-4ba3-8301-803b67b36aac","color":{"line":"rgba(13, 83, 222 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"page_size":[595,841],"block_position":"93-0"},{"bbox":[91,100,436,303],"index":1,"angle":0,"type":"image","img_path":"/5b6b661017cc61fb721a1dbcd76bef24159f724cf65da5a4c303c1a6b79dc03e.jpg","color":{"line":"rgba(89, 92, 220, 1)","fill":"rgba(89, 92, 220, 1)"},"img_ratio":0.5798319327731093,"page_idx":93,"id":"595cabea-1dbe-41f9-acb4-6a33d666e0d5","page_size":[595,841],"block_position":"93-1"},{"bbox":[86,343,440,373],"type":"text","angle":0,"index":2,"text":"为了限制指令的有效范围，可使用<Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch> , <VirtualHost>等。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"e8b09631-40f7-460c-9d7e-891ecfc69b87","page_size":[595,841],"block_position":"93-2"},{"bbox":[87,375,232,387],"type":"text","angle":0,"index":3,"text":"指令的有效范围分为几种类型： ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"ba5413ab-6d32-4d8d-a9f3-ea007d6aa9a0","page_size":[595,841],"block_position":"93-3"},{"bbox":[86,391,476,417],"type":"text","angle":0,"index":4,"text":"server config：用于配置文件 httpd.conf ，不用于<VirtualHost> <Directory> 及文 件.htaccess。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"f5203dd3-cecd-4084-b6e5-63756eeea16c","page_size":[595,841],"block_position":"93-4"},{"bbox":[87,423,224,434],"type":"text","angle":0,"index":5,"text":"virtual host：<VirtualHost> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"d7c2f9ae-8b05-4580-8a7b-adbc7cd9bfd6","page_size":[595,841],"block_position":"93-5"},{"bbox":[87,438,367,451],"type":"text","angle":0,"index":6,"text":"directory：<Directory>, <Location>, <Files>, and <Proxy> ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"7c6e69d3-b513-4b2f-88f5-5679080d7c46","page_size":[595,841],"block_position":"93-6"},{"bbox":[86,453,504,513],"type":"text","angle":0,"index":7,"text":".htaccess ：放置在文件.htaccess 中的指令应用范围为该目录（放置.htaccess 文件的目 录）下所有的文件和子目录。.htaccess文件被改变后会立即生效，因为每次请求都会读取 该文件。可进一步控制哪些指令能放置在.htaccess文件中（即哪些指令允许放置 在.htaccess 文件中，并覆盖原来的值），用 AllowOverride 控制。 ","color":{"line":"rgba(13, 83, 222, 1)","fill":"rgba(13, 83, 222, 1)"},"page_idx":93,"id":"a01a776c-d71e-4b3e-870f-3628f0d6ae3c","page_size":[595,841],"block_position":"93-7"}]],"mergeConnections":[{"id":"63048d63-4952-47ac-9387-2fb340ccfbba","blocks":["17-19","18-0"],"type":"merge"},{"id":"821e7313-0b15-4445-ace0-843a50501fd3","blocks":["27-29","28-0"],"type":"merge"},{"id":"11509a10-6a4a-4429-9544-d3b4678b19a1","blocks":["29-21","30-0"],"type":"merge"},{"id":"12fe9bf6-6b9f-4af2-95ca-36f0a870408d","blocks":["33-23","34-0"],"type":"merge"},{"id":"3824aef3-75ac-4219-b446-577ce1bf2cf1","blocks":["34-7","35-0"],"type":"merge"},{"id":"58c971f0-bb19-442b-832f-6f60c1edb541","blocks":["37-30","38-0"],"type":"merge"},{"id":"84b0bba0-8a41-4b00-ba92-770da380114d","blocks":["38-1","39-0"],"type":"merge"},{"id":"8709e16d-fc28-426e-a655-c7fb0d1f023e","blocks":["59-27","60-0"],"type":"merge"}]}