admin 管理员组

文章数量: 887031

2024.7.15

引言

针对嵌入式进行程序开发

嵌入式系统

专业定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能 可靠性 成本 体积 功耗等严格要求的专用计算机系统。

简单理解:除pc外,一切对控制类的硬件设备开发都可以称为嵌入式开发,嵌入式系统是要包含一个可用于变成控制的开发板(51,stm32)及外围器件(stm32小车蓝牙 避障等模块)组成。

课程内容

嵌入式的Linux基础

Linux基础指令

嵌入式c语言编程:l

基础:变量 数据类型 运算符 流程控制

进阶:数组 函数

核心:指针 构造类型 文件流 预处理

高级:数据结构与算法(单向链表 双向链表 二叉树 栈 队列) 工程管理 工程调试

嵌入式linux应用开发

Linux系统IO

Linux多进程/多线程

Linux网络编程

Linux数据库编程

嵌入式linux高级开发

C++:

·面向对象思想

·面向对象三大特征(封装、继承、多态)

·泛型编程

·Stl编程

·io流,异常处理

QT GUI编程

·信号与槽机制

·基础组件、布局

·主窗口设计

·对话框

·网络数据库编程

STM32开发

·基础(标准外设)

GPIO 中断 定时器 pwm

·高级

传感器、总线、实时系统

嵌入式linux驱动开发(扩展)

内核架构、内核剪裁、内核编译、字符设备、块设备

为什么选择linux

Linux是一个操作系统,开源的、免费的、可裁剪的,是一个基于文件的操作系统,所有的一切都是针对文件进行。在嵌入式开发中,扮演了非常重要的角色

操作系统就是运行在系统平台上的一套软件,可向应用程序提供访问硬件的接口,并客人直接操作硬件的运行。应用程序时运行在操作系统上的。

为什么选择linux?

主要时由嵌入式产品特点来决定

·内部时基于一个控制器

·体积一般比较小(决定了嵌入式,它的硬件资源一般比较紧张)

·对功耗有要求

·特定的应用

·越来越智慧化

学习方式

  1. 花时间和精力
  2. 时间安排
  1. 上课要认真听讲,课后多做练习,每天的老师的代码至少敲2-3遍
  2. 主动学习,利用网络资源,利用ai大模型,多思考多练习。

共享文件

设置虚拟机ubuntu和windows之间文件的共享

·第一步在window电脑非系统盘更目录下的YQ文件夹下新建share文件夹

第二步在虚拟机上配置共享文件夹

·第三步在ubuntu的终端,通过命令访问共享文件夹

Linux指令起步

·yueqian@yueiqan-vm:~$

·yueqian:当前登录的用户明

·@:分隔符

·yueqian-vm:主机名

··~:当前登录用户的家路径

·pwd:linux命令,用来查看当前所在的绝对路径,linux绝对路径是从/开始的,/称之为根路径

问题:~等价于/home/yueqian

·cd:切换目录

·ls查找,获取到的时缩略形式的文件或者文件夹

·ls -l:查看,获取到的是详细信息,其中开头位置的d代表文件夹,linux称之为目录。

2024.7.16

/:根目录

/bin:主要存放系统的普通指令

/boot:主要存放系统的引导程序

/dev:存放硬件设备对应的文件(二阶段Linux应用开发起就是就访问这里的文件)

/etc:存放系统和应用程序的配置文件

/home:家目录,存放当前系统下所有用户对应的目录

/lib:存放系统和应用程序依赖的库文件,有系统库,也有第三方库

/pros:存放系统运行时的运行信息

/usr:是软件的默认安装路径

/var:存放缓存,备份文件

/cdrom:光驱

/mnt:用于系统文件系统的挂在目录

/sbin:用于存放特权指令

路径的概念

绝对路径:以根目录(/)为参考点描述的路径,称之为绝对路径。

举例:cd /home/yueqian – 任何地方都可以切换

相对路径:以当前目录(./)为参考点描述的路径,称之为相对路径

举例:cd /home – 绝对路径

cd ./yueqian – 相对路径,必须是当前路径才可以切换,不可任意切换

