标签:
熟知任务:
1. 复习Linux命令,特别是man -k, cheat, grep -nr xxx /usr/include
2. 复习vi, gcc, gdb,make的使用
3. 复习教材内容ch01 ch02 ch03 ch04 ch06 ch07
4. 复习前面的考题(答案解析见http://group.cnblogs.com/topic/73060.html) ,下次考试考每次考试错的最多的题目
5. 期中总结发一篇Blog:
知识点总结
自己的收获(不要假大空)
自己的不足(要具体,有改进措施)
课程建议和意见(要有理由)
一、常用命令总结
man -k:
常用来搜索,结合管道使用。例句如下:
man -k k1 | grep k2 | grep 2
搜索同时含有k1和k2,且属于系统调用。
最后的数字意味着帮助手册中的区段,man手册共有8个区段,最常用的是123,含义如下:
1.Linux 2.系统调用 3.c语言
但是当单独用man语句的时候,想查看其中的单独某个区段内的解释时,用法是这样的:
man 3 printf
即查找c语言中printf的用法。
cheat
cheat是非常好用的“打小抄”搜索工具,能够方便的告诉你你想要的内容。
示例:
cheat ls
grep -nr
这条语句可以用来查找关键字,全文搜索,并且可以直接查找文件内的内容。其中:
n:为显示行号 r:为递归查找
例如,如果想查找某个宏,我们已知宏保存在include文件夹中,所以可以使用下列语句:
grep -nr XXX /usr/include(XXX为所要找的宏)
二、常用工具
vim
vim是一种非常好用的编辑器,总共有六种基本模式,最常用的是普通模式、插入模式和命令行模式。需要熟悉这三种模式之间的切换方式:
普通→插入: i 或 a 插入→普通: Esc 或 Ctrl + [ 普通→命令行: : 命令行→普通:Esc 或 Ctrl + [
常用的进入、保存和退出指令:
进入:vim 文件名 保存:命令行模式 :w 退出:命令行模式 :q
常用动作:
删除:dd删除整行 复制:yy复制整行 粘贴:p
※实用功能:交换上下行——ddp,快速交换光标所在行与它下面的行。
vim的功能很强大,并且可以移植到很多种不同的程序中,但是我们现在使用的过程中真正用到的命令很少也很简单,更多的技巧参见第二周笔记。
gcc
常用选项
-c 只编译不链接,生成目标文件.o -S 只编译不汇编,生成汇编代码 -E 只进行预编译,不做其他处理 -g 在可执行程序中包含标准调试信息 -o file 将file文件指定为输出文件 -v 打印出编译器内部编译各过程的命令行信息和编译器的版本 -I dir 在头文件的搜索路径列表中添加dir目录
编译过程
预处理:gcc –E hello.c –o hello.i; gcc –E调用cpp 生成中间文件 编 译:gcc –S hello.i –o hello.s; gcc –S调用ccl 翻译成汇编文件 汇 编:gcc –c hello.s –o hello.o; gcc -c 调用as 翻译成可重定位目标文件 链 接:gcc hello.o –o hello ; gcc -o 调用ld** 创建可执行目标文件
-o后面是接的你给生成的文件指定的名字,如果不指定,则默认为a.out
在命令行上运行这个可执行目标文件需要输入它的名字:
./a.out
其中./代表当前目录。
gdb
注意:使用GCC编译时要加“-g”参数,然后才能够用gdb调试
GDB最基本的命令有:
gdb programm(启动GDB) l 查看所载入的文件 b 设断点 info b 查看断点情况 run 开始运行程序 bt 打印函数调用堆栈 p 查看变量值 c 从当前断点继续运行到下一个断点 n 单步运行(不进入) s 单步运行(进入) quit 退出GDB
四种断点:
1.行断点 b [行数或函数名] <条件表达式> 2.函数断点 b [函数名] <条件表达式> 3.条件断点 b [行数或函数名] <if表达式> 4.临时断点 tbreak [行数或函数名] <条件表达式>
另外的调试工具:
cgdb,有单独的debug窗口,更方便查看
ddd,图形页面
Make和Makefile
这是实现自动化编译的好方法。
Makefile的一般写法:
一个Makefile文件主要含有一系列的规则,每条规则包含以下内容:
需要由make工具创建的目标体,通常是可执行文件和目标文件,也可以是要执行的动作,如‘clean’;
要创建的目标体所依赖的文件,通常是编译目标文件所需要的其他文件。
创建每个目标体时需要运行的命令,这一行必须以制表符TAB开头
格式为:
test(目标文件): prog.o code.o(依赖文件列表) tab(至少一个tab的位置) gcc prog.o code.o -o test(命令) ....... 即: target: dependency_files command
定义变量的两种方式:
(1)递归展开方式 VAR=var (2)简单方式 VAR:=var
使用变量的格式为:
$(VAR)
标签:
原文地址:http://www.cnblogs.com/20135336wwz/p/4928270.html