0%

Ubuntu虚拟机搭建

最近vmware workstation出17版本了,加上之前Ubuntu磁盘管理出了一些问题,识别不到虚拟机新分配的硬盘空间,于是打算重装一下Ubuntu,记录一下过程。

安装VMware Workstation 17

安装包地址:VMware Workstation 17

许可证:MC60H-DWHD5-H80U9-6V85M-8280D

安装Ubuntu

此处使用了Ubuntu的22.04.1版本。镜像位于USTC ubuntu镜像

推荐使用“典型”安装方式。按照个人电脑的配置进行CPU、内存和硬盘的分配;此处我分配了256GB的硬盘和8GB的内存,CPU个数为1,CPU内核个数为16。其余选项默认。此处分配了较大的空间,主要目的是防止以后有磁盘空间不够的情况出现。

Ubuntu出现安装界面时,选择“minimum installation”,避免安装大量的无用软件;取消勾选“download updates”,待安装完成后在进行update。

不勾选自动更新是因为此时未换源,更新速度很可能极慢。

安装完成后Ubuntu就可以使用了,但是为了更好地使用,还需要进行一定的配置。

配置Ubuntu

换软件源(USTC源)

打开终端,输入以下命令:

1
2
3
sudo sed -i 's/cn.archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list

可将软件源更换为ustc源。再打开sources.list,可见所有的archive.ubuntu.com均换成了mirrors.ustc.edu.cn。

sudo为使用管理员权限执行命令;sed为linux中的一个文本脚本编辑器;后续参数s/a/b/g将所有的a替换为b。

sources.list的位置即为最后的参数etc/apt/sources.list

换源之后,apt下载软件包速度会变快,并能防止连接不上服务器的情况发生。

再进行软件源的更新与软件的更新

1
2
sudo apt update
sudo apt upgrade -y

即可自动将软件包更新到最新的版本。

apt为Ubuntu中的软件包管理器,可从上述修改的软件源中获取软件包,并自动安装。与之对应的,由已经在本地的dpkg文件直接安装的包管理器为dpkg。

apt update指更新软件源列表,可以检查本地的软件是否有更新;apt upgrade指更新软件,将apt update获取的可更新列表付诸实践,进行软件的更新。

推荐先进行apt update,再进行apt upgrade

apt update的终端输出中,观察到所有的下载地址均为“/mirrors.ustc.edu.cn/”,也可以证明上述修改软件源的操作是正确的。

修改语言

settings >> region & language >> manange installed language >> install/remove languages即可。

也可通过终端更改,见Ubuntu修改终端下的语言(中文或英文)

除了更改语言与使用浏览器等需要桌面GUI的操作,其他情况下均推荐使用终端控制。

现在Ubuntu语言就已经更换为中文了。

安装常用软件

终端运行如下命令:

1
sudo apt install vim build-essential python3-pip git xxd wget curl net-tools

apt install后跟多个参数可以同时安装多个软件包。

以下依次概括常用软件的用途:

vim:终端文本编辑器。linux上编辑文件最常用的文本编辑器,所有终端编辑文件的操作基本均需使用。vim的使用方法此处不展开,可自行查询。

build-essential:c/c++编译器。包括gcc、g++、make等。

