本帖最后由 正点原子运营 于 2024-1-15 15:24 编辑
第二章 Ubuntu系统入门
1)实验平台:正点原子 DFZU2EG_4EV MPSoC开发板
2) 章节摘自【正点原子】DFZU2EG_4EV MPSoC开发板之嵌入式Linux 驱动开发指南 V1.0
6)Linux技术交流QQ群:887820935
在上一章我们已经安装好虚拟机,并且在虚拟机中安装好了Ubuntu操作系统了,本章我们就来学习Ubuntu系统的基本使用,通过本章的学习为我们以后的开发做准备。Ubuntu系统是和Windows一样的大型桌面操作系统,因此功能非常强大,不是一章就能介绍完的,因此本章叫做《Ubuntu系统入门》。本章的主要目的是教会读者掌握后续嵌入式开发所需的Ubuntu基本技能,比如系统的基本设置、常用的shell命令、vim编辑器的基本操作等等,如果想详细的学习Ubuntu操作系统请参考其它更为详细的书籍,本章参考了《Ubuntu Linux从入门到精通》,这本书不厚,很适合用来作Ubuntu入门。
1.1 Ubuntu系统初体验
1.1.1 hello Ubuntu上一章我们已经安装好了Ubuntu操作系统,我们再来回顾一下如何开机: 1、打开VMware虚拟机软件,打开以后如图 2.1.1所示: 2、打开VMware上的开机按钮,打开方式如图 2.1.2所示: 3、点击上图中两个开机按钮中的任意一个就会打开Ubuntu操作系统,首先进入图 2.1.3所示的登陆界面,点击使用的用户名,输入密码即可进入系统。 在登陆界面输入密码,进入系统主界面,如图 2.1.4所示: 进入主界面以后大家就可以看到和Windows基本一样,左侧有一列APP,第一个是火狐浏览器,可以用来上网,比如我们登陆百度网站,如图 2.1.5所示: 第二个是邮箱。第三个是文件浏览器,打开以后可以浏览Ubuut系统中的文件,打开以后如图 2.1.6所示: 这里还有其它一些APP,大家可以自行打开看一下这些APP都是干啥的,这里就不一一详细的介绍了。
1.1.2 系统设置我们以设置取消锁屏为例来讲解如何使用设置。打开系统设置界面,打开方式为点击桌面最右上角的图标,然后在弹出的界面中选择工具按钮,如图 2.1.7所示: 打开以后的系统设置界面如下图所示: 系统设置界面可以完成系统的大部分设置。我们找到“电源”设置并点击,点击以后如下图所示: 从上图中可以看到,空白屏幕的时间是5分钟,也就是5分钟不动Ubuntu系统,就会进入锁屏界面,而每次从锁屏进入桌面都要输入密码,比较麻烦,所以笔者将其设置为“从不”,如下图所示: 也就是无论多长时间不动Ubuntu系统,都不会进入锁屏界面。通过设置取消锁屏这个例子,我们就知道了如何设置Ubuntu系统,如果有需要设置其它东西的话都可以到系统设置里面去进行,这里就不一一详细的介绍了。
1.1.3 系统重启与关机当我们不使用Ubuntu系统以后就需要将其关机,就和我们使用Windows系统一样,千万不要通过直接退出VMware软件来关机!!关机很简单,在主界面,点击右上角的图标,如下图所示: 弹出下图所示界面: 注意,该界面显示系统将在60秒后自动关机,也就是此时什么都不做,60秒后系统将会自动关机。 在图 2.1.12中可以看到有三个选项:取消、重启和关机,这个和Windows下是一样的,你如果想要取消就点击“取消”按钮,想要关机就点击“关机”按钮。以关机为例,点击“关机”以后会直接关闭Ubuntu系统。
1.1.4 中文输入测试我们是中国人,平时用的最多的肯定是中文,那么Ubuntu下中文输入是否和Windows一样呢?如何在Ubuntu下使用中文输入法? 我们在安装Ubuntu系统的时候就已经使用过中文输入法了,就是选择我们所在地的时候。本节我们就以创建一个文本为例,介绍如何在Ubuntu中使用中文输入法。 在Ubuntu虚拟机中,点击左下角的“显示应用程序”图标,如下图所示: 进入活动界面,输入“text”,找到文本编辑器工具,如下图所示: 单击打开文本编辑器工具,打开以后如下图所示: 打开文本编辑器工具后,我们可以尝试在里面输入一些英文和数字,输入英文和数字是没有任何问题的,输入中文的话需要切换到Ubuntu自带的拼音输入法,有两种方式切换,一种是使用快捷键:Windows+空格键,一种是使用鼠标点击设置输入法,如下图所示: 这两种方法都可以切换输入法,切换到拼音输入法以后就可以输入中文了,如下图所示: 大家会发现Ubuntu下的拼音输入法使用起来跟Windows下的输入法相差不大。 通过上面几个小节中对Ubuntu的基本操作来看,基本和Windows下的操作差不多,我们真正要使用Ubuntu的不是通过图形界面操作,而是通过命令行操作的。这也是我们接下来着重要讲的:Ubuntu(Linux)终端操作,会涉及到很多命令,但是常用的命令就那几十个,不需要刻意的去背,使用习惯了就自然记住了。不要看到要记命令就觉得可怕。根据2080原则,80%情况下只使用那20%的命令,实际情况会更少,常用的可能就那5%~10%的命令。
1.2 Ubuntu终端操作本节就是我们学习Ubuntu操作系统的重点了,终端操作,也就是俗称的“敲命令”,不管是哪个版本的Linux发行版系统,它都会提供终端操作,Linux下的终端操作类似与Windows下的DOS操作。要使用终端首先肯定是要打开终端,在主界面上点击鼠标右键,然后选择打开终端,如图2.2.1所示: 打开终端以后如图2.2.2所示: 我们就是在图2.2.2所示界面上输入命令的,终端默认会有类似下面一行所示的一串提示符: - zuozhongkai@zuozhongkai-virtual-machine: ~$
复制代码上述字符串中,@前面的“zuozhongkai”是当前的用户名字,@后面的zuozhongkai-virtual-machine是我的机器名字。最后面的符号“$”表示当前用户是普通用户,我们可以在提示符后面输入命令,比如输入命令“ls”,命令“ls”是打印出当前所在目录中所有文件和文件夹,如图2.2.3所示: 在图2.2.3中我们输入了“ls”这个命令,然后打印出了当前目录下的所有文件和文件夹,后面我们学习命令的时候就是在终端中输入相应命令的。
1.3 Shell操作
1.3.1 Shell简介学习linux的时候会频繁的看到Shell这个词语?那么什么是Shell呢?网上搜索一下,各种专业的解释一堆,但是对于第一次接触Linux的人来说这些专业的词语只会让人更晕。简单的说Shell就是敲命令。国内把Linux下通过命令行输入命令叫做“敲命令”,国外人玩的比较洋气,人家叫做“Shell”。因此以后看到Shell这个词语第一反应就是在终端中敲命令,将多个Shell命令按照一定的格式放到一个文本中,那么这个文本就叫做Shell脚本。 严格意义上来讲,Shell是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作,Shell负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。
1.3.2 Shell基本操作前面我们说Shell就是“敲命令”,那么既然是命令,那肯定是有格式的,Shell命令的格式如下: - command -options [argument]
复制代码command: Shell命令名称。 options:选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。 argument:Shell命令是可以带参数的,也可以不带参数运行。 同样以命令“ls”为例,下面“ls”命令的三种不同格式其结果也不同: 这三种命令的运行结果如图 2.3.1所示: 在图 2.3.1中“ls”命令用来打印出当前目录下的所有文件和文件夹,而“ls -l”同样是打印出当前目录下的所有文件和文件夹,但是此命令会列出所有文件和文件夹的详细信息,比如文件大小、拥有者、创建日期等等。最有一个“ls /usr”是用来打印出目录“/usr”下的所有文件和文件夹。 Shell命令是支持自动补全功能的,因为Shell命令非常多,如果不作自动补全的话就需要用户去记忆这些命令的全部字母。使用自动补全功能以后我们只需要输入命令的前面一部分字母,然后按下TAB键,如果只有一个命令匹配的话就会自动补全这个命令剩下的字母。如果有多个命令匹配的话系统就会发出报警声音,此时在按下一次TAB键就会列出所有匹配的命令,比如我们输入字母“if”,然后按下TAB键,结果如图 2.3.2所示: 从上图可以看出,以“if”开头的命令有5个,我们以“ifconfig”为例,此命令是用来查看网卡信息的,我们重新输入“ifc”然后在按一下TAB键,就会自动补全出“ifconfig”命令,因为以“ifc”开头的命令只有一个,结果如下图所示: 1.3.3 常用Shell命令我们做嵌入式开发用的最多就是Shell命令,Shell命令是所有的Linux系统发行版所通用的,并不是说我在Ubuntu下学会了Shell命令,换另外一个Linux发行版操作系统以后就没用了(不同的发行版Linux系统可能会自定义一些命令)。本节我们先来介绍一些Shell下常用的命令: 1、目录信息查看命令ls 文件浏览是最基本的操作了,Shell下文件浏览命令为ls,格式如下: ls命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,它的主要参数有: -a 显示所有的文件以及子目录,包括以“.”开头的隐藏文件。 -l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。 -t 将文件按照创建时间排序列出。 -A 和-a一样,但是不列出“.”(当前目录)和“..”(父目录)。 -R 递归列出所有文件,包括子目录中的文件。 Shell命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细信息,包括以“.”开头的隐藏文件,ls命令使用如图 2.3.4所示: 注意上图中tmp文件夹是我为了演示方便,自己创建的,里面的文件a,b和c也是我创建的,关于文件夹和文件的创建后面会详细的讲解。
2、目录切换命令cd 要想在Shell中切换到其它的目录,使用的命令是cd,命令格式如下: 路径就是我们要进入的目录路径,比如下面所示操作: - cd / //进入到根目录“/”下,Linux系统的根目录为“/”,
- cd /usr //进入到目录“/usr”里面。
- cd .. //进入到上一级目录。
- cd ~ //切换到当前用户主目录
复制代码比如我们要进入到目录“/usr”下去,并且查看“/usr”下有什么文件,操作如下图所示: 在上图中,我们先使用命令“cd /usr”进入到“/usr”目录下,然后使用“ls”命令显示“/usr”目录下的所有文件。仔细观察上图可以看到,当我们切换到其它目录以后在符号“$”前面就会以蓝色的字体显示出当前目录名字,如下图所示: 3、当前路径显示命令pwd pwd命令用来显示当前工作目录的绝对路径,不需要任何的参数,使用如下图所示: 4、系统信息查看命令uname 要查看当前系统信息,可以使用命令uname,命令格式如下: 可选的选项参数如下: -r 列出当前系统的具体内核版本号。 -s 列出系统内核名称。 -o 列出系统信息。 使用如下图所示: 5、清屏命令clear clear命令用于清除终端上的所有内容,只留下一行提示符。
6、切换用户执行身份命令sudo Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的就是超级用户root,有时候我们执行一些操作的时候是需要用root用户身份才能执行,比如安装软件。通过sudo命令可以使我们暂时将身份切换到root用户。当使用sudo命令的时候是需要输入密码的,这里要注意输入密码的时候是没有任何提示的!命令格式如下: 选项主要参数如下: -h 显示帮助信息。 -l 列出当前用户可执行与不可执行的命令 -p 改变询问密码的提示符。 假如我们现在要创建一个新的用户test,创建新用户的命令为“adduser”,创建新用户的权限只有root用户才有,我们在装系统的时候创建的那个用户是没有这个权限的,比如我的“zuozhongkai”用户。所以创建新用户的话需要使用“sudo”命令以root用户执行“adduser”这个命令,如下图所示: 在图 2.3.9中,我们一开始直接使用“adduser test”命令添加用户的时候提示我们“adduser:只有 root 才能将用户或组添加到系统。”所以我们要在前面加上“sudo”命令,表示以root用户执行adduser操作。
7、添加用户命令adduser 在讲解sudo命令的时候我们已经用过命令“adduser”,此命令需要root身份去运行。命令格式如下: 常用的参数如下: -system 添加一个系统用户 -home DIR DIR表示用户的主目录路径 -uid ID ID表示用户的uid。 -ingroup GRP 表示用户所属的组名。 adduser的使用我们前面已经演示过了,大家可以试着再添加一个用户。
8、删除用户命令deluser 前面讲了添加用户的命令,那肯定也有删除用户的命令,删除用户使用命令“deluser”,命令参数如下: 主要参数有: -system 当用户是一个系统用户的时候才能删除。 -remove-home 删除用户的主目录 -remove-all-files 删除与用户有关的所有文件。 -backup 备份用户信息 同样的,命令“deluser”也要使用“sudo”来以root用户运行,以删除我们前面创建的用户test为例,deluser使用如下图所示: 9、切换用户命令su 前面在讲解命令“sudo”的时候说过,“sudo”是以root用户身份执行一个命令,并没有更改当前的用户身份,所有需要root身份执行的命令都必须在前面加上“sudo”。命令“su”可以直接将当前用户切换为root用户,切换到root用户以后就可以尽情地尽情任何操作了!因为你已经获得了系统最高权限,在root用户下,所有的命令都可以无障碍执行,不需要在前面加上“sudo”,“su”命令格式如下: 常用选项参数如下: -c –command 执行指定的命令,执行完毕以后回复原用户身份。 -login 改变用户身份,同时改变工作目录和PATH环境变量。 -m 改变用户身份的时候不改变环境变量 -h 显示帮助信息 以切换到root用户为例,使用如下图所示: 在图 2.3.11中,先使用命令“sudo su”切换到root用户,su命令不写明用户名的话默认切换到root用户。然后输入密码,密码正确的话就会切换到root用户,可以看到切换到root用户以后提示符的“@”符号前面的用户名变成了“root”,表示当前的用户是root用户。并且以“#”结束。 注意!!由于root用户权限太大,稍微不注意就可能删除掉系统文件,导致系统奔溃,因此强烈建议大家,不要以root用户运行Ubuntu。当要用到root身份执行某些命令的时候使用“sudo”命令即可。 要切换回原来的用户,使用命令“sudo su 用户名”即可,比如我要从root切换回zuozhongkai这个用户,操作如下图所示: 10、显示文件内容命令cat 查看文件内容是最常见的操作了,在windows下可以直接使用记事本查看一个文本文件内容,linux下也有类似记事本的软件,叫做gedit,找到一个文本文件,双击打开,默认使用的就是gedit,如下图所示: 我们现在讲解的是Shell命令,那么Shell下有没有办法读取文件的内容呢?肯定有的,那就是命令“cat”,命令格式如下: 选项主要参数如下:
-n 由1开始对所有输出的行进行编号。 -b 和-n类似,但是不对空白行编号。 -s 当遇到连续两个行以上空白行的话就合并为一个行空白行。 比如我们以查看文件“/etc/environment”的内容为例,结果如下图所示: 11、显示和配置网络属性命令ifconfig ifconfig是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络IP地址等等,此命令格式如下: - ifconfig interface options | address
复制代码主要参数如下: interface 网络接口名称,比如eth0等。 up 开启网络设备。 down 关闭网络设备。 add IP地址,设置网络IP地址。 netmask add 子网掩码。 命令ifconfig的使用如下图所示: 在图 2.3.15中有两个网卡:ens33和lo,ens33是我的电脑实际使用的网卡,lo是回测网卡。可以看出网卡ens33的IP地址为192.168.31.235,我们使用命令“ifconfig”将网卡ens33的IP地址改为192.168.31.20,操作如下图所示: 从上图可以看出,我们在使用命令“ifconfig”修改网卡ens33的IP地址的时候使用了“sudo”,说明在Ubuntu下修改网卡IP地址是需要root用户权限的。当修改完以后使用命令“ifconfig ens33”再次查看网卡ens33的命令,发现网卡ens33的IP地址变成了192.168.31.20。
12、系统帮助命令man Ubuntu系统中有很多命令,这些命令都有不同的格式,不同的格式对应不同的功能,要完全记住这些命令和格式几乎是不可能的,必须有一个帮助手册,当我们需要了解一个命令的详细信息的时候查阅这个帮助手册就行了。Ubuntu提供了一个命令来帮助用户完成这个功能,那就是“man”命令,通过“man”命令可以查看其它命令的语法格式、主要功能、主要参数说明等, “man”命令格式如下: 比如我们要查看命令“ifconfig”的说明,输入“man ifconfig”即可,如下图所示: 在终端中输入上图所示的命令,然后点击回车键就会打开“ifconfig”这个命令的详细说明,如下图所示: 图 2.3.18命令“ifconfig”详细介绍信息 上图就是命令“ifconfig”的详细介绍信息,按“q”键退出到终端。
13、 系统重启命令reboot 通过点击Ubuntu主界面右上角的齿轮按钮来选择关机或者重启系统,同样的我们也可以使用Shell命令“reboot”来重启系统,直接输入命令“reboot”然后点击回车键接口,如下图所示: 14、系统关闭命令poweroff 使用命令“reboot”可以重启系统,使用命令“poweroff”就可以关闭系统,在终端中输入命令“poweroff”然后按下回车键即可关闭Ubuntu系统,如下图所示: 15、软件安装命令install 截至目前,我们都没有讲过Ubuntu下如何安装软件,因为Ubuntu安装软件不像Windows下那样,直接双击.exe文件就开始安装了。Ubuntu下很多软件是需要先自行下载源码,下载源码以后自行编译,编译完成以后使用命令“intsall”来安装。当然Ubuntu下也有其它的软件安装方法,但是用的最多的就是自行编译源码然后安装,尤其是嵌入式Linux开发。命令“install”格式如下: - install [选项]... [-T] 源文件 目标文件
- 或:install [选项]... 源文件... 目录
- 或:install [选项]... -t 目录 源文件...
- 或:install [选项]... -d 目录...
复制代码“install”命令是将文件(通常是编译后的文件)复制到目的位置,在前三种形式中,将源文件复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。在第四种形式会创建指定的目录。命令“install”通常和命令“apt-get”组合在一起使用的,关于“apt-get”命令我们稍后会讲解。 以上就是Shell最基本一些命令,还有一些其它的命令我们在后面在讲解,循序渐进嘛。 |