LInux——环境基础开发工具使用(正在更新中...)
1.软件包管理器
Linux下安装软件的方案:
1. 源代码安装
2. rpm包安装
3. 包管理器安装 --- yum/ apt

(此图片来自于比特就业课课件)
1.1 操作生态系统
好的操作系统定义:
生态环境好
不同的操作系统根本是生态不同(面向的群体不同)

(此图片来自于比特就业课课件)
工程师免费在特定提供软件,是为了更好地维护生态系统。
(此图片来自于比特就业课课件)
国内镜像源——
Linux机器上,有对应的给yum/apt 提供的配置文件。(url或者ip地址)
具体过程如下:
(图片来自于比特就业课课件)
云服务器:内置的配置文件已经是国内的 。
(附:清华大学镜像站,其他高校也有,感兴趣可以在百度百科上搜索)
软件包依赖问题——

(图片来自于比特就业课)
yum 可以解决依赖问题。
1.2 yum具体操作
安装软件实质上是进行文件拷贝,此时,有权限的约束,需要在root下或者sudo yum/apt进行提权。
一般而言,软件只安装一次,所有人都可以用。
注意事项:
• 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
• yum/apt安装软件只能一个装完了再装另一个. 正在yum/apt安装一个软件的过程中, 如果再尝试用
yum/apt安装另外一个软件, yum/apt会报错.
• 如果 yum / apt报错, 请自行百度.
2.编辑器Vim
vim 是一个专注的编辑器,同时,也是多模式的编辑器。
2.1 vim初识
![]()
根据上述的内容,我们可以知道vim指令是真实存在的。
直接输入vim指令,我们可以进入到以下界面。

2.2 vim的基本概念
vim有很多模式,一般支持的模式有:(本文仅仅包含常用的三种模式)

