Linux探秘坊-------3.开发工具详解(1)

1 初识vim编辑器

创建第一个vim编辑的代码

在这里插入图片描述

1.新建文件

在这里插入图片描述

2.使用vim打开

3.打开默认是命令模式,写代码需要在屏幕上输出“i”字符

  • 1.写完代码后要按Esc键退出到指令模式
  • 2.再按shift+:+wq即可保存并退出vim

(因为不支持鼠标,通常 使用键盘上的箭头 移动光标进行编辑)
在这里插入图片描述

4.cat进行查看

在这里插入图片描述

5.gcc编译文件

在这里插入图片描述
运行成功

2. vim的多模式

1.模式切换

模式切换如图:
在这里插入图片描述
结论:
在这里插入图片描述
命令模式可以理解为Windows系统中的鼠标,可以快速,高效得进行编程

2.命令补充

1.与光标有关的命令
  • n+gg :光标移动至第n行(任意行)
  • shift+g :光标移动至 最后一行
  • shift+$ : 光标移动至所在行的最后
  • shift+^ : 光标移动至所在行的最前
  • h,j,k,l :上下左右移动(h左,l右,j下,k上)
  • w,b: 光标按单词间隔进行行列移动(w向后,b向前)
  • n+ x :在光标所在处 向后删除 n个字符
  • n+ X :在光标所在处 向前删除 n个字符

2.其他命令(命令模式)
  • yy :复制当前一行
  • n+ yy :从当前行开始复制n行代码
  • p :将复制的内容黏贴至当前行的下一行
  • u :撤销上一步操作
  • ctrl+r :对u进行撤销,即恢复操作
  • n+ dd :剪切或删除行
  • shift+r:进入替换模式,可以重新写当前行的代码
3.其他命令 (底行模式)
  • shift+:+set nu: 调出行号(底行模式)
  • “/+字符串” +n : 查找字符串,按n找到下一个字符串
  • !gcc+文件名 : 执行正在写的程序文件,生成可执行程序

在这里插入图片描述

在这里插入图片描述

  • !./a.out (生成的可执行程序) : 执行程序
  • 在这里插入图片描述
  • vs + 文件名(实现分屏操作
  • 在这里插入图片描述
  • ctrl+ww,切换光标至另一个界面(可以用来复制其他文件中的内容配合“yy”)

在这里插入图片描述

4.补充命令
    1. ctrl+v(进入视图模式)->hjkl(移动光标,使其覆盖部分内容)->shift+i->“//”(插入双斜杠,也可以尝试插入别的字符)->esc(回到命令模式)

批量化注释

  • 2.ctrl+v(进入视图模式)->hjkl(移动光标,使其覆盖部分内容)->d

批量化删除注释

  • 3.shift+:->%s/xxx/aaa/g

将代码中的xxx全部换成aaa

3.vim的简要配置

1.进入家目录 cd ~

在这里插入图片描述

2.创建 .vimrc文件 catch .vimrc

在这里插入图片描述

3.vim .vimrc 并在里面写入想要的指令(可以自行去网上搜索)

我这边写入 set nu(显示行数)和 set mouse=a(支持鼠标)

4.再次打开test.c

在这里插入图片描述
发现已经添加了行号。

4.程序翻译-------gcc/g++

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

举例:
在这里插入图片描述
使用gcc -E test.c -o test.i

  • -o:表示我们要形成的文件的名称(这里即test.i)
  • gcc -E:表示从现在开始 只要预处理完成就停下来

用vim打开test.i并与test.c对比:
在这里插入图片描述
宏替换+去注释+头文件展开全部完成)

2.编译(生成汇编)

gcc -S test.i -o test.s

  • -o:表示我们要形成的文件的名称(这里即test.s)
  • gcc -E:表示从现在开始 只要编译完成就停下来

在这里插入图片描述

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

