常用工具:
yum:软件包管理工具
查看 yumlist 安装 yum install 移除 yum remove
vim编辑器
模式:十二种 常见 三种 模式切换 i a o ESC : /
常见操作:
光标移动:hjkl wb ctrl +f/b gg/G
常见操作:yy nyy p P x dw dd ndd D u ctrl+r
底行操作:q w wq q!
其他牛逼的编译器:
Brackets:
一款为Linux开发者设计的开源代码编辑器,Brackets是基于web开发的web前端编辑器。
Light Table:
一个免费开放源代码的编辑器,该编辑器有一个非常干净的界面,并有大量扩展。它与Windows、Mac和Linux都兼容,是高度可定制的。使用Light Table,开发者只需打开一个浏览器窗口即可实时查看更改,并且支持不同的嵌入。
gedit:
Linux各个发行版默认都有的编辑器,类似于Windows的记事本,不过可以根据代码类型着色,这点可比记事本牛逼多了,不过我一直没有搜索到如何配置gedit才能让他显示行号和改变tab为4个空格,所以不是迫不得已不会用gedit编辑正式文件
gcc/g++:编译器
编译过程:预处理,编译,汇编,链接
链接方式:动态链接/静态链接 默认:动态链接
gdb:调试器
调试前提:编译程序的时候添加调试符号信息,生成debug版程序 — gcc -g
(gcc -g在编译是会做以下额外的操作:创建符号表,符号表包含了程序中使用的变量名称的列表。
关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。 )
加载程序:gdb./main gdb->file./main
常见操作:
单步调试:r start n s until l p
打断点:b file:line 给指定文件指定行添加断点
b function 给指定函数加断点
ib 查看断点信息
d 删除断点
c 继续运行
watch 变量监控
查看调用栈:bt
make/makefile: 项目自动化构建工具
makefile记录项目的构建流程规则,make是一个解释器。解释makefile种定义的规则
makefile的编写规则:
目标对象:依赖对象 a:a.c
【tab】执行命令
make解释执行规则:
在makefile中只寻找第一个目标对象,进行生成
目标对象文件是否存在:不存在直接执行命令;否则看有没有依赖对象?
没有:直接报最新,不需要重新生成
有依赖对象:判断依赖对象是否存在
存在:通过修改时间判断目标对象是否最新
不存在:在makefile中继续找寻找依赖对象的生成规则,生成依赖对象
预定义变量:S@S^S<
伪对象:不管对象是否最新,是否存在,每次都重新生成 声明伪对象:.PHONY
另介绍几个编译器:
MSVC:
windows上最常用的编译器,不过常被嫌弃对标准的支持不够及时。
Clang:
licence十分友好,代码质量非常棒,采用的IR为LLVM IR非常优秀,各大公司逐步发力在Clang上,包括不限于微软、IBM、Nvidia等,各大公司也在开始疯狂在往Clang/LLVM交代码。所以说Clang正在追赶gcc的路上,不过目前还相差甚远
git:项目版本控制工具
svn git
下载代码:
git clone
本地提交:
git add file
git commit -m “bak”
上传代码:
git push origin matser