cd yueqian – 相对路径,另一种写法

文件类型

说明:

d:目录(文件夹)

-:文件

l:快捷方式

c:字符设备文件

b:块设备文件(大容量磁盘-存储设备)

s:表示套接字文件

p:表示管道文件

通配符

*:匹配任意一个或多个字符

?:匹配任意单个字符

[..]:匹配方括号给定的范围中的任意一个字符

目录操作

指令

语法:

pwd:查看当前目录的路径·(绝对路径)

ls:显示指定路径(默认当前路径)下的文件或者目录

  -a:显示所有(包含隐藏文件)文件或者目录

  -l:显示所有文件或目录的详细信息列表

  -r:将文件以相反次序显示(原定依照英文字母次序)

  -t:将文件以厂家时间的先后次序

说明:多个参数是可以共同出现的,如:

ls -t -l -r == ls -tlr

cd:切换目录

格式:cd 目录,cd后不跟文件路径,应该跟文件夹路径

cd中的特殊的写法:

cd ~:切换到当前家目录下的用户目录

cd /:切换到根目录

cd -:返回上一次的工作目录

cd  ./:切换到当前目录

cd ../:回退到上一级目录

cd ../..:回退到上上级目录

mkdir:创建目录

语法:mkdir 文件夹路径(目录·)

参数:

-p:可以创建多层文件夹

语法:mkdir -p

touch:创建文件

语法:touch 文件路径

rmdir:删除空目录,仅限与删除空目录

语法:rmdir 空目录路径

rm:删除文件(递归删除时可以删除文件夹)

语法:rm[选项] 目录/文件路径

选项:

  -i:给出交互提示,可以输入yes或者no

  -f:强制删除,不提示

-r:递归删除

cp:复制文件或文件夹(也就是windows中复制家粘贴)

语法:cp选项 被复制的目录/文件路径 目的地的路径

mv:移动文件(重命名文件)

语法:mv被移动的文件路径 目的地的文件路径/目录

说明:被移动的文件名或者目的地的文件名不一行字,相当于重命名了

文件操作

cat:查看文件内容

语法:cat 文件路径

cat [选项] 文件路径

选项:

-n:显示行号

more:分页查看文件内容

语法:more 文件路径

操作:

空格键:向下翻一页

回车键:向下翻一行

quit(Q/q):退出

less:分页查看内容

语法:less 文件路径

语法:less [选项] 文件路径

选项:-M:显示当前行的范围

操作:

空格键:向下翻一页

B/b键:向上翻一页

quit(Q/q):退出

方向键上下:向上向下翻一行

head:从文件头开始看指定行的内容(默认10行)

语法:head 文件路径

语法:head [选项] 文件路径

选项:

  -n:从头开始显示n行内容(识别换行符)

tail:查看文件的尾部内容(默认10行)

语法:tail 文件路径

语法:tail [选项] 文件路径

选项:

  -n:从尾开始显示n行内容(识别换行符)

grep:搜索文件内容,在文件中查找指定的字符序列(字符串)

语法:grep [选项] 要查找的字符串 文件路径

选项:

-n:显示行号

-c:统计搜索到多少行

-i:忽略大小写搜索

find:查找文件或者目录(递归查找),从硬盘查找,准确性高,性能低

语法:find 检索路径 [选项] 要查找的文件名称

选项:

-name:按照文件名查找(全匹配)find ./ -name main.c

-iname:按文件名查找,忽略大小写

-size:按文件大小查找

-type:按文件

locate:快速查找文件或者目录,从数据库查找,准确性低,性能高

该指令从文件系统的数据库中查找,缺点是新创建的文件没有在数据库中建立索引,用该指令找不到

语法:locate 文件名/目录名

选项:

     -c:统计

     -i:忽略大小写

注意:默认情况下updatedb每天更新一次,我们可以手动更新。指令:updatedb

Which:快速查找指令cp,mv…

格式:which 指令名称

echo:输出字符串到指定设备

语法:echo 输出的字符串

