linux下命令繁多,但作为一个android的hal层开发人员,我比较常用的命令为以下几个:
1.find
find命令主要功能为查找指定路径下的文件名。通常用法格式为
find . -name test.txt 。
find 后面跟路径名 . 代表当前路径。-name后指定需要搜索的文件名。
find命令一般会和其他命令合用。比如:
find . -name test.txt | xargs grep "abc"
find . -name test.txt | xargs rm -rf {}
这里记得需要xargs参数
2.grep
grep命令主要功能为查找指定路径/文件下匹配指定字符串的文件。常用用法如下:
grep "string" -rn .
grep后面跟字符串,参数r代表递归查找当前路径下的所有文件,n代表现实匹配字符串所在文件的行数。如果需要查找多个字符串,并且排除spy.log文件,则:
grep "string1\|string2" -rn . --exclude=spy.log
grep支持正则表达。在dos下如果需要实现这个命令则需使用findstr "string1 string2" 1.txt。
grep还有一个比较常用的参数-c,表示统计出现某个字符串的个数。在写shell脚本时经常用到该参数。
3.echo
echo命令主要用于打印信息,当然也有将echo输出的信息重定向到文件中,这里注意一点:
echo "string" >1.txt
echo "apend" >> 1.txt
>将string输入到1.txt,会覆盖原有的1.txt文件,类似fopen中的w+,而>>是追加,不会覆盖原有文件,类似fopen中的a+。
4.cat
cat命令主要用于输出文件的内容。在shell的for循环中常常用到该命令。如:
>>>>>>>>>>>>>>>>>>
#!/bin/bash
for i in $(cat ./1.txt) ; do
echo $i
done
>>>>>>>>>>>>>>>>>>
这里,我们可以按行取i变量,这对脚本是非常有用的。
5.chmod
该命令主要修改文件权限,通常我们创建一个脚本,没有执行权限,这时需要执行如下命令:
chmod +x test.sh
6.chown
该命令主要更改文件所属组,通常在服务器上通过sudo方式拷贝的文件其所属组为root,我们需要更改成自己工作目录的用户组:
sudo chown wzw:wzw -R .
7.切换后台命令
切换后台命令由jobs,fg,<Ctrl - z > 一组命令构成,通过vi打开的文件在使用<Ctrl - z >命令切为后台后,通过jobs可以查看到后台程序,通过fg并指定后台程序号便可将后台程序切到前台。
8. sed命令
sed命令功能比较强大,介绍几种最常用的。
1)删除指定字符串的行
sed "/abc/d" 1.txt
sed -i "/abc/d" 1.txt
两行区别第二行会修改1.txt文件
2)替换指定字符串
sed "1,20s/abc/bbc/g" 1.txt
1,20s说明修改文件指定行为1到20行
sed "/abc/c\bbc\nnextline"
修改abc行内容为bbc并且添加下一行nextline,该修改以行为单位。
9.awk命令
awk命令和sed命令同为裁剪文件的内容,我只用过一种:
cat 1.txt |awk '{print $1}'
wc 1.txt | awk '{print $1}'
wc统计个数命令,第一列是行,第二列是字符串,第三列是字符个数,通过awk可以截取需要的信息。
附:shell中的中括号和大括号 转http://www.2cto.com/os/201308/235084.html
10.crontab
linux下的定时器命令,/etc/crontab是修改全局的,crontab -e 修改当前用户的。在/var/spool/cron/crontabs/下有对当前用户的保存。
另外/etc/init.d/rc.local /etc/profile 两个文件可以添加自启动,rc.local在没有选择user就已经运行了,权限相当于root,profile在选择user后才运行,权限限制于当前用户。
高级用法
1. find和sed
find ./res/ -name '*' -print | xargs -i sed -i "s/\"\([0-9]*\)dip\"/\"@dimen\/dp\1\"/g" {}
sed中\([0-9]\),括号代表会记录该参数,在后面的\1中显示该参数。
除以上命令外,cp scp mv diff sdiff ls cd export date sleep wc du top df 等命令也较为常用,有兴趣的可以查看linux手册说明。