Linux环境基础开发工具
xshell+ssh
xshell--充当客户端,提供远程登录服务
yum
背景知识
在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装. 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系. yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.
安装方法
sudo yum install tree
sudo yum remove lrzsz#卸载gcc 卸载软件的时候要小心使用。
ping www.baidu.com
vim--强大的编辑工具

按 i 就可以进入输入模式,
按下esc键,会进入底行模式, vim的三种模式
1. 正常/普通/命令模式(Normal mode)
2. 插入模式(Insert mode)
3. 底行模式(last line mode)
:help vim-mode vim的基本操作
进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
vim test.c vim正常模式命令集
| 插入模式 |
| 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件; |
| 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; |
| 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。 |
| 从插入模式切换为命令模式 |
| 按「ESC」键。 |
| 移动光标 |
| vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、 |
| 「l」,分别控制光标左、下、上、右移一格 |
| 按「G」:移动到文章的最后 |
| 按「 $ 」:移动到光标所在行的“行尾” |
| 按「^」:移动到光标所在行的“行首” |
| 按「w」:光标跳到下个字的开头 |
| 按「e」:光标跳到下个字的字尾 |
| 按「b」:光标回到上个字的开头 |
| 按「#l」:光标移到该行的第#个位置,如:5l,56l |
| 按[gg]:进入到文本开始 |
| 按[shift+g]:进入文本末端 |
| 按「ctrl」+「b」:屏幕往“后”移动一页 |
| 按「ctrl」+「f」:屏幕往“前”移动一页 |
| 按「ctrl」+「u」:屏幕往“后”移动半页 |
| 按「ctrl」+「d」:屏幕往“前”移动半页 |
| 删除文字 |
| 「x」:每按一次,删除光标所在位置的一个字符 |
| 「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符 |
| 「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符 |
| 「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符 |
| 「dd」:删除光标所在行 |
| 「#dd」:从光标所在行开始删除#行 |
| 复制 |
| 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。 |
| 「#yw」:复制#个字到缓冲区 |
| 「yy」:复制光标所在行到缓冲区。 |
| 「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。 |
| 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完 |
| 成复制与粘贴功能。 |
| 替换 |
| 「r」:替换光标所在处的字符。 |
| 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。 |
| 撤销上一次操作 |
| 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。 |
| 「ctrl + r」: 撤销的恢复 |
| 更改 |
| 「cw」:更改光标所在处的字到字尾处 |
| 「c#w」:例如,「c3w」表示更改3个字 |
| 跳至指定的行 |
| 「ctrl」+「g」列出光标所在行的行号。 |
| 「#G」:例如,「15G」,表示移动光标至文章的第15行行首 |
vim末行模式命令集
在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
| 列出行号 |
| 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。 |
| 跳到文件中的某一行 |
| 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15, |
| 再回车,就会跳到文章的第15行。 |
| 查找字符 |
| 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 |
| 「n」会往后寻找到您要的关键字为止。 |
| 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 |
| 按「n」会往前寻找到您要的关键字为止。 |
| 问题:/ 和 ?查找有和区别?操作实验一下 |
| 保存文件 |
| 「w」: 在冒号输入字母「w」就可以将文件保存起来 |
| 离开vim |
| 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。 |
| 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。 |
vim配置可以参考 Vim从入门到牛逼(vim from zero to hero)
gcc/g++使用--Linux编译器
2. gcc如何完成
gcc [选项] 要编译的文件 [选项] [目标文件] 预处理(进行宏替换)
gcc –E hello.c –o hello.i
gcc –S hello.i –o hello.s 
gcc –c hello.s –o hello.o 
gcc hello.o -o hello 
| -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面 |
| -S 编译到汇编语言不进行汇编和链接 |
| -c 编译到目标代码 |
| -o 文件输出到 文件 |
| -static 此选项对生成的文件采用静态链接 |
| -g 生成调试信息。GNU 调试器可利用该信息。 |
| -shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库. |
| -O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 |
| -w 不生成任何警告信息。 |
| -Wall 生成所有警告信息。 |
gdb--Linux调试器
背景程序的发布方式有两种,debug模式和release模式Linux gcc/g++出来的二进制程序,默认是release模式要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项
使用
| gdb binFile 退出: ctrl + d 或 quit 调试命令: |
| list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。 |
| list/l 函数名:列出某个函数的源代码。 |
| r或run:运行程序。 |
| n 或 next:单条执行。 |
| s或step:进入函数调用 |
| break(b) 行号:在某一行设置断点 |
| break 函数名:在某个函数开头设置断点 |
| info break :查看断点信息。 |
| finish:执行到当前函数返回,然后挺下来等待命令 |
| print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数 |
Makefile
为了使用方便,我们通常使用Makerfile文件,将调试,编译,处理等信息添加到Makefile文件中
如图

