自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

beeworkshop的博客

后死诸君多努力,捷报飞来当纸钱。

  • 博客(439)
  • 资源 (2)
  • 收藏
  • 关注

原创 c++杂谈-5

decltype只分析表达式并得到它的类型,不会计算执行表达式。decltype分析函数也只是一种表达式,因此不必担心在使用decltype时调用了函数。C++14标准对函数返回类型推导规则做了优化,函数的返回值可以用auto,不必尾随返回类型。auto是一个占位符(C++11给auto新增的角色),为函数返回值占了一个位置。函数的类型是指:返回值和参数列表(函数名和形参名不是)——形参只涉及个数与类型。回调函数:函数由用户定义,但调用不由用户来完成,调用随后交给系统/框架去完成。

2023-08-14 23:39:23 375

原创 c++杂谈-4

另外,枚举名的作用域为枚举定义所属的作用域,这意味着如果在同一个作用域内定义两个枚举,它们的枚举成员不能同名。最后,枚举可能不是可完全移植的,因为不同的实现可能选择不同的底层类型。例如,可以将0传递给形参为int的函数,但是,如果将nullptr传递给这样的函数,编译器将视为错误。以前,C/C++用0表示空指针,这带来了一些问题,这样的话0既可以表示指针常量,又可以表示整型常量。为了避免延时,就需要将变量用volatile修饰,达到的效果就是强制CPU去直接读内存中的变量值。register修饰的变量是。

2023-08-13 21:39:35 353

原创 c++杂谈-3

含完美转发,Eclipse CDT环境,断言,时间应用

2023-08-12 16:05:27 368

原创 c++杂谈-2(栈堆的内存布局)

动态链接库.so加载内存后.code代码段为所有进程共享,但.data数据段中开辟一个GOT,GOT及.data在每个进程中保留一份独立的副本。通过共享的.code相对于.data寻址查找GOT表项,从而定位(重定位)其他.code的方式。结果动态链接库的.code代码段可以在内存中被所有进程共享,通过代码段的地址相对寻址GOT表项,查表后再确定其他动态库的代码段地址。编译的时候,头文件.h是不编译的(一般里边只有声明),编译的基本单元是.c或者.cpp文件(.c和.cpp都是编译单元)。

2023-08-11 09:11:48 122

原创 c++杂谈-1

先生成xxx.dll,xxx.lib和xxx.h文件,再让程序利用xxx.lib和xxx.h文件编译得到xxx.exe文件,最后让xxx.exe在当前目录或者系统目录下加载xxx.dll文件并引用其中的函数。需要三个文件的支持。就是利用windows的API函数直接在程序中动态加载dll文件并使用其中的导出函数。非静态函数也就是全局函数,可以在整个项目任何的.c文件中访问。对于c++,则需要导出类的成员函数到lib文件中。system()函数可以调用系统的外部程序。接下来使用新建的项目调用dll并测试。

2023-08-08 20:04:30 103

原创 Linux下使用CMake编译C++的基本方法

Linux下使用cmake编译c++程序

2023-05-15 22:52:08 1134 1

原创 C++开发环境的搭建-Windows:VSCode+mingw64+CMake

这里要注意:VSCode中将一个打开的目录作为项目目录,并在该目录中自动生成.vscode目录——该目录中的settings.json作为CMake插件在VSCode中的配置文件。应该将本项目的总控CMakeLists.txt放置在和.vscode/同级的目录中,否则VSCode的CMake插件将不识别项目的目录。生成的tasks.json不用修改,只需记录tasks.json文件中的”label“配置,并把label选项的内容拷贝到launch.json中完成配置即可。配置基本与前边单文件调试设置类似。

2023-05-10 21:19:12 1136

原创 ES6形式常用的数组遍历函数

