Linux gcc 6

本章开始学习工具

什么是工具?

本质也是指令

yum 命令

小火车

sudo yum install sl(安装sl)

sudo yum install -y sl  //直接yes就不提示了

yum list  //将yum源上的软件都穷举出来

yum search sl //结果不友好,不推荐

yum list | grep sl //将于sl匹配的才列举出来

yum list | grep | more

yum remove sl //交互卸载

yum remove -y sl //直接卸载

rz命令

sz命令

就实现了windows和Linux互传文件了

也可以实现Windows拖拽到Linux上传但是要安装lrzsz这个软件

第一步 先yum list | grep Irzsz  查看一下这个软件

第二步 sudo yum -y lrzsz

yum install epel-release     //扩展非官方软件  如sl小火车

yum的扩展

好像只告诉了yum我要安装什么!并没有直接告诉yum要安装的软件,在哪里下载?

yum要知道实际要到哪里去找

所以我们需要知道一个叫yum源的配置文件

/etc/yum.repos.d/下的

CentOS-Base.repo//基础yum源,里面包含了大量了下载连接

打开

l修改yum源为国内镜像_yum修改镜像源-CSDN博客

了解下

服务器的配置好了

 

(记得要备份)

能在Centos-base.repo搜索出来的都是官方软件

yum install -y epel-relsease   //拓展非官方的

vim编辑器的学习

基本模式的基本理解

命令模式的意义:

提高效率

光标定位法

shift+6(^) =行的首位

shift+4(¥)=行的末尾

shift+g=文本最结尾

gg

n + shift +g = 跳转到指定的第n行

光标移动:

h:左

j:下    (jump悬崖跳下)

k:上     (king->皇上高高向上)

l:右

为什么会有这四个键呢?

老式键盘

vim命令下如何复制

在复制行按下yy(完成复制)【nyy多行复制】

p是粘贴【n(数字)p是粘贴n次(多行粘贴)】

u:撤销

dd:删除光标所在行(支持ndd从光标到第n行)

ndd + p:剪切

文本编辑:

大写小写切换:shift+ ~

shift +r=R:批量化替换

r:替换光标所在的一个字符,支持nr

nr:

行内删除:

shift+x=X:行内前删

x行内后删

支持nx or nX

也可以支持p回来

出现这个:

直接退出

:wq!

补充:

w:向后按照单词移动   b:向前按照单词移动

cw:将光标中的单词删除并进入insert模式

c#w:将光标中的#个单词删除并进入insert模式

u:撤销

ctrl+r:撤销一个u操作

命令模式进入插入模式

命令-》插入

i/a/o......................

 底行模式

:set nu(调出行号)

:set nonu(取消行号)

:w(写入)q(退出) !(强制退出)  实在不行只能:!说明不是你的文件

:vs [文件名]   //分屏 

在命令模式下

可以在底行模式下执行shell命令

:![命令] 

 //:!ls     :!man  在vim下查看编译执行  :!gcc  :!./a.out

底行中的替换操作

:%s/###/***/g                    (将###替换成***)

了解vim配置

1、vim的配置,是一人一份的,一个用户的配置是自己的

2、每一个人虽然用的是同一个vim程序,但是,大家用的是不同的vim配置(每一个用户,在自己家目录下,都有一个属于自己的配置文件vimrc)

3、所谓的vim基本配置,就是修改自己的.vimrc(不要动任何不属于你的配置文件)

4、我怎么知道要配置什么呢?(自己去搜索)

所以要自己创建touch .vimrc

vim test.c 就有行号了

修改vim配置

简单了解就好

打开gitee

Gitee 搜索

搜索vimforcpp

进入下拉有vim配置的安装直接配置好的

下拉自己看

支持环境

目前只支持 Centos7 x86_64. 后面会考虑 Ubuntu 等发行版的支持.

安装方法

在 shell 中执行指令(想在哪个用户下让vim配置生效, 就在哪个用户下执行这个指令. 强烈 "不推荐" 直接在 root 下执行):

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

