Linux知识框架及运用工具简介
Linux的基本组成
【1】内核
【2】shell(命令解析器)
【3】文件结构
△Shell相当于壳,类似于DOS下的cmd.exe。
△内核:运行程序,管理硬件设备
△文件结构:树形目录,文件共享及操作权限
Linux的基本操作
1.登录(root级别)
2.打开shell提示(open the terminal)
3.注销
4.关机
文本编辑工具vi / vim
*输入模式:文字资料
*指令模式:编辑文件
SHELL基本命令表
一.Shell的常用命令
1.目录操作
2.文件操作
3.系统询问与权限命令
4.进程操作
5.通信类
6.I/O命令
二.Shell的配置文件./etc
三.Shell的语法结构(命令脚本、命令集文件)
常用主机服务配置
①.配置Samba --->文件共享
②.配置DHCP (动态主机配置协议):这个协议用于向计算机自动提供IP地址、子网掩码和路由信息
③.配置TFTP --->文件传输服务
Linux内核从主机下载到目标系统 --->解压并运行
④.配置NFS --->网络文件系统,共享文件
四.Shell编程
A.变量 B.运算符 C.条件判断 D.控制结构 E.函数
五.高级shell命令
正则表达式(即 查找串)
-->普通字符 + 元字符
§.Grep :“全局搜索正则表达式并打印该行”,可用于shell脚本
§.Sed :流编辑器
这里的Grep与vi中的元字符都可以用到sed流编辑器中
§.Awk :文本处理器
样式装入;流控制;数学运算;进程控制;内置变量和函数
Awk具有极强的列或域的处理能力。
Linux下的程序设计
一.代码编程 --- vi、Eclipse、Qt、Designer
二.GNU tools
GNU意指:完全自由的操作系统
⑴.工程管理【Makefile】
软件工程工具(用于协助多人开发或大型软件项目的管理的软件)
Make命令,自动维护,集成编译
⑵编译开发工具【GCC】
能够对一个程序编译成为一个可执行程序软件。
4步:#预处理;#编译;#汇编;#链接(归并)
⑶.工具链【Binutils】
能够对二进制文件进行处理的软件工具,binutils是一组二进制工具程序集。
包括:addr2line, ar, as, ld, nm, odjcopy, objdump, ranlib, size, strings,strip
等,是辅助Gcc的主要软件。
⑷.库文件【Glibc】
动态链接库.so ---- 运行时动态的加载。
静态链接库.a ---- 编译时静态加载。
库文件操作,使用
⑸.调试工具【GDB】
能够对执行程序进行源码或汇编级调试的软件
调试的使用。
⑹版本管理工具【SVN】----版本控制
⑺.文本差异处理工具【Diff、Patch等】
⑻.交叉编译
在一个平台上生成另一个平台上可以执行的代码。
平台包括:体系结构 与 操作系统
为什么要交叉编译?
<1>项目起始阶段,平台尚未建立,需要交叉编译。
以生成bootloder(启动引导代码) 以及操作系统内核。
<2>平台启动后,由于资源限制,当编译大型程序时依然可能需要交叉编译。
⑼.创建制作工具链
购买开发板,厂家都提供交叉编译工具链。
若自己做开发板或移植程序,可以根据需要在网上下载最接近的代码改造交叉编译工具链。
在进行嵌入式开发之前,首先要建立一个交叉编译环境(编译器、链接器、libc库)
⑽.安装交叉工具链、使用
⑾.系统配置
嵌入式Linux的GDB调试环境由Host和Target两部分组成。
Host端用arm—Linux—gdb;
Target Board端用gdbserver。
先建立安装GDB组件,然后建立gdbserver。
⑿.调试程序。