一、安装
选择语言
选择键盘布局
选择安装方式
选择安装类型
/分区,我这里选择分配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 | /dev/nvme0n1p2: UUID="86a4a9ac-3ef7-4285-bb5a-25d18748a2d7" TYPE="swap" PARTUUID="97fcac94-ac56-4868-83a7-5fd86627b6ca" |
找到并记住自己要挂载的磁盘的UUID和Type,编辑fstab文件,假设为 UUID=abcdefg,Type=”ntfs”,创建要挂载的目录,比如 /mnt/Data
1 | sudo mkdir /mnt/Data |
在文件末尾添加
1 | # UUID 挂载目录 分区磁盘格式 选项 是否开机检查 分区类型 |
第一个数字表示是否开机检查,第二个数字表示分区类型,0为交换分区,1为启动分区,2为普通分区
不知道自己要挂载的是哪块分区怎么办?
使用如下命令根据各分区的信息确定
1 | sudo fdisk -l |
可以得到类似这种信息
1 | Disk /dev/loop0:97.9 MiB,102637568 字节,200464 个扇区 |
可以看到我要挂载的是1.7T的/dev/sda1分区,复制UUID,再编辑fstab文件即可。
下次开机就会自动挂载,此时要挂载可以用以下命令:
1 | sudo mount /dev/sda1 /mnt/Data |
3. 修改文件管理器侧边栏默认的图片、文档、下载等文件夹的位置
使用以下命令修改配置
1 | sudo gedit ~/.config/user-dirs.dirs |
以下配置视个人情况自行决定,这里仅展示我的配置(由于我有一块额外的数据盘,所以将这些内容都放在另一块磁盘中,可以在重装系统的时候不必删除所有的数据)
将
1 | XDG_DOWNLOAD_DIR="$HOME/下载" |
修改为
1 | XDG_DOWNLOAD_DIR="/mnt/Data/Downloads" |
这些配置将在下一次打开文件管理器的时候改变,旧的目录会自动添加到收藏栏,可以视情况自行删除。
4. 配置ssh
在本地保存服务器信息,不需要每次连接时输入ip和密码
1 | vim ~/.ssh/config |
添加以下信息,其中name是方便自己记忆的服务器名字,可以随意,下一次连接只需要 ssh name
即可,ip是自己的服务器ip,22是默认端口,可以不写,如果不是22端口就要写在这里,username是在服务器上的账户名字。
1 | Host name |
在服务器上保存自己的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 | # 将其中的port替换为自己的http代理端口 |
为git设置用户名和邮箱
1 | git config --global user.name "yourname" |
查看用户名和邮箱
1 | git config user.name |
3. vim
编辑器众多,最小巧,个性化配置最灵活的我认为要数vim了
1 | sudo apt install vim |
修改配置文件
以下是一些简单的配置
1 | "显示行号,关闭行号的命令为set nonumber |
更多配置可以参考: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 | #!/bin/bash |
添加执行权限
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 | # or use |
设置.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 | git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.git |
下载对应的QQ,微信容器安装包,双击即可安装。
解决QQ无法加载图片的问题
原因是wine对ipv6的支持出现问题,这里使用代理法方式绕开wine使用ipv6连接网络。
修改v2ray的配置文件
1 | sudo vim /usr/local/etc/v2ray/config.json |
添加以下内容,xxxx替换为自己要设置的端口,不要和已占用的端口重复
1 | # 在 inbounds 项添加 |
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 | REGEDIT4 |
注册
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://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 |
|
执行
1 | sudo apt install make |
解决办法二:
不关闭安全模式执行上面的步骤之后,安装后仍存在问题,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 | sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./vmware.priv ./vmware.der $(modinfo -n vmmon) |
第三步:
1 | sudo mokutil --import vmware.der |
重启之后会进入蓝色界面,需要你手动写入签名
选择 enroll mok
选择 continue
选择 yes
输入之前设置的密码
选择 reboot
测试你是否写入签名
1 | mokutil --test-key vmware.der |
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 | # >>> conda initialize >>> |
的部分复制,再打开自己的 .bashrc
1 | vim ~/.bashrc |
将复制的内容粘贴到文件末尾,重新打开终端,即可看到前面多了(base)字样,是默认激活的base环境。
设置多用户共享虚拟环境
参考:https://www.zhihu.com/question/277053071/answer/946713532
1 | su - # 登陆到root账户 |
创建共享环境这样设置之后的效果是:由root用户创建的环境会保存在/opt/anaconda/envs中,所有anaconda组成员都可以访问。用户自己创建的环境则会保存至~/.conda/envs中,但是所有下载的pkg会共享在/opt/anaconda/pkgs中,即如果是别人装过的包(比如下载缓慢的PyTorch)则不用重新下载。
一些常用命令
1 | conda config --set auto_activate_base false # 设置默认不激活base环境 |
11. mysql
参考:https://blog.csdn.net/liang19890820/article/details/105071479
安装
1 | # 安装mysql-server |
修改root账户认证方式
虽然上面设置了 root 用户的密码,但当通过 MySQL 终端登录时,并不能通过密码进行认证:
1 | mysql -u root -p |
这是因为在 MySQL 5.7 及之后的版本中,root 用户被默认设置为通过 auth_socket 插件(而非密码)认证,其主要原因是出于对数据库的安全性考虑。
话虽如此,但偶尔也需要外部程序来访问,这时就会很麻烦了。为了使 root 用户能通过密码方式连接 MySQL,先通过终端打开 MySQL 的提示符:
1 | sudo mysql |
然后通过如下命令,检查 MySQL 中每个用户的认证方式:
1 | mysql> SELECT user, authentication_string, plugin, host FROM mysql.user; |
显而易见,root 用户的认证方式是 auth_socket。
现在运行如下命令,将认证方式更改为密码认证(即:msql_native_password):
1 | mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; |
注意:务必设置一个高强度的密码(这里的“123456”仅仅是为了测试),该操作将会改变步骤 2 中设置的密码。
完成之后,再来查看一下 root 用户的认证方式:
1 | mysql> SELECT user, authentication_string, plugin, host FROM mysql.user; |
可以看到,已经修改成功了,现在退出数据库:
1 | mysql> exit |
再来尝试一下,让 root 用户以密码形式登录:
1 | mysql -u root -p |
可以正常连接了。
创建用户
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 | curl -sL 'https://keyserver.ubuntu.com/pks/lookup?&op=get&search=0x73BC8FBCF5DE40C6ADFCFFFA9C949F2093F565FF' | sudo apt-key add |
安装
1 | sudo apt install sogouimebs |
设置默认输入法
把默认输入法设置为fcitx,重启电脑
13. Nodejs和npm
想在Ubuntu上写博客不得不安装Nodejs和npm等环境,安装过程没什么可说的
1 | sudo apt-get install nodejs |
14. Seafile
自建云盘的客户端
参考:https://help.seafile.com/syncing_client/install_linux_client/
1 | sudo wget https://linux-clients.seafile.com/seafile.asc -O /usr/share/keyrings/seafile-keyring.asc |
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 | git clone https://github.com/Keruspe/GPaste.git |
四、美化
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 | # 修改背景为某一图片 |