举例:echo “fengkai is good” > fk.txt 将“fengkai is good”输出到名称为fk.txt的文件中,会自动创建

举例:echo “fengkai is good” 》 fk.txt将“fengkai is good”追加到fk.txt文件中

|(管道):将前一个指令执行的结果作为后一个指令执行的条件

2024.7.17

快捷键

Ctrl+alt+t:打开linux终端(命令行工具)

Ctrl+shift++:对终端显示文本进行放大

Ctrl+-:缩小

Clear/ctrl+L:对终端当前屏幕进行清空清屏

方向键上下:在终端从历史命令中获取历史命令

Tab:对命令行中的命令进行补全,这里要注意,如果前缀在同级中有多个对应文件或者文件夹,会失效。

Ctrl+c:强制退回到命令行状态

存储单位换算

常用磁盘容量单位

最小内存是以字节为单位

Byte:1byte=8bit

Kb:1kb=1024b

Mb:1mb=1024kb

Gb:1gb=1024mb

Tb:1tb=1024gb

Pb:1pb=1024tb

三种方式学习linux指令

man [cp]官方帮助文档,不需要借助外网,但是是纯英文的

[cp]—help 中文翻译版api文件,不需要借助外网,大部分内容是中文的

菜鸟教程:需要外网https://www.runoob/

其他:

  文心一言:百度大模型。通义灵码/天问:阿里大模型。昆仑天工:昆仑大模型。

用户和用户组

概念:

需要权限支持的角色:当前用户 当前用户组 其他用户组

Linux中的权限:读 写 执行(不是所有文件都需要执行权限,仅限与应用程序)

普通用户和最高管理员

普通用户:安装系统时我们创建的用户,这个可以由管理员来分配,如:vc

最高管理员:root,Linux系统内置,当第一次使用root用户需要修改密码。

修改最高管理员root用户的密码:

sudo password – 然后按提示输入密码即可

注意:终端输入密码没有提示,如果输入错误按回车会提示重新输入

普通用户和最高管理员切换

普通->root

Sudo -I – 没有设置密码,使用此进入

Su root – 设置密码之后,可以通过最高命令进入

Root->sudo

Su 用户名

用户相关操作

添加新用户

语法 useradd [选项] 用户名

eg:useradd -d /home/lucy -m lucy;创建用户lucy,并在家目录下为ta分配一个同名目录。

注意:如果在新建用户的时候没有指定用户组,就会创建一个和用户名相同的组名,并让新用户属于这个组。

例如

lucy:lucy

eg:useradd -d /home/peter -mg lucy peter

查看用户所属的组

语法:[sudo] groups 用户名

注意sudo是在普通用户中,临时提升权限至root

删除用户

语法:userdel [选项] 用户名

Eg:userdel -rf peter;删除peter用户,并在不提示任何信息的情况下递归删除peter目录

给用户添加口令(密码)

语法:passwd [选项] 用户名

选项:

  -l:锁定口令,也就是禁用账号

  -u:口令解锁

  -d:是账号无口令

-e:强制用户下次登录时修改口令

说明:

Root用户下,给lucy设置密码:

Passwd lucy  --对密码复杂度没有要求

普通用户下,给lucy设置面膜;

Passwd  --对密码复杂度有要求

修改用户

语法: usermod [选项] 用户名选项:

-c :备注,修改用户账号的备注文字

-g :用户组,修改用户所属的用户组

-G :群组,修改用户所属的附加群组

-s :shell,修改用户登入后所使用的shell

-u :uid,修改用户ID

eg:

usermod -g root lucy 将lucy用户所属的组改成root组

eg:

usermod -g lucy -G root lucy 将lucy用户所属的组改成lucy组,群组改成root,可以有多个群 组,用 , 分割

用户组相关

添加用户组

语法:groupadd [选项] 组名

选项:

  -g:GID,指定新用户组的组标识(唯一编号),如果不指定,系统会自动编号

Eg:groupadd workgroup创建一个工作组

查看所有用户组

语法:cat /etc/group

语法:cat /etc/gshadow

删除用户组

语法:groupdel [选项] 组名

Eg:groupdel workgroup

