一、安装

选择语言

选择键盘布局

选择安装方式

选择安装类型

/分区,我这里选择分配70G的空间

交换分区,我只分配了4G的空间

/boot分区,网上的教程这里都只分配几百MB的空间,我这一次重装的原因就是升级内核时由于/boot空间不够而失败,又无法增大该分区,尝试删除旧内核也无效,无奈之下重装系统,/boot分配2G空间

/home分区,我分配了48G空间,/efi分区,我的128G硬盘剩余1G左右,将这些空间全部分配给efi分区

最终分配结果:

选择地区

此处无图

配置用户名密码

二、一些配置

1. 为root用户添加密码

由于Ubuntu刚安装时root用户是没有密码的,需要为root设置密码

1
sudo passwd

接下来第一次输入当前用户的密码以执行sudo权限的命令,再输入两次为root设置的新密码

2. 设置开机自动挂载硬盘

由于我除了安装系统的128G固态之外还有一块2T的数据盘,每次开机都要手动挂载的话非常麻烦,设置自动挂载可以省下不少时间。

使用如下命令查看硬盘信息:

1
sudo blkid

得到类似如下信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/dev/nvme0n1p2: UUID="86a4a9ac-3ef7-4285-bb5a-25d18748a2d7" TYPE="swap" PARTUUID="97fcac94-ac56-4868-83a7-5fd86627b6ca"
/dev/nvme0n1p1: UUID="8705b28b-d4ed-44b4-ba22-d580adc5f660" TYPE="ext4" PARTUUID="ad567570-370b-456f-8a7d-2cbb95f3e2c5"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/loop7: TYPE="squashfs"
/dev/nvme0n1p3: UUID="99d887ca-093c-42e4-b559-8ce487582dba" TYPE="ext4" PARTUUID="0189dfdd-12ce-4b0d-afb5-560b10dcb73f"
/dev/nvme0n1p4: UUID="a2263ce8-2541-40e5-beaa-8f0a5fedf8d2" TYPE="ext4" PARTUUID="ff1784cf-26a9-4dae-90a2-a3e0a7c90acc"
/dev/nvme0n1p5: UUID="0CBD-9D7D" TYPE="vfat" PARTUUID="8b352fc8-fd4b-43ea-b97c-fbfd6f401f28"
/dev/sda1: LABEL="Data" UUID="A03C00983C006C1A" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="276a3145-f2a5-4566-83be-7e22bf203706"
/dev/sda2: LABEL="M-fM-^AM-\"M-eM-$M-^M" UUID="BE2C196B2C192047" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8a98b31f-d6c9-447f-b586-a027f2c1d23c"
/dev/sda3: UUID="B61B-0118" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b75d4ff7-ebfd-46d9-8d5e-fd591fe9514a"
/dev/sda5: UUID="62E21DDDE21DB66F" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8c6df33c-cfa3-438b-8a65-0cde412ff5df"
/dev/loop8: TYPE="squashfs"
/dev/loop9: TYPE="squashfs"
/dev/loop10: TYPE="squashfs"
/dev/sda4: PARTLABEL="Microsoft reserved partition" PARTUUID="dea4dd3d-81fa-415e-843a-e9062c4f50e3"

找到并记住自己要挂载的磁盘的UUID和Type,编辑fstab文件,假设为 UUID=abcdefg,Type=”ntfs”,创建要挂载的目录,比如 /mnt/Data

1
2
sudo mkdir /mnt/Data
sudo vim /etc/fstab

在文件末尾添加

1
2
# UUID 挂载目录 分区磁盘格式 选项 是否开机检查 分区类型
UUID=abcdefg /mnt/Data ntfs defaults 0 2

第一个数字表示是否开机检查,第二个数字表示分区类型,0为交换分区,1为启动分区,2为普通分区

不知道自己要挂载的是哪块分区怎么办?

使用如下命令根据各分区的信息确定

1
sudo fdisk -l

