这是我在学习及工作过程中遇到的一些小的点,记录下来方便以后遇到类型问题后翻阅,相当于一个速查表吧。现发表出来,若您还有其他 tips 愿意和我分享,请通过关于我联系我。此篇文章会不定期更新。
crontab 运行记录在 /var/log/cron
文件里
监控系统状况
sar 1
表示每隔1s打印一次sar -r 1
yum -y install sysstat
CPU 信息:cat /proc/cpuinfo
内存信息:cat /proc/meminfo
CPU 占用率:cat /proc/stat
四个进程,每个进程 8 线程跑,OS 会按照 32 个线程调度,而不是 4 个进程调度?
ffmpeg 使用 map 参数时,需要对每个视频分别指定编码参数,包括编码器,否则会使用默认编码器(libx264)。
文件的三个时间:stat file
可查看
docker 使用 -v
参数挂载数据卷时,容器内部没有权限:
run
时加上 --privileged=true
特权;setenforce 0
虚拟机是 CentOS7,在和外网通信时需要关闭防火墙 systemctl stop firewalld
bash 运行多个命令:bash -c 'cmd1 && cmd2
,这在 docker 中很有用。
显示一个路径的所有权限:namei -om /path/to/check
nslookup
命令可以查看某个域名所解析的记录值
top -bn 5
可以输出到文件
进行多任务并发测试时,不能统计每个进程时间再相加,会重复统计。
.
表示将另一个脚本中内容包含进来并执行
bash 执行 set -i vi
可以以 vim 方式操作命令行。
git status 命令对中文文件名乱码:git config --global core.quotepath false
vim
下使用:%!xxd
将文本转换为十六进制,:%!xxd -r
可转换回来。
tc
可用来模拟丢包;
vim命令行操作,类似vim +PluginInstall +qall
netstat -s命令和
ss命令可以查看网络相关情况
golang 中的break label
和continue label
语法可以很方便地在嵌套循环中控制外层循环。
man -w 可以列出所有 man 手册的位置;
listen 函数中 backlog 参数指定全连接队列的长度。
压测时客户端可能出现大量连接处于 TIME_WAIT 状态,导致连接被用完;
QPS= 并发数 / 平均响应时间;
shell 中 esc + back 键可以快速删除当前命令行一部分;
数组中元素内部带有互斥锁时,不能通过for _,val:=range(array){}
访问,因为会拷贝锁;
求文件交、并、差集:
grep -F -f a.txt b.txt
可以求两个文件的交集;sort a.txt b.txt | uniq -d
也可以求两个文件的交集;sort a.txt b.txt | uniq
求并集;sort a.txt b.txt b.txt | uniq -u
求差集 a.txt - b.txtsed 's/.*([0-9]*).*/\1/g' file
可以提取字符串,\1
表示用第一个括号里面的内容替换掉整个字符串。