修改用户组

语法:groupmod [选项] 新组名 旧组名

选项:

  -g:gid为新的组指定唯一的标识

  -o:和-g选项同时使用时允许用户组的新的gid和系统已有用户组的gid相同

  -n:新用户组将用户组的名字改为新名字

权限管理

修改目录的拥有者

解释:目录也就是文件夹,目录的拥有者也就是目录的创作者

语法:chown [选项目] 用户名 或者二;组名 文件/目录的路径

选项:-c:显示更改部分的信息

-f:忽略错误信息

-h:修复符号链接

-R处理指定目录以及其子目录中的所有文件

-v:显示详细的处理消息

Eg:chown lucy /home/vc/demo.c—修改demo01.c文件的拥有者为lucy

Eg:chown :root /home/vc/demo01.c—修改demo01.c文件的拥有者为root组

修改文件或者文件夹的可读可写可执行权限

语法:chmod [选项] 权限 文件或目录的路径

选项:

  -c:显示更改部分

-f:忽略提示信息

-R:递归修改指定目录及其子目录中的所有文件

  方式1:文字设定法

语法:chmod [who] [+,-,=] 权限名 文件名或者目录的路径

格式说明:

who可选:

  a:all所有用户

  u:user当前用户

g:group当前用户所在组

o:其他用户或者用户组

          +:增加权限

          -:删除权限

=:设置权限

权限名:

  r:可选

  w:可写

  x:可执行

  -:不可读,写,执行

Eg:chmod u=rwx,g=rx,o=- demo01.c 将当前路径下的demo01.c文件的拥有者权限设置为可读写执行,同组用户可读可执行

 方式2:数字设定法

语法:chomd 权限数字 文件或者目录的路径

格式说明:

  权限数字:

r:4

w:2

x:1

注意:我们的权限数字表示:777三个数字,第一个数字代表当前用户,第二个数字代表当前用户组,第三个数字代表其他用户组,每个数字都是权限相加的结果。

2024.7.18

权限说明

权限的类型

权限的数值

普通文件

目录(文件夹)

r:可读

4

cat,less,more等

ls

w:可写

2

>(覆盖插入),>>(追加插入),touch,rm

mkdir,rmdir,rm

x:可执行

1

./文件名(执行文件)

cd

-:无权限

0

压缩与解压缩

压缩指令:gzip

说明:linux压缩文件为.gz(gzip)

格式 语法: gzip [选项] 文件名/目录

选项: -r :可以将目录下的文件递归压缩

-l :显示已经压缩文件的压缩信息

-d :解压缩

eg: gzip aa.c 压缩aa.c文件

gzip -d aa.c.gz 解压aa.c.gz

gzip -r a 递归压缩a文件夹,将a文件夹中的所有文件进行压缩,文件夹没有变化

gzip -dr a递归解压a文件夹中所有的文件

注意: gunzip aa.c.gz 也可以解压扩展名是.gz的文件

注意:gzip 只针对文件,文件夹无变化

更高的压缩效率指令:bzip2

说明:压缩文件为.bz2的格式

语法: bzip2 [选项] 文件名

选项: -k :保留源文件

-d :解压缩

-f :覆盖解压(文件夹中有同名文件,用解压出来的文件覆盖同名文件)

注意: bunzip2 -f a.txt.bz2 也可以解压缩扩展名是.bz2的文件

总结

gzip和bzip2的区别:

1. gzip可以压缩文件夹中的所有文件,bzip2不可以

2. 与gzip相比,bzip2有更高的压缩效率

gzip和bzip2压缩指令不能混用,主要通过压缩文件的扩展名区分

压缩文件或文件夹zip

说明:文件的后缀名是.zip

语法: zip [选项] 压缩后的文件名 文件名/目录

选项:-r :递归压缩,用于对文件夹的操作

注.意:不带选项会保留源文件

eg: zip love.zip love2.txt 压缩love2.txt

unzip love.zip 解压缩love.zip

zip a.zip a 压缩目录a

unzip a.zip 解压缩a.zip

zip -r a2.zip a 递归压缩目录a

