I.MX6u嵌入式linux驱动开发

1:Ubuntu 系统入门

Ubuntu 系统入门以后,我们重点要学的就是如何在 Linux 下进行 C 语言开发,如何使
gcc 编译器、如何编写 Makefile 文件等等
首先安装虚拟机软件VM:
Vmware Workstation
软件可以在
Wmeare
官网下载,下载地址:
https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html
或者关注微信公众号:纸飞资,然后输入VM即可免费获取
然后根据视频配置虚拟系统
安装Ubuntu系统:
下载地址为: https://www.ubuntu.com/download/desktop
然后点击确定后重启,WIN+空格是切换中文输入

2:Ubuntu终端操作 

上述字符串中,@前面的“zuozhongkai”是当前的用户名字,@后面的 zuozhongkai-virtual-

machine 是我的机器名字。最后面的符号“ $ ”表示当前用户是普通用户,我们可以在提示符后
面输入命令,比如输入命令“ ls ”,命令“ls”是打印出当前所在目录中所有文件和文件夹,

1:shell操作

国内把 Linux 下通过命令行输入命令叫做“敲命令”,国外人玩的比较
洋气,人家叫做“ Shell ”。因此以后看到 Shell 这个词语第一反应就是在终端中敲命令,将多个
Shell 命令按照一定的格式放到一个文本中,那么这个文本就叫做 Shell 脚本。
严格意义上来讲, Shell 是一个应用程序,它负责接收用户输入的命令,然后根据命令做出
相应的动作, Shell 负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成
相应的工作,然后将结果反馈给应用层或者用户。

 Shell 命令的格式:

ls”命令用来打印出当前目录下的所有文件和文件夹,
而“ ls -l ”同样是
打印出当前目录下的所有文件和文件夹,但是此命令会列出所有文件和文件夹的详细信息,比
如文件大小、拥有者、创建日期等等。
ls /usr ”是用来打印出目录“ /usr ”下的所有
文件和文件夹。

2:常用的shell命令 (linux通用)

