目录
1.Linux下软件包管理器yum
1.1 什么是软件包
1.2如何安装软件
1.3 如何卸载软件
2. vim使用
2.1 vim的安装和配置
2.2 vim的基本概念
2.3 vim的基本操作
3. vim正常模式命令集
3.1 插入模式
3.2 命令模式下的文本批量化操作
4. Linux编辑器 -gcc/g++使用
4.1 gcc如何完成
4.2 gcc 翻译过程
4.2.1 预处理
4.2.2 编译(生成汇编)
4.2.3 汇编
4.2.4 链接
4.3 函数库
4.3.1 函数库的分类
补充:vim下批量化注释和去注释
注释:
去注释:
在Linux下软件的安装,软件的卸载在Linux下该做呢?
在centos 7中有三种安装方式:1.源码安装 2.rpm包安装 3.yum安装
yum安装的好处:
1、不用编译源码
2、不用解决软件的依赖关系
yum install sl
yum使用举例
在xshell输入sl可出现一个火车头。如果我们没有安装sl的话可以进行安装(切换成root用户):yum install sl
通过这个例子我们知道如果要在Linux下安装什么软件,使用yum可以很简单。
仍然使用一条指令,假设我们要删除刚刚删掉的sl软件(切换到root用户)
yum remove ls
vim的安装:切换到root账户下输入命令即可安装
yum install -y vim
vim的配置:安装好之后,大家可以复制下面链接输入到命令行,配置vim(自动补齐,高光,自动纠错等)
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
下载完成后按照提示输入指定命令即可使vim配置生效!
正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
插入模式(Insert mode)
只有在 Insert mode 下,才可以做文字输入,按「 ESC 」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim ,底行模式直接输入 :help vim-modes
如何进入vim,输入vim 及文件名称即可。就进入全屏幕编辑画面
vim test.c
当我们进入vim后,是处于命令模式,在命令模式中你在键盘输入一些字符是毫无效果的,要切换到插入模式才能输入文字
命令模式切换至插入模式
写完代码了再从插入模式切换至正常模式
按一下「ESC 」键转到 [ 正常模式 ]
写完代码之后想要退出vim该如何做呢?
此时要从命令模式切换至底行模式:shift + ; 其实就是输入 :
退出vim及保存文件,在底行模式中输入wq,也有不同的选项
:w (保存当前文件)
:wq ( 输入「 wq 」 , 存盘并退出 vim):q! ( 输入 q!, 不存盘强制退出 vim)
退出后我们输入cat 文件名可以查看刚刚我们所写的代码
这个大家可自行验证
以上操作大家可自行验证
格式 gcc [ 选项 ] 要编译的文件 [ 选项 ] [ 目标文件 ]
我们刚才所写的test.c已经完成了,那我们如何进行编译呢?我们使用gcc 文件名。
输入 ./a.out 执行结果
gcc test.c -o mytest //指定名称
在C语言中,我们知道一个程序要被执行要经过4个阶段。分别是预处理,编译,汇编,链接
在VS下,我们无法直接查看每一个阶段所做的工作,我们只知道预处理可能做了宏替换,去注释等,在gcc编译器下,我们可以进行查看。
首先我们来写一部分代码,在Linux下查看一下预处理过程的结果
gcc -E test.c -o test.i
-E :从现在开始进行程序的翻译,当预处理完成时,就停下来
此时我们想要查看预处理的结果 vim打开test.c
当我们进入test,i后 shift + g 直接闪现到最后一行发现 预处理结果确实进行了头文件的展开,宏替换,去注释,条件编译等等
gcc -S test.i -o test.s
-S:从现在开始进行程序的翻译,当我们编译完成后就停下来
我们进入test.s发现代码行数已经变得非常少了,其实这已经变成了x86环境下的汇编指令
gcc -c test.s -o test.o
-c :从现在开始进行程序的翻译,当我们汇编完成后就停下来
此时我们进入test.o发现已经变成了二进制文件
gcc test.o -o test
函数库一般分为静态库和动态库两种
静态库:
静态库是指编译链接时 , 把库文件的代码全部加入到可执行文件中 , 因此生成的文件比较大 , 但在运行时也就不再需要库文件了。其后缀名一般为“.a”
动态库与之相反 , 在编译链接时并没有把库文件的代码加入到可执行文件中 , 而是在程序执行时由运行时链接文件加载库, 这样可以节省系统的开销。动态库一般后缀名为 “.so”, 如前面所述的 libc.so.6 就是动态库。gcc 在编译时默认使用动态库。完成了链接之后 ,gcc 就可以生成可执行文件 , 如下所示。 gcc hello.o –o hello
小写,ctrl + v ,h j k l 选中区域, 切换成大写 ,输入 I (艾) , // , 按esc
小写,ctrl + v ,h j k l 选中区域(注释区域) ,按d