只更新了一部分,目前未完成,等待后续项目用到时候再更新

Ubuntu 21.04 使用教程(prerequisite for TF2)

1. 虚拟机

安装VMware Workstation 16 Pro

在官网下载VMware Workstation 16 Pro

安装完毕后百度寻找对应版本的license key激活

检查2个虚拟网卡是否自动配置成功

image-20210711214831916

安装Ubuntu 20.04.2.0 LTS

新建虚拟机,选择经典配置即可,注意这里不要直接安装操作系统否则只能简易安装,会跳过所有初始设置

image-20210711213643570

选择linux操作系统和Ubuntu 64位版本

image-20210711213835115

虚拟机位置设置在固态硬盘的分区中,然后磁盘一开始设置尽量大一些(视虚拟机位置所在分区的大小而定),否则后面扩展分区比较麻烦,注意这里要选择将虚拟磁盘存储为单个文件

image-20210711213902572

虚拟机配置完成后,下载Ubuntu 20.04.2.0 LTS版本

下载完成后在虚拟机的硬件设置 -- 新 CD/DVD (SATA)处按照下图选中下载的iso镜像文件并保存设置

注意如果环境为VMware 15版本且win10自动更新没有关过,那么2021年微软最新推出的更新补丁会默认开启win10的Hyper-V虚拟机支持,会和VMware 15冲突导致启动虚拟机时主电脑蓝屏,因此这里要先取消选中启动时自动连接,不然保存之后只要开启虚拟机直接蓝屏

image-20210711211728117

蓝屏问题解决方法:

  1. 如果是win10专业版或者旗舰版,那么进入控制面板 -- 程序 -- 启用或关闭windows功能,然后关闭其中的Hyper-V选项

  2. 如果是win10家庭版,那么新建bat文件,输入以下内容保存并以管理员权限运行,重启后然后同法1一样操作

    pushd "%~dp0"
    
    dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
    
    for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
    
    del hyper-v.txt
    
    Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
    
    
  3. 卸载VMware 15,安装VMware 16也可以解决问题

image-20210711213038119

启动虚拟机之后,开始初始设置,注意这里要选择正常安装安装时下载更新

image-20210711212120296

然后等待安装完成(注意全程要联网下载更新和应用)

image-20210711214318393

安装完毕后进入Ubuntu的初始设置页面,先跳过在线账户绑定和Livepatch,一直默认点击继续完成初始设置

如果想要保持页面在虚拟机上又想键盘和鼠标对外部进行操作需要按ctrl+alt切换出去

Q:如果中途出错了想要删除虚拟机如何操作

A:直接删除你的虚拟机位置中的所有文件,然后在VMware中移除虚拟机

虚拟机基础操作

虚拟机的关闭

可以在虚拟机内关机也可以在VMware内强行关机不推荐

image-20210711220910842 image-20210711220302425

虚拟机的挂起/恢复

挂起是将当前状态冻结使虚拟机休眠,不占用任何CPU和内存,类似物理机的休眠恢复是重新恢复到虚拟机挂起时候的状态,类似物理机的唤醒,但是恢复后进行了更多操作是没法再恢复到之前的挂起状态的,要想达到这个效果必须进行快照(snapshot)

挂起恢复的目的是有时候需要反复关闭重启虚拟机,但是重新启动会占用大量时间,非常慢,此时就可以通过挂起恢复来代替

一般通常点击控制台的挂起客户机和恢复客户机即可,占用资源趋近于无

image-20210711222037398

硬件参数设置

点击这里即可进入硬件设置进行修改,但是建议关闭虚拟机再进行修改

image-20210711222344051

硬件状态栏

image-20210711222644407

在虚拟机右下角,依次是硬盘、CD/DVD、网卡、打印机、声卡、USB吗,最右侧是消息栏

全屏显示

点此进入全屏模式,再次点击退出

image-20210711223107948

全屏模式下点此隐藏/固定命令栏

image-20210711223045544

快照和系统恢复

系统弄坏了的时候,一般使用快照恢复系统,重装系统虽然快但是配置环境之类的会全部消失

快照记录之后在需要的时候重新恢复即可