1 、目录信息查看命令 ls
ls [ 选项 ] [ 路径 ]
ls 命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,
它的主要参数有:
-a 显示所有的文件以及子目录,包括以“ . ”开头的隐藏文件。
-l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
-t 将文件按照创建时间排序列出。
-A -a 一样,但是不列出“ . ( 当前目录 ) 和“ .. ( 父目录 )
-R 递归列出所有文件,包括子目录中的文件。
Shell 命令里面的参数是可以组合在一起用的,比如组合“ -al ”就是显示所有文件的详细信
息,包括以“.”开头的隐藏文件
2 、目录切换命令 cd
要想在 Shell 中切换到其它的目录,使用的命令是 cd,命令格式如下:
,我们先使用命令“ cd /usr ”进入到“ /usr ”目录下,然后使用“ ls ”命令
显示“/usr”目录下的所有文件。可以看到,当我们切换到其它目录以后在
符号“ $ ”前面就会以蓝色的字体显示出当前目录名字,
3 、当前路径显示命令 pwd
pwd 命令用来显示当前工作目录的绝对路径,不需要任何的参数
4 、系统信息查看命令 uname
要查看当前系统信息,可以使用命令 uname ,命令格式如下
5 、清屏命令 clear
clear 命令用于清除终端上的所有内容,只留下一行提示符。
6 、切换用户执行身份命令 sudo
Ubuntu(Linux) 是一个允许多用户的操作系统,其中权限最大的就是超级用户 root ,有时候
我们执行一些操作的时候是需要用 root 用户身份才能执行,比如安装软件。通过 sudo 命令可以
使我们暂时将身份切换到 root 用户。当使用 sudo 命令的时候是需要输入密码的,这里要注意输
入密码的时候是没有任何提示的!命令格式如下:
sudo     [选项 ] [ 命令 ]
选项主要参数如下:
-h 显示帮助信息。
-l 列出当前用户可执行与不可执行的命令
-p 改变询问密码的提示符。
假如我们现在要创建一个新的用户 test ,创建新用户的命令为“ adduser ”,创建新用户的权
限只有 root 用户才有,我们在装系统的时候创建的那个用户是没有这个权限的,比如我的
zuozhongkai ”用户。所以创建新用户的话需要使用 sudo ”命令以 root 用户执行“ adduser
这个命令
7 、添加用户命令 adduser
在讲解 sudo 命令的时候我们已经用过命令“ adduser ”,此命令需要 root 身份去运行。命令
格式如下:
adduser [ 参数 ] [ 用户名 ]
常用的参数如下:
-system   添加一个系统用户
-home DI R DIR 表示用户的主目录路径
-uid ID      ID 表示用户的 uid
-ingroup GRP     表示用户所属的组名。
8 、删除用户命令 deluser
前面讲了添加用户的命令,那肯定也有删除用户的命令,删除用户使用命令“ deluser ”,命
令参数如下:
deluser [ 参数 ] [ 用户名 ]
主要参数有:
-system    当用户是一个系统用户的时候才能删除。
-remove-home   删除用户的主目录
-remove-all-files    删除与用户有关的所有文件。
-backup   备份用户信息
同样的,命令“ deluser ”也要使用“ sudo ”来以 root 用户运行,以删除我们前面创建的用
户 test 为例
9 、切换用户命令 su
前面在讲解命令“ sudo ”的时候说过, sudo ”是以 root 用户身份执行一个命令,并没有更
改当前的用户身份,所有需要 root 身份执行的命令都必须在前面加上“ sudo ”。命令“ su ”可以
直接将当前用户切换为 root 用户,切换到 root 用户以后就可以尽情的进行任何操作了!因为你
已经获得了系统最高权限,在 root 用户下,所有的命令都可以无障碍执行,不需要在前面加上
sudo ”,“ su ”命令格式如下:
su      [ 选项 ]     [ 用户名 ]
常用选项参数如下:
-c –command      执行指定的命令,执行完毕以后恢复原用户身份。
-login             改变用户身份,同时改变工作目录和 PATH 环境变量。
-m         改变用户身份的时候不改变环境变量
-h          显示帮助信息
换到 root 用户为例,
先使用命令“ 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 ”,命令格式如下:
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 的使用
有两个网卡: 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 ”命令格式如下:
man [命令名]
比如我们要查看命令“ ifconfig ”的说明,输入“ man ifconfig ”即可
q退出
13 、 系统重启命令 reboot
通过点击 Ubuntu 主界面右上角的齿轮按钮来选择关机或者重启系统,同样的我们也可以
使用 Shell 命令“ reboot ”来重启系统,直接输入命令“reboot”然后点击回车键即可
14 、系统关闭命令 poweroff
使用命令“ reboot ”可以重启系统,使用命令“ poweroff ”就可以关闭系统,在终端中输入
命令“ poweroff ”然后按下回车键即可关闭 Ubuntu 系统,
15 、软件安装命令 install
Ubuntu 下也有其它的软件安
装方法,但是用的最多的就是自行编译源码然后安装,尤其是嵌入式 Linux 开发。命令“ install
格式如下:
复制到目标文件或将多个源文件复制到一个已存在的目录中同时设置其所有权和权限模式。
在第四种形式会创建指定的目录。命令“ install ”通常和命令“ apt-get ”组合在一起使用的,关
于“ apt-get ”命令我们稍后会讲解。

3:APT下载工具 

APT 下载工
具和我们前面讲解的“ install ”命令结合在一起构成了 Ubuntu 下最常用的下载和安装软件方法。

它解决了 Linux 平台下安装软件的一个缺陷,即软件之间相互依赖。