相关文章:
Linux环境基础开发工具
xshellssh xshell--充当客户端,提供远程登录服务 yum 背景知识 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放…...
uni-app+uView实现点击查看大图片的效果
<u-button text"月落" click"imgPreview()"></u-button> //注意:参数urls 是预览图片的链接地址,是个数组 imgPreview() {uni.previewImage({indicator: "none",loop: false,urls: [],}) },参数说…...
Sulfo-CY3 azide在细胞标记与成像中的应用-星戈瑞
Sulfo-CY3azide作为荧光探针在细胞标记与成像中应用,它可以用于实现对细胞内特定分子或细胞结构的标记,从而实现对细胞的可视化和实时成像。以下是Sulfo-CY3azide在细胞标记与成像中的应用: 1.细胞膜标记:Sulfo-CY3azide可以与细…...
js如何遍历对象的key和value
在JavaScript中,可以使用for…in循环来遍历对象的键(key)和值(value)。以下是一个示例: let obj { key1: value1, key2: value2, key3: value3 }; for (let key in obj) { if (obj.hasOwnProperty…...
官方发布:Mac 版 Visual Studio IDE将于明年 8 月 31 日停止支持
近日,微软官方宣布:适用于 Mac 平台的 Visual Studio 集成开发环境(IDE)已经启动 "退休" 进程。Visual Studio for Mac 17.6 将继续支持 12 个月,持续到 2024 年 8 月 31 日。 微软表示在未来的 1 年内将重…...
如何使用CSS实现一个带有动画效果的折叠面板(Accordion)?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 带有动画效果的折叠面板(Accordion)⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个…...
HarmonyOS开发:探索动态共享包的依赖与使用
前言 所谓共享包,和Android中的Library本质是一样的,目的是为了实现代码和资源的共享,在HarmonyOS中,给开发者提供了两种共享包,HAR(Harmony Archive)静态共享包,和HSP(H…...
【力扣】45.跳跃游戏 II <贪心>
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处:0 < j < nums[i] ;i j < n 返回到…...
J. Med. Chem 2022|TocoDecoy+: 针对机器学习打分函数训练和测试的无隐藏偏差的数据集构建新方法
原文标题:TocoDecoy: A New Approach to Design Unbiased Datasets for Training and Benchmarking Machine-Learning Scoring Functions 论文链接:https://pubs.acs.org/doi/10.1021/acs.jmedchem.2c00460 论文代码:GitHub - 5AGE-zhang/T…...
.net core 上传文件大小限制
微软官网文档中给的解释是.net core 默认上传文件大小限制是30M,所以即便你项目里没有限制,这里也有个默认限制。 官网链接地址 总结了一下解决办法: 1.首先项目里添加一个web.config自定义配置文件 在配置文件中加上这段配置 <!--//…...
Windows安装单节点Zookeeper
刚学习Dubbo,在Centos7中docker安装的zookeeper3.7.1。然后在启动provider时一直报错,用尽办法也没有解决。然后zookeeper相关的知识虽然以前学习过,但是已经忘记的差不多了。现在学习dubbo只能先降低版本使用了,之后再复习zookee…...
C++ gendrate Gauss noise
手动生成 Marsaglia和Bray在1964年提出,C版本如下: mu是均值,sigma是方差,X服从N(0,1)分布 高斯噪声为加性噪声,在原图的基础上加上噪声即为加噪后的图象。 double generateGaussianNoise(double mu, double sigma) {static double V1, V2, S;static int phase 0;double X;d…...
centos环境下idea开发问题集锦
1、端口不能访问,可能是访问的协议问题或者防火墙拦截为问题导致。 1.1 centos环境下idea直接拉起部署,查看端口信息如下,命令为 [rootlocalhost ~]# lsof -i:8088 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java …...
C++-list实现相关细节和问题
前言:C中的最后一个容器就是list,list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指…...
hadoop学习:mapreduce的wordcount时候,继承mapper没有对应的mapreduce的包
踩坑描述:在学习 hadoop 的时候使用hadoop 下的 mapreduce,却发现没有 mapreduce。 第一反应就是去看看 maven 的路径对不对 settings——》搜索框搜索 maven 检查一下 Maven 路径对不对 OK 这里是对的 那么是不是依赖下载失败导致 mapreduce 没下下…...
windows10上搭建caffe以及踩到的坑
对动作捕捉的几篇论文感兴趣,想复现一下,需要caffe环境就折腾了下!转模型需要python 2.7环境,我顺便也弄了!!! 1. 环境 Windows10 RTX2080TI 11G Anaconda Python2.7 visual studio 2013 cuda…...
大数据Flink(七十):SQL 动态表 连续查询
文章目录 SQL 动态表 & 连续查询 一、SQL 应用于流处理的思路...
「MySQL-04」Linux环境下使用C/C++连接并操纵MySQL
目录 一、准备mysql库:Connector/C 1. 查看是否有mysql相关的库和头文件 2. 安装devel(开发库) 3.到官网下载开发包,并上传到Linux 3.0 须知 3.1 到官网下载开发包 3.2 上传安装包至Linux 二、mysql库:Connector/C 的使用 1. 创建并初始化mys…...
【力扣】两数相除(c/c++)
目录 题目 注意: 示例 1: 示例 2: 提示: 题目解析 题目思路 代码思路 数据处理 注意 减法函数 第一次使用的函数 问题 第二次改良后的代码 处理i的值并且返回 总代码 力扣的代码 注意 题目 给你两个整数,被除数 dividend 和…...
《Kubernetes部署篇:Ubuntu20.04基于二进制安装安装kubeadm、kubelet和kubectl》
一、背景 由于客户网络处于专网环境下, 使用kubeadm工具安装K8S集群,由于无法连通互联网,所有无法使用apt工具安装kubeadm、kubelet、kubectl,当然你也可以使用apt-get工具在一台能够连通互联网环境的服务器上下载kubeadm、kubele…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