gcc -c test.i -o test.o

  • -o:表示我们要形成的文件的名称(这里即test.s)
  • gcc -c:表示从现在开始 只要汇编完成就停下来

在这里插入图片描述

4.链接(生成可执行文件或库文件)

在这里插入图片描述

gcc test.o -o testtest就是可执行的文件

5.补充知识点sudo(添加用户至白名单)

1.ls -l /etc/sudoers

在这里插入图片描述

2.su(切换至root)
3.vim /etc/sudoers

在这里插入图片描述
发现白名单里只有root,我们可以自行添加用户:
在这里插入图片描述

4.sudo验证

在这里插入图片描述

成功使用sudo,代表白名单配置成功。

在这里插入图片描述

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

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

相关文章

深度学习 | 基于 LSTM 模型的多电池健康状态对比及预测

Hi,大家好,我是半亩花海。在电池管理系统(BMS)中,电池的健康状态(State of Health, SOH)是评估电池剩余寿命的重要指标,而准确预测电池的健康状态可以帮助实现电池的高效管理&#x…

人工智能-机器学习之多分类分析(项目实战二-鸢尾花的多分类分析)

Softmax回归听名字,依然好像是做回归任务的算法,但其实它是去做多分类任务的算法。 篮球比赛胜负是二分类,足球比赛胜平负就是多分类 识别手写数字0和1是二分类,识别手写数字0-9就是多分类 Softmax回归算法是一种用于多分类问题…

JavaScript正则表达式解析:模式、方法与实战案例

目录 一、什么是正则表达式 1.创建正则表达式 2.标志(Flags) 3.基本模式 (1)字符匹配 (2)位置匹配 (3)数量匹配 二、常用的正则表达式方法和属性 1.test()‌ 2.match()‌ …

日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件

日历热力图,月度数据可视化图表,vue组件 先看效果👇 在线体验https://www.guetzjb.cn/calanderViewGraph/ 日历图简单划分为近一年时间,开始时间是 上一年的今天,例如2024/01/01 —— 2025/01/01,跨度刚…

【Linux】常见指令(三)

Linux常见指令 01.nano02.cat03.cp04.mv 我的Linux专栏:【Linux】 本节Linux指令讲解的基本框架如下: 大家可以根据自己的需求,自行进行跳转和学习! 01.nano nano Linux 系统中一款简单易用的命令行文本编辑器,适合…

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证6)

重新创建WebApi项目,安装Microsoft.AspNetCore.Authentication.JwtBearer包,将之前JwtBearer测试项目中的初始化函数,jwt配置类、token生成类全部挪到项目中。   重新编写login函数,之前测试Cookie和Session认证时用的函数适合m…

图解Git——分布式Git《Pro Git》

分布式工作流程 Centralized Workflow(集中式工作流) 所有开发者都与同一个中央仓库同步代码,每个人通过拉取、提交来合作。如果两个开发者同时修改了相同的文件,后一个开发者必须在推送之前合并其他人的更改。 Integration-Mana…

小白爬虫——selenium入门超详细教程

目录 一、selenium简介 二、环境安装 2.1、安装Selenium 2.2、浏览器驱动安装 三、基本操作 3.1、对页面进行操作 3.1.1、初始化webdriver 3.1.2、打开网页 3.1.3、页面操作 3.1.4、页面数据提取 3.1.5、关闭页面 ?3.1.6、综合小案例 3.2、对页面元素进行操作 3…

Flutter鸿蒙化中的Plugin

Flutter鸿蒙化中的Plugin 前言鸿蒙项目内PluginFlutter端实现鸿蒙端实现创建Plugin的插件类注册Plugin 开发纯Dart的package为现有插件项目添加ohos平台支持创建插件配置插件编写插件内容 参考资料 前言 大家知道Flutter和鸿蒙通信方式和Flutter和其他平台通信方式都是一样的&…

【Docker】搭建一个功能强大的自托管虚拟浏览器 - n.eko

