Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)

news/2024/5/20 0:42:55/文章来源:https://blog.csdn.net/m0_74316391/article/details/134314144

前言:在我的上一篇Linux博客我已经讲了基础指令和权限,现在我们来学习如何在Linux上运行和执行代码

目录

一,yum

二,vim

1)命令行模式

2)插入模式

3)底行模式

三,gcc/g++

四,makefile


一,yum

yum是Linux中的软件包管理器,软件包是有人一些人写好的代码和程序作出软件包放到服务器上,我们使用yum就能获取别人编译好的软件,相当于手机里面的应用商店,我们可以用这个去下载东西。

那我们怎么去去下载呢?

yum  install -y  lrzsz
##  install 代表安装   -y  代表自动安装   lrzsz是一个软件安装包

重要的软件包:lrzsz

这个软件包支持我们将Linux和window里面的文件进行互传,rz   支持我们通过拖拽的方式将window里面的文件传到Linux里面,sz   +文件  可以将Linux里面的文件传输到window里面

rz
#可以通过window图形化界面文件的方式传输,支持拖拽
sz  /home/test.c
#以为Linux一切皆文件,所以我们无法通过拖拽传输,必需加上路径

以后如果我们发现有无法发现此指令的错误提示,我们可以百度搜索出该指令的软件包,然后使用yum安装

二,vim

vim是Linux中打开文件的指令,在Linux中一切皆文件,我们无法不通过指令就直接进入文件的内部,而   vim  就是一个打开文件的指令

使用方法

vim  /root/test.c
#vim   文件路径

打开之后会是一个这样的样子,我们无法立马改动,只能查看,三大模式中的命令行模式

1)命令行模式

在这个模式下我们只能查看,但无法改动文件里面的内容,但这个模式是我们想要切换到其他模式的中介,也就是说,想要切换到其他模式我们首先要切换到这个模式

2)插入模式

插入模式顾名思义,就是能够进行编辑的模式,在这个模式下,有很多有用的快捷键助我们编辑

H:光标向左边移动一格

L:光标向右移动一格

J:光标向下移动一格

K:光标向上移动一格

之所以有上面几个快捷键是因为以前没有上下左右键,这个是当年老式键盘的上下左右

shift+G:直接到文本的末尾,想象一下如果文本有上万行,一行一行移动要多久,这个有多爽

数字+shift+G:移动到指定行

GG:回到文本的开头

shift+4:移动到当前行的末尾

shift+6:移动到当前行的首部

x:删除光标所在的字符

数字+x:删除光标后指定数目个字符

X:删除光标前的一个字符

数字+X:删除光标前的指定个字符

dd:删除当前行

数字+dd:删除光标后的指定行数

yw:复制光标所在位置的字符

数字+yw:复制光标后的指定数目字符

yy:复制当前行

数字+yy:复制光标及光标后的指定数目行

p:将复制的字符贴到光标所在位置

u:撤销上一步的操作

ctrl+r:恢复撤销的动作

3)底行模式

进入指令:shift+:

进入之后光标会移动到最下面那一行

这个时候我们就可以输入指令了

set  nu  :这个指令可以标注文件的行数

数字:直接移动到指定的行

?字符:即可查找指定的字符,但是是从当前行开始查找,如果有多个匹配目标,按n可查看下一个匹配目标

/  字符:也查找字符,但是是从文件第一行开始查找,如果有多个匹配目标,按n可查看下一个匹配目标

w:保存本次编辑

q:退出

补充:vim模式可以添加很多插件,向自动补充括号,高亮光标和所在行,这些插件大家可以百度搜索vim的配置,用起来很方便,助力敲代码!!!

wq!:强转保存退出,!代表强转,其他的指令也可使用

三,gcc/g++

gcc一般用于编译C代码

g++一般用于编译C++代码

使用方法

gcc -o test.o  test.c
#test.c是编译的目标文件,test.o是形成的可执行文件
./test.o
#这样就可以执行代码

接下来是一些你可能用到的操作

-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面

-S  编译到汇编语言不进行汇编和链接

-c  编译到目标代码 -

o 文件输出到 文件 -static 此选项对生成的文件采用静态链接

-g 生成调试信息。GNU 调试器可利用该信息。

-shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.

-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高

