软件包管理:yum list/install/remove
个人编码工具:
编辑器:vim
操作模式:12种,常用3种:插入模式/普通模式/底行模式
模式切换:切入到普通模式ESC, iaoIAO(进入插入模式),进入底行模式:
底行模式下的操作:w/q/wq/q!
普通模式下的操作:
1、光标移动操作:hjkl/wb/ ctrl+f/b /gg/G
2、文本内容操作:yy/nyy/p/P/ dd/ndd/ x/dw/D
3、其他操作:u撤销/ctrl+返回/ gg=G
编译器:将高级语言代码解释成为机器指令
预处理:展开所有代码
编译:将高级语言代码解释成为汇编代码
汇编:将高级汇编代码解释成为机器指令
链接:将所有的代码文件以及库文件打包生成可执行程序
静态链接:链接静态库,将库中代码直接写入到可执行程序文件中,可执行文件比较大,但是运行时不依赖库的存在,但是若运行多份,则会在内存中造成代码冗余。
动态链接:链接动态库,将库中的函数符号表写入可执行程序文件中,可执行文件比较小,但是运行时候依赖动态库的存在(运行时库),在内存中共用同一个动态库(共享库)
gcc默认的链接方式:动态链接
调试器:调试一个程序的运行过程
调试前提:使用gcc -g选项编译程序,生成一个debug版本的程序
1、加载可执行程序: gdb./main gdb->file./main
2、单步调试:start/step(进入函数)/next/until file:line/continue/list
3、断点调试:run /break/watch varname变量监控,变量发生变化就停下来/info berak/delete/print
4、调用栈:backtrace快速定位程序奔溃的位置
项目管理工具:
项目的自动化构建工具:make/makefile
makefile:
文本文件,记录项目的构建流程和规则
make:解释程序,解释执行makefile中记录的规则,完成项目的构建
makefile的编写规则:
目标对象(要生成的文件名称):依赖对象(用于判断目标对象是否最新是否需要重新生成.c比可执行晚重新生成)
tab 执行命令(生成这个目标对象所要执行的命令,但是有时候这个命令也不一定要生成目标对象)
预定义变量:$^/$@/$<(依赖对象当中的第一个)
声明伪对象:.PHONY:$(target) 伪对象:每次都需要重新生成
make的解释执行规则:
1、只生成第一个目标对象,
2、会查看依赖对象是否存在,先生成依赖对象(依赖对象不存在则查找依赖对象的生成规则)/通过两方时间关系,判断目标对象是否需要重新生成。
项目版本管理工具:git/svn(服务器集中管理工具)
git clone 远程仓库地址
git add./* 添加本地修改
git commit -m "备注信息"提交本地版本仓库管理
git push origin master 将当前本地版本上传到远程主分支
进度条程序:
\r :回车符,让光标移动到行首
\n:换行符,让光标移动到下一行,还有一个功能是刷新标准输出的缓冲区(数据并没有立即写入文件,而是先写入到了缓冲区中,等到刷新缓冲区的时候才会将数据写入文件)。