Linux 安装和使用
卸载 Ubuntu
因为我的版本是 Ubuntu 20.04 ,防止可能产生的问题,于是我在双系统下卸载 Ubuntu 。
步骤一:调整开机启动项位置
- 开机进入 BIOS 设置:在电脑还未亮之前,狂按 F2 (不同电脑可能不同),然后进入 BIOS 系统设置。
- 找到启动项,找到 Windows 启动项,将其调整到第一启动项。(我这里按 F6 )
步骤二:删除 Ubuntu 分区
我选择方法 2 ,打开系统的“磁盘管理”,确定 Ubuntu 所在的分区,右键删除卷。主要的判别方法是:
- 之前安装时分配的磁盘和空间大小
- 没有写着 C、D、E、F 盘符的分区
- 右键删除卷时,弹出的提示(如图)
步骤三:删除 Ubuntu EFI 文件
win + r,输入cmd
进入命令窗口。
在弹出的窗口(如果有)中输入:
找到 Windows 的 EFI 分区所在的磁盘(大概率是磁盘 0),输入:
找到一个大小约 260M 的分区然后选择它,我这里是分区0,所以输入:
分配盘符,不要和你已有的盘符重复,如C、D、E、F,我这里选择 P :
系统(win11下面有个搜索框)里找到记事本,用管理员权限打开,上面“文件->打开”,找到 P 盘,找到 Ubuntu 文件夹,右键删除它。
最后,输入下面命令行,恢复回去。
安装 Ubuntu 22.04
下载镜像和镜像安装工具
下载镜像:官网地址
下载的镜像后缀为.iso,我下载的为ubuntu-22.04.5-desktop-amd64.iso
。
我们可以趁下载镜像的功夫,再去下载一个制作启动盘的工具:rufus,它是开源的。当然也有不同的教程采用不同的工具,例如 win32diskimager、Ventory等。
磁盘分区
有两种方案: 方案一包含四个分区:
- efi:500M Ubuntu 引导区
- swap:交换区,休眠和数据溢出时存储的地方,依据物理内存分配(系统中查看),8G-10G,16G-16G,32G及以上-24G
- ext4:根目录,存放系统文件(理解为 C 盘),尝鲜级(不安装 CUDA 之类的)20G,一般 100G 以上。
- ext4:home目录,存放用户文件(理解为 D 盘),重装系统时可以只覆盖其他分区,本分区内容能保存下来,我这里也计划 100G 以上。
(重度需求,跑神经网络数据集等的 500 + 500G)
方案二仅有三个分区,将后两个分区合并,适合空间紧张的朋友。
打开“磁盘管理”,选择一个磁盘右键点压缩卷
,设置所需要的大小,压缩得到未分配的空间。
这时顺便看一下磁盘分区类型:右键刚刚压缩卷的那个磁盘(那一行最左侧的灰色区域),选择“属性”,点击“卷”,就能确定是 MBR 分区还是 GPT 分区。
制作启动盘
准备一个内存够大(8G以上)的 U 盘,注意备份,因为制作系统盘会清除里面的内容。如果 U 盘上有物理的写保护滑块,请将它滑到 unlock 状态。
打开 Rufus,选择下载好的镜像文件,选择 U 盘作为启动盘。
- 在"分区方案和目标系统类型"选项中,选择刚刚我们查看的分区形式。我这里是 GPT 。
- 在"文件系统"和"簇大小"选项中,保持默认设置通常就可以。
- 在"新卷标"中,你可以自定义U盘的卷标名称,也可以保持默认。
- 勾选"快速格式化"和"创建一个启动盘使用ISO镜像"选项,这也是默认的。
点击“开始”,它可能会弹出好几个警告,下面这个窗口如图选择第一个,之后的警告都是说会使你磁盘内容丢失、多分区磁盘其他分区也会丢失等等,注意好备份,一直“OK”“是”“确定”就行。
时间有点长,保持电脑有电。
安装系统
关机,开机时按 Fn + F2 进入 BIOS 选择 UEFI 引导模式(我这里原本就是 UEFI 模式,所以跳过此步)。
插上刚刚制作的系统启动盘,关机,开机时按 F12 (不同电脑可能不同,见下图,图来自B站机器人工匠阿杰)进入启动方式选择 U 盘启动。
等待一会儿,进入 Ubuntu 系统开始安装流程。
-
欢迎界面选择
English
,Install Ubuntu
-
Keyboard Layout: 键盘布局左边和右边都选择
English (US)
,English (US)
,Continue
-
Wireless: 选择
I don't want to connect to a Wi-Fi network right now
,先跳过 Wi-Fi 设置,Continue
-
Updates and other software: 选择
Normal installation
,确认下面 Other options 什么都没选,Continue
-
Installation type: 选择
Something else
,表示我们将自定义磁盘分配给 Ubuntu,就是前面磁盘分区的两种方案,Continue
-
Installation type: 找到你刚刚在 Windows 磁盘管理中压缩出来的卷(通过空间大小、写着 free space 来判断),点击它,再点下面
+
来创建分区,每次创建分区都要确保选中的是那块 free space,我这里采用方案一,需要创建四个分区:- EFI 分区:500 MB,类型选择
EFI System Partition
,点击OK
,如下图所示(中间两个选项不用动,创建其他分区也默认如此,不再赘述)
- SWAP 分区:根据我们前面计划的大小设置,我这里输入 16000 MB,类型选择
Linux swap
,点击OK
- EXT4 分区:根据我们前面计划的大小设置,我这里输入 200000 MB,,类型选择
Ext4 journaling file system
,Mount point(挂载点)选择/
,点击OK
- EXT4 分区: 将free space 剩余空间全用上输入进去,类型选择
Ext4 journaling file system
,Mount point(挂载点)选择/home
,点击OK
Device for boot loader installation: 选择刚刚 EFI 分区,注意看下图,我的 efi 是 /dev/nvme0n1p3,下面也要选择相同的名称,点击
Install Now
。弹出窗口,再确认一下四个分区(ESP、swap、ext4、ext4),点击
Continue
- EFI 分区:500 MB,类型选择
-
Where are you?: 点击中国,下面就会显示
Shanghai
,Continue
-
Who are you?:
- Your name,建议短一点纯英文,我叫
tky
- Your computer's name,我用的
WP
- choose a password,因为 Ubuntu 不放什么隐私,简短一点方便登录,
tky
,同时下面选择Log in automatically
自动登录
Continue
- Your name,建议短一点纯英文,我叫
-
等待安装系统完成,约 5 分钟,弹出窗口
Installation Complete
,点击Restart Now
重启系统。 -
到下面的界面提示你要拔出 U 盘,并按下键盘上
Enter
键。你会看到这样的界面,这就是以后你选择进入哪个系统的开机界面了。
可以看到默认是 Ubuntu ,如果 10s 内不用 ↑、↓ 选择会自动进入(后续我们会修改,让它默认进入 Windows)。记住 Windows 从上往下标序号是几,如图从 0 开始,我这里 Windows 是 2。记住就行,按下
Enter
进入 Ubuntu 系统。 -
弹出一个 Ubuntu Pro 的窗口,一路
Skip for now
,No, don't send system info
就可以了。安装完成!
Ubuntu 基本配置
默认启动项
现在重启开机默认的是 Ubuntu 系统,但如果我们主要工作在 Windows 系统,每次要按 ↓ 选择到 Windows 会非常麻烦,请按照下面步骤配置。
打开终端窗口(点击桌面左下角有九个点,第一行有一个软件叫Terminal
,点击),输入:
在弹出的文本编辑窗口更改第六行GRUB_DEFAULT=0
,还记得上面安装系统第 10 步我们记住的数字是几吗?我的是2!把 0 改为 2。右上角有Save
,保存一下,关闭窗口,再在命令窗口输入下面命令,搞定!
Wi-Fi 连接
桌面右上角点击,弹出的菜单选择Wi-Fi Not Connected
,连接网络即可。
换源
Ubuntu 系统安装各类包、软件有它自己默认设置的路径,很显然是国外的网址,下载非常不方便。于是我们需要进行换源。
-
选择镜像源,我这里选择清华源镜像,搜索框输入 ubuntu 回车,如图所示,点击 Ubuntu 旁边的问号。
-
Ubuntu 软件仓库: 下面选择 Ubuntu 版本为 Ubuntu 22.04 LTS (jammy),复制下面灰色区域的全部文本(源列表)。
-
打开终端窗口,输入下面代码备份原有的源列表。
再输入下面代码打开源列表。
-
全选删除原有源列表内容,把刚刚清华源复制的源列表粘贴进去,
Save
保存,关闭,完成!
时间同步
双系统存在一个问题就是时间不同步。
解决方法如下
- 安装时间同步工具
- 使用工具同步到互联网时间
- 把时间机制从UTC改成localTime,并同步BIOS硬件时间
中文输入法安装
中文输入法有ibus、fcitx、搜狗拼音输入法等,这里介绍 fcitx5 安装方法。
-
打开设置,桌面右上角菜单下有齿轮,左侧找
Region & Language
,右侧点击Manage Installed Languages
。这时可能提示你语言包没安装完成,等待它安装完。 -
这时 Language support 里面有汉语了,读一下上面些什么,告诉你系统语言在上面 Region formats 里面修改,点一下去修改回英文。
-
为使用 Fcitx 5,需要安装三部分基本内容:Fcitx 5 主程序、中文输入法引擎、图形界面相关。使用下面语句:
-
安装中文词库,到维基中文拼音词库Github的Releases找一个后缀为
.dist
的下载。由于可能存在更新,可以看该 Github 仓库的 README.md,看操作方法。 -
点击桌面左侧栏,打开文件夹,打开下面 Others ,双击计算机,你就进入到根目录(存放系统文件的地方了),按照下面顺序依次进入
usr/share/fcitx5/pinyin
文件夹,右键选择打开 terminal,输入如下命令行在该文件内创建一个dictionaries文件夹。把刚刚下载的
.dict
拷贝进去,用下面命令(其中.dict的名称需自己修改): -
打开终端,用下面代码打开系统文件:
在文件最下面加入如下三行代码:
-
安装 Fcitx 5 后并没有自动添加到开机自启动中,每次开机后需要手动在应用程序中找到并启动,非常繁琐。因此安装工具 Tweaks 来配置它自启动,用
sudo apt install gnome-tweaks
安装。你可以在左下角九个点,里面找 Tweaks 打开它,自启动添加进 fcitx5。 -
在你的应用(左下角九个点打开)有三只企鹅,打开 Fcitx 5 configuration,取消勾选
Only Show Current Language
,右侧选择Pinyin
点击<
添加进去。右上角有个键盘可以切换输入法。终于搞定了! -
在你的应用(左下角九个点打开)有三只企鹅,打开 Fcitx 5 configuration,取消勾选
Only Show Current Language
,右侧选择Pinyin
点击<
添加进去。右上角有个键盘可以切换输入法。终于搞定了!
常用软件安装
安装 Clash
下面是简略版,详细看上面链接。
-
根据自己 Linux 系统的版本来确定安装的命令。
如果输出包含 x86_64 使用下面命令安装:
如果输出包含 aarch64 使用下面命令安装:
-
找到它,解压,打开文件夹,双击 cfw 文件即可运行 clash ,使用方法和你在 Windows 一样。
-
别忘了,在右上角网络配置选择手动,如图所示。
下面是简略版,详细看上面链接。
-
根据自己 Linux 系统的版本来确定安装的命令。
如果输出包含 x86_64 使用下面命令安装:
如果输出包含 aarch64 使用下面命令安装:
-
找到它,解压,打开文件夹,双击 cfw 文件即可运行 clash ,使用方法和你在 Windows 一样。
-
别忘了,在右上角网络配置选择手动,如图所示。
安装 VSCode
- 到VScode官网下载
.deb
- 到下载文件的地方右键,选择打开方式为软件安装,在弹出的窗口快速按下
install
并输入密码。 - 不妨顺便设置一下 VScode 的自动保存,点击左下角齿轮,搜索
auto save
,选择after delay
,相当于实时保存。
安装 Terminator 终端
这是一个更好用的终端
ctrl+shift+o
上下分窗口ctrl+shift+e
左右分窗口ctrl+shift+w
关闭当前窗口Alt
+上下左右来切换窗口
详细快捷键,右键选择Preferences
里面查看。
安装 npm、node、pnpm
大部分教程sudo apt install npm
会导致下载的版本是老的,请参考这篇文章安装最新的npm和node。
验证安装版本:
pnpm 安装:
- 到VScode官网下载
.deb
- 到下载文件的地方右键,选择打开方式为软件安装,在弹出的窗口快速按下
install
并输入密码。 - 不妨顺便设置一下 VScode 的自动保存,点击左下角齿轮,搜索
auto save
,选择after delay
,相当于实时保存。
安装 Terminator 终端
这是一个更好用的终端
ctrl+shift+o
上下分窗口ctrl+shift+e
左右分窗口ctrl+shift+w
关闭当前窗口Alt
+上下左右来切换窗口
详细快捷键,右键选择Preferences
里面查看。
安装 npm、node、pnpm
大部分教程sudo apt install npm
会导致下载的版本是老的,请参考这篇文章安装最新的npm和node。
验证安装版本:
pnpm 安装:
安装 ROS2
到官网 我们选择 Humble 这个 LTS (长期维护)的版本。
按照这个页面步骤进行安装:
你未来搞 ROS2 很可能需要用到 colcon (colcon是ros2的包构建工具,相当于ros1中的catkin工具一样),建议先安装一下:
- 打开终端,把以下代码粘贴进去运行:
- 设置 Universe 的源:
有个[Enter]
的提示,按回车继续。
- 添加 ROS 2 GPG key:
- 然后将存储库添加到您的源列表中。:
- 常规更新操作:
- 安装 ROS2 桌面(必装),包含(ROS, RViz, demos, tutorials):
中间问yes or no,输入Y
。
ROS-Base 安装:通信库、消息包、命令行工具。没有 GUI 工具。
开发工具:用于构建 ROS 包的编译器和其他工具
- 环境设置:
大部分情况下是
.bash
可以直接用下面语句,但你的电脑上也可能是.zsh
或.sh
再输入nano ~/.bashrc
或者用vim去打开它,看看最后一行是不是加上了source /opt/ros/humble/setup.bash
。
用这种方式配置环境不用每次运行ros前都要source了,会更方便。
安装 Gazebo
双系统下 Ubutnu 分区扩容
我已经猜到可能有朋友双系统安装 Ubuntu 系统给的空间小了,我恰好也写了一篇文章可以参考一下。
PA0
Installing tools
Configuring vim
合并格式的diff
我们来看一个例子,修改前的文档如下所示:
修改后的文档如下所示:
修改前文本前七行和修改后文本前六行有较高相似度(这也是为什么 Unified diff 被创造出的原因)所以用@@ -1,7 +1,6 @@
表示修改修改前文本从1开始的连续7行为修改后文本从第1行开始的连续6行。
下面每一行开头有-
表示删除的,+
表示添加的行,其他的不变。
于是完整的 Unified diff 写成如下形式:
其中第一行表示修改前的文件,开头用---
表示;第二行表示修改后的文件,开头用+++
表示。
所以这里表示取消"syntax on
前面的"
。
修改完成之后别忘记写入:wq!
。
More Exploration
正则表达式
结合以上教程,你很容易明白以下常用的正则表达式及含义:
符号 | 含义 |
---|---|
. | 匹配任意字符 |
* | 匹配零个或多个字符,例如 o* 表示 0-n 个 o |
\{n1,n2\} | 匹配 n1 到 n2 个字符 ,例如 a\{3,5\} 表示有连续的 3-5 个 a |
[abc] | 匹配 a、b、c 任意一个字符 |
[^abc] | 匹配除了 a、b、c 以外的任意字符 |
^ | 匹配字符串的开头 |
$ | 表示字符串末尾,.h$ 表示以.h 结尾的文件 |
[n1-n2] | 匹配 n1-n2 范围内的任意字符,必须 ASCII 当中连续,例如 [A-Z] 表示所有大写字母 |
\ | 转义字符,用于匹配一些特殊字符,例如 '.' 表示匹配点号 |
尝试打印自己的 IP 地址:
扩展的正则表达式符号:
符号 | 含义 |
---|---|
| | 用或( or )的方式找出数个字符串 |
() | 括号内的表达式会作为一个整体被匹配,如 egrep -n 'g(la|oo)d' 找 glad 或 good |
+ | 匹配前面的字符 1 次或多次 |
? | 匹配前面的字符 0 次或 1 次 |
()+ | 多个重复组的判别,如 egrep 'A(xyz)+C' 找开头为A结尾为C,中间有一个以上xyz的字符串 |