嵌入式开发-Linux
在进入裸机开发之前,先复习了一些 linux 的基础知识,我们一般使用 ubuntu 的系统,在开发中我们一般在 vmware 虚拟机下进行,主要使用Linux系统进行编译的操作。
一开始只要将 vmware 和 ubuntu 的镜像文件安装好能运行即可,基本上在百度完成,在U盘的连接到虚拟机可以快速切换,之前并不知道。
我们可以先在 vmware 中的编辑 -> 首选项中进行 USB设备插入时的选择,一般默认是我们自行选择,一般是连接到主机。我们可以在系统下面进行选择。
Linux 终端操作和shell 命令
复习一些命令:
目录查看:ls
目录切换:cd
当前路径显示:pwd
系统信息查看:uname
清理屏幕命令:clear
显示文件内容:cat
切换用户身份:sudo
文件拷贝:cp
移动文件(重命名):mv
创建文件夹:mkdir
创建文件:touch
删除命令:rm
目录删除:rmdir
显示网络配置:ifconfig
重启:reboot
关机:poweroff
系统帮助:man
数据同步写入磁盘:sync
查找文件:find
查找内容:grep(字符串这类)
文件夹大小查看:du
磁盘空间检查:df
利用gedit打开文件:gedit
系统进程查看:ps
进程实时运行查看:top
文件类型查看:file
这些命令都可以通过加参数来实行更多功能。
ubuntu 下的软件安装
五种方法:
1.ubuntu 自带的APP商店(不常用)
2.sudo apt-get install xxx (最常用)
3.deb 软件包安装 (可用,类似于 .exe)
4.自己下载源代码编译安装(有).tgz 压缩文件(百度)
5.其他。例如:QT(.run)
我们一般正常使用第二种方法就行,后面还需要学习 makefile 的用法。
ubuntu文件系统结构
只要有一个大概了解就行,具体碰到可以再去百度。
文件系统:
/ 是根目录 -> 类似于大树的根。
另外有一个就是绝对路径,相对路径:./,../
ubuntu的磁盘管理
ubuntu下的磁盘文件:
/dev/sdx 文件,这是磁盘设备文件,并不能直接询问,要进行挂载到某一目录下才能访问。
在/dev文件夹下,一般有内部磁盘和外部磁盘,在ubuntu系统中一般是已经挂载好,我们需要自己卸载并挂载。但是在ubuntu系统下插入U盘还是自动挂载(默认挂载)。
命令:df 列出系统的整体磁盘的使用量。
du 查看某一个目录,文件的大小。(使用量)
硬盘挂载/卸载
挂:mount
卸:umount
要注意不能使U盘处于使用状态下,记得 + sudo
格式:mount /dev/sdx /mnt
设备 挂载点
挂载出现中文乱码,将格式改为 utf-8。
umount /mnt 直接卸载。
磁盘分区
命令:fdisk 记得 + sudo
我们主要使用 U 盘进行分区操作。
sudo fdisk /dev/sdb 分区命令
d:删除
n:创建
p:列出分区列表
分区之前要先卸载。
创建完分区之后要进行格式化:
mkfs -t type device
例:mkfs -t vfat /dev/sdb1
ubuntu的压缩和解压缩
在ubunut(linux)下的常见压缩格式:.tar .tar.bz2 .tar.gz
在windows下一般使用的压缩工具是bandzip 或者 7zip 都可以。
gzip压缩工具:
负责压缩和解压缩 .gz 文件
命令:gzip xxx (压缩)
gzip -d xxx.gz (解压缩)
gzip -r xxx (对文件下的文件进行压缩,但不进行打包)
gzip -rd xxx (对文件夹解压)
bzip2压缩工具:
负责 .bz2 的文件的压缩和解压缩
命令:bzip2 -z xxx (压缩)
bzip2 -d xxx.bz2 (解压缩)
bzip2 -z bzip2text/ * (对文件进行压缩,可用通配符)
tar打包工具:
提供打包服务,不仅提供打包和解包功能,还有压缩和解压的功能。
命令参数:
-f :用归档文件
-c :创建归档
-x :解归档
-j :针对bzip2的文件
-z :针对gzip
-v :打印命令执行
例:
tar -vcf test.tar test (将test打包为test.tar)
tar -vxf test.tar (解包)
对.tar.bz2进行压缩和解压缩
tar -vxjf xxx.tar.bz2 (解)
tar -vcjf xxx.tar.bz2 (压)
对.tar.gz进行压缩和解压缩
tar -vxzf xxx.tar.gz (解)
tar -vczf xxx.tar.gz xxx (压)
其他格式的压缩和解压
.rar格式:
命令:
rar x xxx.rar (解压)
rar a xxx.rar (压缩)
.zip格式
命令:
zip -rv xxx.zip xxx (压缩)
unzip -v xxx.zip (解压)
ubuntu的用户和用户组
linux用户:linux系统是多用户的操作系统,在ubuntu下有三种用户:
① 初次用户
② root用户
③ 普通用户
权限:root > 初次 > 普通
初次用户其实就是我们第一次进入系统时创建的用户,初次用户可以创建普通用户。
在linux中,用户记录主要在 /etc/passwd 文件中,每一个用户都有一个ID 叫做 UID,密码则是存在 /etc/shadow 文件中,密码是不会明文显示的。
在用户名之后的第一个数字就是UID,第二个数字就是GID(组ID)。
linux用户组:
为了便于管理,系统将用户进行分组,对访问权限等做了对应的设置,每个用户都可以属于多个不同的用户组。UID -> GID 可以在 /etc/Group 中进行查看。
用户和用户组的创建:
命令:添加用户 adduser;例:adduser dongzh
用户查询 finger;例:finger 用户名
修改用户密码:passwd;例:passwd 用户名
删除用户:deluser;例:deluser 用户名
添加用户组:addgroup;例:addgroup 用户组名
显示组内用户名:groups;例:groups 用户组名
删除:delgroup;例:delgroup 用户组名
一般需要加上 sudo 才能使用。
ubuntu的文件权限
文件权限指的是不同的用户和用户组对于某个文件拥有的权限,分为三种:
r :读
w:写
x:执行
如上图所示,在一个文件前都有10个参数对其进行说明,第一个字母表示的文件类型,b表示块设备,一般还有字符设备等。
剩下的九位分为三组,前三位是用户权限,中三位是用户组权限,后三位是其他用户权限,每三位都表示 rwx ,如上就是 110110000 (二进制),转化为十进制就是660。
修改文件的权限/用户:
权限命令:chmod 例:chmod 777 文件名
更改用户:chown 例:chown 用户名 文件名
更改用户组:chown 例:chown . 用户组名 文件名
用户和用户组都改:chown 例:chown 用户名. 用户组名 文件名
一定记得加上sudo
linux连接文件
在linux系统之中,连接文件一般分为两种:符号连接(软连接)和硬连接,其中符号链接有点类似于windows下的快捷方式,而硬连接是通过inode连接产生新文件名。
inode:记录文件属性,一个文件一个,相当于文件的ID。
创建连接:
命令:ln
格式:ln [选项] 源文件 目标文件
选项:-s :创建符号连接
不加 :默认硬连接
-f :强制创建连接文件,若是目标存在,先删再建