一、 Linux系統根目錄結構
目錄名 |
描 述 |
bin |
使用者級二進位工具 |
boot |
Linux核心鏡像檔案及開機相關檔案,由bootloader程式讀取並裝載 |
dev |
各種系統硬體裝置 |
etc |
系統設定檔及其他設定檔 |
home |
使用者工作目錄 |
lib |
系統運行時所需的各種庫檔案 |
opt |
作業系統額外安裝的應用程式目錄 |
proc |
核心及進程所虛擬系統檔案,該目錄不會佔用磁碟空間,其資料都存在記憶體中 |
root |
管理員工作目錄 |
sbin |
該目錄下的二進位工具程式僅用於管理員 |
sys |
一般是驅動程式對應的虛擬系統檔案 |
usr |
管理安裝的、所有使用者都可以訪問的應用程式 |
var |
放置系統執行過程中經常變化的檔案,如調試資訊檔或者相關統計檔案 |
二、 Linux啟動過程
首先是開機,給系統供電,此時硬體電路會產生一個確定的複位時序,保證CPU是最後一個被複位的器件。正確複位之後,CPU開始執行引導程式Bootloader,用來裝載核心之類的程式。
第二步是執行核心程式,核心程式初始化時執行初始化各種硬體,包括記憶體、顯示器、網路介面、輸入裝置,然後建立起線程調度及記憶體管理所需的各種內部資料結構。
第三部就是運行Home程式,比如Windows系統的案頭。通過該程式可以方便地啟動其它應用程式。
三、Android開發過程中常用Linux命令
●man
man的含義就是manual,即手冊。使用格式 man command,command為具體的命令名稱。
●find
find命令用於尋找某個檔案或者檔案夾,例如:
$find . –name “*.java”
其中.表示目前的目錄。
●grep
grep命令用於字串匹配。例如,尋找hello.java檔案中包含“Activity”字串的所有地方,使用如下命令。
$grep “Activity”hello.java
●xargs
該命令可理解為一個標識,代表上一條命令的執行結果,並作為下一條命令的參數。Linux命令可以流水線執行,兩個命令用“|”分隔字元隔開。下面進行舉例說明:
$ls | xargs grep “oa”
尋找目前的目錄下檔案名稱中包含“oa”的所有檔案。
$find . –name “.java” | xargs grep “Activity”
尋找目前的目錄下所有包含“Activity”字串的java檔案。
$find `find . –name res` -name “*.xml” | xargs grep status_bar_size
該命令中,``符號是數字鍵1左邊的符號,此處對find命令進行了嵌套使用,內嵌的find命令用於尋找名稱為res的目錄或檔案,外部的find命令從得到的這些目錄下繼續尋找.xml檔案。
●cat
cat命令用於連結檔案內容並輸出檔案內容。cat參數中的檔案可以是普通意義上的有儲存空間的檔案,也可以是Linux系統中的裝置檔案。
$cat main.java
$sudo cat /dev/disk0
●chmod
在Linux系統中,檔案的訪問者被劃分為三類,針對這三類使用者指定不同的存取權限。
usr(u) 使用者自身,即建立該檔案的使用者
group(g)使用者所在組
other(o) 其它使用者
chmod命令就是用於設定這三類訪問者對某檔案的存取權限。
存取權限分為讀(r)、寫(w)、執行(x)許可權,可以通過ls –l 命令查看檔案的存取權限。
Linux使用10位元據表示訪問的許可權。例如”drwxr-xr-x”,下面進行說明
bit0:使用-或d表示,前者表示這是一個檔案,後者表示這是一個目錄。
bit1-bit3:user的存取權限
bit4-bit6:group的存取權限
bit7-bit9:other的存取權限
chmod命令應用舉例
$chmod u+x copy.sh
即是給user添加執行(x)的許可權。也可以用a來代表三類使用者,如a+x等。
而對於Android手機底層的Linux,chmod命令不識別r、w、x這樣的參數,而只能使用8進位數字值來表示,比如:
$chmod 777 copy.sh
其中777為8進位的數,對應的位元據為111 111 111,分別代表了u,g,o三類使用者的存取權限。
●ps,kill
ps用於列出當前啟動並執行所有進程,kill用於殺死某個進程。這兩個命令多用於系統調試。
●export
該命令用於將某個變數值的範圍設為全域範圍。比如,可以將某個路徑賦值給系統內容變數PATH,然後再export PATH