Linux:值得纪念的linux命令

该地方就记录下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"

你可能感兴趣的:(Linux:值得纪念的linux命令)