-w  不生成任何警告信息。 -Wall 生成所有警告信息

四,makefile

首先你想象一个场景,你需要多次编译很多的源代码,如果你手动的一个个编译,我们会累成狗一样,因此Linux给我们提供了一种方法,将我们要做的操作放在里面,我们只要输出一个指令,系统就重复里面的操作,我们就可以节省很多时间,没错那就是makefile

如何用呢?

首先我们要创建一个名字叫makefile的文件,Linux对大小写不敏感,我们可以自便。然后我们使用vim打开makefile,我们现在开始讲

test.o:test.c
#目标文件:原文件2     gcc -o test.o test.c
#具体操作,目标文件可以用@代替,原文件可以用^代替3     .PHONY:clean
#被.PHONY修饰的称为伪目标,伪目标总是默认被执行4 clean:       
#使用make clean指令可以清理形成的文件和清理工作,因为生成的文件如果没有改变是无法再次形成的                                                                                                                                                 5     rm -rf test.o

在使用make的时候我们要注意,make编译一次之后如果文件内容没有发生改变是需要clean一次也就是删除掉形成的可执行文件才能继续make,因为系统无法同时存在两个一样的文件,这里就引出了一个问题,系统是怎么判断文件有没有发生改变的呢?这是因为文件有三个时间属性,modify,access,change。

modify:是最近文件内容修改的时间

change:代表最近文件属性修改的时间,一般来说文件内容改变,文件属性就会改变

access:代表文件最近访问的时间

每次改动文件都可能会改变文件的这些属性,make通过比较时间来确定文件是不是被改动了,当然如果只是访问了文件,make是不会重新编译文件的。

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

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

相关文章

搭建完全分布式Hadoop

文章目录 一、Hadoop集群规划二、在主节点上配置Hadoop(一)登录虚拟机(二)设置主机名(三)主机名与IP地址映射(四)关闭与禁用防火墙(五)配置免密登录&#xff…

Spring -Spring之依赖注入源码解析(下)--实践(流程图)

IOC依赖注入流程图 注入的顺序及优先级:type-->Qualifier-->Primary-->PriOriry-->name

windows服务器限制特定ip访问指定端口(服务器ip白名单)

有些时候我们需要限制特定的ip白名单来访问服务器的指定端口,来防止dos攻击或其他危险访问,我们可以通过防火墙来实现这一需求,下面一起看一下: 1.首先开启防火墙 ps:开启防火墙可能有些端口会无法访问,比如80、443等…

华为L410上制作内网镜像模板02

原文链接:华为L410上制作离线安装软件模板02 hello,大家好啊,今天给大家带来第二篇在内网搭建Apache服务器,用于安装完内网操作系统后,在第一次开机时候,为系统安装软件的文章,今天给大家介绍在…

运行npm install卡住不动的几种解决方案

在前端开发经常会遇到运行npm install 来安装工具包一直卡住不动,为此这里提供几种解决方案,供大家参考学习,不足之处还请指正。 第一种方案、首先检查npm代理,是否已经使用国内镜像 // 执行以下命令查看是否为国内镜像 npm con…

CSS3 用户界面、图片、按钮

一、CSS3用户界面&#xff1a; 在CSS3中&#xff0c;增加了一些新的用户界面特性来调整元素尺寸、框尺寸和外边框。CSS3用户界面属性&#xff1a;resize、box-sizing、outline-offset。 1、resize&#xff1a; resize属性指定一个元素是否应该由用户去调整大小。 <style…

学习OpenCV(蝴蝶书/C++)相关——2.MacOS下使用LLDB调试cpp程序

文章目录 1. VScode中的调试2. 配置VSCode中C++的调试(以OpenCV为例)2.1 创建适用于C++的.launch文件2.2 常见参数说明2.3 调试OpenCV的.launch文件示例2.3.1 .launch文件demo2.3.2 Debug模式的可执行文件3. 联合task.json文件一起使用3.1 创建tasks.json和launch.json文件3.2 …

【Bug】Python利用matplotlib绘图无法显示中文解决办法

一&#xff0c;问题描述 当利用matplotlib进行图形绘制时&#xff0c;图表标题&#xff0c;坐标轴&#xff0c;标签中文无法显示&#xff0c;显示为方框&#xff0c;并报错 运行窗口报错&#xff1a; 这是中文字体格式未导入的缘故。 二&#xff0c;解决方案 在代码import部…

