自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 收藏
  • 关注

原创 用标准的GNU/Linux命令替换Alpine上的精简版命令

可以看到参数少了很多,虽然大部分情况下busybox的命令都足够用了,但特殊情况下可能并不能满足我们的需求,比如要运行一个基于标准Linux编写的shell脚本,其中用了很多命令的高级参数,对此,Alpine Linux 也提供了替换标准Linux 命令的方法。默认情况下,Alpine下的一些常用Linux 命令其实都是指向 busybox 的软链,包括 ls 命令本身。包提供的,如果我们只用到其中的命令,只安装。目录下的大多命令都是如此。

2024-05-06 23:23:43 292 1

原创 VirtualBox扩容 LVM(逻辑卷管理)磁盘

和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。PE的大小是可配置的,默认为4MB。LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的存储卷,在存储卷上建立文件系统。

2024-04-22 17:07:37 937

原创 go 引用fork后的模块的两种方式(replace和工作区)

很久没更新了,一是工作琐碎,二是处在舒适区,但最近看着身边的同事一个个离开,危机感骤然而生,不得不重拾书本,毕竟生活还得继续,不卷是不可能的,谁让我们生在这个卷中卷的国度,只能活到老卷到老…说完题外话,说说正题,笔者使用 Golang 也有两三年了,基本还停留在会用就行,没有深挖细节,不符合我刨根问底的学习习惯,接下来一段时间,准备系统的看看 go 官方文档,毕竟这是最新最权威的资料,然后顺手写点东西,就当是加深映像吧。

2024-01-26 21:13:27 1299 1

原创 Linux离线安装k3s步骤

的服务器在国外,我们通过一键安装脚本安装时有时速度会特别慢,或者失败的情况,这时我们可以选择离线安装的方式。开发学习环境的首选,缺点是只支持Linux环境。集群的软件,支持安装脚本一键安装,有点类似。可以很方便的设置容器镜像的拉取仓库,新建文件。输出能看到以上信息说明设置成功。是一个实现轻量级和小型化。并写入以下内容,然后重启。

2023-06-08 01:03:29 1089

原创 go tool pprof 参数 ‘-base‘ 和 ‘-diff_base‘ 之间的区别

go tool pprof 工具是用于分析由包 或包产生的profile数据,完整的帮助文档在pprof工具支持的参数很多,可以用命令来查看全部参数列表,今天主要来说下-base和-diff_base这两个参数, 因为文档对这两个参数的描述比较晦涩,难以理解这两个参数之间的区别。

2023-05-18 20:38:25 1214

原创 shell正则表达式中括号(字符集合)里的 ‘]‘ 和 ‘-‘ 处理方法

表示字符结合, 当前要匹配的字符是字符集合里的任一字符就表示匹配,但如果我的字符集合里就想添加。来转义,其实都无法实现我们想要的结果,正确的做法是遇到字符集合中需要添加。但发现执行结果并不符合预期,这时有人会尝试用。总是放在中括号中的第一个位置,在正则表达式里,中括号。

2023-05-09 12:39:46 628

原创 docker login error: ‘No such interface “org.freedesktop.Secret.Collection”‘

【代码】docker login error: 'No such interface “org.freedesktop.Secret.Collection”'

2023-04-26 15:29:42 719

原创 shell 输出Unix时间戳

可以把命令保存到一个shell脚本中方便后续使用。

2023-04-20 18:59:56 1186

原创 Golang输出toml文件时保留原toml注释

有这样一种使用场景,Golang从文件或字符串中读取toml数据并解析,然后进行相应的修改,最后重新写回到文件中,由于一般的toml库不会去特别处理注释,重新生成的toml文件中所有原始的注释都会丢失,以。的一个fork分支,对注释做了特别的处理,解析toml数据时会根据一定的规则把注释绑定到相应的key上,之后如果调用库中的新增加的。方法,在生成toml时,每遇到一个key,会去查询是否绑定了注释,如果有则在相应的位置输出注释,针对上面的案例,使用。关于注释的绑定规则以及更复杂的使用场景,请参考。

2023-04-04 22:42:34 452

原创 解决Powershell无法执行路径中包含空格的脚本文件

当然,如果当前已经处于powershell环境中,可以直接使用。这时可以借助powershell中的调用运算符。下面的示例展示了使用调用运算符和不使用的区别。

2023-03-16 14:07:31 2268

原创 Golang zip流式解析器

