linux三剑客 grep+awk+sed
❖ grep 数据查找定位
❖ awk 数据切片
❖ sed 数据修改
❖ 这三个工具都一定程度可以支持数据的检索、切片、修改。awk最强大,可以重点学习。
grep(查找数据)
❖ grep pattern file
❖ adb devices | grep xxxx
❖ curl https://testerhome.com 2>/dev/null | grep Appium | grep -v Python (往/dev/null文件写的东西会自动消失支持正则)
grep -v 排除
❖ curl http://www.baidu.com | grep -o 'http://[a-zAZ0-9\\-\\.]*' (只取出单独内容)
❖ 个人票 -oE‘abc.*?’ file
awk(分割数据)
❖ Awk是linux下的一个命令,同时也是一种语音解析引擎
❖ Awk具备完整的编程特性。例如执行命令,网络请求等
❖ 精通awk,是一个linux工作者的必备技能
数据处理
❖ 123|456|789
基础数据切片 -F (指定分隔符)
封装成函数
❖ RS 行记录分隔符 (字段分割)
❖ FS 记录分隔符
❖ NR 记录数
❖ NF 字段数
❖ BEGIN END
计算浮点数
awk行分割
❖ echo $PATH | awk 'BEGIN{RS=":"}{print $0}'(用:分割行)
❖ echo $PATH | awk 'BEGIN{RS=":"}{print NR,$0}' (打印第几条记录)
❖ echo $PATH | awk 'BEGIN{RS=":"}END{print NR}'(打印记录数)
awk字段分割
❖ echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | awk -F / '{print $1,$2,$3,$4}'
(以:分割行,以/分割字段)
❖ echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | awk 'BEGIN{FS="/"}{print $1,$2,$3,$4}'
❖ echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | awk 'BEGIN{FS="/|-"}{print $1,$2,$3,$4}'
sed(替换数据/区间选择数据)
数据批量化的替换
❖ echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | sed 's#/#----#g'
❖ echo $PATH | awk 'BEGIN{RS=":"}{print $0}' | sed -n '/^\/bin/,/sbin/p' (区间选择)
❖ sed -i '.bak' -e '' -e '' (多次选择)
Bash自动化
自动化交互
❖ 批处理并不等于自动化
❖ 让交互程序实现非交互执行
❖ 借助第三方工具expect
自动输入方法
❖ << 文档字符串。可以实现对序列化输入的操作自动化
❖ 管道方式 echo 'pasword' |passwd
❖ 去掉sudo密码提示,也可通过修改sudoer文件
❖ 去掉ssh密码,也可以通过添加认证
❖ expect
Linux常用命令
一键搭建web网站
❖ python -m CGIHTTPServer 8080
本地的地址
gnuplot
plot '4col.csv' using 1:2 with lines,
'4col.csv' using 1:3 with lines
plot '4col.csv' using 1:2 with lines,
'4col.csv' using 1:3 with lines,
'4col.csv' using 1:4 with lines
通过管道读取数据并绘图
❖ echo '1
❖ 3
❖ 2
❖ 4
❖ 6' | gnuplot -e "set terminal dumb;plot '<cat' using 1 with line"
更多工具
❖ 系统性能统计命令
❖ ps netstat top vmstat
ps
ps -ef
ps -ef 输出具体含义
UID PID PPID C STIME TTY TIME CMD
各相关信息的意义:
UID 程序被该 UID 所拥有
PID 就是这个程序的 ID
PPID 则是其上级父程序的ID
C CPU 使用的资源百分比
STIME 系统启动时间
TTY 登入者的终端机位置
TIME 使用掉的 CPU 时间。
CMD 所下达的指令为何
netstat
netstat -tlnp -----本地开放端口
top
vmstat
Android常用命令
❖ adb
❖ adb devices
❖ adb kill-server
❖ adb logcat
❖ adb help
❖ adb jdwp 可执行java进程
❖ adb shell (Linux系统)
❖ adb shell dumpsys (性能相关数据)
dumpsys activity activities (当前窗口activities)
dumpsys | less (本地信息组件信息)
❖ adb shell am
❖ adb shell ps
❖ adb shell monkey
netstat -tln 开放端口