
🎬 博主名称 :键盘敲碎了雾霭
🔥 个人专栏 : 《C语言》《数据结构》 《C++》 《Matlab》 《Python》 《Linux》
⛺️指尖敲代码,雾霭皆可破

文章目录
- 一、Linux包管理器
-
- [1.1 安装软件](#1.1 安装软件)
- [1.2 apt具体操作](#1.2 apt具体操作)
- 二、编译器vim
-
- [2.1 vim的基本概念](#2.1 vim的基本概念)
- [2.2 光标命令](#2.2 光标命令)
- [2.3 编辑命令](#2.3 编辑命令)
- [2.4 编辑实用操作](#2.4 编辑实用操作)
- [2.5 底行操作命令](#2.5 底行操作命令)
- [2.6 补充](#2.6 补充)
- [2.7 vim配置](#2.7 vim配置)
- 三、gcc/g++
-
- [3.1 预处理](#3.1 预处理)
- [3.2 编译](#3.2 编译)
- [3.3 汇编](#3.3 汇编)
- [3.4 连接](#3.4 连接)
- [3.5 总结](#3.5 总结)
- 文章结语
一、Linux包管理器
1.1 安装软件
三种安装方式
-
源码安装(不推荐)
-
软件包安装-- rpm(不推荐,无法解决依赖问题)
-
包管理器yum(centos) apt/apt-get(ubuntu)(推荐,自动解决依赖问题)

用包管理器安装分两步
- 网络下载
- 安装(本质是拷贝),必须使用root权限,安装到系统里面,只要安装一次,任何人就都能够使用
安装报错一般有两种方式:
- 缺失相关库和文件
- 版本兼容性
软件包和软件包管理器(yum/apt),就好比"App"和"应用商店"这样的关系.
- yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器.主要应用在Fedora,RedHat,Centos等发行版上.
- Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。
Linux下载软件的过程(Ubuntu、Centos、other)
apt install sl -y

1.2 apt具体操作
-
检查网络
ping -c3 www.baidu.com有回响就代表处在联网环境了

-
搜素
apt list | grep sl

- 卸载
apt -y remove lrzsz
二、编译器vim
2.1 vim的基本概念
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于xwindow、mac os、windows
vim有三种模式(后面还有其他模式)
- 命令模式(默认模式)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 lastline mode - 插入模式
只有插入模式下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。 - 底行模式
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,「shift+;」、即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:helpvim-modes
三种模式如何切换,如图所示:

补充:在底行模式输入set nu可显示行号,在底行模式输入q可以退出,加w代表保存退出
2.2 光标命令
- gg :快速回归光标到第一行
- shift+g(G):快速回归光标到末尾
- n+shift+g:定位到n所在的那一行
- shift+¥(4):跳到这一行最右边
- shift+^(6):跳到这一行最左边
- H(左)、J(下)、K(上)、L(右) :由于历史原因,代表方向键
前面都可以加数字 ,提高效率

- w(向后)、b(想左):以单词为单位(也不准确,具体看vim实现),可以进行移动,前面也可以加数字,提高效率
2.3 编辑命令
-
前面都可以加数字
yy :复制当前行
p :光标所在位置进行粘贴
dd :剪切当前行,或者删除
x :删除光标所在位置的字符
shift+x :光标右侧不动,左侧删除
其中yy、dd、x、shift+x都可以与p组合起来用
-
替换
r :替换光标所在字符,r->目标字符
shift+r :进入到替换模式,批量化替换
-
大小写转化
shift+~ :大小写切换
-
撤销
u :撤销历史操作
ctrl+r :撤销u操作
注意:一旦退出文件编辑,无法在进行撤销了,但是你只是保存,没有进行q退出,可以撤销
-
翻页
ctrl+b/ctrl+u :往前翻页(按代码块翻页)
ctrl+d/ctrl+f:往后翻页(按代码块翻页)
-
显示文件的行号
ctrl+g :显示当前文件的行号
2.4 编辑实用操作
- 注释
先ctrl +V进入视图模式,(想回到命令模式按esc就可以回去),按(h、j、k、l)选择范围(也可以前面加数字,或按n+shift+g跳到某一行),按shift+i进入插入模式(大写I),输入//,按esc退回命令模式就好了(除了注释还可以写其他的,比如漏写的) - 取消注释
先ctrl +V进入视图模式,按(h、j、k、l)选择范围(也可以前面加数字,或按n+shift+g跳到某一行),有时需要按两下h/l,直接d - 查找
shift+3 :选中单词,再按n:逆向查找
三种方式进入插入模式
i:在当前光标下进入插入模式
a:退一格再进入插入模式
o:换一行再进入插入模式 - 快速退出
想要快速退出vim,可以按shift +z+z(两下z)
2.5 底行操作命令
- !:在w或q后面加!,表示强制退出
- set nonu:去掉行号
- set nu :添加行号
!+command :可以在vim中编译和运行,相当于可以执行指令,比如:
! ls -l、! gcc code.c、! ./a.out, %s/dst/src/:一键替换功能- vs (文件名)text.c:代表分屏操作,光标在哪一个窗口,就代表现在操作哪一个窗口,可以分多屏
- ctrl +w+w(两次w):切换窗口光标
- /名称 :查找功能,与
shift +#一致,都可以查找,按n跳到下一个
2.6 补充
- 命令
vim text.c,如果在底行操作命令输入wq,会自动生成一个文件 - 命令
vim code.c(文件) +n:后面加行号,表示默认打开,处在第几行 - ctrl+r:查找
!指令的开头:会执行以这个开头的最近的指令
2.7 vim配置
首先现在个人目录下新建
touch .vimrc
以下配置是我个人常用的配置,现在的可以直接复制粘贴到~/.vimrc 中,保存退出直接生效。
cpp
syntax on " Set syntax highlighting
set number " Set the line number
set tabstop=4 " Set an indent to account for 4 spaces
set autoindent " Set up automatic indentation
set mouse=a " Set mouse is always available, set mouse= (empty) cancel
set cc=80 " Column 80 highlighted, set cc=0 cancellation
set cursorline " Settings to highlight the current row
set cindent " Format C language
set st=4 " Set the width of the soft tab to 4 spaces
set shiftwidth=4 " The width automatically indented when setting a new line is 4 spaces
set sts=4 " Set the number of spaces inserted when the Tab key is pressed in insertion mode to 4
set ruler " Show the status of the last line
set showmode " The status of this row is displayed in the lower left corner.
set bg=dark " Show different background tones
set hlsearch " Enable Search Highlight
set laststatus=2 " Always display the status bar
三、gcc/g++
3.1 预处理
进行宏替换/去注释/条件编译/头文件展开等

- 选项"-E",该选项的作用是让gcc在预处理结束后停止编译过程。
- 选项"-o"是指目标文件,"i"文件为已经过预处理的C原始程序。
3.2 编译
开始翻译,编译做完了,就停下来

3.3 汇编
开始翻译,汇编完成,就停下来

后缀为.o为可重定位目标文件,windows下在vs2022后缀文件为XXX.obj,已经是二进制的文件了
3.4 连接
生成可执行文件或库文件,在成功编译之后,就进入了链接阶段。我们的源文件中,会包含很多的库方法(不是我们自己实现,需要从库里面调,在返回)

gcc会自己去找相关的库,因此不用任何选项

可以看出指令都是用C语言实现的

3.5 总结
记忆方法:按键ESc,镜像文件.iso
一般我们在程序翻译不会把这些临时文件形成,一般会多文件形成.o文件,在再形成.exe
小技巧:使用-c时不带-o会默认形成同名文件

文章结语
感谢你读到这里~我是「键盘敲碎了雾霭」,愿这篇文字帮你敲开了技术里的小迷雾 💻
如果内容对你有一点点帮助,不妨给个暖心三连吧👇
👍 点赞 | ❤️ 收藏 | ⭐ 关注
(听说三连的小伙伴,代码一次编译过,bug绕着走~)
你的支持,就是我继续敲碎技术雾霭的最大动力 🚀
🐶 小彩蛋:
/^ ^\
/ 0 0 \
V\ Y /V
/ - \
/ |
V__) ||
摸一摸毛茸茸的小狗,赶走所有疲惫和bug~我们下篇见 ✨
