Linux命令
文件
![](/uploads/photo/2019/438f4547-4583-4f6b-9ea8-d69684c73083.png!large =600x)
CGI技术
![](/uploads/photo/2019/8a76b09e-84f0-41c7-a5e2-5819526e00eb.png!large =600x)
![](/uploads/photo/2019/45646f95-fee8-4f99-bb75-24f341cee97d.png!large =600x)
进程
- ps
- top
- vmstat
ps -ef
ps aux
top -b -d 1 -n 20 -p 19912
注意:ps的cpu利用率是不准的,建议使用top
可视化
- gunplot
Android命令
click(){
local index=1
[ -n "$2" ] && index=$2
adb shell input tap \\
$(
adb shell "uiautomator dump --compressed && cat /sdcard/window_dump.xml" \\
| sed 's#<node#^<node>#g' \\
| awk 'BEGIN{RS="^"}{print $0}' \\
| grep "$1" \\
| sed -n "$index"p \\
| awk 'BEGIN{FS=",|\\\\[|\\\\]"}{print ($2+$5)/2,($3+$6)/2}'
)
}
input(){
adb shell input text 123
}
swipe(){
width=$(adb shell wm size | grep -oE "[0-9]+" | head -1)
height=$(adb shell wm size | grep -oE "[0-9]+" | tail -1)
adb shell input swipe $(awk 'BEGIN{print '$width'*'$1'}') $(awk 'BEGIN{print '$width'*'$2'}') $(awk 'BEGIN{print '$width'*'$3'}') $(awk 'BEGIN{print '$width'*'$4'}') 1000
}
iOS命令(iOS自动化部分再细致讲解)
数据分析与可视化
![](/uploads/photo/2019/8d1f635c-98ed-4598-879e-33e81bbef360.png!large =600x)
编写脚本
- 函数
- 脚本
- 参数
课间作业1
打印所有的连接到shell服务器的学员数,以ip为准
netstat -tnp | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr |wc -l
课间作业2
获取20s内某个进程的每秒内存百分比占用数据,并算出平均值
for i in $(seq 20); do ps -o %mem -p 20752 | tail -1;sleep 1;done | awk '{t+=$1;print $1,t/NR}'
课间作业3
利用top获取某个进程的cpu和内存,并打印平均值
top -b -d 1 -n 20 -p 19912|grep --line-buffered ^19912 | awk '{cpu+=$9;mem+=$10}{print $9,$10,cpu/NR,mem/NR}'
课间作业3
- 手工/自动化 完成一段时间的业务操作,然后检查有无内存泄漏,计算出业务操作前后的内存增长对比数据
- 自动化业务执行 拔高
- 给出变化曲线 拔高
for i in $(seq 20) ;do adb shell dumpsys meminfo com.xueqiu.android | grep "Dalvik Heap" | awk '{print $4}';sleep 1;done | gnuplot -e "set terminal dumb;plot '<cat' using 1 with line"
课后作业
- 打印ps和top命令的帮助man帮助文档并通读一遍
- 统计Linux上的某个进程的cpu增长曲线,贴出代码
- 统计App上某个业务操作期间内存增长情况,贴出代码
- 自动化业务执行 拔高
- 给出变化曲线 拔高