(Linux)- Linux系統基礙知識集
(Linux)- Linux系統基礙知識集
一些使用 Linux 系統的知識整理。
1. Linux 操作系統是一個多任務網路操作系統,要求用戶按照各自的身份登錄上機,而不是把他們一視同仁;分配給某個用戶的安全級別是在建立他或她的帳戶時就設置好了的。
2. Linux 操作系統目錄使用正斜杠(/)而不是 DOS 或者 Windows 中的反斜杠 ( \ )。舉例來說,Linux 操作系統中的一個合法目錄的寫法是 /usr/bin。另外,Linux 操作系統中大寫字母和小寫字母其含義將是完全不同,輸入字母 ” Vi ” 與輸入字母 ” vi ” 是不一樣的。Linux 操作系統可以接受的文件或者目錄名的長度最多為 256 個字元。除了字母和數字之外,可以用在文件名中又不引起問題的字元還有句號( . )、下劃線( _ )和連字號(- )。
3. 文件存取許可權和所有許可權
文件的存取許可權是使用長格式化文件列表命令( ls -l )列文件清單時出現在最左邊的第一數據段。這個數據段又可以被分解為 10 個標誌位。
A. 類型標誌位
存取許可權數據段的第一位,或者第一個字母表示的是這個項目的類型。許多不同的項目會用到這個標誌位:
. – —表示該項目是一個普通文件
.d — 表示該項目是一個目錄
. l — 表示該項目是一個符號鏈接
. s — 表示該項目是一個可執行文件,不論誰都可以像它的所有者那樣調用它運行
. c — 表示該項目是一個字元設備驅動程序
. b — 表示該項目是一個塊設備驅動程序
B. 存取許可權三位組
存取許可權的其餘部分每三位一組,分為三組。類型位後面的第 1 個三位組定義了其所有者的存取許可權。第 2 個三位組定義了其所在分組的存取許可權;第 3 個三位組則說明了系統上任何人的存取許可權。
每一個三位組是由 3 個不同的數據位組成的:
. 讀標誌位( r)
. 寫標誌位(w)
. 執行標誌位(x)
這些標誌位永遠都按照同一個順序顯示為 r w x 的形式。區別某個標誌位是處於允許還是禁止的狀態就要看該標誌位是顯示為一個字母還是一個連字元 ( – )。舉例來說,在 rw- 存取許可權數據段表示讀標誌位在允許狀態、寫標誌位在允許狀態、但是執行標誌位就是禁止狀態;所以這個三位組就表示具有讀和寫的許可權,但是沒有可執行許可權。
4. 使用 date 命令的「 date -d mm/dd/yyyy 」格式設置日期
date命令還有許多其他的格式參數,查詢詳細資料請輸入「 man date 」命令。
5. 使用 date 命令的「 date -s hh:mm:ss 」格式設置時間
time命令還有許多其他的格式參數,查詢詳細資料請輸入「 man date 」命令。
6. ls 命令列出某個目錄中的內容
參數使用方法:
1 每每一行只顯示一個文件或者目錄
a 每列出全部的文件,包括那些以句號( .)開頭而平常隱藏起來的文件
c 每列出文件上次修改使的日期
l 每以長格式列出目錄中的內容,其中包括下面的信息:存取許可權、文件的鏈接個數或者目錄中文件的個數、所有者、分組、以位元組計算的文件長度、建立日期和文件名
有時候一個目錄中的文件太多了,這時需要給 ls 命令加上「 |more 」選項。按照「 ls /usr/bin |more 」的格式輸入命令。用戶將看到屏幕以每次一頁的方式顯示 usr/bin 目錄中的內容。
7. cd 命令切換目錄路徑
A. 直接切換目錄路徑,使用 cd /path 的格式就可以。舉例來說,如果想從目錄 /var/spool/ 中直接切換到目錄 /usr/bin 中去,直接輸入命令「 #cd /usr/bin 」即可。
輸入「 # cd ~ 」命令將使用戶回到他們的用戶目錄中去。在預設情況下,用戶 tom 有一個名稱為 / home/tom的用戶目錄。以 tom 的身份登錄進入系統的時候,輸入「 #cd ~ 」命令與輸入「 # cd /home/tom 」命令的效果是完全一樣的。而以根用戶身份登錄進入系統的時候,輸入同樣的內容就會把你帶到 /root 目錄中去,也就是根用戶的用戶目錄。
B. 相對切換目錄路徑
如果只是想移動到目錄結構的上一級去,可以輸入「 cd .. 」命令。舉例來說,這個命令可以把你從目錄 /var/spool 帶到目錄 /var 中去。更進一步地說,輸入「 cd ../.. 」命令將把你從目錄 /var/spool 帶到根目錄「/」中去。因為在根目錄上沒有更高一級的目錄結構了,所以在目錄 / var/spool 中輸入「 cd ../../.. 」命令還是把你從目錄 /var/spool 帶到根目錄而已。「 .. 」是一個指向自身的目錄索引。
如果你想從一個目錄切換到同一個父目錄的另外一個目錄中去,比如從 /etc/rc.d 到 /etc/skel,你可以使用相對路徑格式,輸入命令「 cd ../skel 」。
8. pwd 命令將顯示用戶所在位置的完整路徑。
9. 解讀文件和目錄清單列表
在任何一個目錄中輸入「 ls -l 」命令都會列出一個長格式的文件和目錄清單。
舉例如下: -r w – r- – r – – 1 linda user 33191 Aug 15 17:35 text
從左到右,這一行數據的意義可以解讀如下:
1) 這個項目是一個文件而不是目錄,因為第一個字母不是 d。
2) 這個項目是一個文件原本而不是符號鏈接,因為第一個字母不是 l。
3) 這個文件的存取許可權是「 -r w – r- – r – -」。
4) 這個文件指有一個版本,沒有任何鏈接。
5) 這個文件的所有者是linda。
6) 所有者願意與之共享存取許可權的分組是user組。
7) 這個文件的長度是33191個位元組。
8) 這個文件最後一次的修改日期是8月15日的下午5:35 分。
9) 這個文件的名稱是text。
10. chmod 改變文件和目錄的存取許可權
命令格式 「chmod perm file」。
使用通配符,你可以一次對多個項目進行修改。
A. 使用字母修改
使用字母來修改一個文件的存取許可權看起來是很直截了當的,但是當需要進行多重修改的時候,情況就會變得有一些複雜。這個方法需要使用加號(+)或者減號(-)從每一個存取許可權三位組中一次性地對存取許可權進行加減。三位組中的字母「 o 」代表所有者 ( owner ),「 g 」代表分組 ( group ),「 u 」代表用戶 ( user ) —也就是其他所有的人。
舉例來說,名為「 text 」的文件在最初的時候其存取許可權可能是完全開放的( 即存取許可權字元串是rwxrwxrwx )。在大多數情況下,這是一個很差的主意。因為它只是一個文本文件,所以應該先輸入「 chmod -x text 」命令把可執行許可權去掉。選擇這個存取許可權字元串應該是「 rw-rw-rw- 」。也許你並不想讓其他人—包括普通用戶和同組成員等等—能夠對這個文件的內容進行修改。那麼輸入「chmod u-w g-w text」命令把存取許可權字元串修改為「rw-r–r–」。
B. 使用數字修改
使用數字來修改一個文件的存取許可權看起來是比較複雜,但是只要了解了如何計算需要的值,就會發現其實這個操作還是很簡單的。設置值是針對每一個三位組分別計算的。請按照下面的方法為某個項目的存取許可權計算數字值:
1) 先把存取許可權分成三組。比如說,一個名稱為「 files 」的目錄的完全開放的存取許可權是「 drwxrwxrwr 」。去掉字母 d,把其餘的部分分斷為 3 個三位組: rwx、 rwx 和 rwx 。
2) 每一個字母都有它各自的數值:
. 一個字母r是4
. 一個字母w是2
. 一個字母x是1
根據這個對應關係把每個三位組的值寫出來。如果某一標誌位上是字元「 – 」(連字號),把它算做 0。
在上面的例子中,所有的三位組的值都是一樣的「 421 」。
3) 把這些數字加在一起就得到每個三位組的存取許可權數值。比如:「4+2+1=7」。
4) 全部 3 個三位組的值都是一樣的,因此這個文件的存取許可權值就是「 777 」
如果想把某個項目的存取許可權修改為另外的一個數值,先計算出新設置的數值。比如說,如果想把前面例子中的「 files 」目錄的存取許可權設置為「 664 」( rw-r–r– ),請輸入「 chmod 644 files 」命令。
11. chown 改變文件和目錄的所有者
命令格式「 chown owner item 」
使用通配符,你可以一次對多個項目進行修改。
12. mkdir 建立目錄
「 mkdir testbed 」命令就可以建立一個名為「 testbed 」的目錄。可以使用的直接或者相對目錄路徑進行操作。
13. rmdir 和 rm 刪除目錄
” rmdir ” 命令只能刪除那些空目錄。
” rm -r ” 命令將刪除目錄和其中全部的內容,包括下一級的目錄。舉例來說,假設用戶建立了一個 /testbed 目錄,並且在其中也已經保存了一些測試腳本。這些腳本經過修修改改之後,用戶把那些需要保留的保存到了其他的地方,這裡就只剩下那些準備丟棄的了。現在只要輸入 “rm -r /testbed” 命令就可以刪除 /testbed 目錄和它的全部內容。
PS:注意根用戶在使用「 rm -r 」命令的時候有很大的危險性,因為他有刪除任何東西的許可權。
14. cp 拷貝文件和目錄
命令格式「 cp original destination 」 或者「 cp original1 original2 original3 destination 」。
( 後面一個命令拷貝多個文件到同一個目的地)
PS:注意如果對成組的文件進行拷貝操作的話,那麼文件的目的地必須是一個目錄。
cp 命令還接受下表中的通配符。比如上面的例子就可以簡化為「 cp original* destination 」。
PS:通配符 含義
* 任意個數的未知字元
[ ] 任何包括在括弧中字元範圍內的字元
? 任何一個未知的字元
15. mv 移動文件和目錄
格式「 mv original destination」。mv 命令與 cp 命令很相似,也可以接受通配符,也允許一次性把多個文件移動到某個目錄中去。
mv 命令不能在不同的硬碟分區之間傳遞文件和目錄。這時候只能先把文件和目錄拷貝到目的地,然後再刪除那些原始文件。
16. rm 刪除文件
命令「 rm file 」。這個命令接受 cp 和 mv 命令使用的同樣的通配符,還有「 – r 」參數。使用這個命令的時候,前面對根用戶的警告信息依然有效。
17. ln 建立鏈接
鏈接文件是在不製作另外一個拷貝的情況下建立文件之間聯繫的方法,這樣它們就可以同時出現在兩個不同的地方。有兩種類型的鏈接:硬鏈接和軟鏈接(符號鏈接)
A. 硬鏈接
建立一個硬連接就是在節點( inode )級別建立一個指向某些文件的指針。節點是把文件系統的內容與它們的描述符對應起來的映射表的一部分。
使用「 ln source link 」的格式建立硬鏈接。因為硬鏈接在文件系統中指向完全一樣的同一個位置,所以刪除原始文件並不能使該鏈接失效。原始文件只有在全部相關硬鏈接都被刪除之後才能被清除。
B. 符號鏈接
建立一個符號鏈接在被鏈接的位置生成一個該文件的拷貝,它的存取許可權與原始文件的完全相同。
使用「 ln -s source link 」的格式建立符號鏈接。因為符號鏈接不指向同一個節點,因此刪除了原始文件就會使全部的符號鏈接失效。有一個 RPM 包叫做「 symlinks 」可以幫助用戶跟蹤查出所有的失效鏈接—即那些仍然保留在系統中但是指向的是那些已經不存在的程序的符號鏈接。
18. 識別二進位文件
Linux 操作系統中的二進位文件通常在他們的文件名上都沒有擴展名。
快速分辨某個文件是否是一個二進位文件( 程序 )的方法是在它的長格式文件清單列表的存取許可權中是否有字母 x。字母「 x 」表示該文件是可執行的,也就是一個程序。另外一個方法需要按照「 file filename 」的格式使用 file 命令。
19. 使用 vi 文本編輯器程序
vi 編輯器是一個小巧但功能強大的程序, vi 編輯器有三種基本的模式:
在命令模式按下「 i 」鍵進入插入模式,按下 ESC 鍵就可以進入到命令模式,從命令模式輸入一個冒號( : )就可以進入冒號模式模式
常見的能夠進入編輯模式的 vi 命令
命令 結果
a 在當前游標位置後面處直接進入插入模式
A 在當前文本行之後進入插入模式
i 在當前游標位置前面處直接進入插入模式
I 在當前文本行之前進入插入模式
o 在游標下面插入一個新行並移動到其上,進入插入模式
O 在游標上面插入一個新行並移動到其上,進入插入模式
常見冒號模式的 vi 命令
命令 結果
wq 保存並退出文件
w 保存文件但不退出
q 退出並且不保存文件
q! 退出並不保存所做的修改
常見執行刪除操作的v i命令。
命令 結果
dd 刪除整個行
#dd 按照輸入的數字刪除幾行,從當前行開始
D 刪除游標位置後面全部內容
dw 刪除游標所在位置的單詞
20. 查看文本文件,不使用文本編輯器程序
A. more 和 less 命令
命令:「 more filename 」或者 「less filename」 命令。
好處:如果文件的長度超過了一個屏幕,文本會停下來等待用戶按下相應的鍵,然後再滾動顯示一屏幕內容。使用這兩個程序的好處之一是它們不需要把整個文件都讀入內存后才開始顯示其內容,因此它們對任何大小的文件運行得都一樣快。
使用 more 命令閱讀文本文件時的常用命令
按鍵 結果
b 在文本中後退一行
回車鍵 ( Enter ) 或者 f 鍵 在文本中前進一行
h 顯示幫助信息
空格鍵 前進到文本的下一頁
q 退出 more 閱讀程序
使用 less 命令閱讀文本文件時的常用命令
按鍵 結果
b 在文本中後退一行
回車鍵 ( Enter ) 在文本中前進一行
f 屏幕內容更新一屏
h 顯示幫助信息
空格鍵 前進到文本的下一頁
q 退出 less 閱讀程序
y 屏幕回退一行
B. cat 命令
命令格式「 cat filename 」,命令會把文件的內容全部顯示在屏幕上。雖然在閱讀短文件內容時很有用,但是對長文件還是使用 more 或者 less 命令更好一些。
21.重定向(redirection)把命令結果輸出到文本文件中
使用大於號( > )的「 command > file 」格式把某個命令的輸出重定向到某個文件中去。
比如:「 ls > listing 」。
22.建立別名(alias)
使用一個比較簡短的命令來代替原來很長的命令內容。
要想建立別名,需要編輯他們自己用戶目錄中的 .bash_profile 文件。不管用戶是使用哪個帳戶登錄進入系統的,都可以使用「 vi ~/.bash_profile 」命令開始操作。
PS:注意這裡介紹的操作只適用於 bash shell,它是 Linux 操作系統預設使用的 shell。
在這個文件的末尾開始建立用戶自己的別名語句。別名的定義格式是「 alias name=『command’ 」。
舉例來說,如果想把原來的「 ls -la 」命令定義為別名命令 ls,需要加上的別名定義語句是:alias ls = ‘ls -la’
如果想使用新的別名,請先退出登錄再重新登錄進入原先的帳戶。
PS:注意如果用戶想在一台彩色顯示器上獲得一些花哨的效果,請使用下面的語句:”alias ‘ls -laF -colorize=yes'”
23. 使用 find 命令確定文件存放位置
基本語法是:「 find startingpoint flags filename 」。
最常見的使用方法是「find / -name file」,它從根目錄開始查找文件名為 file 的文件或者包含 file 文件的目錄。
下面列出了一些經常使用的命令行參數和它們的使用方法。
參數說明 & 格式:
1). 參數 atime,根根據此參數說明的修改時間查找文件。加號( + )表示「 在其後 」,減號( – )表示「在其先」,沒有加減號表示「 準確時間 」
格式:find start -atime +days file_name、find start -atime -days file_name 、
或者find start -atime days file_name
示例:find /etc/rc.d -atime -5
2). 參數 ctime 根查找在此參數指定的時間段內其目錄清單列表中的數據發生改變的文件。加號(+)表示「 在其後 」,減號( – )表示「 在其先 」,沒有加減號表示「 準確時間 」
格式:find start -ctime +days file_name、
find start -ctime -days file_name、
或者find start -ctime days file_name
示例:find / -ctime 2
3). 參數 exec , 查找符合 criteria 條件的文件,然後使用 command 命令來對它們進行處理。{ }( 注意括弧之間有空格 )表示把這些找到的文件放在什麼位置;「 \ 」符號用來結束這條命令
格式:或find start criteria -exec command { } \;
示例:查find /var/log -ctime -4 -exec grep 『http』 { }\;
4). 參數 group,查查找屬於此參數說明的分組的那些文件
格式:find start -group groupname
示例:find / -group staff
5). 參數 iname,查找文件名是此參數說明的名稱的那些文件
格式:find start -iname file_name
示例:find /home -iname data
6). 參數 mtime,查找在此參數指定的時間段內其內容發生改變的文件。加號( + )表示「 在其後 」,減號( – )表示「 在其先 」,沒有加減號表示「 準確時間 」
格式:find start -mtime +days file_name、
find start -mtime -days file_name、
或者find start -mtime days file_name
示例:find /var/log -mtime -10
7). 參數 name,查找文件名中包含此參數說明的字元串的那些文件
格式:find start -name file name
示例:find /mnt/cdrom -name ‘*.rpm’
8). 參數 print,輸出滿足查找條件的那些文件和目錄的內容
格式:find start criteria -print
示例:find /home/bob -name ‘Notes’ -print |more
9). 參數 user,查找屬於此參數說明的用戶的那些文件
格式:find start -user username
示例:find / -user joy
find 命令一個特別有用的使用方法是把它與 xargs 命令結合在一起使用。xargs 命令允許用戶把 find命令找到的文件名們作為另外一個程序的輸入。一個使用了這種組合方法的例子是:「 find /home/bob -name ‘Notes’ | vi 」,這個命令組合將在 vi 文本編輯器中把文件名中包含了 ‘ Notes ‘ 字樣的全部文件都打開。
24. 通過搜索 locate 資料庫來查找文件
locate是在一個包含了文件系統某個時刻全部內容的文件名資料庫中去檢索數據,而不是真的在文件系統中進行搜索。但是它要比 find 命令快得多,如果用戶需要查找的文件是在該資料庫更新之前建立的,這個命令就可以大顯身手了。
命令格式「 locate file 」。
輸入「 updatedb 」命令更新資料庫。這個資料庫通常是作為一個標準的 cron 工作被自動更新的。
25. whereis 在 path 語句說明的路徑中查找文件
命令格式:「 whereis file 」。局限性是它只在用戶現有的 path 語句說明的路徑中進行查找。如果某個文件沒有存在於這些路徑中,它就沒有辦法找到。請輸入「 echo $PATH 」命令查看現有路徑。
26. 在 path 語句中添加新路徑
在 bash shell ( Linux 操作系統的預設 shell )中添加路徑語句:
1) 使用「 vi ~/.bash_profile 」之類的命令編輯 ~/.bash_profile 文件。
2) 找到以PATH開頭的語句。
3) 在該語句后加上一個冒號( : ),再添上新的路徑內容。
4) 退出再重新登錄進入系統使新設置生效,也可以重新運行這個帳戶的 profile 文件。舉例來說,如果用戶使用的是 bash shell,請輸入「 source ~/.bash_profile 」命令。
27. grep 在文件內容中查找文本
命令格式:「grep flags expression files」。
flags 是可使用的命令行參數,expression 是你想查找的文本,files 就是準備在其中進行查找的那些文件。
比如說,我們準備在 ~ /test 文件中查找文字「 red 」,不考慮大小寫。這個命令就是:「 grep -i red ~/test 」。
參數說明:
– i 忽略大小寫
– n 給出文字匹配處那一行的行號
– v 顯示不匹配 expression的那些行
– C 顯示匹配處前後兩行的內容
28. 尋求幫助
獲得幫助最快的方法是使用 man(英文 manual 的縮寫)命令。它將顯示該命令的使用手冊頁—如果這個命令有使用手冊頁的話。「 man command 」打開一個使用手冊頁;按下 q 鍵從中退出。
如果在某個使用手冊頁的開始部分說明這個文檔將不再繼續有效,需要另外使用 texinfo 程序閱讀,請使用「 info command 」的格式閱讀這個文件。
29. 在後台運行命令程序
格式「command &」。
30. 確定當前運行的命令
A). 確定有哪些命令正在運行
使用 jobs 功能。輸入這個命令后將列出正在後台運行的全部命令的清單—如果有的話。在這個清單中,最重要的信息通常是工作號,就是那個最左邊的數字。
B). 確定有哪些進程正在運行
使用 ps 命令。它列出的清單中只包括那些在輸入這個命令的虛擬控制台上運行的進程。其中最重要的信息是最左邊的數字,即 PID( 英文進程號 Process ID 的縮寫 )。
31. 把命令程序調到後台去
使用 bg ( 英文後台 background 的縮寫 )命令可以把當前正在屏幕上運行的命令調入到後台去,這樣該終端就可以另做他用。
請按照下面的方法把某個程序調入後台:
1) 輸入「 jobs 」命令獲取這個命令的工作號 job。
2) 按下鍵組合「Alt+FX」,其中X是代表某個空閑終端的功能鍵的編號。
3) 登錄進入剛才窗口中使用的同一個帳戶。
4) 輸入「 bg job 」把這個工作調入到後台。
這個操作通常有一個簡單的完成方法,就是在顯示該進程運行結果的終端上按下組合鍵「 Ctrl+Z 」。
32. 把後台命令調回前台來
如果想把一個正在後台運行的命令調回前台以便對它進行操作,首先要獲取工作號,然後使用 fg( 英文前台foreground 的縮寫 )命令的「 fg job 」格式即可。
33. 取消正在執行的命令
在 Linux 操作系統中可以使用好幾種方法終止命令的執行。終止當前正在執行的某個命令最快的方法是按下組合鍵「 Ctrl+C 」。這個方法只有在用戶能夠從某個虛擬控制台上控制這個程序的時候才奏效。
終止某個出錯程序的另外一個辦法是 kill ( 殺 )掉它的進程。請按照下面的方法進行操作:
1) 輸入「 ps 」命令獲取進程的 PID,這個命令要求你是運行這個程序的那個人或者是根用戶。如果是根用戶
請輸入「ps -aux」命令查看所有的進程,不管是誰擁有它們的。
2) 在清單中找到這個出錯進程。因為程序的名稱列在清單的最右邊,通常一眼就可以找到它。
3) 請記下 ps 命令輸出清單中進程狀態行最左邊的 ID 數字。
4) 輸入「 kill ID 」,終止該進程。
5) 使用ps命令查看該進程是否仍在運行中。
6) 如果它沒有出現在清單中,你就已經完成了操作。如果它還在運行中,請輸入「 kill 9 ID」。這個命令就可以達到目的。這個命令強制性地終止了那個進程,並不進行善後工作,因此不到必要的時候最好別使用它。
34. clear 清除屏幕
35. 一次執行多個命令
用戶可以使用分號( ; )分隔多個命令,把它們輸入在一行上。舉例來說,我們想把命令「 ls -la /etc/rc.d/init.d 」命令的輸出送到文件 systeminits 中去,然後再使用 more 命令檢查這個文件,需要輸入下面的內容:
ls -la /etc/rc.d/init.d > systeminits ; more systeminits
另外一個一次運行多個命令的方法是使用命令腳本。
36. 添加一個新用戶
「 adduser username 」或者”「 useradd username 」”開始添加一個新用戶。
37. 添加或者修改一個口令字
命令「 passwd username 」
即使你當前登錄進入的是一個非 root 帳戶,也可以通過 passwd 命令改變這個帳戶的口令字。但是這個時候不再需要包括用戶名了,而只要輸入「 passwd 」即可。
命令 ” useradd -D ” 查看關於新用戶的預設設置
用戶設置值 & 參數 & 數據格式:
GROUP -g 來自 /etc/group 文件的分組編碼
HOME -d 該帳戶上一級用戶目錄的完整路徑( 比如:/home )
INACTIVE -f 天數
EXPIRE -e 天數
SHELL -s 到shell的完整路徑
SKEL -k 到框架文件的完整路徑
. 如果把那些普通的新用戶分配到預設設置值以外的另一個分組( GROUP )。
. 如果把新用戶的用戶目錄設置在/home目錄樹以外的位置,就需要修改 HOME(用戶目錄)項目的設置值。
. 當出現用戶不修改他們過期失效口令字情況的時候,你可能會想要把這類用戶的帳戶凍結( inactive )起來。這就需要修改 INACTIVE( 凍結 )項目的設置值。辦法是輸入一個以按天數計算的數字。這個數字錶示在用戶口令字失效之後、徹底關閉該帳戶之前系統將要等待的時間。如果使用了預設的數值 0 天,就表示你並不希望自動凍結那些帳戶。
. 如果你的系統比較容易受到攻擊,定期使原來的口令字失效是一個好辦法。請把 EXPIRE( 失效 )項目修改為一個數字,這樣就可以通知系統每循環經過多少天,原來的口令字就將失效;而在此之前,系統必須強迫用戶修改他們的口令字。
. 預設的 S H E L L 項目設置值一般都是 /bin/bash。如果想改變這一點,就必須輸入新的預設 shell 的完整路徑名。
. 許多聰明的系統管理員通過使用框架( skeleton )目錄來定製新用戶的目錄。這個框架目錄中包括著那些準備安排到每一個新建帳戶的目錄中去的文件。如果你想把框架目錄設置為預設值(通常是 /etc/skel 目錄)以外的某個位置,就需要把 SKEL(框架目錄)項目的設置值修改為新的框架目錄的完整路徑名。
38. 修改現有用戶的信息
使用 usermod 命令可以修改現有用戶的信息,加上必要的參數指定需要修改的項目。
PS:警告,如果你使用了 G 參數,那麼任何沒有使用它或者 g 參數列出的分組將從用戶分組定義中被刪除。
參數名稱 & 說明:
c 說明信息為用在 finger 文件中的說明信息。這個數據域最好是用 chfn 命令來修改
d 用戶目錄為為這個用戶輸入一個新的用戶目錄位置,新位置將自動被建立。如果在 d 參數后加上一個 m 參數,那麼用戶原來的用戶目錄中的東西將會被轉移到新的目錄中去
e 失效日期為如果想把用戶帳戶的失效日期設置為某個特定的日子,請按照 MM/DD/YY 的格式輸入該日期
f 凍結期為口令字失效之後凍結該帳戶之前需要等待的天數。只有在該用戶沒有修改其口令字的時候這個選項才被激活。如果不想使用這個選項,請輸入數值- 1(預設值)
g 原始分組為分配給用戶的分組名稱或者編號。這個分組必須是當前存在的G分組為使用這個參數可以給該用戶分配額外的分組。如果需要分配不止一個的話,請使用逗號而不是空格來分隔它們。比如說,如果想把wheel、root 和 admin 等幾個分組分配給該用戶, 需要輸入「 whell,root,admin 」
l 登錄名為使用這個參數可以修改用戶的登錄名。這麼做的時候用戶的用戶目錄不會自動改變。如果用戶已經登錄進入了系統,就不能修改用戶的登錄名
s shell 為如果用戶要求使用另外一個登錄 shell,使用這個參數修改它。需要使用新 shell 的名稱
u UID為改變用戶ID的數值。除非了解這樣做的後果和系統上當前可用的ID數值範圍,否則不要這樣做
舉例來說,如果用戶 chris 要求把他的登錄名修改為 c.adams,就需要以 root 身登錄進入系統再輸入「usermod d /home/c.adams -m -l c.adams.chris」命令。
39. 凍結一個用戶
PS:警告不要凍結 root 帳戶。
1) 以根用戶身份登錄進入系統。
2) 編輯 password 文件:
. 如果沒有使用 shadow 隱藏口令字功能,編輯 /etc/passwd 文件。
. 如果使用了 shadow 隱藏口令字功能,編輯 /etc/shadow 文件。
3) 在文件中找到這個帳戶。
4) 把這個帳戶的口令字替換為一個星號(*)。口令字在用戶數據段的第二個位置。
在 /etc/passwd 和 /etc/shadow 文件中每個用戶的帳戶信息都在單獨的一行上。這個信息被冒號( : )分隔成不同的數據域。因此第一個數據域就是這一行上的第一個被分隔的數據部分,第二個數據域就是第一個冒號之後的數據部分,以此類推。
5) 保存並退出文件。
40. 刪除一個用戶
命令「 userdel -r username」。
如果想完全刪除屬於 paula 的帳戶,應該輸入「 userdel -r paula 」命令。
如果因為某些原因刪除一個帳戶但是又需要保留該用戶的用戶目錄的話,可以使用不帶 -r 參數的 userdel 命令。
41. logout 退出登錄
42. 重新引導啟動機器
「 reboot 」命令,或者「 shutdown -r now 」命令。如果機器發生了鎖死現象,不接受鍵盤的任何輸入, 一般按下組合鍵「 Ctrl+Alt+Del 」能夠解決問題。但是最好儘可能避免這樣操作,因為這個強制性的關機操作一般不進行善後工作。最好是檢查一下 /etc/inittab 文件,看看組合鍵「 Ctrl+Alt+Del 」是否是「 shutdown -h now 」命令的別名操作。如果是的話,就可以使用這個組合鍵安全地關閉機器並切斷電源。
43. 系統關機
「 halt 」命令,或者「 shutdown -h now 」命令關閉系統並切斷電源。
44. 手動調整X圖形界面
1) 需要編輯的文件是 XF86Config。請輸入「 locate XF86Config 」命令找到這個文件。如果因為某種原因 locate 命令使用的資料庫沒有建立,也可以使用「 find /-name 『XF86Config 』」命令。后一個命令可能會花費長一些的時間,因為它將在整個文件系統中進行搜索。
2) 使用「 vi path/XF86Config 」之類的命令打開這個文件。
3) 這個文件中有大量的註釋語句—註釋語句是那些在其開頭或者結尾帶有井字型大小(#)的語句。因為最有可能出現的情況是用戶需要編輯修改圖形卡或者顯示器的設置值,所以請在文件中查找,直到找到帶有下面列出的段落標誌的部分:
. Monitor( 顯示器 )—顯示器部分。
. Graphics( 圖形 )—圖形卡部分。
. Screen( 屏幕 )—圖形模式和顏色深度部分。
A.手動配置顯示器
1) 搜索下面的文本內容:
# ****************************************************
# Monitor section
# ****************************************************
如果是在 vi 編輯器中進行搜索的話,請輸入「 /Monitor section 」,再按下回車鍵 ( Enter )。
2) 包含著顯示器有關設置項目的部分是:
Identifier ” MAG DX700T “
Vendor Name ” Unknown “
Mode1 Name ” Unknown “
這三項數據可以使用下面的方法安全地進行修改,記住千萬不要刪掉引號:
. 如果想賦給顯示器本身一個新標籤,請修改 Identifier 項中的文字。
. 如果想設置製造商的名稱,請修改 Vendor Name 項中的文字。
. 如果想為顯示器設置一個模式,請修改 Mode Name 項中的文字。
3) 如果想修改顯示器的水平同步頻率範圍,請修改 Horiz Sync 項的數值。這個數值可以是帶有一位小數的某個數值範圍(比如:「 40.5 – 85.3 」),也可以是帶有一位小數的一系列數值( 比如:「 40.5, 50.5, 60.5, 70 」 )。在這個情況下,在語句中沒有引號,因此它看起來就像下面所示:
HorizSync 40.5 – 85.3
PS:警告請千萬要準確輸入在顯示器使用手冊中或者製造商 Web 站點上列出的數值範圍,或者按照低限進行估計。如果用戶把這個值設置得高過其處理能力的話,就可能對滑鼠造成損壞。
4) 如果想修改顯示器的垂直刷新速率,請修改 Ver Refresh 項的數值。這個數值的格式與 Horiz Sync 項是完全一樣的,也適用於同樣的警告。
5) 如果想設置在某個特定的圖形模式下顯示器的工作方式,需要設置 Mode 或者 Mode Line 語句。這兩個變數定義的是同一個東西,但格式是不相同的。
一個 Mode 語句看起來是:
Mode “1024 x 768i”
DotClock4 5
HTimings 1024 1048 1208 1264
VTimings 768 776 784 817
Flags “Interlace “
End Mode
語句中的數值含義是:
. Mode 本身的數值是這個模式的名稱。這個名稱通常就是按照格式( 水平點陣 ) × ( 垂直點陣 )表示的顯示器的解析度;如果顯示器是隔行掃描的,末尾再加上一個 i 字母。一個隔行掃描的顯示器每畫一整屏圖像需要掃描兩遍;而逐行掃描的顯示器因為一遍就能夠畫出屏幕圖像而更受歡迎。
. DotClock 項的數值以 MHz 為單位,表示該顯示器上單獨一個光點的顯示速度有多快。這個數值的大致計算公式是:( 水平點陣 ) × 1.28 x( 水平刷新速率 )。
. Htiming 項包括四個不同的數值。第一個是水平顯示的點陣數量( 在上面的例子中就是1024 )。第二個是水平圖像開始處的光點位置,第三個是結束處的光點位置。最後一個數值是屏幕水平方向上一行的點陣總數。這些數值一般都會記錄在顯示器的使用手冊中。
. Vtiming 項和水平定時 Htiming 項的排列方式是完全一樣的,只不過它定義的是垂直方向的數據。
. Flags項中包括了所有用來通知X伺服器程序關於顯示器特殊問題的必要標誌。隔行掃描(Interlace)是其中最常用的一個。
另一方面,ModeLine 語句,把全部的信息都包括在一個文本行上。因此我們可以把前面Mode語句例子中的數據編寫到下面這樣的 ModeLine 語句中去:
ModeLine “1024 x 768i “45 1024 1048 1208 1264 768 776 784 817 Interlace
一般都會有很長的一系列這樣的語句,每一句用來定義某個特定模式類型的行為。
6) 保存並退出這個文件。
7) 輸入「s t a r t x」命令測試新的配置情況。
B. 手動配置圖形卡
1) 搜索下面的文本內容:
# ****************************************************
# Graphics device section
# ****************************************************
如果是在v i編輯器中進行搜索的話,請輸入「 /Graphics device section 」,再按下回車鍵 (Enter)。
2) 包含著圖形卡有關設置項目的部分是:
Section ” Device “
Identifier ” Generic VGA “
VendorName” Unknown “
BoardName” Unknown “
Chipset” generic “
VideoRam 1024
EndSection
這五項數據可以使用下面的方法安全地進行修改,記住千萬不要刪掉引號:
. 如果想賦給圖形卡本身一個新標籤,請修改 Identifier 項中的文字。
. 如果想設置製造商的名稱,請修改 VendorName 項中的文字。
. 如果想為某種特殊的圖形卡取一個名字,請修改 BoardName 項中的文字。
. 如果想設置圖形卡用的晶元集的類型,請修改 Chipset 項中的文字。
. 如果想設置圖形卡上擁有的顯存 RAM 的大小,請修改 VideoRam 項中的文字。
3) 保存並退出這個文件。
4) 輸入「startx」命令測試新的配置情況。
C. 手動配置圖形顯示模式
1) 搜索下面的文本內容:
# ****************************************************
# Screen sections
# ****************************************************
在 vi 編輯器中進行搜索的話,請輸入「 /Screen sections 」,再按下回車鍵 ( Enter )。
2) 一般在 X 圖形界面的配置文件中都包含不止一個屏幕定義部分。每一部分的基本格式是:
Section ” Screen “
settings
EndSection
請選擇某個屏幕定義部分開始操作。
3) 包含著屏幕有關設置項目的部分看起來如下所示:
Driver” svga “
Device” My Video Card “
Monitor” MAG DX700T “
這三項數據可以使用下面的方法安全地進行修改,記住千萬不要刪掉引號:
. Driver 項中保存著特殊的數據。其選項有 Accel( 視頻加速 )、Mono( 單色 )、SVGA、VGA2 和VGA16。
. 如果想改變設備本身的名稱,請修改 Device 項中的文字。
. 如果想改變顯示器的品牌和型號,請修改 Monitor 項中的文字。
4) 在 Screen 部分中有專門的 Subsection 子結構對配置為使用 Driver 項定義的驅動程序的特殊圖形卡定義顏色和解析度。
這些子結構看起來如下所示:
Subsection” Display “
Depth 8
Modes” 1024 x 768 ” ” 1152 x 864 “
ViewPort 0 0
EndSubsection
找到或者建立一個能夠正常工作的 Subsection 結構。
PS:請注意這裡的內容排列方式。每一個Screen部分說明一個特定的驅動程序層次。每一個Subsection結構定義該驅動程序可用的一個顏色深度和該顏色深度可用的模式。
5) 顏色深度是最重要的項目,因為用戶的圖形卡和顯示器在特定的顏色深度下只能支持某些特定的模式。請確定在圖形卡上有多少顯存 RAM( VRAM ),並且從它的使用手冊中查出有這麼多 VRAM 的卡都支持些什麼。然後在從顯示器的使用手冊中查出在什麼樣的圖像模式下支持什麼樣的顏色深度。
6) 根據選擇設置顏色深度。
7) 在 Modes 語句上,在引號中列出在選定的顏色深度下用戶希望使用的各種模式。
8) ViewPort 項確定在虛擬桌面上X任務操作將從什麼地方開始顯示。一般比較好的方法是就把它保留為預設設置的 00 值。
9) 編輯其他的Subsection結構。
10) 編輯其他的 Screen 部分。
11) 保存並退出這個文件。
12) 輸入「 start x 」命令測試新的配置情況。
45. 掛裝到文件系統上
命令格式「 mount -t type /dev/device /mnt/mountpoint 」
格式 & 說明:
ext2 Linux 操作系統格式。這是預設值
iso9660 CD-ROM 光碟格式
msdos MS-DOS格式
vfat 這個術語意味著不同的事物,分別取決於是從微軟的觀點還是從 Linux 觀點看待它。Linux 的觀點同時包括了 Windows 3.x 和 9 x 格式。從微軟的觀點看, Windows 9x 實際使用的是 vfat32,但是 Linux 操作系統的vfat 文件系統類型包括了這兩種
. 如果想安裝一個Linux軟盤,請輸入「 mount /dev/fd0 /mnt/floppy 」命令。
. 如果想安裝一個 CD-ROM 光碟,兩種發行版本都已經建立好了一個從 CD-ROM 光碟設備驅動程序到一個叫做 cdrom 的驅動器設備的鏈接。請輸入「 mount -t iso9660 /dev/cdrom /mnt/cdrom」 命令。
. 如果想安裝一個 MS-DOS 軟盤,請輸入「 mount -t msdos /dev/fd0 /mnt/floppy 」命令。
. 如果想安裝在第一個 SCSI 硬碟驅動器上的某個 Windows 分區—比如第 3 分區,請輸入「 mount -t vfat /dev/sda3 /mnt/win」命令。
46. 從文件系統上卸載
. umount /dev/device 或者
. umount /mnt/mountpoint
47. 簡化常用掛裝命令
通過在 /etc/fstab 文件中為之添加內容就可以簡化常用的掛裝命令。請按照下面的方法進行操作:
1) 以根用戶身份登錄進入系統。
2) 使用「 vi /etc/fstab 」之類的命令打開 /etc/fstab 文件。
3) 檢查文件中是否已經有了與你想要添加的內容有關的語句。舉例來說,因為 /mnt/cdrom 和 /mnt/floppy 經常被使用,所以一般都已經在這個文件中了。文件中的第 2 列是掛裝點的名稱。如果你的想法已經都表現在這個文件中了,請輸入「 :q 」命令按回車鍵退出編輯器程序。
4) 如果使用的是vi 編輯器程序,按下「 G 」鍵前進到文件末尾,然後按下「 o 」鍵插入一個新的文本行。
5) /etc/fstab 文件中的數據項是如下所示的格式:
/dev/device /mnt/mountpoint type rules dumpable order
因為這是一個在開機引導啟動的時候不會自動掛裝的設備,它的格式應該是如下所示:
/dev/device /mnt/mountpoint type noauto 0 0
6) 確定需要安裝的設備。
7) 建立需要把設備安裝在其上的掛裝點。記住這個掛裝點最好起一個簡單易記的名字。舉例來說,如果是在對掛裝 MS-DOS 軟盤的掛裝命令進行簡化的話,可以考慮使用一個比如說像 /mnt/dosfloppy 這樣的名字。
8) 選擇正確的文件系統類型。對 /mnt/dosfloppy 例子而言,它的類型是 msdos。
9) 完成這個語句。對MS-DOS軟盤的例子而言,它將會是:
/dev/fd0 /mnt/dosfloppy msdos noauto 0 0
10) 按下 ESC 鍵,然後輸入「 :wq 」命令,再按下回車鍵 ( Enter )。保存文件並退出。
48. 在開機引導啟動時自動掛裝一個設備
1) 以根用戶身份登錄進入系統。
2) 使用「 vi /etc/fstab 」之類的命令打開 /etc/fstab 文件。
3) 如果使用的是 vi 編輯器程序,按下「 G 」鍵前進到文件結尾,然後按下「 o 」鍵插入一個新的文本行。
4) /etc/fstab 文件中的數據項是如下所示的格式:/dev /device mountpoint type rules 0 order
5) 確定需要掛裝的設備。舉例來說,用戶可能添置了第二塊 IDE 硬碟驅動器並把其上第二個分區分配給 Linux操作系統使用。這個設備就是 /dev/hdb2。
6) 建立需要把設備安裝在其上的掛裝點。重要的是認真考慮這一環節,因為這個設備將作為文件系統永久性的一個部分。通常 /mnt 樹狀結構是用於臨時掛裝的設備的,因此現在這個新分區應該被添加到別的地方。做出這個決定需要綜合考慮個人愛好、文件系統標準( File System Standard,簡稱 FSSTND )以及新分區將起到什麼樣的作用。舉例來說,如果想把這個新分區作為一個共享的空間,用戶們可以在其上共同完成項目工作,那麼也許一個比較好的掛裝點名稱可以是 /home/projrcts。
7) 選擇正確的文件系統類型。對例子中的 Linux 分區而言,它的類型應該是 ext2。
8) 選擇這個掛裝上的設備應該遵守的規則。如果想看到完整的清單,請輸入「 man mount 」命令。
通過 /etc/fstab 文件自動掛裝設備常用規則
規則 & 說明:
auto 按開機引導啟動時自動掛裝定義的設備
default 按按照大多數永久性文件系統添加設備使用的預設設置值掛裝定義的設備,預設設置包括自動掛裝和可讀寫許可權等等
noauto 按開機引導啟動時不自動掛裝定義的設備
nouser 按不允許沒有超級用戶許可權的任何人掛裝這個設備
ro 按按照只讀許可權掛裝定義的設備
rw 按按照可讀可寫許可權掛裝定義的設備
user 按任何用戶都可以掛裝這個設備
9) 最後一個數據域說明這個設備的掛裝順序。如果這個設備不是唯一自動掛裝的設備,就把它的值還是置為零( 0 )。root 根分區( / )的這個值永遠是 1。從這裡開始,但這些設備需要被掛裝的時候,就會按順序從 2 往上以整數開始進行編號。
10) 在/etc/fstab文件的末尾輸入所有這些數值。根據整個例子,最後的結果應該是:
/dev/hdb2 /home/projects ext2 defaults 0 2
按下 ESC 鍵,然後輸入「 : w q 」命令,再按下回車鍵 ( Enter )。保存文件並退出。在系統重新引導啟動之前,這個分區還不能自動被掛裝。但是現在可以使用下面的命令把它手動地掛裝上:
mount /dev/hdb2 /home/projects.
49. 把一個現存的目錄轉移到一個新分區
1) 把新硬碟驅動器安裝到計算機中去。
2) 使用你最喜歡的分區工具程序對它按需要進行分區操作。
3) 把現有的目錄名改為一個臨時名稱以便於進一步的操作。比如說,如果要把 /home 目錄移到它自己的分區上去,使用「 mv /home /hometmp 」命令改變它。
竅門:因為對於數據丟失 tar 命令可以提供更好的保護,所以也可以使用 tar 命令來完成這個工作,其格式為
mkdir /newdir、cd /dir、tar cf-./(cd /newdirtar xf-)。
4) 把新分區加到 /etc/fstab 文件中去。比如說,如果要把 /home 移到第 2 個 SCSI 驅動器的第 1 個分區,那些數據項將是:/dev/sdb1 /home ext2 defaults 0 2
5) 重新引導啟動計算機,自動掛裝這個分區;或者使用「 mount /dev/sdb1 /home 」命令手動掛裝它。
6) 把需要移動的東西,包括全部的目錄,整個都拷貝到新分區上去。舉例來說,對於 /home 目錄,要輸入「 cp -R /hometmp /home 」命令。
7) 等待一段時間,以便確定用戶們的一切工作都在順利地進行著,然後使用 rm 命令的「 rm -dr /hometmp 」格式刪除舊目錄中的所有內容和這個目錄本身。d 參數告訴 rm 命令需要刪除的是一個目錄,r 參數表示在這個目錄中的全部文件和下一級目錄都要被刪除掉。
PS:警告,使用 rm 命令的 -dr 參數時千萬要謹慎。因為你必須以根用戶身份登錄進入系統,粗心大意地使用「 rm -dr 」可能會弄文件系統的一大部分。
50. 確定用戶正在使用的是哪個版本的內核
命令「 uname -r」
1) 忽略句號( . )前的第一個數字。
2) 查看緊跟在句號( . )後面的第二個數字。
. 在實驗性版本中,緊跟在第一個句號( . )後面的第一個數字是一個奇數。
. 在成熟版本中,緊跟在第一個句號( . )後面的第一個數字是一個偶數。
舉例來說,內核版本 2.6.5~1 5 是成熟版本之一,而版本 2.5.4~1 2 是實驗性版本之一。
51. 檢查網路當前的設置情況
命令「 netstat -nr 」。
參數 n 告訴 netstat 命令把地址顯示為純 IP 數字形式,而不必去查找完整的域名信息;
參數 r 告訴 netstat 命令只顯示那些使用了 TCP/IP 協議項目的信息。
快速檢查 DNS 服務是否已經運行的方法之一是先試試「 netstat -nr 」命令,再使用「 netstat 」命令;或者可以使用 ping 命令先根據某計算機的 IP 地址、再根據它的主機名分別「 碰 」( ping 在英文中就有碰的意思 )它一下。
52. 設置IP地址
1) 以根用戶身份登錄進入系統。
2) 編輯/etc/hosts文件。
3) 在文件中為你的當前主機加上一行文本。保持回饋(loopback)語句(127.0.0.1)不要修改。這一行應該是下面的樣子:
127.0.0.1 localhost localhost.localdomain
新語句最少由兩個部分組成: IP 地址和該計算機的全名( 要包括域名 )。如果願意,還可以再給自己的機器起幾個別名。舉例來說,如果用戶正在域名「 colors.org 」上配置 IP 地址為「 185.36.20.3 」的計算機「 blue 」,那麼在回饋語句下面加上的那一行應該如下所示:
185.36.20.3 blue.colors.org blue
4) 保存文件並退出。任何使用了這個域名的登錄活動和程序都必須重新啟動運行。有的時候最簡單的辦法就是把計算機重新引導啟動一次。
52. 給網路中的計算機命名
1) 以根用戶身份登錄進入系統。
2) 編輯 /etc/sysconfig/network 文件。
3) 找到下面的語句:HOSTNAME = localhost.localdomain
如果用戶已經分配過主機名或者域名,這一行可能會有所不同。HOSTNAME 欄位是查找的關鍵字。
4) 把單詞「 localhost 」修改為機器的名字。比如說,如果想給機器分配「 blue 」做名字,用戶需要把這一行修改為如下所示:
HOSTNAME = blue.localdomain
5) 保存文件並退出。退出一切登錄,再重新登錄進入系統;然後終止並重新運行任何需要主機名信息的程序,這樣新的主機名就生效了。許多時候處理這些問題最簡單的方法就是快速重啟動一次計算機。
你可以使用這個方法隨時修改機器的名字。但是,如果其他用戶把原來的名字列在其書籤中的話,就會找不到原來的服務,除非其他用戶知道了機器的新名字。必須強制性地修改你的DNS服務表中的主機名清單。
53. 分配域名
1) 以根用戶身份登錄進入系統。
2) 編輯/etc/sysconfig/network文件。
3) 找到下面的語句: HOSTNAME = localhost.localdomain
如果用戶已經分配過主機名或者域名,這一行可能會有所不同。HOSTNAME欄位是查找的關鍵字。
4) 把單詞「 localdomain 」修改為機器所在區域網的名字。比如說,如果分配域名「 colors.org 」,就需要把這一行修改為如下所示:
HOSTNAME = localhost.colors.org
如果機器已經有了一個主機名,請用它的主機名取代單詞「 localhost 」。
5) 保存文件並退出。退出一切登錄,再重新登錄進入系統;然後終止並重新運行任何需要主機名信息的程序,這樣新的主機名就生效了。許多時候處理這些問題最簡單的方法就是快速重啟動一次計算機。
你可以使用這個方法隨時修改分配給某個機器的域名。需要注意的是,如果域名是在網際網路上,其他人就能夠對之進行訪問,因為域名是列在網際網路全局性的 DNS 服務表中的。但是修改了域名之後 ( 其前提是你必須擁有並註冊了該域名 ),那麼在找到你機器的新名字之前,別人就沒有辦法通過網際網路找到它。千萬要記住必須強制性地修改你的 DNS 服務表以反映新的變化。
54. 設置動態路由分配
配置動態路由分配需要設置 IP 轉發 ( IP forwarding ) 和 IP 偽裝 ( IP masquerading ) 兩種服務。
需要內核支持,否則要編譯內核。
1) 以根用戶身份登錄進入系統。
2) 如果路由器後面的計算機都還沒有分配地址號碼,現在為它們每一個分配一個。如果你正在通過路由器把它們連接到網際網路上的話,它們的地址號碼不應該使用正式的網際網路地址( 即 IP 地址 )。反之,你應該使用為內部網路保留的地址區。這些地址區如下所示:
. A類10.0.0.0~10.255.255.255
. B類172.16.0.0~172.31.255.255
. C類192.168.0.0~192.168.255.255
但是,上面這幾行有一些誤導。第一個地址是為網路地址( Network address )保留的(比如說,B 類網路的網路地址是 172.16.0.0 ),而廣播地址( Broadcast address )也已經保留為其中一塊地址區的最後一個地址( 比如說, A 類網路的廣播地址是 10.0.0.255;B 類的是172.16.0.255;C 類的是192.168.0.255)。典型情況下,第二個地址( 以 . 1 結尾的地址 )是由路由器本身使用的。
3) 建立 /etc/rc.d/rc.masq 文件,它將包含著為你設置路由的命令腳本程序(請看關於編寫 shell 命令腳本程序的相關資料)。
4) 在命令腳本程序的開始加上下面的內容:
# ! /bin/sh
# Tell the kernel to load necessary modules automatically , as
# described in man depmod .
/sbin/depmod -a
5) 加上下面的語句激活 IP 轉發:
echo ” 1 > /proc/sys/net/ipv4/ip_forward
「The Linux Maspuerade mini HOW- TO」建議Red Hat發行版本的用戶編輯/etc/sysconfig/network文件,把語句「 FORWARD_IPV4 = false 」修改為「 FORWARD_IPV4 = true 」。
6) 使用下面的格式為 IP 偽裝激活超時設置:/sbin/ipchains -M -S TCPtimeout FINtimeout UDPtimeout
超時時間的計量單位是秒,每一種對應於下面幾種 TCP/IP 數據傳輸狀況:
. TCPtimeout 選項的含義是:如果在某個 TCP/IP 協議下的客戶 / 伺服器連接之間沒有數據堵塞,在為此連接提供服務之前路由器可以等待的時間。舉例來說,如果某個用戶連接到某個 FTP 伺服器,但是又沒有進一步操作,讓這個連接空閑了達幾個小時,甚至因為忘記了而使之空閑了一整夜,這無疑是對資源的一種浪費。這個選項通常被設置為幾個小時,以避免輕率地斷開操作。記住,這個幾小時的時間是以秒為單位列出的。
. FINtimeout 選項的含義是:在完成初始化 TCP/IP 連接之後( 收到「 FIN 」數據包 ),為此連接提供服務之前,路由器可以等待的時間,這個選項通常被設置為幾秒,從大概 10 秒鐘到 30 秒鐘,因為一般初始化連接之後數據就應該開始傳輸了,不應該馬上就沒有了音訊。
. UDPtimeout 選項的含義是:如果在某個 UDP 協議下的客戶 / 伺服器之間的數據流沒有堵塞,在為此連接提供服務之前路由器可以等待的時間。由於 UDP 並不像 TCP/IP 那樣一直保持住一個穩定的連接,因此其等待時間相對來說要短得多,典型情況下是幾分鐘。
7) 加上下面這兩行代碼,允許實際的轉發功能生效:
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s network/subnetmask -j MASQ
其中的「 network 」是你的系統分配到的網路號碼,而「 subnetmask 」是子網掩碼最後一部分,即最後一個小數點後面的數字。
8) 現在,你必須為每一項服務載入有關的模塊,這些服務都需要使用 IP 偽裝功能以便從路由器後面訪問網際網路。
9) 保存文件並退出。
10) 把這個文件的許可權修改為 700。
11) 打開 /etc/rc.d/rc.local 文件。
12) 在其中加上下面的語句以調用你的命令腳本程序:
/etc/rc.d/rc.masq
13) 保存文件並退出。
PS:注意千萬記住要把同一 LAN 中的其他機器都設置為使用路由器作為它們的網關。
服務模塊 & 載入程序代碼:
CuSeeme 呼叫 /sbin/modprobe ip_masq_cuseeme
FTP 文件傳輸 /sbin/modprobe ip_masq_ftp
IRC DCCtransfer 網上聊天 /sbin/modprobe ip_masq_irc
Quake I/II/III/World 遊戲 /sbin/modprobe ip_masq_quake
UDP RealAudio 實時音頻傳輸 /sbin/modprobe ip_masq_raudio
VDO Live 實時視頻傳輸 /sbin/modprobe ip_masq_vdolive
55. 為計算機配置域名解析
如果想在你的 LAN 中配置域名解析服務( Domain Name Service,簡稱 DNS ),需要編輯好幾個文件。首先你必須告訴系統使用什麼樣的 DNS 服務。還需要了解必須以什麼樣的順序來使用這些服務,以及你想設置什麼參數。初始化安裝過程中的預設設置對大多數人的使用要求一般來說就足夠了。
通常並不需要修改/etc/host.conf文件中的內容。如果你需要修改這個預設文件的話,請按照下面給出的步驟進行操作。
1) 以根用戶身份登錄進入系統。
2) 編輯 /etc/host.conf 文件。
3) 根據你的網路的具體情況設置有關選項。
4) 保存文件並退出。
如果有必要進行編輯,就必須在 LAN 中的每一個計算機上分別編輯其 etc/ host.conf 文件,即使你不打算在自己的區域網上運行一個 DNS伺服器計算機也需要這麼做。只有在完全獨立的機器上才不需要這麼做。
當用戶完成對 /etc/host.conf 文件的編輯修改之後( 如果確實有必要這樣做 ),還需要再配置 DNS 本身。請按照下面的方法進行操作:
1) 以根用戶身份登錄進入系統。
2) 編輯 /etc/resolv.conf 文件。
3) 根據用戶的 DNS 具體情況設置有關的選項。
4) 保存文件並退出。
/etc/host.conf 文件中的選項
選項 & 數據格式 & 用途:
選項: alert
數據格式:On或者Off
用途:監監察是否有嘗試進行 IP 地址欺詐的操作。如果該選項被設置為「 on 」,則任何類似的嘗試都就被記錄在各種系統日誌文件中
選項: multi
數據格式:On 或者 Off
用途:監決定主機是否允許因為主機查詢的目的而在 /etc/hosts 文件中有不止一個 IP 地址
選項:nospoof
數據格式:On 或者 Off
用途:監通過使用反向 DNS 域名解析方法匹配連接的主機名及其 IP 地址,防止 IP 地址欺詐。使用這個選項的負載將增加在你的域名伺服器上
選項:order
數據格式:hosts,bind,nis
用途:監指定各種 DNS 域名解析服務的使用順序。其中 host 選項告訴系統檢查 /etc/hosts 文件; bind 選項告訴系統去諮詢某個 DNS 伺服器;NIS 選項指向網路信息服務( Network Information Service )來解析主機名。用戶可以使用 1、2 或者全部 3 個選項。如果用戶使用了不止一個選項,請使用一個空格字元分開它們。
選項:trim
數據格式:域名
用途:監告訴系統刪除某個域名,並只查看 /etc/hosts 文件來解析 IP 地址。這樣做對加速本地網路的域名解析很有用處,特別是在用戶還遇到其他 DNS 問題的時候
resolv.conf 文件中的選項
選項:domain
數據格式:域名
用途: 告訴DNS域名解析用戶LAN的域名是什麼
選項:nameserver
數據格式: 域名
用途:伺服器的一個或者多個 IP 地址監告訴系統到什麼地方把域名解析為 IP 地址。用戶可以列出最多 3 個域名伺服器的 IP 地址。如果其中的某個沒有解析成功,解析器程序會轉向下一個
選項:search
數據格式:域名
用途:一個或者多個域名監設置人們在 LAN 上經常使用的預設域名。如果某個域名沒有被包括一個查詢中,解析器程序將嘗試使用 search 選項列出的域名。沒有必要把該 LAN 的域名放在 search 選項上
56. 配置一個NFS文件伺服器計算機
配置網路文件系統( Network File System,簡稱 NFS )實現文件共享。它的基本功能就是允許用戶可以跨操作系統掛裝硬碟分區。
如果用戶選擇使用 NFS,那麼網路協議就必須使用 TCP/IP。
1) 以根用戶身份登錄進入系統。
2) 編輯 /etc/rc.d/init.d/inet 文件。
3) 在那個長「 if 」語句部分的緊下面,加上如下所示的語句:
/sbin/portmap
4) 保存文件並退出。這樣 portmap 命令將在開機引導啟動的時候自動運行。
5) 輸入「 /sbin/portmap 」命令立刻運行 portmap 命令。
6) 編輯 /etc/exports 文件。
用戶必須對每一台允許掛裝其分區的機器中的exports文件都進行修改。
7) 為準備允許外部系統共享的那些機器中的每一個文件系統建立一個數據項。舉例來說,如果想把地址 blue.colors.org 處的目錄 /home 及其內容設置為允許 colors.org 中所有機器都能夠以只讀許可權進行訪問,用戶應該加上如下所示的語句:
/home*.colors.org(r)
NFS 掛裝參數
參數 & 用途:
secure\*d 只接受來自小於 1024 號的網際網路埠的導出請求。預設值是 on
insecure 接受來自任何網際網路埠的導出請求
ro 不允許 NFS 用戶對導出共享卷(硬碟分區)執行寫操作
rw 允允許 NFS 用戶對導出共享卷(硬碟分區)執行寫操作。預設值是 on。使用這個參數的時候要謹慎,不要再讓任何人都可以訪問這個卷
noaccess 允阻止 NFS 客戶看到或者訪問當前位置以下的目錄
link_relative 允把所有以斜杠字元( / )打頭的符號鏈接轉換為相對鏈接,方法是在它們的前面加上適當數量的斜杠字元和點作為引導( 比如: . . / . . / . . / ),使之指向正確的目錄
link_absolute 允保持符號鏈接不變。預設值是 on
8) 保存文件並退出。
9) 編輯 /etc/exportfs 文件。
10) 輸入如下所示的內容:
# ! /bin/sh
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd
11) 把這個文件的存取許可權修改為 555。
12) 輸入「 exportfs 」命令。
每次修改過exportfs文件之後,用戶都必須運行 exportfs 命令。
13) 把路徑切換到目錄/usr/sbin。
14) 輸入「 rpc.mountd 」命令運行 mountd 守護進程。
15) 輸入「 rpc.nfsd 」命令運行 nfsd 守護進程。
57. 配置一個 NFS 客戶計算機
下面的方法自動掛裝用戶機器可以使用的 NFS 分區:
1) 以根用戶身份登錄進入系統。
2) 編輯 /etc/fstab 文件。
3) 在這個文件中,為用戶想掛裝的每一個分區加上一個數據項。比如說用戶準備把地址 yellow.colors.org 處的計算機配置為開機自動掛裝地址 blue.colors.org 處的 /home 分區。那麼需要加上如下所示的一行內容:
blue:/home /mnt/blue nfs rsize = 1024 , wsize = 1024 , hard , intr 0 0
如果只是想臨時性地掛裝 NFS 文件系統,請使用格式「 mount host:/directory /mountpoint 」。舉例來說,要想把計算機 purple.colors.org 里的 /home/bruce 目錄通過 NFS 服務掛裝到同一個域名中的掛裝點 /mnt/bruce 上的話,請輸入「 mount /purple:/home/bruce /mnt/bruce 」命令。
58. Samba ( SMB,即 Session Message Block 協議,任務消息塊協議)
Samba 是通用 Internet 文件系統(Common Internet File System,簡稱 CIFS)的一個具體實現,而 CIFS 則是以微軟公司 Windows 操作系統內所使用的文件和印表機訪問協議為基礎的。適用於其他類型操作系統的 CIFS 工具也已經開發出來,使不同網路之間能夠更容易地共享數據。
如果有許多人需要通過網路服務訪問文件,並且還極有可能會在同一時間對文件進行存取的話,請使用 Samba 服務代替 NFS 服務。因為 NFS 服務不鎖定文件,所以多個用戶可以在同一時間裡訪問同一個文件並試圖對之進行修改,而最終的結果是只能夠有一個用戶的修改被保存下來。另一方面,CIFS 客戶程序和伺服器程序卻能夠跟蹤對文件的存取訪問,在某個文件被打開的時候,對它進行「 鎖定 」。這樣在這個文件存檔並退出操作之前,其他人是不能再打開它的。
另外一個選擇 Samba 代替 NFS 的基本理由是:採用微軟公司的 Windows 作為操作系統的計算機不支持 NFS ,因此用戶無法通過 NFS 服務跨 Linux/Windows 網路訪問數據。
Samba的組成部分:
整個 Samba 包括兩個伺服器組件( 守護進程 )、兩個客戶程序和一個管理工具程序。這些不同的組件在 Samba 套裝軟體中各有其特定的作用。
A. 硬碟驅動器和印表機共享
伺服器組件 smbd 負責硬碟驅動器和印表機的共享。對 smbd 伺服器程序進行訪問的客戶端組件是 smbclient 程序。
B. 域名解析和瀏覽
伺服器組件 nmbd 將激活 NetBIOS 信息的管理和傳遞。它還可以跨整個網路提供一系列文件和列印服務。這些服務能夠被網路中的其他機器瀏覽。用來訪問 nmbd 伺服器程序的客戶程序是 nmblookup。
PS:注意如果用戶選擇安裝的是伺服器級別的 Linux 操作系統,那麼 smbd 和 nmbd 伺服器程序就將已經安裝並運行在用戶的系統中了。而且,在系統的開機引導文件中,它也已經被配置為直接運行。
查看Samba守護進程是否正在運行
以根用戶身份登錄進入系統並輸入命令組合「 ps -aux | grep *bd 」。如果在進程清單中看到 smbd 和 nmbd
說明這兩個進程正常運行著。
PS:具體安裝及配置詳細見網路相關專題教程。
59. Linux軟體常用發行方式:源代碼(source),二進位代碼 ( binaries ),RPM包,DEB包等
tar 檔案文件 .tar 擴展名 使用 tar 命令壓縮 .tgz 或者 .tar.gz 後綴的文件往往把 tar 命令和 gzip 命令結合起來壓縮
GZip 壓縮 .gz 或者 .z 擴展名
Z壓縮 .Z擴展名 使用 compress 文件壓縮程序
zip 壓縮 .zip 採用 zip 程序壓縮過的文件
A. RPM常見用法:
1).安裝一個 RPM 軟體包
. rpm -i — 用來安裝一個新的軟體包。
. rpm -U — 用來升級一個新的軟體包,如果它不存在就進行安裝。
. rpm -F — 用來升級一個新軟體包,即使它不存在也不進行安裝。
. -v — 用來查看安裝過程的各種信息。
. -h — 用來在安裝過程中顯示進度條。
一個常用的組合形式如下所示:
rpm -Uvh package-name.rpm
這個命令升級或者安裝新的軟體包,同時顯示安裝信息和進度條。你可以用參數i或者F換掉參數U。
2). 刪除一個 RPM 軟體包 rpm -e package-name
3). 「 rpm -qa 」命令列出用戶已經安裝的 RPM 包清單
如果用戶想查看是否已經安裝了某個軟體包,請輸入「rpm -q package-name」命令。
4) 查看一個 RPM 軟體包中都有哪些文件
. 如果還沒有安裝這個軟體包,使用命令: rpm -qlp package-name.rpm
. 如果已經安裝了這個軟體包,使用命令: rpm -ql package-name
5). 確定某個文件在哪個 RPM 軟體包里 「 rpm -qf file-with-full-path 」。
舉例來說,如果用戶想看看目錄 /etc/rc.d/init.d/中的httpd屬於哪個軟體包,輸入「 rpm-qf /etc/rc.d/init.d/httpd 」命令。
6). 確定某個 RPM 軟體包的用途 「 rpm -qip package-name.rpm 」
B. 使用 tar 檔案文件:
1). 列出一個 tar 檔案文件的內容清單 tar -tf filename.tar 或者 tar -tvf filename.tar
2). 對文件進行解 tar 歸檔操作 tar -xvf filename.tar
參數 x 表示解包,參數 v 表示顯示信息,參數 f 告訴 tar 命令後面跟著一個文件名
3). 從 tar 檔案文件中只解包 README 文件 tar xf achive.tar dir/README > README
舉例來說,有一個名為 program.tar 的檔案文件,並且在它的目錄結構中看到列出了 home/bruce/Read.me 的內容,那麼就應該輸入命令: tar xf program.tar home/bruce/Read.me > README
PS:注意在進行上面的操作時也可以不使用重定向,但是這樣就會按照檔案文件中包含的目錄結構建立這個文件。因此,如果上面的例子中在命令的結尾處沒有使用重定向的話,這個 Read.me 文件就會被解包到home/bruce 目錄中。
4) 建立一個 tar 檔案文件
找到你想對它們進行歸檔操作的目錄或文件,決定是否允許檔案文件被恢復到一個相對路徑或者決對路徑,把路徑切換到你想對之進行歸檔操作的目錄或者文件的上一級父目錄中。比如說,如果想對 /var/spool/mail 目錄進行歸檔操作,就切換到 /var/spool 目錄中。輸入「 tar cvf archiev.tar directory 」命令,建立檔案文件,命令中的 archive.tar 是新檔案文件的名字,directory 是對之進行歸檔操作的目錄的名稱。還是用上面的例子,如果打算把 /var/spool/mail 目錄歸檔到 mail-arc hive.tar 文件中去,需要從 /var/spool 目錄中輸入「 tar cvf mail-archive.tar mail 」命令。
5). 向現有tar檔案文件中添加文件 tar rf mail-archive.tar mail-to-add
C. 使用GZip壓縮
” gzip file “命令生成 file.gz 文件,「 gunzip file 」命令,解壓縮 Gzip 壓縮的文件
.tar 檔案還可以用 gzip 壓縮得到 .tar.gz
60. Linux 目錄結構
/ 文件系統的根目錄
/bin 正確完成命令功能所必須的二進位代碼
/boot 開機引導載入程序( LILO )需要的文件
/dev 用來告訴Linux操作系統如何對硬體設備進行各種操作的設備文件
/etc 用於某個特定機器的配置文件
/home 用戶目錄開始的位置
/lib 根文件系統中各種程序共享的函數庫
/mnt 掛裝臨時文件系統的位置,通常它自身會明確構成一個目錄結構。
/opt 某些套裝軟體二進位程序安裝的位置
/root 根用戶的用戶目錄
/sbin 正確完成系統功能所必須的二進位代碼
/tmp 用戶們和各種程序使用的臨時文件
/usr 供大多數或全部用戶使用的公共應用程序,文件系統的這個部分通常保存在作為伺服器的某個特定的計算機上,然後由 LAN 中的所有機器進行掛裝,這樣做可以保證只有一個中央 /usr 管理入口
/var 程序日誌之類的可變化數據
61. 編譯安裝源代碼
閱讀源代碼中的 README 文件或者 INSTALL 文件。一般步驟:
1) make config—檢查系統設置並建立專用的配置文件,這個專用配置文件將用來建立安裝用的程序。
2) make clean—把以前不成功的編譯過程中留下的任何文件都刪除。
3) make—針對預設的目標開始製作,在這一步實際完成對程序的編譯操作。
4) make install—把程序的各個組成部分放到適當的位置,給它們分配各自的所有者許可權和存取許可權。
make all >out 可以把製作編譯過程中全部的輸出信息都放到這個名為 out 的文件中去,以記錄並方便查閱編譯問題。
62. 安裝二進位代碼
1) 如果它是經過壓縮或歸檔操作的,先把它解壓縮到一個臨時目錄中。
2) 仔細閱讀隨軟體包而來的任何 README 或者 INSTALL 文檔。查看一下製作文件也不會有什麼問題。如果你願意,就可以在其中進行一些諸如改變安裝預設路徑之類的修改。
3) 輸入「 make install 」命令。
63. 把軟體包添加到用戶的 PATH 語句中
如果使用的是 bash 或者 korn shell,就可以使用下面的方法把一個新的目錄添加到 PATH 語句中:
1) 登錄進入你想改變其 PATH 語句的帳戶。
PS:注意如果想一次性為全部用戶改變 PATH 路徑,請以根用戶身份編輯 /etc/profile 文件。
2) 輸入「 PATH = $PATH: additional-path 」命令,把一個新路徑添加到這個帳戶當前的 path 語句中。
舉例來說,如果你想把「 /usr/local/bin 」添加到 path 語句中,應當輸入「 PATH=$PATH:/usr/local/bin 」命令。
PS:注意要想查看完整的path語句,請輸入「echo $PATH」命令。
64. 建立系統備份:
A. 進行一次完全備份
1) 在文件系統中選擇希望進行備份的部分。
2) 確定這些選定的部分什麼時候使用得比較少。這樣做是為了在備份進行的時候,力求文件不會發生太大的變化。
3) 在文件系統中掛裝備份介質, 輸入「mke2fs /dev/driver 」命令格式化備份目的磁碟(軟盤,快閃記憶體盤或者移動硬碟)
4) 使用 tar 軟體包把有關的文件打包 .tar cfzM /dev/driver/
5) 如果存儲空間是一個值得考慮的因素,可以使用 gzip 命令壓縮第 4 步生成的文件。
給打包好的檔案文件取一個有意義的名稱,盡量包括那些一看就能明白其意思的信息:比如版本號、城市名稱或者其他可以幫助回憶的關鍵詞( 術語 )。
6) 如果沒有直接把檔案文件打包存放到備份介質上的話,現在把它拷貝上去。
7) 給備份介質貼上標籤,標籤中應包括諸如檔案文件建立日期以及檔案文件內容等信息。
8) 把備份介質保存到一個安全並容易找到的位置。
B. 向一個現有的 tar 備份文件中添加文件
tar rfz /dev/device /item_to_add
C. 從磁帶或軟盤中恢復完全備份
1) 對那些在準備恢復的檔案文件建立之後又經過修改的文件進行備份。
2) 把第一個磁帶或軟盤放入驅動器。
3) 輸入下面的命令把系統恢復到進行完全備份時的狀態:
tar xfsM /dev/driver
4) 從剛才第 1 步建立的備份中恢復新修改過的文件。
D. 如果想讓備份工作能夠自動地執行,可以編寫一個運行必要程序的命令腳本,然後把這個命令腳本添加到定期的 cron 工作中去。
65. 管理系統
使用 last 命令列出成功登錄的記錄清單。如果想列出比預設數目更多的記錄,使用格式「 last -n number 」告訴 last 命令需要顯示多少登錄記錄。以根用戶身份執行「 touch /sar/log/wtmp 」命令來建立日誌記錄文件
lastb 命令列出不成功登錄的記錄清單,也有 last 的 -n 參數。以根用戶身份執行 ” touch /var/log/btmp ” 命令來建立日誌記錄文件。
免責聲明:
1.本影像檔案皆從網上搜集轉載,不承擔任何技術及版權問題。
2.如有下載連結僅供寬頻測試研究用途,請下載後在24小時內刪除,請勿用於商業。
3.若侵犯了您的合法權益,請來信通知我們,我們會及時刪除,給您帶來的不便,深表歉意。