image-20210711224002044

PS:注意区分快照和克隆

克隆是在虚拟机层级的备份,相当于可以同时使用多个一样的快照起点

image-20210711224444327

2. 桌面环境与环境配置

桌面环境

上部:状态栏

左侧:收藏夹,常用的应用程序,类似windows的“开始”屏幕

左上角:查看正在活动的程序Activities,类似windows的win+Tab

左下角:查看所有的应用程序,类似windows的开始 -- 所有应用

右上角:系统状态、用户、系统设置、关机与注销

常用快捷键

查看活动窗口:Alt+F1

切换当前窗口:Win+Tab

切换输入法快捷键:Win+Space或者在屏幕右上角可以手动切换

屏幕截图到图片目录:+Print

屏幕截图到剪贴板:Ctrl+Print

选区截图到图片目录:Shift+Print

选区截图到剪贴板:Ctrl+Shift+Print

(Extra)安装VMware Tools进行交互

不要使用以前的对VMwareTools…tar.gz提取解压,然后在终端**./vmware-install.pl**的方法,Ubuntu 20.04会报错

在线安装即可

sudo apt-get update
#更新源服务器的软件包列表
sudo apt upgrade
#根据列表信息更新已经安装的软件包
sudo apt install open-vm-tools-desktop
sudo apt-get install open-vm-tools
#安装open-vm-tools和desktop两个软件包
sudo reboot
#重启

安装完成后应该可以实现3个功能:

  1. 鼠标可以自由切换在虚拟机和主机之间不必再按Ctrl+Alt
  2. 能进windows和ubuntu之间文件的复制粘贴
  3. 能在windows和ubuntu之间文件互相拖动文件

(Extra)基础系统配置

安装32位兼容库放到之后,如果用到再补充

一、设置root密码

打开命令行(终端),输入

sudo passwd root

即可设置root密码,直接输入密码即可,linux系统不会显示输入的密码

二、更换下载镜像源(推荐阿里源)

注意会导致图形界面的 software 商店不可用

安装Vim用于后续在命令行中编辑文件

sudo apt install vim
#首先备份原来的软件源并另存
sudo cp -v /etc/apt/sources.list /etc/apt/sources.list.backup
#执行chmod命令更改文件权限使软件源文件可编辑
sudo chmod 777 /etc/apt/sources.list
#使用vim修改
vim /etc/apt/sources.list

vim的使用:进入后按i进入编辑模式(即INSERT插入),编辑完后先按Esc退出编辑模式,然后输入:wq! 退出即可。
打开源文件后,进入编辑模式将所有的代码注释掉,然后复制粘贴你需要的镜像源(下面的镜像源任选一个就可以,我用的是阿里云的镜像源,这里记得把ubuntu版本名替换为你在自己系统上查看到的版本名)

编辑完后先按Esc退出编辑模式,输入 :wq!退出

在退出编辑模式后,vim可以一步步撤销之前的操作u,恢复操作ctrl+r

ubuntu 16.04 配置如下:

deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

ubuntu 18.04(bionic) 配置如下:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

ubuntu 20.04(focal) 配置如下:

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

Esc退出编辑模式,:wq!保存退出

#更新镜像源的包列表
sudo apt update
#根据列表信息更新已经安装的包
sudo apt upgrade 

补充:

  • apt是一个包管理工具,类似yum或者pip
  • sudo命令是以系统管理者的身份执行指令
  • update是根据设置的源(Source)服务器,更新最新的软件包列表,包含版本信息、系统要求、翻译、依赖项等等信息
  • upgrade则是根据包列表,对已经安装的软件包本身进行更新
  • dist-upgrade和upgrade区别:
    • upgrade:系统将现有的Package升级,如果有相依性的问题,而此相依性需要安装其它新的Package或影响到其它Package的相依性时,此Package就不会被升级,会保留下来
    • dist-upgrade:可以聪明的解决相依性的问题,如果有相依性问题,需要安装/移除新的Package,就会试着去安装/移除它. (所以通常这个会被认为是有点风险的升级)

如果后续需要换源回来

