[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-info":3,"card-styles":63,"article-linux-commands-explain":82,"neighbors-linux-commands-explain":109},{"background_url":4,"author_name":5,"github_url":6,"email":7,"site_name":8,"author_avatar":9,"author_tags":10,"social_links":11,"friend_links":12,"about_content":13,"protected_uploads":14,"favicon":15,"signature":16,"mobile_hover_disabled":17,"smtp_user":18,"notify_email":7,"smtp_host":19,"notify_enabled":17,"smtp_port":20,"smtp_pass_set":17,"visible_status_items":21,"status_custom_values":22,"status_card_sides":23,"show_friend_links":17,"about_page_title":24,"friend_links_title":25,"summary_title_color":26,"summary_content_color":27,"custom_font_url":28,"notice_active":29,"notice_content":30,"notice_title":31,"notice_expire":32,"notice_bg_color":33,"notice_btn_text":32,"notice_btn_url":32,"notice_click_count":34,"log_record_page":17,"log_query_location":29,"log_enabled":17,"log_max_records":35,"log_location_cache_threshold":36,"ip_location_apis":37,"log_blocked_ips":38,"log_watched_ips":39,"monitor_enabled":17,"monitor_interval":40,"monitor_memory_threshold":41,"monitor_disk_threshold":41,"footer_text":42,"pan_notify_enabled":17,"license_api_key":43,"mobile_tab_menus":44,"show_footer":17,"article_content_color":32,"article_inline_code_color":45,"protected_folders":46,"about_show_resume":17,"about_show_content1":29,"about_content_title":47,"about_page_content_title":48,"about_page_content":49,"captcha_params":50,"log_retention_days":51,"security_my_ips":52,"security_params":53,"font_backend_enabled":29,"moment_templates":54,"about_content_weight":55,"security_fail_counts":56,"monitor_cpu_threshold":51,"monitor_service_check":17,"monitor_alerts":57,"comment_throttle_params":58,"nav_menus":59,"comment_notify_enabled":17,"login_failure_notify_enabled":17,"new_device_notify_enabled":17,"alert_failure_threshold":60,"alert_cooldown_minutes":61,"pan_notify_min_size_mb":62,"comment_notify_pending_only":17,"font_frontend_enabled":17},"\u002Fuploads\u002Fbed\u002Fbackground\u002Fb666b21659cc477daea62833a78c841f.jpeg","Leap","111","vue2@qq.com","leap日志","data:image\u002Fpng;base64,UklGRswXAABXRUJQVlA4IMAXAABw\u002FQCdASpYAlgCPpFInUslq6+spVM5QfASCWdu\u002FADZos5pBcI8ObypUEg27P288x0\u002Flw18mvr3mW77yzOtvWym1EyDjkIGQZCAorHIQMgyEBRWOQgZBkICischAyDIQFFY5CBkGQgKKxyEDIMhAUVjkIGQZCAorHIQMgyEBRWOQgW5HTDvbqP2co2l63DIMhAUVjkIGQZCAorE+tTDsa7H7CYW\u002F\u002F5sqPlbt3UDQ4H6\u002FgpnuiWanwNfRAvHWKRZwE1+VFY5CBkGQgKKxyD\u002FC6OE7\u002FvCaQazeX\u002Fm8IaTbC0fjeELKrzq8N87yrQaqQaoq532T2wBAyDIQFFY5CBkGKOGIU+bn86NBiV0jyb6vVwwIKKjkjg\u002FzdtKNqE7EyxyEDIMhAUVjkGPzAfqQs07tVN5ExoTFAF+NyuZ7mM9+fm1MOyorHIQMgmAuFvHW4\u002FbiryQD\u002FhxFNbEqAL7UbLAVCgGeMqIdY3KrxcNvF\u002F3y4HEfo6\u002FFNT\u002FRY1MOyorHIQMd6OIx0wftiov9cCFGrPi8tA9Q31jicwmQa\u002FhbfbkYxYpsZYxwCCJvVcc24806eXBObJ5LREnFj9tq6braiEDIMhAUVjkGPP2lNE4frv5PHSdyxKT7MsS7sA+rNL7cbKlkPE3vYm61Jwm4ZaH1ZZU5gJ8re+vcgyEBRWOQcNRVlQoMTyhTQveG4fKYlQQqou4yv3r+q7OxqC3KLKuYFAWouIGG6CSf2y2hX0kPMsGQgKKxyDR4sBms4BvpSy08mtskgE4ThoHAwuhMxDL6s8oCEkwv7zkLt1nvoO3dlnIA2sZ9T4KxyEBOwp6x6u5VWjkp0J5G8SDqPwuhvUHCQiBcyRFFF7wIFlNI9yDiBB9+ufRivcO2R\u002FfDczWwSCXOBWph2VFY4GTiaCs9kiE\u002FHib\u002Fte9GTD2rfRVQnP\u002FKWZUeVK5x4RMVL7lcnzaJGaNmZ2p0IgaGgbeBZpG0zPwVjkIGQYcHw2zChQPgRrw4MokVa6HioUipR1rWgzyysakFdcLT\u002FnYooYAW6fq+QrZau6XjkIGQZB3kar+i63J1sEb95Bgk6eVlhMieK61tD4SWOKwQXEnuD88u5GujCZEYK+KbKEZ8mqF4DniU6+lVF8pBS8QP+pVCusg9bTnDIMhATHE\u002FH620zvswAHhRP55dUHmFliXbsepwkja7BmpjtwhvxvvEpjd2pJagIarsi2Jc\u002FLE7sHvLYG3A+iNUahvQVjkIGQYo7R5EQTo+qqyqZ8Kx\u002F8aOyIoD+uxVwxcjf5POOgTaC1LMH8s\u002FlEu0oFQDpCreLM0UL5wExmOboSfgSjcUJc\u002F3XyuHAxQFFY5CBjiVHiLFhvEdh\u002FP53xYvztfZ1Uj1tS\u002FE1kHSqpIyG4HyYfYlQr2RBmGuKn8FEIG9SsPG0YqDnKkdaQqzyS1DZjkIGQZCAmPsdfOZm19JVpbf\u002FHl8iAfS3O5\u002FF1CbpeEy4y4e1FgSxbjx\u002F1Ezw4umRNnh9ltVN6yQoTb+pNFI6cplQxjIdvOwj2lCInU+CschAx1SdFoexRiT9nuqxPrtrEG9igqDFLAeu3V4MS3+X358HmjsWlh0eZX+QJSJW+2QgKKxyEDIIHHJhOhHYZim5BYw\u002FVPtaLQRtlCb8ZqHWIVZircwug8LdTsnit\u002FQhEbir1uGQZCAorHJHSVYiCJ3b3vbWMpFHF5MTeX7G5yPu0XZ2X8UqCABkYjpoYkbhkGQgKKxyEC3cHsDjYwvBzhEFPdxGpjsgi80jtMHvlWkudvNfRIht3+AtvEs9efj0S9K1Q3f0P37MSo5xMX\u002F\u002F2uNXLU2YUgyEBRWOQgZBkICWH\u002F8saTZgcWp4gvFj8foBsmXnIIyo+DpoxyYvcIQsLA3BPQPZpWBOUM+rU+RZHJsSW7EdvCMgyEBRWOQgZBkICZemM7oODg3V+Fqr0Stxnn4yd9IKGOZSFVlSAwBIavoFb9Qv1QxFJ7zpsyA+kCtDh2sms8hAyDIQFFY5CBkGHCWBKkix9foKkSzH7R5FCdGOwjyiEW\u002FqQ\u002FlMXGPI2ps3DDaCjQvcvxIUgfcBFSrUw7KischAyDIOt6suP0o5QuAycj+xdSKETBlD8MKo5aH9Y2LT5Mua+fQ75bIEqPfhvOOu8VZpHUBYdGrngAeEMPwKM6eyW1MOyorHIQMgyDspnyqRykvd\u002FkcxBQsxVWgNmZhaux7M4p03nBH0E4jp+cF3ariW1cOsSj7rAYX2\u002FySqimq7OPHevICj4lzvofUf1FIQMgyEBRWOQgY4+SQ1CIXdYAK75jUIuq+v0xs3koWYHdk\u002FuqB59oxU\u002FXAAuO\u002FvbJepLcl79MfYQrLEMZ0n5kICischAyDIQEuljA1neO6vC7LpxWVBrebNu4qeGOaWyRiwLq7kx+QSPzjCDi+6H5Bm99OnafjVWph2VFY5CBkFlKSEnXsFpn0CbpO\u002FUYtojRl7dtDmVhTkJBBKo4xnOciP1fOZ62pU+ZBsL8peOuS9VjkIGQZCAorHIQMgjTo0yPPF4STLevY7joI+qNBuDthmplDgVXH4zH0y4V9IN6IX5CdKtTDsqKxyEDIMhAUV7nJ0hfA7QGmnsDgIZpKthgLH2yQoSCFw5zs4ALFcQHZqwpuZAeA+p8FY5CBkGQgKKxyEC3jP3b2+JIT2gGxnF3QiLkIGQZCAorHIQMgyEBRWOQgZBkICischAyDIQFFY5CBkGQgKKxyEDIMhASwAD+\u002F26YAAAAAAAAAAAAAABvtmztoRm3doU0FREFcxfGQDfyTZrARfDLIM56ckAuwAAAeRQzpXEORa1U8ZSbgIeSwwTSxnSPgwGxxzXe2bN8JxHfoDVf4Nn1KNVBLFpS5XvAPe6eT663F461uopKosssvGQ2itcpxZKI0eRTXXtsAMCbP0DpilTSgte3Z24WETY\u002F6sTDeXJ7pwjIEObU\u002FAHZzxoMQfbx2p3+r3gH1gJul0uDXGAB\u002FAAAOKBrhLqlNMNk0LW0w9KIVOUhwx\u002F9zbIDvh9eEG2XAr\u002FKoA0BqP9mSQFvTH4neiAy7\u002FipYZQ2Vlq5+yPI59+Kgnhl6MYvzoSmUGRCGAFWtf2w1BMnLmLB0YHr589IfpH88Ik3fX\u002FocoAGfoggAC717Zd1TMI9LeRpLmxYzl9\u002FRy90g65wCClUD86NJYxaPZX4qp6\u002Fn03zYGcy5YsvXX6eiT\u002F8eJiz9lf7pRNbjnovWQr8Pxjx602d1XPbHS0ABPTNcrXPqkQp9WYmxcurlYATz2n9brSZc9Zw0PwbgM4dfHpUOoeB3ZWT1clpdQrJE9QEnhyzb9RLJbKGSQVCUMTIXzcUebUj4L9MjUgJ+1AAJeN\u002Flb1IiHrmVxKy9xKrwup5rB13J+f9Q7I5X\u002FW698V3UxFnoLUsTnwNyYApx+ieLx5xBg+jTegpgRuvpiOaUAAi65qi\u002Fk9zKjoJe9NB\u002FsmaUGS4PW39fUlMb7XcI5N2ZfKsIeIB+BWVIwQfNeIctN6Psud1zbCnM8ZgFsftjpHGsowdBv3MB8d9OgUWF1ADAvhfYgyclEF6D2BZ+PH6ftHdSJSsjEAHq5ZQlmhhLM2WRj1SuQA16orz79eA6kav07C5oTteUje\u002FAk0GRSdy6WEsbF9we0Mr6lDZoX3S8x9jsdSxVqWLannqH6HmoX9DCUygn2TEVCZUyPqvlhboEp6c9QqGo+WeBl9xZsZYd09Hnsts7109ziooijy5uPhpTehw\u002FwFhyt03MA47ZW9p80VKiaDoNTmAECRXOx\u002FLCnVV\u002FqtxgfXfJ6S3j5v9v+mrY8AQwYxshWsqU8O79we8daDCUrnpKJ7igo6wuecnyNNSUW68bEqfltDF7pR9C0BPdlod3cdSYzFLPbknfB2P+KvojiC5mh6XKaK6Sb5qi0Y6hmLYwLBC1lLMQu0NArwuluyUgFeZE3jSmJz0eDl4KGKyjHmXeq\u002FI8DiQSr1Kl0t9dyQZxIANfoNKkBFsAAWIbLODYTlWXTZeBsNAc91rBpx\u002F4GoW2+aCKhNjeFmrVLx8cOE5V1tLBTzrIsHwqcxixMShrfW4iPsAtOpx8\u002FbYVCwvg\u002FAZTvQz\u002FqaQDJK8SAE6QYtXUYUQijph81WKinKOmjacyF9gdXXGJTPbE7L+Jvm6c+7qz+GA9nqaRAAHM6pVyBsaNDHVASJFFKAUmJGS\u002F\u002F04zDDNTmeE0Z9Ymy+X21Hqj85ihlCIVaP708ytZbvxHH9Kp6MHiz7oExafZB90vQPVP+i5xiTiDQaVxjQnq3wPyMof2XxxZAj3FpK927R2ZC6PpH8TSf\u002FcD4RAXjhDrNm\u002FiPHHO0RlziiTo6tmtlsn3MMQ7AYMCwvP8VLdQWPCumnmxKKAENm\u002FLjh7Cc8d1bN\u002FoLHFDG5nGLqj43yySROOVaEhOMwTO63psccuOD\u002Fv8yIYx\u002FrOIV7UPSxJt1scr\u002Fqpj75WGpsTN0aoIvWdhGEQ3K1TekhEfvc4ZJnGgqKVhirX\u002FFyIWbZ9MEvvYLFJN31JmST7UoXeYjEfPNkD0EpZ\u002F8dSwtraF2ZDabNIctOHpNqbtnXQWqkqTjxtEa0SMYYBP+yjx5YW7cyvGBeJGLWsJw+qZ9TWteOqdNQ1ZxVAheDI+FmwwAVuDb4I\u002FE+Cde4KlrywMi9KH\u002Fxd2l5jjhBEWR5PMiqgNUDv5DiGDAD7aB7puFQiShzUKoag+NdN82pV3\u002FIb\u002FRXecrAcWYTdZYBFeCVyN11DVGc9U6eNPoQzw4Bj2PhtbZ5YP\u002Fp4YuCG\u002FpdJxav3XiyUAO2WqyLP414lNAFMYbdq5wbipXvXNSva7EwEZNURcylLnsB91HOm3+3WhUD9aCJrAKNjzl3pq46Ar8aWJFdzvzzmHXNDGq3Dm99IDMJ\u002FB\u002FOEHH6agR4d4hleRoAzNnhTewOgk\u002FkS8vWkX2RmOXemCMLWd6WaMoT+IDJHdgbh7OpjM3Mvh7UsjgMow2SXUQsN5+UpHRvc+nrPtKaE76JW\u002FRnY1o9q7XNvZmg3gTMwWvmh87gVOHnjninIbjch4D0TMVrgtbqZb959RVMkjpcbbe9py4o+0HIf9YAAW2+L0qH5SdwNdkOOq7l8uecDY7SfCtYCOZXyutUqHbn2T7tcciuHuadc7u4Q3ejeVqgKuJOY8IM1Y+ASFyrxjHpzppyeCPFVnzYKrHeAtGjjLNfZMXD8uvnT7AS5v\u002FzTt93NyVra3SUfia\u002FLewRJ2PQfIvhPDjc4t3nwimKJzb+jlKf08JMt1Dj4owu14o\u002FgPCU0qQ+OqWkcbNMfSRGRCSohyxcRbI5T6GkEx\u002FzbRByngv7\u002FSOSt\u002FNYqlsAESJpyIum\u002Ft7VxeIBVEb7fUpD+iCNENZtws3ZUjMSgt+IhHLac0CosuEtyfSxJ7KivjycSXJ4F0xU9u0y1oZm4FrPmi87wtVzFlKsnfWpOrZWs7BWKyBp5bQ5eoH7xzXMfINfcuPl60OnGS42A8SxL0A5niAl0raZE+srs5\u002FsBqCmSnWZ\u002FkOHd4tubvJRY0nm86JDC\u002FNN0QfHVSt8mPgKO3bR4ojIIYwf34O4nPQAW+sBtWncoxzhFlBbF9e0MZAP+lo5Dscu2IDeABMp6lYXbgfa3XCp6qqGMCygQjEL5M17GJPV1gCyzescBehJzHWQGoSH1X3NN7bNq\u002F58oau2rib0zgLpYa\u002FfFF6gi4JA9fGtiCGl6Th88MHoLNXXE59hHdQBZ3U1Jx\u002FQS9tBL8Gl3T01sLDeSEQCRKPSdMnYQCWaWR2XHTY2EL0X22asymPCKj1AjahWB9PxVJsYPc53qg02lEhrT5tzDs2jfKw4KHuFTBKX6tmoj1GV0\u002FdlVi7djnksSWXk\u002Fnt4ehJF8DOrG669kY18WIGSpVvT8UwP5q44jZ6m58ysEvA3vGoFn948SYc4IEqKe7kLeNrL7EqpM269wr27CqsEKH0gl6rC7iaS6Jk\u002FI4RlX5AABhL7QS8oXVMeeViE2TLgs6afxiTiMMrR4\u002FQnt8gphxssEgcPXr4rzyWmbNei0NMcL3UU1Hr14XiCVOJlipDw4ITaKIFXaaHDsFiy1pNdPJ\u002F8qTHgeuj0CC8M3fLXoRoEOoeFD9PwZ7oVyPuhVCBEf9Cj3k5R9bQtoKzch1SGXQy1J9wSbKGnnSLvGmLvl7\u002FeGLD8vZsBP4ssS0tJJE1SQIL4PAAIGzz+aiPi8x7vO0C0MXdiraRjJcM3YS1sS0PFa0WTI3BtNK8GnLtAPrp7I3GGlok9zE+6Gh9FrQ0CdGCFB8Eoouw5r9EnU4Gw2LoOd9GLJZpgFlaRSEXvMvZwbup0\u002F\u002FLFeNFjMiGal7Kfh6+M\u002FRToHXE9AC3je12\u002FSAf3nuAOt8C4IWMOHzYiVrK377gBGoFxMhJycwgmGCI8UYg67LLgU8WscBUU3pze3d7VX9tI8njwtEU49RFn4E4A1oYQQAR6xbSRmifwInnVGNakQi76gd7PCjNmIKu75r5tSJMyApKjfdO1DuN4L34AAABJdpeZZSISZQ8JjQakY2xE5rjc72g+QRwci6+KsdgFWrpwJQ4bwjRhq2RpMilU4pY+7pxxat13INbLH2BPeMwp3SQWvKqz\u002Ftjjw7OvXN7jILC2gfd2OU33q45ByyYtlgt4yPRAE+Nfsf6j6skj8fzBXpsgvzPd6L45AAApgrxLyDKXVlMgGKpS9gwFUlfK\u002F44XwWmpXyRUib7y5DGSDH58BYT8TB3aXtvPsNUszgY6V1lqqnDGOzLuknTzT8KTADTuz29bw9PTJVNKQUwrNATghqCuPCkGS52YKy67oSMPhOq8b+Z1ZmZ5TYS+wvVbstRzUALYAoxFhtciqYZz033oqM74kUEwlJpGwFAoAA44GUL8hsXeSEPHUFUU\u002FgAvH74eGMcuuae7pxSR2gcfaPbJmHhX79zl+nf5+DvPHo0ARiErzH6VdeC7CBHViZfUtmYrNCMYpr6jKx1bnqcAV7IJTPQw5EHOQUbWgSq\u002Fams5nbgACjqZwKhZTGMBWMAk88wQLJQAANyHAASfWk4S8HGdIG+4a1P0rFZqluTqEzqeRNyNIoMmJEFfmaS0FWS56okrWoRLZDMewHTS+zIeZb\u002Fd2NoxlHz2CGh4U8256BVmuR1z4j\u002FSrGJWUHFxIskjOEqepjyQnV+Z3fAACfoaeCafDLnfslJIM9xMhPIOsNCAarM6rdKgs4+MK+cwraWAtZGSWkSdTOZjN4DptzAfcEUueZRYbGjZ9GouHL\u002FTbAVHVL2WTxdj46BP\u002F6jHqe6R4IAAcoF3QWUv6eXmwoyeLNRH7ZCpVjwPgddtbcYgQRwXLWSQaeeXEB\u002FoboQD27mAP5ZPeZEvWG\u002FYh8XoQtn2jwwInUdIpMyFO2+8UprahC\u002FTIwGEzTwyKPHqhQ5HbHICyF5NXbDxHfGgoIkJdOAAZqAufNAOXLSE32G\u002F5O2uLOm9WToDsxgJfoSksWd3YTw500JqwVHJm59\u002FqF9h1ctL9Ff8BkVlhsrcbDFdGc9LK830ZmO9KRrgqyBKAvbttgi4w1OpQLK6KNNch+AkHaUnbl\u002FN04ACPfNgGuTXji6Khd4tpECcAs65RTOoBsahJAw9CsTXPo1Nr72tMAxkn+ZpGHYod2jdnYVRrJ7fLfzBvQXPPyIqULFjLrwZ3\u002FfVerTgcZcKzaMf39r+79mCgvAAEsCsACRoPc8eyDJA4DLBB0dp6qqIRQTWjF7Td+L3\u002FsYqYfOSA6A0RjBy48iLvTCg\u002FVUaN5P1IczPM3LzjDrLR8WoRDQPecsS2OEB3yR4w+4AAAFmfIA0D7GgK6yZCkm2925Y3o8JzprBBt3MB0EK93tKWPa5oFaowSzU6pRn1AQTXsgOHI1YqtCpRpdiQRrdwFpyHen1bBsM\u002FlgDb42A\u002FjFteZ70bY7edxBHtTRUGQAAAhIYGTS2oXlf6B51vcNiQqjdbNQmVvJYmqf3M4QwgQ3rUuZhFx05eeF\u002F7RJ\u002FadR+SfJOn1wkQqqA9oqV4BtfI8hLFaP6YKgPtbI4o9jt0RIAAABlpzEVzMNVIqnB4rWWLFZxIRQjpt1pmNMDuUFrQLhOjevsbVHYq8VqxXLlkHNWDNVJjyWqmirXfSgr31Ot4OgbEi\u002FmNqH20xGAAAAAr22MrLh7Q1XbMkiUAJ4mFTZBAAAAAAAAAAAAAAA==","[\"时间管理大师\",\"ECS爱好者\",\"Ubuntu\",\"Nginx\",\"systemd\",\"CI-CD\",\"SSH\",\"FastAPI\",\"Docker\",\"Hysteria2\",\"Gunicorn\",\"琐碎内容写多了冗余,不写了\"]","[{\"platform\":\"email\",\"url\":\"vue2@qq.com\"},{\"platform\":\"email\",\"url\":\"toleap0203@gmail.com\"}]","[{\"name\":\"个人工具Mychat\",\"url\":\"https:\u002F\u002Fchat.vue2.xyz\",\"desc\":\"我的Web_ai构建\",\"image\":\"\",\"enabled\":false},{\"name\":\"个人工具Proxy_Control\",\"url\":\"https:\u002F\u002Fchat.vue2.xyz\u002Feaa1c83fbe48\u002F\",\"desc\":\"Proxy控制开关\",\"image\":\"\",\"enabled\":false},{\"name\":\"OpenClaw\",\"url\":\"https:\u002F\u002Fclaw.leap289.xyz\u002Fchat?session=agent%3Amain%3Amain\",\"desc\":\"我的龙虾\",\"image\":\"\",\"enabled\":false},{\"name\":\"Hermes后台\",\"url\":\"https:\u002F\u002Fhms.leap289.xyz\u002Fsessions\",\"desc\":\"QQ端机器人管理\",\"image\":\"\",\"enabled\":false},{\"name\":\"leap的邮箱\",\"url\":\"mailto:vue2@qq.com\",\"desc\":\"leap的邮箱\",\"image\":\"\",\"enabled\":true}]","\u003Cdiv class=\"flex flex-col items-center mb-6 md:mb-8\">\n  \u003C!-- 头像容器：改为3:4竖版比例 -->\n  \u003Cdiv class=\"w-20 md:w-24 aspect-[3\u002F4] rounded-2xl border-2 border-white\u002F50 dark:border-gray-300\u002F30 shadow-2xl bg-white\u002F20 dark:bg-gray-800\u002F20 backdrop-blur-sm overflow-hidden flex items-center justify-center text-3xl md:text-4xl mb-3 md:mb-4\">\n    \u003Cimg src=\"https:\u002F\u002Fvue2.xyz\u002Fuploads\u002Fbed\u002Fdefault\u002Fa1d9c7b8040e40d585e0692142d8cad1.jpg\" class=\"w-full h-full object-cover\">\n  \u003C\u002Fdiv>\n  \u003Ch2 class=\"text-xl md:text-2xl font-bold text-white\">郑成龙\u003C\u002Fh2>\n  \u003Cp class=\"text-xs md:text-sm text-white\u002F70 mt-1 text-center\">运维工程师 | Linux服务器运维 | Docker容器化 | (已按照iPhone14Promax理论分辨率适配移动端,桌面端浏览最佳)\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003C!-- 技术栈 -->\n\u003Cdiv class=\"mb-5 md:mb-6\">\n  \u003Ch3 class=\"text-base md:text-lg font-bold text-white mb-2 md:mb-3\">🛠️ 技术栈\u003C\u002Fh3>\n  \u003Cdiv class=\"flex flex-wrap gap-1.5 md:gap-2\">\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">Linux\u003C\u002Fspan>\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">Nginx\u003C\u002Fspan>\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">Docker\u003C\u002Fspan>\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">Shell\u003C\u002Fspan>\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">Python\u003C\u002Fspan>\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">MySQL\u003C\u002Fspan>\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">阿里云ECS\u003C\u002Fspan>\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">FastAPI\u003C\u002Fspan>\n    \u003Cspan class=\"px-2.5 py-1 md:px-3 md:py-1 rounded-full text-xs md:text-sm font-medium bg-white\u002F20 text-white\">Nuxt.js\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C!-- 个人简介 -->\n\u003Cdiv class=\"mb-5 md:mb-6\">\n  \u003Cp class=\"text-white\u002F90 font-bold text-sm md:text-[16px] leading-[1.5rem] md:leading-[1.75rem] tracking-wide\">\n    你好，我是 \u003Cstrong>leap\u003C\u002Fstrong>，一名运维工程师。拥有1年多Linux服务器运维经验，熟悉Docker容器化部署、Nginx配置管理、Shell\u002FPython自动化脚本编写。具备线上故障独立排查能力，熟悉服务器安全加固与监控体系建设。\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C!-- 工作经历 -->\n\u003Cdiv class=\"mb-5 md:mb-6\">\n  \u003Ch3 class=\"text-base md:text-lg font-bold text-white mb-2 md:mb-3\">💼 工作经历\u003C\u002Fh3>\n  \u003Cdiv class=\"space-y-3 md:space-y-4\">\n    \u003Cdiv class=\"bg-white\u002F10 rounded-xl p-3 md:p-4\">\n      \u003Cdiv class=\"flex justify-between items-start mb-1.5 md:mb-2\">\n        \u003Ch4 class=\"font-bold text-white text-sm md:text-base\">武汉途迪汽车服务有限公司\u003C\u002Fh4>\n        \u003Cspan class=\"text-xs md:text-sm text-white\u002F60 whitespace-nowrap ml-2\">2025.7 - 2026.3\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cp class=\"text-xs md:text-sm text-white\u002F70 mb-2\">运维工程师\u003C\u002Fp>\n      \u003Cul class=\"space-y-1 text-xs md:text-sm text-white\u002F80\">\n        \u003Cli>• 负责公司3台阿里云ECS服务器日常运维，涵盖Nginx配置管理、Docker服务部署、防火墙策略配置及SSH安全加固\u003C\u002Fli>\n        \u003Cli>• 主导项目Docker容器化改造，编写Dockerfile和docker-compose实现多服务编排，部署时间从30分钟缩短至5分钟\u003C\u002Fli>\n        \u003Cli>• 使用curl、tcpdump等工具排查线上请求异常，独立定位并解决Nginx配置错误及后端接口异常，月均处理故障5-8次\u003C\u002Fli>\n        \u003Cli>• 搭建基于\u002Fapi\u002Fhealth接口的轻量监控方案，实时采集服务运行指标，服务可用性达99.5%\u003C\u002Fli>\n      \u003C\u002Ful>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"bg-white\u002F10 rounded-xl p-3 md:p-4\">\n      \u003Cdiv class=\"flex justify-between items-start mb-1.5 md:mb-2\">\n        \u003Ch4 class=\"font-bold text-white text-sm md:text-base\">校内工作室\u003C\u002Fh4>\n        \u003Cspan class=\"text-xs md:text-sm text-white\u002F60 whitespace-nowrap ml-2\">2021.9 - 2025.6\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cp class=\"text-xs md:text-sm text-white\u002F70 mb-2\">Web开发兼运维\u003C\u002Fp>\n      \u003Cul class=\"space-y-1 text-xs md:text-sm text-white\u002F80\">\n        \u003Cli>• 负责工作室3台Linux服务器的日常运维，包括Nginx反向代理配置、数据库备份恢复、防火墙策略配置及SSH安全加固\u003C\u002Fli>\n        \u003Cli>• 使用Shell和Python编写自动化脚本20余个，涵盖日志切割、数据定时备份、服务健康检查等\u003C\u002Fli>\n        \u003Cli>• 参与处理502\u002F504网关超时、磁盘空间写满、DNS解析异常等线上故障的定位与修复，平均响应时间30分钟内\u003C\u002Fli>\n      \u003C\u002Ful>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003C!-- 运维能力 -->\n\u003Cdiv class=\"mb-5 md:mb-6\">\n  \u003Ch3 class=\"text-base md:text-lg font-bold text-white mb-2 md:mb-3\">🔧 运维能力\u003C\u002Fh3>\n  \u003Cul class=\"space-y-1.5 md:space-y-2 text-xs md:text-[15px] text-white\u002F90 leading-relaxed\">\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>\u003Cstrong>服务器运维\u003C\u002Fstrong>：熟练管理阿里云ECS服务器，负责Nginx配置优化、防火墙策略配置及SSH安全加固\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>\u003Cstrong>容器化部署\u003C\u002Fstrong>：熟练使用Docker、Docker Compose，编写Dockerfile实现多服务编排，提升部署效率\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>\u003Cstrong>自动化运维\u003C\u002Fstrong>：熟练使用Python编写运维脚本，掌握日志切割、数据备份、健康检查等自动化工具\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>\u003Cstrong>故障排查\u003C\u002Fstrong>：具备线上故障独立排查能力，熟悉使用curl、tcpdump、netstat等工具定位问题\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>\u003Cstrong>安全加固\u003C\u002Fstrong>：掌握ufw\u002Fiptables防火墙配置、SSH密钥登录、fail2ban防暴力破解等安全措施\u003C\u002Fspan>\n    \u003C\u002Fli>\n  \u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Chr class=\"border-white\u002F20 my-3 md:my-4\">\n\n\u003C!-- 项目展示 -->\n\u003Cdiv class=\"mb-5 md:mb-6\">\n  \u003Ch3 class=\"text-base md:text-lg font-bold text-white mb-2 md:mb-3\">🚀 项目展示：本博客系统\u003C\u002Fh3>\n  \u003Cp class=\"text-white\u002F90 font-bold text-xs md:text-[15px] leading-[1.5rem] md:leading-[1.75rem] tracking-wide mb-2\">\n    \u003Cstrong>技术栈\u003C\u002Fstrong>：Nuxt 3 + FastAPI + Docker + Nginx + SQLite\n  \u003C\u002Fp>\n  \u003Cul class=\"space-y-1.5 md:space-y-2 text-xs md:text-[15px] text-white\u002F90 leading-relaxed\">\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>独立完成架构设计与线上部署运维，部署在阿里云ECS服务器\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>Docker容器化部署前后端服务，编写Dockerfile和docker-compose.yml\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>配置Nginx反向代理、SSL证书自动续期、ufw防火墙策略\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>自建健康检查接口，实时采集服务器状态指标\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>独立处理OOM宕机恢复、防火墙排查、SSL证书验证失败等复杂故障\u003C\u002Fspan>\n    \u003C\u002Fli>\n  \u003C\u002Ful>\n  \u003Cdiv class=\"mt-2 md:mt-3 flex gap-3 md:gap-4\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmycl0203\" target=\"_blank\" class=\"text-xs md:text-sm text-white\u002F80 hover:text-white hover:underline\">GitHub\u003C\u002Fa>\n    \u003Cspan class=\"text-xs md:text-sm text-white\u002F40\">|\u003C\u002Fspan>\n    \u003Cspan class=\"text-xs md:text-sm text-white\u002F60\">线上运行中\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003Chr class=\"border-white\u002F20 my-3 md:my-4\">\n\n\u003C!-- 教育背景 -->\n\u003Cdiv class=\"mb-5 md:mb-6\">\n  \u003Ch3 class=\"text-base md:text-lg font-bold text-white mb-2 md:mb-3\">🎓 教育背景\u003C\u002Fh3>\n  \u003Cdiv class=\"bg-white\u002F10 rounded-xl p-3 md:p-4\">\n    \u003Cdiv class=\"flex justify-between items-start\">\n      \u003Cdiv>\n        \u003Ch4 class=\"font-bold text-white text-sm md:text-base\">华中科技大学文华学院\u003C\u002Fh4>\n        \u003Cp class=\"text-xs md:text-sm text-white\u002F70\">软件工程 | 本科\u003C\u002Fp>\n      \u003C\u002Fdiv>\n      \u003Cspan class=\"text-xs md:text-sm text-white\u002F60 whitespace-nowrap ml-2\">2021.9 - 2025.6\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003C!-- 其他信息 -->\n\u003Cdiv class=\"mb-5 md:mb-6\">\n  \u003Ch3 class=\"text-base md:text-lg font-bold text-white mb-2 md:mb-3\">📋 其他信息\u003C\u002Fh3>\n  \u003Cul class=\"space-y-1.5 md:space-y-2 text-xs md:text-[15px] text-white\u002F90 leading-relaxed\">\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>英语四级（CET-4），可流畅阅读英文技术文档\u003C\u002Fspan>\n    \u003C\u002Fli>\n    \u003Cli class=\"flex items-start gap-2\">\n      \u003Cspan class=\"text-white\u002F60 mt-0.5\">•\u003C\u002Fspan>\n      \u003Cspan>持C1驾驶证，可配合现场工作及差旅\u003C\u002Fspan>\n    \u003C\u002Fli>\n  \u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Chr class=\"border-white\u002F20 my-3 md:my-4\">\n\n\u003C!-- 关于这个项目 -->\n\u003Cdiv>\n  \u003Cp class=\"text-white\u002F90 font-bold text-xs md:text-[15px] leading-[1.5rem] md:leading-[1.75rem] tracking-wide\">\n    \u003Cstrong>关于这个项目：\u003C\u002Fstrong>\n  \u003C\u002Fp>\n  \u003Cp class=\"text-white\u002F90 font-bold text-xs md:text-[15px] leading-[1.5rem] md:leading-[1.75rem] tracking-wide\">\n    这是我独立开发并运维的线上博客系统，从服务器配置到上线部署全程自己完成。选择 Nuxt 3 + FastAPI 技术栈，采用Docker容器化部署，实现一键部署与迁移。\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n","[\"bed\u002Farticles\u002F396075c57c054166bc563c6c660b0bd6.png\", \"bed\u002Farticles\u002F7977b13e.png\", \"bed\u002Farticles\u002F0e95f144e1114154889b3f8fa143035a.png\", \"bed\u002Farticles\u002F72764f58.png\", \"bed\u002Farticles\u002F996faaa650464f9b9664d711ebc1b2c1.png\", \"bed\u002Farticles\u002Fd3b38059c7c74dc19e2a83be50880d85.png\", \"bed\u002Farticles\u002F8ef2e53f.png\", \"bed\u002Farticles\u002F7a3be68eed034f088b55fb949606b539.png\", \"bed\u002Farticles\u002Fccf6c85d695a43498875e8ad369de53a.png\", \"bed\u002Farticles\u002Fdbba953c17614063be68ea4498fd52f6.png\", \"bed\u002Farticles\u002Fe47aabdeb84949dcbbcb076d77995346.png\", \"bed\u002Farticles\u002Ff0119a775f1a43ad9cfdcd9a39f57dd8.png\", \"bed\u002Farticles\u002F9ea947d8669f43c6a7618d3be9227a6d.png\", \"bed\u002Farticles\u002F0898412ca50447479d3be3e251f3b9b0.png\", \"bed\u002Farticles\u002F7536e30f79e842668d216fdc7f33350f.png\", \"bed\u002Farticles\u002F83d5e23f.png\", \"bed\u002Farticles\u002F5cb0668ab0874d708513dfc8a30290ca.png\", \"bed\u002Farticles\u002Fb439581461bb4dd2b71b04d4b2c57bc8.png\", \"bed\u002Farticles\u002F48b2cb62866e4ea890c4d59d68557e1c.png\", \"bed\u002Farticles\u002Fdeb73293de1a4c258b7cef81cc21ab22.png\", \"bed\u002Farticles\u002Fd9daf9188f664d5bbc6ed90fabd070af.png\", \"bed\u002Farticles\u002F7b97b2e9.png\", \"bed\u002Farticles\u002Fa92b424d.png\", \"bed\u002Farticles\u002Fc84b93c1.png\", \"bed\u002Farticles\u002F2f443b03a14d4d438373a25463ddaed3.png\", \"bed\u002Farticles\u002F3f4dd5368a004a7f91c6def2cf2bacc7.png\", \"bed\u002Farticles\u002F67a41989.png\", \"bed\u002Farticles\u002F0084589e4b184b308f39d8897bef26bf.png\", \"bed\u002Farticles\u002F6f82da9a7b9047db82cc1b347afeb04b.png\", \"bed\u002Farticles\u002F5f862b98d415463b8b706ed8ec64394b.png\", \"bed\u002Farticles\u002F9cd18da57d284a1288713b76248892f1.png\", \"bed\u002Farticles\u002Ffb6488078b904bb8a0a68bebd770f51c.png\", \"bed\u002Farticles\u002F74ebb653c6c846fe8d2fb787e4fbe94b.png\", \"bed\u002Farticles\u002F2ee8ae3543d44c72b7358d977aa4909c.png\", \"bed\u002Farticles\u002F58e427916bdd4ec4bc82681183cbb7fc.png\", \"bed\u002Farticles\u002F0f7ffa2a89c74980a5aa07fa39cafc7c.png\", \"bed\u002Farticles\u002F946cf1976b3f488a80645f6f8168afac.png\", \"bed\u002Farticles\u002F36ffa03877454bcba88ca10640f60839.png\", \"bed\u002Farticles\u002Fc782f9edfcc84ff2960d33c45d1d2daf.png\", \"bed\u002Farticles\u002F822dd33a6b3249c4b493b693c59222fa.png\", \"bed\u002Farticles\u002Fe8697dad166c4e148812977d6bc03f0b.png\", \"bed\u002Farticles\u002F97c507b67d5a4d9286425206c967d3c1.png\", \"bed\u002Farticles\u002Ffbd43bf9afbc4cb8b84c3b2fde4a5ff9.png\", \"bed\u002Farticles\u002F4c0a1158a53d4841b321365d24d9c524.png\", \"bed\u002Farticles\u002Fbd50789f6b614211ba18df922988cc43.png\", \"bed\u002Fmoments\u002F19cead66c3d84b07a9a45f71ca3acb87.png\", \"bed\u002Farticles\u002F7ec0d495.png\", \"bed\u002Farticles\u002F2a7d70050d4343338eda6cd9252b344b.png\", \"bed\u002Farticles\u002F19275ecb.png\", \"bed\u002Farticles\u002F39d490f1ffcb42adb11f36241b756341.png\", \"bed\u002Farticles\u002F23a44518.png\", \"bed\u002Farticles\u002Fe716cb18784b48549097284321ff07d2.png\", \"bed\u002Farticles\u002F988361d911c74779a636e2ddc0861989.png\", \"bed\u002Farticles\u002F6aa45a9f054f495798aec5a3614e1a50.png\", \"bed\u002Farticles\u002F556eecc9b4c347dd818cd95c580f7860.png\", \"bed\u002Farticles\u002Ff3c05963062f4e1f8a45d21511579551.png\", \"bed\u002Farticles\u002Ffc4bd6d91191471f9ea6d38aa4bb6435.png\", \"bed\u002Farticles\u002F3334863832cf46b2a11ea41e2841c687.png\", \"bed\u002Farticles\u002Fbab12fc0.png\", \"bed\u002Farticles\u002F5c24001e8c604ab98d4a373611c1831c.png\", \"bed\u002Farticles\u002F5f47a5fc.png\", \"bed\u002Farticles\u002F26c640c469c34f0697afe94f28981cc4.png\", \"bed\u002Farticles\u002F1cbbc9b7.png\", \"bed\u002Farticles\u002F11580f08.png\", \"bed\u002Farticles\u002F9e13fe37.png\", \"bed\u002Farticles\u002F4aadda4090e24cc2aab8ad00b5d7bdfb.png\", \"bed\u002Farticles\u002F7aee0d11df844d5faa3804b2d6d0b6ac.png\", \"bed\u002Farticles\u002Fd58b76144a8e474286c5ed3a376aee54.png\", \"bed\u002Farticles\u002F18aab4c3330c42169cf8aabc183be5e2.png\", \"bed\u002Farticles\u002F155da0c036b0445483c97aa69e074633.png\", \"bed\u002Farticles\u002F94ea4a21.png\", \"bed\u002Farticles\u002Fb8110422c75040ddb9cb8d8c8b25de31.png\", \"bed\u002Farticles\u002Fae145d3d.png\", \"bed\u002Farticles\u002F9dd87040721748c1bd2c7a3b43a68ae3.png\", \"bed\u002Farticles\u002Fd8451d56640a48a5a1d2067f269564ed.png\", \"bed\u002Farticles\u002F2828ea09f33647a2bd82d32e91609aed.png\", \"bed\u002Farticles\u002Fc6285af6b9ac40a6b2c27599d6ea63fd.png\", \"bed\u002Farticles\u002Ff456762157204e338ba07096589b3df1.png\", \"bed\u002Farticles\u002Fcdea6c86feb04fc6ba8e04f17d1a66fa.png\", \"bed\u002Farticles\u002Feefecc21920548b4857af96365ac1876.png\", \"bed\u002Farticles\u002F0db7ecf20df94444b42061ba62b8ab9e.png\", \"bed\u002Farticles\u002F35647319eb074197b658f5573eda21e5.png\", \"bed\u002Farticles\u002Fd008810436634a80aa7f32794be41b48.png\", \"bed\u002Farticles\u002Fceb7c6c318334f1d9b3bb44cc8748569.png\", \"bed\u002Farticles\u002F1e9799bf78964038b6c49883f438dc04.png\", \"bed\u002Farticles\u002F85f87277981f47f1820c00ab3d5ecfc2.png\", \"bed\u002Farticles\u002Fe1e06a0cacf44cbdb77ba9c140b2bd5e.png\", \"bed\u002Farticles\u002F7b05eb12da0f4406b29af378604844b6.png\", \"bed\u002Farticles\u002F5287688b.png\", \"bed\u002Farticles\u002F72ba41dbfd8642028190762289101aea.png\", \"bed\u002Farticles\u002Feca0ae17902341b088a18c6b10852109.png\", \"bed\u002Farticles\u002Fd701138610ef42c9a17f8002d8b7d8ac.png\", \"bed\u002Farticles\u002F1968c33bf97040b7a3054bc470f360bd.png\", \"bed\u002Farticles\u002F1b78f32d458446a49687f74f382bbc46.png\", \"bed\u002Farticles\u002Fb70a702550444f6686f04d9fde38975c.png\", \"bed\u002Farticles\u002F7b94ffd8eb3148caa47ce0daf5631ff2.png\", \"bed\u002Farticles\u002F8256453d14534717b1861166942e2a14.png\", \"bed\u002Farticles\u002F91fab46b00e14c97b464616eba6c9ecc.png\", \"bed\u002Farticles\u002Fa6abf03c9925490997b1759cac0ab556.png\", \"bed\u002Farticles\u002Fa18f4999.png\", \"bed\u002Fdefault\u002Fa1d9c7b8040e40d585e0692142d8cad1.jpg\", \"bed\u002Fbackground\u002Fcustom_font.woff2\", \"bed\u002Farticles\u002F60a8572e.png\", \"bed\u002Farticles\u002F0d0cf4c6b3c7465e8e90997792ab8ee8.png\", \"bed\u002Farticles\u002Fb916a72feea143c9b04bc69b4626c301.png\", \"bed\u002Farticles\u002Fca6dca39.png\", \"bed\u002Farticles\u002F49b679c8918e4743aa320f8b954cc699.png\", \"bed\u002Farticles\u002F7c7b937ed4974826af54a8aaccc1147d.png\", \"bed\u002Farticles\u002F6fd43d32185e459d83fffcfbd84a3120.png\", \"bed\u002Farticles\u002F13000820.png\", \"bed\u002Farticles\u002F9372437a3bbc4177b856ca2a5f04f0c2.png\", \"bed\u002Farticles\u002Fa57ec4961327481d9e1dcbc6a85cb03a.png\", \"bed\u002Farticles\u002Ff36c654f40ff4633a29865cb98c38ddc.png\", \"bed\u002Farticles\u002Ff0978fa5c320473ca1509c2e10cd68fe.png\", \"bed\u002Farticles\u002F3170251859c64675ab6f236405987771.png\", \"bed\u002Farticles\u002Fb080ca60.png\", \"bed\u002Farticles\u002Fe59f7f96460a4aa3b78fbe5e28cbfcee.png\", \"bed\u002Farticles\u002F9f5004b3d15440d08900b5c95f8f4905.png\", \"bed\u002Farticles\u002F5f0edd32a61943fc9af37503abcde57e.png\", \"bed\u002Farticles\u002F9b319083.png\", \"bed\u002Farticles\u002Fc8051345.png\", \"bed\u002Fmoments\u002F8006301cc8c946c8baa6133fc3ed69f0.png\", \"bed\u002Farticles\u002F899317c139064933988f52096f94d513.png\", \"bed\u002Farticles\u002F8d11deba311a401c9de983e6e501bcb8.png\", \"bed\u002Farticles\u002F56c65dde366b492abbdfbf7a331b9699.png\", \"bed\u002Farticles\u002F1d2e106ca58c4467af63b3cf948e9bed.png\", \"bed\u002Farticles\u002Fc956addc90074190a1b7241d1c9ffdb3.png\", \"bed\u002Farticles\u002Ffe1fd4635e124b5eb8f5d4e34db6102f.png\", \"bed\u002Farticles\u002F4208e460.png\", \"bed\u002Farticles\u002F187b035f86804d7e826816519dd3b742.png\", \"bed\u002Farticles\u002F6b61a478c4cc4dff88a5187db87f2630.png\", \"bed\u002Fmoments\u002Fe9c778effd324af6a06c3e86bdbfb4ce.png\", \"bed\u002Farticles\u002F4b175857.png\", \"bed\u002Farticles\u002Fa9c8db07ec554f18a220cd56a7c4b952.png\", \"bed\u002Farticles\u002F4e0fd7b873934af6ab02edc6b551e2e4.png\", \"bed\u002Farticles\u002Fa8373a7debd34855a463ec800544b0ac.png\", \"bed\u002Fdefault\u002F758a72eb0fe74a2295aeaee906a9503c.png\", \"bed\u002Farticles\u002Fabd67a6e9c11465ba93888d52cf8c14d.png\", \"bed\u002Farticles\u002Fbdff5f9f148f4c42ab3a2d4168006fb6.png\", \"bed\u002Farticles\u002F4801552158084f8487fd3396c696bb0b.png\", \"bed\u002Farticles\u002F1aa643b54372473f820dc73f911b034a.png\", \"bed\u002Farticles\u002F82705cde.png\", \"bed\u002Farticles\u002Fee0f407b13a2441fa21cbd34bdcb8c39.png\", \"bed\u002Farticles\u002F5743c013062c404e8aff252a5e39f3ed.png\", \"bed\u002Farticles\u002Fb215abe45cb54041969ce36e58089284.png\", \"bed\u002Farticles\u002Ffc07f95c36514ebda7a704a1e6b64f21.png\", \"bed\u002Farticles\u002F212f3d05958b4e24877298214e481cc8.png\", \"bed\u002Farticles\u002F8e96a955acff4abfb94e829773330e06.png\", \"bed\u002Farticles\u002Fd5cdebd71c1d4e13be1e6bd4f1b46558.png\", \"bed\u002Farticles\u002F2deb813d552f4f64b4b0cbbe8fc7eeb7.png\", \"bed\u002Farticles\u002F81150f90690146aba92cbf1574369f75.png\", \"bed\u002Farticles\u002F208753df9d854ad39616b3dd62823c40.png\", \"bed\u002Farticles\u002F05348caf.png\", \"bed\u002Farticles\u002F19eac8ab.jpeg\", \"bed\u002Farticles\u002F0d24e63dab434e5397a7a905e32871e2.png\", \"bed\u002Farticles\u002F12fe5fb7924047fcb788081d1382ee40.png\", \"bed\u002Farticles\u002F01fdbbceabca411cab07b2220270e0a8.png\", \"bed\u002Farticles\u002F133c5dabf3b749cdb48137990400ae49.png\", \"bed\u002Farticles\u002F2e66e0157ca44a1a9eaff23a17b909fb.png\", \"bed\u002Farticles\u002F7c2a254b5d6a43b38425fa6b64494773.png\", \"bed\u002Farticles\u002F1f190b3f9f1b433d976e9cb47534c3cd.png\", \"bed\u002Fsite\u002F1d7c500ed7a049f282b7e6e83b6b40f4.png\", \"bed\u002Farticles\u002Ff72a6cf3.png\", \"bed\u002Farticles\u002Ff044ca151123471596b2fb420ced8776.png\", \"bed\u002Farticles\u002Ff441fa6573f4447cb879c135d777a899.png\", \"bed\u002Farticles\u002F9373e42b.png\", \"bed\u002Farticles\u002F8494f265.png\", \"bed\u002Farticles\u002Fc63eb1f2d7684d23b6bb6a388a7acded.png\", \"bed\u002Farticles\u002F700b9ad0d1554dbcbc99cb567f29ef7b.png\", \"bed\u002Fbackground\u002Fb666b21659cc477daea62833a78c841f.jpeg\", \"bed\u002Farticles\u002F6145b8ae9d024d048a56565694a6e971.png\", \"bed\u002Farticles\u002Fed5c2832b5e84827a5751f3d50a58036.png\", \"bed\u002Farticles\u002Fe3159d4d36c94d22bde150269f9e10b7.png\", \"bed\u002Farticles\u002Fc9e8a0c64e5d48cb82434f84ba0d1a0f.png\", \"bed\u002Farticles\u002F7466bd16fba942bbb73f48c403e00d59.png\", \"bed\u002Farticles\u002F43f3e4a6.png\", \"bed\u002Farticles\u002Faac9624338a64806bfcd09af447551c7.png\", \"bed\u002Farticles\u002Ffaf4d358f31a4e4293cba513d3823d60.png\", \"bed\u002Farticles\u002Fc4adc8b26320464d9e3d8f38a4b4bbfe.png\", \"bed\u002Farticles\u002F1e0f4db6aea7441a90dae0cd6690f1a2.png\", \"bed\u002Farticles\u002F2f93f0a5.png\", \"bed\u002Farticles\u002Ffc7e1b2951ac49c4b22f8cb5ab58d68c.png\", \"bed\u002Farticles\u002Ff10741fb802a45acb114ae886af34186.png\", \"bed\u002Farticles\u002Fa28e7ce4.png\", \"bed\u002Farticles\u002F4570f907ec2f4d9b8fca32f73871d73e.png\", \"bed\u002Farticles\u002Fc7ab5a6511c247ffaf227b46fe798fc0.png\", \"bed\u002Farticles\u002Fc82fcfa777c64112af32e7a7c03e5b74.png\", \"bed\u002Farticles\u002Fb41c955c506d4aceb810837fd17ac643.png\", \"bed\u002Farticles\u002F9aa04f13145543a284607c7d13f233e2.png\", \"bed\u002Farticles\u002Fa99436929f2c419a94ee6c6e2da8cc07.png\", \"bed\u002Farticles\u002Fe4881d21.webp\", \"bed\u002Farticles\u002Fb78a30defc9e409994e51763ff200d30.png\", \"bed\u002Farticles\u002Fe608c92995d74400966a740d2f91b7e8.png\", \"bed\u002Farticles\u002F17c51fb0ced04693b7aadf1508442b92.png\", \"bed\u002Fmoments\u002Fa5a1a2827515402b9c5715defbb37d02.png\", \"bed\u002Farticles\u002F610f9b601a1a48a0aadb42ab6734eacd.png\", \"bed\u002Farticles\u002F0875c465.png\", \"bed\u002Farticles\u002F7998d3ed.png\", \"bed\u002Farticles\u002F150e237a3d22431a871ebc289a842505.png\", \"bed\u002Farticles\u002Fa6da435e.png\", \"bed\u002Farticles\u002Fb1ea6487.png\", \"bed\u002Farticles\u002Fd960986053cc4f339ad29aae5daf1523.png\", \"bed\u002Farticles\u002F72850a03f9e24d8b847841211661e0c9.png\", \"bed\u002Farticles\u002Fa88321a7.png\", \"bed\u002Farticles\u002Fa85617d1f8144396b6718a060fbac415.png\", \"bed\u002Farticles\u002Fb5285df693f54b9eaf6e7c48a70c929b.png\", \"bed\u002Farticles\u002F998a0bb6501842bfb504441d510f14e8.png\", \"bed\u002Farticles\u002F8539fa2c8a614492b97daf2cf40ae95e.png\", \"bed\u002Farticles\u002Fb7b0c47db9d84f63856daa197e8aedb2.png\", \"bed\u002Farticles\u002Ff8711ddacf804fca8160547482312f10.png\", \"bed\u002Farticles\u002Fa5dcfaf7b59745d4b830d009566554a0.png\", \"bed\u002Farticles\u002F034de911.png\", \"bed\u002Farticles\u002F609efb4629e648edab205477118c3499.png\", \"bed\u002Farticles\u002Fwxco-chat-record-extractor.png\", \"bed\u002Farticles\u002F7287b218d9124b49b39805fdb7ddc758.png\", \"bed\u002Farticles\u002F13a1434ec8d34dfc8c1230ec72965ee9.png\", \"bed\u002Farticles\u002F28082dc42d584e969e26cb68049b3e93.png\", \"bed\u002Farticles\u002F5455d7c6fbbe4a4f83957ba55af68952.png\", \"bed\u002Farticles\u002Fbac9b21264364092b1539d492c44ac0e.png\", \"bed\u002Farticles\u002F74a0f1c9ac4c48418e21808c8c0e888f.png\", \"bed\u002Farticles\u002F0bd452cd8aa44b6d90afb4d1b27e7e8a.png\", \"bed\u002Farticles\u002F2a56aac7d9a1441c87ee8e77dc619c50.png\", \"bed\u002Farticles\u002F72c6e4dd.png\", \"bed\u002Fmoments\u002F64fca5d30e274020b47fda48ae69f19f.png\", \"bed\u002Fmoments\u002Fd07dbb946ed246d8bcc5bf7c4736b393.png\", \"bed\u002Farticles\u002F9cc6461986f24057a1fa6acaa004b6b5.png\", \"bed\u002Farticles\u002Fc79a2627.png\", \"bed\u002Farticles\u002F66a4078ebe664d86be08c226312ac518.png\", \"bed\u002Farticles\u002F3ad1676e6a1f44daa5f057515b9e6b4c.png\", \"bed\u002Farticles\u002F5463e7b19c314fb0925c2e464ec75df6.png\", \"bed\u002Farticles\u002F1073168f94424aea99f77421615d219d.png\", \"bed\u002Farticles\u002F11bb41881da94641b2fb335c46e5fe54.png\", \"bed\u002Farticles\u002Ff86f6e045dec4b06a152cd405b575f8d.png\", \"bed\u002Farticles\u002F7aa1de23.png\", \"bed\u002Farticles\u002F32b74a1f80b142a28087cb61f63375ef.png\", \"bed\u002Farticles\u002F4e800c1deffd4971958129141133cf04.png\", \"bed\u002Farticles\u002F2bdbf3bf.png\", \"bed\u002Farticles\u002Fd58121fb65fe488781431519a17888a3.png\", \"bed\u002Farticles\u002F634e2152d70440e5a960b511d939ca6c.png\", \"bed\u002Farticles\u002Fcd7a795c9c6e4bb099fc0a68339c2599.png\", \"bed\u002Farticles\u002Ffaf8181b48ce4975a243c098ea93204d.png\", \"bed\u002Farticles\u002F8baeecf6e12d4a93a7ddac7abd6e88cb.png\", \"bed\u002Farticles\u002F346ba0f4da9a486f828c2fe8f683bf16.png\", \"bed\u002Fsite\u002F1eada21961444b36a2de539a7c336b51.png\", \"bed\u002Farticles\u002F9928f239dc1049a8a7a76dee8f54d6d8.png\", \"bed\u002Farticles\u002F4ad48518.png\", \"bed\u002Farticles\u002F25029c22e66247a39418ace31e28c3d1.png\", \"bed\u002Farticles\u002Fb276157f0b8c4293b2bfee524a45a4d2.png\", \"bed\u002Farticles\u002Fd0cbe86e92bf4f31945b4f0e75cea109.png\", \"bed\u002Farticles\u002Ff3b38c9ec9e241f69a98ab3d4aab6efc.png\", \"bed\u002Farticles\u002F69cdcc56.png\", \"bed\u002Farticles\u002F439e7ada64e541dfb74f18b55e7012f1.png\", \"bed\u002Farticles\u002F4d2fbdeb.png\", \"bed\u002Farticles\u002F20369fa409dd4812b1e3b635ce29ea0a.png\", \"bed\u002Farticles\u002F74b6c189c71242aba255880fe93899f9.png\", \"bed\u002Farticles\u002Fe0a1beb3e21e4bd8973c3566f255e7ad.png\", \"bed\u002Farticles\u002F6ce22c315257418da55875483668c806.png\", \"bed\u002Farticles\u002Fd8cf96c53c354296b39db9afbe0cb431.png\", \"bed\u002Farticles\u002F88d7b13070094e7da0e2dffae3d14d25.png\", \"bed\u002Farticles\u002F34c4195c.png\", \"bed\u002Farticles\u002Fcfa08c55.png\", \"bed\u002Farticles\u002Fd5fab1a2a1864544ac7ec1060f025650.png\", \"bed\u002Farticles\u002Fcc3ab11d.png\", \"bed\u002Farticles\u002F55e7ac1bfa18459684e7f1ac6704a200.png\", \"bed\u002Farticles\u002Ffab66757.png\", \"bed\u002Farticles\u002Fd955311a.png\", \"bed\u002Farticles\u002F0fb452d4f5864fa9b6e7ddb9f00ad4b6.png\", \"bed\u002Farticles\u002Fbb9b73b7a0544d9694e6bd3f86295cbf.png\", \"bed\u002Farticles\u002F1f00e6c3.png\", \"bed\u002Farticles\u002F07d90524.png\", \"bed\u002Farticles\u002F79f16554745a4d77a79b10a095e91fc5.png\", \"bed\u002Farticles\u002Ff8987560.png\", \"bed\u002Farticles\u002Fa956890ea05d4911a51fb111751c6f6b.png\", \"bed\u002Farticles\u002Fba648a66087c474890d9ba3ba7a28f9f.png\", \"bed\u002Farticles\u002Fc3aa1ee5.png\", \"bed\u002Farticles\u002Fafc04840d0e044a9bce78d13e296d0db.png\", \"bed\u002Farticles\u002F4b6010cb.png\", \"bed\u002Farticles\u002Fe20392c4e1004dd0a303d70c6b953610.png\", \"bed\u002Farticles\u002F604a6dd6c9d24f86895d7732b0476cf3.png\", \"bed\u002Farticles\u002F0753f81543f94db88a58dee9ab1f1e9c.png\", \"bed\u002Farticles\u002F6fb4afa1aae842c68806256875ce7a45.png\", \"bed\u002Farticles\u002Fe10c83c6425a48e388faa4c044d9d2b0.png\", \"bed\u002Farticles\u002Fcd3706326e524d5bb2e695908097b1c5.png\", \"bed\u002Farticles\u002F2f6adbbe.png\", \"bed\u002Farticles\u002F9e2f3079b45e4e7fa1cab2036e845338.png\", \"bed\u002Farticles\u002F5468c6669fb64fe19781ad7a58c77f4d.png\", \"bed\u002Farticles\u002F66a284f050314c1a831ac13b87111175.png\", \"bed\u002Farticles\u002F79a7890366b14a11a7a2d301d8c8aaaa.png\", \"bed\u002Farticles\u002F3fc8817b869c40728c7f4ddae0551443.png\", \"bed\u002Farticles\u002F7b04ff48875b46cc897da932cd11a0ff.png\", \"bed\u002Farticles\u002F80c71500.png\", \"bed\u002Farticles\u002Fa54dc726a2864c5b8c292eec32af3052.png\", \"bed\u002Farticles\u002F9ee3250116f24c2b967bf62cb8b703d5.png\", \"bed\u002Farticles\u002F94a98ed10af74b59a9575d6bdbb11fb0.png\", \"bed\u002Farticles\u002F426cbf4dbe4a4c84a5792d361f4fbc15.png\", \"bed\u002Farticles\u002F49082910.png\", \"bed\u002Farticles\u002F9c0e6abb.png\", \"bed\u002Farticles\u002F60e002dc1e7f437589bdabf8de29d170.png\", \"bed\u002Farticles\u002F858940bad0e647d09c22d44516ddb8c6.png\", \"bed\u002Farticles\u002Ff8dcdf76d2124302b598d3680eb71ce1.png\", \"bed\u002Farticles\u002F7b226ebb.png\", \"bed\u002Farticles\u002F01e9c48b64744f5980d4ebe81b580ccc.png\", \"bed\u002Farticles\u002Fd1d6bd49.png\", \"bed\u002Farticles\u002Ff758ce1b313e443c9c4386ded9c10c61.png\", \"bed\u002Farticles\u002F1f2dc4330c044063be85c58ce3ff9218.png\", \"bed\u002Farticles\u002F3d1475e7.png\", \"bed\u002Farticles\u002F66aaadf2b40e45b88afe6e10bf4df35c.png\", \"bed\u002Farticles\u002F8abb40e30c1a48329144b0f43f0a504e.png\", \"bed\u002Farticles\u002Fd5957d6b5fbc4326a81a9e625adc2abd.png\", \"bed\u002Farticles\u002Fc2c876161aca4deb9bcc7d5ca00b255a.png\", \"bed\u002Farticles\u002F62e4921f372d47559ab85e69df6bdd29.png\", \"bed\u002Farticles\u002F9532aafd75734d928f270877d4d9de76.png\", \"bed\u002Farticles\u002Ffd9b363698804cf8bc94167e3cd8ba1c.png\", \"bed\u002Farticles\u002F68f4b0d8.png\", \"bed\u002Farticles\u002F291c872c46f74da0998659483055fd91.png\", \"bed\u002Farticles\u002F9b4d36a0.png\", \"bed\u002Farticles\u002F51774c0cccef4ad9be3934ff6c5c422d.png\", \"bed\u002Farticles\u002F5b39df03b8474219a0568141b40939a4.png\", \"bed\u002Farticles\u002F96b32f58657c4290a787afe6af005fd2.png\", \"bed\u002Farticles\u002F1220bf6e350447d7a9735987d0f54e56.png\", \"bed\u002Farticles\u002F12418beef64942e791e969efdb208e11.png\", \"bed\u002Farticles\u002F8dfe206889ea4086845c67b3f35f3df6.png\", \"bed\u002Farticles\u002F90da0c3ff2224d4687de49e7d319a728.png\", \"bed\u002Farticles\u002F4f2aade0.png\", \"bed\u002Farticles\u002F1184a174e0454a7bb75e90b54fc52e16.png\", \"bed\u002Farticles\u002Fd9c3a075a1ac4aadb5f05798cf48f70b.png\", \"bed\u002Farticles\u002Fd39a03163b4f4594a14a432e94aa2ce6.png\", \"bed\u002Farticles\u002Fb6a38bb143484f8f96a1c10ba73ec107.png\", \"bed\u002Farticles\u002Fd87f4782.png\", \"bed\u002Farticles\u002F5101e114e52343a097057ba89abc703b.png\", \"bed\u002Farticles\u002F6390c051.png\", \"bed\u002Farticles\u002F85b06c798f0f43109f32723d78d9d568.png\", \"bed\u002Farticles\u002Fd29445e7efb446b5a7bf42aa80567b97.png\", \"bed\u002Farticles\u002F145cd7507ae9497f8d24346103f52c76.png\", \"bed\u002Farticles\u002F339b2023e10e4aafaf7d24fa6b52a4a6.png\", \"bed\u002Farticles\u002Fbadd9284c5bd4ee893a558d76f306d24.png\", \"bed\u002Farticles\u002F0a69833157b64ecd9139ae8b5b015ed9.png\", \"bed\u002Farticles\u002F26eb0e985c004325bdfd315abcd6e02c.png\", \"bed\u002Farticles\u002F71442419ee664de2b64b6c30d359c775.png\", \"bed\u002Farticles\u002F9423c882e10e4194bc0c54e74f7f1584.png\", \"bed\u002Farticles\u002Ff79e779b818146e0ac2ce75dd4633e19.png\", \"bed\u002Farticles\u002F44cb59f5c56e4693b30c5ef57dc52a79.png\", \"bed\u002Farticles\u002F64548b62c5374b5b888436c9009c2dc1.png\", \"bed\u002Farticles\u002Fcc3aae33.png\", \"bed\u002Farticles\u002F9f889e1519d748cb8b6d8251c69db09d.gif\", \"bed\u002Farticles\u002Fc18ccb65ed004b2193395991e450f7d0.png\", \"bed\u002Farticles\u002Fbe14b516e06a4d5f80443cb822176989.png\", \"bed\u002Farticles\u002F8141ce0f32a744a99385fc216a6ac865.png\", \"bed\u002Farticles\u002Fcb07e92bb8b646e2b005fedff38d4f33.png\", \"bed\u002Farticles\u002F64517569f2d245fca1bea9b187eeb469.png\", \"bed\u002Farticles\u002F89e4861c.png\", \"bed\u002Farticles\u002Fff2d0518c4b1491c853f43412c3afbd0.png\", \"bed\u002Farticles\u002Ffb3019ca.png\", \"bed\u002Farticles\u002F94de0cf476f7439391ef15b29e6d5e9d.png\", \"bed\u002Farticles\u002Fac178a9872ae446da2f29d7cf3c3d353.png\", \"bed\u002Farticles\u002Ffdf231d5db3149e4aee3e09c1fed0ef3.png\", \"bed\u002Farticles\u002Fafdd59be.png\", \"bed\u002Farticles\u002Fb313126151cb4f729047593e3eb22ea0.png\", \"bed\u002Farticles\u002F46b93a3c.png\", \"bed\u002Farticles\u002Fe3f040b361dc4b119a4c3afbaa1866af.png\", \"bed\u002Farticles\u002F861de2a9d75c4e4785784e12139c3323.png\", \"bed\u002Farticles\u002F5ebb1aecaa864629bdad6be8a7ae49a4.png\", \"bed\u002Farticles\u002F1209c39bbba549dc8afb852e5db076f4.png\", \"bed\u002Farticles\u002Fca55787c76a348f697c69944e569f44d.png\", \"bed\u002Farticles\u002Fc67a20cef7704793832b5d26d90aeb5b.png\", \"bed\u002Farticles\u002F8d1b9f621d384adab19e2f9069e16231.png\", \"bed\u002Farticles\u002F6fe08092f1164c05a4d3462cc77b68e5.png\", \"bed\u002Farticles\u002Fe07c246b094247f6b1559adb44c3e504.png\", \"bed\u002Farticles\u002Fcovers\u002F6dd75bb7397043a186c001faca908fca.png\", \"bed\u002Farticles\u002Fcef76743c63e470ab846803857cfd167.png\", \"bed\u002Farticles\u002Fea14dae1bb624632bf15d20092e92d74.png\", \"bed\u002Farticles\u002F2397bfaab5aa4b5aa67271791a85e39e.png\", \"bed\u002Farticles\u002Fb9ee5172.png\", \"bed\u002Farticles\u002Fd4f19b5736cb41228abf9f40dc584753.png\", \"bed\u002Farticles\u002Fb11ed0dc85d744d289365702440bac32.png\", \"bed\u002Farticles\u002Fd74967da10a54e9a886efbb07b939066.png\", \"bed\u002Farticles\u002Fa7e4be3297154298804df4f8dfb55d8d.png\", \"bed\u002Farticles\u002Fe988ee2baa694dd991969b77183f2dd2.png\", \"bed\u002Farticles\u002F596a3ea5c02245f189f1cb915d67cc94.png\", \"bed\u002Farticles\u002Fc1e50146.png\", \"bed\u002Farticles\u002F14087c1961d94763bad772ed888e9107.png\", \"bed\u002Farticles\u002F60d9a7356dc5449d813a14198fa4eaa4.png\", \"bed\u002Farticles\u002F06cf386d20904cb0b5148bf850bf2b77.png\"]","\u002Fuploads\u002Fbed\u002Fsite\u002F1eada21961444b36a2de539a7c336b51.png","一只无趣的猴子,没有个性,所以没有签名","true","vue3@foxmail.com","smtp.qq.com","465","[\"articles\",\"views\",\"runtime\",\"api\",\"nuxt\",\"disk\",\"memory\",\"moments\",\"comments\",\"uptime\",\"words\",\"db\"]","{\"articles\":0,\"uptime\":3000,\"runtime\":2980,\"memory\":6,\"disk\":0,\"comments\":50}","{\"articles\":\"left\",\"views\":\"right\",\"runtime\":\"right\",\"words\":\"right\",\"moments\":\"left\",\"tags\":\"right\",\"comments\":\"left\",\"disk\":\"right\",\"memory\":\"right\",\"uptime\":\"right\",\"api\":\"right\",\"db\":\"right\",\"nuxt\":\"right\"}","关于本站和我","🤝友情链接(个人链接)","#0ea5e9","#0284c7","\u002Fuploads\u002Fbed\u002Fbackground\u002Fcustom_font.woff2","false","    欢迎！这里没有华丽的包装,只有一个年轻人真实的成长和记录，一起学习，所有功能独立开发部署，堆积着个人生活和技术的小仓库，后续慢慢补充以前的文档；\n    无登录，均匿名，海内存知己，欢迎各位的来访！","👋 你好","","#334155","97","10000","1000","[{\"name\": \"ShowAPI IP查询\", \"url\": \"https:\u002F\u002Froute.showapi.com\u002F20-1?appKey={token}&ip={ip}\", \"token\": \"94c826C59DAf4678a17308f3f0C56644\", \"note\": \"万维易源,精确到县区100次\u002F天\", \"enabled\": true}, {\"name\": \"ipgeolocation.io\", \"url\": \"https:\u002F\u002Fapi.ipgeolocation.io\u002Fv3\u002Fipgeo?apiKey={token}&ip={ip}\", \"token\": \"07a5c93b3cb2459b90ef377cad9dc41d\", \"note\": \"精度到城市;此key曾硬编码进代码,已经换新-1k\u002F月\", \"enabled\": true}, {\"name\": \"ip-api.com\", \"url\": \"http:\u002F\u002Fip-api.com\u002Fjson\u002F{ip}?lang=zh-CN\", \"token\": \"\", \"note\": \"免费接口,精度一般\", \"enabled\": false}]","[{\"ip\": \"118.212.158.13\", \"note\": \"\"}, {\"ip\": \"223.160.216.231\", \"note\": \"\"}, {\"ip\": \"66.249.79.76\", \"note\": \"\"}, {\"ip\": \"66.249.79.64\", \"note\": \"\"}, {\"ip\": \"66.249.79.65\", \"note\": \"\"}, {\"ip\": \"223.160.218.70\", \"note\": \"\"}, {\"ip\": \"44.222.133.103\", \"note\": \"\"}, {\"ip\": \"47.243.76.182\", \"note\": \"\"}, {\"ip\": \"34.122.147.229\", \"note\": \"\"}, {\"ip\": \"35.172.150.50\", \"note\": \"\"}, {\"ip\": \"42.194.240.188\", \"note\": \"\"}, {\"ip\": \"66.249.68.3\", \"note\": \"\"}, {\"ip\": \"36.255.112.149\", \"note\": \"\"}, {\"ip\": \"223.160.219.64\", \"note\": \"\"}, {\"ip\": \"127.0.0.1\", \"note\": \"\\u672c\\u5730\"}, {\"ip\": \"223.160.217.23\", \"note\": \"\"}, {\"ip\": \"115.152.4.59\", \"note\": \"\"}, {\"ip\": \"118.212.158.206\", \"note\": \"\"}, {\"ip\": \"223.160.219.94\", \"note\": \"\"}]","[{\"ip\": \"46.152.18.192\", \"note\": \"\"}]","5","75","别老叽霸扫描爆破后台了，个人博客能存啥有价值的东西,有这时间不如去扫俩放片的网站","my-test-key-289354","[\"articles\",\"moments\",\"licenses\",\"short-links\",\"web-hosting\"]","#c23dff","[\"articles\",\"moments\",\"site\",\"background\"]","个人简介","关于本站","\u003Cdiv>\n\n  \u003Cdiv style=\"background: linear-gradient(135deg, rgba(59,130,246,.14), rgba(139,92,246,.10)); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 22px 24px; margin-bottom: 18px;\">\n    \u003Ch3 style=\"margin: 0 0 10px; font-size: 20px; letter-spacing: .5px;\">👋 你好，欢迎来到我的站点\u003C\u002Fh3>\n    \u003Cp style=\"margin: 0; line-height: 1.9; font-size: 15px;\">这里是我亲手搭建的个人博客 —— 由 \u003Ccode style=\"background: rgba(0,0,0,.28); padding: 2px 7px; border-radius: 5px; font-size: 13px;\">Nuxt 3 + FastAPI + SQLite\u003C\u002Fcode> 驱动，前后端、部署、运维全部自己动手。写代码、踩坑、记录，也分享一些有意思的个人项目。\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003Ch3 style=\"font-size: 17px; margin: 22px 0 10px;\">📖 关于本站\u003C\u002Fh3>\n  \u003Cp style=\"line-height: 1.9; font-size: 15px; margin: 0;\">博客的每一行代码、每一次部署都由我独立完成。文章以「实战」为主 —— 不只讲怎么做，更讲为什么这么做、以及踩过的坑，希望能给同样在路上的你一些参考。\u003C\u002Fp>\n\n  \u003Ch3 style=\"font-size: 17px; margin: 22px 0 10px;\">🧰 博客里有什么\u003C\u002Fh3>\n  \u003Cdiv style=\"display: flex; flex-wrap: wrap; gap: 10px;\">\n    \u003Cdiv style=\"flex: 1 1 45%; min-width: 150px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: 12px; padding: 14px;\">\n      \u003Cdiv style=\"font-size: 20px;\">✍️\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-weight: 600; margin-top: 6px;\">技术文章\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-size: 13px; opacity: .8; margin-top: 4px; line-height: 1.6;\">Vue \u002F Nuxt、FastAPI、Linux 运维、nginx 等实战经验\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv style=\"flex: 1 1 45%; min-width: 150px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: 12px; padding: 14px;\">\n      \u003Cdiv style=\"font-size: 20px;\">💬\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-weight: 600; margin-top: 6px;\">碎念与随笔\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-size: 13px; opacity: .8; margin-top: 4px; line-height: 1.6;\">简短的心情记录与随想，随手记下瞬间\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv style=\"flex: 1 1 45%; min-width: 150px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: 12px; padding: 14px;\">\n      \u003Cdiv style=\"font-size: 20px;\">🔗\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-weight: 600; margin-top: 6px;\">短链\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-size: 13px; opacity: .8; margin-top: 4px; line-height: 1.6;\">把长链接压缩成好记的短码，分享更轻松\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv style=\"flex: 1 1 45%; min-width: 150px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: 12px; padding: 14px;\">\n      \u003Cdiv style=\"font-size: 20px;\">🖼️\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-weight: 600; margin-top: 6px;\">图床\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-size: 13px; opacity: .8; margin-top: 4px; line-height: 1.6;\">图片托管，一键上传复制外链\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv style=\"flex: 1 1 45%; min-width: 150px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: 12px; padding: 14px;\">\n      \u003Cdiv style=\"font-size: 20px;\">📦\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-weight: 600; margin-top: 6px;\">网盘\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-size: 13px; opacity: .8; margin-top: 4px; line-height: 1.6;\">加密分享文件，设密码、限次数、可过期\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv style=\"flex: 1 1 45%; min-width: 150px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.10); border-radius: 12px; padding: 14px;\">\n      \u003Cdiv style=\"font-size: 20px;\">🌐\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-weight: 600; margin-top: 6px;\">网页托管\u003C\u002Fdiv>\n      \u003Cdiv style=\"font-size: 13px; opacity: .8; margin-top: 4px; line-height: 1.6;\">上传静态网页 zip，一键发布访问\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Ch3 style=\"font-size: 17px; margin: 22px 0 10px;\">🧭 内容方向\u003C\u002Fh3>\n  \u003Cul style=\"line-height: 1.9; font-size: 15px; margin: 0; padding-left: 20px;\">\n    \u003Cli>前后端开发与个人项目实践\u003C\u002Fli>\n    \u003Cli>解决问题的思路与踩坑记录\u003C\u002Fli>\n    \u003Cli>效率工具与折腾心得\u003C\u002Fli>\n    \u003Cli>偶尔的生活随笔与碎念\u003C\u002Fli>\n  \u003C\u002Ful>\n\n  \u003Cdiv style=\"background: rgba(34,197,94,.08); border: 1px solid rgba(34,197,94,.18); border-radius: 12px; padding: 14px 18px; margin-top: 20px;\">\n    \u003Cp style=\"margin: 0; line-height: 1.8; font-size: 14px;\">💡 \u003Cb>交流\u003C\u002Fb>：欢迎在文章评论区留言，或通过首页的社交链接找到我。如果你也喜欢折腾技术，随时来聊聊。\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n\u003C\u002Fdiv>","{\"lines\":25,\"arcs\":25,\"wave_lines\":8,\"noise\":1500,\"amplitude\":15,\"rotation\":34,\"char_len\":4}","90","[\"127.0.0.1\", \"118.212.158.206\", \"152.32.212.152\", \"223.160.216.153\"]","{\"lock_threshold\": \"5\", \"lock_duration\": \"300\", \"auto_ban_threshold\": \"10\", \"auto_ban_duration\": \"86400\", \"middleware_enabled\": \"True\", \"block_on_malicious_ua\": \"True\"}","[{\"name\": \"今日总结\", \"content\": \"今日总结:\\n    \"}, {\"name\": \"技术备忘\", \"content\": \"记录一个开发小技巧：\"}, {\"name\": \"心情随笔\", \"content\": \"此刻的心情是：\"}, {\"name\": \"生活日常\", \"content\": \"今天发生了这样一件事：\"}]","normal","{\"8.156.84.203\": 1}","[{\"time\": \"2026-08-27 11:29:17\", \"type\": \"service\", \"message\": \"后端服务(127.0.0.1:8001)无响应\", \"value\": 0, \"threshold\": 0}]","{\"window\":60,\"max\":2}","[{\"key\":\"home\",\"to\":\"\u002F\",\"label\":\"首页\",\"enabled\":true},{\"key\":\"categories\",\"to\":\"\u002Fcategories\",\"label\":\"分类\",\"enabled\":true},{\"key\":\"tags\",\"to\":\"\u002Ftags\",\"label\":\"标签\",\"enabled\":true},{\"key\":\"pan\",\"to\":\"\u002Fpan\",\"label\":\"网盘\",\"enabled\":true},{\"key\":\"uploads\",\"to\":\"\u002Fuploads\",\"label\":\"图床\",\"enabled\":true},{\"key\":\"host\",\"to\":\"\u002Fhost\",\"label\":\"托管\",\"enabled\":true},{\"key\":\"short\",\"to\":\"\u002Fshort\",\"label\":\"短链\",\"enabled\":true},{\"key\":\"moments\",\"to\":\"\u002Fmoments\",\"label\":\"碎念\",\"enabled\":true},{\"key\":\"about\",\"to\":\"\u002Fabout\",\"label\":\"关于\",\"enabled\":true}]","3","60","0",{"active_scale":64,"active_translate_y":62,"bare_bg_opacity":65,"bare_bg_opacity_dark":66,"bare_blur":67,"bg_opacity":68,"bg_opacity_dark":69,"blur":70,"border_opacity":71,"border_radius":72,"hover_scale":64,"hover_translate_y":64,"l_bg_opacity":73,"l_bg_opacity_dark":74,"l_blur":40,"l_border_opacity":75,"mobile_flat_card":76,"nav_border_radius":77,"nav_padding_x":78,"nav_padding_y":79,"padding":80,"shadow_intensity":61,"t_bg_opacity":81,"t_bg_opacity_dark":71,"t_blur":72,"t_border_opacity":71,"t_shadow_intensity":61},"1","0.15","0.06","8","0.2","0.6","50","0.4","30","0.05","0.03","0.3","flat","0.5","0.75","0.375","1.5","0.1",{"title":83,"slug":84,"content_md":85,"summary":32,"cover_image":32,"category_id":86,"is_published":87,"is_top":88,"top_order":89,"is_deleted":88,"allow_comment":87,"meta":90,"id":91,"view_count":92,"created_at":93,"updated_at":94,"published_at":93,"category":95,"tags":99},"linux命令详解","linux-commands-explain","# 1.ls命令入门\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff79e779b818146e0ac2ce75dd4633e19.png)\n\n示例：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffaf4d358f31a4e4293cba513d3823d60.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb78a30defc9e409994e51763ff200d30.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5f0edd32a61943fc9af37503abcde57e.png)\n\n## 1.1ls命令的-a选项\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd58b76144a8e474286c5ed3a376aee54.png)\n\n## 1.2ls命令的-l选项\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fc9e8a0c64e5d48cb82434f84ba0d1a0f.png)\n\n## 1.3ls命令选项的组合使用\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7b04ff48875b46cc897da932cd11a0ff.png)\n\n## 1.4ls选项和参数（路径）的组合使用\n除了选项本身可以组合以外，选项和参数也可以一起使用。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F1e9799bf78964038b6c49883f438dc04.png)\n\n## 1.5ls命令的-h选项\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5f862b98d415463b8b706ed8ec64394b.png)\n\n记住：ls命令的-h选项必须要和-l选项一起使用\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F2ee8ae3543d44c72b7358d977aa4909c.png)\n\n## ls总结：\n1. Linux命令的基础格式\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff8dcdf76d2124302b598d3680eb71ce1.png)\n\n2. ls命令的语法和作用\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F6fd43d32185e459d83fffcfbd84a3120.png)\n\n•-a列出全部内容、-l以列表展示、-h更易读的大小显示\n\n•参数表示要列出内容的路径，不提供即列出当前工作目录内容\n\n3. 当前工作目录和HOME目录\n\n•Linux终端（命令行）启动后默认价值HOME目录作为当前工作的目录\n\n•HOME目录指：用户在系统内的专属目录\n\n4. 隐藏文件\\文件夹\n\n•在Linux系统中，以”.”开头的文件\\文件夹会自动隐藏\n\n•只有通过-a选项才可以展示出来\n\n# 2.目录切换的相关命令（pwd\u002Fcd）\n## 2.1cd切换工作目录\n当Linux终端（命令行）打开的时候，会默认以用户的HOME目录作为当前的工作目录\n\n我们可以通过cd命令，更改当前所在的工作目录。\n\ncd命令来自英文：Change Directory\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F3f4dd5368a004a7f91c6def2cf2bacc7.png)\n\n•cd命令无需选项，只有参数，表示要切换到哪个目录下\n\n•cd命令直接执行，不写参数，表示回到用户的HOME目录\n\n切换到根目录（可以通过ls命令查看根目录下的内容）：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0898412ca50447479d3be3e251f3b9b0.png)\n\ncd不加参数回到home目录：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F26c640c469c34f0697afe94f28981cc4.png)\n\n## 2.2pwd查看当前工作目录\n通过ls来验证当前的工作目录，其实是不恰当的。\n\n我们可以通过pwd命令，来查看当前所在的工作目录。\n\npwd命令来自：Print Work Directory\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F4570f907ec2f4d9b8fca32f73871d73e.png)\n\n•pwd命令，无选项，无参数，直接输入pwd即可\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb276157f0b8c4293b2bfee524a45a4d2.png)\n\n## 2.3总结：\n1. cd命令的作用\n\n•cd命令来自英文：Change Directory\n\n•cd命令可以切换当前工作目录，语法是：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F6f82da9a7b9047db82cc1b347afeb04b.png)\n\n•没有选项，只有参数，表示目标路径\n\n•使用参数，切换到指定路径\n\n•不使用参数，切换工作目录到当前用户的HOME\n\n2. pwd命令的作用\n\n•pwd命令来自英文：Print Work Directory\n\n•pwd命令，没有选项，没有参数，直接使用即可\n\n•作用是：输出当前所在的工作目录\n\n# 3.相对路径、绝对路径和特殊路径符\n## 3.1相对路径和绝对路径\n如图，通过pwd得知当前所在是HOME目录：\u002Fhome\u002Fleap\n\n现在想要通过cd命令，切换工作目录到Desktop文件夹中去。\n\n那么，cd命令的参数（Linux路径）如何写呢？\n\n•cd \u002Fhome\u002Fleap\u002FDesktop\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F1b78f32d458446a49687f74f382bbc46.png)\n\n•cd Desktop\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb6a38bb143484f8f96a1c10ba73ec107.png)\n\n上述两种写法，都可以正确的切换目录到指定的Desktop中。\n\n绝对路径：以根目录为起点，描述路径的一种写法，路径描述以\u002F开头\n\n相对路径：以当前目录为起点，描述路径的一种写法，路径描述无需以\u002F开头\n\n## 3.2特殊路径符\n当前工作目录处于：\u002Fhome\u002Fleap\u002FDesktop\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fbdff5f9f148f4c42ab3a2d4168006fb6.png)\n\n现在想要，向上回退一级，切换目录到\u002Fhome\u002Fleap中，如何做？\n\n•可以直接通过cd，即可回到HOME目录\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F72ba41dbfd8642028190762289101aea.png)\n\n•也可以通过特殊路径符来完成。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F1968c33bf97040b7a3054bc470f360bd.png)\n\n特殊路径符：\n\n•.  表示当前目录，比如 cd .\u002FDesktop 表示切换到当前目录下的Desktop目录内，和cd Desktop效果一致\n\n•..  表示上一级目录，比如：cd ..   即可切换到上一级目录，cd ..\u002F..  切换到上二级的目录\n\n•**~  表示HOME目录**，比如：cd ~    即可切换到HOME目录或cd ~\u002FDesktop，切换到HOME内的Desktop目录\n\n程序员的浪漫：（cd ~表示切换到home文件夹，下班回家咯~）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F610f9b601a1a48a0aadb42ab6734eacd.png)\n\n## 3.3总结：\n1. 相对路径和绝对路径\n\n•绝对路径：以根目录做起点，描述路径的方式，路径以\u002F开头\n\n•相对路径：以当前目录做起点，描述路径的方式，路径不需以\u002F开头\n\n•如无特殊需求，后续学习中，将经常使用相对路径表示\n\n2. 特殊路径符有哪些？\n\n•. 表示当前目录，比如cd . 或 cd .\u002FDesktop\n\n•.. 表示上一级目录，比如：cd ..  或 cd ..\u002F..\n\n•~ 表示用户的HOME目录，比如：cd ~ 或 cd ~\u002FDesktop\n\n# 4.创建目录命令（mkdir）\n通过mkdir命令可以创建新的目录（文件夹）\n\nmkdir来自英文：Make Directory\n\n语法：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F9423c882e10e4194bc0c54e74f7f1584.png)\n\n•参数必填，表示Linux路径，即要创建的文件夹的路径，相对路径或绝对路径均可\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F3170251859c64675ab6f236405987771.png)\n\n•-p选项可选，表示自动创建不存在的父目录，适用于创建连续多层级的目录\n\n## 4.1mkdir -p选项   创建多个层级目录\n如果想要一次性创建多个层级的目录，如下图：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5101e114e52343a097057ba89abc703b.png)\n\n会报错，因为上级目录test2并不存在，所以无法创建666目录\n\n可以通过-p选项，将一整个链条都创建完成：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F79f16554745a4d77a79b10a095e91fc5.png)\n\n**注意：创建文件夹需要修改权限，请确保操作均在HOME目录内，不要在HOME外操作**\n\n**涉及到权限问题，****HOME****外无法成功**\n\n**后续会讲解权限管控的知识**\n\n## mkdir总结：\n1. mkdir命令的语法和功能\n\n•mkdir用以创建新的目录（文件夹）\n\n•语法：\n\n•参数必填，表示要创建的目录的路径，相对、绝对、特殊路径符都可以使用\n\n2. -p选项的作用\n\n•可选，表示自动创建不存在的父目录，适用于创建连续多层级的目录\n\n# 5.文件操作命令1（touch创建、cat查看、more分页查看）\n## 5.1touch创建文件\n可以通过touch命令创建文件\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F1aa643b54372473f820dc73f911b034a.png)\n\n•touch命令**无选项**\t，**参数必填**，表示要创建的文件路径，相对、绝对、特殊路径符均可以使用\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0db7ecf20df94444b42061ba62b8ab9e.png)\n\n## 5.2cat查看文件内容\n有了文件后，我们可以通过cat命令查看文件的内容。\n\n不过，现在我们还未学习vi编辑器，无法向文件内编辑内容，所以，暂时，我们先通过图形化，在图形化中，手动向文件内添加内容，以测试cat命令：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F9ea947d8669f43c6a7618d3be9227a6d.png)\n\n准备好文件内容后，可以通过cat查看内容。\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F634e2152d70440e5a960b511d939ca6c.png)\n\n•cat同样没有选项，只有必填参数，参数表示：被查看的文件路径，相对、绝对、特殊路径符都可以使用\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fdeb73293de1a4c258b7cef81cc21ab22.png)\n\n## 5.3more翻页查看文件内容\nmore命令同样可以查看文件内容，同cat不同的是：\n\n•cat是直接将内容全部显示出来\n\n•more**支持翻页**，如果文件内容过多，可以一页页的展示\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F51774c0cccef4ad9be3934ff6c5c422d.png)\n\n•同样**没有选项，只有必填参数**，参数表示：被查看的文件路径，相对、绝对、特殊路径符都可以使用\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F2e66e0157ca44a1a9eaff23a17b909fb.png)\n\nLinux系统内置有一个文件，路径为：\u002Fetc\u002Fservices，可以使用more命令查看\n\nmore \u002Fetc\u002Fservices\n\n•在查看的过程中，**通过空格翻页**\n\n**通过q退出查看**\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F88d7b13070094e7da0e2dffae3d14d25.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F66a4078ebe664d86be08c226312ac518.png)\n\n## 5.4总结：\n1. touch命令\n\n•用于创建一个新的文件\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F44cb59f5c56e4693b30c5ef57dc52a79.png)\n\n•参数必填，表示要创建的文件的路径，相对、绝对、特殊路径符都可以使用\n\n2. cat命令\n\n•用于查看文件内容\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd9daf9188f664d5bbc6ed90fabd070af.png)\n\n•参数必填，表示要查看的文件的路径，相对、绝对、特殊路径符都可以使用\n\n3. more命令\n\n•用于查看文件内容，可翻页查看\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F66aaadf2b40e45b88afe6e10bf4df35c.png)\n\n•参数必填，表示要查看的文件的路径，相对、绝对、特殊路径符都可以使用\n\n•使用空格进行翻页，使用q退出查看\n\n# 6.文件操作命令2（cp复制文件或文件夹、mv移动文件或文件夹、rm删除文件或文件夹）\n## 6.1cp复制文件或文件夹\ncp命令可以用于复制文件\\文件夹，cp命令来自英文单词：copy\n\n语法：\n\n•-r选项，可选，用于复制文件夹使用，表示递归\n\n•参数1，Linux路径，表示被复制的文件或文件夹\n\n•参数2，Linux路径，表示要复制去的地方\n\n复制文件\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff456762157204e338ba07096589b3df1.png)\n\n复制文件夹（复制文件夹，必须使用-r选项，否则不会生效）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F150e237a3d22431a871ebc289a842505.png)\n\n## 6.2mv移动文件或文件夹\nmv命令可以用于移动文件\\文件夹，mv命令来自英文单词：move\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F899317c139064933988f52096f94d513.png)\n\n•参数1，Linux路径，表示被移动的文件或文件夹\n\n•参数2，Linux路径，表示要移动去的地方，如果目标不存在，则进行改名，确保目标存在\n\n移动文件test1.txt到Desktop文件夹：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F13a1434ec8d34dfc8c1230ec72965ee9.png)\n\n移动文件test2.txt到test3.txt（不存在），mv命令具有给文件命名的功能（目标路径不存在的test3.txt）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F74b6c189c71242aba255880fe93899f9.png)\n\n## 6.3rm删除文件或文件夹\nrm命令可用于删除文件、文件夹\n\nrm命令来自英文单词：remove\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fbd50789f6b614211ba18df922988cc43.png)\n\n•同cp命令一样，-r选项用于的对象是文件夹，不是文件\n\n•-f表示force，强制删除（不会弹出提示确认信息）\n\n•普通用户删除内容不会弹出提示，只有root管理员用户删除内容会有提示\n\n•所以一般普通用户用不到-f选项\n\n参数1、参数2、......、参数N 表示要删除的文件或文件夹路径，按照空格隔开\n\n删除文件：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F8141ce0f32a744a99385fc216a6ac865.png)\n\n删除文件夹（删除文件夹的时候记得加上-r的选项）：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F66a284f050314c1a831ac13b87111175.png)\n\n删除多个文件：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F6145b8ae9d024d048a56565694a6e971.png)\n\nroot用户对文件和文件夹的操作：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd8cf96c53c354296b39db9afbe0cb431.png)\n\n退出root用户（exit命令）：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F18aab4c3330c42169cf8aabc183be5e2.png)\n\n## 6.4rm删除文件、文件夹-通配符\nrm命令支持通配符 *，用来做模糊匹配\n\n•符号* 表示通配符，即匹配任意内容（包含空），示例：\n\n•test*，表示匹配任何以test开头的内容\n\n•*test，表示匹配任何以test结尾的内容\n\n•*test*，表示匹配任何包含test的内容\n\n删除所有以test开头的文件或文件夹:\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fa7e4be3297154298804df4f8dfb55d8d.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F4801552158084f8487fd3396c696bb0b.png)\n\n## cp总结：\n1. cp命令\n\n•用于复制文件或文件夹\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F604a6dd6c9d24f86895d7732b0476cf3.png)\n\n•-r选项，可选，用于复制文件夹使用，表示递归\n\n•参数1，Linux路径，表示被复制的文件或文件夹\n\n•参数2，Linux路径，表示要复制去的地方\n\n2. mv命令\n\n•用于查看文件内容\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5455d7c6fbbe4a4f83957ba55af68952.png)\n\n•参数1，Linux路径，表示被移动的文件或文件夹\n\n•参数2，Linux路径，表示要移动去的地方，如果目标不存在，则进行改名，确保目标存在\n\n3. rm命令\n\n•用于复制文件或文件夹\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fafc04840d0e044a9bce78d13e296d0db.png)\n\n•-r选项，可选，文件夹删除\n\n•-f选项，可选，用于强制删除（不提示，一般用于root用户）\n\n•参数，表示被删除的文件或文件夹路径，支持多个，空格隔开\n\n•参数也支持通配符 *，用以做模糊匹配\n\n# 7.查找命令（which、find）\n## 7.1which查找命令所在的路径\n在前面学习的Linux命令，其实它们的本体就是一个个的二进制可执行程序。\n\n和Windows系统中的.exe文件，是一个意思。\n\n我们可以通过which命令，查看所使用的一系列命令的程序文件存放在哪里\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe8697dad166c4e148812977d6bc03f0b.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F2a7d70050d4343338eda6cd9252b344b.png)\n\n## 7.2find命令 - 按文件名查找文件\n在图形化中，我们可以方便的通过系统提供的搜索功能，搜索指定的文件。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F97c507b67d5a4d9286425206c967d3c1.png)\n\n同样，在Linux系统中，我们可以通过find命令去搜索指定的文件。\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fa54dc726a2864c5b8c292eec32af3052.png)\n\n为了确保后续演示，拥有最大的权限，可以在整个系统完成搜索\n\n我们可以切换到root用户以获得管理员权限\n\n执行命令：\n\nsu - root\n\n输入密码：123456（和你普通用户的密码一样）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0f7ffa2a89c74980a5aa07fa39cafc7c.png)\n\n查找文件名叫做：test的文件，从根目录开始搜索\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F85f87277981f47f1820c00ab3d5ecfc2.png)\n\n基于语法，可以有命令：\n\nfind \u002F -name “test”\n\n****\n\n**意思就是在根路径下查找文件名为test的文件**\n\n****\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7b05eb12da0f4406b29af378604844b6.png)\n\n## 7.3find搭配通配符模糊查询\n根据语法：\n\n被查找文件名，支持使用通配符 * 来做模糊查询。\n\n•符号* 表示通配符，即匹配任意内容（包含空）\n\n•test*，表示匹配任何以test开头的内容\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fc6285af6b9ac40a6b2c27599d6ea63fd.png)\n\n•*test，表示匹配任何以test结尾的内容\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd39a03163b4f4594a14a432e94aa2ce6.png)\n\n•*test*，表示匹配任何包含test的内容\n\n> 这个笔记忽略，太简单\n>\n\n基于通配符的含义，可以结合find命令做文件的模糊查询。\n\n## 7.4find命令 - 按文件大小查找文件\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7466bd16fba942bbb73f48c403e00d59.png)\n\n•+、- 表示大于和小于\n\n•n表示大小数字\n\n•kMG表示大小单位，k(小写字母)表示kb，M表示MB，G表示GB\n\n示例：\n\n•查找小于10KB的文件： find \u002F -size -10k\n\n> 小于10kb的文件太多了，不整了\n>\n\n•查找大于100MB的文件：find \u002F -size +100M\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F3334863832cf46b2a11ea41e2841c687.png)\n\n•查找大于1GB的文件：find \u002F -size +1G\n\n## 7.5总结：\n1. which命令\n\n•查找命令的程序文件\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe0a1beb3e21e4bd8973c3566f255e7ad.png)\n\n•无需选项，只需要参数表示查找哪个命令\n\n2. find命令\n\n•用于查找指定的文件\n\n•按文件名查找：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fcd3706326e524d5bb2e695908097b1c5.png)\n\n•支持通配符\n\n•按文件大小查找：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F4aadda4090e24cc2aab8ad00b5d7bdfb.png)\n\n# 8.grep（关键字过滤搜索）、wc（统计）和管道符\n## 8.1grep（关键字过滤搜索）命令\n可以通过grep命令，从文件中通过关键字过滤文件行。\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F74a0f1c9ac4c48418e21808c8c0e888f.png)\n\n•选项-n，可选，表示在结果中显示匹配的行的行号。\n\n•参数，关键字，必填，表示过滤的关键字，带有空格或其它特殊符号，建议使用””将关键字包围起来\n\n参数，文件路径，必填，表示要过滤内容的文件路径，可作为内容输入端口\n\n现在，通过touch命令在HOME目录创建leap.txt，并通过图形化页面编辑并保存如下内容：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F4c0a1158a53d4841b321365d24d9c524.png)\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F79a7890366b14a11a7a2d301d8c8aaaa.png)\n\n•过滤leap关键字(可以在关键字上加引号，也可以不加)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F439e7ada64e541dfb74f18b55e7012f1.png)\n\n•过滤mycl关键字\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd5fab1a2a1864544ac7ec1060f025650.png)\n\n•过滤123关键字，并显示行号\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F426cbf4dbe4a4c84a5792d361f4fbc15.png)\n\n## 8.2wc命令做数量统计\n可以通过wc命令统计文件的行数、单词数量等\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F4e800c1deffd4971958129141133cf04.png)\n\n•选项，-c，统计bytes数量\n\n•选项，-m，统计字符数量\n\n•选项，-l，统计行数\n\n•选项，-w，统计单词数量\n\n•参数，文件路径，被统计的文件，可作为内容输入端口\n\n•不带选项，统计文件\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F133c5dabf3b749cdb48137990400ae49.png)\n\n•统计字节数\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F6fe08092f1164c05a4d3462cc77b68e5.png)\n\n•统计字符数\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F8e96a955acff4abfb94e829773330e06.png)\n\n•统计行数\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F6aa45a9f054f495798aec5a3614e1a50.png)\n\n•统计单词数\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5463e7b19c314fb0925c2e464ec75df6.png)\n\n## 8.3管道符\n学习了grep命令后，我们在来学习一个新的特殊符号，管道符：|\n\n管道符的含义是：将管道符左边命令的结果，作为右边命令的输入\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F8d11deba311a401c9de983e6e501bcb8.png)\n\n如上图：\n\n•cat itheima.txt的输出结果（文件内容）\n\n•作为右边grep命令的输入（被过滤文件）\n\n管道符的应用非常多:\n\n过滤ls的结果:\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fc782f9edfcc84ff2960d33c45d1d2daf.png)\n\n过滤指定路径下的关键字的文件：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F3ad1676e6a1f44daa5f057515b9e6b4c.png)\n\n嵌套使用命令：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd008810436634a80aa7f32794be41b48.png)\n\ncat leap0203.txt的结果给grep \"12345\"使用；\n\ncat leap0203.txt | grep \"12345\"的结果给grep \"leap\"使用\n\n## 8.4总结：\n1. grep命令\n\n•从文件中通过关键字过滤文件行\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb41c955c506d4aceb810837fd17ac643.png)\n\n•选项-n，可选，表示在结果中显示匹配的行的行号。\n\n•参数，关键字，必填，表示过滤的关键字，建议使用””将关键字包围起来\n\n•参数，文件路径，必填，表示要过滤内容的文件路径，可作为管道符的输入\n\n2. wc命令\n\n•命令统计文件的行数、单词数量、字节数、字符数等\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd0cbe86e92bf4f31945b4f0e75cea109.png)\n\n•不带选项默认统计：行数、单词数、字节数\n\n•-c字节数、-m字符数、-l行数、-w单词数\n\n•参数，被统计的文件路径，可作为管道符的输入\n\n3. 管道符 |\n\n•将管道符左边命令的结果，作为右边命令的输入\n\n## 课后练习：\n对桌面创建的test1.txt进行统计\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F71442419ee664de2b64b6c30d359c775.png)\n\n请使用cat、grep、管道符、wc命令组合，进行统计：\n\n•统计文件中带有leap关键字的有几行:\n\n  cat test1.txt| grep leap | wc -l\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe3159d4d36c94d22bde150269f9e10b7.png)\n\n•统计文件中带有mycl关键字的结果中有多少个单词\n\ncat test.txt | grep mycl | wc -w\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0d24e63dab434e5397a7a905e32871e2.png)\n\n# 9.echo输出命令、反引号`、重定向符写入、tail跟踪命令\n## 9.1echo命令\n可以使用echo命令在命令行内输出指定内容\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F01fdbbceabca411cab07b2220270e0a8.png)\n\n•无需选项，只有一个参数，表示要输出的内容，复杂内容可以用””包围\n\n演示：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7536e30f79e842668d216fdc7f33350f.png)\n\n•在终端上显示：Hello Linux\n\n•带有空格或\\等特殊符号，建议使用双引号包围\n\n•因为不包围的话，空格后很容易被识别为参数2，尽管echo不受影响，但是要养成习惯哦\n\n## 9.2反引号`\n看一下如下命令：echo pwd\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd29445e7efb446b5a7bf42aa80567b97.png)\n\n本意是想，输出当前的工作路径，但是pwd被作为普通字符输出了。\n\n我们可以通过将命令用反引号（通常也称之为飘号）`将其包围\n\n被`包围的内容，会被作为命令执行，而非普通字符\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd9c3a075a1ac4aadb5f05798cf48f70b.png)\n\n## 9.3重定向符\n重定向符：>和>>\n\n•>，将左侧命令的结果，覆盖写入到符号右侧指定的文件中\n\n•>>，将左侧命令的结果，追加写入到符号右侧指定的文件中\n\n以桌面的一个test1.txt文件进行演示：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fdbba953c17614063be68ea4498fd52f6.png)\n\n•echo “Hello Linux” > test1.txt\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F25029c22e66247a39418ace31e28c3d1.png)\n\n•echo “Hello leap” > test1.txt，再次执行，覆盖新内容\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F2397bfaab5aa4b5aa67271791a85e39e.png)\n\n•echo “Hello leap” >> test1.txt，再次执行，使用>>追加新内容\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F64517569f2d245fca1bea9b187eeb469.png)\n\n## 9.4tail追踪命令\n使用tail命令，可以查看文件尾部内容，跟踪文件的最新更改，语法如下：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe716cb18784b48549097284321ff07d2.png)\n\n•参数，Linux路径，表示被跟踪的文件路径\n\n•选项，-f，表示持续跟踪\n\n•选项, -num，表示，查看尾部多少行，不填默认10行（这里的-num的意思不是后面加个-num，是需要查看尾部多少行就写-多少）\n\n•查看\u002Fvar\u002Flog\u002Fvmware-network.log文件的尾部10行(10行是默认的)：tail \u002Fvar\u002Flog\u002Fvmware-network.log\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5b39df03b8474219a0568141b40939a4.png)\n\n•查看\u002Fvar\u002Flog\u002Fvmware-network.log文件的尾部3行：tail -3 \u002Fvar\u002Flog\u002Fvmware-network.log\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fcef76743c63e470ab846803857cfd167.png)\n\ntail持续跟踪文件更改:\n\n使用-f选项，可以持续跟踪文件更改\n\n•复制一个新的FinalShell的标签\n\n•\n\n•\n\n•在第一个标签中，执行：touch test.txt，创建一个test.txt文件\n\n•在第一个标签中，执行：tail -f test.txt，持续跟踪文件更改\n\n•在第二个标签中，多次执行：echo “内容” >> test.txt，向文件追加内容\n\n•观察第一个标签的变化使用-f选项，可以持续跟踪文件更改\n\n•复制一个新的FinalShell的标签\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F9e2f3079b45e4e7fa1cab2036e845338.png)\n\n•在第一个标签中，执行：touch test.txt，创建一个test.txt文件\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F20369fa409dd4812b1e3b635ce29ea0a.png)\n\n•在第一个标签中，执行：tail -f test.txt，持续跟踪文件更改\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F556eecc9b4c347dd818cd95c580f7860.png)\n\n•在第二个标签中，多次执行：echo “内容” >> test.txt，向文件追加内容\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb215abe45cb54041969ce36e58089284.png)\n\n•观察第一个标签的变化\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Faac9624338a64806bfcd09af447551c7.png)\n\n8.4总结\n\n1. echo命令\n\n•可以使用echo命令在命令行内输出指定内容\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F55e7ac1bfa18459684e7f1ac6704a200.png)\n\n•无需选项，只有一个参数，表示要输出的内容，复杂内容可以用””包围\n\n2. `反引号符\n\n•被`包围的内容，会被作为命令执行，而非普通字符\n\n3. 重定向符\n\n•>，将左侧命令的结果，覆盖写入到符号右侧指定的文件中\n\n•>>，将左侧命令的结果，追加写入到符号右侧指定的文件中\n\n4. tail命令\n\n•查看文件尾部内容，并可以持续跟踪\n\n•语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F212f3d05958b4e24877298214e481cc8.png)\n\n•-f：持续跟踪，-num：启动的时候查看尾部多少行，默认10\n\n•Linux路径，表示被查看的文件\n\n# 10.vi\u002Fvim编辑器\nvi\\vim是visual interface的简称, 是Linux中最经典的文本编辑器\n\n同图形化界面中的文本编辑器一样，vi是命令行下对文本文件进行编辑的绝佳选择。\n\nvim 是 vi 的加强版本，兼容 vi 的所有指令，不仅能编辑文本，而且还具有 shell 程序编辑的功能，可以不同颜色的字体来辨别语法的正确性，极大方便了程序的设计和编辑性。\n\n## 10.1vi\\vim编辑器的三种工作模式:\n命令模式（Command mode）\n\n命令模式下，所敲的按键编辑器都理解为命令，以命令驱动执行不同的功能。\n\n此模型下，不能自由进行文本编辑。\n\n输入模式（Insert mode）\n\n也就是所谓的编辑模式、插入模式。\n\n此模式下，可以对文件内容进行自由编辑。\n\n底线命令模式（Last line mode）\n\n以：开始，通常用于文件的保存、退出。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd74967da10a54e9a886efbb07b939066.png)\n\n如果需要通过vi\u002Fvim编辑器编辑文件，请通过如下命令：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F91fab46b00e14c97b464616eba6c9ecc.png)\n\nvim兼容全部的vi功能，后续全部使用vim命令\n\n•如果文件路径表示的文件不存在，那么此命令会用于编辑新文件\n\n•如果文件路径表示的文件存在，那么此命令用于编辑已有文件\n\n快速体验\n\n1.使用：vim hello.txt，编辑一个新文件，执行后进入的是命令模式\n\n2.在命令模式内，按键盘i，进入输入模式\n\n3.在输入模式内输入：hello-leap\n\n4.输入完成后，按esc回退会命令模式\n\n5.在命令模式内，按键盘 : ，进入底线命令模式\n\n6.在底线命令内输入：wq，保存文件并退出vi编辑器\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F06cf386d20904cb0b5148bf850bf2b77.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fed5c2832b5e84827a5751f3d50a58036.png)\n\n## 10.2命令模式快捷键\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff0119a775f1a43ad9cfdcd9a39f57dd8.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd58121fb65fe488781431519a17888a3.png)\n\n## 10.3底线命令模式：\n编辑模式没有什么特殊的，进入编辑模式后，任何快捷键都没有作用，就是正常输入文本而已。\n\n唯一大家需要记住的，就是：通过esc，可以退回到命令模式中即可。\n\n在命令模式内，输入: ，即可进入底线命令模式，支持如下命令：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fc7ab5a6511c247ffaf227b46fe798fc0.png)\n\n## 10.4总结：\n1. 什么是vi\u002Fvim编辑器\n\n•vi\\vim编辑器，就是命令行模式下的文本编辑器，用来编辑文件\n\n•vim是vi的升级版，一般用vim即可，包含全部vi功能\n\n2. 基础命令\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fa9c8db07ec554f18a220cd56a7c4b952.png)\n\n3. 运行模式\n\n•命令模式，默认的模式，可以通过键盘快捷键控制文件内容\n\n•输入模式，通过命令模式进入，可以输入内容进行编辑，按esc退回命令模式\n\n•底线命令模式，通过命令模式进入，可以对文件进行保存、关闭等操作\n\n## 补充：关于命令选项的说明\n如果想要对命令的其它选项进行查阅，可以通过如下方式：\n\n•任何命令都支持：--help 选项，可以通过这个选项，查看命令的帮助。\n\n如：ls --help，会列出ls命令的帮助文档\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F291c872c46f74da0998659483055fd91.png)\n\n帮助文档会简单的对命令的使用方式进行说明\n\n## 查看命令帮助和手册\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5468c6669fb64fe19781ad7a58c77f4d.png)\n\n# 11.root用户\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F346ba0f4da9a486f828c2fe8f683bf16.png)\n\n## 11.1su和exit命令\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fcdea6c86feb04fc6ba8e04f17d1a66fa.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0bd452cd8aa44b6d90afb4d1b27e7e8a.png)\n\n## 11.2sudo命令\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe1e06a0cacf44cbdb77ba9c140b2bd5e.png)\n\n## 11.3为普通用户配置sudo认证\n•切换到root用户，执行visudo命令，会自动通过vi编辑器打开：\u002Fetc\u002Fsudoers\n\n•在文件的最后添加：\n\n` leap ALL=(ALL)\t\tNOPASSWD:ALL`\n\n•其中最后的NOPASSWD:ALL 表示使用sudo命令，无需输入密码\n\n•最后通过wq保存\n\n•\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F56c65dde366b492abbdfbf7a331b9699.png)\n\n•切换回普通用户（Ctrl+D）:\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fcd7a795c9c6e4bb099fc0a68339c2599.png)\n\n以上执行的命令，均以root运行\n\n在根目录下以leap普通用户创建一个文件夹会出现权限不够:\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F8256453d14534717b1861166942e2a14.png)\n\n此时在刚刚的命令前面添加sudo就可以成功创建了：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb7b0c47db9d84f63856daa197e8aedb2.png)\n\n## 总结：\n1. Linux系统的超级管理员用户是：root用户\n\n2. su命令\n\n•可以切换用户，语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F9aa04f13145543a284607c7d13f233e2.png)\n\n•- 表示切换后加载环境变量，建议带上\n\n•用户可以省略，省略默认切换到root\n\n3. sudo命令\n\n•可以让一条普通命令带有root权限，语法：\n\n•需要以root用户执行visudo命令，增加配置方可让普通用户有sudo命令的执行权限\n\n# 12.用户和用户组\nLinux系统中可以：\n\n•配置多个用户\n\n•配置多个用户组\n\n•用户可以加入多个用户组中\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffbd43bf9afbc4cb8b84c3b2fde4a5ff9.png)\n\nLinux中关于权限的管控级别有2个级别，分别是：\n\n•针对用户的权限控制\n\n•针对用户组的权限控制\n\n比如，针对某文件，可以控制用户的权限，也可以控制用户组的权限。\n\n所以，我们需要学习在Linux中进行用户、用户组管理的基础命令，为后面学习权限控制打下基础\n\n## 12.1用户组管理（添加和删除命令）\n以下命令需root用户执行\n\n•创建用户组\n\ngroupadd用户组名\n\n•删除用户组\n\ngroupdel用户组名\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F96b32f58657c4290a787afe6af005fd2.png)\n\n为后续演示，我们创建一个itcast用户组：groupaddmycl\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F6fb4afa1aae842c68806256875ce7a45.png)\n\n## 12.2用户管理（创建、删除、查看、修改）\n以下命令需root用户执行\n\n•创建用户\n\nuseradd [-g -d] 用户名\n\n•选项：-g指定用户的组，不指定-g，会创建同名组并自动加入，指定-g需要组已经存在，如已存在同名组，必须使用-g\n\n•选项：-d指定用户HOME路径，不指定，HOME目录默认在：\u002Fhome\u002F用户名\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F8d1b9f621d384adab19e2f9069e16231.png)\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe20392c4e1004dd0a303d70c6b953610.png)\n\n•删除用户\n\nuserdel [-r] 用户名\n\n•选项：-r，删除用户的HOME目录，不使用-r，删除用户时，HOME目录保留，此时需要使用root用户 rm -rf 命令删除该文件\n\n•查看用户所属组\n\nid [用户名]\n\n•参数：用户名，被查看的用户，如果不提供则查看自身\n\n这里创建了一个用户test3，所属组为mycl\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F2deb813d552f4f64b4b0cbbe8fc7eeb7.png)\n\n查看该用户所属组可以切换到该用户，然后输入id命令即可查看：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fa5dcfaf7b59745d4b830d009566554a0.png)\n\n或者直接在root用户下直接id+该用户名直接查看：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F36ffa03877454bcba88ca10640f60839.png)\n\n•修改用户所属组\n\nusermod -aG用户组用户名，将指定用户加入指定用户组\n\n这里创建了test4用户：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7b94ffd8eb3148caa47ce0daf5631ff2.png)\n\n## 12.3getent命令\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F858940bad0e647d09c22d44516ddb8c6.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7aee0d11df844d5faa3804b2d6d0b6ac.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F998a0bb6501842bfb504441d510f14e8.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F14087c1961d94763bad772ed888e9107.png)\n\n## 总结：\n1. Linux用户管理模式\n\n•Linux可以支持多用户、多用户组、用户加入多个组\n\n•Linux权限管控的单元是用户级别和用户组级别\n\n2. 用户、用户组相关管理命令\n\n•groupadd添加组、groupdel删除组\n\n•useradd添加用户、userdel删除用户\n\n•usermod修改用户组、id命令查看用户信息\n\n•getent passwd查看系统全部用户信息\n\n•getent group查看系统全部组信息\n\n# 13.查看权限控制\n##  13.1认知权限信息\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd3b38059c7c74dc19e2a83be50880d85.png)\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe3f040b361dc4b119a4c3afbaa1866af.png)\n\n让我们来解析一下序号1，权限细节\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0084589e4b184b308f39d8897bef26bf.png)\n\n权限细节总共分为10个槽位\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fbe14b516e06a4d5f80443cb822176989.png)\n\n举例：drwxr-xr-x，表示：\n\n•这是一个文件夹，首字母d表示\n\n•所属用户(右上角图序号2)的权限是：有r有w有x，rwx\n\n•所属用户组(右上角图序号3)的权限是：有r无w有x，r-x （-表示无此权限）\n\n•其它用户的权限是：有r无w有x，r-x\n\n## 13.2rwx\n那么，rwx到底代表什么呢？\n\n•r表示读权限\n\n•w表示写权限\n\n•x表示执行权限\n\n针对文件、文件夹的不同，rwx的含义有细微差别\n\n•r，针对文件可以查看文件内容\n\n•针对文件夹，可以查看文件夹内容，如ls命令\n\n•w，针对文件表示可以修改此文件\n\n•针对文件夹，可以在文件夹内：创建、删除、改名等操作\n\n•x，针对文件表示可以将文件作为程序执行\n\n•针对文件夹，表示可以更改工作目录到此文件夹，即cd进入\n\n# 14.修改权限控制\n## 14.1chmod\n我们可以使用chmod命令，修改文件、文件夹的权限信息。\n\n注意，只有文件、文件夹的所属用户或root用户可以修改。\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fa8373a7debd34855a463ec800544b0ac.png)\n\n•选项：-R，对文件夹内的全部内容应用同样的操作\n\n示例：\n\n•chmod u=rwx,g=rx,o=x hello.txt，将文件权限修改为：rwxr-x--x\n\n•其中：u表示user所属用户权限，g表示group组权限，o表示other其它用户权限\n\n•chmod -Ru=rwx,g=rx,o=x test，将文件夹test以及文件夹内全部内容权限设置为：rwxr-x--x\n\n除此之外，还有快捷写法：chmod 751 hello.txt\n\n将hello.txt的权限修改为751\n\n那么问题来了，751表示什么意思呢？\n\n**权限的数字序号**\n\n权限可以用3位数字来代表，第一位数字表示用户权限，第二位表示用户组权限，第三位表示其它用户权限。\n\n数字的细节如下：r记为4，w记为2，x记为1，可以有：\n\n•0：无任何权限，  即 ---\n\n•1：仅有x权限，  即 --x\n\n•2：仅有w权限  即 -w-\n\n•3：有w和x权限  即 -wx\n\n•4：仅有r权限  即 r--\n\n•5：有r和x权限  即 r-x\n\n•6：有r和w权限  即rw-\n\n•7：有全部权限  即rwx\n\n所以751表示：rwx(7) r-x(5) --x(1)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fc63eb1f2d7684d23b6bb6a388a7acded.png)\n\n## 14.2chown\n使用chown命令，可以修改文件、文件夹的所属用户和用户组\n\n普通用户无法修改所属为其它用户或组，所以此命令只适用于root用户执行\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb5285df693f54b9eaf6e7c48a70c929b.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fa57ec4961327481d9e1dcbc6a85cb03a.png)\n\n•选项，-R，同chmod，对文件夹内全部内容应用相同规则\n\n•选项，用户，修改所属用户\n\n•选项，用户组，修改所属用户组\n\n•:用于分隔用户和用户组\n\n示例：\n\n•chown root hello.txt，将hello.txt所属用户修改为root\n\n•chown :root hello.txt，将hello.txt所属用户组修改为root\n\n•chownroot:itheima hello.txt，将hello.txt所属用户修改为root，用户组修改为itheima\n\n•chown -R root test，将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则\n\n# 15.各类小技巧快捷键\n1. ctrl + c 强制停止\n\n2. ctrl + d 退出登出\n\n3. history 查看历史命令\n\n4. !命令前缀，自动匹配上一个命令\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffd9b363698804cf8bc94167e3cd8ba1c.png)\n\n5. ctrl + r，搜索历史命令\n\n6. ctrl + a | e，光标移动到命令开始或结束\n\n7. ctrl + ← | →，左右跳单词\n\n8. ctrl + l 或 clear命令清屏\n\n# 16.软件安装\n## 16.1使用yum为CentOS系统安装软件\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe59f7f96460a4aa3b78fbe5e28cbfcee.png)\n\n### yum命令\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F8baeecf6e12d4a93a7ddac7abd6e88cb.png)\n\n•yum [-y] install wget，通过yum命令安装wget程序\n\n•yum [-y] remove wget，通过yum命令卸载wget命令\n\n•yum search wget，通过yum命令，搜索是否有wget安装包\n\n这里不演示\n\n## 16.2使用apt为Ubuntu安装软件（扩展）\n不演示\n\n# 17.system命令\n## 17.1systemctl控制软件\nLinux系统很多软件（内置或第三方）均支持使用systemctl命令控制：启动、停止、开机自启\n\n能够被systemctl管理的软件，一般也称之为：服务\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F596a3ea5c02245f189f1cb915d67cc94.png)\n\n系统内置的服务比较多，比如：\n\n•NetworkManager，主网络服务\n\n•network，副网络服务\n\n•firewalld，防火墙服务\n\n•sshd，ssh服务（FinalShell远程登录Linux使用的就是这个服务）\n\n演示：\n\n关闭并查看防火墙状态(使用root)：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff441fa6573f4447cb879c135d777a899.png)\n\n**除了内置的服务以外，部分第三方软件安装后也可以以systemctl进行控制。**\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff36c654f40ff4633a29865cb98c38ddc.png)\n\n## 17.2ln命令创建软连接\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff3b38c9ec9e241f69a98ab3d4aab6efc.png)\n\n链接文件：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F64548b62c5374b5b888436c9009c2dc1.png)\n\n查看该软连接：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fc956addc90074190a1b7241d1c9ffdb3.png)\n\n链接文件夹：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffc07f95c36514ebda7a704a1e6b64f21.png)\n\n查看链接是否生效，能够正常查看说明能正常生效：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd701138610ef42c9a17f8002d8b7d8ac.png)\n\n# 18.date时期和时区\n##  18.1date命令查看日期时间\n通过date命令可以在命令行中查看系统的时间\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F74ebb653c6c846fe8d2fb787e4fbe94b.png)\n\n•-d 按照给定的字符串显示日期，一般用于日期计算\n\n•格式化字符串：通过特定的字符串标记，来控制显示的日期格式\n\n•**%Y****   ****年**\n\n•**%y****   ****年份后两位数字 (00..99)**\n\n•**%m****   ****月份 (01..12)**\n\n•**%d****   ****日 (01..31)**\n\n•**%H****   ****小时**** (00..23)**\n\n•**%M****   ****分钟**** (00..59)**\n\n•**%S****   ****秒 (00..60)**\n\n•**%s   自 1970-01-01 00:00:00 UTC 到现在的秒数**\n\n演示：（参数模板最好使用双引号包裹，防止空格）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fc67a20cef7704793832b5d26d90aeb5b.png)\n\n## 18.2 date命令进行日期加减\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fceb7c6c318334f1d9b3bb44cc8748569.png)\n演示：（参数模板最好使用双引号包裹，防止空格）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5743c013062c404e8aff252a5e39f3ed.png)\n\n## 18.3修改Linux时区\n细心的同学可能会发现，通过date查看的日期时间是不准确的，这是因为：系统默认时区非中国的东八区。\n\n使用root权限，执行如下命令，修改时区为东八区时区:\n\n`rm -f \u002Fetc\u002Flocaltime`\n\n`ln -s \u002Fuser\u002Fshare\u002Fzoneinfo\u002FAsia\u002FHubei \u002Fetc\u002Flocaltime` \n\n将系统自带的localtime文件删除，并将\u002Fusr\u002Fshare\u002Fzoneinfo\u002FAsia\u002FHubei文件链接为localtime文件即可\n\n## 18.4ntp程序自动校准系统时间\n我们可以通过ntp程序自动校准系统时间\n\n安装ntp：yum -y install ntp\n\n启动并设置开机自启：\n\n•systemctl start ntpd\n\n•systemctl enable ntpd\n\n当ntpd启动后会定期的帮助我们联网校准系统的时间\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb8110422c75040ddb9cb8d8c8b25de31.png)\n\n# 19.IP地址、主机名\n## 19.1 ip地址\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7c2a254b5d6a43b38425fa6b64494773.png)\n\n## 19.2特殊ip地址\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F60d9a7356dc5449d813a14198fa4eaa4.png)\n\n## 19.3 主机名\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F9cd18da57d284a1288713b76248892f1.png)\n\n## 19.4 在Linux中修改主机名\n•可以使用命令：hostname查看主机名\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0e95f144e1114154889b3f8fa143035a.png)\n\n•可以使用命令：hostnamectl set-hostname 主机名，修改主机名（需root）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb11ed0dc85d744d289365702440bac32.png)\n\n•重新登录FinalShell即可看到主机名已经正确显示\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffc4bd6d91191471f9ea6d38aa4bb6435.png)\n\n## 19.5域名解析\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fa85617d1f8144396b6718a060fbac415.png)\n\n## 19.6配置主机名映射\n比如，我们FinalShell是通过IP地址连接到的Linux服务器，那有没有可能通过域名（主机名）连接呢？\n\n可以，我们只需要在Windows系统的：C:\\Windows\\System32\\drivers\\etc\\hosts文件中配置记录即可\n\n先找到自己centOS的ip，复制ip：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fff2d0518c4b1491c853f43412c3afbd0.png)\n\n管理员身份打开记事本，打开（不显示的话选择所有文件）该路径下的文件(C:\\Windows\\System32\\drivers\\etc\\hosts)编辑如下内容，保存并退出：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F90da0c3ff2224d4687de49e7d319a728.png)\n\n这里演示用映射后的主机名进行登录：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fcb07e92bb8b646e2b005fedff38d4f33.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F49b679c8918e4743aa320f8b954cc699.png)\t\n\n## 19.7 总结：\n1. 什么是IP地址，有什么作用？\n\nIP地址是联网计算机的网络地址，用于在网络中进行定位\n\n格式是：a.b.c.d，其中abcd是0~255的数字\n\n特殊IP有：127.0.0.1，本地回环IP，表示本机。\n\n0.0.0.0：也可表示本机，也可以在一些白名单中表示任意IP\n\n2. 什么是主机名？\n\n主机名就是主机的名称，用于标识一个计算机\n\n3. 什么是域名解析（主机名映射）\n\n可以通过主机名找到对应计算机的IP地址，这就是主机名映射（域名解析）\n\n先通过系统本地的记录去查找，如果找不到就联网去公开DNS服务器去查找\n\n# 20.IP地址、主机名\n## 20.1在VMware Workstation中配置Linux系统的固定IP地址（用于Windows系统）(这部分建议看视频，下面的笔记不够完整)\n为什么需要固定IP？\n\n当前我们虚拟机的Linux操作系统，其IP地址是通过DHCP服务获取的。\n\nDHCP：动态获取IP地址，即每次重启设备后都会获取一次，可能导致IP地址频繁变更\n\n原因1：办公电脑IP地址变化无所谓，但是我们要远程连接到Linux系统，如果IP地址经常变化我们就要频繁修改适配很麻烦\n\n原因2：在刚刚我们配置了虚拟机IP地址和主机名的映射，如果IP频繁更改，我们也需要频繁更新映射关系\n\n综上所述，我们需要IP地址固定下来，不要变化了。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffe1fd4635e124b5eb8f5d4e34db6102f.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F8dfe206889ea4086845c67b3f35f3df6.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0fb452d4f5864fa9b6e7ddb9f00ad4b6.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F988361d911c74779a636e2ddc0861989.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F609efb4629e648edab205477118c3499.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F1184a174e0454a7bb75e90b54fc52e16.png)\n\n# 21.网络传输\n## 21.1ping命令\n可以通过ping命令，检查指定的网络服务器是否是可联通状态\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb439581461bb4dd2b71b04d4b2c57bc8.png)\n\n•选项：-c，检查的次数，不使用-c选项，将无限次数持续检查\n\n•参数：ip或主机名，被检查的服务器的ip地址或主机名地址\n\n示例：\n\n•检查到baidu.com是否联通\n\n•\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F1220bf6e350447d7a9735987d0f54e56.png)\n\n结果表示联通，延迟8ms左右\n\n•检查到39.156.66.10是否联通，并检查3次\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe608c92995d74400966a740d2f91b7e8.png)\n\n## 21.2wget命令\nwget是非交互式的文件下载器，可以在命令行内下载网络文件\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fabd67a6e9c11465ba93888d52cf8c14d.png)\n\n•选项：-b，可选，后台下载，会将日志写入到当前工作目录的wget-log文件\n\n•参数：url，下载链接\n\n示例：\n\n•下载apache-hadoop 3.3.0版本：wget http:\u002F\u002Farchive.apache.org\u002Fdist\u002Fhadoop\u002Fcommon\u002Fhadoop-3.3.0\u002Fhadoop-3.3.0.tar.gz\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F2828ea09f33647a2bd82d32e91609aed.png)\n\n•在后台下载：wget -b http:\u002F\u002Farchive.apache.org\u002Fdist\u002Fhadoop\u002Fcommon\u002Fhadoop-3.3.0\u002Fhadoop-3.3.0.tar.gz\n\n•通过tail命令可以监控后台下载进度：tail -f wget-log\n\n注意：无论下载是否完成，都会生成要下载的文件，如果下载未完成，请及时清理未完成的不可用文件\n\n## 21.3curl命令\ncurl可以发送http网络请求，可用于：下载文件、获取信息等\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd5cdebd71c1d4e13be1e6bd4f1b46558.png)\n\n•选项：-O，用于下载文件，当url是下载链接时，可以使用此选项保存文件\n\n•参数：url，要发起请求的网络地址\n\n示例：\n\n•向cip.cc发起网络请求：curl cip.cc\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb916a72feea143c9b04bc69b4626c301.png)\n\n•向python.itheima.com发起网络请求：curl python.itheima.com\n\n•通过curl下载hadoop-3.3.0安装包：curl -O http:\u002F\u002Farchive.apache.org\u002Fdist\u002Fhadoop\u002Fcommon\u002Fhadoop-3.3.0\u002Fhadoop-3.3.0.tar.gz \n\n## 21.4.端口的概念\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffdf231d5db3149e4aee3e09c1fed0ef3.png)\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe10c83c6425a48e388faa4c044d9d2b0.png)\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe988ee2baa694dd991969b77183f2dd2.png)\n\n## 21.5查看端口占用\n可以通过Linux命令去查看端口的占用情况\n\n•使用nmap命令，安装nmap：yum -y install nmap\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F26eb0e985c004325bdfd315abcd6e02c.png)\n\n语法：nmap被查看的IP地址\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff8711ddacf804fca8160547482312f10.png)\n\n可以看到，本机（127.0.0.1）上有5个端口现在被程序占用了。\n\n其中：\n\n•22端口，一般是SSH服务使用，即FinalShell远程连接Linux所使用的端口\n\n## 21.6查看指定端口占用\n•可以通过netstat命令，查看指定端口的占用情况\n\n语法：netstat -anp | grep 端口号，安装netstat：yum -y install net-tools\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffb6488078b904bb8a0a68bebd770f51c.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F9cc6461986f24057a1fa6acaa004b6b5.png)\n\n如图，可以看到当前系统6000端口被程序（进程号7096）占用了\n\n其中，0.0.0.0:6000，表示端口绑定在0.0.0.0这个IP地址上，表示允许外部访问\n\n可以看到，当前系统12345端口，无人使用哦。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0a69833157b64ecd9139ae8b5b015ed9.png)\n\n## 21.7总结：\n1. 什么是端口？\n\n端口是指计算机和外部交互的出入口，可以分为物理端口和虚拟端口\n\n•物理端口：USB、HDMI、DP、VGA、RJ45等\n\n•虚拟端口：操作系统和外部交互的出入口\n\nIP只能确定计算机，通过端口才能锁定要交互的程序\n\n2. 端口的划分\n\n•公认端口：1~1023，用于系统内置或常用知名软件绑定使用\n\n•注册端口：1024~49151，用于松散绑定使用（用户自定义）\n\n•动态端口：49152~65535，用于临时使用（多用于出口）\n\n3. 查看端口占用\n\n•nmap IP地址，查看指定IP的对外暴露端口\n\n•netstat -anp | grep 端口号，查看本机指定端口号的占用情况\n\n# 22.进程管理\n## 22.1进程的概念\n程序运行在操作系统中，是被操作系统所管理的。\n\n为管理运行的程序，每一个程序在运行的时候，便被操作系统注册为系统中的一个：进程\n\n并会为每一个进程都分配一个独有的：进程ID（进程号）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Feefecc21920548b4857af96365ac1876.png)\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F9dd87040721748c1bd2c7a3b43a68ae3.png)\n\n## 22.2查看进程\n可以通过ps命令查看Linux系统中的进程信息\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fd960986053cc4f339ad29aae5daf1523.png)\n\n选项：-e，显示出全部的进程\n\n选项：-f，以完全格式化的形式展示信息（展示全部信息）\n\n一般来说，固定用法就是：ps -ef列出全部进程的全部信息\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F0d0cf4c6b3c7465e8e90997792ab8ee8.png)\n\n**从左到右分别是：**\n\n•**UID****：进程所属的用户****ID**\n\n•**PID****：进程的进程号****ID**\n\n•**PPID****：进程的父****ID****（启动此进程的其它进程）**\n\n•**C****：此进程的****CPU****占用率（百分比）**\n\n•**STIME****：进程的启动时间**\n\n•**TTY****：启动此进程的终端序号，如显示****?****，表示非终端启动**\n\n•**TIME****：进程占用****CPU****的时间**\n\n•**CMD：进程对应的名称或启动路径或启动命令**\n\n****\n\n## 22.3查看指定进程\n•在FinalShell中，执行命令：tail，可以看到，此命令一直阻塞在那里\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ffc7e1b2951ac49c4b22f8cb5ab58d68c.png)\n\n•在FinalShell中，复制一个标签页，执行：ps -ef找出tail这个程序的进程信息\n\n•问题：是否会发现，列出的信息太多，无法准确的找到或很麻烦怎么办？\n\n我们可以使用管道符配合grep来进行过滤，如：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F1f190b3f9f1b433d976e9cb47534c3cd.png)\n\nps -ef | grep tail，即可准确的找到tail命令的信息\n\n•过滤不仅仅过滤名称，进程号，用户ID等等，都可以被grep过滤哦\n\n•如：ps -ef | grep 30001，过滤带有30001关键字的进程信息（一般指代过滤30001进程号）\n\n## 22.4关闭进程\n在Windows系统中，可以通过任务管理器选择进程后，点击结束进程从而关闭它。\n\n同样，在Linux中，可以通过kill命令关闭进程。\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fea14dae1bb624632bf15d20092e92d74.png)\n\n选项：-9，表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭，但是否关闭看进程自身的处理机制。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fe07c246b094247f6b1559adb44c3e504.png)\n\n## 22.5总结：\n1. 什么是进程？\n\n进程是指程序在操作系统内运行后被注册为系统内的一个进程，并拥有独立的进程ID（进程号）\n\n2. 管理进程的命令\n\n•ps -ef查看进程信息\n\n•ps -ef | grep 关键字过滤指定关键字进程信息\n\n•kill [-9] 进程号关闭指定进程号的进程\n\n# 23.主机状态\n## 23.1查看系统资源占用\n可以通过top命令查看CPU、内存使用情况，类似Windows的任务管理器\n\n默认每5秒刷新一次，语法：直接输入top即可，按q或ctrl + c退出\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F9f5004b3d15440d08900b5c95f8f4905.png)\n\n## 23.2top命令内容详解\n•第一行：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F822dd33a6b3249c4b493b693c59222fa.png)\n\ntop：命令名称，14:39:58：当前系统时间，up 6 min：启动了6分钟，2 users：2个用户登录，load：1、5、15分钟的平均负载\n\n•第二行：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F6b61a478c4cc4dff88a5187db87f2630.png)\n\nTasks：175个进程正在跑，1 running：1个进程正在运行，174 sleeping：174个进程睡眠，0个停止进程，0个僵尸进程\n\n•第三行：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F145cd7507ae9497f8d24346103f52c76.png)\n\n%Cpu(s)：CPU使用率，**us****：用户****CPU****使用率，****sy****：系统****CPU****使用率**，ni：高优先级进程占用CPU时间百分比，id：空闲CPU率，wa：IO等待CPU占用率，hi：CPU硬件中断率，si：CPU软件中断率，st：强制等待占用CPU率\n\n•第四、五行：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fa6abf03c9925490997b1759cac0ab556.png)\n\nKib Mem：物理内存，total：总量，free：空闲，used：使用，buff\u002Fcache：buff和cache占用\n\nKibSwap：虚拟内存（交换空间），total：总量，free：空闲，used：使用，buff\u002Fcache：buff和cache占用。（这部分基本上不用关心）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7c7b937ed4974826af54a8aaccc1147d.png)•PID：进程id\n\n•USER：进程所属用户\n\n•PR：进程优先级，越小越高\n\n•NI：负值表示高优先级，正表示低优先级\n\n•VIRT：进程使用虚拟内存，单位KB\n\n•RES：进程使用物理内存，单位KB\n\n•SHR：进程使用共享内存，单位KB\n\n•S：进程状态（S休眠，R运行，Z僵死状态，N负数优先级，I空闲状态）\n\n•%CPU：进程占用CPU率\n\n•%MEM：进程占用内存率\n\n•TIME+：进程使用CPU时间总计，单位10毫秒\n\n•COMMAND：进程的命令或名称或程序文件路径\n\n## 23.3top命令选项\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7287b218d9124b49b39805fdb7ddc758.png)\n\n## 23.4top交互式选项\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb70a702550444f6686f04d9fde38975c.png)\n\n## 23.5磁盘信息监控\n使用df命令，可以查看硬盘的使用情况\n\n语法：df [-h]\n\n选项：-h，以更加人性化的单位显示\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F72850a03f9e24d8b847841211661e0c9.png)\n\n•可以使用iostat查看CPU、磁盘的相关信息\n\n语法：iostat [-x] [num1] [num2]\n\n•选项：-x，显示更多信息\n\n•num1：数字，刷新间隔，num2：数字，刷新几次\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fca55787c76a348f697c69944e569f44d.png)\n\ntps：该设备每秒的传输次数（Indicate the number of transfers per second that were issued to the device.）。\"一次传输\"意思是\"一次I\u002FO请求\"。多个逻辑请求可能会被合并为\"一次I\u002FO请求\"。\"一次传输\"请求的大小是未知的。\n\n•使用iostat的-x选项，可以显示更多信息\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F5cb0668ab0874d708513dfc8a30290ca.png)\n\nrrqm\u002Fs：  每秒这个设备相关的读取请求有多少被Merge了（当系统调用需要读取数据的时候，VFS将请求发到各个FS，如果FS发现不同的读取请求读取的是相同Block的数据，FS会将这个请求合并Merge, 提高IO利用率, 避免重复调用）；\n\nwrqm\u002Fs：  每秒这个设备相关的写入请求有多少被Merge了。\n\nrsec\u002Fs：  每秒读取的扇区数；sectors\n\nwsec\u002F：  每秒写入的扇区数。\n\nrKB\u002Fs：  每秒发送到设备的读取请求数\n\nwKB\u002Fs：  每秒发送到设备的写入请求数\n\navgrq-sz   平均请求扇区的大小\n\navgqu-sz   平均请求队列的长度。毫无疑问，队列长度越短越好。    \n\nawait：    每一个IO请求的处理的平均时间（单位是微秒毫秒）。\n\nsvctm      表示平均每次设备I\u002FO操作的服务时间（以毫秒为单位）\n\n%util：   磁盘利用率\n\n## 23.6网络状态监控\n•可以使用sar命令查看网络的相关统计（sar命令非常复杂，这里仅简单用于统计网络）\n\n语法：sar -n DEV num1 num2\n\n选项：-n，查看网络（net），DEV表示查看网络接口\n\nnum1：刷新间隔（不填就查看一次结束），num2：查看次数（不填无限次数）\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F12fe5fb7924047fcb788081d1382ee40.png)\n\n如图，查看2次，隔3秒刷新一次，并最终汇总平均记录\n\n信息解读：\n\n•IFACE 本地**网卡接口**的名称\n\n•rxpck\u002Fs 每秒钟接受的数据包\n\n•txpck\u002Fs 每秒钟发送的数据包\n\n•**rxKB\u002FS 每秒钟接受的数据包大小，单位为KB**\n\n•**txKB\u002FS 每秒钟发送的数据包大小，单位为KB**\n\n•rxcmp\u002Fs 每秒钟接受的压缩数据包\n\n•txcmp\u002Fs 每秒钟发送的压缩包\n\n•rxmcst\u002Fs 每秒钟接收的多播数据包\n\n## 23.7总结：\n1. 使用top命令可以：\n\n•类似Windows任务管理器\n\n•查看CPU、内存、进程的信息\n\n2. 使用df命令可以：\n\n•查看磁盘使用率\n\n3. 使用iostat可以：\n\n•查看磁盘速率等信息\n\n4. 使用sar -n DEV命令可以：\n\n•查看网络情况\n\n# 24.环境变量\n在讲解which命令的时候，我们知道使用的一系列命令其实本质上就是一个个的可执行程序。\n\n比如，cd命令的本体就是：\u002Fusr\u002Fbin\u002Fcd 这个程序文件。\n\n我们是否会有疑问，为何无论当前工作目录在哪里，都能执行：\u002Fusr\u002Fbin\u002Fcd这个程序呢？\n\n这就是环境变量的作用啦。\n\n环境变量是操作系统（Windows、Linux、Mac）在运行的时候，记录的一些关键性信息，用以辅助系统运行。\n\n在Linux系统中执行：env命令即可查看当前系统中记录的环境变量\n\n环境变量是一种KeyValue型结构，即名称和值，如下图：\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F81150f90690146aba92cbf1574369f75.png)\n\n**图中记录了：**\n\n•**HOME****：****\u002Fhome\u002Fitheima****，用户的****HOME****路径**\n\n•**USER****：****itheima****，当前的操作用户**\n\n•**PWD****：当前工作路径**\n\n•**......**\n\n**等等一系列信息，用于辅助系统在运行的时候**\n\n**从环境变量中获取关键信息**\n\n## 24.1环境变量path\n在前面提出的问题中，我们说无论当前工作目录是什么，都能执行\u002Fusr\u002Fbin\u002Fcd这个程序，这个就是借助环境变量中：PATH这个项目的值来做到的。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fb313126151cb4f729047593e3eb22ea0.png)\n\nPATH记录了系统执行任何命令的搜索路径，如上图记录了（路径之间以:隔开）：\n\n•\u002Fusr\u002Flocal\u002Fbin\n\n•\u002Fusr\u002Fbin\n\n•\u002Fusr\u002Flocal\u002Fsbin\n\n•\u002Fusr\u002Fsbin\n\n•\u002Fhome\u002Fitheima\u002F.local\u002Fbin\n\n•\u002Fhome\u002Fitheima\u002Fbin\n\n当执行任何命令，都会按照顺序，从上述路径中搜索要执行的程序的本体\n\n比如执行cd命令，就从第二个目录\u002Fusr\u002Fbin中搜索到了cd命令，并执行\n\n## 24.2$符号\n在Linux系统中，$符号被用于取”变量”的值。\n\n环境变量记录的信息，除了给操作系统自己使用外，如果我们想要取用，也可以使用。\n\n取得环境变量的值就可以通过语法：$环境变量名  来取得\n\n比如： echo $PATH\n\n就可以取得PATH这个环境变量的值，并通过echo语句输出出来。\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff044ca151123471596b2fb420ced8776.png)\n\n又或者：echo ${PATH}ABC\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F94a98ed10af74b59a9575d6bdbb11fb0.png)\n\n当和其它内容混合在一起的时候，可以通过{}来标注取的变量是谁\n\n## 24.3自行设置环境变量\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F7a3be68eed034f088b55fb949606b539.png)\n\n## 24.5**自定义环境变量PATH**\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fc82fcfa777c64112af32e7a7c03e5b74.png)\n\n## 总结：\n1. 什么是环境变量？\n\n环境变量是一组信息记录，类型是KeyValue型（名称=值），用于操作系统运行的时候记录关键信息\n\n2. 通过env命令可以查看当前系统配置的环境变量信息\n\n3. 通过$符号，可以取出环境变量的值\n\n4. 什么是PATH，作用是？\n\n环境变量PATH会记录一组目录，目录之间用:隔开。这里记录的是命令的搜索路径，当执行命令会从记录中记录的目录中挨个搜索要执行的命令并执行。\n\n可以通过修改这个项目的值，加入自定义的命令搜索路径\n\n如export PATH=$PATH:自定义路径\n\n5. 如何修改环境变量？\n\n•临时生效：export 名称=值\n\n•永久生效：\n\n•针对用户：~\u002F.bashrc文件中配置\n\n•针对全部用户：\u002Fetc\u002Fprofile文件中配置\n\n•配置完成，可以通过source命令立刻生效\n\n# 25.上传与下载\n我们可以通过FinalShell工具，方便的和虚拟机进行数据交换。\n\n在FinalShell软件的下方窗体中，提供了Linux的文件系统视图，可以方便的：\n\n•浏览文件系统，找到合适的文件，右键点击下载，即可传输到本地电脑\n\n•浏览文件系统，找到合适的目录，将本地电脑的文件拓展进入，即可方便的上传数据到Linux中\n\n## 25.1rz、sz命令\n当然，除了通过FinalShell的下方窗体进行文件的传输以外，也可以通过rz、sz命令进行文件传输。\n\nrz、sz命令需要安装，可以通过：yum -y install lrzsz，即可安装。\n\n•rz命令，进行上传，语法：直接输入rz即可\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F4e0fd7b873934af6ab02edc6b551e2e4.png)\n\n•sz命令进行下载，语法：sz要下载的文件\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff3c05963062f4e1f8a45d21511579551.png)\n\n文件会自动下载到桌面的：fsdownload文件夹中。\n\n注意，rz、sz命令需要终端软件支持才可正常运行\n\nFinalShell、SecureCRT、XShell等常用终端软件均支持此操作\n\n## 26.压缩、解压\n## 26.1压缩格式\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Fee0f407b13a2441fa21cbd34bdcb8c39.png)\n\n## 26.2tar命令\n\n![](\u002Fuploads\u002Fbed\u002Farticles\u002Ff10741fb802a45acb114ae886af34186.png)\n\n## 26.3tar命令压缩\ntar的常用组合为：\n\n•tar -cvf test.tar 1.txt 2.txt 3.txt\n\n将1.txt 2.txt 3.txt 压缩到test.tar文件内\n\n•tar -zcvf test.tar.gz 1.txt 2.txt 3.txt\n\n将1.txt 2.txt 3.txt 压缩到test.tar.gz文件内，使用gzip模式\n\n注意：\n\n•-z选项如果使用的话，一般处于选项位第一个\n\n•-f选项，必须在选项位最后一个\n\n## 26.4tar解压\n常用的tar解压组合有\n\n•tar -xvf test.tar\n\n解压test.tar，将文件解压至当前目录\n\n•tar -xvf test.tar -C \u002Fhome\u002Fitheima\n\n解压test.tar，将文件解压至指定目录（\u002Fhome\u002Fitheima）\n\n•tar -zxvf test.tar.gz -C \u002Fhome\u002Fitheima\n\n以Gzip模式解压test.tar.gz，将文件解压至指定目录（\u002Fhome\u002Fitheima）\n\n注意：\n\n•-f选项，必须在选项组合体的最后一位\n\n•-z选项，建议在开头位置\n\n•-C选项单独使用，和解压所需的其它参数分开\n\n## 26.5zip 命令压缩文件\n可以使用zip命令，压缩文件为zip压缩包\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F1209c39bbba549dc8afb852e5db076f4.png)\n\n•-r，被压缩的包含文件夹的时候，需要使用-r选项，和rm、cp等命令的-r效果一致\n\n示例：\n\n•zip test.zip a.txt b.txt c.txt\n\n将a.txt b.txt c.txt 压缩到test.zip文件内\n\n•zip -r test.zip test itheima a.txt\n\n将test、itheima两个文件夹和a.txt文件，压缩到test.zip文件内\n\n## 26.6unzip 命令解压文件\n使用unzip命令，可以方便的解压zip压缩包\n\n语法：\n![](\u002Fuploads\u002Fbed\u002Farticles\u002F32b74a1f80b142a28087cb61f63375ef.png)\n\n•-d，指定要解压去的位置，同tar的-C选项\n\n•参数，被解压的zip压缩包文件\n\n•\n\n示例：\n\n•unzip test.zip，将test.zip解压到当前目录\n\n•unzip test.zip -d \u002Fhome\u002Fitheima，将test.zip解压到指定文件夹内（\u002Fhome\u002Fitheima）\n\n## 总结：\n1. Linux系统常用的压缩格式有：\n\n•tar格式，归档文件，简单的将文件整合到一个文件内，无压缩效果\n\n•gzip格式，gzip压缩文件，不仅能整合到一个文件，同时有体积压缩效果\n\n2. tar命令\n\ntar [-z -x -v -c -f -C] 参数...\n\n•-c，创建压缩文件、-v，查看压缩\\解压过程、-x，解压模式\n\n•-f，指定压缩\\解压的文件，-z，gzip模式，-C，指定解压的路径\n\n•-z在选项组建议在开头，-f在选项组内必须在尾部，-C单独使用\n\n3. zip命令\n\nzip [-r] 参数...\n\n•-r，压缩文件夹使用\n\n4. unzip命令\n\nunzip [-d] 参数\n\n•-d，指定解压去的目录\n\n",11,true,false,0,{},203,45,"2023-07-15T12:52:00","2026-08-29T19:34:32.144852",{"name":96,"slug":97,"description":32,"type":98,"id":86,"article_count":89},"dev","note","blog",[100,103,106],{"name":101,"slug":101,"type":98,"id":102,"article_count":89},"运维",12,{"name":104,"slug":104,"type":98,"id":105,"article_count":89},"Shell",23,{"name":107,"slug":107,"type":98,"id":108,"article_count":89},"Linux",32,{"prev":110,"next":113},{"slug":111,"title":112},"git-common-commands","git常用命令",null]