Tips

更新于 2025-01-13

sudoers

vi /etc/sudoers

#在 root ALL=(ALL:ALL) ALL 后添加一行
xxxx ALL=(ALL:ALL) ALL

vi方向键乱码

echo "set nocp" >> ~/.vimrc
source ~/.vimrc

echo "set backspace=2" >> ~/.vimrc 
source ~/.vimrc

vlmcsd

#create pid file
vi /var/run/vlmcsd.pid

#create service file
vi /lib/systemd/system/vlmcsd.service

service contents

[Unit]
Description=KMS Server By vlmcsd
After=network.target

[Service]
Type=forking
PIDFile=/var/run/vlmcsd.pid
ExecStart=/usr/bin/vlmcsd -L 127.0.0.1:1688 -p /var/run/vlmcsd.pid
ExecStop=/bin/kill -HUP $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

start service

systemctl daemon-reload
systemctl start vlmcsd
systemctl status vlmcsd
systemctl enable vlmcsd

ato

slmgr.vbs -upk
slmgr.vbs -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
slmgr.vbs -skms 192.168.111.3
slmgr.vbs -dlv
slmgr.vbs /ato
irm https://massgrave.dev/get | iex
https://massgrave.dev/kms38
irm https://get.activated.win | iex

docker命令

常用命令

#Dockerfile构建
docker build --tag xxxxx .

#拷贝文件到容器
docker cp ./ xxxx:/home/xxx

#提交容器为镜像
docker commit 容器名 镜像名

docker ps -a # docker container ls -a
docker stop|start xxx
docker images
docker image rm xxxx

#运行容器
docker run -id[ --name xxxx][ --restart always][ -p aaa:bbb][ -v ccc:ddd] [image] /bin/bash

docker exec -it xxxx /bin/bash

启动docker

systemctl status docker
sudo service docker start

docker自动启动

systemctl edit docker

systemctl daemon-reload

systemctl enable docker

[Service]
Restart=always

升级docker

# 卸载docker
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

# 安装docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}
EOF
systemctl daemon-reload
systemctl restart docker

超级权限

docker run --privileged

自动启动

docker run --restart always

SSH配置相关

ssh服务器公钥默认保存位置

~/.ssh/authorized_keys

echo "xx" >> ./authorized_keys

ssh服务器配置

/etc/ssh/sshd_config

PermitRootLogin yes  #设置yes才允许密码登录
PubkeyAuthentication yes #开启公钥登录
PasswordAuthentication yes #开启密码登录

ssh-keygen -A #为服务器生成hostkeys:RSA/ECDSA/ED25519

scp命令

-3: 通过 SSH 连接到第三个主机,然后复制文件。这通常用于通过跳板机进行文件传输。
-4: 强制使用 IPv4 地址。
-6: 强制使用 IPv6 地址。
-B: 使用批处理模式(此选项已过时,不推荐使用)。
-C: 允许压缩数据,在传输过程中进行压缩以提高效率。
-p: 保留文件的修改时间、访问时间和权限。
-q: 静默模式,不显示传输过程中的信息。
-r: 递归复制整个目录及其内容。
-T: 禁用伪终端分配(这通常用于脚本或命令行)。
-v: 详细模式,显示传输过程中的详细信息。
-c cipher: 指定加密算法。
-F ssh_config: 指定 SSH 配置文件的位置。
-i identity_file: 使用指定的私钥文件进行身份验证。
-J destination: 跳板机选项,用于通过指定的主机连接到目标主机。
-l limit: 限制传输带宽。
-o ssh_option: 传递单个 SSH 选项。
-P port: 指定 SSH 服务的端口号(默认是 22)。
-S program: 用于连接的主机密钥验证的程序。
source ...: 文件或目录的列表。可以使用通配符(如 *)来匹配多个文件。
target: 本地路径/远程主机的路径


scp ./file1.png root@192.168.1.12:/home/

