class="markdown_views prism-atelier-sulphurpool-light">
深入理解bootloader_2 —– Linux开发环境
1、编辑器vim 简介
1.1、常用命令
1)yy 复制
2)p 粘贴
3)dd 删除
4)u 撤销
5)/* 向下查找
6)?* 向上查找
7):%s/old/new/g 用new替换整篇的old
:#,#s/old/new/g 用new 替换从第#行到第#行出现的old
2、编译器GCC和交叉编译器
2.1、GCC的编译器流程
当我们使用编译器编译程序时: gcc test.c ,生成可执行文件 a.out
然而,上述一条命令可以分为四个步骤,分别是预处理、编译、汇编、和链接
第一步:预处理的过程相当一下命令(-E 表示只能进行预编译):
gcc -E test.c -o test.i
预处理的主要作用就是通过预处理的内建功能对一个资源进行等接交换。最常见的比如文件包含、条件编译、宏替换。
第二步:对预编译处理的文件进行一系列的词法分析、语法分析、语义分析以及生成相应的汇编代码文件,这个过程是整个程序构建的核心过程,也是最复杂的部分。类似编译命令:
gcc -S test.i -o test.s
第三步:汇编器将汇编代码转化成机器码,每一个汇编语句都对应着机器指令,汇编过程用如下的命令:
gcc -c test.s -o test.o
第四步:链接是编译的最后一个阶段,他将各个目标文件链接起来,生成可执行的文件,其命令如下:
gcc test.o -o test
2.2、交叉编译器
在一种计算机环境中运行的编译程序,能够编译出另一种环境中运行的代码,我们就称这种编译器为交叉编译。简单的说就是在一个平台上生成另一个平台上的可执行代码。有的平台受硬件配置等限制,可以在高配置平台下编译,然后将可执行文件出入到相应平台下。
3、脚本和常用命令
3.1、find命令
1)find -iname Abc fprint file 查找包含abc的文件,并且把它输入到file文件中。
find -name ap* -o -name may* 查找以ap或者以may开头的文件。
3)find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt 且文件系统类型为vfat的文件。
4)find /mnt -name tom.txt !-ftype vfat 在/mnt下查找名称为tom.txt 且文件系统类型不为vfat的文件。
5)find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的 文件。
6)find /home -mtime -2 在home下查找最近两天改动过的文件。
7)find /home -user cnscn 列出/home目录下属于用户cnscn的 文件或目录。
8)find /home -gid 501 列出/home组内ID 为501的 文件或目录。
9)find /home -size +512k 查找大于512KB的文件
10) find /home -size -512k 查找小于512KB的文件
3.2、grep 命令
1)grep -nir “abc” 在当前目录所有 文件中查找abc ,不区分大小写。
2)grep “abc” uboot.lds 在uboot.lds 中查找abc
文献参考:
抄录自 《深入理解BoorLoader》 胡尔佳 编著 (学习笔记仅作学习,交流,详细阅读请购买正版)