unzip -r a2.zip 递归解压缩a2.zip

zip ./my/love.zip love2.txt 压缩文件到./my目录下

注意: 当解压缩时,如果有同名文件或同名文件夹,会有提示让用户选择覆盖方式: y :覆盖文件

n :不覆盖文件

A :覆盖文件夹

N :不覆盖文件夹

r :重命名

打包并压缩指令:tar

语法: tar [选项] 产生的文件名称 被压缩的文件或文件夹列表(用空格隔开)

 选项: -c :打包

-v :显示命令执行的过程

-f :用于指定打包文件的名称

-z :打包时压缩/解包同时解压缩,所以操作的文件扩展名为 .gz (gz说明是用的gzip)

 -x :解包

-j :与-z类似,不过使用的是bzip2指令,扩展名为 .bz2

eg: tar -cvf love.tar love2.txt love.txt 打包love2.txt,love.txt文件并压缩到love.tar中

tar -xvf love.tar 解包love.tar中的love2.txt和love.txt

总结: 1. *.tar :用 tar -xvf 解包

2. *.gz : 用 gzip -d 解压缩

3. *.tar.gz :和 *.tgz 用 tar -xvzf 解压

 4. *.bz2 :用 bzip2 -d 解压

5. *.tar.bz2 :用 tar -xvjf 解包

6. *.zip :用 unzip 解压

Vim文本编辑

Vim定义

Vim是Linux系统中一个使用非常普通,而且功能强大的文本编辑器(vi的升级版本)

Vim安装

本地安装(dpkg -i)

前提:系统中要存在下载好的安装包,并且可能还需要安装包的依赖包。

在线安装

语法:

Sudo apt-get update//更新软件源

Sudo apt-get install vim//安装vim

卸载程序

语法:sudo apt-get remove vim//这个命令是卸载程序,vim也可以替换为别的程序名

Vim的使用

启动

语法:vim

启动vim后,则vim处于命令模式:

  1. 系统命令行输入vim,就可以启动vim

在vim中导入代编集的文件

:r待操作文件

  1. 系统命令行输入vim待编辑文件,启动同时打开待编辑文件

说明:默认打开文件后,光标处于文件开头(第一行第一列)

  1. 系统命令行输入vim待编译文件,启动vim同时打开待编译文件

说明:默认打开文件后,光标处于文件末尾(最后一行最后一列)

  1. 系统命令行输入vim待编译文件,启动vim同时打开待编译文件

说明:默认打开文件.,光标处于指定行n(指定第n行第一轮)

退出:

  1. 在命令模式下:ZZ(大小写)
  2. :q 文件不更改直接退出
  3. :wq 保存退出
  4. :q! 强制退出,不保存

注意: :英文状态下输入

Vim的工作模式

1. 命令模式:用户输入Vim时当做指令处理的

2. 编辑(插入)模式:用户输入Vim时字符要写入文件中

3. 末行模式:文件保存和退出Vim

命令模式下输入的快捷键解释:

 i ——在目前光标前插入所要输入之文字。

a ——在目前光标后开始输入文字。

 o ——在当前光标所在行下新增一空行,并从行首开始输入文字。

I ——插于行首。

A ——插于行尾。

 O ——在当前光标所在行上新增一空行,并从行首开始输入文字。

Vim的常用命令

任何移动

gg:移动光标第一行

G:移动光标到最后一行

;n:移动到第n行,写法:;6移动光标到第6行

列间移动

$:移动光标到当前行的行尾

0:移动到光标到当前行的行首

删除:

列(字符)删除

x:删除当前光标所在处一个字符

nx:删除当前光标所在处以及后面n个字符。写法:6x删除从当前光标开始6个字符

D:删除当前光标至行尾

X:删除当前光标的左边一个字符

行删除

dd:删除当前光标所在行

ndd;删除当前光标所在后面n行

dG;删除当前光标所在行至文件末尾

;n1,n2d:删除n1刀n2行,写法1,12d表示删除1-12行

拷贝

列(字符)拷贝

