linux服务端c++开发工具介绍(vscode版)
本文适合于有一定c++开发经验,但是还不明确如何到linux服务端开发程序的同学。
一、vscode
几年前用的是ssh到云服务上,再用vim在云上开发的形式
ssh dongbeijing.dbj@11.158.142.176
vim hello.c
现今,由于vscode比较好用,这几年换了vscode内部配置ssh到云服务上开发,插件名称是Remote SSH。
输入密码,选择目录打开后,确认正常后,可以保存为workspace,方便重复使用 。
二、shell工具
ssh免密登陆
云服务:
ssh-keygen -t rsa# 文件名 auth
Enter file in which to save the key: authcat ~/.ssh/auth.pub >> ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
本地开发机器:
scp dongbeijing.dbj@11.158.142.176:~/.ssh/auth ~/.ssh
vscode指定ssh配置路径为~/.ssh/config
config文件为
Host 11.158.142.176
HostName 11.158.142.176
User dongbeijing.dbj
IdentityFile ~/.ssh/auth
文件拷贝
切换root账号
sudo bash -c bash
查看文件大小
du -sh /tmp/test.pcap
scp复制
# 本地机器执行
scp dongbeijing.dbj@11.114.12.212:/tmp/test.pcap ./
或者用osscmd上传到云上oss存储。
osscmd put test.pcap oss://myworkspac/network/pcap
或者用sz工具直接复制
sz test.pcap
线上抓包
保存文件,用wireshark看
tcpdump -i eth0 host 111.63.213.231 and port 31586 -w /tmp/test.pcap
用enn和vvv,线上直接看
tcpdump -i bond0.715 udp port 1106 and host 44.123.42.3 -enn -vvv
弱网模拟
ip不通
# 添加
sudo iptables -A INPUT -s 127.0.0.1 -p udp -d 127.0.0.1 --sport 33698 -j DROP# 删除
sudo iptables -D INPUT -s 127.0.0.1 -p udp -d 127.0.0.1 --sport 33698 -j DROP# 查询
sudo iptables -L -n -v
丢包延迟
## === 添加
sudo tc qdisc add dev lo root handle 1:prio# 延迟300ms 丢包15%
sudo tc qdisc add dev lo parent 1:3 handle 30:netem loss 15% delay 300ms# 生效
sudo tc filter add dev lo protocol ip parent 1:0 u32 match ip sport 33698 0xffff flowid 1:3## === 删除
sudo tc qdisc del dev lo root## === 查看
sudo tc qdisc show dev lo
sudo tc fliter show dev lo
网络请求
curl模拟http请求
curl -v 'http://myhello.com' -o /dev/null -x 127.0.0.1:10080
模拟100次curl的方法
for((i=1; i<=100; i++)); do curl -s "www.helloworld.com"; done
tsar查看cpu状态
tsar --cpu --percpu -i1 -n1 | less |grep 19:30
dmseg查看启动信息
dmesg -T # 启动信息
cat /var/log/mcelog # 硬件信息
tsar --cpu -I percpu -i1 -n1 # n1表示只输出1次
查看网络信息
ifconfig
ip route # 如果显示bond,那么是逻辑网卡
ping 127.0.0.1
ethtool -k eth0 # 网卡硬件加速
ip route | grep lock
三、版本管理
git代码
我使用的GitLens,方便可视化可blame信息,当然在vs code的扩展商店里,搜Git也有其他工具。
rpm版本
rpm -qa|grep helloworld
四、gdb
vscode插件
插件名称是Remote Development,需要配置launch.json,指定远程启动目录。
云服务端需要配置gdbserver,其中2333是vscode的默认gdb链接端口。
sudo localhost:2333 hello.out -c config.txt
gcore进程
gcore单个进程,产生core dump,用gdb可以看到各个变量的情况。
gdb函数
参考示例
define print_connectionsset $i=0while $i<1000set $c=ngx_cycle.connections[$i]if $c.fd > 0if $c.read.handler==ngx_rtmp_recvset $s=(ngx_rtmp_session_t*)$c.datap $ip $s.paramsendendset $i=$i+1end
end
pstack
查看进程的堆栈情况,如何进程一直卡在相同的堆栈里,那么大概率是死循环了。
pstack 1234 #进程号是1234
套接字
查看进程的套接字创建是否正常
ss -alp|grep 1234 # 进程号 1234
五、vim和tail
主要会i、a、GG和ctrl+d/u等,满足看日志需求
动态看日志的方法
tail -f error.log | grep "hello world, times:"相关文章:
linux服务端c++开发工具介绍(vscode版)
本文适合于有一定c开发经验,但是还不明确如何到linux服务端开发程序的同学。 一、vscode 几年前用的是ssh到云服务上,再用vim在云上开发的形式 ssh dongbeijing.dbj11.158.142.176 vim hello.c 现今,由于vscode比较好用,这几年…...
Linux常用命令大全
Linux常用命令大全 一、文件&目录管理1. 文件和目录操作命令2. 查看文件及内容处理命令3. 文件压缩及解压缩命令4. 搜索文件命令5. 其他 二、Linux 软件包管理三、用户管理1. 用户管理2. 查看系统用户登陆信息的命令 四、进程管理五、网络通信1. 基础网络操作命令2. 深入网…...
Python中取2023, 9, 1——2023, 10, 31的全部时间
使用datetime.date()函数定义了开始和结束日期。然后,我们使用datetime.timedelta()类创建了一个时间范围,其中n表示从开始日期到结束日期之间的天数。最后,我们使用一个for循环迭代时间范围内的日期,并打印每个日期。示例代码演示…...
创建django文件
1、在指定目录里打开终端,输入D:\Softwares\Anaconda3\envs\pytorch\Scripts\django-admin .exe startproject 名称 ,即可在对应目录里创建django文件。...
全排列[中等]
优质博文:IT-BLOG-CN 一、题目 给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例…...
mybatise-plus的id过长问题
一、问题情景 笔者在做mp插入数据库(id已设置为自增)操作时,发现新增数据的id过长,结果导致前端JS拿到的数据出现了精度丢失问题,原因是后端id的类型是Long。在网上查了一下,只要在该属性上加上如下注解就可以 TableId(value &q…...
图示矩阵分解
特征值与特征向量 设 A A A 是 n 阶矩阵,如果存在数 λ \lambda λ 和 n 维非零列向量 x x x,满足关系式: A x λ x ( 1 ) Ax \lambda x\quad\quad(1) Axλx(1) 则数 λ \lambda λ 称为矩阵 A A A 的特征值,非零向量 x…...
六、互联网技术——数据存储
文章目录 一、存储系统层次结构二、按照重要性分类三、磁盘阵列RAID三、RAID基础四、磁盘阵列分级五、数据备份与恢复六、容灾与灾难恢复 一、存储系统层次结构 常见的三层存储体系结构如下图所示,分为高速缓冲存储器、主存储器和外存储器。 二、按照重要性分类 …...
六、vpp 流表+负载均衡
草稿!!! vpp node其实就是三个部分 1、plugin init 2、set command 3、function 实现功能,比如这里的流表 今天我们再用VPP实现一个流表的功能 一、流表 1.1流表----plugin init VLIB_REGISTER_NODE 注册流表节点 // 注册流…...
word已排序好的参考文献,插入新的参考文献,序号更新
原排序好的文献序号。 现在在3号后面插入一个新文献。4,5号应该成为5,6 这时在3号后面,回车,就会自动的增长。如下图: 但是如果手滑,把[4]删除了如何排序?? 如下图: …...
二叉树的顺序存储——堆——初识堆排序
前面我们学过可以把完全二叉树存入到顺序表中,然后利用完全二叉树的情缘关系,就可以通过数组下标来联系。 但是并不是把二叉树存入到数组中就是堆了,要看原原来的二叉树是否满足:所有的父都小于等于子,或者所有的父都…...
CYEZ 模拟赛 9
A a ⊥ b ⇒ a − b ⊥ a b (1) a \perp b \Rightarrow a-b \perp ab \tag {1} a⊥b⇒a−b⊥ab(1) 证明: gcd ( a , b ) gcd ( b , a − b ) \gcd(a,b) \gcd(b, a-b) gcd(a,b)gcd(b,a−b),故 a − b ⊥ b a - b \perp b a−b⊥b,同…...
typescript: Builder Pattern
/*** file: CarBuilderts.ts* TypeScript 实体类 Model* Builder Pattern* 生成器是一种创建型设计模式, 使你能够分步骤创建复杂对象。* https://stackoverflow.com/questions/12827266/get-and-set-in-typescript* https://github.com/Microsoft/TypeScript/wiki/…...
WPS/word 表格跨行如何续表、和表的名称
1:具体操作: 将光标定位在跨页部分的第一行任意位置,按下快捷键ctrlshiftenter,就可以在跨页的表格上方插入空行(在空行可以写,表1-3 xxxx(续)) 在空行中输入…...
Python的NumPy库(一)基础用法
NumPy库并不是Python的标准库,但其在机器学习、大数据等很多领域有非常广泛的应用,NumPy本身就有比较多的内容,全部的学习可能涉及许多的内容,但我们在这里仅学习常见的使用,这些内容对于我们日常使用NumPy是足够的。 …...
uniapp app 导出excel 表格
直接复制运行 <template><view><button click"tableToExcel">导出一个表来看</button><view>{{ successTip }}</view></view> </template><script>export default {data() {return {successTip: }},metho…...
【RabbitMQ】常用消息模型详解
文章目录 AMQP协议的回顾RabbitMQ支持的消息模型第一种模型(直连)开发生产者开发消费者生产者、消费者开发优化API参数细节 第二种模型(work quene)开发生产者开发消费者消息自动确认机制 第三种模型(fanout)开发生产者开发消费者 第四种模型(Routing)开发生产者开发消费者 第五…...
图像拼接后丢失数据,转tiff报错rasterfile failed: an unknown
图像拼接后丢失数据 不仅是数据丢失了,还有个未知原因报错 部分数据存在值不存在的情况 原因 处理遥感数据很容易,磁盘爆满了 解决方案 清理一些无用数据,准备买个2T的外接硬盘用着了。 然后重新做处理...
Nginx之日志模块解读
目录 基本介绍 配置指令 access_log(访问日志) error_log( 错误日志) 基本介绍 Nginx日志主要分为两种:access_log(访问日志)和error_log(错误日志)。Nginx日志主要记录以下信息: 记录Nginx服务启动…...
latex方程组编写,一种可以保证方程编号自适应的方法
问题描述: 在利用latex编写方程组时,可以有很多种方法,但不总是编辑好的公式能够显示出编号,故提出一种有效的方程组编写方法 方法: \begin{equation}X_{ t1}\left \{ \begin{matrix}\frac{x_{i}}{a} \quad\quad 0&l…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
