Linux与并行计算
文章平均质量分 84
陆嵩
中国科学院数学与系统科学研究院 计算数学与科学工程计算研究所 科学与工程计算国家重点实验室
State Key Laboratory of Scientific and Engineering Computing,
Institute of Computational Mathematics and Scientific/Engineering Computing,
Academy of Mathematics and Systems Science,
Chinese Academy of Sciences
Email: lusong@lsec.cc.ac.cn
展开
-
入门 python 看这一篇就可以了
学习一门语言有必要系统体系地从头到脚学一遍吗?我认为有必要,但是没意义。如果你有一些其他语言的基础,想要入门 python,那么最好的方式就是了解一下它有哪些数据结构和循环等怎么写,并自己敲一些代码测试一下,剩下的就是直接拿它开始干你想让它帮你做的事,遇到问题面向浏览器编程,一点一点熟悉就好了。下面列出了 python 中最最最基础的数据结构和用法(列表、 numpy 数组等),你花 10 分钟,把它们每一条试一试都过一遍,理解不了运行结果是为什么那样的查一查搞明白,那们你的 python 已经入门了。主要原创 2022-06-12 14:28:59 · 740 阅读 · 1 评论 -
vscode 远程连接 docker 容器进行 C++ 代码调试实践
vscode 远程连接 docker 容器进行 C++ 代码调试实践vscode 是可以利用远程的编译环境在本地进行打断点调试的。文章目录vscode 远程连接 docker 容器进行 C++ 代码调试实践服务器端创建容器并进行端口映射容器设置vscode 远程连接容器调试服务器端创建容器并进行端口映射docker run -it \ --name abacus2 \ --workdir /root \ --entrypoint /bin/bash \ -p 8010:原创 2022-05-24 00:08:22 · 2309 阅读 · 0 评论 -
abacus 基本操作
abacus 基本操作文章目录abacus 基本操作下载和运行abacus输入输出源码解读下载和运行abacus设置代理export HTTP_PROXY=http://sys-proxy-rd-relay.byted.org:8118export HTTPS_PROXY=http://sys-proxy-rd-relay.byted.org:8118克隆git clone https://github.com/deepmodeling/abacus-develop.git运行方式,在参原创 2022-05-18 22:24:37 · 1141 阅读 · 0 评论 -
tmux 的简单使用记录
tmux 的简单使用记录安装apt install tmux新建一个 tmux 会话tmux new -s abacus退出 tmux 会话窗口并杀死进程exitdetach 退出 tmux 但保持后台Ctrl+B + d查看有几个 tmux 会话窗口tmux ls杀死会话tmux kill-session -t abacusattach 进入后台运行的会话窗口tmux a -t abacus增加 windows 窗口Ctrl+B + c创建一个新窗口,状原创 2022-05-18 22:22:13 · 195 阅读 · 0 评论 -
docker 的简单使用
docker 的简单使用文章目录docker 的简单使用安装 docker镜像使用容器使用容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。安装 docker清理防原创 2022-05-18 22:18:18 · 482 阅读 · 0 评论 -
GitHub(Gitee) 和 Git 的使用笔记(持续更新)
GitHub(Gitee) 和 Git 的使用笔记(持续更新)文章目录GitHub(Gitee) 和 Git 的使用笔记(持续更新)新建仓库并上传代码关于 GitHub PagesGit 操作撤销总结git reset强制回滚到 github 最后版本丢弃临时修改,回退得到本地 HEAD 版本git 使用 reset 后如何回来git pull 强制覆盖本地git checkout 只放弃本地一些问题解决github中文件夹后面跟@+数字什么意思?为什么git clone下来里面是空的?无法添加远程仓库原创 2022-03-01 05:15:00 · 812 阅读 · 0 评论 -
关于(广义)代数特征值问题的一点注记
关于(广义)代数特征值问题的一点注记感谢王同学和王同学提供的一些信息和资料。文章目录关于(广义)代数特征值问题的一点注记常用特征值计算方法概述对称特征值问题非对称特征值问题Krylov 子空间方法对于大规模问题小小的总结常用特征值计算方法概述对称特征值问题Jacobi 迭代 、Rayleigh 商迭代 、对称 QR 迭代方法、 分而治之法 、对分法和反迭代法对称 QR 迭代:对称矩阵的 QR 方法,首先将矩阵约化为 Herssenberg 矩阵,然后在求解该矩阵的特征值。对于对称三角原创 2022-02-26 22:06:00 · 2444 阅读 · 0 评论 -
为了我的侄儿,我爬了高考前必背古诗文
为了我的侄儿,我爬了高考前必背古诗文文章目录为了我的侄儿,我爬了高考前必背古诗文谈动机忆诗文爬诗文看结果知识点谈动机吾有侄儿,生于岁末(年三十),近三龄。时代这么卷,我每天都在想,我能为他做点什么。想到他 5000 多天后就要参加高考了,时不我待,应该尽早准备起来。大家都知道,中小学语文的学习内容还是比较“丰富”的,其间最消耗时间的就包括要背诵很多的古诗词、文言文、近现代诗、短文等等。如果我们能把这些必背的篇章收集起来,做成小册子、mp3 甚至视频,从小给他听,给他看,耳濡目染,日渐熟悉,等到学校要求原创 2021-12-26 10:41:55 · 7360 阅读 · 9 评论 -
Windows 操作系统常用操作和错误处理记录(持续更新……)
文章目录Windows 篇更改桌面存储路径还原时出现“D:\system volume information”的解决办法解决双系统重装 win 之后,进不了 Linux 系统yoga14s 虚拟机蓝屏,无法打开内核设备“\\.\VMCIDev\VMX”: 系统找不到指定的文件。你想要在安装 VMware Workstation 前重启吗?模块“DevicePowerOn”启动失败。BAT 脚本VMware tools for win 下载Ubuntu 篇一些快捷键`>a.txt` 把控制台的内容重定原创 2021-08-08 21:43:22 · 791 阅读 · 0 评论 -
C 编译链接与执行总结(头文件路径、库文件链接、环境变量……都是什么鬼?)
C 编译链接与执行总结(头文件路径、库文件链接、环境变量……都是什么鬼?)问:为什么程序编译链接又报找不到 .so 文件的错误?明明手动都能找到,也指定了路径,有 bug 吧?答:确实有 bug ,你有 bug。经常郁于程序的编译链接或者执行失败而直呼 C 是个玄学的人,十有八九都是对 C 的编译链接执行过程不慎了解,把各种搜索路径环境变量搞得一塌糊涂的人。还有救吗?有救,何弃疗。有病就得治,首先祭出杀手锏——回魂丹:包治百病,不服来辩不过现在某度搜索越来越垃圾了,经常搜不到你想搜到的东原创 2021-07-18 22:17:49 · 748 阅读 · 1 评论 -
如何快速地进出——C++ 读写数据 I/O 性能优化
如何快速地进出——C++ 读写数据 I/O 性能优化I 即 Input 表示进,O 即 Output 表示出,任何的进出,如果你没有掌握正确的姿势,就容易让工具累趴,如上图所示。比如说,读写数据,如果没有掌握正确的 IO 姿势,你的计算机很容易就累了。在多媒体技术高速发展的今天,数据的积累成指数级别的增长。数据的挖掘要求我们对海量的数据进行输入,进而处理与分析之后,将结果输出。很多时候,在算法处理数据耗时较短的情况的,数据的 I/O 成了减少时间、提高程序性能的瓶颈。要改进 I/O 性能,一个最原创 2021-07-11 23:57:44 · 3404 阅读 · 7 评论 -
网页搜索(百度谷歌)你不得不知道的十个小技巧
网页搜索(百度谷歌)你不得不知道的十个小技巧百度搜索广告多,谷歌搜索搜不到东西,这时候,你得问问自己—— 你,用对姿势了么? 文章目录网页搜索(百度谷歌)你不得不知道的十个小技巧搜索去除广告:intitle查找固定类型的文件:filetype查找所有指向该网页的链接:link查找文本中包含该关键字:intext在特定的部门查找内容:inurl指定搜索内容的时间:..限定搜索的站点:site搜索 google 服务器的缓存:cache查询资源站点: "index of/"调看实时监控:inurl谷歌火星原创 2021-06-19 22:37:21 · 1738 阅读 · 3 评论 -
科学计算软件包的使用,遇到的问题及其处理汇总(持续更新……)
DROPS 篇安装和配置安装cmake,使用cmake生成ubuntu的makefile文件。将命令行切换目录到你想生成二进制脚本文件的地方,比如说新建drops/bin,在命令行下输入cmake+cmake文件地址如cmake ../src来生成二进制文件。安装boost包,下载地址。下载后使用tar -jxvf xxx.tar.bz2 来解压,解压后./bootstrap.sh运行脚本,生成b2文件,使用./b2运行它。这可能需要一些时间。之后,使用./b2 install来安装它。CB的原创 2021-03-21 11:34:09 · 493 阅读 · 0 评论 -
一个头文件告诉你 C++ 中矩阵、向量及其相关运算(矩阵乘向量等)的定义
如何优雅地写好科学计算的 C 代码文章目录如何优雅地写好科学计算的 C 代码动机实现的功能矩阵、向量定义的 h 文件一个主程序告诉你方法怎么用动机我有个同学叫王云初。那天和云初一起去上课,他坐在我旁边,抱着 Y7000P,在 Qt 里敲着计算流体力学的 C 代码,不一会儿,洋洋洒洒码出近百行的代码。定睛一看,密密麻麻地,三层、四层、五层,全是 for 循环,除了 for 循环,似乎没有别的东西了。一个搞高性能计算的精神小伙,对于写 for 循环,乐此不疲。我们做科学计算的,免不了在程序中大批次大规模原创 2021-04-20 22:07:36 · 2511 阅读 · 2 评论 -
分布式优化和去中心化优化概述
分布式优化和去中心化优化概述陆嵩中科院 数学与系统科学研究院 科学与工程计算国家重点实验室文章目录分布式优化和去中心化优化概述简介预备知识优化基础理论梯度下降方法(GD)Gradient Descent步长选取收敛率约束优化问题的拉格朗日乘数法次梯度算法图谱理论基础平均一致性问题模型问题梯度算法收敛性结果对于去中心化的梯度下降方法凸问题的 DGD 算法一些结论和讨论凸问题的较新方法ADMM(原始-对偶)对偶上升对偶分解增广拉格朗日方法ADMM 及其收敛性分布式 ADMM 算法EXTRA和其他方法非原创 2020-07-31 18:43:58 · 5047 阅读 · 7 评论 -
CTeX 套装替代方案:Texlive+Texmaker
cTeX 套装替代方案:Texlive+Texmaker文章目录cTeX 套装替代方案:Texlive+Texmaker容易混淆的概念说明LaTeX 编译系统LaTeX 文本编辑器编译引擎CTeX 套装和 ctex 宏包CTeX or TeXlive???对于 CTeX 套装或者 WinEdt 有执念一些下载链接容易混淆的概念说明LaTeX 编译系统编译系统用于提供编译环境,主流的编译系统有,如 TEXLive(MacOS 下叫 MacTeX)和 MiKTEX,包括他们的一些七七八八的衍生品。La原创 2020-07-15 12:09:31 · 3457 阅读 · 1 评论 -
通过例子理解头文件库文件的编译链接
通过例子理解头文件库文件的编译链接文章目录通过例子理解头文件库文件的编译链接多 cpp 和 h 文件编译链接例子关于方法实现位置的一个说明打包成静态链接库和动态链接库进行链接小小的总结网传头文件的包含和静动态链接库的链接无非就是文件的赋值黏贴而已。是耶非耶?是的话,是如何复制,又是如何黏贴,今天通过这篇文章,通过简单的例子,带你们了解一下多个 cpp 文件和 h 头文件之间是如何组织在一块的。多 cpp 和 h 文件编译链接例子为了说明这个问题,首先我写了以下几个文件,命名分别为 1main.c原创 2020-06-09 20:19:04 · 631 阅读 · 0 评论 -
C++ 高性能计算之多线程简单基础入门教程
C/C++ 高性能计算之多线程简单基础入门教程比起别人的盲目罗列函数接口,鹦鹉学舌式的解释每一个输入参数和输出参数,一味求全而无重点,我的文章更侧重于入门知识的讲解,宁缺毋滥,只有一些最简单的入门用法,先亮代码,让你以最快地速度感受到这个东西原来是这个样子。更深入的知识,可以查看文档以及其他参考。不管什么东西,都是尽可能地用新不用旧,所以,文章涉及的库和工具,都是基于 C++11 标准的。前面有相关的博文已经介绍过 MPI,OpenMP 等相关的并行技术,以及 hadoop 生态圈相关的一些知识。原创 2020-06-08 00:38:40 · 2303 阅读 · 0 评论 -
从一个简单的示例入门Cmake
从一个简单的示例入门Cmake文件树形目录结构 ├─meshes│ └─poisson├─param│ ├─geom│ │ └─unspecified│ ├─levelset│ │ ├─brick_transp│ │ ├─film│ │ ├─prJump│ │ ├─twophasedrops│ │ └─unspecified│ ├─os...原创 2019-12-21 16:36:36 · 604 阅读 · 0 评论 -
linux 操作系统常用操作和错误处理记录:Ubuntu 琐碎知识汇总
Ubuntu 18.xx 安装和使用systemback:Ubuntu经常玩崩溃,时常备份以防不测。另外,有些软件安装起来极其复杂,安装好后,制作成iso镜像文件,分享给别人,也是一桩好事。systemback可用于系统的备份还原以及iso镜像制作。终端安装,代码如下:sudo add-apt-repository --remove ppa:nemh/systembacksudo add-...原创 2019-12-13 21:27:48 · 925 阅读 · 1 评论 -
基于cmake文件的Code::Blocks的简单使用
基于cmake文件的Code::Blocks的简单使用motivation在linux环境下可以使用vi+make的方式来书写和编译运行C++的代码,但是对于一个极大的工程文件而言,我们需要一个IDE。Code::Blocks小巧而“专情”,是一个在linux环境下完成C++工程的一个不错的选择。给你一个cmake工程文件,通过cmake获得到了编译运行代码所需的Makefile文件,Cod...原创 2019-05-15 21:51:40 · 3431 阅读 · 0 评论 -
ubuntu安装搜狗输入法
安装简单,做个记录。到搜狗官网https://pinyin.sogou.com/linux/?r=pinyin下载搜狗输入法linux版本,ubuntu18的版本下载64 bit的。打开ubuntu的应用商店,搜索fcitx,将搜到的fcitx程序也就是小企鹅图标的全部安装上。安装完成后,我们再双击刚下载的deb程序文件就可以安装了。搜狗输入法安装完毕后我们打开命令行,输入:sudo ap...原创 2019-05-18 09:33:36 · 515 阅读 · 0 评论 -
linux下.bashrc的使用和个人用户家目录下的软件安装
linux下.bashrc的使用和个人用户家目录下的软件安装.bashrc文件简介:环境配置.bashrc文件主要保存个人的一些个性化设置,如命令别名替代、设置系统的环境变量(PATH)等。在公用的集群环境下,个人用户登录到该账户下的家目录,此只对这个用户的个性化设置起效。它们是一些隐藏文件,ls -a可查看。可以看到有四个相关的文件:.bashrc:当你登入shell时以及每次打开新的...原创 2019-08-28 23:15:54 · 3866 阅读 · 0 评论 -
linux下.bashrc的使用和个人用户家目录下的软件安装
linux下.bashrc的使用和个人用户家目录下的软件安装.bashrc文件简介:环境配置.bashrc文件主要保存个人的一些个性化设置,如命令别名替代、设置系统的环境变量(PATH)等。在公用的集群环境下,个人用户登录到该账户下的家目录,此只对这个用户的个性化设置起效。它们是一些隐藏文件,ls -a可查看。可以看到有四个相关的文件:.bashrc:当你登入shell时以及每次打开新的...原创 2019-08-29 00:06:41 · 1947 阅读 · 0 评论 -
centos下LNMP网站应用环境的部署
重点内容应用环境的部署 前时已说租用了一个服务器,购买了一个域名。解析域名之后,要想ftp自己的html文件并通过其他服务端进行访问,我们还需要对服务器进行环境的配置。服务器我用lnmp部署linux环境,centos比较适合搞服务器,这方面不是Ubuntu能比的。linux比起window系统主要通过命令行操作,搭建环境比较方便。一般的服务器软件主流有nginx和apache,可谓各有千秋。主原创 2016-08-22 20:45:08 · 1352 阅读 · 0 评论 -
曲面上的高阶数值积分
曲面上的高阶数值积分简介基本思想就是将3D区域或者2D曲面上的重积分写成累次积分的方式,再用高斯积分方法进行计算。它需要找单变量非线性函数的根以及估计被积函数、指定点水平集函数及其积分。Ω\OmegaΩ是三维区域,Ωh\Omega_hΩh是它的一个四面体剖分,Γ\GammaΓ是水平集函数L(x)L(x)L(x)决定的一个曲面。TTT是选定的一个四面体。我们想要做的其实就是计算:I−=...原创 2019-04-26 21:47:25 · 1726 阅读 · 0 评论 -
FFT的并行实现
关键词:快速傅里叶变换 高维FFT 并行计算快速傅里叶变换简介离散傅里叶变换离散傅里叶变换(DFT)一般定义为: Fn≡∑k=0N−1fke−2πink/NF_n \equiv \sum_{k=0}^{N-1}f_ke^{-2\pi ink/N}Fn≡k=0∑N−1fke−2πink/N离散傅里叶逆变换可以定义为: fk=1N∑k=0N−1Fne−2πink/Nf_...原创 2018-12-21 11:06:23 · 14094 阅读 · 6 评论 -
Linux(ubuntu-16.04.2)上hadoop的安装与配置
Linux(ubuntu-16.04.2)上hadoop(hadoop-2.7.1)的安装与配置 关于hadoop的安装,网上有七七八八的教程,十个教程九个坑,还有一个特别坑。这使得很多新手在安装hadoop时,按照网上所谓的教程,一步一步,走到了某一步出错了,又搜不到解救之法,不得不放弃。安装过程蹦出的各种问题,让小白们吃吃了不少苦头。下面给出一个Hadoop安装教程(单机/伪分布式配置...原创 2018-04-18 23:27:12 · 5581 阅读 · 2 评论 -
Linux系统中vim编辑器基本用法
Linux系统中vim编辑器基本用法安装完vim后,键入形如 vim word.txt可以打开文件。输入一个英文字母i,进入编辑状态以后才能修改内容修改后,需要按键盘上的Esc键退出vim的编辑状态,之后有以下几种选择: 1、从键盘输入“:wq”三个英文字母,然后回车,表示保存文件并退出。 2、从键盘输入“:q”两个英文字母,然后回车,表示不保存并退出。如果本次编辑过程只是查看了文件...原创 2018-04-18 21:10:04 · 575 阅读 · 0 评论 -
Unix中常用的编译系统及其简单的使用
常用的编译器:C编译器: cc, gcc (GNU C) 等.Fortran 编译器: f77, fc, g77 (GNU Fortran), f90 (Fortran 90) 等. 可用man查看使用手册, 如: man cc, man f77等等.命令行形式:$cc [options] files [options]$f77 [options] files [optio原创 2017-03-12 10:49:32 · 1677 阅读 · 0 评论 -
MPI入门基础(程序欣赏)
从几个简单的MPI程序领你入门 读程序学习编程,是成长最快的方式。hello程序看MPI程序结构/** * 我是世界上引用率最高的程序,hiahia! */#include <stdio.h>#include <mpi.h>int main(int argc, char * argv[]){ int myrank; // 初始化MPI环境 //从这里可以看到,一般MPI指令原创 2017-03-27 21:58:05 · 12925 阅读 · 5 评论 -
关于远程登录和文件传输
关于计算机之间的远程登录和文件传输Windows to Windows Windows到Windows系统的远程登录可以使用计算机自带的远程桌面,win+R-> mstsc。文件的传输直接通过剪切板进行交互即可。Windows to Linux 远程登录: 1、putty pscp(下载后直接使用,我用的这个) 2、SSHSecureShellClient11 3、X-Server :原创 2017-03-06 23:06:47 · 1342 阅读 · 0 评论 -
浅谈linux下的GDB调试
浅谈linux下的GDB调试废话多说不如动手一试,且看demo(言多必失,还令人费解):gcc -g ex.c -o exgdb -tui(按操作提示回车)file exbreak 7break 12run watch nwatch linfo breakcontinuenextinfo localscontinuedelete 3print nptype nfinish(咻一下直接运行原创 2017-03-18 21:24:24 · 517 阅读 · 0 评论 -
远程桌面连接:远程桌面由于以下原因之一无法连接到远程计算机
计算机如何建立远程桌面连接有的时候身在远方,想查看或者调用自己狗窝(宿舍或者家)里的机器的文件,怎么办呢?可以通过远程桌面登录自己个的电脑,利用剪切板的功能便可以实现文件之间的传送。当然,假如家里的电脑没开机,可以让别人帮你开一下机,不一定要登录进界面,但是一定要保证有网。 通过上网查询,按部就班,感觉自己什么步骤都做了,但是蹦出下面这个界面: 咋回事呢?我也不知道,只能再检查一下被远程的机子该原创 2017-02-22 02:34:15 · 276120 阅读 · 30 评论 -
Linux下实用功能make的使用入门
make是一个命令工具,它解释Makefile中的指令(应该说是规则)。首先我们先来了解一下一个程序从诞生到形成可执行文件的过程。编译:把高级语言所书写的代码转换成机器可识别的指令,此时还不能够被执行,编译器通过检查高级语言的语法,函数和变量的声明是否正确!如果正确则产生中间目标文件。(目标文件在Liunx中默认后缀为“.o”) gcc -c main.c(只编译不链接)链接:将多.o文件,或原创 2017-03-12 13:25:55 · 2208 阅读 · 0 评论 -
Git入门
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。使用Git管理代码,可以是多人协作,共同维护服务器上的一个工程项目。也可是单机上进行简单的版本控制。一般来说,使用git能掌握以下几个最最最基本的命令也就差不多够了。建立仓库 git init向仓库导入项目文件,这时候只是在缓存中,还不是真正的提交 git add DIR NEWFILE向仓原创 2017-03-12 14:12:42 · 834 阅读 · 0 评论 -
Linux下MPI环境的安装配置及MPI程序的编译运行
Linux下MPI环境的安装配置及MPI程序的编译运行,step by step。下载MPI安装包 去这里下载一个适合的安装包。安装包的解压 安装包所在的目录下,运行tar xzvf mpich-x.x.x.tgz。切换到解压出来的包目录下 cd mpich-x.x.xconfigure配置编译环境 ./configure 这里可能会有一些出错提示,缺少编辑器啥的,按需求确认安装C原创 2017-03-12 23:48:51 · 73571 阅读 · 13 评论 -
Linux 环境变量的修改与 C/C++ 头文件搜索路径和库目录的包含方法
Linux下修改环境变量的几种方式通过profile和bashrc文件修改所有用户生效的修改方式修改etc/profile文件: 为每个用户设置环境信息。当用户登录时,该文件被执行一次。 文件中添加:PATH="$PATH:新的路径",$PATH表示原有路径,路径间用冒号隔开,故有此写法。修改/etc/bashrc文件: 当 bash shell 被打开时,该文件被读取。 ...原创 2018-06-25 15:04:35 · 2488 阅读 · 0 评论 -
从矩阵乘法来看-O优化和ijk执行顺序对程序性能的影响
从矩阵乘法来看-O优化和ijk执行顺序对程序性能的影响根据计算矩阵乘积的c程序,主要想做想做两件事情:统计采用不同的优化选项编译程序所用的时间,感受-O优化带来的性能提升。看看矩阵乘法中不同循环顺序对程序性能的影响: 改变三重循环的顺序,统计不同循环顺序的运行时间、性能和效率。处理器参数先自报一下家门,老电脑了,四核处理器,每个核心2.60GHz,单核每个时钟周期执行的浮...原创 2018-09-23 19:53:32 · 4495 阅读 · 0 评论 -
方程组求解的直接法与迭代法实现
方程组求解的直接法与迭代法实现问题描述我们的目的在于求解如下所示的方程组:其中的A11、A12、A21、A22A_{11}、A_{12}、A_{21}、A_{22}A11、A12、A21、A22以及右端项fff以不同的的稀疏存储方式存在文件中。我们需要完成的问题包括:理解并描述A11、A12、A21、A22A_{11}、A_{12}、A_{21}、A_{22}A11、A12...原创 2018-12-14 20:25:01 · 6112 阅读 · 9 评论