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

news2025/1/11 1:35:41

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

一,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.coloradmin.cn/o/1195608.html

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

相关文章

DCMM咨询评估官方解答及各地补贴政策!

1、DCMM是什么? DCMM是国家标准GB/T 36073-2018《数据管理能力成熟度评估模型》(Data management Capability Maturity Model)的简称,是我国数据管理领域首个正式发布的国家标准,旨在帮助企业利用先进的数据管理理念和…

响应式青少年成长训练营培训网站模板源码

模板信息: 模板编号:28503 模板编码:UTF8 模板颜色:黑白 模板分类:学校、教育、培训、科研 适合行业:培训机构类企业 模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统&#x…

pyOCD

pyOCD 目录结构

Proteus仿真--基于数码管设计的可调式电子钟

本文主要介绍基于51单片机的数码管设计的可调式电子钟实验(完整仿真源文件及代码见文末链接) 仿真图如下 其中数码管主要显示电子钟时间信息,按键用于调节时间 仿真运行视频 Proteus仿真--数码管设计的可调式电子钟(仿真文件程…

C 语言 switch 语句

C 语言 switch 语句 在本教程中,您将通过一个示例学习在C语言编程中创建switch语句。 switch语句使我们可以执行许多代替方案中的一个代码块。 虽然您可以使用if…else…if阶梯执行相同的操作。但是,switch语句的语法更容易读写。 switch … case的语…

下载思科模拟器Cisco packet Tracer7.0

一、下载地址 主要去思科官网下载,但是最新版本没有汉化。 官网地址:https://www.cisco.com/ 百度网盘链接:https://pan.baidu.com/s/1VPTDN7BRgXIWt7m1E_8FMQ?pwd1111 提取码:1111 下载时把它放到U盘里,如图。 解压…

关于安卓刷机,小米手机,各种安卓手机,理念+实践,如:小米8

关于安卓刷机: 比刚买的时候 更加流畅,调节性能 狂暴模式,且无任何冗余软件和垃圾。 作为普通人,就是刷自己想要的系统,比如开发版。打开Root权限,第三方Rec TWRP,面具Magisk,LSPo…

超全总结!探索性数据分析 (EDA)方法汇总!

探索性数据分析(EDA)是一种系统地分析、可视化和总结数据集的过程,以获取洞察并更好地理解数据中潜在的模式和趋势。 EDA是任何数据分析项目中的重要步骤,因为它有助于识别数据中的潜在问题和偏见。EDA有助于为建模和进一步分析奠…

极智芯 | 存算一体 弯道超车的希望

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 存算一体 弯道超车的希望。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:…

win11下安装odoo17(conda python11)

win11下安装odoo17 odoo17发行了,据说,UI做了很大改进,今天有空,体验一下 打开官方仓库: https://github.com/odoo/odoo 默认的版本已经变成17了 打开odoo/odoo/init.py,发现对python版本的要求也提高了…

揭秘南卡开放式耳机创新黑科技,核心技术剑指用户痛点

随着科技的进步和人们娱乐方式的升级,大家对听音工具的选择,从传统的耳机到蓝牙耳机再到AirPods这样的真无线耳机,而今年,也有一种全新的耳机爆发式涌入人们之中,那就是开放式耳机。 开放式耳机的出现,满足…

Vuex:模块化Module

由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。 这句话的意思是,如果把所有的状态都放在/src/store/index.js中,当项目变得越来越大的时候,Vue…

小白版SpringMVC执行流程

目录 从MVC聊起 认识核心组件 SpringMVC执行流程 从MVC聊起 相信大家在刚接触到springMVC的时候,上手时接触的第一个理论应该就是mvc的含义,我们先简单的回顾一下,什么是MVC。 MVC的全名是Model View Controller,是一种使用“…

快块手多功能全自动引流软件-引流工具-引流脚本-自动引流技术功能介绍

脚本功能: 功能1_养号功能 功能2_评论区关注 功能3_评论区私信 功能4_评论区用户作品评论 功能5_评论区点赞 功能6_粉丝回关 功能7_自己粉丝私信 功能8_已关私信 功能9_好友私信 功能10_关键词搜索关注 功能11_关键词搜索私信 功能12_搜索ID关注 功能13_搜索ID私信…

Windows7+vs2005源码安装subversion

Windows源码安装subversion 一、运行环境 windows7 32位系统 VS2005完整安装 二、源码编译环境配置 1、python环境安装 python-2.4.msi2、perl环境安装 ActivePerl-5.8.8.822-MSWin32-x86-280952.msi3、openssl编译 C:>cd openssl-0.9.7f C:>perl Configure VC-W…

element ui中Select 选择器,自定义显示内容

正常情况下,下拉框选项展示内容,就是选择后展示的label内容 如图所示: 但是要想自定义选项内容,但是展示内容不是选项label的内容,可以在el-option标签内增加div进行自定义选项label展示,但选择后结果展示…

【STM32】STM32Cube和HAL库使用初体验

1.STM32Cube和HAL库模式开发流程 1、流程介绍 (1)环境搭建:STM32CubeMX安装、STM32xxFW安装、MDK5安装、pack包安装【顺序很重要】 【STM32】STM32的Cube和HAL生态-CSDN博客中的3.STM32CubeMX工具入门 (2)STM32CubeMX中创建工程,选择芯片型号&#xff0…

跟着openai学编程

装饰者模式 class Component:def operator(self):passclass ConcreteComponent(Component):def operator(self):return "ConcreteComponent operator"class Decorator(Component):def __init__(self, component) -> None:super().__init__()self.component compo…

MySQL最新2023年面试题及答案,汇总版(4)【MySQL最新2023年面试题及答案,汇总版-第三十四刊】

文章目录 MySQL最新2023年面试题及答案,汇总版(4)01、一个6亿的表a,一个3亿的表b,通过外键tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录?02、SQL语句优化的一些方法有哪些?03…

机器人入门(五)—— 仿真环境中操作TurtleBot

仿真环境中操作TurtleBot 一、实操1.1 查看姿态信息1.2 控制turtlebot移动的三种方式1.2.1 命令行发布指令1.2.2 键盘操控1.2.3 Python脚本控制1.2.4 使用rqt工具界面,发布运动指令 二、里程计(odometry)TurtleBot3 仿真 进行实操之前,先准备环境 $ sud…