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

简介: 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'

安装内容:

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

卸载内容

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

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

yum源更新

yum clean all
yum makecache

vim

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

使用方法:

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

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

vim的一些基本指令

// 显示行号
set nu
// 保存
:+w
// 退出
:+q

定位功能的指令

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

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个字符
#     # 查找同名单次

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

进入视图模式:Ctrl+v

回到命令模式:Esc

vim模式下的注释

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

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++的用法是一样的

相关文章
|
6月前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
353 0
|
10月前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
1165 25
|
Linux 开发工具 数据安全/隐私保护
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
这篇文章介绍了在CentOS 7系统中安装Docker时遇到的两个常见问题及其解决方法:用户不在sudoers文件中导致权限不足,以及yum被锁定的问题。
241 2
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
|
自然语言处理 运维 开发工具
深入探讨了 NeoVim 相较于传统 Vim 的优势,包括更好的扩展性、现代化的界面和用户体验、多语言编程支持、强大的异步处理能力、更好的协作支持、持续的更新和改进、活跃的社区以及与现代开发工具的集成
本文深入探讨了 NeoVim 相较于传统 Vim 的优势,包括更好的扩展性、现代化的界面和用户体验、多语言编程支持、强大的异步处理能力、更好的协作支持、持续的更新和改进、活跃的社区以及与现代开发工具的集成。通过命令对比,展示了两者在启动、配置、模式切换、移动编辑、搜索替换、插件管理、文件操作、窗口缓冲区管理和高级功能等方面的差异。总结部分强调了 NeoVim 在多个方面的显著优势,解释了为什么越来越多的运维人员选择 NeoVim。
1001 3
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
292 2
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
1275 0
|
Linux Shell 开发工具
【linux】Linux编辑器-vim
【linux】Linux编辑器-vim
222 0
|
Linux 开发工具 数据安全/隐私保护
【Linux】软件包管理器yum和编辑器vim的使用(下)
【Linux】软件包管理器yum和编辑器vim的使用(下)
|
弹性计算 Unix Linux
Linux:文本编辑器 - vim
Linux:文本编辑器 - vim
185 1
|
缓存 人工智能 Linux
【Linux】--- 详解Linux软件包管理器yum和编辑器vim
【Linux】--- 详解Linux软件包管理器yum和编辑器vim
213 0