Ubuntu 系统安装

系统安装

工具/原料

  • Ubuntu官网
  • U盘安装Ubuntu 16.04 教程(安装全过程,不包含下载)
  • ubuntu-16.04-desktop-amd64.iso
  • 制作启动盘

<rufus-3.1.exe>

20200901214740

grub rescue模式下修复分区缺失问题

grub rescue模式下修复分区缺失问题 - 知乎
安装完Ubuntu16-18,重启登录系统显示:

  • error: no such partition.(没有这个分区)
  • Entering rescue mode...
  1. Ctrl+Alt+Delete退出重启
  2. 插入之前安装Ubuntu所使用的live-USB,F12进入BIOS,选择USB引导Ubuntu,选择试用Ubuntu
  3. 联网
  4. 终端输入:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
  1. 得到引导修复框,选择推荐修复(修复常见问题)
  2. 修复成功重启计算机,拔下优盘

Software & Updates 配置

更新源

  • 找到Software & Updates,将源更新为阿里云的源
    Download from:http://mirros.aliyun.com/ubuntu
  • 在Other Software里将Canonical Partners勾上
  • 手动更新
sudo apt update
sudo apt upgrade

软件安装与卸载

'root'
su -

'删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。'
sudo apt-get remove

'删除已安装包(不保留配置文件)。
如软件包a,依赖软件包b,则执行该命令会删除a,而且不保留配置文件'
sudo apt-get purge
or
sudo apt-get --purge remove

'删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件。'
sudo apt-get autoremove

'APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。'
sudo apt-get autoclean

'使用 apt-get clean 会将 /var/cache/apt/archives/ 的 所有 deb 删掉,可以理解为 rm /var/cache/apt/archives/*.deb。'
sudo apt-get clean

系统备份

Ubuntu 备份和恢复系统

Ubuntu14.04如何备份和恢复系统 - 小毅哥哥Bob - 博客园
ubuntu16.04备份和恢复系统 - 人生苦短,我用golang - CSDN博客

备份系统

在备份系统前,请保证系统是无错和干净的
先清空回收站,软件升级到最新

# 清空回收站
"empty trash"

# 软件升级到最新
sudo apt update
sudo apt upgrade

Ubuntu系统与Windows系统所采用的文件系统不同, Ubuntu系统在使用或更新过程中不会产生文件碎片和垃圾文件,所以在使用 Ubuntu系统中不用考虑清理系统的文件垃圾和整理文件碎片。
如果你确实想去清理一下Ubuntu系统的话,那么请你参照下述方法去做吧:

# 1、按“Ctrl+Alt+T”,调出终端。
# 2、在终端输入下面的命令(复制到终端窗口即可)——按回车键——输入帐户密码——按回车键。
sudo apt-get autoclean(清理旧版本的软件缓存)
sudo apt-get clean(清理所有软件缓存)
sudo apt-get autoremove(删除系统不再使用的孤立软件)
# root 设置密码
sudo passwd root

# 切换root权限并进入根目录
su -

# 到根目录
cd /

# 新建restore文件夹来保存备份文件
mkdir restore
# 备份系统

tar cvpzf /restore/Ubuntu.tgz --exclude=/proc --exclude=/lost+found --exclude=/Ubuntu.tgz --exclude=/mnt --exclude=/media --exclude=/sys --exclude=/restore /

# Bzip2比gzip的压缩率高,但是速度慢一些。
# 如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”
# tar cvpjf /restore/Ubuntu.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/Ubuntu.tar.bz2 –exclude=/mnt –exclude=/sys /
"注:出现”tar: 由于前次错误,将以上次的错误状态退出“,可以忽略"

'''
'tar' 是用来备份的程序
c - 新建一个备份文档
v - 详细模式, tar程序将在屏幕上实时输出所有信息。
p - 保存许可,并应用到所有文件。
z - 采用‘gzip’压缩备份文件,以减小备份文件体积。
f - 说明备份文件存放的路径, Ubuntu.tgz 是本例子中备份文件名。
“/”是我们要备份的目录,在这里是整个文件系统。
'''