作为替代品,我们可以使用这个库 https://github.com/zhyee/zipiterator。当然,该包也存在一些限制,比如只能顺序读取,不支持并发读取等等。提供了对zip压缩包的解析功能,主要的。,则可以让这些解压缩方法保持一致性。参数,如果有一个zip包也只需要。参数,另外还要提供文件大小。方法签名有很大差别,比如说。方法基本只需要一个普通的。需要提供一个比较特别的。

2023-02-17 17:04:08 496

原创 Golang实现io.Reader的重复读取

【代码】Golang实现io.Reader的重复读取。

2022-10-19 14:56:42 2237

原创 深入探讨go.mod +incompatible

go mod 认为如果一个module的两个不同版本之间引入路径相同,则它们必须是相互兼容的,而不同的大版本通常意味着是不兼容的,所以引入路径也不该相同,通过在模块路径上加上大版本后缀,这样就可以同时使用同一个模块的多个不同大版本。文件,以便使用该模块的人能正常更新最新版本,如果后续迭代出现大的变动已经无法向后兼容,这时应该升级一个大版本,并添加。文件,同时模块path也要加上新的大版本后缀,使用者要使用该新版本则需要导入新的path。两个大版本,go mod不允许存在版本后缀,这是因为。.........

2022-09-01 02:17:59 1988

原创 sourcemap功能简介

代码,混淆处理的目的是通过缩短应用的类、方法和字段的名称来缩减应用的大小。只有函数名和内存地址,缺少文件名和行号,如果需要定位文件名和行号需要结合类似addr2line工具和包含调试信息的可执行文件来获取。符号表是内存地址与函数名、文件名、行号的映射表。有些语言的backtrace没有文件名和行号,例如C语言,使用。 []可以使用 Android NDK 中集成的工具。声称能够达到90%的压缩率和20%的性能提升。还原工具可使用macOS自带的。

2022-08-22 10:48:15 763

原创 facebook开源工具atosl在Linux和macOS下编译安装

的工具,但facebook从2013年开始就不再维护这个项目了,官方介绍的编译方式现在也有一定的问题,一番摸索后终于编译成功,现将过程记录一下。库,这个库原本是可以用apt-get直接安装的,但这个库一直在不断迭代,版本和最新的版本已经有很大的出入,有些方法已经被移除,导致。是一个可在linux环境下运行的部分替代macOS上。,再安装旧版,这里选用版本。这时报了另一个错,是由于编译。解决办法卸载当前已安装的。再次编译atosl。...............

2022-07-17 18:56:08 621 1

原创 mac安装 android NDK

从Android官网下载NDK需要Fan Qiang,可直接用Homebrew安装

2022-07-14 18:36:13 1322

原创 Homebrew替换阿里云镜像源

替换homebrew-bottles:如果你当前使用的默认shell是bash,则执行如果使用的是 zsh,执行恢复默认设置删除 ~/.bash_profile 或 ~/.zshrc 中的 HOMEBREW_BOTTLE_DOMAIN 环境变量,重新 source一下

2022-07-13 14:48:58 719

原创 mac arm m1无法运行JMC8(JDK Mission Control)解决办法

目前的arm版mac还是存在这样或那样兼容问题,最近在使用JMC8时发现程序无法正常运行,一番研究后发现,目前JMC只支持amd64架构的,而我用的jdk是arm64的,所以就跑不起来而arm版mac借助Rosetta转译是能够运行大部分amd64程序的,不足是会损失一部分性能,换用amd64版本的jdk之后就可以正常运行JMC8了查看当前CPU架构:查看当前jdk架构运行效果...

2022-07-11 15:00:34 1171

原创 go标准库httputil.ReverseProxy简单介绍和使用避坑

很久没水博客了,今天就来水一篇,说说go标准库的httputil.ReverseProxyhttputil.ReverseProxy顾名思义,http的反向代理,可以类比nginx的反向代理功能httputil.ReverseProxy 定义了一组方法让使用者去实现,主要有这几个Director最核心的方法, 我们可以在这里对请求进行相应的修改,比如设置请求目标的地址,对原有请求头进行增删改,以及对请求体进行处理等等操作。ModifyResponse可以让我们对响应的结果进行处理,比如修改、读取响应

2022-06-12 18:36:43 5000 1

原创 git设置推送(push)远程地址

