## 嵌入式软件编程

嵌入式软件编程

第一课:开发概述 基本命令
1.嵌入式Linux C开发环境
调试工具
GDB是GNU开源组织发布的一个强大的UNIX下的调试工具。
make和autoconf
make能够将大量的编译命令一次完成,用于大型软件的编译
autoconf用于编译前根据机器状态作相应的配置
开发工具包
在Linux下提供了优秀的GNU C函数库,Motif函数库,GTK函数库,QT函数库等工具包,为您的编程提供大量的支持
项目管理工具
Linux下有优秀的版本控制工具
2.Linux概念和基本命令
根目录
根目录
(1)cd / 切换到功能目录
例:[[email protected] /]# cd bin 从根目录中进入bin目录
[[email protected] bin]# cd … 从bin目录中退回上级目录
(2)ll / 列出根目录下面的所有项目,每个项目显示一行
例:[[email protected] a]# ll
total 16
-rw-r–r--. 1 root root 4 Jan 12 00:19 txt.1
-rw-r–r--. 1 root root 4 Jan 12 00:19 txt.2
-rw-r–r--. 1 root root 8 Jan 12 00:20 txt.3
-rw-r–r--. 1 root root 1983 Jan 12 00:31 txt.4
注:在一个linux 系统中,不管有多少个分区,都只有一个根目录,就是 /
各一级目录的作用如下图所示
在这里插入图片描述
根用户(也叫root用户,管理员)
系统中只有一个这样的用户,安装好系统就存在,主要用于用户管理,权限管理,权限无限大
(3)[[email protected] ben]$ 含义为管理员在ben目录中
(4)[当前登录的用户名@主机名 当前目录的最后一级]#表示管理员,KaTeX parse error: Expected 'EOF', got '#' at position 28: …[email protected] a]#̲ 表示管理员 [[email protected] KaTeX parse error: Expected 'EOF', got '#' at position 96: …[email protected] a]#̲ su ben …
命令格式
命令 [-选项] [参数1] [参数2] …

目录和文件管理
ls作用:
英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录下的项目
常用选项:
-a 显示所有文件,包括隐藏文件,注意:隐藏文件不是不想让人看到,而是表示该文件是系统中重要的文件,不是必须,不要动它
-i 显示文件的ID,long:长格式
-l 显示详细信息,具体信息见下图
-d 查看目录属性
-h 人性化显示
例:[[email protected] /]$ ls
bin dev home lib64 media opt root selinux sys usr
boot etc lib lost+found mnt proc sbin srv tmp var 显示目录下的项目
[[email protected] /]$ ls -a
. .autofsck boot etc lib lost+found mnt proc sbin srv tmp var
… bin dev home lib64 media opt root selinux sys usr 前缀为…是隐藏文件
ll
是 ls -l 的别名
在这里插入图片描述
//权限解释
-rw-r–r--. 1 root root 30 Sep 18 14:29 abd
-rw-rw-r–. 1 ben ben 2018 Sep 18 14:18 a.txt
-rw-r–r--. 1 root root 0 Sep 18 17:57 b.txt
关于权限:分三种
读->r
写->w
执行->x
关于用户:分三种
文件所有者->u
文件所有属用户组->g
其它人->不属于上面两类的所有人
第一部分 -rw-r–r--
第1位表示文件或目录,-表示文件,l表示链接文,d表示目录
第2~4三位表示文件所有者对该文件的权限
第5~7三位表示文件所属用户组对该文件的权限
第8~10位表示系统中所有其它对该文件的权限
mkdir
英文愿意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
功能描述:创建目录
常用选项:
-p 递归创建
例:[[email protected] ~]# mkdir home
[[email protected] ~]# ll
total 68
-rw-------. 1 root root 2370 Sep 8 2018 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Jan 12 04:21 filetest
drwxr-xr-x. 2 root root 4096 Jan 12 04:23 home
-rw-r–r--. 1 root root 39610 Sep 8 2018 install.log
-rw-r–r--. 1 root root 9154 Sep 8 2018 install.log.syslog
rmdir
英文愿意:remove empty directory
命令所在路径:/bin/rmdir
执行权限:所有用户
功能描述:删除空目录
例:[[email protected] ~]# rmdir department 当文件department中无文件时可删除
[[email protected] ~]# rm -rf department 当文件中有文件就可用该种形式
cd
英文愿意:change directories
命令所在路径:/bin/cd
执行权限:所有用户
功能描述:切换当前目录
例如:[[email protected] filetest]# cd …
[[email protected] ~]#
pwd
英文愿意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
功能描述:打印当前目录完整路径
echo
命令所在路径:/bin/echo
执行权限:所有用户
功能描述:向标准输出视频(显示器)输出一个字符串
例如:echo “hello world”
touch
命令所在路径:/bin/touch
执行权限:所有用户
功能描述:创建一个空文件
常用选项:
例如:touch ~/a.txt
cal
英文愿意:calendar
命令所在路径:/bin/cal
执行权限:所有用户
功能描述:输出一个日历
常用选项:
-3:上一个月,当前月,下一个月
-y:当前一年
例如:cal -y
date
命令所在路径:/bin/date
执行权限:所有用户
功能描述:打印日期,或修改日期
常用选项:
-d:显示指定字符串所描述的时间,而非当前时间
-s:设置时间
例如:
date -d “2 days ago” +%Y%m%d //显示2天前的时间,20190210
date -s “2007-08-03 14:15:00”
history
命令所在路径:/bin/rm
执行权限:所有用户
功能描述:显示输入过的历史命令
例如:
history

