vim文本编辑工具
- vim有12中模式,每一种模式都有不同的功能,不同模式做不同的操作。
普通模式、插入模式、底行模式(视图模式、替换模式)
- vim file:打开文件,进入普通模式
- 从普通模式切换到插入模式的方法:
i 从光标坐在位置开始插入
a 从光标坐在位置的下一个字符处开始插入
I 将光标移动到行首,然后进入插入模式
A 将光标移动到行尾,然后进入插入模式
o 在光标所在行的下方,新建一行,进入插入模式
O 在光标所在行的上方,新建一行,进入插入模式
s 删除光标所在字符,然后进入插入模式
- 从普通模式切换到底行模式的方法:
:w 保存
:q 退出
:q! 强制退出(不保存本次修改)
:wq 保存并退出
:!pwd 临时执行命令,按回车返回
- 从插入模式/底行模式返回到普通模式的方法:
esc
- 普通模式下的常用操作:
h 向左移动光标
j 向下移动光标
k 向上移动光标
l 向右移动光标
w 光标向右移动一个单词(单词分界为特殊字符)
b 光标向左移动一个单词
yy 复制光标所在行
nyy 从光标所在行开始向下复制n行
p 向光标所在行下方新建一行进行粘贴
P 向光标所在行上方新建一行进行粘贴
dd 删除光标所在行(vim中删除其实是剪切)
ndd 从光标所在行开始向下删除n行
x 删除光标所在字符
dw 删除光标所在位置开始的一个单词
u 撤销操作
ctrl+r 返回撤销操作
ctrl+v 进入列视图模式,可以进行选择操作(= 缩进对齐)
v 进入行视图模式,可以进行选择操作
r 替换光标所在字符
R 进入替换模式,对内容一直替换
gg 光标移动到文档首行
G 光标移动到文档末尾行
gg=G 全文缩进对齐
set nu 设置行号
set ai 设置自动缩进
set st=4 设置制表符的长度等于4个空格长度
set sts=4
set sw=4
gcc/g++编译器:
将c/c++等高级语言程序编译成为机器可识别程序
- gcc使用:linux下程序的执行就是告诉操作系统程序文件在哪个路径下
- gcc常用选项:
-o 指定生成的文件名称
- 程序的编译过程:
a.预处理(去掉注释,展开所有代码)
b.编译 vi(先纠错,没有错误则编译成汇编代码)
c.汇编(将汇编代码生成一个机器可识别的代码。汇编只是将我们写的代码汇编完毕,但是不能运行,因为代码不完全,我们调用的一些库函数,并不知道如何实现,需要经过第四步才能生成可执行程序)
d.链接(将库函数链接过来与我们的代码最终合并生成可执行程序)
链接方式(默认动态链接):
动态链接:链接的是动态库,生成的可执行程序小,但是动态链接生成的程序运行时需要动态库存在
静态链接:链接的是静态库,生成的可执行程序大,静态链接生成的程序运行时不需要静态库存在,因为静态链接 就是将库中的函数全部拿过来生成可执行程序,所以大
yum:
红帽子系列linux操作系统的软件包管理工具
- 软件的安装/移除/查看都是通过yum
查看 yum list | grep 包名
安装软件包 yum install 包名
卸载软件包 yum remove 包名
列出所有可以安装的软件包 yum list
文件传输软件包 lrzsz
修改/更新yum源的方法: /etc/yum.repos.d/CentOS-Base.repo
- gdb:程序调试工具
makefile:
不普通的普通文件
- 在makefile中通常定义很多的程序编译规则,在终端命令行下敲击一个make命令,则make程序就会跑到当前目录下寻找Makefile文件,然后按照Makefile中已经规划好的编译顺序以及编译规则来完成整个项目的编译。
- make命令——只在当前目录下找名字叫Makefile/makefile的文件
- 如何编写makefile?
main.c——>main
目标对象名称:依赖对象名称
[制表符\t]通过依赖对象生成目标对象的命令
`main' is up date :目标对象已经是最新的了,不需要重新生成,make程序判断依赖文件的最后修改时间和目标对象文件 的最后修改时间,如果目标对象的时间戳大于依赖文件的时间戳,那么就证明依赖文件在上次编译后 就没有修改过,不需要重新编译。