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手冊說明。