可以得到类似这种信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Disk /dev/loop0:97.9 MiB,102637568 字节,200464 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop1:54.98 MiB,57626624 字节,112552 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop2:9.7 MiB,9510912 字节,18576 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop3:62.9 MiB,65105920 字节,127160 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop4:29.9 MiB,31334400 字节,61200 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop5:255.58 MiB,267980800 字节,523400 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop6:49.8 MiB,52203520 字节,101960 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop7:31.9 MiB,32600064 字节,63672 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/nvme0n1:119.25 GiB,128035676160 字节,250069680 个扇区
Disk model: KBG30ZMT128G TOSHIBA
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:7A17571D-39A0-4B0F-B57E-CB2437365401

设备 起点 末尾 扇区 大小 类型
/dev/nvme0n1p1 2048 139999231 139997184 66.8G Linux 文件系统
/dev/nvme0n1p2 139999232 147998719 7999488 3.8G Linux swap
/dev/nvme0n1p3 147998720 151998463 3999744 1.9G Linux 文件系统
/dev/nvme0n1p4 154068992 250068991 96000000 45.8G Linux 文件系统
/dev/nvme0n1p5 151998464 154068991 2070528 1011M EFI 系统

分区表记录没有按磁盘顺序。


Disk /dev/sda:1.84 TiB,2000398934016 字节,3907029168 个扇区
Disk model: WDC WD20SPZX-08U
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt
磁盘标识符:BA79D8A9-DDCC-4B25-8DE2-20FADCB70928

设备 起点 末尾 扇区 大小 类型
/dev/sda1 32768 3638593535 3638560768 1.7T Microsoft 基本数据
/dev/sda2 3638593536 3639676927 1083392 529M Microsoft 基本数据
/dev/sda3 3639676928 3639881727 204800 100M EFI 系统
/dev/sda4 3639881728 3639914495 32768 16M Microsoft 保留
/dev/sda5 3639914496 3898640383 258725888 123.4G Microsoft 基本数据


Disk /dev/loop8:55.39 MiB,58073088 字节,113424 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop9:51.4 MiB,53522432 字节,104536 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop10:64.79 MiB,67915776 字节,132648 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

可以看到我要挂载的是1.7T的/dev/sda1分区,复制UUID,再编辑fstab文件即可。

下次开机就会自动挂载,此时要挂载可以用以下命令:

1
sudo mount /dev/sda1 /mnt/Data

3. 修改文件管理器侧边栏默认的图片、文档、下载等文件夹的位置

使用以下命令修改配置

1
sudo gedit ~/.config/user-dirs.dirs

以下配置视个人情况自行决定,这里仅展示我的配置(由于我有一块额外的数据盘,所以将这些内容都放在另一块磁盘中,可以在重装系统的时候不必删除所有的数据)

1
2
3
4
5
XDG_DOWNLOAD_DIR="$HOME/下载"
XDG_DOCUMENTS_DIR="$HOME/文档"
XDG_MUSIC_DIR="$HOME/音乐"
XDG_PICTURES_DIR="$HOME/图片"
XDG_VIDEOS_DIR="$HOME/视频"

修改为

1
2
3
4
5
XDG_DOWNLOAD_DIR="/mnt/Data/Downloads"
XDG_DOCUMENTS_DIR="/mnt/Data/WorkSpace/Word"
XDG_MUSIC_DIR="/mnt/Data/WorkSpace/Music"
XDG_PICTURES_DIR="/mnt/Data/WorkSpace/Photo"
XDG_VIDEOS_DIR="/mnt/Data/WorkSpace/Video"

这些配置将在下一次打开文件管理器的时候改变,旧的目录会自动添加到收藏栏,可以视情况自行删除。

4. 配置ssh

在本地保存服务器信息,不需要每次连接时输入ip和密码

1
vim ~/.ssh/config

添加以下信息,其中name是方便自己记忆的服务器名字,可以随意,下一次连接只需要 ssh name 即可,ip是自己的服务器ip,22是默认端口,可以不写,如果不是22端口就要写在这里,username是在服务器上的账户名字。

