【Linux】yum、vim、gcc使用(超详细)

news2024/9/23 17:13:45

目录

yum

安装软件

卸载软件

查看安装包

安装一下好玩的命令

vim

vim基本操作

模式切换

命令集

vim批量注释

vim配置

gcc

函数库

小知识点:


Linux中常见的软件安装方式     ---------  下载&&安装

a、yum/apt

b、rpm安装包安装

c、源码安装

yum

关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!
可以通过 ping 指令验证:

ping www.baidu.com

安装软件

yum 会自动找到都有哪些软件包需要下载, 这时候敲 "y" 确认安装.

出现 "complete" 字样, 说明安装完成.

sudo yum install lrzsz

卸载软件

sudo yum remove lrzsz

查看安装包

yum list | grep lrzsz

解释:

yum list 是一个 yum 命令,用于列出所有可用的或已安装的软件包。在执行时,它会显示所有软件包的信息,包括软件包名称、版本、发行号以及软件包所在的仓库。

管道符 | 用于将前一个命令的输出传递给下一个命令作为输入。在这个例子中,yum list 的输出被传递给 grep 命令进行进一步处理。

grep 是一个用于搜索文本的命令。它会过滤并显示包含指定模式的行。在这个例子中,grep gcc 会过滤出包含 gcc 的行。

总结:

  • yum list 列出了所有的可用和已安装的软件包。
  • grep gcc 从这些列表中筛选出所有包含 gcc 的行。

安装一下好玩的命令

奶牛说话:

下载:yum install -y cowsay

vim

简单的来说:vim本质是一个多模式的编辑器;

常见的模式:

命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode);

正常/普通/命令模式(Normal mode)
        控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
插入模式(Insert mode)
        只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
末行模式(last line mode)
        文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。

vim基本操作

模式切换

[正常模式]切换至[插入模式]
                        输入a
                        输入i
                        输入o
[插入模式]切换至[正常模式]
                目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
[正常模式]切换至[末行模式]
                「shift + ;」, 其实就是输入「:」

命令集

vim批量注释

1、ctrl+v 

2、j/k选中注释行,用箭头不行(hjkl分别对应:左下上右)

3、ctrl+a

4、//

5、Esc

去掉注释:

1、ctrl+v

2、hjkl选择区域

3、d

vim配置

因为我们的vim操作界面过于简单,编写程序时没有基本的首行缩进,自动补齐等Windows编译器都有的功能,使用起来及其不方便;

可以在家目录下面的.vimrc文件中配置

vim ~/.vimrc

gcc

