笔记杂项(一)

都是踩过的坑,趟过的水。

ubuntu虚拟机终端字体太小的设置方法:ubuntu18.04调整终端字体大小
这个方法试试看:https://zhuanlan.zhihu.com/p/139305626
容器里面编译内核代码,进程被杀掉的原因是触发了内核OOM killer,进程被异常杀掉,首要怀疑对象就是OOM。

环境搭建篇

ubuntu设置复制粘贴快捷键设置方法。

笔记杂项(一)_第1张图片
笔记杂项(一)_第2张图片

ubuntu设置终端字体大小

笔记杂项(一)_第3张图片

Ubuntu 22.04 只有在root用户下才能使用go环境解决办法

根本原因:没有设置好go的环境变量导致
1、在/etc/profile或者/etc/bash中添加以下字段

export PATH=$PATH:/usr/local/go/bin

2、在/etc/bash.bashrc中添加以下字段

if [ -f /etc/bash ]; then
	. /etc/bash
fi

给ubuntu的终端换个背景图片

实际上手效果并不是很好,字体看起来比较模糊,没有找到较好的解决办法,不建议使用。

sudo apt-get install xfce4-terminal

谷歌浏览器设置黑色背景

chrome://flags/#enable-force-dark
笔记杂项(一)_第4张图片

X11 forwarding request failed on channel 0

将/etc/ssh/sshd_config中的以下字段改为no
X11Forwarding no
并且重新启动主机解决

Go语言环境

go build编译出的二进制文件依赖动态库

  1. 是否有动态库链接
    Go 引用了其他包的话,是将引用的包都编译进去。用 ldd 看几个 Go 编译出来的二进制程序有的没有动态链接库的使用。但是有的又有引用动态链接库,这个是为什么?

回答:Go 默认是开启 CGO_ENABLED 的,即 CGO_ENABLED=1 。但编译出来的二进制程序究竟有无动态链接,取决于你的程序使用了什么包。如果就是一个 hello world,那么编译出来的将是一个纯静态程序。

如果你依赖了网络包或一些系统包,比如用 http 包编写了一个 web server,那么编译出来的二进制程序又会是一个包含动态链接的程序。

原因就在于目前的 Go 标准库中,某些功能具有两份实现,一份是 C 语言实现的,一份是 Go 语言实现的。

在 CGO_ENABLED 开启的情况下, Go 链接器会链接C 语言的版本,于是就有了依赖动态链接库的情况。
如果你将 CGO_ENABLED 置为 0,你再重新编译链接,那么 Go 链接器会使用 Go 版本的实现,这样你将得到一个没有动态链接的纯静态二进制程序。

当CGO_ENABLED=1, 进行编译时, 会将文件中引用libc的库(比如常用的net包),以动态链接的方式生成目标文件。
当CGO_ENABLED=0, 进行编译时, 则会把在目标文件中未定义的符号(外部函数)一起链接到可执行文件中。

1、当go程序中使用了由c/c++等外部库文件或依赖,则go编译需要将cgo开启,并使用gcc进行编译 、如使用了sqlite3的依赖
示例:CGO_ENABLED=1 go build

2、将go编译的程序减小生成的文件大小
参数:CGO_LDFLAGS=“-s -w” CGO_ENABLED=1

3、将动态链接库静态编译到程序中、如使用了插件则不能编译为静态链接、否则会出现无法链接上插件
参数:CGO_LDFLAGS=“-static -s -w” CGO_ENABLED=1

Go语言实现静态编译不依赖动态库

go build -ldflags '-linkmode "external" -extldflags "-static"'

https://blog.csdn.net/qq_43580193/article/details/120305231

tc命令构造网络故障

# 丢包,比例可以是10或者10%
tc qdisc add dev eth0 root netem loss 10%
tc qdisc del dev eth0 root netem loss 10%

# 延迟,延迟时间可以是40,默认单位为us,可输入参数为s/ms/us
tc qdisc add dev eth0 root netem delay 40ms
tc qdisc del dev eth0 root netem delay 40ms

# 查看所有已经定义的规则
tc qdisc show dev eth0

# 清除某个网卡全部规则
tc qdisc del dev eth0 root

# 乱序,如下代表50ms基准上的25%乱序
tc qdisc add dev eth0 root netem delay 50ms reorder 25%

iptables删除防火墙规则

有很多的朋友都会创建了很多的iptables防火墙规则,可是有些需要删除的又不会,现在小编与大家分享一下如何删除Linux下的防火墙iptables指定的规则。

开放端口
iptables -A INPUT -ptcp --dport 9526 -j ACCEPT

查看序号
iptables -L -n --line-number

删除规则
iptables -D INPUT 2

stress-ng cpu加压方法

## cpu
--cpu N 其中N表示cpu满载的个数。
--cpu-load P 其中P表示cpu消耗的比例

后台执行shell命令

# 编译生成main可执行文件
go build ./main.go

# 让进程后台执行
nohup main &

DynamoRIO可以插桩的等级

其中还包含不同程度的运行权限级别:

1.指令级(Instruction level);
2.基本块级(Basic block level);
3.函数级(Function level);

编译使用:https://blog.csdn.net/fenggang2333/article/details/113054565
详细教程:https://www.cnblogs.com/alexicob/p/14840454.html

Go语言标准日志输出

导出logrus:https://blog.csdn.net/weixin_43566459/article/details/112671287
为什么使用导出的函数打印出来的日志信息为数组的形式??
答:logrus没有配置好
这是一个很好的logrus封装的例子:https://www.jianshu.com/p/722250f0b609

你可能感兴趣的:(杂项笔记,ubuntu,linux,运维)