1
2
3
4
Host name
HostName ip
Port 22
User username

在服务器上保存自己的ip和密码

先在本地生成一对公钥密钥,过程需要输入生成的目录,默认是~/.ssh目录。该命令会生成:id_rsa(密钥)和 id_rsa.pub(公钥)

1
ssh-keygen -t rsa

将公钥拷贝到服务器上,其中的name是前面保存信息时候写的名字,该过程会询问是否信任该服务器并要求输入一次服务器密码。

1
ssh-copy-id name

之后直接使用 ssh name 即可连接服务器。

三、安装及配置常用软件

0. 换源

桌面版的Ubuntu换源要比命令行方便多了,点击右上角图标-设置-关于-software updates-下载自

如果安装师地区选择了国内(shanghai)这里会是“中国的服务器”,但是还是会一些不方便,我会手动改成阿里云的源或清华的源。单击下拉选项,选择其他站点,选择阿里云的源(mirrors.aliyun.com)或清华的源(mirrors.tuna.tsinghua.edu.cn)。点击选择服务器,关闭时会更新软件缓存。

1. v2ray

众所周知,网络和git是程序员必不可少的两件利器,新装系统先把网络配置好才能更好地使用。

安装方式,参考 https://github.com/v2fly/

可能遇到的问题 https://github.com/v2fly/fhs-install-v2ray/issues/122

使用 sudo systemctl enable v2ray 设置v2ray开机自启

2. git

1
sudo apt install git

查看git的所有配置

1
git config --list

使用代理

1
2
3
# 将其中的port替换为自己的http代理端口
git config --global http.proxy http://localhost:port
git config --global https.proxy http://localhost:port

为git设置用户名和邮箱

1
2
git config --global user.name "yourname"
git config --global user.email youremail@youremail

查看用户名和邮箱

1
2
git config user.name
git config user.email

3. vim

编辑器众多,最小巧,个性化配置最灵活的我认为要数vim了

1
2
sudo apt install vim
vim ~/.vimrc

修改配置文件

以下是一些简单的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"显示行号,关闭行号的命令为set nonumber
set number
"不与 Vi 兼容
set nocompatible
"语法高亮
syntax on
"启用256色
set t_Co=256
"开启文件类型检查,并且载入与该类型对应的缩进规则。
filetype indent on
"下一行的缩进会自动跟上一行的缩进保持一致
set autoindent
"光标所在的当前行高亮。
set cursorline
"输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果
set incsearch
"光标遇到括号时自动高亮对应的另一个括号
set showmatch
"保存操作历史在文件中
set undofile
"设置最多保存多少次操作历史
set history=1000
"设置保存操作历史的文件路径
set undodir=~/.vim/.undo//
"设置备份文件路径
set backupdir=~/.vim/.backup//
"设置交换文件路径
set directory=~/.vim/.swp//
"打开文件监视。如果在编辑过程中文件发生外部改变(比如被别的编辑器编辑了),就会发出提示
set autoread
"命令模式下,底部操作指令按下 Tab 键自动补全。第一次按下 Tab,会显示所有匹配的操作指令的清单;第二次按下 Tab,会依次选择各个指令。
set wildmenu
set wildmode=longest:list,full

更多配置可以参考:http://www.ruanyifeng.com/blog/2018/09/vimrc.html 评论区也是有一些好内容的。

一些常用技巧:https://blog.csdn.net/weixin_47550354/article/details/106794738

4. vscode

可视化的编辑器我用vscode

在官网下载最新的安装包 https://code.visualstudio.com/download

选择deb包直接下载,下载好后双击就可以安装。

添加插件

推荐的几个插件:

  • chinese - 简体中文,英文好的可以忽略
  • remote-ssh - ssh连接工具,可以直接在服务器上编辑代码,会自动读取本地~/.ssh/config文件中保存的服务器
  • Indent-Rainbow - 让对齐更具有可读性
  • Bracket Pair Colorizer - 让括号更具有可读性
  • Material Icon Theme - 好看的图标