文章目录0. 给定一个数组1. find():查找成员对象2. findIndex():查找成员下标3. filter():过滤数组4. forEach():迭代数组5. some()和every():量词遍历6. map():变换7. reduce():规约0. 给定一个数组const arr = [{ name: '袁绍', age: 33, title: '本初', index: 2 }, { name: '曹操', age: 40, title: '孟德',

2022-04-29 12:18:05 834

原创 将Vue2中的console.log()调试信息移除

1. 安装babel-plugin-transform-remove-console插件cnpm install babel-plugin-transform-remove-console --save-dev2. 在babel.config.js配置文件中加入配置module.exports = { presets: [ '@vue/cli-plugin-babel/preset' ], plugins: [ // 加入以下内容,引入插件。 'transform-rem

2022-04-17 22:17:16 1226

转载 Git如何撤销提交(命令行+IDEA)

文章目录一、基于命令行1. 工作区的代码想撤销2. add到暂存区的代码想撤销3. 提交到本地仓库的代码想撤销4. 远程仓库的代码想要撤销二、基于 IDEA1. 未提交就撤销2. commit 了想撤销Undo CommitRevert Commit3. push 了想撤销一、基于命令行1. 工作区的代码想撤销可能有一天我正在写代码,写了很久发现写错了,想恢复到一开始的状态,一个笨办法就是把刚刚写的代码一行一行的删除,不过这种方式成本太高,我们可以通过git checkout – <file&

2022-04-01 17:10:00 37195 1

原创 java与网络(IPv4组播)

1. 接收组播包import java.net.DatagramPacket;import java.net.InetAddress;import java.net.MulticastSocket;public class MulticastReceiver { public static void main(String[] args) { InetAddress group = null; int port = 0; try { group = InetAddress.

2022-01-06 10:39:13 665

原创 java将byte类型转换为int类型

Java没有无符号字节这种基本数据类型。当值大于127的字节会当作负整数。那么如何将Java的字节转换为int类型?int unsignedByte = signedByte < 0 ? signedByte + 256 : signedByte;

2021-12-31 18:30:13 605

原创 关于SSHD的端口维护(改变及增加侦听端口)

常见的有两种维护需求1. 改变SSHD的侦听端口vim /etc/ssh/sshd_configPort 2222#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::效果[root@server ~]# systemctl restart sshd[root@server ~]# netstat -ntpl | grep sshdtcp 0 0 0.0.0.0:2222 0.0.

2021-10-09 10:38:55 698

转载 SpringBoot 解决跨域,3种解决方案!

文章目录一、问题背景:二、CORS简介:三、详解响应头:Access-Control-Allow-Origin 该字段必填。Access-Control-Allow-Methods 该字段必填。Access-Control-Expose-Headers 该字段可选。Access-Control-Allow-Credentials 该字段可选。Access-Control-Max-Age 该字段可选。四、解决办法:第一种办法:第二种办法:第三种办法:五、文章出处一、问题背景:Same Origin Po

2021-08-06 11:22:27 763

原创 一个rsync数据备份的方法(rsync单向)

文章目录一、定时同步1. 配置免密登陆2. 编写shell脚本3. crontab定时执行二、触发式/实时同步1. 在服务器B上调整inotify内核参数2. 使调整inotify内核参数立刻生效3. 安装Inotify-Tool工具4. 测试5. 编写脚本6. 配置systemd开机自启软件安装yum install rsync -y注意:参与同步的服务器上都要安装rsync。一、定时同步1. 配置免密登陆2. 编写shell脚本#!/bin/bash# backup.shrsync

2021-07-17 12:59:54 736 1

转载 常用 Linux 维护技巧

文章目录谨慎删除文件关闭别名使用 sudo使用别名命令编辑及光标移动历史命令快速执行实时查看日志磁盘或内存情况查看当前内存使用情况使用-h参数根据名称查找进程id根据名称杀死进程查看进程运行时间快速目录切换多条命令执行查看压缩日志文件清空文件内容将日志同时记录文件并打印到控制台终止并恢复进程执行小程序运行的时间查看内存占用前10的进程快速查找你需要的命令命令行下的复制粘贴搜索包含某个字符串的文件屏幕冻结无编辑器情况下编辑文本文件查看elf文件查看库中是否包含某个接口命令编辑使用远程机器的名称登录到机器上执行

2021-07-15 11:16:04 271

转载 Spring框架中Bean的生命周期

文章目录首先简单说一下(以下为一个回答的参考模板)结合代码理解一下1、Bean的定义2、Bean的初始化3、Bean的调用4、Bean的销毁首先简单说一下(以下为一个回答的参考模板)1、实例化一个Bean--也就是我们常说的new;2、按照Spring上下文对实例化的Bean进行配置--也就是IOC注入;3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值4、如果这个Bean已

2021-07-05 21:26:38 192

转载 使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接

使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接脚本可清除,指定文件夹下,对视链接文件的符号链接。在使用Linux时,常常会为自己许多文件或者程序建立符号链接,这样就不用每次都到对应的文件夹下去寻找对应的文件而只需要对需要经常访问的文件建立符号链接就可以了,这样就能把你常需要访问的文件放到桌面上,或者指定到另外一个文件夹中。这样访问时,方便了很多,但是用完之后往往留下许多的符号链接,这些链接需要用户自己手动确认是否可以删除,为linux的使用带来很多的不方便,使用该脚本就能解放你的双手,只需要执

2021-06-11 11:47:19 172 1

转载 Linux NTP时间同步服务

文章目录一、时间时区概念二、ntpd 与 ntpdate三、部署 NTP 服务1 服务软件的安装2 服务的基本配置(/etc/ntp.conf)3 设置系统开机自启动4 加入防火墙5. 将正确时间写入硬件6. 客户端使用配置7. 查看 ntp 同步状态一、时间时区概念UTC整个地球分为二十四时区,每个时区都有自己的本地时间,在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时。GMT格林威治标准时间指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在

2021-06-09 11:34:11 781

转载 常用正则表达式速查(备忘版)

文章目录一、校验数字的表达式二、校验字符的表达式三、特殊需求表达式四、在线测试一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$正数、负数、和小数:^(\-|\+)?\d+(\

2021-05-17 09:19:38 135

原创 VUE2速成-5(插件及打包)

文章目录一、Vue的插件大全二、Vue插件举例1. 轮播图插件(vue-awesome-swiper)2. UI组件库(Element UI)三、vue-cli打包部署一、Vue的插件大全先到 https://cn.vuejs.org/v2/guide/跳转到github上后,查看Components & Libraries部分。二、Vue插件举例1. 轮播图插件(vue-awesome-swiper)参考:https://github.com/surmon-china/vue-aw

2021-05-17 01:04:58 548 4

原创 VUE2速成-4(状态管理)

文章目录一、Vue状态管理1. 安装2. vuex的引用3. 什么是store4. 在组件中读取store对象5. 将store定义分离到独立的文件中6. 各组件状态同步更新(观察者模式)二、Vuex的核心概念1. 使用mapState读取状态值2. mutations改变状态3. 为mutations中的方法传递其他参数4. actions与异步操作5. Module的使用一、Vue状态管理如果有多个状态值需要在多个组件中传递,传递组件的层级可能还比较深,这时借助于props和自定义事件$emit来

2021-05-16 23:10:12 893 2

原创 VUE2速成-3(路由进一步及Ajax请求)

文章目录一、路由进一步1. 命名路由2. 重定向和别名3. HTML5 History模式4. 导航守卫4.1 全局前置守卫4.2 全局后置钩子4.3 路由独享的守卫4.4 组件内的守卫4.5 路由元信息4.6 路由懒加载二、几个需要说明的问题1. src/main.js2. @ is an alias to /src3. 让vue-cli为我们自动生成路由配置4. 让样式只在当前组件生效5. 初始化样式6. 修改router-link标签的激活样式一、路由进一步1. 命名路由给url路径起个名字。

2021-05-16 19:57:40 425 2

原创 利用AutoSSH实现远程管理内网服务器

文章目录一、组网说明二、基本配置1. Server2的配置步骤2. Server1的配置步骤3. 配置验证4. 在Server2上配置autossh的开机自启动三、PC连接目标机Server2实现远程管理1. PC端连接2. PC连接Server2后的验证一、组网说明Server1为公网上的一台服务器(拥有公网地址,公网可达)。Server2为内网的一台服务器(只有私网地址,没有公网地址)。PC可以连接到公网,但也只有私网地址。现在的需求是使用PC可以访问到Server2。测试地址规划:

2021-05-15 22:35:49 2258 2

原创 VUE2速成-2(组件及路由)

文章目录一、组件1. 创建组件2. 引用组件3. 组件之间如何传递参数一、组件1. 创建组件生成<template> <div> <!-- 必须是唯一根元素 --> <p>组件:{{ title }}-{{ num }}</p> <div> <p>{{ count }}</p> <button @click="count +=

2021-05-14 17:10:08 911 11

原创 VUE2速成-1(基础知识)

文章目录一、.Vue 环境搭建与创建项目1. 搭建Vue环境2. vue-cli工程的目录二、Vue的基础知识1. 模板语法1.1 插值1.2 指令1.3 修饰符1.4 缩写2. 条件渲染3. 列表渲染4. 事件处理5. 数组更新检测一、.Vue 环境搭建与创建项目首先需要安装nodejs。# 查看nodejs是否安装成功(vue对nodejs版本要求不高只要v10+即可)node -v# nodejs的包管理工具是npm,而npm的镜像cnpm是淘宝推出的国内镜像。npm -v# 安装n

2021-05-12 23:13:35 1112 15

转载 11 个步骤完美 排查服务器 是否已经被入侵

文章目录一、入侵者可能会删除机器的日志信息二、入侵者可能创建一个新的存放用户名及密码文件三、入侵者可能修改用户名及密码文件四、查看机器最近成功登陆的事件和最后一次不成功的登陆事件五、查看机器当前登录的全部用户六、查看机器创建以来登陆过的用户七、查看机器所有用户的连接时间(小时)八、如果发现机器产生了异常流量九、可以查看/var/log/secure日志文件十、查询异常进程所对应的执行脚本文件1. top命令查看异常进程对应的PID2. 在虚拟文件系统目录查找该进程的可执行文件十一、如果确认机器已被入侵,重要

2021-05-09 12:00:37 1285

转载 MySQL实现排名并查询指定用户排名功能

文章目录一、表结构:二、思路:三、说明:四、实现排名:1. 方法一:2. 方法二:3. 结果:五、查看指定用户排名:1. 方法一:2. 方法二:3. 结果:4. 实现从指定用户uid为111,222,333,444,555 中获取uid为222的排名一、表结构:CREATE TABLE test.testsort (id int(11) NOT NULL AUTO_INCREMENT,uid int(11) DEFAULT 0 COMMENT '用户id',score decimal(10, 2

2021-04-29 16:37:13 1496 4

转载 Ubuntu 20.04中创建本地APT软件包仓库

文章目录一、系统环境二、安装dpkg-dev三、安装http服务四、创建本地仓库的存储目录五、编写一个脚本来更新Package.gz文件六、将本地APT仓库地址添加到客户端sources.list文件中一、系统环境Ubuntu 20.04 LTS二、安装dpkg-dev需要安装dpkg-dev软件包,才能为本地APT仓库创建软件包元数据。$ sudo apt install -y dpkg-dev三、安装http服务如果该软件仓库需要为其他ubuntu 20.04服务器使用,可以安装web

2021-04-24 16:09:18 2180 1

转载 systemd进程管理工具实战教程

文章目录1. systemd介绍2. systemd特点:1.最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15...)2.CentOS7 支持开机并行启动服务,显著提高开机启动效率3.CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。4.CentOS7服务的启动与停止不再使用脚本进行管理,也就是/etc/init.d下不在有脚本。5.CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。3. systemd

2021-04-05 20:56:25 405 1

转载 非常实用的 Shell 拿来就用脚本实例

文章目录检测两台服务器指定目录下的文件一致性定时清空文件内容,定时记录文件大小检测网卡流量,并按规定格式记录在日志中计算文档每行出现的数字个数,并计算整个文档的数字总数杀死所有脚本从FTP服务器下载文件连续输入5个100以内的数字,统计和、最小和最大监测Nginx访问日志502情况,并做相应动作将结果分别赋值给变量批量修改文件名统计当前目录中以.html结尾的文件总大小扫描主机端口状态输入数字运行相应命令Expect实现SSH免交互执行命令监控httpd的进程数,根据监控情况做相应处理批量修改服务器用户密码

2021-04-05 18:59:22 187 2

原创 Ubuntu20.04 server 安装iSCSI

文章目录一、配置iSCSI服务器端——iSCSI Target1. 安装2. 配置3. 测试结果二、配置iSCSI客户端——iSCSI Initiator1. 安装2. 配置3. 测试结果4. 创建文件系统三、Windows的Initiator参考:https://www.linuxidc.com/Linux/2018-05/152535.htm一、配置iSCSI服务器端——iSCSI TargetiSCSI Target提供存储服务——磁盘。1. 安装apt-get update -y#

2021-03-08 22:16:58 8150

原创 Ubuntu Server 20.04上安装OpenLDAP和phpLDAPadmin

文章目录一、参考:https://www.techrepublic.com/article/how-to-install-openldap-and-phpldapadmin-on-ubuntu-server-20-04/https://blog.csdn.net/lodianm/article/details/105386314https://www.jianshu.com/p/e6de94d15d47一、

2021-03-07 18:16:29 5380 2

原创 Linux中使用iptables记录网络访问日志

文章目录一、配置实例二、自定义iptables输出日志的存放位置1. CentOS2. Ubuntu一、配置实例iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 4/min -j LOG --log-prefix "Iptables-SSH-IN: " --log-level 4iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACC

2021-03-02 12:18:20 6365

原创 Linux运维小小案例

文章目录一、生成随机字符串二、文件名批量修改三、并发ping四、解决DOS攻击五、MySQL备份六、入侵检测与报警七、产生随机数八、子脚本的调用方式九、shell逐行读取文件十、测试表达式区别一、生成随机字符串# 去掉/\两个字符,取第5到14位。openssl rand -base64 40 | sed 's/[/\]//g' | cut -c 5-14# 或者生成16位随机字符,1个,要包含数字-n和特殊字符-y。pwgen 16 1 -n -y二、文件名批量修改法一#!/bin

2021-02-27 00:19:38 1838 1

原创 Expect入门

文章目录一、工作流程二、安装三、基本案例四、基本命令一、工作流程spawn 启动指定进程 -> expect 获取期待的关键字 -> send 向指定进程发送指定字符 -> 结束二、安装yum install -y expectapt install -y expect三、基本案例test.exp#!/usr/bin/expectspawn ssh bee@192.168.74.152 dateexpect "*password" {send "123456\n"}

2021-02-26 16:38:59 172

原创 Ubuntu Server20的常用设置

文章目录♦ Ubuntu server的安装♦ 取消ssh的登陆欢迎界面♦ 修改hostname♦ 配置静态IP♦ 修改更新源♦ 修改时区并同步时间♦ 修改时间戳的显示格式♦ 修改时间为24小时制♦ 修改系统日志♦ 添加新用户并授权sudo♦ 限制用户对su命令的使用♦ 删除用户取消附加组♦ 配置ssh公钥登陆♦ 配置sshd♦ 安装Docker♦ 安装JDK♦ 关闭不需要的服务♦ 可以删除的账号和组♦ 调整history♦ 加入日志审计功能♦ 持续更新中...♦ Ubuntu server的安装镜

2021-02-17 20:10:55 2261 1

原创 Ubuntu20自动开机加载/关机保存iptables配置

Ubuntu20已不再支持/etc/network/interfaces配置文件。依托于interfaces配置文件的pre-up/post-up hook脚本也不再支持。替代品Netplan目前也不支持前述的hook脚本。要想实现hook脚本的功能目前可使用networkd-dispatcher来达成。注意在networkd-dispatcher中hook的功能是异步的。详细信息可参考man networkd-dispatcher。文章目录一、ifupdown hook功能实现1. 使用networ.

2021-02-16 13:53:10 4975 1

转载 Ubuntu之Netplan配置案例集锦

Below are a collection of example netplan configurations for common scenarios. If you see a scenario missing or have one to contribute, please file a bug against this documentation with the example using the links at the bottom of this page. Thank you!文.

2021-02-16 12:12:53 1695 2

原创 Ubuntu下MySQL的安装

1. 安装sudo apt-get updatesudo apt-get install -y mysql-server mysql-client2. 数据库初始化sudo mysql_secure_installation交互如下:Securing the MySQL server deployment.Connecting to MySQL using a blank password.VALIDATE PASSWORD PLUGIN can be used to test pa

2021-02-14 22:30:28 108

线性代数应该这样学

Wheldon Axler的线性代数应该这样学(手册版) 彩页印刷,可用于公式手册。

2018-12-06

IP地址管理与子网划分

IP地址管理与子网划分所有章节和附录.内容全面

2009-08-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除