多按几次esc,然后按v,进入可视方式,移动方向键选中文本,然后按y,就拷贝完成

行拷贝

yy:复制当前行

nyy:复制当前行以下n行

n1,n2 copy dn 复制n1到n2行数据行粘贴到dn行

粘贴

P:如果拷贝的是整行,那么粘贴在当前行下。如果拷贝的是列(字符),粘贴在当前的光标之后

P:如果拷贝的是整行,粘贴在当前行上。如果拷贝的是列(字符),粘贴在当前的光标之前

撤销

u:撤销上一步操作,相当于crtl+z

U:撤销当前行中的所有操作

Rtrl-r:重做撤销的操作

字符替换

/string:从光标所在处向后寻找“string”字符串,按n可往下找,按N可往上查找

?string:从光标所在处向前寻找“string”字符串,按N可向下找,按n向上找

:set ic:查找时忽略大小写,举例,查找f,匹配f+F

:set noic:查找时对大小写敏感,举例,查找f,匹配f

请注意:set ic和:set noic必须要在文本查查找之前进行

字符替换 :

%s /old/new :将全文每一行第一个匹配项old 替换成new。

:%s /old/new/g :全文替换old为new

 :n1,n2s /old/new/g :在n1~n2行间替换old为new

其他常用指令

:set nu:设置行号

:set nonu:设置取消行号

Ctrl+g:显示文件名

2024.7.19

以下几个位置不允许创建文件和文件夹

/整改linux的核心目录,如果开放写的权限,会危害到系统本身

/home这里管理家目录,也就是用户对应的目录,如果开放写的权限,会危害到用户数据

/mnt/hgfs这个时挂在目录,以后所有的共享和外设都是挂载在这里

虚拟网络模式

1桥接模式

和windows共享一个网络,并且能够与windows系统一样可以连接到互联网

说明:虚拟机类似于一台电脑连接到了路由器

优点:网络稍快

缺点:占用路由器的ip,如果路由器的载荷过大,网络会掉线

2.nat模式

和windows的网段不一样,时由虚拟网卡分配网段和ip,并且能够与windows系统一样可以连接到互联网

优点:不占用路由器的ip  

缺点:网络会稍慢

3.仅主机模式

和windows网段不一样,不能连接网络

优点:数据安全

缺点:不能访问互联网

网络相关

Ping

语法:ping [选项] 目标ip/目标网址

说明:测试网络是否畅通

执行者:所有用户

选项:

-c n:显示n次应答后停止

Eg:

ping 192.168.12.13 测试ip

ping http://www.baidu

ping -c 5 192.168.12.13

Ifconfig

语法:

Ifconfig [网络接口名] [设置选项]

说明:查看及临时配置网络接口(所谓的临时配置网络,也就是一关机就失效了,下次开机重新配置)

执行者:若配置网络接口则需要root权限

选项:

此指令常用来查看本机IP,如果用ifconfig来配置接口,可能需要root权限

Eg:

Ifconfig 查看本机所有网络接口信息

Ifconfig eth0 查看eth0的接口信息

Sudo ifconfig eth0 192.168.12.12 将eth0的ip临时设置为192.168.12.12

Netstat

Netstat [选项]

说明:查看网络状态信息

执行者:所有用户

选项:-l:只显示监听状态的套接字

-t:显示tcp协议的套接字

-a:显示所有套接字

-u:显示udp协议的套接字

-n:显示数字形式的ip

进程相关指令

ps

语法:ps [选项]

说明:查看系统运行的进程

执行者:所有用户

选项:-a:显示所有进程

-x:通常与a一起使用,可列出较完整的信息

-u:用户为主的进程状态

Eg:

ps -aux BSD语法格式

ps -ef 标准语法格式

kill

语法:kill [选项] 进程ID

说明:根据进程ID终止进程

选项:-9 强制终止进程进行

Eg:

Kill -9 69487 终止进程id为69487的进程

Killall

语法:killall [选项] 进程名

说明:根据进程名终止进程

执行者:所有用户

选项:-9 强制终止进程进行

Eg:

Killall -9 69487 终止进程名为69487的进程

