视觉教程第六弹:Ubuntu系统的基本使用

视觉教程第六弹:Ubuntu系统的基本使用

机械是血肉,电控是大脑,视觉是灵魂。


一、Why Ubuntu

Ubuntu是一个十分流行并且好用的linux桌面发行版本。截止到目前,ubuntu已经发行了ubuntu20的版本。不过目前最为常用的还是ubuntu18.04的版本。你可以在这里下载的各个版本的ubuntu系统镜像文件。

常言道,不要重复造轮子。在实际大型项目的开发过程中,总是不可避免的会使用到大量的第三方库,而一旦用到第三方库,就不可避免的会遇到依赖的问题,这个问题在编写C/C++程序的时候尤为明显。在windows下使用visual studio开发c++程序时,每创建一个工程都必须不厌其烦的挨个设置每个第三方库的头文件目录、库文件目录、以及库文件名。这样的事情是极为繁琐的。

这时使用ubuntu系统+cmake,可以让你感受到无与伦比的遍历。所以,使用ubuntu系统的第一个好处就是开发环境配置方便

然而linux的桌面发行版层出不穷,为何偏偏要采用ubuntu呢?

这是因为ubuntu作为最受欢迎的linux桌面发行版之一,几乎所有软件包都会原生支持在ubuntu上的安装,同时由于使用的人多,社区很广,遇到问题在网络上也总能搜索到ubuntu下的解决方法。想象一下,如果安装一个不太热门的linux发行版,想在上面安装CUDA(一个极为流行的GPU编程库),然而官方没有原生支持,自行安装过程中的各种坑,在网络上又难以搜索到,这将会是一件多么令人恼火的事情。

总之,视觉部推荐使用ubuntu18.04系统作为基本的开发环境

二、ubuntu基本知识

网络上有比较全面的ubuntu入门介绍(传送门),这里多的不过多介绍,重点说一下实际使用过程中最为经常使用到的地方。

2.1 ubuntu硬盘与文件目录结构

区别与windows系统中,每个硬盘分区单独一个盘符,不同分区间相互独立,linux下所有硬盘分区要么直接作为根目录,要么是根目录下的一个子目录。如

硬盘分区1挂载到根目录,即:/

硬盘分区2挂载到根目录的子目录,如:/data

在没有其他挂载的情况下,目录:/,下面的所有文件(除了目录:/data)都是保存在硬盘分区1中。而目录:/data,下面的所有文件都是保存在硬盘分区2中。

2.2 ubuntu常用文件目录及其作用

  • /home:该目录下保存不同账户的用户文件。假如你的ubuntu有一个叫user的账户,那么 /home/user 下就保存着user账户的用户文件。如果还有一个叫foo的账户,那么 /home/foo 下就保存着foo账户的用户文件。
  • /root:该目录下保存着root账户的用户文件。root账户是ubuntu中的一个特殊账户,拥有最高读写权限,类似与windows中的管理员。
  • /etc:该目录下保存着各种软件的配置信息。
  • /usr:该目录下通常保存用户安装的各个软件、开发包等。
  • /proc:该目录下都是虚拟文件,用于监控系统的运行状态。
  • /dev:该目录下也是虚拟文件,用于保存各个设备驱动。
  • /mnt:该目录下通常保存外部存储设备。如U盘等设备,通常可以在该目录下访问。

2.3 ubuntu账户

账户相当于是标记了这台电脑的不同使用者,当多人公用一台电脑时,可以通过不同账户来划分权限,这种情况在服务器上最为常见,因为服务器通常都会有很多个用户。但在个人电脑上,则通常仅有一个账户。

每个账户,可以属于一个或多个组,就好比将多个同类的用户归为一类,同样是方便进行权限管理。

2.4 ubuntu权限管理

这里的权限包括文件权限和用户权限。

通常来说,一个文件有9个权限可以设置,而这9个权限可以分为3类,分别是文件所有者权限,组权限和其他用户权限。其中这三类中,每类都包含3个权限,即读、写、执行。由于读、写、执行可以用三个2进制比特表示,所以这三个权限可以用一个8进制数表示,而一共有3类权限,所以一个文件的权限可以由三个8进制数表示。我们可以使用命令ls -l来查看当前目录下所有文件的权限。

我们可以通过chmod命令修改文件的权限,基本用法是chmod <权限> <文件名>,比如chmod 755 ./run。在上面我们提到,一个文件的权限可以由3个8进制数表示,这里就是一个典型的例子。

由于有权限限制,在默认的用户权限下,我们通常只能修改目录 /home 下对应用户文件夹里的文件,而其他地方的文件都是无法修改的。为了获取修改任意文件的权限,我们可以使用sudo命令。该命令会使得用户获得临时的root权限,也就是类似于windows下的管理员权限。这时我们就可以修改那些原本不能修改的文件了。注意:如果使用sudo命令创建文件,创建出的文件的所有者将是root用户,也就是意味着在用户权限下不能修改它。所以,非必要情况下,尽量不使用sudo命令。

2.5 APT包管理工具

apt是ubuntu中的一个软件,负责管理系统中安装的各类软件包,开发包。包括但不限于安装:可执行软件、开发库(头文件,链接库等)、运行库(动态链接库)。其基本命令有:

apt search <包名> // 搜索某个包

apt update // 更新包数据库

apt upgrade // 升级包

apt install <包名> // 安装某个包

apt remove <包名> // 删除某个包

主要常用的命令就是上面几个。由于apt安装的包,默认并不是安装到用户目录,也就是意味着在安装/删除包时,需要root权限。所以,实际使用apt命令时还需要在前面加上sudo。


作者:唐欣阳,github主页:传送门