和>>覆盖重定向和追加重定向
执行权限:所有用户
功能描述:把输出到标准输出设备的内容,重定向到其它地方(通常是文件)
例如:
history > ~/cmd_hostory.txt //把历史命令保存到用户主目录下的cmd_hostory.txt文件中,如果不存在就创建,如果存在就覆盖
cp英文愿意:copy
命令所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或目录
常用选项:
-p:保留原始文件的属性,包括属主、权限、时间戳等
-r:递归复制文件
-i:如果目标文件存在则询问是否覆盖
-d:如果复制对象为链接文件,则保留该链接文件的属性
例如:cp -rp /home/ben/d /tmp
mv英文愿意:move
命令所在路径:/bin/mv
执行权限:所有用户
功能描述:文件移动或重命名
常用选项:
-f:无论目标是否存在都进行移动
-i:如果目标文件存在则询问是否覆盖
注意事项:
在同一个目录下的操作,为重命名
不同目录下的操作,为移动
例如:mv /home/ben/* /tmp
rm英文愿意:remove
命令所在路径:/bin/rm
执行权限:所有用户
功能描述:删除文件或文件夹
常用选项:
-r:递归删除文件
-f:强制删除文件且不显示任何信息
-i:删除目标文件前则询问是否删除
例如:rm -rf /home/ben/*
ln英文愿意:link
命令所在路径:/bin/ln
执行权限:所有用户
功能描述:给某个文件或文件夹做链接(硬链接不允许连接到目录)
常用选项:
-s:创建某文件的软链接
格式:
ln 目标 链接文件的名称
例如:
ln a.txt link_a.txt
ln -s a.txt slink_a.txt
cat英文愿意:concatenate
命令所在路径:/bin/cat
执行权限:所有用户
功能描述:显示一个或多个文件的内容
例如:
cat file1 file2 > file3 ;把file1和file2的内容写到fil3中
cat file1 file2 >> file3 ;把file1和file2的内容追加到fil3中
more命令所在路径:/bin/more
执行权限:所有用户
功能描述:分页查看文件,特别是长文件
常用选项:
-s:把文件中的多个空行压缩成一个空格显示
+n:每个按空格显示n行,按回车总是显示下一行
例如:more -s a.txt
wc命令所在路径:/bin/wc
执行权限:所有用户
功能描述:统计文件的行数,单词数,字数
常用选项:
-l:显示行数
-w:显示单词数
-c:显示字符数
例如:
wc -l a.txt
cat a.txt |wc -l
find命令所在路径:/bin/find
执行权限:所有用户
功能描述:查找文件或文件夹
常用选项:
-name:按文件名搜索
-type:按文件类型搜索,b块设备、c字符设备、d目录、f普通文件
例如:find / -name “.txt"
|
管道操作
执行权限:所有用户
功能描述:前面命令的输出,做为后一个命令的输入
例如:
history |grep “mv”
find / -name "
.txt” | “123”
tar 命令所在路径:/bin/tar 执行权限:所有用户 功能描述:压缩或解压缩文件或文件夹 常用选项: -c 创建 tar –cf dir1.tar dir1 -t 查看 tar tf dir1.tar -x 释放 tar –xf dir1.tar -f 后面跟归档文件名字 -z 压缩/解压缩 例如: tar -zcf test.tar.gz /home/ben/test ;把/home/ben/test目录压缩为当前目录下的test.tar.gz文件 tar -zxf test.tar.gz ;把当前目录下的test.tar.gz解压到当前目录