摘要: 上次出去幫一個朋友的朋友給一個原有的.net項目添加一個新的功能模塊。結果,很傷,原因很簡單,由于我對dotnet的工作機理想當然,個人觀點占據上風,導致在初期設計的時候就走上了一天錯誤的道路,郁悶了很長一段時間,決定花一定時間去真正理解一些更底層,更基礎的東西。現在忽然發現自己在過去很長的一段時間有些舍本逐末了,檢討~~~~
這...
閱讀全文
posted @
2009-05-27 11:38 moonandsun 閱讀(416) |
評論 (0) |
編輯 收藏
web2.0這個名詞不止一次的在我眼前出現,有時候由于它的出現過于頻繁,以至于我還沒來得及去想,已漸漸的在內心中接受了這個名詞。初識web2.0是在去年,具體什么時候已記不太清楚,當初我腦海中的web2.0和我現在的認識不盡相同,我當時的認識只是web2.0的一個方面,甚至可以說與我們所說的web2.0不相關。當時我和我的幾個師兄在一起做一個web項目,當然他們常常會提到web2.0標準,起初我不是很理解,當然現在也依然模糊。從網上在了點資料。網上如是說:WEB2.0標準不是某一個標準,而是一系列標準的集合。網頁主要由三部分組成:結構(Structure)、表現(Presentation)和行為(Behavior)。對應的標準也分三方面:結構化標準語言主要包括XHTML和XML,表現標準語言主要包括CSS,行為標準主要包括對象模型(如W3C DOM)、ECMAScript等。這些標準大部分由W3C起草和發布,也有一些是其他標準組織制訂的標準,比如ECMA(European Computer Manufacturers Association)的ECMAScript標準。恍然大明白,原來自己在很長一段時間都在為web2.0標準努力。不由暗暗自喜。后來,每次上網,看雜志(尤其程序員),看報紙(電腦報),web2.0的字眼是滿天飛。既然自己要考研,并且準備在計算機方面發展,我認為有必要了解web2.0。
web2.0是相對于web1.0來說的. 首先就易用性和交互性方面來說,Web1.0里,互聯網內容是由少數編輯人員(或站長)定制的,比如搜狐;而在Web2.0里,每個人都是內容的供稿者。標由于web2.0主張多然參與,所以互聯網內容也更加豐富和多樣化,同時web2.0采用了標簽(tag),多媒體技術,rss訂閱,在線協作等功能,用戶在使用互聯網的過程也更方便、快捷。就我的一個上網習慣來說,我關注最多的是IT技術方面的發展,一般我經常去csdn,cnblogs,itpub等網站,以前我看文章都是一個網站一個網站的打開,有時候發現某個人的博客很適合自己的口味,于是想關注這位博主的最新動態,于是收藏的網址越來越多,每天想把自己關注的事情看一遍很費時間。現在可不一樣了,發現自己的喜歡網站或博客,訂閱到自己的google reader中,每天上網第一件事,打開google reader,有什么最新新聞,最新動態一目了然。都是互聯網提供的便利啊。
其次,web2.0相對于web1.0來說更突出人的作用,在互聯網的新時代,信息是由每個人貢獻出來的。各個人共同組成互聯網信息源。Web2.0的靈魂是人。同是,為了更好的發揮“人”的作用,web2.0的形式也更多樣化,出現了各種各樣的互聯網服務,例如博客、威客、播客、維基、P2P下載、社區、分享服務等等。是“人”能夠從互聯網上得到不同程度上的滿足。現如今,用戶即所謂的“人”所產生的信息在互聯網內容中所占的比重越來越大,而且隨著web2.0的發展,這一趨勢還會不斷加強。web2.0為所有互聯網用戶提供了一個展示自我和自我實現的平臺。而且隨著互聯網技術的發展,web2.0在生活信息化、辦公信息化方面的作用也會一步步提升,是人們的生活、學習、工作更加便捷和輕松。
總之,web2.0從某種程度上改變了人們的生活。
posted @
2009-05-20 21:14 moonandsun 閱讀(163) |
評論 (0) |
編輯 收藏
好長一段時間沒有寫日志,生活在繁忙中迷茫了一段,細細想來也不知道都干了些什么,于技術方面更是毫無長進,靜下心來下篇文章,安撫一下浮躁的心靈。
現在開始Maven2的學習。
第一步不用說,下載Maven2,以待安裝。
其實我們有必要了解Maven2到底是一個干么的東西,要使用它首先得知道它是干么的。
先看看ReadMe.txt
What is it?
-----------
Maven is a software project management and comprehension tool. Based on
the concept of a Project Object Model (POM), Maven can manage a project's
build, reporting and documentation from a central piece of information.
now we got it .it is a tool which can manage and comprehend our project .
系統需求,一般我們都能達到,忽略。
System Requirements
-------------------
JDK:
1.4 or above (this is to execute Maven - it still allows you to build against 1.3
and prior JDK's).
Memory:
No minimum requirement.
Disk:
No minimum requirement. Approximately 100MB will be used for your local repository,
however this will vary depending on usage and can be removed and redownloaded at
any time.
Operating System:
No minimum requirement. On Windows, Windows NT and above or Cygwin is required for
the startup scripts. Tested on Windows XP, Fedora Core and Mac OS X.s
下一步,安裝。我建議看看文檔。
Installing Maven
----------------
1) Unpack the archive where you would like to store the binaries, eg:
Unix-based Operating Systems (Linux, Solaris and Mac OS X)
tar zxvf apache-maven-2.0.x.tar.gz
Windows 2000/XP
unzip apache-maven-2.0.x.zip
2) A directory called "apache-maven-2.0.x" will be created.
3) Add the bin directory to your PATH, eg:
Unix-based Operating Systems (Linux, Solaris and Mac OS X)
export PATH=/usr/local/apache-maven-2.0.x/bin:$PATH
Windows 2000/XP
set PATH="c:\program files\apache-maven-2.0.x\bin";%PATH%
4) Make sure JAVA_HOME is set to the location of your JDK
我用的是winXP,看這句就可以了。
set PATH="c:\program files\apache-maven-2.0.x\bin";%PATH%
其中 “c:\program files\apache-maven-2.0.x\bin”為maven2解壓路徑。
最后一步測試一下是否成功。
5) Run "mvn --version" to verify that it is correctly installed.

