yum可以比作linux的应用商店:
yum install 软件(下载软件)
yum remove 软件(删除软件)
强制下载和删除:
yum install -y 软件;
yum install -y 软件;
定义:一款文本编译器
vim是一款多模式的编译器
①底层模式
②命令模式转编译模式
gg命令:将光标移动到开头位置;
shift+g:将光标快速定位到代码的最后一行;
n+shift+g:定位到第n行;(这里的n是一个数字)
shift+6:将光标定位到光标所在行的开头位置
shift+4:将光标定位到光标所在行的末尾位置;
由于shift+6就是^;shift+4就是$;
所以就有了锚点的定义:
H:左移一个字符
J:下移一个字符
** k**:上移一个字符
** I**:右移一个字符
** W后移一个单词
** B前移一个单词(当遇到不是单词的时候就按一个字符一个字符的走)
(n) yy :复制从当前行向下数n行的内容;
** (n) p**:粘贴当前行向下数n行;
** (n)dd剪切 ;
** u撤销粘贴操作;
** u** 命令模式下撤销刚才的操作;
** ctrl+r**:撤销刚才的撤销操作(命令模式下的u)
** shift+`:按住这两按键不懂就会依次将原本大写的字符转小写**;将原本小写的字符转大写;
** n+r+自己想加的字符**批量替换光标所在字符,或者多个字符
替换模式:shift+r;
添加
插入模式进行添加;
删除
向后删除:命令模式:n+x:删除当前光标后n个字符;
向前删除:1.插入模式:直接使用使用Backspace键;
2.命令模式:n+shift+x:向前删除n个字符;
shift+3查找同名的单词;按n会在这些同名单词中跳转;
ctrl+v(转化为视图模式)->j/k两个按键上下选中区域—>shift+i-> //->Esc;
ctrl+v(转视图模式)->上下左右键转选中区域->d
替换模式会将输入的字符覆盖光标所在的字符;
这里撤销使用:命令模式下的u进行取消;
1使用vim打开以一个文件;
c语言:gcc/g++两者都可;
c++语言:g++
原因:g++是c++的编译器;但是c++兼容c语言;
./a.out如果编译报错:
添加**-std=c99**
gcc 文件名 -o 生成的文件名
c++文件有三种写法:
在lunix中多使用**.cc**的写法;
编译语言的历史:
应用:
vs的社区版本;专业版本;
这里云服务器内只会维护一份这两者中的一份;
链接会将.o文件和库函数相结合;
静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a”
动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,
而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”,如前面所述的 libc.so.6 就是动态
库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件,如下所示。 gcc hello.o –o hello
总结: 开发环境进行开发的全过程:
1准备:
(1)下载头文件,和库文件
(2)设置好头文件查找库文件的路经。
(3)规定好库文件和**.o文件**的 链接方式已备编译时的链接使用
2.编译
预处理
编译
汇编
链接
使用它会直接将Makefile中的指令直接生成
他承载所需要的生成的命令
使用方法
推荐
不推荐
这里要讲的是.o文件依赖。s文件就会向下先生成.s文件;make一次可以生成多个文件;
make 插件:
1.make的默认规则:
1.默认第一条命令可以直接使用make来使用;后面的的指令需要make加目标文件;
2.Makefile代码中:使用@可以使代码不会回显;
这里使用echo就不会回显了;
3.Makefile中使用单#就可以将文件注释;
4.makefile 支持使用变量来进行编码:
5.makefile 支持依赖关系可以使用简称;
这里的
代
指
c
o
o
d
e
.
c
;
^代指coode.c;
代指coode.c;@代指mybin
5.Makefile中命令不被phony修饰的文件只可以在修改完成后使用一次;而被phony修饰的命令可以被重复使用;
这里的文件没有被修改所以不可以使用make
问题
make怎么知道文件没有被修改呢?
使用的是文件修改时间;
2.文件时间ACM:
access时间:能访问时间;
Modify时间:文件内容修改时间;
Change时间:属性的修改时间;
这里access时间:隔一段时间再进行一次更新;并不是每次都更新;
原因:
由1.2和2得我们可以得到:make判段是否更改的使用的时间 :Modify时间;
这里输出会等待两秒后输出;
**出现这种情况的原因:缓冲区(输入缓冲区,输出缓冲区)今天主要是输出缓冲区;
那么缓冲区在哪里呢?
标准输出流;
** 一般输出回 将文件先放在输出中;等待一段时间;再输出;
但是\n可以强制输出;
fflush(stdout);强制输出;
是将光标回到本行首元素
使用\r
这里注意:输出没有使用换行;需要使用fflush(stdout)来强刷新缓冲区;
将光标换到下一行;