可視化方式常看iOS系統文件 ==在iOS經過Cydia安裝Apple File Conduit 2,在OS X使用iFunBox能夠查看iOS系統文件(iOS和OS X須要在通一個局域網內)==數據庫
經過SSH遠程登陸iOS來查看bash
Filesystem Hierarchy Standard 文件系統層次化標準(如下簡稱FHS) ==FHS爲類UNIX操做系統的文件目錄結構制定了一套標準,目的是讓用戶預知文件或目錄的存放位置。UNIX操做系統的常見目錄結構以下所示。==微信
/:根目錄,以斜槓表示,其餘全部文件和目錄在根目錄下展開。
/bin:"binary"的簡寫,存放提供用戶級基礎功能的二進制文件,如ls、ps等。
/boot:存放能使系統成功啓動的全部文件。iOS中此目錄爲空。
/dev:"device"的簡寫,存放BSD設備文件。每一個文件表明系統的一個塊設備或字符設備,通常來講,「塊設備」以塊爲單位傳輸數據,如硬盤;而「字符設備」以字符爲單位傳輸數據,如調制解調器。
/sbin:"system binaries"的簡寫,存放提供系統級基礎功能的二進制文件,如netstat、reboot等。
/etc:"Et Cetera"的簡寫,存放系統腳本及配置文件,如passwd、hosts等。在iOS中,/etc是一個符號連接,實際指向/private/etc。
/lib:存放系統庫文件、內核模塊及設備驅動等。iOS中此目錄爲空。
/mnt:"mount"的簡寫,存放臨時的文件系統掛載點。iOS中此目錄爲空。
/private:存放兩個目錄,分別是/private/etc和/private/var。
/tmp:臨時目錄。在iOS中,/tmp是一個符號連接,實際指向/private/var/tmp。
/usr:包含了大多數用戶工具和程序。/usr/bin包含那些/bin和/sbin中未出現的基礎功能,如nm、killall等;/usr/include包含全部的標準C頭文件;/usr/lib存放庫文件。
/var:"variable"的簡寫,存放一些常常更改的文件,好比日誌、用戶數據、臨時文件等。其中/var/mobile和/var/root分別存放了mobile用戶和root用戶的文件,是重點關注的目錄。
複製代碼
```
1111 1111 = 2^0*1 + 2^1*1 + 2^2*1 + 2^3*1 + ...+2^7*1 = 2^8 - 1
8421
1111 = 8+4+2+1 = 15
1011 = 8+2+1 = 11
rwx r-x r--
111 101 100
全部者 屬組 其餘
用3*3位來表示一個文件的權限,若是某一位爲1,則這一位表明的權限生效,不然無效。例如,111101101表明rwxr-xr-x,即該文件的屬主用戶擁有r、w、x權限,而屬主組和其餘全部人只具備r和x權限;同時,二進制的111101101轉換成十六進制是755,也是一種常見的權限表示法。
可使用chmod 命令修改文件權限,如 chmod 755 filename
複製代碼
* iOS的獨有目錄
```
/Applications:存放全部的系統App和來自於Cydia的App,但不包括StoreApp。
/Developer:若是一臺設備鏈接Xcode後被指定爲調試用機,Xcode就會在iOS中生成這個目錄,其中會含有一些調試須要的工具和數據。
/Library:存放一些提供系統支持的數據。其中/Library/MobileSubstrate下存放了全部基於CydiaSubstrate(原名MobileSubstrate)的插件(如:tweak編寫的插件)。
/System/Library:iOS文件系統中最重要的目錄之一,存放大量系統組件。
/System/Library/Frameworks和/System/Library/PrivateFrameworks:存放iOS中的各類framework
/System/Library/CoreServices裏的SpringBoard.app:iOS桌面管理器(相似於Windows裏的explorer),是用戶與系統交流的最重要中介。
/User:用戶目錄(其實就是mobile用戶的home目錄),實際指向/var/mobile,這個目錄裏存放大量用戶數據,好比:
/var/mobile/Media/DCIM下存放照片;
/var/mobile/Media/Recordings下存放錄音文件;
/var/mobile/Library/SMS下存放短信數據庫;
/var/mobile/Library/Mail下存放郵件數據。
/var/mobile/Containers,存放StoreApp。值得注意的是,App的可執行文件在bundle與App中的數據目錄被分別存放在/var/mobile/Containers/Bundle和/var/mobile/Containers/Data這兩個不一樣目錄下。其中/var/mobile/Containers/Data是咱們經常使用的應用沙盒目錄的起始目錄:NSString *directory = NSHomeDirectory(); //獲取沙盒根目錄
```
* iOS應用(Store App)沙盒目錄:
- Application Bundle 包含應用可執行文件和資源文件
複製代碼
如獲取iOS上微信程序的Bundle路徑,能夠經過ps -e | grep appname
luz-iphone:/ root# ps -e | grep WeChat 1368 ?? 5:41.43 /var/mobile/Containers/Bundle/Application/749DC69A-3A8D-4B5C-9926-1220E69FC85F/WeChat.app/WeChatapp
- Application Data 包含App運行生產的數據和配置信息等
```
如獲取iOS上微信程序的Date路徑,能夠經過cycript工具
luz-iphone:~ root# cycript -p WeChat
cy# directory = NSHomeDirectory()
@"/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE"
cy#
複製代碼
Date目錄結構以下:
```
luz-iphone:/var/mobile/Containers/Data/Application/986376B5-EF08-4CAF-81FB-CAE48D1FE4AE root# ls
Documents/ Library/ tmp/
```
複製代碼