恢复系统

"切换到root用户,并把文件“Ubuntu.tgz”拷贝到分区的根目录下。"
# 切换root用户执行恢复命令

su root
tar xvpfz Ubuntu.tgz -C /

# 如果你的档案文件是使用Bzip2压缩的,应该用:
# tar xvpfj Ubuntu.tar.bz2 -C /

'''
注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。
参数x是告诉tar程序解压缩备份文件。 -C 参数是指定tar程序解压缩到的目录。( 在本例中是/ ),这会花一段时间。只需确保在你做其他任何事情之前,重新创建你剔除的目录: ( /proc, /lost+found, /mnt, /sys, 等等。)
'''
# 重建没备份的目录
mkdir /proc /lost+found /mnt /sys

# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir media
# mkdir sys

执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。触类旁通,熟练以上操作后,对用户和部分升级文件进行定期备份,可以节省大量时间和提高安全性。

Time Shift 系统备份

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift

搜狗拼音


(Back to Top)

原文链接

终端执行下列命令

sudo apt-get install fcitx-bin      #安装fcitx-bin
sudo apt-get update --fix-missing   #修复fcitx-bin安装失败的情况
sudo apt-get install fcitx-bin      #重新安装fcitx-bin
sudo apt-get install fcitx-table    #安装fcitx-table

搜狗输入法Linux官网下载64bit的程序

sudo dpkg -i sogoupinyin*.deb       #安装搜狗拼音
sudo apt-get install -f             #修复搜狗拼音安装的错误
sudo dpkg -i sogoupinyin*.deb       #重新安装搜狗拼音

重启!重启!重启!重要的事情说三遍!

  1. 找到Fcitx Configure,点击进入

FictxConfigure
FictxConfigure1
FictxConfigure2

electron-ssr

electron-ssr-backup/Ubuntu.md at master · qingshuisiyuan/electron-ssr-backup

安装依赖

sudo apt install libcanberra-gtk-module libcanberra-gtk3-module gconf2 gconf-service libappindicator1

可选依赖

sudo apt-get install libssl-dev
sudo apt-get install libsodium-dev
"如果软件报错,请安装可选依赖"

安装软件

sudo dpkg -i *.deb

系统需要安装Python2.7 否则可以正常运行但不能FQ

sudo apt install python

系统设置

系统设置-网络设置-网络代理设置
alt 系统网络代理设置

"自动"
http://127.0.0.1:2333/proxy.pac

Google browser 设置

使用系统配置

百度网盘客户端

百度网盘 客户端下载

Anaconda+vscode


(Back to Top)

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

Anaconda 安装

Anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

jupyter设置工作目录

配置jupyter工作目录(ubuntu)

jupyter-notebook --generate-config

创建配置文件

打开/home/.jupyter 文件,找到jupyter_notebook_config.py并打开以“.”开头的文件是ubuntu隐藏文件,按 Ctrl+h 显示隐藏文件,​在文档中添加如下命令保存:

c.NotebookApp.notebook_dir = 'working directory'

Jupyter notebook extensions 扩展插件的安装

python -m pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user --skip-running-check
"hinterland是代码提示插件"

git配置

Ubuntu 18.04下GitHub和Git的安装配置入门教程_Linux教程_Linux公社-Linux系统门户网站

Windows 10 环境下安装配置Git并连接到GitHub - 杜赛的博客

使用命令apt-get来安装

sudo apt install git

配置用户名密码

git config --global user.name "ld269440877"
git config --global user.email "aa269440877@outlook.com"
git config --list

# user.name=ld269440877
# user.email=aa269440877@outlook.com

"此时,Home目录下会新建一个.gitconfig文件"

GitHub添加SSH Keys

生成Keys

ssh-keygen -t rsa -C "aa269440877@outlook.com"
"系统会提示key的保存位置(一般是~/.ssh目录)和指定口令,保持默认,连续三次回车即可"

