该地方就记录下linux命令吧,以防以后忘记啦!
磁盘相关
dd命令
1.可以用dd命令刷recovery啊,把recovery.img 拷贝到手机中,然后把这个玩意写到recovery分区dev/recovery中去。
adb remount
adb push reocovery.img /data
adb shell dd if=data/recovery.img of=dev/recovery
2.测试磁盘速度
从全零洞/dev/zero读取数据到/data/1Gb.file,1Gb花了14s
1|root@CPH1609:/data # dd if=/dev/zero of=/data/1Gb.file bs=1024 count=1000000
if=/dev/zero of=/data/1Gb.file bs=1024 count=1000000 <
1000000+0 records in
1000000+0 records out
1024000000 bytes transferred in 14.153 secs (72352151 bytes/sec)
从/data/1Gb.file读取数据到无底洞/dev/null,1Gb花了1s
dd if=/data/1Gb.file bs=64k of=/dev/null
dd if=/data/1Gb.file bs=64k of=/dev/null
15625+0 records in
15625+0 records out
1024000000 bytes transferred in 1.013 secs (1010858835 bytes/sec)
参考:http://www.cnblogs.com/qq78292959/archive/2012/02/23/2364760.html
用户相关
id命令
id命令用来查看当前用户id,可以打印出uid,gid以及groups
~# id
uid=0(root) gid=0(root) groups=0(root)
参考:http://man.linuxde.net/id
文件处理相关
sed命令
sed命令用来处理一个文件的每一行,常常用来做替换,例如下面就是把"wenfeng"替换成了"tool"
:~# echo "wenfeng" |sed 's/wenfeng/tool/'
tool
(1)sed #命令
sed "s#替换前#替换后#g",例如下面
~# echo "SERVER_PORT_SERVICE=110" |sed "s#SERVER_PORT_SERVICE=.*#SERVER_PORT_SERVICE=999#g"
SERVER_PORT_SERVICE=999
(2)sed /命令,例如sed "s/aa/bb/g"表示替换每一行的aa为bb
sed 's/#.*//g'
替换字符串#后面的值为空.
例如 aabb#dd 会变成aabb
chmod命令
改变wenfeng目录下所有的文件权限为777
chmod -R 777 wenfeng/*.*
/dev/null 重定向
1是标准输出,2是标准错误输出。
下面语句表示命令ls /usr /nothing的标准输出定向到/dev/null中,即标准输出不显示。
而2>&1 表示标准错误定向到标准输出,而标准输出上面已经不显示了,所以标准错误也不显示。
所以,最后的最后,就是啥都不显示。
ls /usr /nothing >/dev/null 2>&1
awk命令
下的命令就是以=为分割符号,分割出来后取第二个值。
awk -F '=' '{print $2}
参考:http://blog.chinaunix.net/uid-25120309-id-3349718.html
PIPESTATUS,tee命令
PIPESTATUS是获取管道结果的,因为一个管道有多个命令,所以PIPESTATUS是一个数组。下面的语句的FLAG是获取make 方法的执行结果!!tee命令是指将标准输出重定向到文件1_compile_log中去!!
make -j$cpu_core 2>&1 | tee $1_compile_log
FLAG=${PIPESTATUS[0]}
find命令
-iname 会忽略大小写,下面是在APK_PATH路径查找build.gradle文件。
find ${APK_PATH} -iname "build.gradle"