网站开发加维护需要多少钱,域名注册网站 简称,安徽合肥制作网站公司哪家好,优化推广seo在 Ubuntu 基本操作 里面基本就分为两部分#xff1a;
安装 VMware 运行 Ubuntu熟悉 Ubuntu 的各种操作、命令
如果你对 Ubuntu 比较熟悉的话#xff0c;安装完 VMware 运行 Ubuntu 之后就可以来学习下一章节了。
1. 安装 VMware 运行 Ubuntu
我们首先来看看怎么去安装 V…在 Ubuntu 基本操作 里面基本就分为两部分
安装 VMware 运行 Ubuntu熟悉 Ubuntu 的各种操作、命令
如果你对 Ubuntu 比较熟悉的话安装完 VMware 运行 Ubuntu 之后就可以来学习下一章节了。
1. 安装 VMware 运行 Ubuntu
我们首先来看看怎么去安装 VMware 来运行 Ubuntu为什么要做这些事情我们先讲清楚原因。
一般来说我们都是在 windows 电脑上面来操作然后你可以通过网络去访问一个服务器linux 服务器做 linux 开发的时候为什么一定要用 linux 服务器在 linux 服务器里面你可以去编译 u-boot可以去编译内核可以去编译应用程序或者各种驱动程序那么为什么这些操作必须放在 linux 服务器里面呢为什么不能够在 windows 里面操作呢就比如说在 linux 里面有一些链接文件那对于 windows 来说它根本就不支持 linux 里面的链接文件的文件格式也不支持 Linux 里面的设备节点所以很多的时候这种工作必须在 Linux 里面来做。
那么我们作为一个学习者我们并没有 Linux 服务器那怎么办我们可以在 windows 里面来安装一个虚拟机 VMware这个是虚拟机它可以模拟出一台电脑在这台模拟出来的电脑上面安装 UbuntuUbuntu 是一个 Linux 系统跟 windows 是并列的关系我们在这台虚拟的电脑上面来运行 Ubuntu以后在这个 Ubuntu 里面来编译 u-boot 内核、应用程序和驱动程序。
所以我们第一步干嘛呢安装 VMware第二步使用 VMware 来打开 Ubuntu。
1.1 安装 VMware
首先从 VMware 官网www.vmware.com下载 Workstation Player 安装包或者使用我们提供的安装包。在 开发板配套资料 01_100ask_stm32mp157_pro_2022.08\02_开发工具\【Windows】VMwareWorkstation 安装包安装包中VMWare 安装软件是VMware-workstation-full-16.2.3-19376536.exe一路点击安装
VMWare 安装完成后有两个软件它们都可以使用建议使用第 2 个 ① Vmware Workstation Pro这是收费的可以试用 30 天。 ② Vmware Workstation 16 Player这是免费的。 注意本文是在 Windows 10 上安装 VMware。
1.2 安装 Ubuntu
在 开发板配套资料 中有 Ubuntu 映像文件。01_100ask_stm32mp157_pro_2022.08\02_开发工具\100ask-vmware_ubuntu18.04在某个磁盘分区里解压文件这个分区最好有 200G 的空闲空间。
1.3 使用 VMware 运行 Ubuntu
启动 Vmware Workstation 16 player这个 player 是不需要注册号的是可以免费使用。点击打开虚拟机打开 D:\ubuntu18.04\ubuntu18.04_x64.vmx点击获取所有权点击启动按钮就可以打开虚拟机了我已复制该虚拟机。
这个软件模拟出来一台电脑这个电脑上面去运行这个 Ubuntu用户名密码是 123456在里面你就可以像操作 windows 一样来操作 Ubuntu 了。
你不想再使用这个 Ubuntu 了之后你可以点击关闭按钮关机你也可以点击停止按钮挂起确定。挂起之后以后你再次打开这个虚拟机的时候选中它点击播放虚拟机它就会恢复之前被挂起的状态。
如果你对 Linux 系统还不熟悉对 Ubuntu 操作还不熟悉那么你就需要去看第二篇里面的后续内容可以看文档也可以看视频。如果你已经熟悉了 Linux 的操作那么下一章节里面 配置 VMware 使用双网卡 这个一定要看下一章节里面我们一开始还需要去配置 VMware 里面的网络。
2. Ubuntu 的基本操作
从现在开始我们来介绍一下 Ubuntu 的简单操作。我们首先介绍一下怎么去操作桌面然后再去介绍一下使用各种命令。
2.1 Ubuntu 下打开终端
我们之前已经使用 VMware 打开了 Ubuntu。我们以后会使用到各种 Linux 命令那么在哪里输入命令呢
使用右键打开终端。你可以在桌面上点击右键 open terminal打开终端这时候你就可以在里面输入各种命令了这所谓的终端跟 windows 里面的命令行是类似的在 windows 里面我们同样可以打开所谓的命令行快捷键 Ctrl R你同样可以在里面执行各种 dos 命令比如 dir你看在 windows 里面你要列出这些目录的话是 dir 命令在 linux 里面是 ls 命令有点差别。用搜索框打开终端。我们现在回到 Ubuntu你可以使用右键来打开终端你也可以点击左下角找到终端 terminal。快捷键打开终端。我们还可以使用快捷键“CtrlAltT” 来打开终端。
以后我们将会在终端里面输入各种命令但是这节我们先来体验一下桌面。
2.2 Ubuntu 系统初体验
其实 Ubuntu 发展到现在它的桌面操作跟 windows 是非常的类似。但是
2.2.1 Ubuntu 和 Windows 的最大差别目录
对于 Windows 我们可以打开此电脑Windows 中每个盘符都对应某个分区在这个分区里面你可以存放目录与文件如图所示 那这些盘符对于哪些分区呢你可以打开创建并格式化硬盘分区工具就可以看到左下方有磁盘磁盘 0 里面前面是分区表C 盘就对应这个磁盘里面的第一个分区D 盘对应第二个分区E 盘对应第三个分区另外一个磁盘呢你看这里有 J、K、I、L从这里你可以看到每一个盘符都对应磁盘里面的某一个分区Windows 这种表现方法非常的直观。但是对于 Ubuntu 呢它就不大一样了在 Ubuntu 里面我们可以打开文件浏览器打开其他位置computer从这里你可以看到它里面有各种目录。
对于 Windows你在此电脑里面看到的是各种盘符但是在 Ubuntu 里面刚才我们看到了在 computer 里面你看到的是各种目录你看不到任何的盘符。
好回到 Windows在 Windows 里面我们去访问某个文件的时候你可以使用绝对路径。比如
C:\abc\def\hello.txt从这个绝对路径我一下就可以知道它位于 C 盘它位于某一个分区里面。但是对于 Ubuntu 呢在 Ubuntu 里面它没有盘符的概念就比如说你想去访问某个文件的时候比如
/abc/def/hello.txt第一个斜杠表示它位于根目录位于根目录下面的 abc 子目录在 abc 子目录下面又有 def 子目录在 df 下面有 hello.txt从这个路径你看不出它位于哪一个分区。在 Ubuntu 中以树状的结构表示文件夹与文件。 注意 Windows 的绝对路径中目录使用 “” 分隔。 Linux 的绝对路径中目录使用 “/” 分隔。 以前在 Windows 有 C 盘、D 盘 和 E 盘这是并列的关系但是在 Ubuntu 里面它是一个树状的关系。就比如说地面上有一个树它可以分叉在叉里面又可以继续分叉这就是所谓的根这个根用斜杠来表示。我们来比划一下在根下面有 abc 目录还可以有其他目录有 home 目录有 bin 目录有 boot 目录等等等等在 abc 目录下面又可以有什么呢有 def 目录或者说还有其他目录在 def 目录下面又有什么呢有 hello.txt那么我怎么找到这个 hello.txt它就是根目录下面的 abc 子目录abc 目录下面又有 def 目录再下面有 hello 这个文件这就是树状结构的意思。再比如说这 home 目录下面可能又有其他子目录有 book 一个用户名有其他用户名 xxx在 book 下面又有某一个文件那么你就可以这么访问根目录下面找到 home 目录找到 book 目录在 book 目录下面你可能有一个 1.txt。
/abc/def/hello.txt
/home/book/1.txt从这些绝对路径的表示方法里面你看不到任何分区的信息。那么我怎么才能知道我这个文件处于哪个分区呢那么你就可以打开 Disks 工具从这里我们就可以看出来我这 Ubuntu 里面只有一个磁盘这个磁盘里面的第一个分区
/dev/sda1dev设备sd表示磁盘a表示第一个磁盘1表示这个磁盘里面的第一个分区
sda 这个磁盘的第一个分区它挂载在根目录下面。 看到这里我们又听到了一个新的概念叫挂载。就比如说对于 Windows你可以认为 C 盘挂载了那个磁盘里面的第一个分区D 盘挂载了那个磁盘里面第二个分区对于 Ubuntu 呢你看对于这个磁盘里面的第一个分区它作为根文件系统挂载就挂载在了根下面以后你去访问这个根的时候访问的就是这个分区就比如说你在这个根下面创建了一个 hello.c这个文件就会放在这个磁盘的第一个分区里。那同样道理如果你想去访问根目录下面的 home访问这个 book你访问这个目录的时候访问的也是这个磁盘的第一个分区。
我们再来看看这个磁盘的第二个分区挂载在哪里你点击这个磁盘里面的第二个分区你发现这个磁盘 dev/sda 的第二个分区挂载在 boot 目录下面也就是说我以后去访问根目录下面的 boot 目录我去访问里面的文件的时候这些文件位于这个磁盘的第二个分区为什么呢因为这个第二个分区挂载在 boot 目录下面。
从这里你可以看到它没有像 Windows 那么直接那么直观在 Windows 里面我就知道了我访问 C 盘访问的是第一个分区我访问 D 盘访问的是第二个分区但在 Linux 这里呢你得先确认一下第二个分区挂载在哪里然后你才可以知道我去访问这个挂载目录的时候我访问的就是这个分区里面的文件。
我们再来看看第三个分区这个不用管这是交换分区它并没有挂载在某一个目录下面。这里第四个分区挂载在 home 目录下面。我们现在又可以推翻前面说的话了你刚才不是说我访问 home 目录的时候也是去访问第一个分区吗那现在不是了我现在看完了整个分区的挂载信息之后才发现第四个分区挂载在 home 目录下面那么我以后去访问根目录下面的 home 目录的时候我就访问里面的 book 目录或者访问这个目录下面的直接有某一个文件的话
/home/book
/home/1.txt这些目录这些文件它都是放在这个分区里面因为这个分区挂载在 home 目录下面你访问 home 目录下面的所有的文件夹所有文件的时候都是去访问这个分区。
我们引入了这种分区挂载在某个目录的这么一个概念那么自然就会引发另外一个问题就比如说我现在第一个分区 /dev/sda 表示某个磁盘这个设备的第一个分区挂载在了 home 目录下面我现在假设 /dev/sda 这个分区里面它本来就有 home 目录home 目录下面我本来就有一个 1.txt如果我没有去挂载其他分区的话以后我去访问这个文件的时候我访问的就是 /dev/sda 这个分区里面的文件这是第一步。
那第二步呢我又把 /dev/sda4 这个磁盘的第四个分区我挂载在 home 目录下面一旦挂载成功之后我以后访问这个 home 目录我访问的就是 /dev/sda4 这个分区那意味着这些之前的这些文件就不可见了。之前 sda1 的 home 目录不可见了因为我把你的 home 目录挂载了另外一个分区我以后访问这个 home 目录的时候我访问的是这个第四个分区不再访问你之前的第一个分区了。
实际上就我个人的习惯来说我认为 Windows 里面的表现方法更加直观更加方便。
我们现在来看看对于 Ubuntu 它的文件系统是怎么组织的呢
对于 Windows 你可以打开 C 盘它都有一些约定俗成的规则你看里面有 program 目录就表示说里面存放有 Windows 的应用程序有用户目录表示里面存放的是各个用户的单独的数据还有 Windows 目录里面存放的应该就是系统的驱动啊等等等等。同样道理对于 Ubuntu对于 Linux 它也有一套规则。这套规则叫做循 FHS 标准(Filesystem Hierarchy Standard文件系统层次标准)。它定义了文件系统中目录、文件分类存放的原则、定义了系统运行所需的最小文件、目录的集合并列举了不遵循这些原则的例外情况及其原因。FHS 并不是一个强制的标准但是大多的 Linux、Unix 发行版本遵循 FHS。
我们简单来看看在一个 Ubuntu 里面它有哪些文件。打开 Files-other Locations-computer你可以看到这些目录它们有什么含义呢我们来看一看。
首先我们可以执行各种程序这些程序放在哪里放在 bin 目录下面放在 sbin 目录下面。这些 bin 目录下面放的那些应用程序命令是所有用户都可以使用的这个 sbin 呢这个 s 就是系统的意思在 sbin 目录下面放的是基本的系统命令只有系统管理员才可以使用。总之这两个目录里面存放的都是命令或者说就是各种 app 了只不过它们的权限不一样。那么对于其他无关紧要的应用程序呢我们可以放在 usr 目录下的 bin 目录或者 usr 目录下面的 sbin 目录注意了这个 usr 它并不是用户的意思它是 Unix 软件资源里面存放的是一些资源这些资源并不是系统启动必须的资源就比如说你甚至还可以在里面放游戏放头文件头文件根本不是系统启动必须的游戏呢也根本就不是系统启动必须的。现在我们看到了usr/bin 目录或者 usr/sbin 目录放的是非必需的 APP。
再来看看其他目录这些应用程序它都用到库呀那库放在哪里根目录下面的 lib 目录可以存放库usr 目录下面的 lib 目录也可以存放库。
咱们再从头往下看看boot 目录下面一般来说放一些启动文件就比如说内核呀等等等等device 里面存放的是各种设备文件这是 Linux 独有的就比如说我们之前讲到了 dev/sda 表示第一个磁盘dev/sda1 表示这个磁盘的第一个分区这些文件就存放在 dev 目录下面它们叫做设备文件用来表示某些硬件的还有 etc是配置文件home 是家目录家目录下面有各种子目录就比如说这个 book 子目录对应着 book 用户跟 Windows 里面的这个用户目录是类似的你看在 Windows 里面这个用户目录下面有各种用户每一个文件夹对应一个用户对于 Ubuntu对 Linux 也是类似的home 目录下面每一个文件夹对应一个用户。
其他的无关紧要这里还有 proc、sys这是一些默认的文件夹在这些文件夹里面你可以去挂载一些虚拟的文件系统什么叫做虚拟的文件系统呢我们在根目录下面挂载了这个磁盘的第一个分区在 home 目录下面挂载了这个磁盘的第四个分区它们对应真实的存储设备但是对于这些 proc、sys 目录它们挂载的是某一些虚拟的文件系统对于这些虚拟的文件系统它并没有真实的存储设备你可以去访问这些目录观察到内核的一些信息。就比如说这个 proc 目录它存放的什么呢存放的是 process 各个进程的一些信息这进程的信息是内核帮你提供的它并不保存在磁盘上我们可以去看看打开 proc 目录你可以看到各种数字各种数字就对应着某一个进程你可以进去看看里面有它所打开的文件我们看不了我们是 book 用户没有权限访问这些目录我们现在简单的知道这些 proc 或者 sys 目录它对应的是虚拟的文件系统比如说 proc 目录下面你可以看到各个进程在 sys 目录下面你可以看到其他更多的信息就比如说设备的信息、驱动得信息等等以后我们再介绍。
再一路往下看你之前说这个 usr 目录它是 Unix 软件资源它存放的是可分享的不可变动的数据那么可以变动的数据在哪里呢。所谓可以变动的数据就是程序运行的过程中生成了各种临时文件就比如我们在 Windows 里面会有各种缓存在我的用户目录下面会看到各种缓存的数据就比如说我打开了这个文件之后它可能会有一些临时文件这些临时文件都是可以删除的这些可以删除的临时文件就是可变动的文件对 Ubuntu 来说它也有类似的文件只不过它们都放在 var 目录下面var可变的意思它可以放一些临时的可变的文件就比如说缓存、log 等等这些文件。
我们现在对 Ubuntu 的整个文件系统对这些目录稍微简单的介绍了一下。总之Ubuntu 发展到现在跟 Windows 是非常的类似。
2.2.2 Linux 文件属性
2.3 2.3 Linux 常用命令
2.3.1 Linux 命令行介绍
我们先来演示一个最简单的命令。在 Ubuntu 中打开终端执行
ls -a我要提几个问题
你输入 ls -a 的时候回车谁来解析你的输入
1. Linux Shell 简介
Ubuntu 系统中或者 Linux 系统中有一个程序叫做 Shell由这个程序来接收你的输入。根据你的输入找到一个应用程序就比如说这个应用程序是 bin 目录里面的应用程序它根据你的输入找到 bin 目录里面的 ls 这个程序然后去执行这个程序它执行这个程序的时候它会传入 -a 这个参数。根据这个演示过程我们引入两个问题
谁来接收你的输入谁来解析你的输入这是 Shell 来做的。需要解析你的输入之后它去哪里找到应用程序
在回答这两个问题之前我们先来看看
2. Linux 命令的提示符
在 Ubuntu 中打开终端后即可看到类似下图的提示符 ~表示路径就比如说你可以进入根目录你看这个路径就变成了根目录。~ 表示家目录当前用户的家目录然后进入 ~那就变成了家目录。这家目录什么意思呢你看 home 目录下面有某些文件夹这些文件夹每个文件夹都会对应一个用户。 我们可以在这个界面里面输入各种命令这些命令的格式是怎样的呢
3. Linux 命令的格式
一般来说Linux 命令由三部分组成 ① command 命令就比如说我们 ls 命令 ② options 选项这些选项一般来说使用一个减号开头 ③ parameter 参数 说明 ① [ ]中括号表示 该部分可选可有可无需要根据命令的实际需要而添加; ② 命令、选项、参数都以空格分隔不管几个空格都算一个空格; ③ 命令输入完毕后按回车“Enter”键启动; 就比如说我们可以来执行 ls -l 然后某一个目录/,根目录
ls -l /你看命令可选的一些选项还有参数回车它就可以列出根目录下面那些文件的详细信息。 ls 表示列出那些信息。-l 表示详细的信息。 你列出哪一个目录的详细信息呢你可以指定命令、选项、参数之间用空格来隔开。
再来看看这行文字它为什么用一个中括号来表示呀中括号的意思就是这些项目它是可选的你可以填也可以不填那如果用尖括号的话就是表示说你必须填好。我们来找一个命令来演示一下
fdisk你看它说什么呢错误的用法。为什么是错误的用法因为你想去格式化某个磁盘你就必须指定某个磁盘。来看看
fdisk --help命令可选的参数它会告诉你怎么去用。 fdisk 加上各种选项然后你必须指定某个磁盘这个尖括号就表示说这个参数这个项目不可以省略中括号就表示说这些项目是可以省略的就比如说我可以来执行
sudo fdisk /dev/sda因为权限不够我们加上 sudo密码是 123456它就可以成功的打开这个磁盘在里面你可以输入各种命令来操作这个磁盘。 密码输入过程是不可见的。你看着什么都没有输进去其实已经打进去了。 现在我们大概知道了命令的格式是怎样的。现在回到我们之前说的那几个问题我们以后可以执行各种命令再次演示下我们最简单的命令ls -l 在我们输入过程中我们从键盘给电脑发送字符谁来接收这个字符谁把它显示出来我们输入了 ls它就接收到了 ls并且把 ls 显示出来了我们回车之后他会去找到 ls 这个应用程序来执行它并且执行这个程序的时候把 -l 这个参数传递给他你看不同的参数有不一样的行为那么是谁在背后做这些事情谁在背后从键盘接收数据并且把这些数据给显示出来当你回车的时候谁来帮你找到应用程序并且执行它并且把这些执行结果给显示出来这个背后的程序就是 Shell我们这节讲的就是 Shell。
Shell 就是一个应用程序我们可以通过键盘、串口给它发送命令回车后它接收到这些命令之后就会去执行这些命令。就比如说我们以 ls -l 命令为例 ① 接收键盘数据并回显。 比如我们使用键盘给 Shell 程序发送字母 l它收到后会在屏幕上显示出来。 ② 解析输入的字符串寻找程序执行程序。 当我们使用键盘给 Shell 程序发送回车是它就知道字符输入结束了。
shell 会解析字符串这些字符串用空格分为好几部分 第一部分就是程序名、命令名应用程序其他部分是参数 shell 会根据第一部分去寻找该程序去哪里找去 PATH 环境变量所指示的位置找。 你当然也可以指定绝对路径、相对路径shell 就会直接去这些路径找到程序。找到程序后会启动该程序并传入参数。
这环境变量是什么意思我们来执行一条命令
echo $PATH你看这 PATH 里面它的值是这些里面是各个字符串各个字符串之间用冒号隔开我们的 shell 程序就是去这些目录逐个寻找看看有没有 ls找到之后就去执行它。在 shell 中执行程序时你也可以使用绝对路径、相对路径来指定程序的位置这个时候 shell 就会去这些路径中寻找应用程序它就不会去 PATH 环境变量所指示的位置来寻找。
你可以执行
env看到各种变量用 env 显示出来的这些变量就是环境变量 前面是环境变量 后面是这个变量的值。我们可以用 echo 来显示出某一个环境变量
echo那么怎么设置 PATH 环境变量呢 我们先不去介绍先来演示一下一个应用程序我事先已经写了一个 hello 应用程序。
#include stdio.h/* 执行命令: ./hello weidongshan * argc 2* argv[0] ./hello* argv[1] weidongshan*/int main(int argc, char **argv)
{if (argc 2)printf(Hello, %s!\n, argv[1]);elseprintf(Hello, world!\n);return 0;
}
你看如果你输入的参数超过两个的话它就会打印 Hello, %s!\n, argv[1]如果只输入 hello 而不带其他参数的话它就会打印 Hello, world!\n。