当前位置: 首页 > news >正文

Linux环境基础与开发工具使用

1. Linux编译器vim

1.1 vim的基本概念讲解

vim有很多种模式,我们初学者常用的就是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。

命令/正常模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下, shift+: 即可进入该模式。

 PS:不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。

在末行模式下我们输入w就是保存,输入q就是退出,输入wq就是保存并退出,wq!就是强制保存并退出。

1.2 三模式之间的切换

我们一开始进入vim是命令模式,我们要切换成插入模式才可以编写代码。

以下就是三模式之间的切换的方式:

 1.3 vim正常模式常用命令

• 行间移动:

◦ h:向左移动一个字符 ;nh 向左移动n个字符。

◦ l:向右移动一个字符 ;nl 向右移动n个字符。

◦ j:向下移动一行 ;nj 向下移动n行。

◦ k:向上移动一行 ;nk 向上移动n行。

• 行内移动:

◦ 0:移动到行首。

◦ ^:移动到本行第一个非空白字符。

◦ $:移动到行尾。

• 单词移动:

◦ w:移动到下一个单词的开头。

◦ e:移动到当前或下一个单词的末尾。

• 文件内跳转:

◦ gg:移动到文件开头。

◦ G:移动到文件末尾。

◦ nG 或 :n :跳转到第n行 。

• 翻页移动:

◦ Ctrl + u:向上滚动半页。

◦ Ctrl + d:向下滚动半页。

◦ Ctrl + b:向上滚动一整页。

◦ Ctrl + f:向下滚动一整页。

• 删除:

◦ x:删除光标所在字符 ;#x(如6x )删除光标后#个字符。

◦ X:删除光标前一个字符 ;#X(如20X )删除光标前#个字符。

◦ dd:删除光标所在行 ;#dd(如3dd )从光标所在行开始删除#行。

◦ d$ 或 D:删除光标到行尾内容。

◦ dw:删除光标到单词末尾内容。

• 复制:

◦ yy:复制光标所在行 ;#yy(如6yy )复制光标所在行往下#行内容。

◦ y$:复制光标到行尾内容。

◦ yw:复制一个单词。

• 粘贴:

◦ p:若复制内容为行,粘贴到当前行下方;若小于一行,粘贴到光标右侧。

◦ P:若复制内容为行,粘贴到当前行上方;若小于一行,粘贴到光标左侧。

◦ #p(如3p ):粘贴#次。

• 替换:

◦ r:替换光标所在字符,输入新字符即可替换 ;#r(如2r )替换#个字符。

◦ R:进入连续替换模式,直到按Esc 键结束。

• 更改:

◦ cw:更改光标所在处的字到字尾处 ,删除单词并进入插入模式 ;#cw(如2cw )更改#个单词。

◦ c$:更改从光标位置到行尾的内容,删除并进入插入模式。

• 撤销与恢复:

◦ u:撤销上一步操作 ;#u(如5u )撤销最近#次操作。

◦ Ctrl + r:恢复撤销的操作。

• 重复操作:

◦ .:重复上一次操作 ;#.(如10. )重复上一次操作#次。

1.4 vim末行模式常用命令

• 跳转到指定行:
:行号(如 :10,光标跳转到第10行)。

• 跳转到文件开头:
:1(快速回到首行)。

• 跳转到文件末尾:
:$(光标移至最后一行)。

• 查找:

◦ 正向查找:/关键字(如 /hello,从当前位置向后查找,按 n 下一个,N 上一个)。

◦ 反向查找:?关键字(如 ?world,从当前位置向前查找,按 n 下一个,N 上一个)。

• 替换:

◦ 行内替换:范围s/旧内容/新内容/g(如 :1,20s/abc/def/g,将1-20行的“abc”替换为“def”)。

◦ 全局替换(带确认)::%s/旧内容/新内容/gc(% 表示全文,c 逐个确认替换)。

• 保存文件:

◦ :w(保存当前修改)。

◦ :w 文件名(另存为新文件)。

• 退出VIM:

◦ :q(未修改或已保存时退出,否则报错)。

◦ :q!(强制退出,不保存修改)。

◦ :wq 或 :x(保存并退出)。

• 显示/隐藏行号:
:set nu(显示); :set nonu(隐藏)。

• 开启/关闭语法高亮:
:syntax on(开启); :syntax off(关闭)。