sudo mv /etc/apt/sources.list.backup /etc/apt/sources.list
#用备份的源重命名覆盖当前源文件

经常提示检测到系统程序出现问题

image-20210713032347645

解决方法:

sudo gedit /etc/default/apport

把里面的enabled=1改成enabled=0,保存即可

image-20210713032843275

3. 文件系统

文件系统

windows每一个盘符(drive letter)对应一个分区(partition)

linux使用统一的目录树结构,例如

# 根目录
/
# 一级子目录
/home/shaofa
/root
/bin 
/mnt
/usr
/etc

注意:Linux下没有C: D: 这种盘符的概念

打开文件应用程序,会进入用户文件夹,类似windows的文件资源管理器

根目录是计算机,在其他位置 -- 计算机处

image-20210713034904356

打开即可进入系统的根目录,也就是/

image-20210713035040740

用户目录

Linux系统上支持多个用户,每个用户一个目录

例如用户kimtanyo的用户文件夹就存放于/home/kimtanyo

特例:管理员root的用户目录为/root,是一级子目录

image-20210713040234435

对于普通用户,能进行操作的位置只有用户目录下的文件或子目录

对于root用户,可以操作任意文件和目录

image-20210713040524602

注意:普通用户登录只能在相应用户目录下进行创建、删除、重命名、修改文件等操作

4. 常用命令

一般情况下,不会经常使用图形界面,以终端命令行为主

文件列表

  • ls

列出文件和文件夹,即list

# 列出当前目录下的所有项
ls
# 列出当前目录下的所有项,其中,-l 参数表示详细模式
ls -l
# 列出 /home/shaofa/example 下所有项,以详细方式列出
ls -l /home/kimtanyo/example
# 其中,-ld 表示列出一个目录本身,而非目录下的子项
ls -ld /opt 

从左至右依次是:权限 -- 子项数量 -- 创建者 -- 组 -- 字节大小 -- 最后修改时间 -- 名称

image-20210713050735919

小技巧

  • 在输入命令和路径时,按 TAB 键可以自动补全

    ls /ho → ls /home

  • 输入历史可以翻阅

    按 ↑ ↓ 箭头键可以上下翻阅

  • 宿主机 与 虚拟机之间可以拷贝粘贴文本命令

    装了VMware Tools之后可以还可以拷贝粘贴文件

目录切换

  • pwd

显示当前目录路径,即 print working directory

  • cd

切换当前目录 即 current directory
例如

cd   /home/kimtanyo/example # linux没有盘符所以不需要像windows的cmd那样额外添加切换盘符的参数
cd   ~/example # ~表示用户目录 等同于/home/kimtanyo
cd   ../hello # ..表示上一级目录
cd   ( 不带参数时,表示回到主目录 )  # 等同于 cd~

几个特殊目录:

~ 代表当前用户的主目录

. 代表当前目录

.. 代表上一级目录

注意:在命令行里会提示当前目录

文件与目录操作

  • mkdir

创建目录,即make directory

# 在当前目录下创建子目录
mkdir example
# 使用 -p 参数,可以将路径的层次目录全部创建
mkdir -p example/test1/test2
  • rmdir

删除一个空目录,即 remove directory

# 删除当前目录下的空目录
rmdir example

如果目录非空,则删除失败

一般来说,我们会使用 rm 命令来删除

  • rm

删除文件或者目录,即 remove