更多插件参考 https://zhuanlan.zhihu.com/p/40417719

在右键添加 “在VSCode中打开”

创建脚本文件,文件名即为右键时显示的命令名,可以自定义

1
vim ~/.local/share/nautilus/scripts/codeit

在文件中输入以下内容

1
2
#!/bin/bash
code $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

添加执行权限

1
sudo chmod u+x code_it

5. chrome

浏览器我用chrome

配置插件

前面安装好v2ray还没有真正使用,这里配合浏览器插件 ProxySwitchyOmega 可以方便地切换不同网络环境。插件自带教程,这里不做赘述。

添加代理规则

参考:https://github.com/gfwlist/gfwlist

6. Typora

在 markdown 离线编辑器里,Typora算是数一数二的了,小巧又美观。

参考 https://support.typora.io/Typora-on-Linux/

1
2
3
4
5
6
7
8
9
10
# or use
# 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

设置.md文件默认使用Typora打开

1
sudo vim /etc/gnome/defaults.list

在末尾添加

1
text/markdown=typora.desktop

7. wine-QQ,wine-WeChat

没办法,这两个工作学习都需要

安装wine架构

参考 https://github.com/wszqkzqk/deepin-wine-ubuntu

1
2
3
git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.git
cd deepin-wine-for-ubuntu/
sudo bash install.sh

下载对应的QQ,微信容器安装包,双击即可安装。

解决QQ无法加载图片的问题

原因是wine对ipv6的支持出现问题,这里使用代理法方式绕开wine使用ipv6连接网络。

修改v2ray的配置文件

1
sudo vim /usr/local/etc/v2ray/config.json

添加以下内容,xxxx替换为自己要设置的端口,不要和已占用的端口重复

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 在 inbounds 项添加
{
"tag": "qq",
"protocol": "http",
"listen": "127.0.0.1",
"port": xxxx,
"settings": {
"timeout": 0
}
}
# 在原有的 routing 后面添加
"routing": {
"domainStrategy": "Asls",
"rules": [
{
"type": "field",
"inboundTag": "qq",
"outboundTag": "direct"
}
]
}

QQ登陆界面点击右上角设置,使用http代理,ip填127.0.0.1,port填上面设定的端口,登陆后可以解决图片无法加载的问题。

下拉菜单无法显示,可以使用上下键切换,或者点击左上角wine右边的小箭头,选择TXMenuWindow就可以。

解决微信聊天输入框中文显示为黑条或黑框,黑块的问题

参考 https://github.com/wszqkzqk/deepin-wine-ubuntu/issues/136#issuecomment-514585722

网上的一种简单方法是修改wine启动文件

1
sudo vim /opt/deepinwine/tools/run.sh

将 WINE_CMD 一行修改为

1
WINE_CMD="LC_ALL=zh_CN.UTF-8 deepin-wine"

本人尝试后发现,每次登陆微信后需要在输入框输入一次小表情后才有效,这里使用的是另一种方法,修改字体文件。

下载微软雅黑字体(或其他任意字体),假设下载的字体文件名为 msyh.ttc

1)添加字体
1
cp msyh.ttc ~/.deepinwine/Deepin-WeChat/drive_c/windows/Fonts
2)修改系统注册表
1
gedit ~/.deepinwine/Deepin-WeChat/system.reg

修改以下两行

“MS Shell Dlg”=”msyh”

“MS Shell Dlg 2”=”msyh”

3)字体注册
1
gedit msyh_config.reg

内容添加

1
2
3
4
5
6
7
8
9
10
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"="msyh.ttc"
"Microsoft Sans Serif"="msyh.ttc"
"MS Sans Serif"="msyh.ttc"
"Tahoma"="msyh.ttc"
"Tahoma Bold"="msyhbd.ttc"
"msyh"="msyh.ttc"
"Arial"="msyh.ttc"
"Arial Black"="msyh.ttc"

注册