OK,it works~~~
posted @
2009-05-05 22:10 moonandsun 閱讀(222) |
評論 (0) |
編輯 收藏
十進制,八進制,十六進制,二進制相互轉換
' 用途:將十進制轉化為二進
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為1111111111111111111111111111111(31個1)
Public Function DEC_to_BIN(Dec As Long) As String
DEC_to_BIN = ""
Do While Dec > 0
DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
Dec = Dec \ 2
Loop
End Function
' 用途:將二進制轉化為十進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為1111111111111111111111111111111(31個1),輸出最大數為2147483647
Public Function BIN_to_DEC(ByVal Bin As String) As Long
Dim i As Long
For i = 1 To Len(Bin)
BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))
Next i
End Function
' 用途:將十六進制轉化為二進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function HEX_to_BIN(ByVal Hex As String) As String
Dim i As Long
Dim B As String
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, i, 1)
Case "0": B = B & "0000"
Case "1": B = B & "0001"
Case "2": B = B & "0010"
Case "3": B = B & "0011"
Case "4": B = B & "0100"
Case "5": B = B & "0101"
Case "6": B = B & "0110"
Case "7": B = B & "0111"
Case "8": B = B & "1000"
Case "9": B = B & "1001"
Case "A": B = B & "1010"
Case "B": B = B & "1011"
Case "C": B = B & "1100"
Case "D": B = B & "1101"
Case "E": B = B & "1110"
Case "F": B = B & "1111"
End Select
Next i
While Left(B, 1) = "0"
B = Right(B, Len(B) - 1)
Wend
HEX_to_BIN = B
End Function
' 用途:將二進制轉化為十六進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function BIN_to_HEX(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 4 <> 0 Then
Bin = String(4 - Len(Bin) Mod 4, "0") & Bin
End If
For i = 1 To Len(Bin) Step 4
Select Case Mid(Bin, i, 4)
Case "0000": H = H & "0"
Case "0001": H = H & "1"
Case "0010": H = H & "2"
Case "0011": H = H & "3"
Case "0100": H = H & "4"
Case "0101": H = H & "5"
Case "0110": H = H & "6"
Case "0111": H = H & "7"
Case "1000": H = H & "8"
Case "1001": H = H & "9"
Case "1010": H = H & "A"
Case "1011": H = H & "B"
Case "1100": H = H & "C"
Case "1101": H = H & "D"
Case "1110": H = H & "E"
Case "1111": H = H & "F"
End Select
Next i
While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
BIN_to_HEX = H
End Function
' 用途:將十六進制轉化為十進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為7FFFFFFF,輸出的最大數為2147483647
Public Function HEX_to_DEC(ByVal Hex As String) As Long
Dim i As Long
Dim B As Long
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
Case "0": B = B + 16 ^ (i - 1) * 0
Case "1": B = B + 16 ^ (i - 1) * 1
Case "2": B = B + 16 ^ (i - 1) * 2
Case "3": B = B + 16 ^ (i - 1) * 3
Case "4": B = B + 16 ^ (i - 1) * 4
Case "5": B = B + 16 ^ (i - 1) * 5
Case "6": B = B + 16 ^ (i - 1) * 6
Case "7": B = B + 16 ^ (i - 1) * 7
Case "8": B = B + 16 ^ (i - 1) * 8
Case "9": B = B + 16 ^ (i - 1) * 9
Case "A": B = B + 16 ^ (i - 1) * 10
Case "B": B = B + 16 ^ (i - 1) * 11
Case "C": B = B + 16 ^ (i - 1) * 12
Case "D": B = B + 16 ^ (i - 1) * 13
Case "E": B = B + 16 ^ (i - 1) * 14
Case "F": B = B + 16 ^ (i - 1) * 15
End Select
Next i
HEX_to_DEC = B
End Function
' 用途:將十進制轉化為十六進制
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為7FFFFFFF
Public Function DEC_to_HEX(Dec As Long) As String
Dim a As String
DEC_to_HEX = ""
Do While Dec > 0
a = CStr(Dec Mod 16)
Select Case a
Case "10": a = "A"
Case "11": a = "B"
Case "12": a = "C"
Case "13": a = "D"
Case "14": a = "E"
Case "15": a = "F"
End Select
DEC_to_HEX = a & DEC_to_HEX
Dec = Dec \ 16
Loop
End Function
' 用途:將十進制轉化為八進制
' 輸入:Dec(十進制數)
' 輸入數據類型:Long
' 輸出:DEC_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647,輸出最大數為17777777777
Public Function DEC_to_OCT(Dec As Long) As String
DEC_to_OCT = ""
Do While Dec > 0
DEC_to_OCT = Dec Mod 8 & DEC_to_OCT
Dec = Dec \ 8
Loop
End Function
' 用途:將八進制轉化為十進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_DEC(十進制數)
' 輸出數據類型:Long
' 輸入的最大數為17777777777,輸出的最大數為2147483647
Public Function OCT_to_DEC(ByVal Oct As String) As Long
Dim i As Long
Dim B As Long
For i = 1 To Len(Oct)
Select Case Mid(Oct, Len(Oct) - i + 1, 1)
Case "0": B = B + 8 ^ (i - 1) * 0
Case "1": B = B + 8 ^ (i - 1) * 1
Case "2": B = B + 8 ^ (i - 1) * 2
Case "3": B = B + 8 ^ (i - 1) * 3
Case "4": B = B + 8 ^ (i - 1) * 4
Case "5": B = B + 8 ^ (i - 1) * 5
Case "6": B = B + 8 ^ (i - 1) * 6
Case "7": B = B + 8 ^ (i - 1) * 7
End Select
Next i
OCT_to_DEC = B
End Function
' 用途:將二進制轉化為八進制
' 輸入:Bin(二進制數)
' 輸入數據類型:String
' 輸出:BIN_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function BIN_to_OCT(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 3 <> 0 Then
Bin = String(3 - Len(Bin) Mod 3, "0") & Bin
End If
For i = 1 To Len(Bin) Step 3
Select Case Mid(Bin, i, 3)
Case "000": H = H & "0"
Case "001": H = H & "1"
Case "010": H = H & "2"
Case "011": H = H & "3"
Case "100": H = H & "4"
Case "101": H = H & "5"
Case "110": H = H & "6"
Case "111": H = H & "7"
End Select
Next i
While Left(H, 1) = "0"
H = Right(H, Len(H) - 1)
Wend
BIN_to_OCT = H
End Function
' 用途:將八進制轉化為二進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_BIN(二進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function OCT_to_BIN(ByVal Oct As String) As String
Dim i As Long
Dim B As String
For i = 1 To Len(Oct)
Select Case Mid(Oct, i, 1)
Case "0": B = B & "000"
Case "1": B = B & "001"
Case "2": B = B & "010"
Case "3": B = B & "011"
Case "4": B = B & "100"
Case "5": B = B & "101"
Case "6": B = B & "110"
Case "7": B = B & "111"
End Select
Next i
While Left(B, 1) = "0"
B = Right(B, Len(B) - 1)
Wend
OCT_to_BIN = B
End Function
' 用途:將八進制轉化為十六進制
' 輸入:Oct(八進制數)
' 輸入數據類型:String
' 輸出:OCT_to_HEX(十六進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function OCT_to_HEX(ByVal Oct As String) As String
Dim Bin As String
Bin = OCT_to_BIN(Oct)
OCT_to_HEX = BIN_to_HEX(Bin)
End Function
' 用途:將十六進制轉化為八進制
' 輸入:Hex(十六進制數)
' 輸入數據類型:String
' 輸出:HEX_to_OCT(八進制數)
' 輸出數據類型:String
' 輸入的最大數為2147483647個字符
Public Function HEX_to_OCT(ByVal Hex As String) As String
Dim Bin As String
Hex = UCase(Hex)
Bin = HEX_to_BIN(Hex)
HEX_to_OCT = BIN_to_OCT(Bin)
End Function
VB自帶函數:
十進制轉八進制:Oct(num)
十六進制轉八進制:oct("&H" & num)
十進制轉十六進制:hex(num)
八進制轉十六進制:hex("&O" & num)
十六進制轉換為十進制
Dim str As String
str = Text2.Text
Text10.Text = CLng("&H" & str)
文章出處:http://blog.programfan.com/article.asp?id=11903
感謝作者的無私奉獻、、、、
posted @
2009-03-29 10:57 moonandsun 閱讀(1462) |
評論 (0) |
編輯 收藏
一、在VB中聲明API函數有兩種方法:如果我們只在某個窗體中使用API函數,我們可以在窗體代碼的General部分聲明它:
聲明的語法是:
Private Declare Function ...
Private Declare Sub.....
這里必須采用Private聲明,因為這個API函數只能被一個窗體內的程序所調用。
如果我們的程序有多個窗體構成,而且我們需要在多個窗體中使用同一個API函數,就需要在模塊中聲明了。
先添加一個模塊(如圖示),
然后采用如下語法聲明:
Public Declare Function....
Public Declare Sub....
Public聲明的含義是把API函數作為一個公共函數或過程,在一個工程中的任何位置(包括所有的窗體和模塊)都能直接調用它。 聲明完畢我們就能在程序中使用此API函數了。
二、可采用以下幾種方式使用API函數,以SetWindowPos函數為例:
(1)忽略函數返回值的調用:
SetWindowPos Form1.hWnd, -2 ,0 ,0 ,0, 0, 3
注意此時函數的參數是不加括號的。
(2)Call方法調用:
Call SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
注意這里需要加上括號,但我們不取回函數的返回值。
(3)取得函數返回值的調用:
MyLng = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
此時需要加上括號,而且我們必須事先定義一個變量(變量的類型與函數返回值類型相同)來
存儲API函數的返回值。
三、幾個問題的說明:
(1)聲明中的Lib 和 Alias 是怎么回事
一般情況下WIN32API函數總是包含在WINDOWS系統自帶的或是其它公司提供的動態連接庫DLL中,而Declare語句中的Lib關鍵字就用來指定DLL(動態連接庫)文件的路徑,這樣VB才能找到這個DLL文件,然后才能使用其中的API函數。如果我們只是列出DLL文件名而不指出其完整的路徑的話,VB會自動到.EXE文件所在目錄、當前工作目錄、WINDOWS\SYSTEM目錄、WINDOWS目錄下搜尋這個DLL文件。所以如果所要使用DLL文件不在上述幾個目錄下的話,我們應該指明其完整路徑。
Alias用于指定API函數的別名,如果我們調用的API函數要使用字符串(參數中包含String型)的話,Alias關鍵字是必須的。這是因為在ANSI和Unicode字符集中同一API函數的名稱可能是不一樣的,為了保證不出現聲明錯誤,我們使用Alias關鍵字指出API函數的別名,一般來說在WIN9X平臺下我們把API函數名后加一個大寫A作為別名即可。
(2)常見的API參數類型的說明
API函數的參數中最常見的是長整Long型數據類型,例如API中的句柄、一些特定的常量、函數的返回值都是此類型 的值;另外幾種常見的參數類型有:整型Integer、Byte型、String型等。
(3)聲明中的ByVal是作什么用的
這跟VB的參數傳遞方式有關,在默認情況下VB是通過地址傳遞方式傳遞函數的參數、而有些API函數要求必須采用傳值方式來傳遞函數參數(這兩種參數傳遞方式是不同的,前者傳遞的是一個指針,而后者要求是參數真實的值)。這樣就會發生錯誤,解決的辦法是在API函數參數聲明的前面加上ByVal關鍵字,這樣VB就采用傳值方式傳遞參數了。
(4)怎樣得到完整的API函數聲明
VB自帶了API文本查看器API TEXT VIEWER,我們可以在其中找到API函數的完整聲明,然后把它粘貼到程序中即可。
原文地址:http://www.enet.com.cn/article/2004/0312/A20040312293927.shtml
posted @
2009-03-28 16:46 moonandsun 閱讀(157) |
評論 (0) |
編輯 收藏
現行的網絡上,視頻播放器很多(嵌在網頁中那種),flv播放器更是不少,但支持rtmp協議的播放器可是不好找啊。雖然也有,但樣式單一,好看的不多。
一直以來苦苦尋覓一個漂亮的flv視頻播放器(嵌在網頁中那種)。好幾個月過去了,一直沒有結果。后來就把這事放到一邊去了,沒有再去理會。
后來一直就用一個叫Vcastr2.0 的播放器,播放器為黑色,整體感覺還是不錯的,但可供定制的選項不是很多。
再后來我發現了JW player ,官方網站:http://www.longtailvideo.com/ ,它的可定制性比較強,甚至在官網上我們可以直接設計出自己喜歡的播放器樣式,但無論你怎樣設置整體外形還是不變的(其實我看不好的就是這個播放器的外形)。所以這中播放器在那是我是看不上的。
時代在發展啊,當然JW player也一天天悄無聲息的進步著,今天我無意瀏覽到了JW player官網,幾個月不見,小子出息里,它既然也能夠換皮膚了,官方為我們提供了各種各樣的皮膚下載:http://www.longtailvideo.com/addons/skins 。
posted @
2009-03-12 11:50 moonandsun 閱讀(395) |
評論 (1) |
編輯 收藏
linux下的文件結構及其作用:
/bin 二進制可執行命令
/dev 設備特殊文件
/etc 系統管理和配置文件
/etc/rc.d 啟動的配置文件和腳本
/home 用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
/lib 標準程序設計庫,又叫動態鏈接共享庫,作用類似windows里的.dll文件
/sbin 系統管理命令,這里存放的是系統管理員使用的管理程序
/tmp 公用的臨時文件存儲點
/root 系統管理員的主目錄(呵呵,特權階級)
/mnt 系統提供這個目錄是讓用戶臨時掛載其他的文件系統。
/lost+found 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什么.chk)就在這里
/proc 虛擬的目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。
/var 某些大文件的溢出區,比方說各種服務的日志文件
/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。其中包含:
/usr/x11r6 存放x window的目錄
/usr/bin 眾多的應用程序
/usr/sbin 超級用戶的一些管理程序
/usr/doc linux文檔
/usr/include linux下開發和編譯應用程序所需要的頭文件
/usr/lib 常用的動態鏈接庫和軟件包的配置文件
/usr/man 幫助文檔
/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的庫
通常情況下,根文件系統所占空間一般應該比較小,因為其中的絕大部分文件都不需要
經常改動,而且包括嚴格的文件和一個小的不經常改變的文件系統不容易損壞。
除了可能的一個叫/ v m l i n u z標準的系統引導映像之外,根目錄一般不含任何文件。所有
其他文件在根文件系統的子目錄中。
1. /bin目錄
/ b i n目錄包含了引導啟動所需的命令或普通用戶可能用的命令(可能在引導啟動后)。這些
命令都是二進制文件的可執行程序( b i n是b i n a r y - -二進制的簡稱),多是系統中重要的系統文件。
2. /sbin目錄
/ s b i n目錄類似/bin ,也用于存儲二進制文件。因為其中的大部分文件多是系統管理員使
用的基本的系統程序,所以雖然普通用戶必要且允許時可以使用,但一般不給普通用戶使用。
3. /etc目錄
/ e t c目錄存放著各種系統配置文件,其中包括了用戶信息文件/ e t c / p a s s w d,系統初始化文
件/ e t c / r c等。l i n u x正是*這些文件才得以正常地運行。
4. /root目錄
/root 目錄是超級用戶的目錄。
5. /lib目錄
/ l i b目錄是根文件系統上的程序所需的共享庫,存放了根文件系統程序運行所需的共享文
件。這些文件包含了可被許多程序共享的代碼,以避免每個程序都包含有相同的子程序的副
本,故可以使得可執行文件變得更小,節省空間。
6. /lib/modules 目錄
/lib/modules 目錄包含系統核心可加載各種模塊,尤其是那些在恢復損壞的系統時重新引
導系統所需的模塊(例如網絡和文件系統驅動)。
7. /dev目錄
/ d e v目錄存放了設備文件,即設備驅動程序,用戶通過這些文件訪問外部設備。比如,用
戶可以通過訪問/ d e v / m o u s e來訪問鼠標的輸入,就像訪問其他文件一樣。
8. /tmp目錄
/tmp 目錄存放程序在運行時產生的信息和數據。但在引導啟動后,運行的程序最好使用
/ v a r / t m p來代替/tmp ,因為前者可能擁有一個更大的磁盤空間。
9. /boot目錄
/ b o o t目錄存放引導加載器(bootstrap loader)使用的文件,如l i l o,核心映像也經常放在這里,
而不是放在根目錄中。但是如果有許多核心映像,這個目錄就可能變得很大,這時使用單獨的
文件系統會更好一些。還有一點要注意的是,要確保核心映像必須在i d e硬盤的前1 0 2 4柱面內。
10. /mnt目錄
/ m n t目錄是系統管理員臨時安裝( m o u n t )文件系統的安裝點。程序并不自動支持安裝到
/mnt 。/mnt 下面可以分為許多子目錄,例如/mnt/dosa 可能是使用m s d o s文件系統的軟驅,
而/mnt/exta 可能是使用e x t 2文件系統的軟驅,/mnt/cdrom 光驅等等。
11. /proc, /usr,/var,/home目錄
其他文件系統的安裝點。
下面詳細介紹;
/etc文件系統
/etc 目錄包含各種系統配置文件,下面說明其中的一些。其他的你應該知道它們屬于哪個
程序,并閱讀該程序的m a n頁。許多網絡配置文件也在/etc 中。
1. /etc/rc或/etc/rc.d或/etc/rc?.d
啟動、或改變運行級時運行的腳本或腳本的目錄。
2. /etc/passwd
用戶數據庫,其中的域給出了用戶名、真實姓名、用戶起始目錄、加密口令和用戶的其
他信息。
3. /etc/fdprm
軟盤參數表,用以說明不同的軟盤格式。可用setfdprm 進行設置。更多的信息見s e t f d p r m
的幫助頁。
4. /etc/fstab
指定啟動時需要自動安裝的文件系統列表。也包括用swapon -a啟用的s w a p區的信息。
5. /etc/group
類似/etc/passwd ,但說明的不是用戶信息而是組的信息。包括組的各種數據。
6. /etc/inittab
init 的配置文件。
7. /etc/issue
包括用戶在登錄提示符前的輸出信息。通常包括系統的一段短說明或歡迎信息。具體內
容由系統管理員確定。
8. /etc/magic
“f i l e”的配置文件。包含不同文件格式的說明,“f i l e”基于它猜測文件類型。
9. /etc/motd
m o t d是message of the day的縮寫,用戶成功登錄后自動輸出。內容由系統管理員確定。
常用于通告信息,如計劃關機時間的警告等。
10. /etc/mtab
當前安裝的文件系統列表。由腳本( s c r i t p )初始化,并由mount 命令自動更新。當需要一
個當前安裝的文件系統的列表時使用(例如df 命令)。
11. /etc/shadow
在安裝了影子( s h a d o w )口令軟件的系統上的影子口令文件。影子口令文件將/ e t c / p a s s w d
文件中的加密口令移動到/ e t c / s h a d o w中,而后者只對超級用戶( r o o t )可讀。這使破譯口令更困
難,以此增加系統的安全性。
12. /etc/login.defs
l o g i n命令的配置文件。
13. /etc/printcap
類似/etc/termcap ,但針對打印機。語法不同。
14. /etc/profile 、/ e t c / c s h . l o g i n、/etc/csh.cshrc
登錄或啟動時b o u r n e或c shells執行的文件。這允許系統管理員為所有用戶建立全局缺省環境。
15. /etc/securetty
確認安全終端,即哪個終端允許超級用戶( r o o t )登錄。一般只列出虛擬控制臺,這樣就不
可能(至少很困難)通過調制解調器( m o d e m )或網絡闖入系統并得到超級用戶特權。
16. /etc/shells
列出可以使用的s h e l l。chsh 命令允許用戶在本文件指定范圍內改變登錄的s h e l l。提供一
臺機器f t p服務的服務進程ftpd 檢查用戶s h e l l是否列在/etc/shells 文件中,如果不是,將不允
許該用戶登錄。
17. /etc/termcap
終端性能數據庫。說明不同的終端用什么“轉義序列”控制。寫程序時不直接輸出轉義
序列(這樣只能工作于特定品牌的終端),而是從/etc/termcap 中查找要做的工作的正確序列。
這樣,多數的程序可以在多數終端上運行。
/dev文件系統
/dev 目錄包括所有設備的設備文件。設備文件用特定的約定命名,這在設備列表中說明。
設備文件在安裝時由系統產生,以后可以用/dev/makedev 描述。/ d e v / m a k e d e v.local 是
系統管理員為本地設備文件(或連接)寫的描述文稿(即如一些非標準設備驅動不是標準
makedev 的一部分)。下面簡要介紹/ d e v下一些常用文件。
1. /dev/console
系統控制臺,也就是直接和系統連接的監視器。
2. /dev/hd
i d e硬盤驅動程序接口。如: / d e v / h d a指的是第一個硬盤, h a d 1則是指/ d e v / h d a的第一個
分區。如系統中有其他的硬盤,則依次為/ d e v / h d b、/ d e v / h d c、. . . . . .;如有多個分區則依次為
h d a 1、h d a 2 . . . . . .
3. /dev/sd
s c s i磁盤驅動程序接口。如有系統有s c s i硬盤,就不會訪問/ d e v / h a d,而會訪問/ d e v / s d a。
4. /dev/fd
軟驅設備驅動程序。如: / d e v / f d 0指系統的第一個軟盤,也就是通常所說的a:盤,
/ d e v / f d 1指第二個軟盤,. . . . . .而/ d e v / f d 1 h 1 4 4 0則表示訪問驅動器1中的4 . 5高密盤。
5. /dev/st
s c s i磁帶驅動器驅動程序。
6. /dev/tty
提供虛擬控制臺支持。如: / d e v / t t y 1指的是系統的第一個虛擬控制臺, / d e v / t t y 2則是系統
的第二個虛擬控制臺。
7. /dev/pty
提供遠程登陸偽終端支持。在進行te l n e t登錄時就要用到/ d e v / p t y設備。
8. /dev/ttys
計算機串行接口,對于d o s來說就是“ c o m 1”口。
9. /dev/cua
計算機串行接口,與調制解調器一起使用的設備。
10. /dev/null
“黑洞”,所有寫入該設備的信息都將消失。例如:當想要將屏幕上的輸出信息隱藏起來
時,只要將輸出信息輸入到/ d e v / n u l l中即可。
/usr文件系統
/usr 是個很重要的目錄,通常這一文件系統很大,因為所有程序安裝在這里。/usr 里的
所有文件一般來自l i n u x發行版( d i s t r i b u t i o n );本地安裝的程序和其他東西在/usr/local 下,因為這樣可以在升級新版系統或新發行版時無須重新安裝全部程序。/usr 目錄下的許多內容是
可選的,但這些功能會使用戶使用系統更加有效。/ u s r可容納許多大型的軟件包和它們的配置
文件。下面列出一些重要的目錄(一些不太重要的目錄被省略了)。
1. /usr/x11r6
包含x wi n d o w系統的所有可執行程序、配置文件和支持文件。為簡化x的開發和安裝,
x的文件沒有集成到系統中。x wi n d o w系統是一個功能強大的圖形環境,提供了大量的圖形
工具程序。用戶如果對microsoft wi n d o w s或m a c h i n t o s h比較熟悉的話,就不會對x wi n d o w系統感到束手無策了。
2. /usr/x386
類似/ u s r / x 11r6 ,但是是專門給x 11 release 5的。
3. /usr/bin
集中了幾乎所有用戶命令,是系統的軟件庫。另有些命令在/bin 或/usr/local/bin 中。
4. /usr/sbin
包括了根文件系統不必要的系統管理命令,例如多數服務程序。
5. /usr/man、/ u s r / i n f o、/ u s r / d o c
這些目錄包含所有手冊頁、g n u信息文檔和各種其他文檔文件。每個聯機手冊的“節”
都有兩個子目錄。例如: / u s r / m a n / m a n 1中包含聯機手冊第一節的源碼(沒有格式化的原始文
件),/ u s r / m a n / c a t 1包含第一節已格式化的內容。l聯機手冊分為以下九節:內部命令、系統調
用、庫函數、設備、文件格式、游戲、宏軟件包、系統管理和核心程序。
6. /usr/include
包含了c語言的頭文件,這些文件多以. h結尾,用來描述c語言程序中用到的數據結構、
子過程和常量。為了保持一致性,這實際上應該放在/usr/lib 下,但習慣上一直沿用了這個名
字。
7. /usr/lib
包含了程序或子系統的不變的數據文件,包括一些s i t e - w i d e配置文件。名字l i b來源于庫
(library); 編程的原始庫也存在/usr/lib 里。當編譯程序時,程序便會和其中的庫進行連接。也
有許多程序把配置文件存入其中。
8. /usr/local
本地安裝的軟件和其他文件放在這里。這與/ u s r很相似。用戶可能會在這發現一些比較大
的軟件包,如t e x、e m a c s等。
/var文件系統
/var 包含系統一般運行時要改變的數據。通常這些數據所在的目錄的大小是要經常變化
或擴充的。原來/ v a r目錄中有些內容是在/ u s r中的,但為了保持/ u s r目錄的相對穩定,就把那
些需要經常改變的目錄放到/ v a r中了。每個系統是特定的,即不通過網絡與其他計算機共享。
下面列出一些重要的目錄(一些不太重要的目錄省略了)。
1. /var/catman
包括了格式化過的幫助( m a n )頁。幫助頁的源文件一般存在/ u s r / m a n / m a n中;有些m a n頁
可能有預格式化的版本,存在/ u s r / m a n / c a t中。而其他的m a n頁在第一次看時都需要格式化,
格式化完的版本存在/var/man 中,這樣其他人再看相同的頁時就無須等待格式化了。
(/var/catman 經常被清除,就像清除臨時目錄一樣。)
2. /var/lib
存放系統正常運行時要改變的文件。
3. /var/local
存放/usr/local 中安裝的程序的可變數據(即系統管理員安裝的程序)。注意,如果必要,
即使本地安裝的程序也會使用其他/var 目錄,例如/var/lock 。
4. /var/lock
鎖定文件。許多程序遵循在/var/lock 中產生一個鎖定文件的約定,以用來支持他們正在
使用某個特定的設備或文件。其他程序注意到這個鎖定文件時,就不會再使用這個設備或文
件。
5. /var/log
各種程序的日志( l o g )文件,尤其是login (/var/log/wtmp log紀錄所有到系統的登錄和注
銷) 和syslog (/var/log/messages 紀錄存儲所有核心和系統程序信息)。/var/log 里的文件經常不
確定地增長,應該定期清除。
6. /var/run
保存在下一次系統引導前有效的關于系統的信息文件。例如, /var/run/utmp 包含當前登
錄的用戶的信息。
7. /var/spool
放置“假脫機( s p o o l )”程序的目錄,如m a i l、n e w s、打印隊列和其他隊列工作的目錄。每
個不同的s p o o l在/var/spool 下有自己的子目錄,例如,用戶的郵箱就存放在/var/spool/mail 中。
8. /var/tmp
比/tmp 允許更大的或需要存在較長時間的臨時文件。
注意系統管理員可能不允許/var/tmp 有很舊的文件。
/proc文件系統
/proc 文件系統是一個偽的文件系統,就是說它是一個實際上不存在的目錄,因而這是一
個非常特殊的目錄。它并不存在于某個磁盤上,而是由核心在內存中產生。這個目錄用于提
供關于系統的信息。下面說明一些最重要的文件和目錄(/proc 文件系統在proc man頁中有更詳
細的說明)。
1. /proc/x
關于進程x的信息目錄,這一x是這一進程的標識號。每個進程在/proc 下有一個名為自
己進程號的目錄。
2. /proc/cpuinfo
存放處理器( c p u )的信息,如c p u的類型、制造商、型號和性能等。
3. /proc/devices
當前運行的核心配置的設備驅動的列表。
4. /proc/dma
顯示當前使用的d m a通道。
5. /proc/filesystems
核心配置的文件系統信息。
6. /proc/interrupts
顯示被占用的中斷信息和占用者的信息,以及被占用的數量。
7. /proc/ioports
當前使用的i / o端口。
8. /proc/kcore
系統物理內存映像。與物理內存大小完全一樣,然而實際上沒有占用這么多內存;它僅
僅是在程序訪問它時才被創建。(注意:除非你把它拷貝到什么地方,否則/proc 下沒有任何
東西占用任何磁盤空間。)
9. /proc/kmsg
核心輸出的消息。也會被送到s y s l o g。
10. /proc/ksyms
核心符號表。
11. /proc/loadavg
系統“平均負載”; 3個沒有意義的指示器指出系統當前的工作量。
12. /proc/meminfo
各種存儲器使用信息,包括物理內存和交換分區( s w a p )。
13. /proc/modules
存放當前加載了哪些核心模塊信息。
14. /proc/net
網絡協議狀態信息。
15. /proc/self
存放到查看/proc 的程序的進程目錄的符號連接。當2個進程查看/proc 時,這將會是不同
的連接。這主要便于程序得到它自己的進程目錄。
16. /proc/stat
系統的不同狀態,例如,系統啟動后頁面發生錯誤的次數。
17. /proc/uptime
系統啟動的時間長度。
18. /proc/version
核心版本。
posted @
2009-03-11 10:13 moonandsun 閱讀(158) |
評論 (0) |
編輯 收藏