python3-pip:python的包管理器。安装python库大都需要该程序。(因为有conda

git:版本控制系统。可以进行文本文件的版本控制。git的使用方法此处不展开,可自行查询。

xxd:16进制转换器。可将文件以16进制形式存储。

wget/curl:网络下载器。可从指定的链接下载网络上的文件。同时二者还有测试网络连接等等功能。

net-tools:网络工具箱。包括了ifconfig等命令,可用于检测网络状况。

ssh与远程

ssh是Secure SHell的缩写。通过ssh可以实现远程访问终端,则以后需要打开终端时就不需要在虚拟机上打开了。如果不需要Ubuntu的桌面,则完全可以只使用ssh控制,将虚拟机放在后台。

打开终端,输入以下命令:

1
sudo apt install openssh-server openssh-client

此时虚拟机上就已经有ssh软件包了。

openssh-server允许本机作为宿主机,其他机器连接到本机上;

openssh-client允许本机连接其他机器。

账号密码连接

在虚拟机的终端输入ifconfig命令,找到ens33inet后的ipv4地址,即为主机连接虚拟机的地址。

在主机远程软件(例如xshell、terminus等)上输入该地址,并输入账号密码,即可远程登录该主机。

从此以后,涉及到的所有终端操作均可通过远程连接。

密钥连接

远程密钥连接需要在本地生成私钥与公钥,将公钥发给外部机器,外部机器即可访问本机。

终端输入以下命令,并连打三次回车以生成密钥:(引号内为邮箱地址)

1
ssh-keygen -t rsa -C "xxx@yyy.com"

连打三次回车的目的:

  • 第一次为输入密钥存放的地址,此处直接选择默认地址即可;
  • 第二次与第三次为输入与验证passphrase,无需要则可以直接回车略过。

此时密钥已经生成在**/home/usrname/.ssh**文件夹内了。

通过sftp连接主机(可使用账号密码连接),将**/home/usrname/.ssh/id_rsa**文件复制到宿主机上,并通过该私钥连接虚拟机即可。

git ssh配置

git可以通过上述生成的密钥进行ssh连接,保护了pull、clone、push等操作的安全性。此处不做详解,可在网络上找到教程。

桌面环境配置

Ubuntu默认的桌面为gnome桌面,修改桌面的外观需要与gnome有关的插件。

终端运行以下指令:

1
sudo apt install gnome-tweak chrome-gnome-shell gnome-shell-extensions gnome-extensions-app

即可获取与修改gnome桌面有关的依赖软件。

重启机器,使更改生效;在应用程序列表中将找到tweak(优化)与extensions(扩展)。

在优化中:

  • “字体”下的“缩放比例”可以更改桌面的缩放大小;
  • “键盘与鼠标”下的“其他布局选项”可以修改键盘映射;个人常将EscCaps Lock互换以便于vim的编辑,则在“Caps Lock 行为”中找到“Swap Esc and Caps Lock”并选中即可。

(可选)zsh、oh-my-zsh、p10k及相关插件的安装

zsh是linux系统中除bash外的另一种shell,功能比bash强大,可添加插件等,对于终端的操作有很大帮助。

oh-my-zsh和powerlevel10k均为zsh的插件,可以美化zsh。

以下软件的安装均为可选项,主要目的在于美化与增强终端功能,使用bash也不会造成过大的影响。

相关字体的安装

为了正常显示p10k中的字体,首先进行相关字体的安装。

前往Fonts页面,下载其中的**MesloLGS NF ***字体,并安装。此处在桌面操作较方便。

终端输入以下命令,以检验安装是否成功。

1
fc-list | grep MesloLGS

如果在列表中能看到各MesloLGS NF字体,则安装成功。

fc-list用于显示所有安装的字体。

由于字体过多,列表将会很长,不利于查找是否有所需的字体。于是使用grep命令,在给定的文本中寻找MesloLGS字体。

|是管道 (pipe),用于将前一指令的输出重定向为后一指令的输入。

注意应在终端(远程、本地)的配置中修改显示字体为MesloLGS。

zsh安装

终端输入sudo apt install zsh即可。

zsh的配置文件在~/.zshrc中,可以进行主题更换、插件安装等操作。具体在以下步骤中说明。

oh-my-zsh安装

终端输入以下指令:

1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

或者使用wget

1
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

即可安装oh-my-zsh。过程中会询问是否将默认终端转换为zsh,此处输入y选择是。

此处可以看出wgetcurl有相似之处。

安装完成后发现shell的提示符变为箭头→,说明默认终端已经更改为了zsh。

oh-my-zsh主题更换

oh-my-zsh已经有很多的主题,在.zshrc中选用合适的主题即可。

例如想要更换为agnoster主题,则只需在.zshrc中修改ZSH_THEME="agnoster",再执行source ~/.zshrc重新加载.zshrc即可看到更改后的主题。

powerlevel10k安装

终端输入以下指令:

1
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

即可安装powerlevel10k。

.zshrc中修改ZSH_THEME="powerlevel10k/powerlevel10k",再执行source ~/.zshrc重新加载.zshrc即可进入powerlevel10k的配置界面。按照提示操作即可配置p10k的界面设置。

若要重新配置p10k,则在终端输入p10k configure即可重新回到配置界面。

zsh插件安装

zsh-syntax-highlighting

这个插件可以帮助检查语法。输入正确的语法会显示绿色,错误的会显示红色。

终端输入以下指令:

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

修改.zshrcplugins=(git zsh-syntax-highlighting),再执行source ~/.zshrc重新加载.zshrc即可。

其他插件

另有zsh-autosuggestions插件,可用于自动补全之前输入过的命令。安装方法与上述插件类似。地址如下:

1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

后续

Ubuntu的配置基本到此就结束了。目前已经可以使用Ubuntu进行基本的开发工作了。

Linux内容博大精深,上述安装只是一个了解Linux的入口。深入了解Linux需要大量的实践与试错。

------------- Thanks for watching -------------