一.开发工具
1.在Linux中安装软件,一般有三种途径:源码安装(不推荐);软件包安装(rpm)(不推荐,易出现缺失和版本兼容问题);包管理器(yum/apt)(Centos:yum;Ubuntu:apt/apt-get)
2.安装软件需要root权限,软件只安装一次,任何人均可以使用
3.评估一个操作系统的好坏一般从内核版本和生态(社区,文档,人群,问题等)两方面考虑
4.ls /etc/yum.repos.d/ :查看yum源
5.vim是一款多模式的编辑器
<1>
<2>在命令模式下
gg:快速回到第一行
shift+g:快速定位结尾
n+shift+g:定位到第n行
shift+$:定位到本行结尾
shift+^:定位到本行开头
w:以单词为单位向右移动,n+w:向右移动n个单词
b:以单词为单位向左移动,n+w:向左移动n个单词
h:左移 j :下移 k :上移 l:右移
<3>在插入模式下
yy:复制当前行 p:将复制的内容粘贴到光标所在位置 n+yy:复制选中的n行
dd:剪切当前行 p:将剪切的内容粘贴到光标所在位置 n+yy:剪切选中的n行
u:撤销历史操作 ctr+r:撤销u操作 注:一旦退出文件编辑,就无法进行撤销操作了
x:删除光标所在的字符 p:将删除的字符粘贴到光标所在位置 n+x:复制选中的n个字符
shift+x:光标右侧不动,左侧删除
r 替代字符:替换光标所在位置的字符 n+r
shift+r:批量化替换
shift+~:大小写切换
shift+#:选中单词 n:逆向查找
<4>在底行模式下
shift+zz:退出
w: 保存 q: 退出 wq:保存退出
!:强制 wq!:强制保存退出
set nu:设置行号 nonu:取消行号
!命令:可以直接在底行模式下使用命令
:%s/dst/src/:用src替换dst
:vs new-src:进行分屏操作
6.vim 文件名 进入文件编辑页面后输入wq,此时文件会自动生成
ctr+ww:将光标移动到另一个分屏上
vim 文件名 +n:定位到文件的第n行
:v :查看vim上一次的操作
二.gcc/g++使用的流程
1.预处理:进行宏替换
gcc -E code.c -o code.i
2.编译:生成汇编
gcc -S code.i -o code.s
3.汇编:生成机器可以识别的代码(生成机器码)
gcc -c code.s -o code.o
4.链接:生成可执行文件或库文件
gcc code.o -o code
注:习惯上将*.c文件链接生成*.o文件,再将他们打包形成可执行文件,再进行操作
三.库
1.分类
2.Linux中库的命名规则: lib名称.so lib名称.a
3.动态库的特点:执行目标方法需跳转到库中执行,执行完后再返回
动态链接:在编译时完成,让程序能找到在库中的方法的地址
静态链接:将库中的方法拷贝到我们的程序中,静态库只有在链接时候有用,一旦形成可执行程序,静态库可以不再需要(静态库不在内存里)
4.动静态库的对比
动态库形成的可执行程序体积一定很小
可执行程序对静态库的依赖度小,但对动态库依赖度很高
程序运行时,需要加载到内存中,如果采用静态链接会在内存中出现大量重复代码
动态链接比较节省内存和磁盘资源
5.系统默认是动态链接
6.进行静态链接时,静态库必须存在,使用 gcc code.c -o code -static可以强制静态链接