• Linux:基础开发工具之yum,vim,gcc的使用


    文章目录

    本篇主要总结的是Linux下开发工具

    1. yum
    2. vim
    3. gcc/g++

    yum

    什么是yum?

    不管是在手机移动端还是pc端,不管是什么操作系统,当用户想要下载一些内容或者工具的时候,都需要到一个特定的位置进行下载,例如在手机上,要下载一些应用的时候就可以去对应的应用商店下载

    而在Linux系统中也有这样的概念,在Linux系统下也有需要下载的需求,那通常来说下载的方式主要有下面的几种:

    1. 下载一个程序的源代码,进行编译后得到可执行程序进行使用
    2. rpm包进行安装,安装实际上就是把可执行程序拷贝到指定的路径下
    3. yum一键式安装

    通常来说,如果采用前两种方法进行的安装是很繁琐的,因此Linux中有这样一种比较方便的安装工具就是yum,如果类比到移动端,yum扮演的角色就是应用商店

    yum是如何工作的?

    在看这个问题前,首先要类比应用商店:应用商店中的app在没有被我安装到手机上的时候,这些app在哪里?答案是在服务器端

    各个公司完成的软件,经过应用商店的审核后,把这些内容放到服务器端上,当用户需要某个软件的时候,就通过这个服务器端,就可以找到对应的软件安装包进行安装,这当中服务器端起到了一个审核的作用,以保证用户下载到的都是绿色健康的软件,可以用下图来表示这个过程:

    在这里插入图片描述

    Linux中的下载和上面的模式是一样的,yum的相关文件中,有一些文件保存的就是要去哪里下载文件

    yum的使用方法

    知晓了yum的原理,yum的使用就如同手机上的应用商店的相关内容一样,大概包括查找,安装和卸载:

    查找内容:

    yum list | grep 'xxx'
    
    • 1

    安装内容:

    yum install xxxx
    yum install -y xxxx  # 可以加入-y后缀直接安装
    
    • 1
    • 2

    卸载内容

    yum remove xxxx
    yum remove -y xxxx  # 可以加入-y后缀直接卸载
    
    • 1
    • 2

    和应用商店也有所不同,yum除了可以下载官方提供的下载源外,还可以有一些扩展软件源,例如epel等:

    在这里插入图片描述

    yum源更新

    yum clean all
    yum makecache
    
    • 1
    • 2

    vim

    vim简单来说,就是一个多模式的编辑器,核心工作就是对文本进行增删查改

    使用方法:

    vim test.c  # 使用vim打开一个文件进行文本编辑
    
    • 1

    就可以打开test.c这个文件进行文件内容的编辑

    vim的一些基本指令

    // 显示行号
    set nu
    
    // 保存
    :+w
    
    // 退出
    :+q
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    定位功能的指令

    以下指令均为在命令模式下可以进行:

    gg    # 定位到第一行
    n+G   # 定位到代码的任意一行|最后一行
    ^     # 特定一行的开始
    $     # 特定一行的结尾
    h     # 文本向左移动
    j     # 文本向下移动
    k     # 文本向上移动
    l     # 文本向右移动
    w     # 以单词为单位向后移动
    b     # 以单词为单位向前移动
    n+yy  # 复制当前行
    n+dd  # 剪切第n行内容
    n+p   # 粘贴
    u     # 撤销
    Ctrl+r# 向后撤销
    ~     # 文本大小写相互转换
    n+r   # 替换光标所在字符|n个字符
    n+x   # 向后删除一个字符|n个字符
    n+X   # 向前删除一个字符|n个字符
    #     # 查找同名单次
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    下面引入第四种模式—视图模式

    进入视图模式:Ctrl+v
    回到命令模式:Esc

    vim模式下的注释

    # 批量化注释
    Ctrl+v+j/k进行选区+shift+i+esc
    
    # 批量化删除注释
    Ctrl+v+hjkl选中区域+d
    
    • 1
    • 2
    • 3
    • 4
    • 5

    vim的基本配置方法

    • 基础配置—初步理解vim配置的原理
      vim在启动的时候,会自动扫描当前用户下的家目录下的.vimrc,让内部的.vimrc内部的选项生效
    • vim配置的核心,实际上就是在这个.vimrc中添加更多的配置选项即可

    vim的自动化部署问题

    提权问题:如何把用户从普通用户提权提到root权限?

    在这里插入图片描述
    当我们作为普通用户要提权,使用root权限的时候,会被受阻,提示我们没有合适的权限,上面就是提示的样例,这是因为此时我们的test用户并没有成为root的受信任列表内,那么就需要把test这个用户加入到受信任列表内,这样就可以使用root用户的权限,而不是一次次的切换用户

    解决方法:

    首先切换到root用户下,访问etc路径下的``````sudoers```

    接着打开这个文件,在受信任名单内添加我们需要的用户

    在这里插入图片描述
    这样就完成了受信任名单的添加,此时就可以直接使用sudo进行提权了:

    在这里插入图片描述

    gcc

    gcc是一款编译器,可以将一份c语言程序编译为可执行文件,运行这个可执行文件就可以输出对应的内容,那么在进行编译的这个过程会发生什么?

    将程序翻译的过程,大致上是可以分为下面的几个部分:预处理,编译,汇编,链接

    1. 预处理:主要包括,头文件展开,去注释,条件编译,宏替换
    2. 编译:主要是将c语言程序转换为汇编语言
    3. 汇编:主要是将汇编文件转换为可重定位的二进制文件
    4. 链接:形成可执行文件

    gcc是一个编译器,如果不带任何选项,默认直接将程序编译为可执行文件,如果带上一些选项可以编译为这当中的一些部分,用下面的例子来举例:

    在这里插入图片描述
    vim编辑器下完成了下面的代码,其中包含了宏,用带选项的gcc进行编译如下:

    在这里插入图片描述

    使用带-E的选项进行编译,可以形成一个经过预处理后的文件,这个文件依旧是c语言文件,只是进行了一些初步的替换和头文件展开等操作

    在这里插入图片描述
    在这里插入图片描述
    此时就形成了test.s,这个文件是进行的编译的工作,编译工作做完就停止了

    在这里插入图片描述
    此时就形成了汇编文件,文件内的内容是汇编指令

    下一步是形成二进制文件:

    在这里插入图片描述
    就将汇编指令转换为了人看不懂的二进制文件

    在这里插入图片描述
    最后一步就是形成可执行文件:

    在这里插入图片描述
    这样就形成了可执行程序:

    在这里插入图片描述

    gccg++的用法是一样的

  • 相关阅读:
    【LeetCode每日一题】——1290.二进制链表转整数
    【论文阅读】23_SIGIR_Disentangled Contrastive Collaborative Filtering(分离对比协同过滤)
    react|redux状态管理
    技术分享 | Jenkins中,如何管理用户及其相对应权限?
    索引常见面试题
    HTML静态网页作业——关于我的家乡介绍安庆景点
    动态代理IP常见超时原因及解决方法
    vue3 实现多条件搜索
    SSM+基于web的《计算机基础》自学系统的设计与开发 毕业设计-附源码221509
    log4j Logger简介说明
  • 原文地址:https://blog.csdn.net/qq_73899585/article/details/132717170