1.预处理(进行宏替换)
2. 编译(生成汇编)
3. 汇编(生成机器可识别代码)
4. 连接(生成可执行文件或库文件

二进制 -------->汇编--------->可识别代码--------->可执行文件

1、预处理(进行宏替换)

gcc -E code.c -o code.i

-E : 开始进行程序的编译,预处理做完就停下来

2、编译(生成汇编)

gcc -S code.i -o code.s

-S : 开始进行程序的翻译

3、汇编(生成机器可识别代码)

gcc -c code.s -o code.o

-c:进行程序的翻译,汇编完,就停下来

4、连接(生成可执行文件或库文件)

gcc -o code code.o

XXX.o目标文件和标准库进行关联,构建可执行程序

函数库

函数库一般分为静态库和动态库;

静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a”
动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”,如前面所述的 libc.so.6 就是动态库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件,如下所示。 gcc hello.o –o hello

动态库:.so(Linux)     .dll(windows)

静态库:.a(Linux)      .lib(windows)

优缺点:

 连接方式:

静态链接,动态链接;

在云服务器中是默认没有按照c/c++的静态标准库的;

c语言安装:sudo yum install -y glibc-static

c++安装: sudo yum install -y libstdc++-static

小知识点:

查看文件类型:file +文件名

查看文件依赖的库:ldd +文件名

完结!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2158056.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SDK(1.1note)

什么是SDK 控制台程序(Console User interface)CUI 对于控制台程序,通用,也就是平台无关 图形界面系统 可是如果你想要播放一个音乐,C语言有嘛? 所以需要平台开发,不可以移植性 平台会提供…

摒弃“流量思维”,以精准流量驱动企业发展——基于开源 AI 智能名片、链动 2+1 模式及 O2O 商城小程序的思考

摘要:本文深入探讨在当前竞争激烈的营销环境下,摒弃“流量思维”的紧迫性与必要性。强调做内容营销不能仅仅局限于发文案,而应摆脱一味追求阅读量、推荐量和粉丝数的误区,聚焦于获取精准流量。结合开源 AI 智能名片、链动 21 模式…

如何解决npm下载Puppeteer卡死的问题

亲测有效 export PUPPETEER_DOWNLOAD_BASE_URLhttps://cdn.npmmirror.com/binaries/chrome-for-testingnpm install https://github.com/cnpm/binary-mirror-config/pull/47https://github.com/cnpm/binary-mirror-config/pull/47 PS: 最开始看了下面这两个链接&#xff0c…

网络安全-长亭雷池的sql绕过

一、环境 雷池官网docker安装我的版本是 看官网介绍主要防御top10 二、讲解 我这里只描述通用型绕过,对于事件型不多描述,因为通用型的绕过是通杀的,差异化绕过 正常来说我们是因为没有一个很好的过滤所以造成第11关靶场的绕过 但是现在有了…

Stable Diffusion进阶篇:模型训练(附秋叶模型训练器)

前言 今天就来学习下Stable Diffusion关于微调训练方面的知识点。 今天没多少废话,因为我下午要去玩PTCG!让我们冲冲冲 整理和输出教程属实不易,觉得这篇教程对你有所帮助的话,可以点击👇二维码领取资料&#x1f618…

k8s介绍-搭建k8s

官网:https://kubernetes.io/ 应用部署方式演变 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其他技术的参与 缺点:不能为应用程序定义资源使用边界,很难合理地分配计…

Active Directory 实验室设置第二部分- 添加数据到AD域

在之前的文章中,我们已经讨论了AD森林的安装和AD基础知识。在这篇文章中,让我们开始使用 AD 对象(如用户对象、计算机对象、组对象、网络共享等)填充 AD 环境,以及计算机如何加入域。 #1、添加用户对象 可以使用GUI、…

什么是CPQ?一文讲解什么是CPQ选型配置报价系统

什么是CPQ选型配置报价? CPQ,是英文名 Configure Price Quote的缩写,中文称为配置报价软件。该软件经常出现在销售行业。它是一种可以快速为企业报价的销售工具。企业在报价时,会综合考虑数量、折扣、产品可选功能等。CPQ软件能够整合企业的…

Linux学习之路 -- 线程 -- 互斥

目录 1、概念引入 2、互斥锁 1、pthread_mutex_init && pthread_ mutex_destory 2、pthread_mutex_lock && pthread_mutex_unlock 3、互斥锁原理的简单介绍 1、概念引入 为了介绍线程的同步与互斥,我们以抢票逻辑引入相关的概念。 示例代码…

harmonyOS 原来构建还有这么多弯弯绕绕

随着用户需求的不断增长,我们的 APP 已发展成功能丰富的超级APP,这也导致打包构建变得非常耗时,可能需要数小时,严重影响开发效率和产品迭代。通过采用模块化设计、增量构建、并行处理、缓存机制、优化依赖管理,以及云…

SSM整合步骤

目录 一、Mybatis整合Spring 1、整合后的maven坐标 2、核心配置文件 3、pojo、mapper、service配置 4、单测 二、整合SpringMVC 1、引入springMVC的坐标并配置tomcat 2、核心配置文件 3、controller配置 4、启动项目并测试 SSM SpringMVC Spring Mybatis 整合顺序&#xff1…

Spring AOP - 注解方式实现

前文已经讨论了基于配置文件方式实现Spring AOP&#xff08;Spring AOP - 配置文件方式实现&#xff09;&#xff0c;本文采用注解的方式实现前文相同的功能。配置步骤如下&#xff1a; 1、项目增加aop依赖&#xff08;pom.xml) <dependency><groupId>org.springfr…

大数据:快速入门Scala+Flink

一、什么是Scala Scala 是一种多范式编程语言&#xff0c;它结合了面向对象编程和函数式编程的特性。Scala 这个名字是“可扩展语言”&#xff08;Scalable Language&#xff09;的缩写&#xff0c;意味着它被设计为能够适应不同规模的项目&#xff0c;从小型脚本到大型分布式…

vue2 中使用 Tinymce 富文本编辑器详解

vue2.x使用Tinymce富文本 项目中Tinymce效果图安装依赖包/创建依赖文件创建skins文件夹汉化文件-zh_CN.js 封装组件Tinymce.vue组件中使用封装组件tinymce.vueTinymce 扩展插件集合 项目中Tinymce效果图 如果想先了解一下&#xff0c;可以浏览一博主整理的的TinyMCE中文文档&am…

【揭秘大脑与AI的鸿沟:电化学信号与非线性动态交互的奥秘】

目录 【揭秘大脑与AI的鸿沟:电化学信号与非线性动态交互的奥秘】 1. 信息传递的奇迹:电化学信号的奥秘 2. 非线性动态交互:大脑的智慧之源 3. 结构与功能的鸿沟:从并行分布到有限层次 结语:探索未知的边界 【揭秘大脑与AI的鸿沟:电化学信号与非线性动态交互的奥秘】…

【深度学习】【TensorRT】【C++】模型转化、环境搭建以及模型部署的详细教程

【深度学习】【TensorRT】【C】模型转化、环境搭建以及模型部署的详细教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【TensorRT】【C】模型转化、环境搭建以及模型部署的详细教程前言模型转换--pytorch转engineWindows平台搭…

[C#]winform 使用opencvsharp实现玉米粒计数

【算法介绍】 这段代码是使用OpenCvSharp库&#xff08;OpenCV的C#封装&#xff09;对图像进行处理&#xff0c;主要流程包括图像的二值化、腐蚀操作、距离变换、轮廓检测&#xff0c;并在原图上标出检测到的轮廓位置及数量。下面是对代码的详细解读&#xff1a; 初始化&…

网络通信——路由器、交换机、集线器(HUB)

注意&#xff1a;传输层&#xff0c;应用层没有网路设备 一.路由器&#xff08;网络层设备&#xff09; 1.分割广播域 2.一个接口就是一个广播域 3.一般接口位4&#xff0c;8&#xff0c;12。 4.数据转发 &#xff08;由路由表转发数据&#xff09; 5.根据路由表来进行路径选…

基于微信小程序的美食外卖管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

面试速通宝典——1

1. 内存有哪几种类型&#xff1f; ‌‌‌‌  内存分为五个区&#xff0c;堆&#xff08;malloc&#xff09;、栈&#xff08;如局部变量、函数参数&#xff09;、程序代码区&#xff08;存放二进制代码&#xff09;、全局/静态存储区&#xff08;全局变量、static变量&#…