2.3 vim的基本操作
在vim的操作中,光标的定位是非常重要的。
2.3.1 命令模式
光标的定位:
gg : 定位到最前列
shift + g : 定位到最结尾
行数 + gg / (shift + g) : 定位到指定列
shift + $/4 : 光标定位到行尾
shift + 6/^ :光标定位到行首
h , j , k , l : 左 上 下 右
数字 + w/b : 以单词为单位,进行前后移动
其他命令:
n + yy : 复制n行
n + p : 粘贴n行
n + dd : 剪切或者删除
n + x/X : 命令删除
n + r : 小范围的替换
shift + r/R : 进入替换模式
shift + `/~ : 快速大小写切换
u : 撤销
ctl + r : 对u 进行撤销
2.3.2 插入模式
从命令模式进入插入模式:a i o
2.3.3 底行模式
从命令模式进入底行模式: shift + :
命令:
w : 保存
q : 退出
wq : 保存并退出
shift + zz : 退出vim
w! : 强制保存
q! : 强制退出
wq! : 强制保存并退出
set nu/nonu : 设置行号/取消行号
/XXX + n : 根据关键字进行查找
! + 命令:不退出直接执行命令(gcc/ ./a.out等)
ctrl + ww : 分屏时光标移动
vs + other(文件) : 分屏打开
2.3.4 补充
补充的是更加实用的操作!

批量化注释——
ctrl + v -> hjkl(操作)-> shift + i ->输入//->esc
批量化去注释——
ctrl + v -> hjkl -> d
批量删除——
ctrl + v -> hjkl(选择区域)-> d
也可以进行批量化添加。
上述补充是在命令模式下的补充,下面我们来进行底行模式的补充。
vim code.c + n -> 在打开时,光标直接进入到第十五行左右。
!+ 命令的开始符 -> 可以快速执行历史命令。
配置的调试——
在网络上有很多关于配置的文章,我们可以根据自己的需要来进行,这里给了一个比较简单的——
在普通用户之下(注意),直接输入以下链接
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
然后根据命令来进行就可以了。最终的界面更符合大多数人写代码的需要。
3.编译器gcc/g++
3.1 背景知识
3.1.1 预处理(进行宏替换/去注释/条件编译/头文件展开等)

其中的-E表示:从现在开始,进行程序的翻译,一旦预处理做完,就停下来。
则由上述可得,code.i 就是 code.c 预处理之后的结果。
3.1.2 编译(生成汇编)
![]()
相关文章:
LInux——环境基础开发工具使用(正在更新中...)
1.软件包管理器 Linux下安装软件的方案: 1. 源代码安装 2. rpm包安装 3. 包管理器安装 --- yum/ apt (此图片来自于比特就业课课件) 1.1 操作生态系统 好的操作系统定义: 生态环境好 不同的操作系统根本是生态不同(…...
linux 内核asmlinkage关键字总结
1,看一下asmlinkage的定义 CPP_ASMLINKAGE __attribute__((regparm(0))) GCC中使用__attribute__((regparm(n)))指定最多可以使用n个寄存器(eax, edx, ecx)传递参数,n的范围是0~3,超过n时则将参数压入栈中(…...
⚡️如何在 React 和 Next.js 项目里优雅的使用 Zustand
前言 你是否曾感觉在 React 中管理状态简直是一场噩梦?如果你已经厌倦了不停地处理 props、context 和 hooks,那么现在是时候认识 Zustand 了。Zustand 是一个轻量级的状态管理库,它简化了你处理应用状态的方式。在这篇文章中,我…...
Pinpoint(APM)进阶--Pinot指标采集(System Metric/Inspector)
接上文 Pinpoint使用Pinot进行指标数据存储,Pinot流摄入需要Kafka 本文详解Kafka和Pinot的安装部署,以及Pinpoint的指标采集 Pinot 简介 Apache Pinot是一个实时分布式OLAP数据存储,专为低延迟、高吞吐量分析而构建,非常适合面…...
Mysql:使用binlog的一些常用技巧
1、如何查看binlog的存放路径 show variables like log% 执行结果: 2、如何清除binlog (1)按时间清除 purge binary logs before ‘2023-06-5 10:12:00’ (2)按文件文件名清除 purge binary logs to ‘mybinlog.0000…...
Electron 项目启动外部可执行文件的几种方式
Electron 项目启动外部可执行文件的几种方式 序言 在开发 Electron 应用程序时,有时需要启动外部的可执行文件(如 .exe 文件)。这可能是为了调用系统工具、运行第三方软件或者集成现有的应用程序。 Electron 提供了多种方式来启动外部可执行…...
前端开发中常用的包管理器(npm、yarn、pnpm、bower、parcel)
文章目录 1. npm (Node Package Manager)2. Yarn (Yarn Package Manager)3. pnpm4. Bower5. Parcel总结 前端开发中常用的包管理器主要有以下几个: 1. npm (Node Package Manager) 简介: npm 是 Node.js 的默认包管理器,也是最广泛使用的包…...
Linux入门:环境变量与进程地址空间
一. 环境变量 1. 概念 1️⃣基本概念: 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里&#x…...
【Jenkins实战】Windows安装服务启动失败
写此篇短文,望告诫后人。 如果你之前装过Jenkins,出于换域账号/本地帐号的原因想重新安装,你大概率会遇上一次Jenkins服务启动失败提示: Jenkins failed to start - Verify that you have sufficient privileges to start system…...
web实操5——http数据详解,request对象功能
http请求数据 现在我们浏览器f12的那些是浏览器给http格式数据整理之后便于我们阅读的。 原始的http格式信息: 就是按照一定格式和符号的字符串: 请求行:格式如下图 请求头:一个个key,value数据,用,分割…...
C# 如何动态加载程序集
程序集的加载,默认是从当前目录下查找,如果当前目录查找不到,然后再去系统目录中查找,依然查找不到就会从环境变量中查找,如果依然找不到,则会抛出一个异常 FileNotFoundException。 托管代码中࿰…...
前端基础的讲解-JS(10)
作用域链 通过上节作用域我们知道,当我们声明一个函数时,程序会生成一个独立的作用域,如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域;根据 内部函数可以访问外部函数变量 的这种机制,用链…...
JNI整理总结
JNI JNI基础 JNI基础 JNI,java native interface,即java本地接口,是java调用本地化方法的接口,是为java编写本地方法,为jvm嵌入本地应用程序的标准化接口。首要目标是在给定的平台上采用java通过JNI调用本地化方法&am…...
aws中AcmClient.describeCertificate返回值中没有ResourceRecord
我有一个需求,就是让用户自己把自己的域名绑定我们的提供的AWS服务器。 AWS需要验证证书 上一篇文章中我用php的AcmClient中的requestCertificate方法申请到了证书。 $acmClient new AcmClient([region > us-east-1,version > 2015-12-08,credentials>[/…...
Spring Task详细讲解
✨Spring Task简介 Spring Task 是 Spring 提供的轻量级定时任务工具,也就意味着不需要再添加第三方依赖了,相比其他第三方类库更加方便易用。可以按照约定的时间自动执行某个代码逻辑。 使用场景: 信用卡每月还款提醒银行贷款每月还款提醒…...
C++初阶 --- 类和对象(1)
类和对象(1) 一、类的相关内容1.访问限定符2.class关键字与struct关键字的区别3.类域 二、this指针三、成员函数存放在哪里?1. 函数的存放位置2. 练习题 一、类的相关内容 1.访问限定符 (1)C⼀种实现封装的⽅式&…...
《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接
《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接 《TCP/IP网络编程》学习笔记 | Chapter 7:优雅地断开套接字连接基于 TCP 的半关闭单方面断开连接带来的问题套接字和流针对优雅断开的 shutdown 函数为何需要半关闭?基于半关闭…...
Anaconda 和 conda 是什么关系?就像 pip 和 python 一样吗
Anaconda 和 conda是 Anaconda Distribution 还是 Miniconda Anaconda 和 conda Anaconda 和 conda 之间的关系有点类似于 pip 和 Python,但又有所不同。 Anaconda 是一个数据科学和机器学习的发行版,它包含了 Python、conda 以及许多预装的库和工具&am…...
「数据治理」核心专业术语解释!
数据治理就是指在一定的组织范围内,依托制度法规、标准规范、应用实践和支撑技术对数据进行全生命周期的数据确权、质量管理、安全控制、隐私保护、开放共享、交易流通和分析处理。数据治理的目标是为了提高数据的可用性、安全性、流通性,激活数据资源…...
Mac Nginx 前端打包部署
安装homebrew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 安装Nginx brew install nginx nginx相关命令 nginx启动命令:nginx nginx -s reload #重新加载配置 nginx -s reopen #重启 nginx -s stop #…...
SolveSpace:参数化 CAD 软件网页版的实验性突破
【导语:SolveSpace 作为一款参数化二维/三维 CAD 软件,推出了实验性网页版。虽存在速度损失和未解决的 bug,但处理小模型时体验不错,为 CAD 软件的使用带来新可能。】小巧 CAD 软件的网页版尝试SolveSpace 主要以普通桌面软件形式…...
Anaconda环境下Spyder升级保姆级教程(附常见问题解决方案)
Anaconda环境下Spyder升级全攻略与疑难排解手册 在Python数据科学领域,Spyder作为专为科学计算设计的集成开发环境(IDE),凭借其变量查看器、交互式控制台和强大的调试功能,已成为众多研究人员的首选工具。而Anaconda作为Python科学计算的瑞士…...
大多数人手动给Agent加记忆 Meta HyperAgents却让AI自己发明了完整记忆系统
你是不是也这样造Agent:先搭好任务执行模块,再手动塞一个向量数据库或RAG当记忆,最后发现跨轮迭代时效果还是“每次从零开始”?性能没 compounding,跨任务迁移更是一团乱麻。明明AI已经能自我迭代了,为什么…...
Wan2.2-I2V-A14B:在4090显卡上快速体验专业级视频生成
Wan2.2-I2V-A14B:在4090显卡上快速体验专业级视频生成 1. 开篇:认识这款视频生成神器 你是否想过用一张普通的图片就能生成流畅的视频?Wan2.2-I2V-A14B让这个想法变成了现实。作为一款开源的视频生成模型,它能在消费级显卡上实现…...
为什么选全屋定制,不买成品柜
1)为什么选全屋定制,不买成品柜? 成品柜尺寸固定,苏州很多户型飘窗、梁位、管道多,放进去丑、浪费空间!我们定制严丝合缝,顶天立地,收纳多 30%,颜值统一,和…...
Claude Code本地安装与配置国产智谱模型 (保姆级教程)
目录 一、安装 二、验证安装完整性 三、绕过区域限制协议 1. 创建专属启动脚本 2. 配置系统环境变量 3. 通过脚本启动 四、配置国产智普模型 今天给大家带来一期非常实用的 AI 工具部署教程。作为开发者,善用 AI 工具能极大提升我们的日常编码和解决问题的效…...
告别信息混乱:Trilium中文版让知识管理像整理衣柜一样简单
告别信息混乱:Trilium中文版让知识管理像整理衣柜一样简单 【免费下载链接】trilium-translation Translation for Trilium Notes. Trilium Notes 中文适配, 体验优化 项目地址: https://gitcode.com/gh_mirrors/tr/trilium-translation 还在为英文笔记软件的…...
告别轮询!用STM32F407的USART3+DMA+空闲中断实现高效串口数据接收
STM32F407高效串口通信:USART3DMA空闲中断实战指南 在嵌入式开发中,串口通信是最基础也最常用的外设之一。传统的中断接收方式虽然简单,但在高速或大数据量传输时,频繁的中断响应会显著增加CPU负担,甚至导致数据丢失。…...
Suno API:生成 AI 音乐的完整指南
简介 Suno API 是 Ace Data Cloud 提供的一项强大服务,旨在将 AI 音乐生成能力集成到您的应用程序中。借助这一稳定且全面的 RESTful API,您可以创建自定义歌曲、纯音乐、混音、翻唱等。本文将详细介绍如何使用 Suno API,并提供快速上手的指…...
Deepin系统远程桌面实战:从零配置xrdp服务到Windows无缝连接
Deepin系统远程桌面实战:从零配置xrdp服务到Windows无缝连接 在跨平台协作成为常态的今天,远程桌面技术让不同操作系统间的无缝协作成为可能。对于使用Deepin系统的用户而言,如何高效地通过Windows设备远程访问和控制Deepin桌面,是…...
