天天看點

編寫makefile時注意事項

CFLAGS=-Wall -g  這個-Wall開頭字母一定要大寫。這種小錯誤會導緻不能編譯!

其次就是在一個目錄下面的應該是檔案 ,而不能在繼續用檔案去進行編寫代碼,因為make尋找目前目錄下的makefile,makefile裡面用到的檔案而不是目錄裡的代碼,如果需要也要通過-l(l連結link)一下。是以再一個目錄下,編寫檔案盡量用vi指令,而不是mkdir。這兩個差別要搞清楚。檔案與目錄還是有差別的。

linux mkdir 指令用來建立指定的名稱的目錄,要求建立目錄的使用者在目前目錄中具有寫權限,并且指定的目錄名不能是目前目錄中已有的目錄。

vi filename :打開或建立檔案,并将光标置于第一行首 

rm   -r  目錄可以進行删除目錄檔案。

cat主要有三大功能:

1.一次顯示整個檔案。$ cat filename

2.從鍵盤建立一個檔案。$ cat > filename  

   隻能建立新檔案,不能編輯已有檔案.

3.将幾個檔案合并為一個檔案: $cat file1 file2 > file

參數:

-n 或 --number 由 1 開始對所有輸出的行數編号

-b 或 --number-nonblank 和 -n 相似,隻不過對于空白行不編号

-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行

-v 或 --show-nonprinting

例:

把 textfile1 的檔案内容加上行号後輸入 textfile2 這個檔案裡

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的檔案内容加上行号(空白行不加)之後将内容附加到 textfile3 裡。

cat -b textfile1 textfile2 >> textfile3

把.txt檔案扔進垃圾箱,賦空值test.txt

cat /dev/null > /etc/test.txt  

Linux中檔案類型隻有以下這幾種:

1.-,普通檔案。

2.d,目錄檔案,d是directory的簡寫。

3.l,軟連接配接檔案,亦稱符号連結檔案,s是soft或者symbolic的簡寫。

4.b,塊檔案,是裝置檔案的一種(還有另一種),b是block的簡寫。

5.c,字元檔案,也是裝置檔案的一種(這就是第二種),c是character的檔案。

Linux系統最原始的也隻有這五種,是以第0位,隻能是以上五者之一。

那麼你會有疑問,

1.MP3檔案是是哪種?答案:普通檔案。

2.二進制檔案是哪種?答案:普通檔案。

3.文本檔案是哪種?答案:普通檔案。

4.為什麼硬連接配接沒有類型表示?答案:硬連接配接和軟連接配接,名字上雖然隻差一個字,本質完全不同,硬連接配接也是檔案。其類型是普通檔案。

為什麼上面要說這麼多呢?目的是為下文做知識鋪墊。

那麼 123-456-789 都好說,了解這塊兒的人都知道,他們隻是 使用者-屬組-其他 這三組之間的差別,我們拿其中任意一組作為例子來講解rwx皆可。

r:read,w:write,x:execute。

展現在指令上:(話說這才是最實際的表象)

======

對于普通檔案來說,rwx的意義是:

r:可以獲得這個普通檔案的名字和内容。

w:可以修改這個檔案的内容和檔案名。可以删除該檔案,但是使用者會得到是否删除寫保護檔案的prompt。

x:該檔案是否具有被執行的權限。

對于目錄檔案來說,rwx的意義是:

r-x:可以進入cd該目錄,可以獲得該目錄下存儲情況,但是不能修改這個目錄内部存儲的檔案(目錄)的名字,也不能在該目錄下建立檔案和目錄

-wx:可以進入cd該目錄,但是看不到該目錄下的存儲情況(ls不可用),可以往該目錄下添加、修改、删除檔案。可以通過cat來讀取該目錄下的檔案or目錄的内容,由于得不到該目錄下存儲了那些檔案,在不知情的情況下隻能通過猜,cat + 檔案名獲得檔案内容,是以這樣依然不保密。

--x:可以進入cd該目錄,看不到存儲情況,也不能往該目錄下添加、修改、删除檔案。但是依然可以通過cat + xx(猜)來獲得該目錄下的檔案的内容。

rw-:不能進入cd該目錄,用ls僅僅可以獲得檔案名和目錄名,因為擷取不到這些檔案的inode号,當然也不能獲得該目錄下的檔案的内容。不能往該目錄下添加、修改、删除檔案。

最後總結一下吧:

1.目錄檔案雖然是檔案(唉,誰叫Linux的核心理念就是Everything is file),但是存儲内容的隻是一張表而已,關于檔案名和inode号的映射關系。

2.檔案的擴充名和檔案類型之間,沒一毛錢關系。

3.檔案的檔案名和檔案實際存儲内容之間,沒一毛錢關系。

4.要知道如何查找到一個檔案内容的過程。

5.為什麼同一個檔案系統移動檔案要比跨檔案系統快?

答:因為隻需要修改某個目錄中路徑和inode對應關系即可,不需要重新寫一遍資料域。

6.什麼是買來的500G的硬碟,格式化完後總是少了達不到500G?

答:從本文可知,inode-table也是需要占用存儲空間的,是以缺少的一部分中inode-table占用了不少。

7.我不想吃虧,那麼我要如何了解Linux檔案系統和inode的相關知識,能否推薦個文章?

答:http://www.cyberciti.biz/tips/understanding-unixlinux-filesystem-inodes.html