【Linux】Linux开辟必备六大工具之代码、编译、多人协作开辟工具 ...

打印 上一主题 下一主题

主题 881|帖子 881|积分 2645


个人主页~

   我们学习Linux是为了什么呢?当然是为了更好的开辟,所以我们终于来到了开辟之前的一个环节,学完该基础环节,我们就可以上手举行开辟了,激动~
  
  
一、代码工具–vim

1、vim根本概念

vim我们重要使用三种模式,分别是命令模式、插入模式和底行模式
命令模式:用户全部的输入都会被以为是命令,可以控制屏幕光标的移动,字符、字、行删除,可以按i进入插入模式或按:进入底行模式
插入模式:用户全部的输入都会被以为是文本输入,按esc切换到命令模式
底行模式:用户用来举行文件生存或退出,举行文件替换,找字符串,列出行号等操作,按esc切换到命令模式
以下是vim的全部模式,共12种,六种basic modes,六种additional modes,在底行模式输入help vim-modes可以检察

2、vim操作

(1)命令模式

正常我们使用vim的时间,进入就是命令模式,下面是常用的命令
命令作用gg定位光标到文章开始G定位光标到文章末了num+G定位光标到num行行首$定位光标到当前行结尾^定位光标到当前行开始w,b光标按照单词举行行内跨行,举行移动h,j,k,l光标左,下,上,右(num)yy复制光标所在(num)行(num)dd剪切、删除(num行)(num)p粘贴(num重复行)到光标所在行下一行u撤销ctrl+r反撤销~巨细写转换(num)r对光标字符以及之后的全部字符举行批量化替换R对内容举行整体替换,也是一种模式,相当于是我们常用的第四种模式(num)x对光标字符之后的字符举行删除

(2)插入模式

插入模式没啥可说的,进入插入模式就可以在文本中举行编辑了,此时输入的字符都会在文本中呈现出来的

(3)底行模式

命令作用set nu列出文件每一行行号(num)在底行模式下直接输入一个数字num直接转到num行/+字符类似于前面在命令中说的less命令的查找,/查找字符是往后查找,如果查找到的关键字不是你想要的,那么可以移植点按n键往后继续找?+字符同上,往后找w生存文件q退出文件q!逼迫退出wq生存退出wq!逼迫生存退出

3、设置vim

我们没有设置的vim是不好用的,这个不好用指的是它并不是一个写代码的环境,由于它原本也只是一个文本编辑器,设置一下有利于我们举行代码的写入,所以以后写文本文件我们用nano,写代码就用vim
我们的vim设置都在隐藏文件.vimrc中

一样寻常我们推荐直接一键化设置vim,不要自己去设置了,很贫苦,在Linux下输入以下命令然后输入root密码就一键设置了,大佬写好的直接用很香,安装完成后重启一下shell就好了
   curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
  二、编译工具–gcc/g++编译器

   这里只讲gcc,由于g++跟gcc指令根本差不多,而C语言作为基础语言各人更方便学习
  1、程序翻译过程

c程序的翻译分为预处置惩罚、编译、汇编、链接四个部分,这里我们可以穿插新内容简单追念一下,有兴趣各人可以看看我从前写的有关这部分的blog
C语言预处置惩罚~
C语言编译和链接~
预处置惩罚阶段重要就是举行宏替换,天生.i文件
编译阶段查抄代码规范性、语法错误,天生.s文件
汇编阶段天生机器可辨认代码,天生.o文件
链接阶段链接库文件天生可执行程序

在图片中我们可以直观的看到,test.c颠末预处置惩罚后,天生test.i,文件巨细变大了特别多,这就是宏替换,大量头文件的包含引入,然后颠末编译,文件巨细变小,然后汇编,由汇编代码天生二进制编码,巨细变大,再然后就是链接库天生可执行文件
这里的库是函数库,由于像printf这样的函数,在我们的C程序中没有实现,并且在stdio.h中也只有printf的声明而没有实现,那么printf函数是在哪里实现的呢?答案就是函数库
函数库分为动态库和静态库两种,静态库在链接阶段,会将库中被程序使用的目标文件(包含函数的实现代码等)提取出来,与程序自身的目标文件组合在一起,天生最终的可执行文件,这样做的好处是,可执行文件相对独立,不依赖外部的库文件就可以运行,由于所需的库代码已经包含在此中了,坏处就是文件太大了,动态库的链接又分为加载时链接和运行时链接两种情况,但总的来说我们用一个简单的方式来理解,就是相当于在程序中放了一个链接,这里的链接就是我们寻常说的地址链接,它可以找到动态库,然后在使用某个函数的时间再向外探求,这样做的好处就是文件小,坏处就是可执行文件必须依赖外部的库文件运行,一旦该库文件消散或者换了位置,那么它就不可运行,并且其他依赖该库文件的程序也会不可运行
我们正常举行翻译的时间是动态链接的,如果需要静态链接就在后面加上-static