1
WINEPREFIX=~/.deepinwine/Deepin-WeChat deepin-wine regedit msyh_config.reg
4)重启
解决微信不能发送图片的问题
1
sudo apt install libjpeg62:i386

8. gnome插件

一些好的插件可以让你的 Ubuntu 更易于使用。

首先安装连接器

1
sudo apt-get install chrome-gnome-shell

安装浏览器插件 GNOME Shell integration

User Themes 自定义主题

Dash to Dock 替换系统的dock

可能会出现两个dock的情况,删除系统自带的 usr/share/gnome-shell/extensions 下的 ubuntu-dock

Lunar Calendar 农历 在日历中添加农历

旧版本滚动会导致插件失效,最新版本目前(2021-1-28)发布还未通过,作者在评论区发布了下载链接,可以直接将压缩包解压到 ~/.local/share/gnome-shell/extensions 路径下,注意将文件夹名改为 metadata.json 中提供的 uuid,即 lunarcal@ailin.nemui

Network Speed 显示实时网速

system-monitor 显示系统监视信息,包括内存使用量,CPU占用率,硬盘用量等

TopIcons Plus 将旧版任务栏图标(Gnome Shell的左下方)移至顶部面板,包括wine-QQ和wine-Wechat的图表

9. VMware

参考 https://zj-linux-guide.readthedocs.io/zh_CN/latest/tool-install-configure/[Ubuntu%2016.04]VMware%E5%AE%89%E8%A3%85/

从官网下载最新安装包 https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

赋予用户权限

1
sudo chmod a+x VMware*.bundle

安装

1
sudo ./VMware*.bundle

问题:第一次打开需要安装“several modules”,却“A required application is missing”

解决办法一:

重启进入BIOS关闭安全启动(secure boot),执行下面的步骤

1
vim vm-patch.sh

添加以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
VMWARE_VERSION=workstation-16.1.0
TMP_FOLDER=/tmp/patch-vmware
rm -fdr $TMP_FOLDER
mkdir -p $TMP_FOLDER
cd $TMP_FOLDER
git clone https://github.com/mkubecek/vmware-host-modules.git
cd $TMP_FOLDER/vmware-host-modules
git checkout $VMWARE_VERSION
git fetch
sudo make
sudo make install
sudo rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo /etc/init.d/vmware restart

执行

1
2
sudo apt install make
sudo bash vm-patch.sh

解决办法二:

不关闭安全模式执行上面的步骤之后,安装后仍存在问题,Virtual machine monitor启动failed,Virtual ethernet启动failed,启动虚拟机时提示Could not open /dev/-vmmon/…

其原理是安全启动模式下vmware的一些核心模块没有被写入,需要设置信任列表

第一步:生产.priv和.der文件

1
openssl req -new -x509 -newkey rsa:2048 -keyout vmware.priv -outform DER -out vmware.der -nodes -days 36500 -subj "/CN=VMWARE/"

第二步:

1
2
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./vmware.priv ./vmware.der $(modinfo -n vmmon)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./vmware.priv ./vmware.der $(modinfo -n vmnet)

第三步:

1
2
sudo mokutil --import vmware.der
# 然后输入两次密码(自定义)

重启之后会进入蓝色界面,需要你手动写入签名

选择 enroll mok
选择 continue
选择 yes
输入之前设置的密码
选择 reboot
测试你是否写入签名

1
2
mokutil --test-key vmware.der
# vmware.der is already enrolled

11. Anaconda

安装

有时候我们需要使用不同版本的python,在系统中同时安装多个python版本会非常的麻烦,Anaconda是一款python虚拟环境管理软件,可以方便地创建和管理不同版本的python环境,也可以很方便的在不同环境之间切换。

从官网下载最新的安装脚本: https://www.anaconda.com/products/individual#Downloads

1
sudo bash Anaconda3*.sh

过程会要求阅读并同意“license agreement”,一直按回车直到结束输入“yes”。之后会要求输入安装路径,建议安装到 /opt/anaconda3 路径下,不要安装到 /root/home 下,否则不能多用户共享虚拟环境(包括当前用户和root账户也需要分别创建不同的虚拟环境,对存储的开销非常大)。