需要按照提示输入 root 密码. 您的 root 密码不会被上传, 请放心输入.

如果出现curl: command not found就是curl没有安装

curl: command not found解决方法-腾讯云开发者社区-腾讯云 (tencent.com)

centos7:sudo yum install -y curl

接下来就可以安装了

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

配置完成

改一下安装好后改下缩进 (可以自己改一下vimrc文件)

---------------------------------------------------------------------------------------------------------------------------------

gcc/g++

1、复习一下程序的翻译过程

预处理(头文件展开、去注释、宏替换、条件编译)

、编译

、汇编

、连接

预处理

gcc -E test.c -o test.i    

预处理将头文件需要的都导入到源程序中,可以说预处理后不需要头文件了

预处理会将头文件拷入源文件

在调用头文件时,系统必须要有库,才可以调用

宏的命令行定义

预处理后还是c语言是一份干净的c语言

编译

所以接下来就是要编译:把c翻译汇编语言

gcc -S test.c -o test.s  //现在开始,进行程序的翻译,做完汇编之后停下

汇编

汇编语言可以被计算机直接执行吗? 

不可以,汇编语言是有了助记符不是二进制目标

gcc -c test.s -o test.o    //将汇编语言转化为二进制定向目标文件

Linux od命令教程:如何以各种格式转储文件(附案例详解和注意事项)_od linux-CSDN博客

二进制目标文件不能被执行

链接

把你写的代码和c标准库中的代码合起来-------链接的过程

gcc test.o

总结:

不好记

程序翻译的过程键盘的左上角:ESc()

文件后缀   lso(镜像的后缀)

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

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

相关文章

活动报名 | 如何进行全增量一体的异构数据库实时同步

伴随着新技术的不断涌现,市场竞争也在不断开辟新的角斗场——新的业务需求,新的应用设想都在这里迸发。 面对如此日新月异的竞争环境,企业的当务之急,是为新应用扎根准备好随时可取、准确一致的高质量数据土壤。在这样的背景下&a…

(二十八)Flask之wtforms库【上手使用篇】

目录: 每篇前言:用户登录验证:用户注册验证:使用示例: 抽象解读使用wtforms编写的类:简单谈一嘴:开始抽象: 每篇前言: 🏆🏆作者介绍:【…

Docker 磁盘占用过多问题处理过程记录

一、问题描述 突然发现服务器磁盘使用超过95%了(截图时2.1 和 2.2 已经执行过了) 二、问题分析与解决 2.1,docker 无用镜像占用磁盘 # 使用 docker images 查看服务的镜像 docker images# 可以手动删除一些很大不用的 docker rmi ***## 也…

一秒内传输50万对纠缠光子?!纽约市量子网络刷新纪录

量子网络技术行业的领军企业Qunnect宣布,在纽约市的GothamQ网络上,其偏振量子比特的传输性能刷新了纪录。Qunnect利用现有的商用光缆实现了每秒传输50万对高保真度纠缠光子的速率,且该网络的正常运行时间超过了99%。 纽约34公里长的GothamQ量…

服务器数据恢复—RAID5故障导致SAP+oracle数据丢失的数据恢复案例

服务器存储数据恢复环境: 某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。 服务器存储故障&分析: 该RAID5阵列中一块硬盘出现故障离线&#xff0…

PAT——1009说反话(C++)

问题描述: 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字…

开启Three.js之旅(会持续完善)

文章目录 Three.js必备构建项目场景Scene相机CameraPerspectiveCamera 渲染器WebGLRendererCSS3DRenderer 灯光LightAmbientLightDirectionalLight 平行光PointLight 加载器CacheFileLoaderLoaderGLTFLoaderRGBELoaderTextureLoader 材质MetarialMeshBasicMaterialMeshLambertM…

k8s集群资源编排清单文件解读

1、YAML 文件概述 k8s集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到 YAML 格式文件中,我们把这种文件叫做资源清单文件,通过 kubectl 命令直接使用资源…