大数据Doris(二十一):数据导入演示

文章目录 数据导入演示 一、启动zookeeper集群(三台节点都启动) 二、启动hdfs集群

05预测识别-依托YOLO V8进行训练模型的识别——对视频中的目标进行跟踪统计

上文中详细介绍了如何对视频进行抽帧,并对帧的图像进行目标识别。但在日常工作中,我们也会遇到需要对目标进行跟踪统计的情况,比如我们需要连续统计某一类目标有多少个的时候,如果单纯从帧中抽取图像的话,系统将无法判断是否为同一目标,从而造成目标数量统计的重复,导致…

25期代码随想录算法训练营第十四天 | 二叉树 | 递归遍历、迭代遍历

目录 递归遍历前序遍历中序遍历后序遍历 迭代遍历前序遍历中序遍历后序遍历 递归遍历 前序遍历 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # …

数据分析实战 | 多元回归——广告收入数据分析

目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型构建 八、模型预测 九、模型评价 一、数据及分析对象 CSV格式的数据文件——“Advertising.csv” 数据集链接&#xff1a;https://download.csdn.net/d…

自主开发刷题应用网站H5源码(无需后端无需数据库)

该应用使用JSON作为题库的存储方式&#xff0c;层次清晰、结构简单易懂。 配套的word模板和模板到JSON转换工具可供使用&#xff0c;方便将题库从word格式转换为JSON格式。 四种刷题模式包括顺序刷题、乱序刷题、错题模式和背题模式&#xff0c;可以根据自己的需求选择适合的模…

solidworks对电脑要求高吗?2023solidworks配置要求

solidworks对电脑要求高吗&#xff1f;SolidWorks是一款功能强大的三维CAD软件&#xff0c;对电脑配置有一定的要求。一般来说&#xff0c;运行SolidWorks需要的电脑配置包括较高的处理器性能、足够的内存和存储空间&#xff0c;以及一块性能良好的显卡。此外&#xff0c;对于大…

“目标值排列匹配“和“背包组合问题“的区别和leetcode例题详解

1 目标值排列匹配 1.1 从目标字符串的角度来看&#xff0c;LC139是一个排列问题&#xff0c;因为最终目标子串的各个字符的顺序是固定的&#xff1f; 当我们从目标字符串 s 的角度来看 LC139 “单词拆分” 问题&#xff0c;确实可以认为它涉及到排列的概念&#xff0c;但这种…

Leetcode2834. 找出美丽数组的最小和

Every day a Leetcode 题目来源&#xff1a;2834. 找出美丽数组的最小和 解法1&#xff1a;贪心 从最小正整数 1 开始枚举&#xff0c;设当前数为 num&#xff0c;如果 nums 里没有 target - num&#xff0c;就说明可以添加 num&#xff0c;依次填满直到有 n 个数即可。 用…

Kibana使用Watcher监控服务日志并发送飞书报警(Markdown)

Watcher是什么 Kibana Watcher 是 Elasticsearch 的监控和告警工具&#xff0c;它允许你设置和管理告警规则以监控 Elasticsearch 数据和集群的状态。Kibana Watcher 可以监测各种指标和数据&#xff0c;然后在满足特定条件时触发警报。它提供了一种强大的方式来实时监控 Elas…

分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测

分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测 目录 分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现PSO-LSTM粒子群算法优化长短…

vscode 终端进程启动失败: shell 可执行文件“C:\Windows\System32\WindowsPower

vscode 终端进程启动失败: shell 可执行文件“C:\Windows\System32\WindowsPower 第一次用vscode&#xff0c;然后遇到这个问题&#xff0c;在设置里搜索 terminal.integrated.defaultProfile.windows 将这里的null改成"Command Prompt" 重启就可以了

SQL必知会(二)-SQL查询篇(3)-过滤数据

第4课、过滤数据 WHERE&#xff1a;过滤条件 使用 WHERE 子句 指定搜索条件进行过滤。 WHERE 子句操作符 表4-1 WHERE 子句操作符 操作符说明操作符说明等于>大于< >不等于>大于等于!不等于!>不大于<小于BETWEEN在指定的两个值之间<小于等于IS NULL为…