APT 采用的 C/S 模式,也就是客户端 / 服务器模式,我们的 PC 机作为客户端,当需要下载
软件的时候就向服务器请求,因此我们需要知道服务器的地址,也叫做安装源或者更新源。
开系统设置,打开“软件和更新”设置,打开以后如图
APT 工具常用的命令如下: (注意提前联网)
1 、更新本地数据库
如果想查看本地哪些软件可以更新的话可以使用如下命令:
sudo apt-get update
这个命令会访问源地址,并且获取软件列表并保存在本电脑上
2 、检查依赖关系
有时候本地某些软件可能存在依赖关系,所谓依赖关系就是 A 软件依赖于 B 软件。通过如 下命令可以查看依赖关系,如果存在依赖关系的话 APT 会提出解决方案:
sudo apt-get check
3 、软件安装
这个是重点了,安装软件,使用如下命令:
sudo apt-get install package-name
可以看出上述命令是由“ apt-get ”和“ install ”组合在一起的,“ package-name ”就是要安装
的软件名字,“ apt-get ”负责下载软件,“ install ”负责安装软件。比如我们要安装软件 Ubuntu 下 的串口工具“minicom ”,我们就可以使用如下命令:
sudo apt-get install minicom 执行上述命令以后就会自动下载和安装 minicom 软件
安装完成以后我们直 接在终端输入如下命令打开 minicom 这个串口软件:
4 、软件更新
更新软件的话使用命令:
sudoapt-getupgradepackage-name
5 、卸载软件
如果要卸载某个软件的话使用如下命令:
sudoapt-get remove package-name

4:Ubuntu下文本编辑

4.1Gedit编辑器

进行文本编辑是最常用的操作, Windows 下我们会使用记事本来完成,或者其它一些优秀
的文本编辑器,比如 notepad++ Ubuntu 下有一个自带的文本编辑器,那就是 Gedit Gedit
一个窗口式的编辑器,关于 Gedit 的使用前面我们已经讲解了

4.2VI/VIM编辑器

VIM 编辑器
VI 编辑器升级版本, VI/VIM 编辑器都是一种基于指令式的编辑器,不需要鼠标,也没有菜
单,仅仅使用键盘来完成所有的编辑工作。
我们需要先安装 VIM 编辑器,命令如下:

 sudo apt-get install  vim

安装完成以后就可以使用 VIM 编辑器了, VIM 编辑器有 3 种工作模式:输入模式、指令
模式和底行模式,通过切换不同的模式可以完成不同的功能,我们就以编辑一个文本文档为例
讲解 VIM 编辑器的使用。打开终端,输入命令:vitest.txt,
在终端中输入图 2.5.2.1 中所示的命令以后就会创建一个 test.txt 文档,并且用 VIM 打开了,
如图
试着在图 2.5.2.2 中输入数字,发现根本没法输入,这不是因为你的键盘坏了。因为 VIM
默认是以只读模式打开的文档,因此我们要切换到输入模式,切换到输入模式的命令如下:
我们在图 中按下键盘上的“ a ”键,这时候终端左下角会提示
“插入”字样,表示我们进入到了输入模式
从上面的命令可以看出,并没有保存文本的命令,那是因为保存文
档的命令是在底行模式中,我们要先进入到指令模式,进入底行模式的方式是先进入指令模式
下,然后在指令模式下输入“:”进入底行模式,
当进入底行模式以后会在终端的左下角就会出现符号“:”,我们可以在“:”
后面输入命令,常用的命令如下:
x  保存当前文档并且退出。
q   退出。
w    保存文档。
如果我们要退出并保存文本的话需要在“:”底行模式下输入“ wq
在“:”底行模式下输入“ wq ”以后按下回车键就保存 test.txt 并退出 VI/VIM 编辑器,退出
以后我们可以使用命令“ cat ”来查看刚刚新建的test.txt文档的内容
可以看出, test.txt 中的内容就是我们用 VIM 输入的内容,至此我们就完整
的进行了一遍 VI/VIM 创建文档、编辑文档和保存文档。

3:linux文件系统

操作系统的基本功能之一就是文件管理,而文件的管理是由文件系统来完成的。

Linux 支持多种文件系统,本节我们就来讲解Linux 下的文件系统、文件系统类型、文件系统结构和文件系统相关Shell 命令。

3.1linux文件系统简介