scp ./file1.png ./file2.png ./file3.png root@192.168.1.12:/home/

scp root@192.168.1.12:/home/\{./file1.png,./file2.png,./file3.png\} ./

-r参数递归上传

SVN批量删除添加

svn st | awk '{ if($1 == "?"){ print $2 } }' | xargs svn add
svn st | awk '{ if($1 == "!"){ print $2 } }' | xargs svn delete

NPM设置代理

npm config set proxy http://proxy.example.com:port
npm config set https-proxy http://proxy.example.com:port
npm config set socks-proxy socks5://proxy.example.com:port

Windows设置端口映射

netsh interface portproxy add v4tov4 listenport=16080 connectaddress=127.0.0.1 connectport=16080 listenaddress=10.10.2.18 protocol=tcp

Nginx配置

手动配置fastcgi

location /
{
    try_files $uri $uri/index.html $uri.html @fcgi_passby;
}
location @fcgi_passby {
    fastcgi_pass   127.0.0.1:1082;
    fastcgi_pass_request_headers on; 
    include        fastcgi.conf;
}

querystring map

map '?$query_string' $qs {
  '?' '';
  default '?$query_string';
}

nginx获取自定义请求头

1、nginx是支持读取非HTTP标准的自定义header的,需要在http或者server下开启header的下划线支持:

underscores_in_headers on;

2、请求时添加X-Real-IP的header后,通过nginx获取header时使用$http_x_real_ip获取,一律采用小写,而且前面加了个http_前缀。

允许穿透到客户端的代理响应头

proxy_pass_header Server;

基本反代

#全部请求都反代到目标
location ~ ^/
{
  proxy_http_version 1.1;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header X-Real-Ip $remote_addr;
  proxy_set_header Front-End-Https on;
  proxy_set_header Host $http_host;
  proxy_pass_header Server;
  proxy_pass http://127.0.0.1:9445;
}

CentOS安装libgdiplus

yum install libgdiplus-devel

如果执行上面方法报错:No package libgdiplus-devel available.

更换yum源为 EPEL yum 源

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

然后再安装

SVN: post-commit

VisualSVN hook - post-commit

svn update "xxxx-path" --username xxxxx --password xxxxxx \
--non-interactive \
--trust-server-cert-failures=cn-mismatch,unknown-ca,expired,not-yet-valid,other

Linux网络设置

debian/alpine

#/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
      address 172.25.153.8
      netmask 255.255.240.0
      gateway 172.25.144.1
      dns-nameservers 223.5.5.5 8.8.8.8
      metric 100 #多网卡调整metric,或者内网网卡不配置网关
service networking restart

windows删除恢复分区

在执行此操作之前,请确保已备份所有重要数据。


1、输入diskpart命令并回车运行。
2、输入list disk命令,显示磁盘列表。
3、输入select disk 编号命令,选择包含恢复分区的磁盘。
4、输入list partition命令,列出分区列表。
5、输入select partition 编号命令,选择恢复分区。
6、输入delete partition override命令进行删除。

wget开启gzip

增加--header="accept-encoding:gzip"是无效的,这个选项只是告诉服务器wget支持gzip,但wget不会自动解压。

需要增加的是--compression=gzip--compression=auto,此时wget才会自动解压下载回来的文件。

Linux磁盘操作

fdisk -l

fdisk /dev/vdb


mkfs.ext4 /dev/vdb1

lsblk

blkid


#初始化磁盘
parted /dev/sdx mklabel gpt

#分区
parted -a opt /dev/sdx mkpart primary ext4 0% 100%

#格式化分区
mkfs.ext4 /dev/sdx1

#挂载分区
mount /dev/sdx1 /data

#检查分区
df -h

#自动挂载
#请确保替换/dev/sdx1和/data为你的硬盘设备名称和你想要挂载的目录。
echo '/dev/sdx1 /data ext4 defaults 0 0' | sudo tee -a /etc/fstab
浙ICP备19039918号-1