# 删除example目录,和子项一并删除,其中,r 表示 recursive,f 表示 force
rm -rf example
# 删除 example目录下的所有子项 但是保留example目录
rm -rf example/* 

删库跑路(玩笑)

# 绝对不要试
rm  -rf  /*    
  • cp

复制文件或者目录,即 copy

# -rf可以保证强制递归地复制目录下的所有文件
cp -rf  example example2
  • mv

移动文件或目录 (或者重命名),即 move

# 重命名hello为helloword
mv hello helloworld
# 移动目录ex到 ~/下载,并且重命名为example
mv ex 下载/example

归档压缩

  • tar

档案打包,即 tape archive

归档目的是为了备份文件,磁带就是以前的一种长期备份文件方式

(1) 创建档案包

# 打包example创建ex.tar
tar -cvf ex.tar example
# 也可以多个目录打包 
tar -cvf xxx.tar file1 file2 file3

其中,
c , 表示 create 创建档案
v , 表示 verbose 显示详情
f , 表示 file文件名

(2) 还原档案包

tar -xvf example.tar
tar -xvf example.tar -C 桌面

其中,-C 参数指定目标目录,默认解到当前目录下

(3) 创建档案并压缩
先前的tar格式并没有压缩,体积较大

# 并档并压缩
tar   -czvf   example.tar.gz   example
# 解压缩
tar   -xzvf   example.tar.gz
tar   -xzvf   example.tar.gz   -C   outdir

通常我们所见的,都是 *.tar.gz 这种格式

清屏

  • clear

刷新屏幕,本质上是让终端往后翻页了,向上滚动还是能看到之前的信息

  • reset

完全清空之前的操作信息,在终端控制错乱的时候经常使用,例如输入字符不出现在光标的位置,或者敲回车新提示符不在行上而在老提示符的前面

  • Ctrl+L

是clear的快捷键,最常使用

软链接

其他

  • man

查看一个命令的帮助,即 manual

# 查看 tar 命令的帮助
man tar

软链接

软链接,即 Windows 下的 "快捷方式",但在ubuntu图形界面不会显示软链接的实际路径

使用 ln 命令 (link) 来创建软链接ln -s source link

ln -s  example exink

其中,-s 表示 soft 软链接 ( 默认为硬 )

软链接的特点:

  • 删除软链接,对原文件没有影响
  • 删除原文件,则软链接失效

ls -l 目录名 查看文件详情时,可以看到目标路径

ls -l /

可以发现,/bin 实际指向的是 /usr/bin 目录

image-20210713053551233

除了在图形界面通过图标看出来,在 ls -l 目录名 下,软链接也可以通过显示的颜色看出来

除了软链接之外,还有一个为硬链接

硬链接可认为是一个文件拥有两个文件名

ln -s  example exduplicate

硬链接的特点

  • 硬链接,以文件副本的形式存在,但不占用实际空间
  • 不允许给目录创建硬链接

不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间

5. 用户和组

编辑用户

  • sudo

以root权限运行某些命令,即 super user do

  • useradd

添加用户,必须以root用户或权限执行

# 添加一个名为 xiaoming 的账户
sudo useradd  xiaoming
# 添加一个账户并在/home下建立用户目录,-m参数表示在 /home 下添加用户目录
sudo useradd  -m  xiaoming
  • passwd

修改用户的密码,必须以root用户或权限执行

# 修改用户xiaoming的密码
sudo passwd xiaoming
# 不加用户名时,表示修改当前登录用户的密码
sudo passwd
  • userdel

删除用户,必须以root用户或权限执行

sudo userdel xiaoming
# 清除用户目录
sudo rm -rf /home/xiaoming

注意:

  1. 在登录系统时,默认不允许以 root 用户登录

  2. Linux下,把能执行sudo命令的用户叫 sudoer,只有特殊的用户,才能执行 sudo

例如这里新建的xiaoming用户是不能执行sudo命令的

  • su

可以切换用户, 即 switch user

su
su kimtanyo
su root

默认地,如果不带参数则表示切换到root账户

  • exit

表示退出当前登录的用户,例如

su
…………

…………

…………

exit

超级用户

Ubuntu自带一个具备所有权限的超级用户root,也叫根用户

首次使用时,需要给 root 设置密码

 sudo passwd root

切换到 root 用户

 su root # su也可以
 ………………
 exit # 退出root用户 

其中,su 表示 switch user

  • groupadd

创建组,必须以root用户或权限执行

# 创建一个名为boys的组
sudo groupadd boys
# 新增用户加到boys组,-g表示添加到组中
sudo useradd -g boys ming
# 修改现有用户到新的组
sudo usermod -g boys kimtanyo
# 查看组信息
cat /etc/group
# 查看用户信息
cat /etc/passwd
  • groupdel

删除组,必须以root用户或权限执行

# 删除名为 boys 的组
sudo groupdel boys 

如果组中有用户,则必须事先删除里面的用户