批量转UTF-8
find . -type f -name '*.h' -exec bash -c '
descr=$(file -b "$0")
if [[ $descr != *UTF-8* ]]; then
iconv -f GBK -t UTF-8 "$0" > "$0.$$" && mv "$0.$$" "$0"
elif [[ $descr == *"with BOM"* ]]; then
tail -c +4 "$0" > "$0.$$" && mv "$0.$$" "$0"
fi
' {} \;
# 批量添加 BOM
file *.h | grep UTF-8 | awk -F':' '{ print $1; }' | xargs sed -i '1s/^\(\xef\xbb\xbf\)\?/\xef\xbb\xbf/'
调整TCP参数
linux内核中存在两个参数:
net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
在/etc/sysctl.conf文件中加入上述参数,然后执行/sbin/sysctl -p让参数生效。
但是由于我们项目在docker中运行,并且很难单纯通过增加机器进行横向扩展。当时从网上找到了docker调整网络内核参数的方式,但是经过试验,没有效果。
查看CPU数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
#查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
批量杀进程
ps ax|grep $app_name|grep -v grep|awk '{print $1}'|xargs kill
pkill $app_name
通过进程名查看其占用端口
#先查看进程pid
ps -ef | grep 进程名
#通过pid查看占用端口
netstat -nap | grep 进程pid
查找文件排除特定目录
find . -path ./thirdparty -prune -o -name 'CMakeLists.txt' -print
解压缩
#解压tar.gz文件
tar -zxvf ×××.tar.gz
#解压tar.bz2文件
tar -jxvf ×××.tar.bz2