有时我们clone项目时使用的是https协议,对于GitHub来说,push代码这时就需要用账号密码登录,不太方便$ git remote -v$ origin https://github.com/zhyee/Ranking-of-Internet-Corp-By-Go.git (fetch)$ origin https://github.com/zhyee/Ranking-of-Internet-Corp-By-Go.git (push)如果想修改成ssh协议可以使用如下命令git

2022-03-16 22:42:32 3119

原创 有环的单链表快慢指针一定会相遇的证明以及确定环的入口节点方法的证明

环形链表

2022-01-19 22:34:59 1467 1

原创 Golang用for...range遍历字符串的奇怪表现

我们知道Golang字符串可以用操作[]byte相同的方式来操作,可以用下标来访问,也可以取子串,用下标来访问的话,每个元素的类型是个byte(uint8),例如func SubStr(s string, start, length int) string { return s[start:start+length]}func main() { str := "abcde12345" char := str[3] fmt.Println(char, reflect.ValueOf(char)

2021-12-27 22:00:35 1433 1

原创 GoLang复制/拷贝一个切片

使用内建方法copyfunc CopySlice(src []int) []int { if src == nil { return nil } dup := make([]int, len(src)) copy(dup, src) return dup}使用append方法func CopySlice(src []int) []int { return append([]int(nil), src...)}主要说的是使用append方法,语法简洁,golang源码中.

2021-12-19 20:21:06 977

原创 常见排序算法简介

选择排序每次从待排序的序列中选出一个最小的数,放到已排好序的序列末尾func SelectionSort(s []int) []int { for i := 0; i < len(s) - 1; i++ { minPos := i for j := i+1; j < len(s); j++ { if s[minPos] > s[j] { minPos = j } } if minPos != i { s[i], s[minPos] = .

2021-11-18 16:32:37 594

原创 Golang判断一个对象是否实现了某个方法

可以使用Golang中的类型断言,判断对象是否实现了某个接口package maintype Runner interface { Run() Eat()}type Dog struct {}func main() { d := &Dog{} // 判断对象d是否实现了Runner接口 if r, ok := interface{}(d).(Runner); ok { r.Run() }}如果没有Runner或者不知道有这样的一个接口,我们也可以使用临时创建的匿

2021-10-29 21:47:43 1089

原创 Hive Sql中获取指定日期是星期几的方式

Hive中没有提供原生的获取星期几的方法,但是我们可以使用datediff方法来间接实现int datediff(string enddate, string startdate)Returns the number of days from startdate to enddate: datediff(‘2009-03-01’, ‘2009-02-27’) = 2.所以我们随便找一个历史上是星期一的日期,计算当前日期和这个历史日期间隔的天数,然后对7取余数,就能推算出当前日期是星期几了。若果把

2021-10-27 17:23:37 5568

原创 Hive SQL查询left join下on条件和where条件区别

我们通常的认知是联表查询时ON是作用于联表前(时)的过滤条件,WHERE是对联表后的数据的过滤条件,但hive sql查询有个特殊点需要关注,那就是对于left join中的左表ON过滤条件有可能会被忽略,比如SELECT DISTINCT a.dt FROM wlxdw.dws_tuid_cheat_di a LEFT JOINwlxdw.apps_tuid_device_map_ds bON a.tuid = b.tuid AND a.dt='2021-10-18' AND b.dt='202

2021-10-20 23:30:00 4534 5

原创 go get或go mod tidy报错 fatal: could not read Username for

go get git.xxxxx.net/CPC/protocol: module git.xxxxx.net/CPC/protocol: git ls-remote -q origin in /Users/admin/go/pkg/mod/cache/vcs/b23efdb68de4fde955075014c720200fc58c6052bbf3cd57ed65bf341c19c359: exit status 128:fatal: could not read Username for ‘https.

2021-10-20 15:59:28 11030

原创 Reading table information for completion of table and column names 含义解释

当我们在命令行下使用 USE DBNAME 切换数据库时,有时会出现这个提示:Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changed这段话的意识是说,正在读取表信息用于表名和字段名的自动补全,你可以使用 -A 参数关闭这一特性。也就是说在默认的情况下,你在输入sq

2021-08-19 17:49:17 4278

原创 golang未初始化的slice和初始化为空的slice的区别简析

先看两种形式的slice定义// 定义未初始化的slicevar s1 []string// 通过字面量形式定义并初始化为空slicevar s2 = []string{}// 通过make函数定义并初始化为空slicevar s3 = make([]string, 0, 0)我们知道,在golang中切片是对底层数组中的连续一部分存储空间的引用,是类似一种数组指针的存在,例如我们可以直接像打印一个指针所指向的地址的形式来打印切片 // 先来看%p 打印格式的用法 var arr =

2021-07-20 22:47:41 2237

原创 互联网广告领域相关专业术语汇总

RTAReal Time Api,每次投放广告前,广告平台都通过API询问广告主是否参与竞价投放,根据广告主返回的决策结果决定是否参与投放,广告主通过过滤无效和低质流量来达到优化广告投放效果的目的DMPData Management Platform,数据管理平台,包括人群包管理,用户标签管理,用户画像分析等功能,通过这些功能实现广告向特定人群的精准投放,有自有DMP,媒体平台DMP等。...

2021-06-09 16:24:42 647 1

原创 golang中error接口方法Error和Stringer接口方法String优先级问题

golang中当打印一个变量时,如果该变量实现了String()方法,则会默认调用该方法来获得字符串表示,import "fmt"type Object struct { Name string}func (u *Object) String() string { fmt.Println("call String func") return u.Name}func main() { u := &Object{Name: "南山彭于晏"} fmt.Println(u)

2021-05-09 13:26:21 428

原创 WSL Debian安装telnet命令

Debian和Ubuntu安装telnet命令sudo apt installinetutils-telnet

2021-03-13 13:12:11 940

原创 Linux阻止所有用户删除或修改文件和目录

chmod移除写权限并不会对root用户生效,如果想防止文件或文件夹被意外修改,可以使用chattr命令chattr +i 文件/目录可以对文件和文件夹加保护,之后任何用户都无法修改和删除root@localhost:~ # mkdir /opt/test111root@localhost:~ # root@localhost:~ # chattr +i /opt/test111root@localhost:~ # touch /opt/test111/foo.txttouch:.

2021-03-04 22:01:56 1824 1

原创 goland-2019.1下载和安装

goland-2019.1下载地址(Windows):https://download.jetbrains.com/go/goland-2019.1.4.exe?_ga=2.50129894.138437056.1613964523-1675887879.1613964523goland-2019.1下载地址(Mac):https://download.jetbrains.com/go/goland-2019.1.4.dmg?_ga=2.16755318.138437056.1613964523-167

2021-02-22 12:34:35 1098

原创 git查看本地还未推送到远程的提交明细

git status 只能查看到本地当前有多少个提交还未推送,但看不到具体是哪些提交$ git statusOn branch dev_1.90.1Your branch is ahead of 'origin/dev_1.90.1' by 3 commits. (use "git push" to publish your local commits)如果想要查看具体是哪些提交未推送,可以使用命令:git log branch_name^origin/branch_name...

2021-01-27 11:15:08 5911 1

原创 wsl debian没有man命令解决

sudo apt install man-db manpages manpages-dev

2020-11-23 17:16:32 1081 1

原创 MySQL锁等待超时Lock wait timeout问题定位方法

我们在使用MySQL数据库时可能会遇到锁等待超时的情况,会报ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction那么当出现这类问题时我们该如何定位原因,找到有问题的程序和代码呢,本文就此分享一些自己的经验。首先,我们可以查看一下当前数据库中的锁等待情况,锁等待信息存储在表sys.innodb_lock_waits中,可以使用命令SELECT * FROM sys.innodb_lock...

2020-11-20 20:46:50 23698 2

原创 Linux core dump文件设置以及查看

1、查看当前系统是否生成core dumped文件:ulimit -c0 表示当前不生成core dump文件> 0的数字表示当前生成的core dump文件大小限制在该大小以内,单位Kb。unlimited core dump 文件的大小不受限制。设置是否生成core dump文件以及大小限制,就是在ulimit -c 后面加上大小的数字或unlimited,比如:ulimit -c 0ulimit -c 1024ulimit -c unlimited2、设置

2020-11-19 14:09:00 13099

原创 蓝叠模拟器(bluestacks)设置通过fiddler抓包

夜神模拟器和网易的MuMu可以在网络里设置代理的方式来实现fiddler抓包(具体设置方式请参考网络教程),但蓝叠模拟器因为没有网络设置选项,所以没办法通过这种方式来抓包,这时我们就需要借助一些第三方工具来实现代理设置,这里我们选用Proxifier (下载地址:https://pc.qq.com/detail/13/detail_10593.html)。...

2020-09-22 12:08:27 16245 1

空空如也

空空如也

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

TA关注的人

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