A. 在ext2文件系統中,linux內核如何讀取指定文件內容
不管是ext2,還是其他文件系統,其實基本上的結構都是一樣的,都有inode,用來定位每個文件,如果是用c編程,fopen,fread,fclose等都是很標準的函數,你可以很方便的去讀取某個文件的具體內容。
B. Linux文件系統特點
Linux之所以能在嵌人式系統領域取得如此輝煌的成績,與其自身的優良特性是分不開的。與其他操作系統相比,Linux具有以下一系列顯著的特點。
1.模塊化程度高
Linux的內核設計非常精巧,分成進程調度、內存管理、進程間通信、虛擬文件系統和網路介面五大部分;其獨特的模塊機制可根據用戶的需要,實時地將某些模塊插入或從內核中移走,使得Linux系統內核可以裁剪得非常小巧,很適合於嵌入式系統的需要。
2.源碼公開
由於Linux系統的開發從一開始就與GNU項目緊密地結合起來,所以它的大多數組成部分都直接來自GNU項目。任何人、任何組織只要遵守GPL條款,就可以自由使用Linux 源代碼,為用戶提供了最大限度的自由度。這一點也正投嵌入式系統所好,因為嵌入式系統應用千差萬別,設計者往往需要針對具體的應用對源碼進行修改和優化,所以是否能獲得源代碼 對於嵌入式系統的開發是至關重要的。加之Linux的軟體資源十分豐富,每種通用程序在Linux上幾乎都可以找到,並且數量還在不斷增加。這一切就使設計者在其基礎之上進行二次開發變得非常容易。另外,由於Linux源代碼公開,也使用戶不用擔心有「後閘」等安全隱患。
同時,源碼開放給各教育機構提供極大的方便,從而也促進了Linux的學習、推廣和應用。
3.廣泛的硬體支持
Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多種體系結構的微處理器。目前已成功地移植到數十種硬體平台,幾乎能運行在所有流行的處理器上。
由於世界范圍內有眾多開發者在為Linux的擴充貢獻力量,所以Linux有著異常豐富的驅動程序資源,支持各種主流硬體設各和最新的硬體技術,甚至可在沒有存儲管理單元MMU 的處理器上運行,這些都進一步促進了Linux在嵌入式系統中的應用。
4.安全性及可靠性好
內核高效穩定。Linux內核的高效和穩定已在各個領域內得到了大量事實的驗證。
Linux中大量網路管理、網路服務等方面的功能,可使用戶很方便地建立高效穩定的防火牆、路由器、工作站、伺服器等。為提高安全性,它還提供了大量的網路管理軟體、網路分析軟體和網路安全軟體等。
5.具有優秀的開發工具
開發嵌入式系統的關鍵是需要有一套完善的開發和調試工具。傳統的嵌入式開發調試工具是在線模擬器(In Circuit Emulator,ICE),它通過取代目標板的微處理器,給目標程序提供一個完整的模擬環境,從而使開發者能非常清楚地了解到程序在目標板上的工作狀態,便於監視和調試程序。在線模擬器的價格非常高,而且只適合做非常底層的調試。如果使用的是嵌人式Linux,一旦軟硬體能支持正常的串口功能,即使不用在線模擬器,也可以很好地進行開發和調試工作,從而節省了一筆不小的開發費用。嵌入式Linux為開發者提供了一套完整的工具鏈(Tool Chain),能夠很方便地實現從操作系統到應用軟體各個級別的調試。
6.有很好的網路支持利文件系統支持
Linux從誕生之日起就與Internet密不可分,支持各種標準的Internet網路協議,並且很容易移植到嵌入式系統當中。目前,Linux幾乎支持所有主流的網路硬體、網路協議和文件系統,因此它是NFS的一個很好的平台。
另一方面,由於Linux有很好的文件系統支持(例如,它支持Ext2、FAT32、romfs等文件系統),是數據各份、同步和復制的良好平台,這些都為開發嵌入式系統應用打下了堅實的基礎。
7.與UNIX完全兼容
目前,在Linux中所包含的工具和實用程序,可以完成UNIX的所有主要功能。
但由於Linux不是為實時而設計的,因而這就成了Linux在實時系統中應用的最大遺憾。不過,目前有眾多的自由軟體愛好者正在為此進行不懈的努力,也取得了諸多成果
C. linux如何在程序中得到某個文件系統的讀寫屬性
可以通過讀取超級塊信息查看文件系統屬性,使用兩個方法,以塊設備 /dev/sda1 為例:
1、tune2fs -l /dev/sda1
2、mpe2fs -h /dev/sda1 這個命令用於顯示屬性的參數比較多,可以看man幫助。
但是你所說的文件系統讀寫屬性,是否僅僅是指文件系統當前的模式:只讀 、讀寫?
如果這樣的話,可以直接用 mount 命令查看,輸出結果中包含了當前文件系統的讀寫模式(rw、ro);
此外,用 lvs 查看lv屬性,其中的Attr列的6個標志位顯示當前lv(相應的FS)的屬性,可以通過man查看各個標志位的詳細信息。
D. 如何在Windows系統下訪問Linux文件系統
安裝有Windows和Linux雙系統的朋友們可能會需要在兩個系統之間共享某些文件,在Ubuntu下,我們現在不需要安裝任何軟體即可訪問Windows文件系統,但是Windows在默認狀態下是無法訪問到Linux文件系統的.不過我們通過以下4款免費軟體可以達到同樣的目的.這四款軟體在功能和界面上有各自的特點,都值得一試.
1.Linux Reader
Linux Reader最大的特點在於功能簡單,界面和Windows文件管理器類似,操作起來非常方便.
2.Ext2 IFS
本類軟體裡面最好的,在安裝過程中即可指定Linux分區的盤符,安裝完成之後即可像訪問windows分區一樣訪問Linux分區了.文件復制速度也非常之快.
3.Explore2fs
最大的特點是體積小,無需安裝,僅有一個exe文件,下載後即可使用. 只能讀取,不能寫入.
4.Ext2fsd
安裝之後和Ext2 IFS類似,能夠給Linux分區加上盤符.不過不兼容Windows Vista.
以上這些比較起來Ext2 IFS還是最強的,無論是從易用還是性能上看都是另外三款不可比擬的,不過如果你只需要讀取,Linux Reader和Explore2fs這兩款也非常值得一試.其實在Windows下對Linux分區進行寫操作有可能造成不可挽回的損失,當然,熟悉Linux的不在此列.
E. Linux文件系統的三種基本許可權是什麼
1)read:可讀取文件的內容,例如讀取文本文件的內容。
2)writer:可以編輯、新增或者修改文件的內容,但是不可以刪除該文件。這里的修改都是基於文件內容的,文件中記錄的數據而言的。
3)execute:該文件可以被系統執行。這個需要注意,因為Linux和Windows系統不一樣。在Windows系統下,文件是否可以被執行是通過擴展名來區別的,例如.exe, .bat, .com等,這些文件類型都是可被執行的;而在Linux下,文件是否可以被執行時通過許可權x來標注的,和文件名沒有絕對的關系。
F. Linux文件系統open,read,write過程
linux 中,打開,讀寫,可以通過基於文件流的fopen() fread(),fwrite() ,也可以通過,基於文件標示符的不帶緩存的open(),read() ,write()打開。
不知道,你到底想知道什麼 ?
char buff[100];
int fd =open(file_name,O_RDONLY);
real_read=read(fd,buff,100);//從文件中讀取100 字元,放到buff 中
real_write=write(fd,buff,100);//寫100字元寫到文件中。
G. linux 里怎麼獲取一個文件
因為要裝pl/sql所以要查找tnsnames.ora文件。。看看怎麼查這個文件在Linux下的哪個目錄
find / -name tnsnames.ora
查到:
/opt/app/Oracle/proct/10.2/network/admin/tnsnames.ora
/opt/app/oracle/proct/10.2/network/admin/samples/tnsnames.ora
還可以用locate 來查找
locate tnsnames.ora
結果是:
/opt/app/oracle/proct/10.2/hs/admin/tnsnames.ora.sample
/opt/app/oracle/proct/10.2/network/admin/tnsnames.ora
/opt/app/oracle/proct/10.2/network/admin/samples/tnsnames.ora
一.通過文件名查找法:
舉例說明,假設你忘記了httpd.conf這個文件在系統的哪個目錄 下,甚至在系統的某個地方也不知道,則這是可以使用如下命令:
find / -name httpd.conf
這個命令語法看起來很容易就明白了,就是直接在find後面寫上 -name,表明要求系統按照文件名查找,最後寫上httpd.conf這個目標文件名即可。稍等一會系統會在計算機屏幕上顯示出查找結果列表:
etc/httpd/conf/httpd.conf
這就是httpd.conf這個文件在Linux系統中的完整路徑。查找成功。
如果輸入以上查找命令後系統並沒有顯示出結果,那麼不要以為系統沒有執行find / -name httpd.conf命令,而可能是你的系統中沒有安裝Apache伺服器,這時只要你安裝了ApacheWeb伺服器,然後再使用find / -name httpd.conf就能找到這個配置文件了。
二.無錯誤查找技巧:
在Linux系統中「find」命令是大多數系統用戶都可以使用的命令,並不是ROOT系統管理員的專利。但是普通用戶使用「find」命令時也有可 能遇到這樣的問題,那就是Linux系統中系統管理員ROOT可以把某些文件目錄設置成禁止訪問模式。這樣普通用戶就沒有許可權用「find」命令來查詢這 些目錄或者文件。當普通用戶使用「find」命令來查詢這些文件目錄是,往往會出現"Permissiondenied."(禁止訪問)字樣。系統將無法 查詢到你想要的文件。為了避免這樣的錯誤,我們可是使用轉移錯誤提示的方法嘗試著查找文件,例如輸入:
find / -name access_log 2>/dev/null
這個方法是把查找錯誤提示轉移到特定的目錄中去。系統執行這個命令後,遇到錯誤的信息就直接輸送到stderrstream2 中,access_log2就是表明系統將把錯誤信息輸送到stderrstream2中,/dev/null是一個特殊的文件,表明空的或者錯誤的信 息,這樣查詢到的錯誤信息將被轉移了,不會再顯示了。
在Linux系統查找文件也會遇到這樣一個實際問題。如果我們在整個硬碟,這個系統中查找某個文件就要花費相當長的一段時間,特別是大型Linux系 統和容量較大的硬碟,文件放在套嵌很深的目錄中的時候。如果我們知道了這個文件存放在某個大的目錄中,那麼只要在這個目錄中往下找就能節省很多時間了。使 用find /etc -name httpd.conf就可以解決這個問題。上面的命令就是表示在etc目錄中查詢httpd.conf這個文件。這里再說明一下「/」這個函數符號的含 義,如果輸入「find /」就是表示要求Linux系統在整個ROOT目錄下查找文件,也就是在整個硬碟上查找文件,而「find /etc」就是只在
etc目錄下查找文件。因為「find /etc」表示只在etc目錄下查找文件,所以查找的速度就相應要快很多了。
三.根據部分文件名查找方法:
例如我們知道某個文件包含有srm這3個字母,那麼要找到系統中所有包含有這3個字母的文件是可以實現 的,輸入:
find /etc -name '*srm*'
這個命令表明了Linux系統將在/etc整個目錄中查找所有的包含有srm這3個字母的文件,比如absrmyz,tibc.srm等等符合條件的文件都能顯示出來。如果你還知道這個文件是由srm 這3個字母打頭的,那麼我們還可以省略最前面的星號,命令如下:
find/etc -name 'srm*'
這是只有像srmyz這樣的文件才被查找出來,像absrmyz或者absrm這樣的文件都不符合要求,不被顯示,這樣查找文件的效率和可靠性就大大增強了。
四.根據文件的特徵查詢方法:
如果只知道某個文件的大小,修改日期等特徵也可以使用「find」命令查找出來,這和WINDOWS系統中的「搜索」功能是基本相同的。在微軟的「搜 索」中,「搜索助理」使得搜索文件和文件夾、列印機、用戶以及網路中的其他計算機更加容易。它甚至使在Internet上搜索更加容易。「搜索助理」還包 括一個索引服務,該服務維護了計算機中所有文件的索引,使得搜索速度更快。使用「搜索助理」時,用戶可以指定多個搜索標准。例如,用戶可以按名稱、類型及 大小搜索文件和文件夾。用戶甚至可以搜索包含特定文本的文件。如果用戶正使用Active Directory,這時還可以搜索帶有特定名稱或位置的列印機。
例如我們知道一個Linux文件大小為1,500bytes,那麼我們可是使用如下命令來查詢find /-size
1500c,字元c表明這個要查找的文件的大小是以bytes為單位。如果我們連這個文件的具體大小都不知道,那麼在Linux中還可以進行模糊查找方式 來解決。例如我們輸入find /-size+10000000c這個命令,則標明我們指定系統在根目錄中查找出大於10000000位元組的文件並顯示出來。命令中的「+」是表示要求系 統只列出大於指定大小的文件,而使用「-」則表示要求系統列出小於指定大小的文件。下面的列表就是在Linux使用不同「find"命令後系統所要作出的 查找動作,從中我們很容易看出在Linux中使用「find」命令的方式是很多的,「find」命令查找文件只要靈活應用,絲毫不比在WINDOWS中查 找能力差。
find / -amin -10 # 查找在系統中最後10分鍾訪問的文件
find / -atime -2 # 查找在系統中最後48小時訪問的文件
find / -empty # 查找在系統中為空的文件或者文件夾
find / -group cat # 查找在系統中屬於groupcat的文件
find / -mmin -5 # 查找在系統中最後5分鍾里修改過的文件
find / -mtime -1 #查找在系統中最後24小時里修改過的文件
find / -nouser #查找在系統中屬於作廢用戶的文件
find / -user fred #查找在系統中屬於FRED這個用戶的文件
下面的列表就是對find命令所可以指定文件的特徵進行查找的部分條件。在這里並沒有列舉所有的查找條件,參考有關Linux有關書籍可以知道所有find命令的查找函數。
-amin n
查找系統中最後N分鍾訪問的文件
-atime n
查找系統中最後n*24小時訪問的文件
-cmin n
查找系統中最後N分鍾被改變狀態的文件
-ctime n
查找系統中最後n*24小時被改變狀態的文件
-empty
查找系統中空白的文件,或空白的文件目錄,或目錄中沒有子目錄的文件夾
-false
查找系統中總是錯誤的文件
-fstype type
查找系統中存在於指定文件系統的文件,例如:ext2 .
-gid n
查找系統中文件數字組 ID 為 n的文件
-group gname
查找系統中文件屬於gnam文件組,並且指定組和ID的文件。
需要解決更多linux問題,詳情請看 http://www.linuxprobe.com/chapter-00.html
望採納