一、Linux 软件包管理器 yum
0x01 Linux下软件安装的三种方式
①源码安装: 下载到程序的源代码, 并进行编译, 得到可执行程序
②rpm安装: 下载好rpm包后还需要rpm命令,并且不解决依赖关系
③yum安装: 安装简单,并且其本身会考虑依赖关系
0x02 手机的应用市场与yum之间的对比
提示: yum就相当于手机中的应用市场,是Linux下进行软件安装的一种客户端
0x03 查找Linux下能够安装的所有软件
操作指令: yum list
此时我们是否可以查找一个名叫'sl.x86_64'的软件,怎么样去查找呢?
软件信息:
0x04 安装第一个软件
操作指令: 在root,或者sudo [普通用户]下,yum -y install sl.x86_64,其中-y表示不询问是否安装
运行结果:
0x05 软件卸载
操作指令: yum remove sl.x86_64
0x06 yum源
为什么手机在应用市场下载软件时,知道要下载的软件在服务器的什么地方呢?
因为在应用市场中已经内置了下载时的地址
而yum下载时是去哪里搜索的呢?
因为在/etc/yum.repos.d/目录下存有配置文件
安装扩展源: # yum install -y epel-release
提示:
①yum和手机中的应用市场一样,必须联网才能使用
②在centos里面,只能有一个yum在运行,即不能同时安装俩个软件
0x07 文件上传
lrzsz:可以将windows下的文件上传到Linux中的软件,可以直接拖拽到窗口,也可以可以rz上传,sz发到windows的目录下
安装指令: yum -y install lrzsz
二、 vim编辑器
0X01 什么是vim?
是一种多模式文本编辑器,用来编写代码用的,从定位上,和记事本差不多
0X02 如何使用vim?
①打开文件,文件是可以存在的,也可以是不存在的,不存在就会创建一个文件
②进入时如果想退出,可以按shift + : ,输入q进行退出,w进行保存,!表示强制
③用vim编写第一个代码(进入插入模式是 i,ESC键退出插入模式,进入命令模式)
④模式转换
⑤光标使用(命令模式中)
上下左右 | H(左)J(下)K(上)L(右) |
光标定位到行首 | shift+^ |
光标定位到行尾 | shfit+$ |
光标定位到起始行 | gg |
光标定位到结束行 | shfit+g |
光标跳转到指定行 | n+shift+g |
按照单词为单位进行进行前后光标移动 | b/w |
⑥文本操作(命令模式中)
yy | 复制当前行 |
n + yy | 复制包含当前行及其之后的n行 |
u | 表示撤销 |
Ctrl + r | 撤销最近的撤销 |
p | 粘贴 |
n+p | 一次重复粘贴n行 |
dd | 删除当前光标所在行 |
dd + p | 剪切 |
shift + ~ | 快速大小写切换 |
左向右删除光标之后的一个字符,支持n+x | x |
右向左删除光标之前的一个字符,也支持n+x | X |
替换一个字符,光标所在的字符,支持n+r | r |
替换模式,直接进行多个内容的替换 | shift + r |
⑦底行模式
调出行号 | set nu |
取消行号 | set nonu |
多文件操作(分屏比较) | vs 文件 |
分屏之后跳到下一个文件 | ctrl + w + w |
退出当前文件 | wq |
⑧注释
注释多行:
a.首先进入命令模式
b.Ctrl + v进入区块模式
c.在行首选择需要注释的行
d.按大写输入i键,进入插入模式
e.输入注释符//
f.按下Esc键
删除多行注释:
a.首先进入命令模式
b.Ctrl + v进入区块模式
c.在行首选择需要删除注释的行
d.按下x键
提示:如果是//,则需要执行俩次删除多行注释操作
0X03 vim 如何配置?
①基本的配置都在根目录下的.vimrc文件下
②对vim配置方法不熟悉的新手封装的一键式vim环境安装包:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
提示:可以直接在当前用户的根目录下直接复制安装
0X04 如何添加信任关系?
在root 用户下输入 vim /etc/sudoers ,找到
在下面添加当前用户即可
三、gcc&g++
0x01 程序翻译过程
提示:也可以直接输入gcc test.c -o test
0x02 如何理解链接?
链接: 将自己写的C程序或者第三方库提供的方法以及启动文件等相互关联起来
在Linux中,静态库以.a为后缀,动态库以.so为后缀
在windows下,静态库以.lib结尾,动态库以.dll结尾
静态链接:在链接阶段将各种库文件和相关文件集成到可执行文件中,通俗的讲你要看书,你不用去图书馆去看,你家里就有,可以直接看
动态链接:在可执行文件装在或运行的时候,由操作系统的装载程序加载库文件,通俗的讲,你要看书,你要到图书馆去借书,在回来看
动静态链接参考自:动态链接与静态链接_d.重写由动态链接实现,重载由静态链接实现。_小黛的求职笔记的博客-CSDN博客
gcc默认采用动态链接的方式,形成可执行程序
0x03 如何使用静态库呢?
gcc 在编译时默认使用动态链接,而我们需要使用静态链接时要在后面加上-static
说明没有安装静态库,所以可以安装一下静态库:
sudo yum install -y glibc-static
sudo yum install -y libstdc++-static动静态库安装参考自:
【Linux】静态库和动态库_linux安装静态库-CSDN博客
0x04 如何安装g++?
sudo yum install gcc-c++ libstdc++-devel
参考自:linux中安装g++_linux 安装g++-CSDN博客
四、Debug调试
0x01 引言
如果一个程序可以被调试,该程序的二进制文件一定加入了一些debug信息,而centos中,默认的可执行程序是release
0x02 那么如何将可执行程序增加调试信息呢?
gdb调试程序,必须是debug方式发布,即gcc -g
普通编译和加上-g编译从大小上也可以看出,后者增加了一些调试信息
0x03 如何使用gdb呢?
①进入调试状态
gdb test(gdb 可执行程序)
②list/l行号:显示源代码,接着上次的位置往下列,每次列10行
③ break/b 行号: 在某一行设置断点
④info break:查看断点信息
⑤run/r: 运行程序
⑥step/s: 进入函数内部,相当于vs中的F11(逐语句)
⑦next/n: 单条执行,相当于vs中的F10(逐过程)
⑧display 变量名: 相当于vs中的监视窗口
⑨p 变量: 打印变量值 ,打印一次
⑩undisplay: 取消对先前设置的那些变量的跟踪
此时这里是常显示sum,如若去掉常显示,则可以display
⑪finish:执行到当前函数返回,然后停下来等待命令
⑫continue/c: 从当前位置开始连续而非单步执行程序,即直接叨叨对应的下一个断点
⑬until X行号:跳至X行
⑭delete breakpoints n:删除序号为n的断点
⑮disable breakpoints:禁用断点
⑯enable breakpoints:启用断点
⑰breaktrace(或bt):查看各级函数调用及参数
⑱set var:修改变量的值
提示:finish & continue & until 比较
finish :结束当前函数
continue: 直接到达对应的下一个断点
until: 跳转到指定行