[{"data":1,"prerenderedAt":129},["ShallowReactive",2],{"$fW2K9FaKjtgfgyOPkGWRunYdPktw5HbMZRkkTSLnIAA0":3,"$fIOoeoo5odYtxLcclsIkDo-n5jYA7C5Seb8sXrY09gQQ":97},{"code":4,"msg":5,"data":6},200,"操作成功",{"records":7,"total":9,"size":57,"current":24,"pages":89},[8,18,27,37,46,56,64,73,80,88],{"id":9,"title":10,"content":11,"description":12,"coverImg":13,"state":14,"categoryId":15,"authorName":16,"views":14,"likes":14,"createTime":17,"updateTime":17,"deleted":14},15,"如何在CentOS 8.5 系统中运行 JAR 包","在 CentOS 8.5 系统中运行 JAR 包并注册为系统服务，可通过 **`systemd`服务管理**实现开机自启和便捷运维。假设我们已经将 JAR 包（如 `api-0.0.1-SNAPSHOT.jar`）上传至服务器目录（如 `/opt/api`）以下是具体步骤：\r\n\r\n------\r\n\r\n### ⚙️ **一、运行 JAR 包（临时测试）**\r\n\r\n#### 1. **前台运行**（关闭终端即停止）：\r\n\r\n```\r\njava -jar /opt/api/api-0.0.1-SNAPSHOT.jar\r\n```\r\n\r\n#### 2. **后台运行**（终端关闭后持续运行）：\r\n\r\n```\r\nnohup java -jar /opt/api/api-0.0.1-SNAPSHOT.jar > /opt/api/output.log 2>&1 &\r\n```\r\n\r\n------\r\n\r\n### 🔧 **二、注册为 Systemd 系统服务（推荐）**\r\n\r\n#### 1. **创建服务文件**\r\n\r\n进入 systemd 配置目录，创建服务文件（如 `api.service`）：\r\n\r\n```\r\nsudo vi /etc/systemd/system/api.service\r\n```\r\n\r\n#### 2. **编写服务配置**\r\n\r\n复制以下内容（按需修改参数）：\r\n\r\n```\r\n[Unit]\r\nDescription=API Application (SpringBoot Service)\r\nAfter=network.target  # 确保网络就绪后启动\r\n\r\n[Service]\r\nUser=appuser         # 替换为运行服务的非root用户（如专用用户）\r\nWorkingDirectory=/opt/api  # JAR 所在目录\r\nExecStart=/usr/bin/java -jar api-0.0.1-SNAPSHOT.jar\r\nRestart=always       # 异常退出时自动重启\r\nRestartSec=10        # 重启间隔（秒）\r\nSuccessExitStatus=143 # SpringBoot 默认退出码\r\nEnvironment=\"JAVA_HOME=/usr/lib/jvm/java-11-openjdk\" # 可选：指定JDK路径\r\n# 日志配置（可选）\r\nStandardOutput=file:/var/log/api.log\r\nStandardError=file:/var/log/api_error.log\r\n\r\n[Install]\r\nWantedBy=multi-user.target  # 多用户模式启用\r\n```\r\n\r\n#### 3. **设置权限并重载配置**\r\n\r\n```\r\nsudo chmod 644 /etc/systemd/system/api.service  # 服务文件权限\r\nsudo systemctl daemon-reload                    # 重载 systemd 配置\r\n```\r\n\r\n#### 4. **启动服务并设置开机自启**\r\n\r\n```\r\nsudo systemctl start api        # 启动服务\r\nsudo systemctl enable api       # 开机自启\r\nsudo systemctl status api       # 检查状态（确认 Active: active (running)）\r\n```\r\n\r\n------\r\n\r\n#### 4. **重启服务**\r\n\r\n（1）上传新 JAR 文件\r\n\r\n将新版本（如 `api-0.0.2-SNAPSHOT.jar`）上传至服务器目录（如 `/opt/api`）。\r\n\r\n（2）编辑 `/etc/systemd/system/api.service`，更新 `ExecStart`路径：\r\n\r\n```\r\nExecStart=/usr/bin/java -jar /opt/api/api-0.0.2-SNAPSHOT.jar  # 修改 JAR 文件名\r\n```\r\n\r\n（3）重载配置并重启\r\n\r\n```\r\nsudo systemctl daemon-reload     # 重载 systemd 配置\r\nsudo systemctl restart api       # 触发优雅重启\r\nsudo systemctl status api        # 检查状态（确认 Active: active (running)）\r\n```\r\n\r\n### ⚡ **三、服务管理常用命令**\r\n\r\n| **操作**     | **命令**                     | **说明**           |\r\n| :----------- | :--------------------------- | :----------------- |\r\n| 启动服务     | `sudo systemctl start api`   | 立即运行服务       |\r\n| 停止服务     | `sudo systemctl stop api`    | 安全停止服务       |\r\n| 重启服务     | `sudo systemctl restart api` | 重新加载配置并重启 |\r\n| 查看状态     | `sudo systemctl status api`  | 检查运行状态和日志 |\r\n| 查看实时日志 | `journalctl -u api -f`       | 动态追踪服务日志   |\r\n| 禁用开机自启 | `sudo systemctl disable api` | 取消开机启动       |","在 CentOS 8.5 系统中运行 JAR 包并注册为系统服务，可通过systemd服务管理实现开机自启和便捷运维","https://img.qiqii.cn/cover/15.webp",0,4,"柒柒","2025-08-27 09:29:58",{"id":19,"title":20,"content":21,"description":22,"coverImg":23,"state":14,"categoryId":24,"authorName":16,"views":24,"likes":14,"createTime":25,"updateTime":26,"deleted":14},14,"如何通过宝塔面板快速部署网站服务","闲着没事，我把网站服务器系统重装为*Alibaba* *Cloud* *Linux 3*，完全兼容Centos生态和命令。为了方便，我使用宝塔面板部署前后端项目和数据库，具体包括 MySQL、Redis、Java (jar) 和 Nuxt.js 。\r\n\r\n------\r\n\r\n### 🔧 **一、环境准备**\r\n\r\n1. **服务器配置**\r\n\r\n   - 操作系统：*Alibaba* *Cloud* *Linux 3* \r\n   - 硬件要求：2核2G\r\n   - 开放端口：\r\n     - 为了方便，云服务器安全组开放所有端口，使用宝塔面板防火墙进行管理。\r\n\r\n2. **安装宝塔面板**\r\n\r\n   - 执行命令（适用于Centos/OpenCloud/Alibaba）：\r\n\r\n     ```\r\n     url=https://download.bt.cn/install/install_panel.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install_panel.sh $url;fi;bash install_panel.sh ed8484bec\r\n     ```\r\n\r\n   - 安装完成后记录面板地址、账号密码\r\n\r\n     安全设置：登录后修改面板端口、用户名和密码，并绑定宝塔账号\r\n\r\n------\r\n\r\n### ⚙️ **二、环境部署**\r\n\r\n#### **1. MySQL \r\n\r\n- 安装：\r\n\r\n  - 宝塔面板主页 → 数据库 → 选择MySQL→ 根据提示点击安装→选择版本（我选择MySQL 8.0.24）→ 极速安装\r\n\r\n- 配置：\r\n\r\n  - 点击“添加数据库”：输入数据库名、用户名、密码登信息，并确认\r\n\r\n  - 开启远程访问：把权限改为所有人\r\n\r\n  - 防火墙放行端口3306\r\n\r\n#### **2. Redis\r\n\r\n- 安装：\r\n\r\n  - 宝塔面板主页 → 数据库 → 选择Redis→ 根据提示点击安装→ 选择版本（我选择Redis 8.0.1）→ 极速安装\r\n\r\n- 配置：\r\n\r\n  - 点击Redis 8.0.1按钮→选择配置文件，修改为如下：\r\n\r\n    ```\r\n    bind 127.0.0.1      # 限制本地访问\r\n    requirepass password  # 设置密码\r\n    maxmemory 512mb     # 根据内存调整\r\n    ```\r\n\r\n  -  点击Redis 8.0.1按钮→服务→重载配置：\r\n\r\n\r\n#### **3. Java\r\n\r\n- 安装jdk：\r\n\r\n  - 宝塔面板主页 →网站 → Java项目→ Java环境管理→JDK管理→ 选择版本（我选择jdk-21.0.2）→ 极速安装\r\n- 部署jar 应用：\r\n\r\n  1. 上传jar  文件至服务器目录（如 `/www/wwwroot/jar-app`）。\r\n\r\n  2. 添加Java项目，项目路径选择/www/wwwroot/jar-app，其他信息会自动填充，点击确定。\r\n\r\n\r\n#### **4. Node.js\r\n\r\n- 安装 Node.js：\r\n\r\n  - 宝塔面板主页 →网站 →Node项目→ 安装Node版本管理器→在Node版本管理器选择版本（我选择Node-22.16）→ 极速安装\r\n\r\n- 安装 Node.js：\r\n\r\n  - 宝塔面板主页 →软件商店 →搜索“PM2管理器 5.6”→ 安装\r\n\r\n- 部署 Nuxt.js 项目：\r\n\r\n  1. 上传项目文件至目录（如 `/www/wwwroot/nuxt-app`）。\r\n\r\n  2. 安装依赖：\r\n\r\n     ```\r\n     cd /www/wwwroot/nuxt-app\r\n     npm install --production\r\n     ```\r\n\r\n  3. 构建项目：\r\n\r\n     - 构建命令：`npm run build`\r\n\r\n  4. PM2 守护进程：\r\n\r\n     - 项目根目录添加ecosystem.config.cjs文件：\r\n     \r\n       ```\r\n       module.exports = {\r\n         apps: [\r\n           {\r\n             name: 'NuxtAppName',\r\n             port: '3000',\r\n             exec_mode: 'cluster',\r\n             instances: 'max',\r\n             script: './.output/server/index.mjs'\r\n           }\r\n         ]\r\n       }\r\n       ```\r\n     \r\n     - 添加Node项目  →PM2项目 →从文件内容添加→配置文件选择/www/wwwroot/nuxt-app/ecosystem.config.cjs，其他信息会自动填充，点击确定。\r\n\r\n对比上次手动部署，使用宝塔面板极大简化操作步骤。","闲着没事，我把网站柒柒知道服务器系统重装为Alibaba Cloud Linux 3，完全兼容Centos生态和命令。为了方便，我使用宝塔面板部署前后端项目和数据库，具体包括 MySQL、Redis、Java (jar) 和 Nuxt.js 。","https://img.qiqii.cn/cover/14.webp",1,"2025-06-30 19:22:49","2024-11-28 15:09:03",{"id":28,"title":29,"content":30,"description":31,"coverImg":32,"state":14,"categoryId":33,"authorName":16,"views":34,"likes":14,"createTime":35,"updateTime":36,"deleted":14},13,"Redis基础：String Redis Template用法介绍","## 简述\r\n\r\nString Redis Template是Spring Data Redis提供的一个模板类，用于简化对Redis数据库的操作，特别是当数据存储为字符串格式时。\r\n\r\n#### 依赖引入\r\n\r\n```\r\n\u003Cdependency>\r\n    \u003CgroupId>org.springframework.boot\u003C/groupId>\r\n    \u003CartifactId>spring-boot-starter-data-redis\u003C/artifactId>\r\n\u003C/dependency>\r\n```\r\n\r\n#### 配置文件\r\n\r\n```yml\r\nspring:\r\n  data:\r\n    redis:\r\n      host: localhost\r\n      port: 6379\r\n      database: 0\r\n```\r\n\r\n## 使用方法1（值为字符串格式）\r\n\r\n#### 设置值\r\n\r\n```\r\n@Service\r\npublic class RedisService {\r\n\r\n    @Autowired\r\n    private StringRedisTemplate stringRedisTemplate;\r\n\r\n    public void setValue(String key, String value) {\r\n        stringRedisTemplate.opsForValue().set(key, value);\r\n    }\r\n}\r\n```\r\n\r\n#### 获取值\r\n\r\n```\r\npublic String getValue(String key) {\r\n    return stringRedisTemplate.opsForValue().get(key);\r\n}\r\n```\r\n\r\n#### 删除键\r\n\r\n```\r\npublic void deleteValue(String key) {\r\n    stringRedisTemplate.delete(key);\r\n}\r\n\r\n```\r\n\r\n## 使用方法2（值为hash格式）\r\n\r\n#### 设置值\r\n\r\n```\r\n@Service\r\npublic class RedisService {\r\n\r\n    @Autowired\r\n    private StringRedisTemplate stringRedisTemplate;\r\n    \r\n    // 获取 HashOperations 对象\r\n    private HashOperations\u003CString, String, String> hashOps;\r\n\r\n    // 添加哈希项\r\n    public void putHashValue(String key, String hashKey, String value) {\r\n        hashOps.put(key, hashKey, value);\r\n    }\r\n}\r\n```\r\n\r\n#### 获取值\r\n\r\n```\r\n// 获取哈希项\r\npublic String getHashValue(String key, String hashKey) {\r\n    return hashOps.get(key, hashKey);\r\n}\r\n\r\n// 获取整个哈希\r\npublic Map\u003CString, String> getAllHashValues(String key) {\r\n    return hashOps.entries(key);\r\n}\r\n```\r\n\r\n#### 删除键\r\n\r\n```\r\n// 删除哈希项\r\npublic void deleteHashValue(String key, String hashKey) {\r\n    hashOps.delete(key, hashKey);\r\n}\r\n```\r\n\r\n","String Redis Template是Spring Data Redis提供的一个模板类，用于简化对Redis数据库的操作，特别是当数据存储为字符串格式时。","https://img.qiqii.cn/cover/13.webp",5,63,"2024-11-20 15:25:39","2024-12-25 19:12:19",{"id":38,"title":39,"content":40,"description":41,"coverImg":42,"state":14,"categoryId":15,"authorName":16,"views":43,"likes":14,"createTime":44,"updateTime":45,"deleted":14},12,"Ubuntu 22.04 LTS部署环境","2024年8月30日，本网站正式弃用centos5.7，改用Ubuntu 22.04，为保证网站成功运行，一共部署四个必要软件，分别是mysql8.0、redis6.0、ngnix1.18、jdk21。\r\n\r\n# 一、mysql8.0\r\n\r\n在 Ubuntu 22.04 上安装 MySQL 8.0 ，安装操作需root权限：\r\n\r\n1. 通过 sudo su -，切换到root用户\r\n\r\n   > 本文选择这种方式操作\r\n\r\n2. 或在每一个命令前，加上sudo，用来临时提升权限\r\n\r\n### 1.卸载仓库信息\r\n\r\n如果已经安装过MySQL5.7版本，需要卸载仓库信息\r\n\r\n```\r\n# 卸载MySQL5.7版本\r\napt remove -y mysql-client=5.7* mysql-community-server=5.7*\r\n\r\n# 卸载5.7的仓库信息\r\ndpkg -l | grep mysql | awk '{print $2}' | xargs dpkg -P\r\n```\r\n\r\n### 2.更新apt仓库信息\r\n\r\n```bash\r\nsudo apt update\r\n```\r\n\r\n### 3.安装mysql\r\n\r\n```bash\r\nsudo apt install -y mysql-server\r\n```\r\n\r\n### 4.**启动 MySQL 服务**：\r\n\r\n```bash\r\n/etc/init.d/mysql start\t\t\t# 启动\r\n/etc/init.d/mysql stop\t\t\t# 停止\r\n/etc/init.d/mysql status\t\t# 查看状态\r\n```\r\n\r\n### 5.登陆MySQL设置密码\r\n\r\n给root账号设置密码\r\n\r\n```\r\n# 直接执行：mysql\r\nmysql\r\nALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';\r\n```\r\n\r\n### 6.根据需要，也可以创建新用户\r\n\r\n```\r\nCREATE USER 'abcde'@'localhost' IDENTIFIED BY 'event123';\r\n```\r\n\r\n如果你希望该用户可以从任何主机连接，可以使用：\r\n\r\n```sql\r\nCREATE USER 'abcde'@'%' IDENTIFIED BY 'event123';\r\n```\r\n\r\n### 7.**授予权限**：\r\n\r\n```sql\r\nGRANT ALL PRIVILEGES ON *.* TO 'abcde'@'localhost' WITH GRANT OPTION;\r\n```\r\n\r\n如果使用 `%`，则命令为：\r\n\r\n```sql\r\nGRANT ALL PRIVILEGES ON *.* TO 'abcde'@'%' WITH GRANT OPTION;\r\n```\r\n\r\n### 8.**刷新权限**：\r\n\r\n```sql\r\nFLUSH PRIVILEGES;\r\n```\r\n\r\n### 9.退出MySQL控制台\r\n\r\n```sql\r\nEXIT;\r\n```\r\n\r\n### 10.对MySQL进行初始化\r\n\r\n```\r\n# 执行如下命令，此命令是MySQL安装后自带的配置程序\r\nmysql_secure_installation\r\n# 可以通过which命令查看到这个自带程序所在的位置\r\nroot@DESKTOP-Q89USRE:~# which mysql_secure_installation\r\n/usr/bin/mysql_secure_installation\r\n```\r\n\r\n### 11.重新登陆MySQL（用更改后的密码）\r\n\r\n```\r\nmysql -uroot -p\r\n```\r\n\r\n### 12.**退出MySQL控制台**：\r\n\r\n```sql\r\nEXIT;\r\n```\r\n\r\n### 13.检查防火墙设置\r\n\r\n确保防火墙允许 MySQL 的端口（默认是 3306）通过。\r\n\r\n```bash\r\nsudo ufw allow 3306\r\n```\r\n\r\n### 14.检查 MySQL 配置\r\n\r\n```bash\r\nsudo nano /etc/mysql/mysql.conf.d/mysqld.cnf\r\n```\r\n\r\n确保 `bind-address` 设置为 `0.0.0.0` 或注释掉这一行：\r\n\r\n```plaintext\r\nbind-address = 0.0.0.0\r\n```\r\n\r\n### 15.重启 MySQL 服务\r\n\r\n```bash\r\nsudo systemctl restart mysql\r\n```\r\n\r\n# 二、redis6.0\r\n\r\n在 Ubuntu 22.04 上安装 Redis，可以按照以下步骤进行：\r\n\r\n### 1. 更新系统包\r\n\r\n打开终端并运行以下命令：\r\n\r\n```bash\r\nsudo apt update\r\nsudo apt upgrade\r\n```\r\n\r\n### 2. 安装 Redis\r\n\r\n使用以下命令安装 Redis：\r\n\r\n```bash\r\nsudo apt install redis-server\r\n```\r\n\r\n### 3. 配置 Redis\r\n\r\n编辑 Redis 配置文件以确保其在后台运行：\r\n\r\n```bash\r\nsudo nano /etc/redis/redis.conf\r\n```\r\n\r\n找到以下行并进行修改：\r\n\r\n```plaintext\r\nsupervised no\r\n```\r\n\r\n改为：\r\n\r\n```plaintext\r\nsupervised systemd\r\n```\r\n\r\n### 4. 启动 Redis 服务\r\n\r\n启动 Redis 服务并使其在系统启动时自动启动：\r\n\r\n```bash\r\nsudo systemctl start redis\r\nsudo systemctl enable redis\r\n```\r\n\r\n### 5. 检查 Redis 状态\r\n\r\n确认 Redis 正在运行：\r\n\r\n```bash\r\nsudo systemctl status redis\r\n```\r\n\r\n### 6. 测试 Redis\r\n\r\n使用 Redis CLI 测试安装：\r\n\r\n```bash\r\nredis-cli\r\n```\r\n\r\n在 Redis 提示符下，输入：\r\n\r\n```plaintext\r\nping\r\n```\r\n\r\n如果返回 `PONG`，则表示 Redis 正在正常运行。\r\n\r\n### 7. 配置远程访问\r\n\r\n打开 Redis 配置文件：\r\n\r\n```bash\r\nsudo nano /etc/redis/redis.conf\r\n```\r\n\r\n修改允许连接的 IP 地址，找到以下行：\r\n\r\n```plaintext\r\nbind 127.0.0.1\r\n```\r\n\r\n将其修改为：\r\n\r\n```plaintext\r\nbind 0.0.0.0\r\n```\r\n\r\n这将允许 Redis 接受来自任何 IP 地址的连接。\r\n\r\n### 8. 设置密码\r\n\r\n在配置文件中添加或修改以下行，以设置访问密码：\r\n\r\n```plaintext\r\nrequirepass yourpassword\r\n```\r\n\r\n### 9. 重启 Redis 服务\r\n\r\n保存文件并退出编辑器，然后重启 Redis 服务以应用更改：\r\n\r\n```bash\r\nsudo systemctl restart redis\r\n```\r\n\r\n### 10. 配置防火墙\r\n\r\n确保你的防火墙允许访问 Redis 默认端口（6379）：\r\n\r\n```bash\r\nsudo ufw allow 6379\r\n```\r\n\r\n### 11. 测试远程连接\r\n\r\n在远程机器上使用以下命令连接：\r\n\r\n```bash\r\nredis-cli -h your_server_ip -p 6379 -a yourpassword\r\n```\r\n\r\n# 三、安装Nginx\r\n\r\n安装 Nginx，按照以下步骤进行操作：\r\n\r\n### 1. 更新包列表\r\n\r\n首先，确保你的包列表是最新的：\r\n\r\n```bash\r\nsudo apt update\r\n```\r\n\r\n### 2. 安装 Nginx\r\n\r\n使用以下命令安装 Nginx：\r\n\r\n```bash\r\nsudo apt install nginx\r\n```\r\n\r\n### 3. 启动 Nginx 服务\r\n\r\n安装完成后，启动 Nginx 服务：\r\n\r\n```bash\r\nsudo systemctl start nginx\r\n```\r\n\r\n### 4. 启用 Nginx 开机自启\r\n\r\n使 Nginx 在系统启动时自动启动：\r\n\r\n```bash\r\nsudo systemctl enable nginx\r\n```\r\n\r\n### 5. 检查 Nginx 状态\r\n\r\n确认 Nginx 服务正在运行：\r\n\r\n```bash\r\nsudo systemctl status nginx\r\n```\r\n\r\n### 6. 测试 Nginx\r\n\r\n在浏览器中访问你的服务器 IP 地址（例如 `http://your_server_ip`），如果看到 Nginx 的欢迎页面，说明安装成功。\r\n\r\n### 7. 配置防火墙\r\n\r\n如果你使用的是 UFW 防火墙，允许 HTTP 和 HTTPS 流量：\r\n\r\n```bash\r\nsudo ufw allow 'Nginx Full'\r\n```\r\n\r\n### 8.部署前端项目\r\n\r\nvue项目执行npm run build 命令打包后，将dist文件放到/var/www/html即可\r\n\r\n# 四、安装jdk21\r\n\r\n要安装 JDK21，请按照以下步骤进行操作：\r\n\r\n### 1. 更新包列表\r\n\r\n首先，确保你的包列表是最新的：\r\n\r\n```bash\r\nsudo apt update\r\n```\r\n\r\n### 2. 安装 JDK 21\r\n\r\n使用以下命令安装 OpenJDK 21：\r\n\r\n```bash\r\nsudo apt install openjdk-21-jdk\r\n```\r\n\r\n### 3. 验证安装\r\n\r\n安装完成后，可以通过以下命令验证 JDK 是否安装成功：\r\n\r\n```bash\r\njava -version\r\n```\r\n\r\n你应该看到类似于以下的输出：\r\n\r\n```plaintext\r\nopenjdk version \"21.0.x\" ...\r\n```\r\n\r\n### 4. 设置环境变量\r\n\r\n如果需要设置 JAVA_HOME 环境变量，可以编辑 `~/.bashrc` 文件：\r\n\r\n```bash\r\nnano ~/.bashrc\r\n```\r\n\r\n在文件末尾添加以下行：\r\n\r\n```bash\r\nexport JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64\r\nexport PATH=$PATH:$JAVA_HOME/bin\r\n```\r\n\r\n保存并退出后，运行以下命令以使更改生效：\r\n\r\n```bash\r\nsource ~/.bashrc\r\n```\r\n\r\n### 5.部署jar包（nohup）\r\n\r\n如果已经运行过，需先关闭进程\r\n\r\n```\r\nps aux | grep api.jar\r\n\r\nkill \u003CPID>\r\n```\r\n\r\n启动服务\r\n\r\n```\r\nnohup java -jar /root/api.jar --server.port=8443 > /root/api.log 2>&1 &\r\n```\r\n\r\n查看日志\r\n\r\n```\r\ntail -f /root/api.log\r\n```\r\n\r\n### 6.部署jar包（systemd）\r\n\r\n使用以下命令运行 JAR 包：\r\n\r\n```bash\r\njava -jar /path/to/your/file.jar\r\n```\r\n\r\n如果希望 JAR 包在后台运行并在系统启动时自动启动，可以使用 `systemd` 创建一个服务文件：\r\n\r\n```\r\nsudo nano /etc/systemd/system/myapp.service\r\n```\r\n\r\n添加以下内容：\r\n\r\n```\r\n[Unit]\r\nDescription=My Java Application\r\nAfter=network.target\r\n\r\n[Service]\r\nUser=your_username\r\nExecStart=/usr/bin/java -jar /path/to/your/file.jar\r\nSuccessExitStatus=143\r\n\r\n[Install]\r\nWantedBy=multi-user.target\r\n```\r\n\r\n将 `your_username` 替换为实际用户名。\r\n\r\n启动服务\r\n\r\n```bash\r\nsudo systemctl enable myapp\r\nsudo systemctl start myapp\r\n```","2024年8月30日，本网站正式弃用centos5.7，改用Ubuntu 22.04，为保证网站成功运行，一共部署四个必要软件，分别是mysql8.0、redis6.0、ngnix1.18、jdk21。","https://img.qiqii.cn/cover/12.webp",50,"2024-11-20 15:25:26","2024-12-25 19:10:58",{"id":47,"title":48,"content":49,"description":50,"coverImg":51,"state":14,"categoryId":52,"authorName":16,"views":53,"likes":24,"createTime":54,"updateTime":55,"deleted":14},11,"css媒体查询","CSS媒体查询（Media Queries）是一种CSS技术，用于根据设备的特性和屏幕尺寸，为不同的设备或屏幕应用不同的样式。通过使用媒体查询，我们可以创建响应式的网页设计，使网页在不同设备上呈现出最佳的布局和样式。下面是对CSS媒体查询的详细介绍：\r\n\r\n1. 基本概念：\r\n\r\n   - 媒体查询允许我们根据不同的媒体类型和媒体特性来应用样式。\r\n   - 媒体类型可以是`all`（所有设备）、`screen`（屏幕）、`print`（打印机）等。\r\n   - 媒体特性可以是设备宽度、设备高度、设备方向等。\r\n\r\n2. 媒体查询的语法：\r\n\r\n   - 媒体查询使用`@media`规则来定义。\r\n\r\n   - 语法格式如下：\r\n\r\n     ```css\r\n     @media 媒体类型 and (媒体特性) {\r\n       /* 样式规则 */\r\n     }\r\n     ```\r\n\r\n3. 常用的媒体特性：\r\n\r\n   - `width`：设备宽度。\r\n   - `height`：设备高度。\r\n   - `orientation`：设备方向（纵向或横向）。\r\n   - `min-width`：最小设备宽度。\r\n   - `max-width`：最大设备宽度。\r\n   - `min-height`：最小设备高度。\r\n   - `max-height`：最大设备高度。\r\n\r\n4. 示例代码：\r\n\r\n   - 下面是一个简单的媒体查询示例，当设备宽度小于等于600像素时，应用特定的样式：\r\n\r\n     ```css\r\n     @media (max-width: 600px) {\r\n       /* 在宽度小于等于600px的设备上应用以下样式 */\r\n       body {\r\n         background-color: lightblue;\r\n       }\r\n     }\r\n     ```\r\n\r\n   - 另一个示例，当设备是横向方向时，应用特定的样式：\r\n\r\n     ```css\r\n     @media (orientation: landscape) {\r\n       /* 在横向方向的设备上应用以下样式 */\r\n       body {\r\n         font-size: 20px;\r\n       }\r\n     }\r\n     ```\r\n\r\n通过媒体查询，我们可以根据设备的特性和屏幕尺寸，为不同的设备提供最佳的用户体验。使用媒体查询可以实现响应式布局、适配不同尺寸的屏幕、隐藏或显示特定的内容等。\r\n\r\n总结：\r\n\r\n- 媒体查询是一种CSS技术，用于根据设备的特性和屏幕尺寸应用不同的样式。\r\n- 使用`@media`规则来定义媒体查询。\r\n- 常用的媒体特性包括设备宽度、设备高度、设备方向等。\r\n- 通过媒体查询，可以创建响应式的网页设计，为不同设备提供最佳的用户体验。\r\n\r\n以上是对CSS媒体查询的详细介绍和示例代码，希望能帮助你更好地理解和应用CSS媒体查询。","CSS媒体查询（Media Queries）是一种CSS技术，用于根据设备的特性和屏幕尺寸，为不同的设备或屏幕应用不同的样式。通过使用媒体查询，我们可以创建响应式的网页设计，使网页在不同设备上呈现出最佳的布局和样式。下面是对CSS媒体查询的详细介绍：\r\n\r\nCSS媒体查询（Media Queries）是一种CSS技术，用于根据设备的特性和屏幕尺寸，为不同的设备或屏幕应用不同的样式。通过使用媒体查询，我们可以创建响应式的网页设计，使网页在不同设备上呈现出最佳的布局和样式。下面是对CSS媒体查询的详细介绍：","https://img.qiqii.cn/cover/11.webp",3,17,"2023-12-22 17:06:59","2025-02-04 14:19:50",{"id":57,"title":58,"content":59,"description":60,"coverImg":61,"state":14,"categoryId":52,"authorName":16,"views":47,"likes":24,"createTime":62,"updateTime":63,"deleted":14},10,"css flex布局","CSS Flex布局是一种强大而灵活的布局模型，它可以帮助我们轻松地创建响应式和可自适应的网页布局。Flex布局通过使用容器和项目之间的关系来实现灵活的布局。\r\n\r\n1. 容器属性：\r\n   - `display: flex;`：将一个元素标记为Flex容器。\r\n   - `flex-direction: row | row-reverse | column | column-reverse;`：设置Flex容器中项目的排列方向。\r\n   - `flex-wrap: nowrap | wrap | wrap-reverse;`：定义Flex容器中项目的换行方式。\r\n   - `justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;`：设置Flex容器中项目在主轴上的对齐方式。\r\n   - `align-items: flex-start | flex-end | center | baseline | stretch;`：定义Flex容器中项目在交叉轴上的对齐方式。\r\n   - `align-content: flex-start | flex-end | center | space-between | space-around | stretch;`：设置Flex容器中多行项目在交叉轴上的对齐方式。\r\n\r\n下面是一个示例代码，展示了如何应用Flex容器属性：\r\n\r\n```css\r\n.container {\r\n  display: flex;\r\n  flex-direction: row;\r\n  justify-content: center;\r\n  align-items: center;\r\n}\r\n```\r\n\r\n2. 项目属性：\r\n   - `order: \u003Cinteger>;`：定义项目的排列顺序。\r\n   - `flex-grow: \u003Cnumber>;`：设置项目的放大比例。\r\n   - `flex-shrink: \u003Cnumber>;`：设置项目的缩小比例。\r\n   - `flex-basis: \u003Clength> | auto;`：定义项目在主轴上的初始大小。\r\n   - `flex: none | [ \u003C'flex-grow'> \u003C'flex-shrink'>? || \u003C'flex-basis'> ];`：简写形式，用于设置`flex-grow`、`flex-shrink`和`flex-basis`的值。\r\n   - `align-self: auto | flex-start | flex-end | center | baseline | stretch;`：设置单个项目在交叉轴上的对齐方式。\r\n\r\n下面是一个示例代码，展示了如何应用Flex项目属性：\r\n\r\n```css\r\n.item {\r\n  order: 2;\r\n  flex-grow: 1;\r\n  flex-shrink: 0;\r\n  flex-basis: 200px;\r\n  align-self: center;\r\n}\r\n```\r\n\r\nFlex布局是一种强大的工具，可以轻松地创建各种布局。通过灵活地使用容器属性和项目属性，我们可以实现自适应、响应式的网页布局。无论是构建简单的导航栏还是复杂的网格系统，Flex布局都能提供出色的效果。\r\n\r\n总结：\r\n\r\n- 使用`display: flex;`将元素标记为Flex容器。\r\n- 使用容器属性如`flex-direction`、`justify-content`和`align-items`来控制Flex容器中项目的排列和对齐方式。\r\n- 使用项目属性如`order`、`flex-grow`和`flex-basis`来控制Flex项目的顺序和大小。\r\n- 可以通过简写形式`flex`来同时设置`flex-grow`、`flex-shrink`和`flex-basis`的值。\r\n- Flex布局是一种强大而灵活的布局模型，适用于各种网页布局需求。\r\n\r\n以上是对CSS Flex布局的简要介绍和示例代码。","CSS Flex布局是一种强大而灵活的布局模型，它可以帮助我们轻松地创建响应式和可自适应的网页布局。Flex布局通过使用容器和项目之间的关系来实现灵活的布局。","https://img.qiqii.cn/cover/10.webp","2023-12-22 16:56:54","2025-05-17 20:18:34",{"id":65,"title":66,"content":67,"description":68,"coverImg":69,"state":14,"categoryId":52,"authorName":16,"views":70,"likes":24,"createTime":71,"updateTime":72,"deleted":14},9,"css定位","CSS定位是一种用于控制元素在网页中的位置和布局的技术。通过使用不同的定位属性和值，我们可以精确地定位元素在页面中的位置。下面是对CSS定位的详细介绍：\r\n\r\n1. 相对定位（Relative Positioning）：\r\n   - 相对定位是相对于元素在正常文档流中的位置进行定位。\r\n   - 使用`position: relative;`来设置相对定位。\r\n   - 可以通过设置`top`、`right`、`bottom`和`left`属性来调整元素相对于原始位置的偏移量。\r\n\r\n下面是一个示例代码，展示了如何应用相对定位：\r\n\r\n```css\r\n.relative-box {\r\n  position: relative;\r\n  top: 20px;\r\n  left: 30px;\r\n}\r\n```\r\n\r\n2. 绝对定位（Absolute Positioning）：\r\n   - 绝对定位是相对于最近的已定位祖先元素（如果没有已定位的祖先元素，则相对于初始包含块）进行定位。\r\n   - 使用`position: absolute;`来设置绝对定位。\r\n   - 可以通过设置`top`、`right`、`bottom`和`left`属性来指定元素相对于祖先元素的偏移量。\r\n\r\n下面是一个示例代码，展示了如何应用绝对定位：\r\n\r\n```css\r\n.absolute-box {\r\n  position: absolute;\r\n  top: 100px;\r\n  right: 50px;\r\n}\r\n```\r\n\r\n3. 固定定位（Fixed Positioning）：\r\n   - 固定定位是相对于浏览器窗口进行定位，元素的位置在滚动时不会改变。\r\n   - 使用`position: fixed;`来设置固定定位。\r\n   - 可以通过设置`top`、`right`、`bottom`和`left`属性来指定元素相对于浏览器窗口的偏移量。\r\n\r\n下面是一个示例代码，展示了如何应用固定定位：\r\n\r\n```css\r\n.fixed-box {\r\n  position: fixed;\r\n  top: 20px;\r\n  right: 20px;\r\n}\r\n```\r\n\r\n4. 粘性定位（Sticky Positioning）：\r\n   - 粘性定位是相对于其包含块的滚动容器进行定位，当元素滚动到特定位置时，会变为固定定位。\r\n   - 使用`position: sticky;`来设置粘性定位。\r\n   - 可以通过设置`top`、`right`、`bottom`和`left`属性来指定元素相对于包含块的偏移量。\r\n\r\n下面是一个示例代码，展示了如何应用粘性定位：\r\n\r\n```css\r\n.sticky-box {\r\n  position: sticky;\r\n  top: 50px;\r\n}\r\n```\r\n\r\nCSS定位是一种强大的工具，可以帮助我们实现各种复杂的布局效果。通过灵活地使用相对定位、绝对定位、固定定位和粘性定位，我们可以精确地控制元素在页面中的位置和行为。\r\n\r\n总结：\r\n\r\n- 相对定位使用`position: relative;`，相对于元素在正常文档流中的位置进行定位。\r\n- 绝对定位使用`position: absolute;`，相对于最近的已定位祖先元素进行定位。\r\n- 固定定位使用`position: fixed;`，相对于浏览器窗口进行定位。\r\n- 粘性定位使用`position: sticky;`，相对于其包含块的滚动容器进行定位。\r\n- 可以通过设置`top`、`right`、`bottom`和`left`属性来调整元素的偏移量。","CSS定位是一种用于控制元素在网页中的位置和布局的技术。通过使用不同的定位属性和值，我们可以精确地定位元素在页面中的位置。下面是对CSS定位的详细介绍：","https://img.qiqii.cn/cover/9.webp",8,"2023-12-22 16:56:11","2025-03-30 09:47:35",{"id":70,"title":74,"content":75,"description":76,"coverImg":77,"state":14,"categoryId":52,"authorName":16,"views":33,"likes":24,"createTime":78,"updateTime":79,"deleted":14},"css浮动","CSS浮动（float）是一种布局技术，用于控制元素在网页中的位置和排列方式。通过使用浮动属性，我们可以使元素脱离正常文档流，并实现元素的左右浮动。下面是对CSS浮动的详细介绍：\r\n\r\n1. 浮动的基本概念：\r\n   - 使用`float`属性可以将元素浮动到其容器的左侧或右侧。\r\n   - 浮动元素会脱离正常文档流，其他元素会围绕浮动元素进行排列。\r\n   - 浮动元素可以使文本环绕在其周围，实现图文混排的效果。\r\n\r\n2. 浮动的属性值：\r\n   - `float: left;`：将元素向左浮动。\r\n   - `float: right;`：将元素向右浮动。\r\n   - `float: none;`（默认值）：取消元素的浮动。\r\n\r\n3. 清除浮动（Clearing Floats）：\r\n   - 当浮动元素后面的元素也需要脱离浮动的影响时，需要进行清除浮动。\r\n   - 可以使用`clear`属性来清除浮动。\r\n   - 常用的清除浮动方法包括：使用空的`div`元素和设置`clear: both;`。\r\n\r\n下面是一个示例代码，展示了如何应用浮动和清除浮动：\r\n\r\n```html\r\n\u003Cstyle>\r\n  .left-float {\r\n    float: left;\r\n    width: 200px;\r\n    height: 200px;\r\n    background-color: red;\r\n    margin-right: 20px;\r\n  }\r\n\r\n  .right-float {\r\n    float: right;\r\n    width: 200px;\r\n    height: 200px;\r\n    background-color: blue;\r\n    margin-left: 20px;\r\n  }\r\n\r\n  .clearfix::after {\r\n    content: \"\";\r\n    display: table;\r\n    clear: both;\r\n  }\r\n\u003C/style>\r\n\r\n\u003Cdiv class=\"left-float\">\u003C/div>\r\n\u003Cdiv class=\"right-float\">\u003C/div>\r\n\u003Cdiv class=\"clearfix\">\u003C/div>\r\n```\r\n\r\n在上面的代码中，我们创建了两个浮动元素，一个向左浮动（`.left-float`），一个向右浮动（`.right-float`）。它们具有指定的宽度、高度和背景颜色，并通过`margin`属性设置了间距。最后，我们使用一个具有`.clearfix`类的空`div`元素来清除浮动。\r\n\r\n通过浮动和清除浮动，我们可以实现多列布局、图文混排等复杂的网页布局效果。然而，需要注意的是，过度使用浮动可能会导致布局混乱，因此在使用浮动时要谨慎，并结合其他布局技术进行综合应用。\r\n\r\n总结：\r\n\r\n- 使用`float`属性可以将元素浮动到左侧或右侧。\r\n- 浮动元素会脱离正常文档流，其他元素会围绕浮动元素进行排列。\r\n- 可以使用`float: left;`和`float: right;`来设置元素的浮动方向。\r\n- 清除浮动可以使用`clear`属性，常用的清除浮动方法包括使用空的`div`元素和设置`clear: both;`。","CSS浮动（float）是一种布局技术，用于控制元素在网页中的位置和排列方式。通过使用浮动属性，我们可以使元素脱离正常文档流，并实现元素的左右浮动。下面是对CSS浮动的详细介绍：","https://img.qiqii.cn/cover/8.webp","2023-12-22 16:55:09","2024-11-28 16:53:11",{"id":81,"title":82,"content":83,"description":84,"coverImg":85,"state":14,"categoryId":52,"authorName":16,"views":65,"likes":24,"createTime":86,"updateTime":87,"deleted":14},7,"css盒子模型","CSS盒子模型是网页布局中的一个基本概念，它描述了一个HTML元素在页面中所占据的空间。盒子模型由四个部分组成：内容区域、内边距、边框和外边距。下面是对CSS盒子模型的详细介绍：\r\n\r\n1. 内容区域（Content Area）：\r\n   - 内容区域是盒子模型的核心部分，它包含了元素的实际内容，比如文本、图像或其他子元素。\r\n   - 内容区域的大小可以通过设置`width`和`height`属性来指定。\r\n\r\n2. 内边距（Padding）：\r\n   - 内边距是内容区域与边框之间的空白区域，用于控制内容与边框之间的距离。\r\n   - 内边距可以通过设置`padding`属性来指定，也可以分别设置上、右、下、左四个方向的内边距，如`padding-top`、`padding-right`、`padding-bottom`和`padding-left`。\r\n\r\n3. 边框（Border）：\r\n   - 边框是包围内容和内边距的线条或样式，用于定义元素的边界。\r\n   - 边框可以通过设置`border`属性来指定，也可以分别设置边框的样式、宽度和颜色，如`border-style`、`border-width`和`border-color`。\r\n\r\n4. 外边距（Margin）：\r\n   - 外边距是盒子模型与其他元素之间的空白区域，用于控制元素与其他元素之间的距离。\r\n   - 外边距可以通过设置`margin`属性来指定，也可以分别设置上、右、下、左四个方向的外边距，如`margin-top`、`margin-right`、`margin-bottom`和`margin-left`。\r\n\r\n下面是一个示例代码，展示了如何应用盒子模型的属性：\r\n\r\n```css\r\n.box {\r\n  width: 200px;\r\n  height: 150px;\r\n  padding: 20px;\r\n  border: 1px solid #000;\r\n  margin: 10px;\r\n}\r\n```\r\n\r\n在上面的示例中，`.box`类表示一个具有固定宽度和高度的盒子。它具有20像素的内边距、1像素的实线边框和10像素的外边距。\r\n\r\n通过灵活地使用盒子模型的属性，我们可以精确地控制元素在页面中的布局和间距。它对于创建自适应和响应式的网页布局非常重要。\r\n\r\n总结：\r\n\r\n- 盒子模型由内容区域、内边距、边框和外边距组成。\r\n- 内容区域包含元素的实际内容，可以通过设置`width`和`height`来指定大小。\r\n- 内边距是内容区域与边框之间的空白区域，用于控制内容与边框之间的距离。\r\n- 边框是包围内容和内边距的线条或样式，用于定义元素的边界。\r\n- 外边距是盒子模型与其他元素之间的空白区域，用于控制元素与其他元素之间的距离。\r\n- 通过设置相应的属性，如`padding`、`border`和`margin`，可以调整盒子模型的各个部分。\r\n\r\n以上是对CSS盒子模型的简要介绍和示例代码，希望能帮助你更好地理解和应用盒子模型。","CSS盒子模型是网页布局中的一个基本概念，它描述了一个HTML元素在页面中所占据的空间。盒子模型由四个部分组成：内容区域、内边距、边框和外边距。下面是对CSS盒子模型的详细介绍：","https://img.qiqii.cn/cover/7.webp","2023-12-22 16:53:53","2025-01-05 10:44:06",{"id":89,"title":90,"content":91,"description":92,"coverImg":93,"state":14,"categoryId":89,"authorName":16,"views":94,"likes":15,"createTime":95,"updateTime":96,"deleted":14},2,"python必备基础知识","Python作为一种易学易用的编程语言，受到了广泛的欢迎。它适用于各种领域，包括Web开发、数据科学、人工智能等。如果对Python感兴趣，或者想要学习编程，那么这篇文章将提供Python入门所需的基础知识和技能。\r\n\r\n### 1. Python的基本概念\r\n\r\nPython是一种高级编程语言，它具有简洁而清晰的语法，使得代码易于阅读和编写。学习Python的第一步是理解以下几个基本概念：\r\n\r\n- **易读易学**：Python的语法设计简洁，使用空白符而不是大括号来组织代码块，这使得代码更具可读性。\r\n- **解释型语言**：Python是一种解释型语言，这意味着你可以直接运行代码而无需预先编译。\r\n- **面向对象**：Python支持面向对象编程，但也可以以函数式或过程式方式编写代码。\r\n\r\n### 2. Python开发环境的搭建\r\n\r\n在开始学习Python之前，需要先搭建好Python的开发环境。通常情况下，你需要安装Python解释器和一个文本编辑器或集成开发环境（IDE）。以下是搭建Python开发环境的简要步骤：\r\n\r\n- **安装Python**：从Python官网下载并安装最新版本的Python解释器。\r\n- **选择编辑器或IDE**：可以选择Sublime Text、PyCharm、VS Code等作为编辑器或IDE，根据个人喜好进行安装和配置。\r\n\r\n### 3. 第一个Python程序\r\n\r\n现在，让我们来编写你的第一个Python程序，一个经典的“Hello, World!”程序。在你的编辑器中创建一个新的Python文件，然后输入以下代码：\r\n\r\n```python\r\nprint(\"Hello, World!\")\r\n```\r\n\r\n这行简单的代码就足以输出“Hello, World!”到控制台。\r\n\r\n### 4. 基本语法和数据类型\r\n\r\n学习任何编程语言，都离不开对其基本语法和数据类型的了解。Python的基本语法包括变量声明、条件语句、循环语句等，而数据类型则包括整型、浮点型、字符串、列表、元组、字典等。以下是一个简单的示例：\r\n\r\n```python\r\nnum1 = 10\r\nnum2 = 5.5\r\nname = \"Alice\"\r\nmy_list = [1, 2, 3, 4, 5]\r\nmy_dict = {'a': 1, 'b': 2, 'c': 3}\r\n```\r\n\r\n### 5. 控制流和循环结构\r\n\r\nPython提供了丰富的控制流和循环结构，包括if-else语句、while循环、for循环等。下面是一个简单的例子：\r\n\r\n```python\r\nnum = 10\r\nif num > 0:\r\n    print(\"Number is positive\")\r\nelif num \u003C 0:\r\n    print(\"Number is negative\")\r\nelse:\r\n    print(\"Number is zero\")\r\n```\r\n\r\n### 6. 函数和模块\r\n\r\n在Python中，函数是一组用来完成特定任务的语句，而模块则是包含了函数和变量的Python文件。以下是一个简单的函数示例：\r\n\r\n```python\r\ndef add(a, b):\r\n    return a + b\r\n```\r\n\r\n### 7. 类和对象\r\n\r\nPython同样支持面向对象编程。类是对象的蓝图，它定义了对象的属性和行为。对象则是类的实例。以下是一个简单的类和对象的示例：\r\n\r\n```python\r\nclass Car:\r\n    def __init__(self, brand, color):\r\n        self.brand = brand\r\n        self.color = color\r\n\r\n    def start(self):\r\n        print(\"The car is starting.\")\r\n```\r\n\r\n### 结语\r\n\r\n通过本文的介绍，已经初步了解了Python的基本概念、开发环境搭建、基本语法和面向对象编程等内容。当然，Python作为一门功能强大的编程语言，还有很多其他重要的知识点和特性等待你去探索和学习。希望本文能够帮助建立起对Python编程的基础认识，为你在学习Python的道路上提供一些帮助。\r\n\r\n","Python作为一种易学易用的编程语言，受到了广泛的欢迎。它适用于各种领域，包括Web开发、数据科学、人工智能等。如果对Python感兴趣，或者想要学习编程，那么这篇文章将提供Python入门所需的基础知识和技能。","https://img.qiqii.cn/cover/2.webp",18,"2023-12-22 09:18:42","2024-12-03 17:19:27",{"code":4,"msg":5,"data":98},[99,104,109,114,119,124],{"id":24,"name":100,"alias":101,"count":15,"createTime":102,"updateTime":103,"deleted":14},"java","🍡 柒柒Java学习笔记","2023-12-07 14:46:56","2024-11-25 01:33:15",{"id":89,"name":105,"alias":106,"count":24,"createTime":107,"updateTime":108,"deleted":14},"python"," 🍼 柒柒Python学习笔记","2023-12-07 14:47:07","2024-11-23 15:15:40",{"id":52,"name":110,"alias":111,"count":33,"createTime":112,"updateTime":113,"deleted":14},"前端","🍉 柒柒前端学习笔记","2023-12-07 14:47:54","2024-11-23 15:15:58",{"id":15,"name":115,"alias":116,"count":89,"createTime":117,"updateTime":118,"deleted":14},"linux","🍟 柒柒Linux学习笔记","2024-11-23 14:34:45","2024-11-23 14:48:33",{"id":33,"name":120,"alias":121,"count":24,"createTime":122,"updateTime":123,"deleted":14},"数据库","🍨 柒柒数据库学习笔记","2024-11-23 14:36:39","2024-11-23 15:23:38",{"id":125,"name":126,"alias":127,"count":14,"createTime":128,"updateTime":128,"deleted":14},6,"计算机综合","🧀 柒柒计算机综合学习笔记","2024-11-28 13:42:39",1761936903557]