磁盘相关指令

Du

语法:du [选项] [文件/目录]

说明:显示某文件和目的磁盘使用空间大小

执行这:所有用户

选项:-b:以byte为单位显示大小

-k:以kb为单位显示大小

-m:以mb为单位显示大小

-h:以-b -k -m显示,最常用的选项

Eg

du ~h ~/mywork

df

语法:df [选项] [文件系统/挂载点/目录]

说明:显示磁盘分区上可以使用的磁盘空间

执行者:所有用户

选项:-a以byte

挂载及卸载指令

 什么是挂载和卸载

Linux中的根目录以外的文件要想被访问,就需要将其关联Linux系统中的某个目录来实现,我们 将这种关联操作称作“挂载”,这个目录就是“挂载点”,解除此关联关系的过程称作“卸载”。

文件挂载指令

fdisk

语法:sudo fdisk -l

说明:查看所有磁盘列表,包括Linux自身+外部存储(查询所有可挂载的文件系统)

执行者:需要root权限

Mount

语法:mount [选项] [文件系统 挂载点]

 说明:查看或挂载文件系统

 执行者:挂载文件系统需要root权限

选项: -t :文件系统类型:指定要挂载的设备上的文件系统类型

-r :只读挂载

-w :只写挂载 注意:缺省选项显示目前系统中的挂载信息

eg:sudo mount /dev/sda1 /mnt 挂载/dev/sda1文件系统到 /mnt,

sudo mount -t ext4 /dev/sda1 /mnt 以ext4文件系统类型挂载/dev/sda1文件,将其挂载 到/mnt下

说明:

 我们每一个外设在接入Linux系统的时候,Linux系统会为每一个外部设备准备一个映射文件,这 个映射文件存放在/dev下。如果我们要想访问这个外设(存储外设),我们就需要访问/dev下对应的 映射文件,或者根据文件系统将外设挂载到我们指定的挂载点,这样我们就可以正常访问。

步骤:

1. 将硬件存储设备插入到Linux设备。

2. 通过 sudo fdisk -l 获取文件系统名(我们查到的是列表,从列表中获取具体的某个外设的名称)

 3. 通过 sudo mount 外设名称(一般都是/dev/...) 挂载点路径

文件卸载指令

umount 语法:

umount [选项] 文件系统/挂载点

说明:卸载文件系统

执行者:需要root权限

选项: -t :文件系统类型:指定要挂载的设备上的文件系统类型

-f :强制卸载

eg: sudo umount /mnt

NFS网络文件系统

Linux系统之间共享文件夹

服务端

步骤:

  1. 在被共享的系统中安装nfs服务

sudo apt-get install nfs-kernel-server

注意:如果系统提示无法定位软件包,就需要更新软件源

Sudo apt-get update

Sudo apt-get upgrade

  1. nfs服务端的配置

sudo vim /etc/exports

  1. 在文件末尾添加如下内容

/home/用户名vc/share *(rw,sync,no_root_squash)

说明:

/home/vc/share:要被共享的目录

*:指定哪些用户可以访问

  *:表示所有可以ping通该主机的用户

  192.168.12.*:表示指定网段中的用户可以访问

(rw,sync,no_root_squash):表示访问权限(其他选项,man 5 exports查看),可以一个可以多个

Ro:只读

Rw:可读可写

Sync:同步

客户dus不降低root用户权限

  1. 重启nfs服务

Sudo service nfs-kernel-server restart

或者

Sudo /etc/init.d/nfs-kernel-server

客户端

  1. nfds客户环境搭建

sudo apt-get install nfs-common

  1. nfs客户端查看服务器的共享目录(非必须0)

sudo showmount -e 服务器ip

eg:sudo showmount -e 192.168.12.13

  1. 将共享目录挂在到本地目录

Sudo mkdir /mnt/remote -–创建本地目录

Sudo mount 主机ip:服务端共享文件目录 /mnt/remote –将共享目录挂载到本地目录

Eg:

Sudo mount 192.168.12.13

/home/yueqian/share /mnt/remote

本文标签: 笔记 Linux