我们可以显着看出静态链接的文件比动态链接的文件要大100倍,但是我们发现为什么test1比test.c也大了100多倍这么多呢?其实上面所说的动态链接不是纯动态链接,而是一部分动态一部分静态,是混淆的
2、动静态库注意事项

如果我们没有静态库是不能完成静态库链接操作的
如果我们没有动态库,只有静态库,我们不举行-static链接,按照默认动态链接的指令举行也是可以链接的,链接的是静态库,由于指令在默认条件下是举行动态链接的,优先搜索动态库,如果没有那就搜索静态库,如果都没有那就链接失败
在我们正常gcc test.c -o test指令下,不是纯动态链接的,而是混淆的,就是有动态链接的部分,有静态链接的部分,而加上-static就是全部静态链接了
3、gcc使用

   gcc [选项1] 要编译的文件 [选项2] [目标文件]
  选项1作用-E只激活预处置惩罚-S编译到汇编语言不举行汇编和链接-c编译到目标代码 选项2作用-o文件输出到文件 三、多人写作开辟工具–git

1、简介

git是一个开源的分布式版本控制系统,用于高效地管理软件开辟过程中的代码版本,git允许开辟人员将代码堆栈克隆到本地,在本地举行开辟、提交、推送等操作,并且可以方便地与长途堆栈举行同步,每个开辟者都拥有完备的代码堆栈副本,包罗全部的版本汗青和元数据,这使得开辟过程更加独立和机动
与会合式版本控制系统不同,git没有单一的中央服务器,每个开辟者的本地机器上都有一个完备的版本库,包含了全部的提交汗青和版本信息。这意味着开辟者可以在本地举行完备的开辟流程,包罗提交、暂存等操作,而无需依赖网络毗连到中央服务器
git接纳了一种称为 “快照” 的方式来存储版本信息,它会在每次提交时为整个项目创建一个快照,记载下全部文件的状态,同时,git使用了高效的压缩算法和数据结构来存储这些快照,大大淘汰了存储空间的占用,并且可以大概快速地举行版本的切换、合并等操作
git的分支创建和切换非常轻量级,几乎可以刹时完成。开辟者可以轻松地创建多个分支,用于不同的开辟任务,如功能开辟、修复 bug 等。各个分支之间相互独立,开辟人员可以在不同分支上并行开辟,然后根据需要将分支合并到主分支或其他分支上。
重要用于团队协作开辟代码备份与规复开源项目管理
2、git使用

信赖各人都不陌生Github和Gitee,前者是全球最大的开源代码托管平台,后者是面向国内开辟者的代码托管平台,有很多的开源项目和学习资料我们可以从中下载,我们自己也可以开源项目共其他人检察,Github作为一个外国网站,自己访问不太稳定,需要借助一定的“技能”才能使用,所以我们在这里展示一下Gitee的使用


新增堆栈时下方三个按钮都是可选可不选的,一样寻常来说,如果我们的堆栈是纯某个文件的堆栈,我们都会将初始化堆栈中的.gitignore勾选,它的作用是将文本中有的后缀名在我们推送到远端堆栈时全部默认不推送

然后就是readme文件,这个文件简单就是阐明书,对于开源项目是必不可少的
通过git clone+远端堆栈链接将远端堆栈克隆下来


在这里创建文件,然后写文件,然后我们如果想要打包好开源到Gitee上的该堆栈上我们需要先将参加待定区,使用
   git add+文件名
  将文件参加待定区,然后
   git commit -m “备注”
  允许发送到长途堆栈,末了
   git push
  发送到远端堆栈,此中要在备注中写明这个文件是啥


本日分享就到这里了~


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表