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…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