前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建,DSM版本为 DSM 7.2.2-72806 Update 2。 n.eko 支持多种类型浏览器在其虚拟环境中运行,本次教程使用 Chromium​ 浏览器镜像进行演示,支持访问内网设备和公网地址。 简介 n.eko 是…

AIGC视频生成国产之光:ByteDance的PixelDance模型

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍ByteDance的视频生成模型PixelDance,论文于2023年11月发布,模型上线于2024年9月,同时期上线的模型还有Seaweed&…

《keras 3 内卷神经网络》

keras 3 内卷神经网络 作者:Aritra Roy Gosthipaty 创建日期:2021/07/25 最后修改时间:2021/07/25 描述:深入研究特定于位置和通道无关的“内卷”内核。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub …

【json_object】mysql中json_object函数过长,显示不全

问题:json只显示部分 解决: SET GLOBAL group_concat_max_len 1000000; -- 设置为1MB,根据需要调整如果当前在navicat上修改,只有效本次连接和后续会话,重新连接还是会恢复默认值1024 在my.ini配置文件中新增或者修…

云消息队列 Kafka 版 V3 系列荣获信通院“云原生技术创新标杆案例”

2024 年 12 月 24 日,由中国信息通信研究院(以下简称“中国信通院”)主办的“2025 中国信通院深度观察报告会:算力互联网分论坛”,在北京隆重召开。本次论坛以“算力互联网 新质生产力”为主题,全面展示中国…

2024 年度学习总结

目录 1. 前言 2. csdn 对于我的意义 3. 写博客的初衷 3.1 现在的想法 4. 写博客的意义 5. 关于生活和博客创作 5.1 写博客较于纸质笔记的优势 6. 致 2025 1. 前言 不知不觉, 来到 csdn 已经快一年了, 在这一年中, 我通过 csdn 学习到了很多知识, 结识了很多的良师益友…

Spring Boot自动配置原理:如何实现零配置启动

引言 在现代软件开发中,Spring 框架已经成为 Java 开发领域不可或缺的一部分。而 Spring Boot 的出现,更是为 Spring 应用的开发带来了革命性的变化。Spring Boot 的核心优势之一就是它的“自动配置”能力,它极大地简化了 Spring 应用的配置…

1.2.神经网络基础

目录 1.2.神经网络基础 1.2.1.Logistic回归 1.2.2 梯度下降算法 1.2.3 导数 1.2.4 向量化编程 1.2.5 正向传播与反向传播 1.2.6.练习 1.2.神经网络基础 1.2.1.Logistic回归 1.2.1.1.Logistic回归 逻辑回归是一个主要用于二分分类类的算法。那么逻辑回归是给定一个x ,…

Matlab总提示内存不够用,明明小于电脑内存

目录 前言情况1(改matlab最大内存限制)情况2(重启电脑)情况3 前言 在使用matlab中,有时候需要占用的内存并没有超过电脑内存依旧会报错,提示内存不够用,可以尝试下面几种方法,总有一…

使用AI生成金融时间序列数据:解决股市场的数据稀缺问题并提升信噪比

“GENERATIVE MODELS FOR FINANCIAL TIME SERIES DATA: ENHANCING SIGNAL-TO-NOISE RATIO AND ADDRESSING DATA SCARCITY IN A-SHARE MARKET” 论文地址:https://arxiv.org/pdf/2501.00063 摘要 金融领域面临的数据稀缺与低信噪比问题,限制了深度学习在…

深入解析人工智能中的协同过滤算法及其在推荐系统中的应用与优化

目录 什么是协同过滤算法核心原理基本步骤相似度计算代码实现详解1.流程图2.创建基础的数据结构存储用户评分数据3.计算用户相似度4.获取相似用户5.推荐方法 算法优化建议1. 数据预处理优化去除异常值和噪声数据进行数据标准化使用稀疏矩阵优化存储 2. 相似度计算优化使用局部敏…