嵌入式Linux开发环境学习(一)
嵌入式简介
什么是嵌入式开发
相较于传统开发模式中软件直接与硬件交互的模式,嵌入式开发则是在操作系统的基础上对硬件进行操作,因此相较于传统开发模式,嵌入式开发在一定程度上提高了软件的可移植性(从一个平台切换到另一个平台需要修改多少代码),操作在此过程中起到了调度硬件资源的作用。在现代嵌入式开发中位于操作系统和应用层软件之间还有中间件的存在,中间件的存在降低了开发难度并提升了系统的可移植性。例如在单片机开发中使用的HAL库就是中间件的代表,其通过提供统一的接口(例如GPIO,I2C等)封装硬件操作,使开发者无需了解底层硬件即可进行开发
Linux系统概述
Linux 系统是一种开源、多用户、多任务的类 Unix 操作系统,其内核由芬兰程序员 Linus Torvalds 于 1991 年首次发布。它基于 POSIX 和 Unix 标准设计,支持多种硬件架构,从个人计算机到超级计算机均可运行,具有高度的灵活性和稳定性
Linux操作系统特点
开源与自由
Linux的系统内核源码公开允许用户自由使用和修改,作为大型操作系统,用户可以根据实际需求对源码进行修改以适应不同的应用场景,因此部分Linux操作系统对硬件要求极低,可以轻松的在单片机中运行
稳定性和安全性高
严格的权限管理降低了系统崩溃概率,开源特性使得漏洞修复迅速
Linux常用命令介绍
用户管理命令
adduser/useradd
作用:添加用户
语法格式:adduser 用户名
实例:
deluser/userdel
作用:删除用户
语法格式: deluser 用户名
实例:
usermod
作用:更改用户信息
- 语法格式:usermod [选项] [操作] [用户名]
文件管理命令
last
作用:查看用户登录的时间和次数
语法格式:last
实例:
ls
作用:查看当前文件下中的文件
语法格式:ls [选项] [文件夹]
实例:-R:该选项会递归显示子目录中的所有内容
-a:显示所有文件
-l:显示文件详细信息
gedit
作用:文本编辑
语法格式:gedit目标文件名
实例:
mkdir
作用:创建文件夹
语法格式:mkdir [选项] [文件夹名]
实例:
-p:实现逐级创建目录,确保目录存在,不存在就创建一个
cd
作用:当前工作目录切换命令
语法格式:cd [目标路径]
实例:cd .. : 表示切换到上一级目录
cd ~ : 表示切换到当前用户的工作目录
cd - :表示切换到上次访问的目录
chmod
作用:更改文件或文件夹的权限
语法格式:chmod [选项] [权限模式] [文件]
实例:
符号模式
-g:表示修改同组用户权限
-a:表示修改所有用户访问权限
-o:表示修改其他用户权限
-u:表示修改文件所有者权限
数字模式
使用三位八进制数表示权限
三个八进制数分别表示所有者,同组用户和其他用户
文件权限符号表示:
-r:表示可读权限
-w:表示可写权限
-x:表示可执行文件
cp
作用:文件拷贝
语法格式:cp [选项] [源文件] [目标文件]
实例:-v:拷贝时会显示详细信息
-a:递归复制
mv
作用:文件目录移动
语法格式:mv [选项] [要移动的文件] [目标位置]
实例:-v:显示详细信息
cat
作用:文件查看命令
语法格式:cat [选项] [文件]
实例:-n:显示行号
rm
作用:文件目录删除
语法格式:rm [选项文件] [文件名]
实例:-f:直接删除无需确认
-r:将目录下文件全部删除,不管该目录下是否有子文件
touch
作用:文件修改命令
语法格式:touch [选项] [文件名]
实例:当文件不存在时,会自动创建目标文件
ped
作用:显示当前工作路径
语法格式:直接使用即可
实例:
find
作用:文件目录查找
语法格式:find [路径] [匹配条件] [动作]
实例:-name:按照文件名查找 find . -name file.txt查找当前目录下名为file.txt的文件
-size:按照文件大小查找 find /home -size +1M 查找当前目录下大于1MB的文件
-user:按照文件所有者查找
tar
作用:文件目录打包和压缩
语法格式:tar [选项] -f [打包后的文件名] [被打包文件名]
实例:-f:指定归档文件名称,必须放在选项列表最后
-c:创建一个新的归档文件
-v:显示详细的操作过程
-x:表示解压操作
指定压缩格式
使用gzip压缩
优点:压缩速度快,兼容性好
选项:-z
使用bzip2压缩
优点:支持错误恢复
选项:-j
使用xz压缩
优点:压缩率高
选项:-J
ln
作用:文件链接命令
语法格式:ln [选项] [源文件或目录名] [目标文件或目录名]
实例:-s 软链接
根目录下部分文件介绍
bin目录:
存放系统最基础的二进制命令,所有用户均可执行
boot目录:
存放系统启动文件,包括内核,引导加载器,初始化内存
sbin目录:
存放root用户可用命令
dev目录:
存放设备文件,用户通过操作这些文件来与硬件交互
root目录:
root用户工作目录
home目录:
普通用户工作目录
etc目录:
存放全局配置文件,如网络配置,用户账户以及服务配置等
lib目录:
提供系统核心共享库(如.so文件),支持bin目录和sbin目录中的程序运行
usr目录:
文件默认安装路径
opt目录:
第三方独立软件安装目录,每个软件在独立子目录中
tmp目录:
存放临时文件,所有用户可以读写,系统重启后清空