杂项笔记

记录一些杂七杂八的东西

  • golang
# studygolang.com
wget https://studygolang.com/dl/golang/go1.14.linux-amd64.tar.gz

# golang.org
wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz
  • nodejs
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

# for deepin 15.11 stable
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
  • golang build with compress
go build -ldflags -w -o demo
  • curl with proxy
# socks5
curl --socks5 主机:端口 --proxy-user 账号:密码 -XGET 目标请求地址

# http/https
curl -x 主机:端口 --proxy-user 账号:密码 目标请求地址
  • grpc
# install solutions 
# @see https://stackoverflow.com/questions/57700860/protoc-gen-go-program-not-found-or-is-not-executable

sudo apt install protobuf-compiler

go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

# set env
export GOROOT=/usr/local/go # or other...
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT:$GOPATH:$GOBIN
  • mysql

在ubuntu18+ & deepin 15+系统上比较优雅的安装方式

1.首先下载官方的配置工具

https://dev.mysql.com/downloads/repo/apt/

2.运行配置工具

sudo dpkg -i mysql-apt-config_0.8.16-1_all.deb

2.1.选择想要安装的版本,确定保存

2.2.运行命令以更新仓库

apt-get update

2.3.安装数据库软件

apt-get install mysql-server mysql-client #注意,不携带版本号
  • docker

run docker without sudo on linux

#1.create docker group (if not exist)
sudo groupadd docker

#2.add current user to docker group
sudo gpasswd -a $USER docker

#3.refresh settings
newgrp docker # or logout/login

install docker & docker compose on centos 8

#添加仓库
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

#安装
dnf install -y docker-ce docker-ce-cli containerd.io

#开启服务
systemctl enable docker
systemctl start docker

#安装docker compose
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#赋予执行权限
chmod +x /usr/local/bin/docker-compose
  • 开放端口
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --reload 
  • goland

multiple select shortcuts:

Alt + J on Linux and Windows, Ctrl + G on Mac OS X

  • git

保持同步复刻

# 设置关联
git remote add upstream 原项目地址

# 查看关联情况
git remote -v

# 拉取最新
git fetch upstream

go mod拉取私有仓库支持

# 需要提前配置好访问秘钥(git+ssh)
git config --global \
url."git@example.com:keepchen/toolkit".insteadOf "https://git.example.com/keepchen/toolkit" 

mac查看端口监听情况

sudo lsof -i -P | grep -i "listen"

#查看具体端口(linux同样适用)
lsof -i:端口号
  • vmware

安装vmtools

# centos 8
dnf install vm-open-tools

查看共享文件夹

vmhgfs-client

挂载共享文件

vmhgfs-fuse .host:/ /要挂载到的目标路径 -o nonempty -o allow_other -o uid=1000 -o gid=1000 -o umask=022

mysql

innodb_force_recovery = 6
innodb_purge_threads = 1

解释:
innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。
具体数字对应的含义:
1-----(SRVFORCEIGNORECORRUPT):忽略检查到的corrupt页。
2-----(SRVFORCENOBACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash。
3-----(SRVFORCENOTRXUNDO):不执行事务回滚操作。
4-----(SRVFORCENOIBUFMERGE):不执行插入缓冲的合并操作。
5-----(SRVFORCENOUNDOLOGSCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。
6-----(SRVFORCENOLOG_REDO):不执行前滚的操作。

linux磁盘管理
1.创建物理卷

pvcreate /dev/设备名称

2.创建卷组

vgcreate VG_NAME /dev/设备名称

3.创建逻辑卷

lvcreate -l 100%VG -n LV_NAME VG_NAME

4.挂载磁盘到目录

echo "/dev/VG_NAME/LV_NAME /path/to/dir ext4 defaults 0 0" >> /etc/fstab

# 测试挂载
mount -a

添加磁盘并扩展空间
6.创建物理卷

pvcreate /dev/设备名称

7.将物理卷加入卷组

vgextend VG_NAME /dev/设备名称

8.扩展逻辑卷空间

lvextend -l 100%VG /dev/VG_NAME/LV_NAME

此时使用df -hl查看挂载文件空间发现容量并未更新,需要手动更新

9.更新容量

resize2fs /dev/VG_NAME/LV_NAME