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?
主要时由嵌入式产品特点来决定
·内部时基于一个控制器
·体积一般比较小(决定了嵌入式,它的硬件资源一般比较紧张)
·对功耗有要求
·特定的应用
·越来越智慧化
学习方式
- 花时间和精力
- 时间安排
- 上课要认真听讲,课后多做练习,每天的老师的代码至少敲2-3遍
- 主动学习,利用网络资源,利用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处于命令模式:
- 系统命令行输入vim,就可以启动vim
在vim中导入代编集的文件
:r待操作文件
- 系统命令行输入vim待编辑文件,启动同时打开待编辑文件
说明:默认打开文件后,光标处于文件开头(第一行第一列)
- 系统命令行输入vim待编译文件,启动vim同时打开待编译文件
说明:默认打开文件后,光标处于文件末尾(最后一行最后一列)
- 系统命令行输入vim待编译文件,启动vim同时打开待编译文件
说明:默认打开文件.,光标处于指定行n(指定第n行第一轮)
退出:
- 在命令模式下:ZZ(大小写)
- :q 文件不更改直接退出
- :wq 保存退出
- :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系统之间共享文件夹
服务端
步骤:
- 在被共享的系统中安装nfs服务
sudo apt-get install nfs-kernel-server
注意:如果系统提示无法定位软件包,就需要更新软件源
Sudo apt-get update
Sudo apt-get upgrade
- nfs服务端的配置
sudo vim /etc/exports
- 在文件末尾添加如下内容
/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用户权限
- 重启nfs服务
Sudo service nfs-kernel-server restart
或者
Sudo /etc/init.d/nfs-kernel-server
客户端
- nfds客户环境搭建
sudo apt-get install nfs-common
- nfs客户端查看服务器的共享目录(非必须0)
sudo showmount -e 服务器ip
eg:sudo showmount -e 192.168.12.13
- 将共享目录挂在到本地目录
Sudo mkdir /mnt/remote -–创建本地目录
Sudo mount 主机ip:服务端共享文件目录 /mnt/remote –将共享目录挂载到本地目录
Eg:
Sudo mount 192.168.12.13
/home/yueqian/share /mnt/remote
版权声明:本文标题:linux笔记 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726360527h944516.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论