之后便是漫长的等待,最后会询问是否初始化conda,输入yes即可。

由于刚刚是用sudo命令执行的,初始化会在 /root 下进行初始化,当前账户并不能使用conda

1
sudo vim /root/.bashrc

将其中

1
2
3
# >>> conda initialize >>>
...
# <<< conda initialize <<<

的部分复制,再打开自己的 .bashrc

1
vim ~/.bashrc

将复制的内容粘贴到文件末尾,重新打开终端,即可看到前面多了(base)字样,是默认激活的base环境。

设置多用户共享虚拟环境

参考:https://www.zhihu.com/question/277053071/answer/946713532

1
2
3
4
5
6
7
8
9
10
su - # 登陆到root账户
groupadd anaconda # 创建anaconda组
adduser <username> anaconda # 将需要的用户添加至anaconda组
chgrp -R anaconda /opt/anaconda3 # 移交目录管理权
chmod 770 -R /opt/anaconda3 # 设置读写权限
chmod g+s /opt/anaconda3 # 设置组继承
chmod g+s `find /opt/anaconda3/ -type d` # 设置子目录组继承
chmod g-w /opt/anaconda3/envs # 关闭共享环境的写入权限
source /opt/anaconda3/bin/activate # root用户下启动anaconda环境
conda create -n py37 python=3.7

创建共享环境这样设置之后的效果是:由root用户创建的环境会保存在/opt/anaconda/envs中,所有anaconda组成员都可以访问。用户自己创建的环境则会保存至~/.conda/envs中,但是所有下载的pkg会共享在/opt/anaconda/pkgs中,即如果是别人装过的包(比如下载缓慢的PyTorch)则不用重新下载。

一些常用命令
1
2
3
4
5
6
7
conda config --set auto_activate_base false # 设置默认不激活base环境
conda create -n name python=x.x # 创建python版本为x.x的名字为name的虚拟环境
conda remove -n name --all # 删除名字为name的环境
conda activate name # 激活名字为name的虚拟环境
conda deactivate # 推出当前虚拟环境
conda list # 列出当前环境安装的包
conda env list # 列出当前已创建的环境

11. mysql

参考:https://blog.csdn.net/liang19890820/article/details/105071479

安装
1
2
3
4
# 安装mysql-server
sudo apt install mysql-server
# 运行安全脚本,过程会询问是否安装验证密码插件,用于测试密码强度,可以选择不安装,之后需要输入两次密码为root账户设置密码,之后依次询问是否删除匿名账户,是否禁止root从远程账户登陆,是否删除test数据库并取消对其访问权限,是否刷新授权表,可以根据自己的情况选择
sudo mysql_secure_installation
修改root账户认证方式

虽然上面设置了 root 用户的密码,但当通过 MySQL 终端登录时,并不能通过密码进行认证:

1
2
3
mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

这是因为在 MySQL 5.7 及之后的版本中,root 用户被默认设置为通过 auth_socket 插件(而非密码)认证,其主要原因是出于对数据库的安全性考虑。

话虽如此,但偶尔也需要外部程序来访问,这时就会很麻烦了。为了使 root 用户能通过密码方式连接 MySQL,先通过终端打开 MySQL 的提示符:

1
sudo mysql

然后通过如下命令,检查 MySQL 中每个用户的认证方式:

1
2
3
4
5
6
7
8
9
10
mysql> SELECT user, authentication_string, plugin, host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *ABA968D18E3A0B6DEB02F9D5FBDA21415A86977B | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

显而易见,root 用户的认证方式是 auth_socket。

现在运行如下命令,将认证方式更改为密码认证(即:msql_native_password):

1
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

注意:务必设置一个高强度的密码(这里的“123456”仅仅是为了测试),该操作将会改变步骤 2 中设置的密码。

完成之后,再来查看一下 root 用户的认证方式:

1
2
3
4
5
6
7
8
9
10
mysql> SELECT user, authentication_string, plugin, host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *ABA968D18E3A0B6DEB02F9D5FBDA21415A86977B | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

可以看到,已经修改成功了,现在退出数据库:

1
mysql> exit

再来尝试一下,让 root 用户以密码形式登录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

可以正常连接了。

创建用户

mysql安装好了,但平时使用总不能一直用root账户,这时候就需要创建一个新的账户。

创建一个通过本地localhost连接的用户名为roc,密码为password的账户。

1
mysql> CREATE USER 'roc'@'localhost' IDENTIFIED BY 'password';

给用户授权,privileges可以是 SELECT,UPDATE,DELETE,ALL 等

1
mysql> GRANT privileges ON databasename.tablename TO 'username'@'host';

12. 搜狗输入法

用了多年的搜狗输入法,也尝试过其他输入法,始终觉得还是搜狗好用。

参考:https://www.cnblogs.com/cocode/p/12875555.html

添加ukui的官方源

1
2
3
curl -sL 'https://keyserver.ubuntu.com/pks/lookup?&op=get&search=0x73BC8FBCF5DE40C6ADFCFFFA9C949F2093F565FF' | sudo apt-key add
sudo apt-add-repository 'deb http://archive.ubuntukylin.com/ukui focal main'
sudo apt upgrade

安装

1
sudo apt install sogouimebs

设置默认输入法

把默认输入法设置为fcitx,重启电脑

13. Nodejs和npm

想在Ubuntu上写博客不得不安装Nodejs和npm等环境,安装过程没什么可说的

1
2
sudo apt-get install nodejs
sudo apt-get install npm

14. Seafile

自建云盘的客户端

参考:https://help.seafile.com/syncing_client/install_linux_client/

1
2
3
4
5
6
sudo wget https://linux-clients.seafile.com/seafile.asc -O /usr/share/keyrings/seafile-keyring.asc
sudo bash -c "echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/seafile-keyring.asc] https://linux-clients.seafile.com/seafile-deb/focal/ stable main' > /etc/apt/sources.list.d/seafile.list"
sudo apt update
sudo apt install -y seafile-gui
# 如果仅安装命令行版本
sudo apt-get install seafile-cli

15. Gpaste

用来保存剪辑版历史

1
sudo apt install gnome-shell-extensions-gpaste gpaste

安装需要的软件(不用这种方法安装)

1
install autoconf automake libtool autopoint gettext libglib2.0-dev build-essential libgtk-3-dev

克隆仓库并安装

1
2
3
4
5
6
7
git clone https://github.com/Keruspe/GPaste.git
cd Gpaste
./autogen.sh
./configure --sysconfdir=/etc
make
sudo make install
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

四、美化

1. 壁纸软件

既然美化,没有一款更换壁纸的软件怎么能行。

本人使用 komorebi

支持视频和图片,可以显示时间,功能不多,但对于我来说已经够了。

2. 更换主题、图标、鼠标指针

安装tweaks,用于管理主题包等,还有一些其他功能这里暂时不需要

1
sudo apt install gnome-tweaks

可以从以下网址下载自己喜欢的主题、图标、鼠标指针文件: https://www.gnome-look.org/browse/ord/rating/

其中主题文件解压到 /usr/share/themes/ ,图标和鼠标指针文件解压到 /usr/share/icons/

解压好后在软件中搜索 tweaks(优化),在“外观”选项卡可以修改主题和图标等。

3. 修改登陆界面的背景

参考 https://github.com/thiggy01/change-gdm-background

安装依赖

1
sudo apt install libglib2.0-dev-bin

赋予执行权限

1
chmod +x change-gdm-background

修改背景

1
2
3
4
5
6
# 修改背景为某一图片
sudo ./change-gdm-background /path/to/image
# 修改背景为某种颜色,使用16进制颜色
sudo ./change-gdm-background \#yourhexcode
# 恢复默认
sudo ./change-gdm-background --restore