原子的内部结构

原子非常神奇,花时间思考它是非常有价值的。尽管传统的太阳系示意图存在致命的缺点,但我们还是可以局部应用于原子。 首先,原子与太阳系具有相似性一原子的中心质量大,外部质量小。我们用最简单的氢原子做分析,氢原子…

亚远景科技-如何应对汽车软件开发中质量与速度的冲突带来的挑战?

在汽车软件开发中,质量与速度之间的冲突是常见的挑战。传统上,提高质量可能需要更多的时间和资源,而追求速度可能会牺牲一定的质量标准。然而,结合ASPICE(Automotive SPICE)和敏捷(Agile&#x…

辽宁梵宁教育课程概览:打造职场新人的设计技能利器

随着数字化时代的快速发展,设计技能在职场中的重要性日益凸显。对于职场新人而言,掌握优秀的设计能力不仅有助于个人职业发展,更能为企业创造更多价值。辽宁梵宁教育,作为一所致力于培养职场新人设计技能的培训机构,以…

【Python基础】14.类的结构

类的结构 实例 使用面向对象开发,首先需要定义类使用 类名() 创建对象,创建对象的动作有两步 在内存中为对象 分配空间调用初始化方法__init__(self,*args) 为对象初始化 创建对象后,内存 中就有了对象实际的存在 –实例 因此,…

devc++ 开发大游戏的各种链接命令集合

devc 开发 easyx 的链接命令集合 具体填写位置同结论 3,或者项目属性(Project Option)里面的 parameter 的 linker 一列。 -leasyx 链接 easyx 图形库 实现图形界面(这个是默认的,不用管。除非不想新建工程,一个 cpp 直接跑代码…

网站localStorage的导入和导出

存 localStorage.setItem(SET_QUERY_FORM, JSON.stringify(params)) 取 const FORM JSON.parse(localStorage.getItem(SET_QUERY_FORM)) 导出 (在console里面粘贴执行) let data JSON.stringify(localStorage,null, 4); // 这是你要下载的数据 …

决策树分类器(保姆级教学) 定义+特性+原理及公式+鸢尾花分类经典问题示例(完整Python代码带详细注释、保姆级分部代码解释及结果说明、决策树可视化及解释)

文章目录 引言定义特性基本原理和公式理解信息增益(ID3算法)熵的定义条件熵信息增益的计算 基尼不纯度(CART算法)基尼不纯度的定义基尼不纯度的计算例子 实现步骤解决鸢尾花分类问题(机器学习入门中的经典案例Python代…

makefile第七讲

更多精彩内容在公众号。 当make执行完后,我们期望将最终的可执行文件安装到系统目录下,这样在不同的目录下都可以执行编译的可执行文件,相当于做成了个命令。这个就需要用到make install。 源文件如下:用于判断系统是小端还是大端…

性能分析与调优

性能分析方法 自底向上:通过监控硬件及操作系统性能指标(cpu、内存、磁盘、网络等硬件资源的性能指标)来分析性能问题(配置、程序问题) 先检查,再下药 自顶向下:通过生成负载来观察被测试的系…

【ROS2笔记七】ROS中的参数通信

7.ROS中的参数通信 文章目录 7.ROS中的参数通信7.1使用CLI工具调整参数7.2参数通信之rclcpp实现7.2.1创建节点7.2.2rclcpp参数API Reference ROS2中的参数是由键值对组成的,参数可以实现动态调整。 7.1使用CLI工具调整参数 启动turtlesim功能包的环境 ros2 run …

如何在本地创建一个贪吃蛇小游戏node.js服务并实现无公网IP远程游玩

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽…

可信通信(TLS/SSL协议)

比特币,以太坊,超级账本在建立网络连接保证节点间可靠通信的时,都直接采用了传输层安全性协议(Transport Layer Security),TLS协议自从1999年发布以来已经广泛的应用在浏览器,电子邮件等应用中了…