• VIM编辑器


    一、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+xx
    右向左删除光标之前的一个字符,也支持n+xX
    替换一个字符,光标所在的字符,支持n+rr
    替换模式,直接进行多个内容的替换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: 跳转到指定行

  • 相关阅读:
    跨链协议支持Sui的资产所有权理念,助力资产在不同链之间流通
    Java并发线程池原理源码深入分析与调优实战
    怎么把视频转换成音频
    c语言:打印成绩单
    R语言查看版本 R包查看版本
    python学习-120-实现Fio结果自动化批量提取测试结果到CSV
    【图论——第七讲】Pirm算法求最小生成树问题及其堆优化
    lucidrains / DALLE2-pytorch原理
    SIP通话分析
    一文详解Cookie 和 Session 会话技术
  • 原文地址:https://blog.csdn.net/qq_53010164/article/details/133490488