• 高亮/取消搜索结果:
:set hlsearch(高亮); :set nohlsearch(取消)。

执行外部命令

:!命令(如 :!ls,不退出VIM执行Shell命令)。

2. g++与gcc

g++与gcc分别就是在Linux编译器里面的C++与C语言。

下面就是我们使用C++写的一个代码,那么我们在编译的时候就必须使用g++(我们写的纯C语言的代码也可以用g++)。

 我们通过以下的方式就可以生成一份可执行文件(默认叫做a.out)。

 3. 动态库与静态库

 我们要知道代码对于计算机来说并不是像我们看到的那样的,我们写的代码会经历预处理(进行宏替换) ->编译(生成汇编) ->汇编(生成机器可识别代码)-> 链接(生成可执行文件或库文件)。

而动态库与静态库则是在链接阶段被嵌入代码中。

那么动态库与静态库又有什么差别呢?我个人认为他们就好像自定义函数与内联函数。

编译器记录下动态库里面的一些信息,然后把源代码里面包含这些信息的部分与动态库进行连接,从而实现调用。

静态库则是在链接阶段把自己的代码拷贝到原代码中。

4. 自动化构建工具makefile

makefile写好之后,我们只需要一个输入make和make clear就可以实现可执行文件的生成与销毁。

以下就是makefile里面要写的内容:

然后我们就可以生成可执行文件mytestvim。 

 最后我们可以通过make clean来对mytestvim进行销毁:

 像clean这种,没有被第一个目标文件直接或间接关联,那么它后面所定义的命令将不会被自动执行,不过,我们可以显示要make执行。即命令——“make clean”,以此来清除所有的目标文件,以便重编译。 但是一般我们这种clean的目标文件,我们将它设置为伪目标,用 .PHONY 修饰,伪目标的特性是,总是被执行的。

PS:像clean这样的伪目标我们可以设置多个。

5. git命令

首先我们要通过yum install git来安装相关的git命令。

然后我们需要输入git clone 【HTTPS】

点击这个位置就可以进行查看HTTPS: 

这样我们就把代码仓库复制到了本地,接着我们需要进入到自己的代码仓库里面并把需要上传的代码复制到仓库,然后就git add [文件名]当然我们也可以git add . 就是吧使用没有添加的全部添加进去。

如果出现这些字我们就需要复制红线内部的内容然后输入自己的邮箱和名字。 

然后输入git commit -m "要取的名字"。

最后输入git push,接着输入自己账号的手机号和密码,接着我们如果看到以下的内容就代表成功了。

特别要注意一点,git是无法全局查找的,所以是一定要把代码复制进本地里面的。

就是要放进下图的这个路径里面。

相关文章:

  • MySQL从入门到精通(二):Windows和Mac版本MySQL安装教程
  • BERT 微调
  • 线性回归有截距
  • 七参数的计算与检验
  • Informer源码解析4——完整注意力机制解读
  • 【AI】Ubuntu 22.04 4060Ti 16G vllm-api部署Qwen3-8B-FP8
  • 【Redis | 基础总结篇 】
  • 对接印度股票数据实战 - Python实现完整指南
  • vue3+ts学习!
  • 【redis】redis 手动切换主从
  • linux redis 设置密码以及redis拓展
  • WiFi那些事儿(八)——802.11n
  • 本地运行qwen3:30b-a3b速度测试
  • HTML8:媒体元素
  • 如何通过外网访问内网?对比5个简单的局域网让互联网连接方案
  • UE5 使用插件进行Audio2face和UE5的实时链接并实时输出嘴型
  • 生成式 AI:从工具革命到智能体觉醒,2025 年的质变与突破
  • Python企业级MySQL数据库开发实战指南
  • Factorio 异星工厂 [DLC 解锁] [Steam] [Windows SteamOS]
  • 第十五届蓝桥杯单片机国赛-串口解析
  • 中方对原产印度进口氯氰菊酯实施反倾销措施,商务部回应
  • 郑州一街道被指摊贩混乱经营,12345热线:已整治并加强巡查
  • 消失的日本中年劳动者:任何人都有与社会脱节的风险
  • 特朗普:对所有在国外制作进入美国的电影征收100%关税
  • 贵州黔西市游船倾覆事故致9人死亡1人失联
  • 巴基斯坦宣布禁止与印度的进口贸易