操作系统就是处理各种数据的,文件系统的目的就是实现数据的查询和存储,不同的存储设备其物理结构不同,比如管理NAND FLASH的话使用YAFFS文件系统,管理硬盘、SD卡的话就是ext文件系统等等。

3.2文件系统类型

Linux 下的文件系统主要有 ext2 ext3 ext4等文件系统,
Linux 还支持其他的UNIX 文件系统,比如 XFS JFS UFS 等,也支持 Windows FAT 文件系统和网络文件系统NFS 等。
  • ext2是一个非日志文件系统,大多数的Linux发行版都不支持ext2文件系统了
  • ext3是在ext2的基础上发展起来的文件系统,完全兼容ext2文件系统,ext3是一个日志文
  • 件系统,ext3支持大文件,ext3文件系统的特点有如下:

ext4文件系统:

ext4 文件系统是在 ext3 上发展起来的, ext4 相比与 ext3 提供了更佳的性能和可靠性,并且
功能更丰富, ext4 向下兼容 ext3 ext2 ,因此可以将 ext2 ext3 挂载为 ext4
在终端中输入如下命令来查询当前磁盘挂载的啥文件系统:
框起来的就是我们安装 Ubuntu 的这个磁盘,在 Linux 下一切皆为文件,
/dev/sda1 ”就是我们的磁盘分区,可以看出这个磁盘分区类型是 ext4 ,它的挂载点是“ /”,也就是根目录。

3.3linux文件系统结构 

Windows 下的 C 盘根目录就是“ C: , Linux 下的根目录就是“ / ”,你没有看错, Linux
目录就是用“ / ”来表示的,打开 Ubuntu 的文件浏览器,文件浏览器在左侧的导航栏,图标如
Ubuntu 是支持多用户的, Ubuntu 为每个用户创建了一个根目录,比
如我电脑现在登陆的是“ zuozhongkai ”这个用户,因此默认进入的是“ zuozhongkai ”这个用户
的根目录。
  • 用户可以对自己的用户根目录下的文件进行随意的读写操作,但是如果要修改根目录“/
  • 下的文件就会提示没有权限。打开终端以后默认进入的是当前用户根目录,比如我们打开终端
以后输入“ls”命令查看当前目录下有什么文件,结果如图
我们来看一下根目录“/”下都有哪些文件,在终端中输入如下命令:
此外,我们来看一下根目录“/”中的一些重要的文件夹:

4:文件操作命令 

1 、创建新文件命令— touch
touch不仅仅可以用用来创建文本文档,其它类型的文档也可以创建,命令格式如下:
使用 touch 创建文件的时候,如果 [ 文件名 ] 的文件不存在,那就直接创建一个以 [ 文件名 ]
名的文件,如果 [ 文件名 ] 文件存在的话就仅仅修改一下此文件的最后修改日期,常用的命令参
数如下:
进入到用户根目录下,直接使用命令“ cd~ ”即可快速进入用户根目录,进入用户根目录以
后使用 touch 命令创建一个名为 test 的文件,创建过程如图

 

 2、文件夹创建命令—mkdir

既然可以创建文件,那么肯定也可以创建文件夹,创建文件夹使用命令“mkdir”,命令格 式如下:

主要参数如下:
-p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录。
我们在用户根目录下创建两个分别名为“ testdir1 ”和“ testdir2 ”的文件夹,操作如图

3、文件及目录删除命令—rm 

既然有创建文件的命令,那肯定有删除文件的命令,要删除一个文件或者文件夹可以使用
命令“ rm”,此命令可以完成删除一个文件或者多个文件及文件夹,它可以实现递归删除。
对于链接文件,只删除链接,原文件保持不变,所谓的链接文件,其实就是Windows下的快捷方式文件,此命令格式如下:
我们使用 rm 命令来删除前面使用命令“ touch ”创建的test文件,操作过程如图
命令“ rm ”也可以直接删除文件夹,我们可以试一下删除前面创建的 testdir1 文件夹,先直
接使用命令“rmtestdir1”测试一下是否可以删除,结果如图
直接使用命令“ rm ”是无法删除文件夹 ( 目录 ) 的,我们需要加上
参数“ -rf ”,也就是强制递归删除文件夹 ( 目录),操作结果如图