复制SSH Key到GITHUB

"打开该文件,id_rsa.pub文件内的内容,粘帖到github帐号管理的添加SSH key界面中"
cat ~/.ssh/id_rsa.pub
# Hi ld269440877! You've successfully authenticated, but GitHub does not provide shell access.

添加key

登录github-> Settings-> SSH and GPG Keys-> New SSH key添加

测试是否连接成功

ssh -T git@github.com

XYplorer 在空白处点击鼠标右键显示出windows右键菜单,gitbash等

XYplorer 在空白处点击鼠标右键无法显示出windows右键菜单,如何设置? - 知乎

How to show the original context menu in an empty list? - XYplorer Beta Club

  1. 菜单栏:Tools-->open Configuration File 打开 xyplorer.ini 配置文件。
20201031211014
20201031211014
  1. 通过查找:CEA_ListRightClickOnWhite 关键字,将其值设置为:1
20201031211109
20201031211109
  1. 保存 xyplorer.ini 文件

  2. 菜单栏:File-->Restart without Saving 重启后就可以了

    20201031211154
    20201031211154
    1. 最终结果图
    20201031211222
    20201031211222

添加本地与远程仓库链接

'…or create a new repository on the command line'
echo "# vscode" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:ld269440877/vscode.git
git push -u origin master

'…or push an existing repository from the command line'
git remote add origin git@github.com:ld269440877/vscode.git
git push -u origin master

关于忽略规则的说明

#               表示此为注释,将被Git忽略
*.a             表示忽略所有 .a 结尾的文件
!lib.a          表示但lib.a除外
/TODO           表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/          表示忽略 build/目录下的所有文件,过滤整个build文件夹;
doc/*.txt       表示会忽略doc/notes.txt但不包括 doc/server/arch.txt

bin/:           表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin:           表示忽略根目录下的bin文件
/*.c:           表示忽略cat.c,不忽略 build/cat.c
debug/*.obj:    表示忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj
**/foo:         表示忽略/foo,a/foo,a/b/foo等
a/**/b:         表示忽略a/b, a/x/b,a/x/y/b等
!/bin/run.sh    表示不忽略bin目录下的run.sh文件
*.log:          表示忽略所有 .log 文件
config.php:     表示忽略当前路径的 config.php 文件

/mtk/           表示过滤整个文件夹
*.zip           表示过滤所有.zip文件
/mtk/do.c       表示过滤某个具体文件

被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传。

需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下:
!*.zip
!/mtk/one.txt

唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢?
想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么.gitignore规则应写为::
/mtk/*
!/mtk/one.txt

假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
注意上面的/mtk/*不能写为/mtk/,否则父目录被前面的规则排除掉了,one.txt文件虽然加了!过滤规则,也不会生效!

----------------------------------------------------------------------------------
还有一些规则如下:
fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;

/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;

/*
!.gitignore
!/fw/ 
/fw/*
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;注意要先对bin/的父目录使用!规则,使其不被排除。

Git使用

Git使用教程笔记 | Michael翔

Git忽略提交规则 - .gitignore配置运维总结 - 散尽浮华 - 博客园

GitHub使用

搜热门:GitHub Trend 和 GitHub Topic

GitHub Trend
页面总结了每天/每周/每月周期的热门 Repositories 和 Developers,你可以看到在某个周期处于热门状态的开发项目和开发者。
GitHub Topic
展示了最新和最流行的讨论主题,在这里你不仅能够看到开发项目,还能看到更多非开发技术的讨论主题,比如 Job、Chrome 浏览器等

搜开发者

(注:GitHub 官方还支持很多搜索条件,在 About searching on GitHub - GitHub Help可以查看官方出品的搜索技巧。)

Github搜索-找开发者 搜索时设置 location 为 China,language 为 javascript,整个搜索条件:language:javascript location:china
搜索条件 备注
location: location:china,匹配用户填写的地址在china
language: language:javascript,匹配开发语言为javascript的开发者
in:fullname jack in:fullname,匹配用户实名为jack的开发者

搜项目

先用某些关键词搜索,得到的搜索结果优先展示一些现成的软件和工具

Github搜索-找项目 Awesome windows
搜索条件 备注
Awesome+关键字 关键字Awesome,帮助找到优秀的工具列表
stars: stars:>=500,匹配收藏数量超过500的项目
language: 匹配javascript为开发语言的项目
forks: forks:>=500,匹配分支数量超过500的项目

设置搜索条件

stars:、language:、forks:,其实就是设置项目收藏、开发语言派生的搜索条件

  • 如果觉得记住这些搜索条件略显繁琐的话,使用 GitHub 提供的高级搜索功能GitHub · Where software is built,同样可用自定义条件进行搜索
  • 参考官方给出的帮助指南 Searching on GitHub ,里面有更多关于项目、代码、评论、问题等搜索技巧

free-programming-books:整理了所有和编程相关的免费书籍,同时也有 中文版项目
github-cheat-sheet:集合了使用 GitHub 的各种技巧。
android-open-project:涵盖 Android 开发的优秀开源项目。
chinese-independent-developer:聚合所有中国独立开发者的项目

vscode配置

超实用VS Code插件推荐——不定期更新! - 蚂蚁的博客 - CSDN博客

在VScode 从EXTENSIONS:MARKETPLACE上查看插件使用方法

setting-sync

vscode使用setting-sync插件同步设置 - 掘金
超实用VS Code插件推荐——不定期更新! - 蚂蚁的博客 - CSDN博客
Visual Studio Code(VS code)你们都在用吗?或许你们需要看一下这篇博文 - Dawnzhang - 博客园

vscode插件中心安装 setting-sync

Gists

> github.com/settings/Developer settings/Generate new token

- 填写Note what is this token for?
lect scopes---勾选 gist
- Generate token
制生成的token  保存好 下一次进入这个网页就看不到token 了
            一定要复制生成的token  保存好
            一定要复制生成的token  保存好
    > github.com/Your Gists
    > 右上角加号(+),新建gists
GenerateGist
(GistId

重置所有sync settings配置

  • Ctrl + Shift + P 开启命令面板,找到同步命令,选择 Reset Extension Settings 重置所有配置
  • 在通过 Alt + Shift + U 重新填写 token 进行同步
  • sync settings 界面点击:login with github

windows10-20191013:
Gist token:d4dd325d5d30726d9eb4f0a16a7d3011726c6861
Gist Id : 839a1a78984d838fa1d81bfa193ca6ae

ubuntu18_vscode_20190930
Gist token: a46643712552e6b247745d5a5d9894c5d4ffaae5
Gist Id : e054c9b617c8c2d2d8899f1ad46ba710
  1. 回到vscode,在任意界面按 Alt + Shift + U,在对话框中输出刚才复制的 token
  2. 再次按 Alt + Shift + U 完成配置上传,使用组合键 Alt + Shift + D 即可下载配置
  3. 如若出现 token 配置无问题却出现报错无法上传配置时,可按 Ctrl + Shift + P 开启命令面板,找到同步命令,选择 Reset Extension Settings 重置所有配置,在通过 Alt + Shift + U 重新填写 token 进行同步

//TODO 的方法 1

TODO 的方法 2

外观

Markdown

vscode don't display the video which is embed with html snipped, but typora can do it.

Markdown语法

n p m(Node 包管理器)n p m(Node 包管理器)

orange

代码检查

简单说下这个插件要用到的快捷键:
ctrl + alt + l 选中变量之后,使用这个快捷键生成 console.log
alt + shift + c 注释所有 console.log
alt + shift + u 启用所有 console.log
alt + shift + d 删除所有 console.log

自动补全

代码片段

snippet generator

[VS Code]跟我一起在Visual Studio Code 添加自定义snippet(代码段),附详细配置_猫科龙-CSDN博客

Snippets in Visual Studio Code

VS Code跟我一起在Visual Studio Code 添加自定义snippet(代码段),附详细配置 - 前端 - 掘金

vscode 自定义代码片段 - 个人文章 - SegmentFault 思否

[VS Code]跟我一起在Visual Studio Code 添加自定义snippet(代码段),附详细配置_猫科龙-CSDN博客

VSCode 利用 Snippets 设置超实用的代码块 - 掘金

VSCode Snippets 食用指南 - 进阶者

  • snippets :搭建可以自己安装各种代码片段
  1. 依次点击 文件 > 首选项 > 用户代码片段
  2. 选择代码片段或创建代码片段(可以对现有的进行修改,也可以新建代码片段)
    代码片段分两种:

全局代码片段(每种语言环境下都能触发代码块)。
② 对应语言的局部代码片段(只能在对应语言环境下才能触发),新建全局代码片段会在 snippets 目录下生成 .code-snippets 为后缀的配置文件,而新建对应语言的代码片段会生成 对应语言 + .json 的配置文件。

UserSnippets

NewGlobalSnippets

Markdown代码片段范例

vs code 添加 markdown 自定义代码片段 | 坤哥的博客小站

像主流的语言如 java、c#、c++可以直接提示,但是 markdown 默认是不能提示的,需要额外设置,快捷键【Ctrl+Shift+P】后,输入【settings】选择【Preferences: Open Settings(JSON)】:

20200903221414

然后添加:

"[markdown]":  {
	"editor.quickSuggestions": true
}
20200903221645
有有有由于

path: C:\Users\Administrator\AppData\Roaming\Code\User\snippets

20200902213051
{

"markdown header": {
	// "scope": "markdown,javascript,typescript",
	"prefix": "mdh",
	"body": [
		"******************************************************************",
		"Filename: $TM_FILENAME",
		"language: markdown",
		"engines: vscode 1.48.2",
		"Original Author: Dillon",
		"File Creation Date: $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_DAY_NAME $CURRENT_HOUR:$CURRENT_MINUTE",
		"Abstract: ",
		"Keywords: ",
		"Reference: ",
		"Email: 269440877@qq.com",
		"Job Title: ",
		"Company/Organization: ",
		"Country: ",
		"******************************************************************",
		"",
        "",
		"$0",
	],
	"description": "file details"
 },

"other header": {
	// "scope": "javascript,typescript",
	"prefix": "other",
	"body": [
		" ",
		"$0",
	],
	"description": "file details"
}

}

功能扩展

Git

Mysql

使用 Visual Studio Code 链接 MySql 数据库并进行查询 - 台部落

host: localhost
port: 3306
username: root
password: 123456

vscode connect MySQL 8.0 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

  • Full Steps For MySQL 8
  • Connect to MySQL
$ mysql -u root -p

<!-- Enter password: (enter your root password)
Reset your password
(Replace your_new_password with the password you want to use) -->

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
mysql> FLUSH PRIVILEGES;
mysql> quit

java installion & configure


(Back to Top)

如何在Ubuntu 18.04上安装Java - 云+社区 - 腾讯云

执行以下命令安装OpenJDK:

sudo apt install default-jre
java -version
"此命令将安装Java运行时环境(JRE)。这将允许您运行几乎所有Java软件。"

Java 编译和运行环境

除了JRE之外,您可能还需要Java Development Kit(JDK)才能编译和运行某些特定的基于Java的软件。要安装JDK,请执行以下命令,该命令还将安装JRE:

sudo apt install default-jdk
#通过检查Java编译器的javac版本,来验证是否已安装JDK :
javac -version

管理Java

# 查看所有版本的Java
sudo update-alternatives --config java
# 设置JAVA_HOME环境变量
"复制安装路径,文本编辑器打开/etc/environment"
 sudo vim /etc/environment
'''
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/java"
'''
source /etc/environment
#验证是否已设置环境变量:
echo $JAVA_HOME

PlantUML安装

安装PlantUML + Visual Studio Code(Ubuntu环境)

需要以下内容

  • Java JRE或JDK
  • Graphviz

在Ubuntu上安装

1. 安装Visual Studio代码
sudo apt -y install code
1. 安装Java
sudo apt -y install default-jre
2. 安装Graphviz
sudo apt -y install graphviz
3. 从Visual Studio Code扩展中PlantUML搜索并安装
4. 导出图片

Ctrl + Shift + P要打开命令面板,
输入: plantuml: export current diagram

PyCharm

JetBrains PyCharm/IDEA 使用技巧总结 | Michael翔

Ubuntu Software


(Back to Top)

TG

socks 127.0.0.1 端口1080

Shutter

Ubuntu 18.04中截图工具Shutter的编辑按钮不可用的解决办法 - Jaxu - 博客园
Ubuntu18 安装截图工具 Shutter 并设置快捷键 - 程序员大本营
Ubuntu18.04 系统截图 and Shutter 设置快捷键
shutter设置快捷键不灵

系统自带截图功能

# 保存到图片文件夹
Print Screen  #截取整个桌面
Alt + Print Screen #截取选中的窗口
Shift + Print Screen #自由选区
#复制到剪贴板
Ctrl + Print Screen  #整个桌面
Ctrl + Alt + Print Screen #选中的窗口

Ctrl + Shift + Print Screen #自由选区

命令行安装


(Back to Top)

Vim

apt-get install vim

Chrome

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt-get install libappindicator1 libindicator7
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get -f install

openssh-server

sudo apt-get install openssh-server

tree

"查看文件的树状目录结构,而且不同类型的文件夹和文件都用不同的颜色标记"
# 安装
sudo apt-get install tree
# 使用
tree

设置 ubuntu 开机启动软件

  1. 终端输入: gnome-session-properties

  2. 弹出窗口为“ 启动应用程序首选项”
    alt "设置开机启动项"

  3. 点击右侧添加

  4. 输入描述和软件路径

  5. 这里的软件路径在 /usr/local/bin/目录下,所以最终的命令栏输入的内容是:/usr/local/bin/electron-ssr  (以添加electron-ssr开机启动为例)

阅读器


(Back to Top)

# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora
字体缺失问题
下载当前目录下 wps_symbol_fonts.zip
创建目录:
sudo mkdir /usr/share/fonts/wps-office

将下载的字体复制到创建的目录:
sudo cp -r wps_symbol_fonts.zip /usr/share/fonts/wps-office

解压字体包:
sudo unzip wps_symbol_fonts.zip

解压后删除字体包:
sudo rm -r wps_symbol_fonts.zip
posted @ 2020-11-09 22:27  DillonLeung  阅读(480)  评论(0)    收藏  举报
//推荐博客 j += '
  • ★推荐博客
  • '; j += '
  • ' + '1.本博客所有文章分类目录' + '
  • '; j += '
  • ' + '2.开源Math.NET基础数学类库使用' + '
  • '; j += '
  • ' + '3.微软Infer.NET机器学习组件使用' + '
  • '; j += '
  • ★本文目录
  • '; o = s.find(':header'); if (o.length > p) { r = false; var t = s.find('h2'); var u = s.find('h3'); if (t.length + u.length > p) { q = false;//如果目录数目超过制定的值,只显示更高一级的目录 } }; o.each(function (t) { var u = $(this), v = u[0]; var title=u.text(); var text=u.text(); u.attr('id', 'autoid-' + l + '-' + m + '-' + n) if (v.localName === 'h1') { l++; m = 0; if(text.length>20) text=text.substr(0,20)+"..."; j += '
  • ' + l + '  ' + text + '
  • '; } else if (v.localName === 'h2') { m++; n = 0; if(q){ if(text.length>24) text=text.substr(0,24)+"..."; j += '
  • ' + l + '.' + m + '  ' + text + '
  • '; } } else if (v.localName === 'h3') { n++; if(r){ j += '
  • ' + l + '.' + m + '.' + n + '  ' + u.text() + '
  • '; } } });