4、文件夹(目录)删除命令—rmdir 

Linux 提供了直接删除文件夹( 目录 ) 的命令— rmdir ,它可以不加任何参数的删除掉指定的文件夹 ( 目录),命令格式如下:

5、文件复制命令—cp 

在Ubuntu下我们也可以通过点击文件右键进行文件的复制和粘贴。
进入上面创建的 test1 文件夹,然后在 test1 文件夹里面创建一个a.c文件,操作过程如图
我们先将上图 a.c 这个文件做个备份,也就是复制到同文件夹 test1 里面,新的文
件命名为 b.c 。然后在将 test1 文件夹中的 a.c b.c 这两个文件都复制到文件夹test2中
我们添加了一些高级使用技巧,首先是拷贝 a.c b.c 文件到 test2 文件夹
中,我们使用了通配符“ * ”, *.c ”就表示 test1 下的所有以“ .c ”结尾的文件,也就是 a.c b.c
../test2 ”中的 ../ ”表示上级目录,因此“ ../test2 ”就是上级目录下的 test2 文件夹。
我们将 test2文件夹复制到同目录下,新拷贝的文件夹命名为test3,操作如图

6、文件移动命令—mv 

有时候我们需要将一个文件或者文件夹移动到另外一个地方去,或者给一个文件或者文件
夹进行重命名,这个时候我们就可以使用命令“ mv ”了,此命令格式如下:

 

使用上面讲解“ cp ”命令的时候创建了三个文件夹,在上面创建的 test1 文件夹里面创建一
c.c 文件,然后将 c.c 这个文件重命名为 d.c 。最后将 d.c 这个文件移动到 test2 文件夹里面,
操作如图 我们再将 test1 中的 d.c 文件移动到test2文件夹里面

文件压缩和解压缩 

1、图形化压缩和解压缩
图形化压缩和解压缩和 Windows 下基本一样,在要压缩或者解压的文件上点击鼠标右键,
然后选择要进行的操作,我们先讲解一下如何进行文件的压缩。首先找到要压缩的文件,然后在要压缩的文件上点击鼠标右键,选择“压缩”选项
可以选择的压缩格式还是有很多的,挑选一个格式进行压缩,比
如我选择的“.zip”这个格式,压缩完成以后如图
2、命令行进行文件的压缩和解压缩
我们后面的开发中所有涉及到压缩和解压缩的操作都是在命令行下完成的。命令行下进行压缩和解压缩常用的命令有三个: zip unzip tar
  • 3.命令zip
  • zip 命令看名字就知道是针对 .zip 文件的,用于将一个或者多个文件压缩成一个 .zip 结尾的
    文件,命令格式如下:
    这里我们使用命令“zip”对test2文件夹进行压缩,操作如图
使用 zip 命令进行 test2 文件夹的压缩,我们使用的命令如下:
zip -rv test2.zip test2
-rv 表示递归压缩并且显示压缩命令执行过程。
4、命令unzip

对上面压缩的test2.zip文件使用unzip命令进行解压缩,操作如图

5、命令tar

我们前面讲的 zip unzip 这两个是命令只适用于 .zip 格式的压缩和解压,其它压缩格式就
用不了了,比如 Linux 下最常用的 .bz2 .gz 这两种压缩格式。其它格式的压缩和解压使用命令
tar ,tar将压缩和解压缩集合在一起,使用不同的参数即可,命令格式如下:

使用 tar 命令来进行 .zip 和.gz格式的文件压缩,操作如图
-vcjf 表示创建 bz2 格式的压缩文件, -vczf 表示创建 .gz 格式的压缩文
件。学习了如何使用 tar 命令来完成压缩
来学习使用tar命令完成文件的解压,操作如图
上述两行命令中, -vxjf 用来完成 .bz2 格式压缩文件的解压, -vxzf 用来完成 .gz 格式压缩文
件的解压。关于 Ubuntu 下的命令行压缩和解压缩就讲解到这里,重点是 tar 命令,要熟练掌握
使用 tar 命令来完成 .bz2 .gz 格式的文件压缩和解压缩。

文件查询和搜索 

1、命令find
find 命令的参数有很多,常用的就这些,关于其它的参数大家可以自行上网查找,我们来
看一下如何使用 find 命令进行文件搜索,我们搜索目录 /etc 中以“ vim ”开头的文件为例,操
作如图
2 、命令 grep
grep 命令用于查找包含指定关键字的文件,如果发现某个文件的内容包含所指
定的关键字, grep 命令就会把包含指定关键字的这一行标记出来,grep命令格式如下: 我们在目录 /usr 下递归查找包含字符“Ubuntu”的文件,操作如图

文件类型 

这里的文件类型不是说这个文件是音乐文件还是文本文件,在用户根目录下使用命令“ ls
-l”来查看用户根目录下所有文件的详细信息,如图
每个文件的详细信息占一行,每行最前面的符号标记了当前文件类型,
比如 test1 的第一个字符是“ d ”, test1.tar.bz2 文件第一个字符是“ - ”。这些字符表示的文件类
型如下:

5:Linux用户权限管理 

1:Ubuntu用户系统

Ubuntu 是一个多用户系统,我们可以给不同的使用者创建不同的用户账号,每个用户使用
各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的访问
权限,另一方面是为用户提供安全性保护。
当我们创建好账号以后,系统会
在目录/home下以该用户名创建一个文件夹,所有与该用户有关的文件都会被存储在这个文件文件夹中
  • 装系统的时候创建的用户其权限比后面创建的用户大一点,但是没有root用户权限大,
  • Ubuntu下用户类型分为以下3类:
●初次创建的用户,此用户可以完成比普通用户更多的功能。
root 用户,系统管理员,系统中的玉皇大帝,拥有至高无上的权利。
●普通用户,安装完操作系统以后被创建的用户。
以上三种用户,每个用户都有一个 ID 号,称为 UID ,操作系统通过 UID 来识别是哪个用
户,用户相关信息可以在文件/etc/passwd中查看到

权限管理:

在使用 Windows 的时候我们很少接触到用户权限,最多就是打开某个软件出问题的时候会
选择以“管理员身份”打开。
对于一个文件通常有三种权限:读 (r) 、写 (w) 和执行 (x) ,使用命令“ ls-l ”可以查看某个目
录下所有文件的权限信息,如图

 

Linux磁盘管理基本概念 

Linux 的磁盘管理体系和 Windows 有很大的区别,在 Windows 下经常会遇到“分区”这个
概念,在 Linux 中一般不叫“分区”而叫“挂载点”。“挂载点”就是将一个硬盘的一部分做
成文件夹的形式,这个文件夹的名字就是“挂载点”,不管在哪个发行版的 Linux 中,用户是绝
对看到不到 C 盘、 D 盘这样的概念的,只能看到以文件夹形式存在的“挂载点” .
文件 /etc/fstab 详细的记录了Ubuntu中硬盘分区的情况,如图
有一行“ /wason/dev/sda1duringinstallation ”,意思是根目录“ / ”是在 /dev/sda1
上的,其中“ / ”是挂载点,“ /dev/sda1 ”就是我们装 Ubuntu 系统的硬盘。由于我们的系统是安
装在虚拟机中的,因此图 2.8.1.1 没有出现实际的硬盘。可以通过如下命令查看当前系统中的磁盘:
打印出所有以/dev/sd开头的设备文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/252847.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Python + 百度翻译API 自动大批量免费翻译Excel文件中的外语内容

手里有一个Excel文件,包括了大量的亚马逊德语搜索词(关键词),每个单元格1个,需要翻译为中文。但是文件大小超过了10M,不能使用百度或Google免费的文档功能,如果手工一个个的翻译然后粘贴又太麻烦,于是想到用Python加免费翻译API完成。 一、openpyxl库 用Python编辑处…

洛谷_P1464 Function_python写法

目录 1.错误解法 2.学习记忆化搜索算法 2.1简介 2.2案例学习 3.解法 4.总结 1.错误解法 a 0 b 0 c 0 def w(a,b,c):if a<0 or b<0 or c<0:return 1elif a>20 or b>20 or c>20:return w(20,20,20)elif a<b and b<c:return w(a-1,b,c) w(a-1,…

1、将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践

将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践 希望将 ChatGPT 集成到您的数据科学工作流程中吗?这是一个利用 ChatGPT 进行数据科学的提示的实践。 ChatGPT、其继任者 GPT-4 及其开源替代品非常成功。开发人员和数据科学家都希望提高工作效率,并使用 ChatGPT 来简…

LRU缓存

有人从网络读数据&#xff0c;有人从磁盘读数据&#xff0c;机智的人懂得合理利用缓存加速数据的读取效率&#xff0c;提升程序的性能&#xff0c;搏得上司的赏识&#xff0c;赢得白富美的青睐&#xff0c;进一步走向人生巅峰~ LRU假说 LRU缓存&#xff08;Least Recently Used…

2023 巅峰之作 | AIGC、AGI、GhatGPT、人工智能大语言模型的崛起与挑战

文章目录 01 《ChatGPT 驱动软件开发》内容简介 02 《ChatGPT原理与实战》内容简介 03 《神经网络与深度学习》04 《AIGC重塑教育》内容简介 05 《通用人工智能》目  录 2023年是人工智能大语言模型大爆发的一年&#xff0c;一些概念和英文缩写也在这一年里集中出现&#xff…

12.0 Zookeeper 数据同步流程

在 Zookeeper 中&#xff0c;主要依赖 ZAB 协议来实现分布式数据一致性。 ZAB 协议分为两部分&#xff1a; 消息广播崩溃恢复 消息广播 Zookeeper 使用单一的主进程 Leader 来接收和处理客户端所有事务请求&#xff0c;并采用 ZAB 协议的原子广播协议&#xff0c;将事务请求…

10英寸安卓车载平板电脑丨ONERugged车载工业平板:解决农业工作效率

农业是人类社会的基石之一&#xff0c;而农业工作效率的提升一直是农民和农业专业人士关注的重要议题。随着技术的不断进步&#xff0c;车载工业平板成为了解决农业工作效率的创新解决方案。本文将探讨车载工业平板如何为农业带来巨大的改变&#xff0c;提高农民的工作效率和农…

JavaEE企业级应用软件开发—Spring框架入门学习笔记(一)

一、认识框架 实际开发中&#xff0c;随着业务的发展&#xff0c;软件系统变得越来越复杂&#xff0c;如果所有的软件都从底层功能开始开发&#xff0c;那将是一个漫长而繁琐的过程。此外&#xff0c;团队协作开发时&#xff0c;由于没有统一的调用规范&#xff0c;系统会出现大…

幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤

幻兽帕鲁怎么样 幻兽帕鲁是一款集合了多种游戏元素的游戏&#xff0c;它巧妙地融合了《方舟:生存进化》的野外生存挑战、《荒野之息》的开放世界探索、《魔兽世界》的多元角色互动以及宝可梦的精灵捕捉与培养等经典游戏元素。游戏的核心系统是「帕鲁」捕获&#xff0c;你可以让…

MySQL-存储引擎

文章目录 1. MySQL的体系结构2. 存储引擎2.1 存储引擎概述2.2 存储引擎的类型及选择方案2.3 操作存储引擎2.4 InnoDB存储引擎2.4.1 逻辑存储结构2.4.2 架构2.4.2.1 内存结构2.4.2.2 磁盘结构2.4.2.3 后台线程 2.4.3 事务2.4.3.1 Undo Log&#xff08;原子性&#xff09;2.4.3.2…

C语言其他类型的数组

1.字符数组 概念&#xff1a;专门存放字符的数组&#xff0c;称为字符数组初始化与元素引用&#xff1a; char s1[5] {a, b, c, d, e}; // s1存放的是字符序列&#xff0c;非字符串 char s2[6] {a, b, c, d, e, \0}; // s2存放了一个字符串char s[6] {"abcde&q…

【证书管理】实验报告

证书管理实验 【实验环境】 ISES客户端 【实验步骤】 查看证书 查看证书详细信息 选择任意证书状态&#xff0c;在下方“证书列表”中出现符合要求的所有证书。在“证书列表”中点击要查看证书&#xff0c;在右侧“证书详细信息”栏出现被选证书信息。 上述操作如图1.2.…

Maven详细配置整理

Maven的作用 在Javaweb开发中&#xff0c;需要使用大量的jar包&#xff0c;需要手动去导入&#xff0c;Maven能够自动帮我们导入和配置这个jar包。 对于新手Maven就是用来方便导入jar包的&#xff01; Maven的核心思想&#xff1a;约定大于配置 有约束&#xff0c;不要去违…

Jmeter 01 -概述线程组

1、Jmeter:概述 1.1 是什么&#xff1f; Jmeter是Apache公司使用Java 开发的一款测试工具 1.2 为什么&#xff1f; 高效、功能强大 模拟一些高并发或多次循环等特殊场景 1.3 怎么用&#xff1f; 下载安装 1、下载jmeter&#xff0c;解压缩2、安装Java环境&#xff08;jmet…

力扣53. 最大子数组和(滑动窗口,动态规划)

Problem: 53. 最大子数组和 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 思路1:滑动窗口 1.为求出最大连续的子数组和,我们逻辑上假设有一个窗口在原数组上滑动, 欲求出最大连续,则需要保证窗口中的所有元素和最起码大于0; 2.即当当前窗口中的元素值的和小于0…

从零开始手写mmo游戏从框架到爆炸(六)— 消息处理工厂

就好像门牌号一样&#xff0c;我们需要把消息路由到对应的楼栋和楼层&#xff0c;总不能像菜鸟一样让大家都来自己找数据吧。 首先这里我们参考了rabbitmq中的topic与tag模型&#xff0c;topic对应类&#xff0c;tag对应方法。 新增一个模块&#xff0c;专门记录路由eternity-…

深入探索 Stable Diffusion:AI图像创新的新纪元

深入探索 Stable Diffusion&#xff1a;AI图像创新的新纪元 介绍 Stable Diffusion 的核心功能和应用场景Stable Diffusion 架构解析深入 Stable Diffusion 的关键组件变分自编码器&#xff08;VAE&#xff09;生成对抗网络&#xff08;GAN&#xff09;注意力机制优化算法数据集…

泛型、Trait 和生命周期(上)

目录 1、提取函数来减少重复 2、在函数定义中使用泛型 3、结构体定义中的泛型 4、枚举定义中的泛型 5、方法定义中的泛型 6、泛型代码的性能 每一门编程语言都有高效处理重复概念的工具。在 Rust 中其工具之一就是 泛型&#xff08;generics&#xff09;。泛型是具体类型…

GEE Colab——如何利用Matplotlib在colab中进行图形制作

在colab中绘制图表 笔记本的一个常见用途是使用图表进行数据可视化。Colaboratory 提供多种图表工具作为 Python 导入,让这一工作变得简单。 Matplotlib Matplotlib 是最常用的图表工具包,详情请查看其文档,并通过示例获得灵感。 线性图 线性图是一种常见的图表类型,用…

C++迷宫游戏详解

个人主页&#xff1a;[PingdiGuo_guo] 收录专栏&#xff1a;[C干货专栏] 大家好呀&#xff0c;我是PingdiGuo_guo&#xff0c;今天我们来学习用C实现一个迷宫游戏。 目录 1.迷宫的具体步骤 1.1.迷宫的初始化 1.2.寻路算法 1.DFS算法 2.BFS算法 1.3.移动 2.总结 C迷宫游…