Linux的快捷鍵和主要命令

火星人 @ 2014-03-24 , reply:0



作者:幻影快遞Linux小組

5.1 Linux基本的鍵盤輸入快捷鍵和一些常用命令

5.2 幫助命令

5.3 系統信息

5.4 基本操作

5.5 文件管理

5.6 查看和編輯文件

5.7 查找文件

5.8 X-windows基礎

5.9 網路應用程序

5.10 文件壓縮和解壓縮

5.11 進程式控制制

5.12 一些管理命令

5.13 硬碟和軟盤實用工具

5.14 用戶帳戶和文件許可權管理

5.15 程序安裝

5.16 訪問磁碟驅動器/分區

5.17 網路管理工具

5.18 與音樂有關的命令

5.19 與圖形相關的命令

5.20 幾個小遊戲









簡介:



這是包含在Linux軟體包里(RedHat或者Mandrake),我們比較經常使用和比較有用的一些命令集合。在你當前路徑的命令提示行下按鍵,就可以看到有效的命令一覽。在我的小型家用系統上,在我的當前路徑下有3786個可執行命令。這些命令的大部分可以在圖形用戶界面下使用滑鼠的左鍵或者右鍵來訪問,全部都可以使用命令行來運行(除非你沒有安裝對應的軟體包,在我的CD里都可以運行)。那些要求圖形用戶界面的程序必須在圖形用戶下才能運行,比如,你可以通過在KDE或者GNOME的終端輸入命令來運行這些程序。一些更高級(對新手沒有用處?)的命令工具可以參考第七部分的相關內容。





以下給那些對Linux沒有概念的新手:



1. Linux是大小寫敏感的系統,舉個例子,Mozilla, MOZILLA, mOzilla和 mozilla是四個不同的命令(但是只有第四個mozilla是真正有效的命令)。還有,my_filE, my_file,和 my_FILE是三個不同的文件。用戶的登錄名和秘密也是大小寫敏感的(這是因為UNIX系統和C語言的傳統一向是大小寫敏感所致)。



2. 文件名最多可以有256個字元,可以包含數字,點號」.」,下劃線」_」,橫杆」-」,加上其他一些不被建議使用的字元。



3. 文件名前面帶」.」的文件在輸入」ls」或者」dir」 命令時一般不顯示。可以把這些文件看作是隱含文件,當然你也可以使用命令」ls ?a」來顯示這些文件。



4. 「/」對等於DOS下的」\」(根目錄,意味著所有其他目錄的父目錄,或者是在目錄之間和目錄和文件之間的一個間隔符號)。舉個例子,cd /usr/doc。



5. 在Linux系統下,所有的目錄顯示在單一目錄樹下(有別於DOS系統的驅動器標識)。這意味著所有的物理設備上的所有文件和目錄都合併在單一的目錄樹下。



6. 在配置文件里,以#打頭的行是註釋行。在修改配置文件的時候盡量不要刪除舊的設置??可以把原來的設置加上」#」變成註釋行,總是在修改地方對應地加入一些關於修改的註釋,你會發覺在以後的管理中獲益多多。



7. Linux是繼承性的多用戶操作系統。你的個人設定(和其他用戶的個人設定)放在你的主目錄下(一般是/home/your_user_login_name)。許多的配置文件的文件名都以」.」開頭,這樣用戶一般看不到這些文件。



8. 整個系統範圍的設定一般放在目錄/etc下。





9. 和其他的多用戶操作系統類似,在Linux下,文件和目錄有自己的擁有者和訪問許可權。一般來說,你只被允許文件到你的主目錄下(/home/your_user_login_name)。學習一些關於文件許可權管理的相關知識,否則你肯定會覺得Linux實在很麻煩。



10. 命令參數選項一般由」-」引導,後面跟一個字元(或者」--「,當選項超過一個字元時)。這樣,」-」有點象DOS下的」/」。舉個例子,輸入命令 rm --help。



11. 輸入command& (命令名後面加&符號)在背景模式下運行一個命令。這個一般用來在X窗口下啟動其他的程序。


5.1 Linux基本的鍵盤輸入快捷鍵和一些常用命令





切換到第一個文本終端。在Linux下你可以有多達六個不同的終端。這個命令的意思是:「同時按住鍵和鍵,然後按鍵,再釋放所有的鍵」。



(n=1..6)



切換到第n個文本終端。(你也可以使用不是很經常用到的命令chvt n 來實現,n指的是第n個文本終端)。在文本終端下(不是在X窗口),你也可以簡單使用來實現切換,不需要鍵。



列印出你正在使用的終端名稱,如果你希望知道終端的名字,可以使用命令fgconsole。







切換到第一個圖形用戶界面(一般來說X-window在第七個終端)





(n=7到12)



切換到第n個圖形用戶街面。根據預設,第一個X-Window在第7個終端運行,從第8到第12什麼也沒有,當然你可以逐個啟動這些圖形用戶界面。







(在文本終端下)可以使用TAB自動完成命令,或者顯示所有的可選項。這個快捷鍵真的非常好用,經常使用你會發覺它可以節約你很多的時間。







(在文本終端或者X窗口下)滾動和編輯以前輸入的命令。按執行一個歷史命令







回滾







滾動終端輸出。對於登錄提示也起作用,所以你可以使用它回滾啟動信息。你顯卡的內存大小決定你可以回滾多少內容







回滾終端輸出



<+>



(在X窗口下) 改變X伺服器的屏幕解析率 (如果你設置X伺服器有多個不同的屏幕解析率)。比如對於我的標準SVGA卡和顯示器,在文件/etc/X11/XF86Config有以下的設置行: (從預設開始,到可以支持的最大虛擬屏幕解析率)



Modes "1024x768" "800x600" "640x480" "512x384" "480x300" "400x300" "1152x864"Z



當然,首先我必須設置我的X伺服器,可以使用using Xconfigurator, xf86config, 也可以手工編輯文件:/etc/X11/XF86Config。XFdrake (Mandrake使用圖形用戶界面進行配置 )。你也可以參考命令xvidtune和xvidgen。



<->



(在X窗口下)把X伺服器的屏幕解析率修改到上一次的設置。







(在X窗口,KDE下)關閉我滑鼠將要指向的窗口(滑鼠的游標形狀會有所改變)。同樣的效果也可以使用命令xkill(在X終端上)來實現。當一個程序窗口被掛住的時候特別有用。







(在X窗口下) 終止當前的 X窗口服務。如果X窗口不能正常退出時可以使用。







(適用於文本終端下)關機和重新啟動。這是一個在文本終端下的正常關機命令,千萬不要按計算機上的reset鍵來重新關機和重新啟動!



c



終止當前進程(對於一般的小型文本模式的應用程序)



d



(在一個空白的命令行上輸入)退出當前的終端。參加下一個命令。



d



給當前的進程送文件結束符合。不要按兩次否則你會把自己退出系統。



s



停止終端傳輸



q



從新開始終端傳輸。如果你的終端突然莫名其妙的停止響應,可以參考上一條命令。



z



把當前進程送到後台處理。



exit



退出系統。我也可以使用logout命令達到同樣效果。(如果你啟動了第二個shell程序,比如,使用bash,這條命令將使你退出第二個shell回到第一個shell,但是不會退出系統。當然,可以再一次使用exit退出)



reset

恢復崩潰的終端(有些終端顯示一些奇怪的字元)到預設的設置。當你使用cat命令準備顯示一個二進位文件時,你可能看不到你所輸入的命令,儘管命令仍然照常工作。



<滑鼠的中間鍵>



粘貼當前選擇的文本。這是一個常規的Linux「複製-粘貼」操作。它是對被廣泛採用的通信用戶界面下「複製-粘貼」操作的一個非常有用的擴展(但是它不支持舊版本的NetScape,因為在舊版的NetScape只能使用MAC/Windows風格的「複製-粘貼」操作。如果你運行「setup」程序進行設置,你可以在文本終端下使用這個功能。而且它在大多數的對話框里也能很好的工作,真的非常方便!)如果你有一個「Linux-Ready」的滑鼠(logitec或者其類似產品)或者你通過使用「模擬三鍵滑鼠」,這個功能可以得到最大限度的發揮。一般來說,「第三鍵」的模擬是通過同時點擊左右兩個滑鼠鍵來實現。



~



(水文符合) 我的主目錄(一般來書是/home/我的登錄名)。舉例,命令~/my_dir將修改我的工作目錄到我的主目錄的子目錄」my_dir」下。相對於輸入」cd ~」,你也可以只輸入」cd」,我把我的所有文件都放在自己的主目錄下。



.



(點符號) 當前目錄。舉例:./my_program 將試圖執行當前目錄下的"my_program"文件



..



(兩個點)到當前的上一級目錄(也叫「父目錄」)。舉個例子,命令「cd..」將修改我的當前工作目錄到上一級目錄。



一些KDE的快捷鍵(很有用,但不是非要不可的)





切換不同的程序窗口。往回切換,使用





切換不同的桌面。往回切換,使用





顯示我系統里正在運行的進程列表。允許我終止那些由我啟動的進程(或者送信號給這些進程)





訪問K菜單 (對等於微軟Windows的的「開始」菜單).





使用鍵盤上的箭號鍵模擬滑鼠的操作



<滑鼠左鍵>

拖曳並移動一個窗口。一般來說,我通過拖曳窗口的題目欄來移動一個窗口。有些時候,我用它把

一個窗口移動到屏幕之外。使用這個功能,我可以把窗口移動到屏幕的任何位置。





把當前屏幕的快照存到剪貼板





把當前桌面的快照存到剪貼板





鎖定桌面





切換隱藏/顯示桌面的功能(當老闆走過來的時候迅速藏起你的紙牌接龍遊戲非常管用哦!)





(非必須掌握)



這是在Linux的內核(底層內核)上支持的一組組合鍵。它意味著這些組合鍵在大部分情況下都是有效的。組合鍵主要是針對開發人員的程序調試目的或者在緊急場合下才使用;你也可以使用其他的辦法,安全第一。鍵在PC上指的是PrintScreen鍵。組合鍵的功能可以通過設置相對應的內核參數來激活或者取消,比如: echo "1" > /proc/sys/kernel/sysrq





終止在當前虛擬終端上運行的所有進程(包括X窗口)。這個組合鍵被稱為「安全訪問鍵「(SAK).





發送 TERM 信號(結束信號)到除了init進程以外的所有運行進程,要求其退出





發送 KILL (終止信號)到除了init進程以外的所有運行進程, 這個組合鍵比上一個更加有效,但是也可能引起一些程序被異常終止。





發送KILL命令到所有運行進程(包括init),系統將不再能夠使用





在所有的掛載文件系統上運行緊急同步(緩存寫) 。這可以保護數據丟失





以只讀模式重新掛載所有已載入的文件系統。這和上面的同步組合鍵有相同的功能,但是另外有一個好處:如果操作順利完成,下一次硬體重新啟動時,fsck將不會重新檢查所有的文件系統。

關閉鍵盤的原始模式。當你的X窗口程序掛住沒有響應時特別有用。使用這個組合鍵之後,你可能會接著使用程序啟動。





不進行同步和卸載就立刻重新啟動系統。之後你可能會碰到一下錯誤信息。





關機 (如果正確設置以後)





導出當前的寄存器和標誌到控制台





導出當前任務和相關信息到控制台





導出內存的內容到控制台



SysRq><數字>

「數字」從0到9。設置控制台記錄的級別,用於控制哪一些內核信息將被顯示在控制台上。舉例,「0」意味著只有象PANIC和OOPS的之類的緊急信息才被顯示在控制台上。





顯示幫助信息。還有,任何其他不被支持的 組合鍵將顯示同樣的幫助。


5.2 幫助命令



命令名 ?help | more



顯示一個簡略的命令幫助(對大部分命令有效)。舉個例子,試著使用 「cp ?help | more」。「--help」和和DOS下的「/h」開關功能類似。當輸出超過一個屏幕時,加上「more」是很有必要的。



man 命令名



顯示對應命令系統的幫助手冊。輸入「q」退出瀏覽器。如果你設置了高級選項,試著輸入「man man」。命令「info 命令名」 和命令「man 命令名」功能相似,但是包含更多的最新信息。幫助手冊對於新手可能有點難於讀懂——因為它們最初是寫來給UNIX程序員看的。使用「命令名 ?help」可以得到一個簡略容易消化的命令幫助。有些程序自帶README文件或者其他幫助信息文件----建議你可以看看目錄/usr/share/doc。在指定的部分顯示命令幫助,可以使用這樣的命令「man 3 exit」,這個命令只顯示exit命令幫助手冊的「第三部分」;或者使用命令「man ?a exit」, 這個命令顯示exit命令幫助手冊的「所有部分」。exit命令幫助的所有部分是: 1-用戶命令;2-系統調用;3-子調用;4-設備;5-文件格式;6-遊戲;7-雜項;8-系統管理;9-新內容。列印完整的命令幫助,可以使用命令「man 命令名 | col -b | lpr」(可選項col ?b刪除所有的退格鍵和一些難以閱讀的特殊字元)。



info 命令名



顯示指定命令的幫助信息。info 命令是取代man 命令的一個好處是,它通常帶有最近更新的系統資料。多使用「空格鍵」和「退格鍵」,否則你可能會暈頭轉向。按「q」鍵退出。如果覺得用於翻閱的辦法不太好用??你也可以試著使用pinfo命令,看你會不會更喜歡這個替代品。



apropos 命令名



對所輸入的命令名給出一個幫助一覽表。



whatis 命令名



給出匹配所輸入命令名的簡短清單。whatis命令有點象apropos??它們使用相同的資料庫。不同的是,whatis搜索的是關鍵字,apropos搜索的是關鍵字的具體描述。



help 命令名



顯示bash shell內置命令的簡單信息。使用 help 命令不帶任何參數將顯示bash shell所有內置的命令。最短的bash shell內置命令應該包括:alias, bg, cd, echo, exit, export, help, history, jobs, kill, logout, pwd, set, source, ulimit, umask, unalias, unset.



kdehelp

kdehelpcenter



(在X-終端下有效, 使用在你的系統上可以工作的那一個命令). 使用圖形的瀏覽器顯示整個系統的幫助。一般來說,KDE幫助通過把對應的圖標放在KDE控制板上來實現。對等的GNOME幫助系統可以使用gnome-help-browser命令。


5.3 系統信息

pwd



輸出工作目錄。舉例,在屏幕上顯示我當前所在的目錄



hostname



輸出本地主機的名稱(我正在使用的這一台機器)。使用netconf修改機器的名稱(要求超級用戶許可權)



whoami



輸出我的登錄名稱



id username

輸出用戶標識ID(UID)和其對應的用戶組標識ID(GID),有效的ID(如果不同於真正的用戶ID)和所屬的其他用戶組



date



輸出操作系統的當前日期,時間和時區。如果要以ISO標準格式輸出,我必須使用命令「date ?Iseconds」。

我可以修改當前的日期和時間到2003-12-31 23:57,使用命令:date 123123572003。或者使用兩個命令(比較容易理解和記住):



date ?-set 2003-12-31

date ?set 23:57:00



如果要重新設置硬體時鐘(BIOS),可以使用命令setclock,要求超級用戶許可權。



time



偵測一個進程所需要的時間加上其他處理的時間的總和。不要和上面提到的date命令混淆。比如,我可以使用命令「time ls」來判斷顯示一個目錄需要多長時間;或者我可以使用命令「time sleep 10」來測試time命令(睡眠10秒鐘,什麼也不做)。





clock



(兩個命令中的一個)從計算機的硬體(由電池供應的實時的硬體時鐘)獲得日期/時間。你可以使用這個命令來設置硬體時鐘,但是setclock可能簡單一些(看前面的兩個命令)。舉例:「hwclock ?systohc ?utc」命令把系統時鐘設置到硬體時鐘(以UTC格式)。



who



顯示登錄在系統里的用戶



w



顯示登錄在系統里的用戶,檢查他們正在做什麼以及他們的處理器使用狀況。屬於常用的安全方面的命令。



rwho -a



(=remote who,遠端的who命令)。顯示網路里其他計算機的用戶登錄狀況。這個命令要求rwho服務必須在遠端機器上運行。如果沒有,以root用戶運行setup(RedHat特有)激活「rwho」。



finger 用戶名



顯示對於一個用戶的系統信息。可以試一下命令:finger root。任何人都可以使用finger命令訪問任何一台連接到網際網路提供finger服務的計算機。比如:finger @finger.kernel.org



last



顯示最後一個登錄到系統的用戶。經常運行這個命令作為系統安全檢測的手段之一是一個絕好的主意。



lastb



(「=last bad」,最後一個壞的)顯示最後一個不成功的登錄嘗試。但是這個命令在我的系統上不能工作,所以你可能要使用:touch /var/log/btmp



「/var/log/btmp在一般的系統安裝里無效的主要原因是因為:它是一個包含登錄的出錯信息的完全可讀的文件。一個用戶登錄時最經常犯的錯誤是輸入用戶密碼作為用戶名,這樣,文件/var/log/btmp對計算機黑客來說簡直是一個禮物」。(謝謝Bruce Richardson提供這個信息)。



如果要解決這個問題,修改該文件的文件訪問許可權為只有root用戶才可以使用命令「lastb」。命令:「chmod o-r /var/log/btmp」



history | more



顯示當前用戶在命令行模式下執行的最後(1000個)命令。參數「|more」在輸出滿屏時暫停。如果要檢查其他用戶在你系統上都運行了什麼,以root用戶登錄,檢查在該用戶主目錄下的文件「.bash_history」(沒錯,該文件可以被修改和刪除)。



uptime



顯示自從上一次啟動到現在機器運行的總時間。





ps



(= 「print status」或者 「process status」,列印狀態或者處理狀態)列出由當前用戶運行的進程一覽。



ps axu | more



列出當前運行的所有進程,包括那些不是來自控制終端的進程,在顯示用戶進程的同時顯示用戶名。



top



持續列出正在運行的所有進程,按CPU的佔用率排序(佔用率高的排在最前面)。按C退出。



PID = 用戶標識

USER = 啟動或者擁有該進程的用戶.

PRI = 進程的優先順序別(值越大,優先順序別越低,一般進程是0,最高的級別是-20,最低的級別是20。

NI = 優化級別(比如,進程試圖以預先給定的優先順序別的數值來運行)。數值越高,進程的優化級別也越高(優先順序別越低)

SIZE = 進程載入到內存的代碼+數據+堆棧的位元組總數(以千位元組計算)

RSS = 物理內存被佔用的大小(以千位元組計算)

SHARE = 和其他進程共享的內存(以千位元組計算)

STAT = 進程的當前狀態 S-睡眠, R-運行,T-停止或者被跟蹤,D-不可中斷的睡眠,Z-不死的進程

%CPU = CPU佔用慮百分比(自從上一次屏幕更新以來)

%MEM = 共享物理內存的佔用率

TIME = 進程佔用的CPU時間 (自從進程啟動以來)

COMMAND=啟動該任務使用的命令行(小心命令行里出現的密碼等信息,有許可權運行top命令的用戶都可以看見它們!)





gtop

ktop



(X終端)在圖形用戶界面下的兩個top功能。我比較習慣使用gtop(在gnome自帶)。在KDE環境下,ktop在K菜單的「System」菜單下的「Task Manager」里。



uname ?a



(=「Unix Name」帶可選項「all」)顯示你本地計算機信息。也可以使用通信用戶界面的guname(X終端下)得到更好的信息顯示。



XFree86 ?version



顯示本地計算機的X-Windows的版本。



cat /etc/issue



檢查你的發行版本。你也可以把你自己的信息放到文件/etc/issue里??在用戶登錄的時候會顯示。如果你想要顯示更多的信息,還有一個比較常見的做法是把本地專有的登錄信息內容放在文件/etc/motd里 (「motd」=「message of the day」,當天信息)



free



內存的信息(以千位元組顯示)。「共享」內存是指可以被多個進程共同享有的內存(比如,可執行代碼是「共享」的)。「緩衝」和「緩存」則是用來保留最近訪問的文件和數據??當其他進程需要更多的內存時候這些內容可以被減縮。



df -h



(=disk free 硬碟剩餘空間) 輸出所有文件系統的硬碟信息(以易讀的模式, h-human readable, 人類可讀)



du /-bh | more



(=disk usuage, 硬碟使用狀況)輸出根目錄「/」下每個子目錄具體的硬碟使用狀況



cat /proc/cpuinfo



CPU信息??它顯示文件cpuinfo的內容。要注意的是文件在/proc目錄下不是真正的文件??它們只是在觀察內核信息時起連接的作用。



cat /proc/interrupts



顯示正在使用的中斷號。在配置一個新硬體的時候可能需要瀏覽一下。



cat /proc/version



Linux的版本和其他信息



cat /proc/filesystems



顯示當前使用的文件系統的類型



cat /etc/printcap |more



顯示印表機的設置



lsmod



(= "list modules". 顯示模塊。必須是root用戶,如果不是,使用命令/sbin/lsmod執行)顯示當前已經載入的內核模塊 .



set|more



顯示當前的用戶環境(全部顯示)。一般來說東西太多了。



echo $PATH



顯示環境變數「PATH」的內容。這個命令也可以用來顯示其他的環境變數。使用set來察看所有的環境變數(和前一個命令功能相同)



dmesg | less



輸出內核信息(也就是常說的內核內部緩存信息)。按「q」退出「less」。也可以使用 「less /var/log/dmesg」來直接檢查最近一次系統啟動時「dmesg」輸出到文件里的內容。



chage -l my_login_name



查看我的密碼過期信息



quota



查看我的硬碟區間(硬碟使用的限制)



sysctl -a |more



顯示所有可設置的Linux內核參數



runlevel



輸出和前一個和當前的運行級別(runlevel)。輸出「N5」意味著:「沒有前一個運行級別」和「5是當前的運行級別」。要修改運行級別,使用「init」,舉例:「init 1」把當前的運行級別切換到「單用戶模式」。



運行級別是Linux的操作模式。運行級別可以使用init命令進行快捷的修改。舉例,「init 3」將把模式切換到運行級別3,以下是運行級別的標準:



0-中斷 (不要把系統初始設置「initdeafult」設成這個值)

1-單用戶模式

2-多用戶模式,不帶NFS(如果你沒有網路,和運行級別3相同)

3-全功能多用戶模式

4-目前沒有使用

5-X11 (圖形用戶界面)

6-重新啟動(不要把系統初始設置「initdeafult」設成這個值)



系統的初始運行級別設置在文件:/etc/inittab里



sar



查看抽取系統活動記錄文件信息(/var/log/sarxx, 其中xx指的是當前的日期)。sar可以抽取很多種系統統計信息,包括CPU的平均載荷,i/o的統計,當天的網路流量統計或者是幾天以前的數據。
5.4 基本操作

ls

dir



列出當前目錄的內容。dir命令是ls命令的一個別名,所以這兩個命令在文件羅列時使用的顏色代碼是絕對一致的:



深藍色=目錄

淺灰色=一般文件

綠色=可執行文件

紫色=圖形文件

紅色=壓縮文件

淺藍色=鏈接文件

黃色=設備文件

棕色=FIFO文件(先進先出,命令管道)



ls -al |more



列出當前目錄的內容,所有文件(包括那些以「點號」開頭的隱含文件),並以「長格式」顯示。把所有輸出定向到管道more,在屏幕滿屏時可以暫停。ls命令還有很多其他的非常有用的可選項。還有一些快捷鍵可以減少麻煩的命令輸入。試試ll(=長格式羅列,相當於ls ?l)。另外一個我經常使用的可選項是「ls ?ad」(列出所有當前目錄下的子目錄但是不輸出它們的內容)。



cd 目錄



修改當前目錄。只輸入「cd」沒有指定目錄名將切換到你的主目錄。「cd ?」將切換到上一次你訪問的目錄,這個命令在兩個不同的目錄之間切換時非常方便。「cd ..」將退到當前目錄的上一級目錄(父目錄)。



./程序名



在當前目錄下運行一個可執行程序。當可執行文件不在我的PATH下時,「./」是必須的。一個在我的PATH下的可執行文件可以簡單的輸入程序名運行而不需要「./」。



shutdown -h now



(要求root用戶)關機。一般用於在遠程關閉計算機。在控制台上可以使用來關閉計算機(所有用戶都可以)



halt

reboot

init 6



(三個命令都要求root用戶)關機或者重新啟動計算機。主要用於遠程系統重新啟動,比上面的命令要簡單一些。如果計算機停止響應時非常有用,我一般通過網路從其他機器telnet到停止響應的計算機上然後重新啟動它。在本地計算機上,我則一般使用來重新啟動。



vlock

(舊版本的RedHat沒有這個功能)鎖住當前的文本終端。也可以使用vlock ?a鎖住所有的終端(可能不是什麼好主意)。最好的做法一般是使用logout命令退出系統。你不能在圖形用戶界面的終端上使用vlock命令??因為窗口管理器自帶一個屏幕保護程序和一個加鎖的工具(在KDE下一個小的鎖型標誌,鍵盤快捷鍵)。


5.5 文件管理

cp source destination



複製源文件source 到目標文件destination。舉例「cp /home/stan/existing_file_name .」將複製文件到我的當前工作目錄。使用「-R」可選項(代表「recursive」)複製整個目錄樹的內容,比如:「cp -R my_existing_dir/ ~」將複製我當前工作目錄的一個子目錄到我的主目錄里。



mcopy source destination



從DOS文件系統複製一個文件或者複製一個文件到DOS的文件系統里(不需要掛載DOS文件系統)。舉例:

「mcopy a:\autoexec.~/junk」。查看「man mtools」了解更多的相關命令,可以不需要掛載DOS文件系統就可以直接訪問DOS文件,比如命令:mdir, mcd, mren, mmove, mmd, mrd, mformat ...我們不是很經常使用mtool的命令是因為??通常可以把DOS/MS Windows的文件系統掛載到Linux里,然後用Linux的常規命令來訪問這些文件。



mv source destination



移動文件和更改文件名。對於文件和目錄的移動和改名都可以使用這個命令。



rename 字元串 更新字元串 文件名



很好用的文件名修改工具。舉例:「rename .htm .html *.htm」把所有的以「htm」為擴展名的文件名里的「htm」全部換成「html」。



ln source destination



從叫做source的源文件創建一個叫做destination的目標文件的「硬鏈接」。這個文件看起來好像是一個源文件的複製文件,但是實際上只保留了一個文件的硬拷貝,只是兩個(或者多個)目錄的入口指到同一個文件上。任何對這個文件所作的修改在所有地方都可以看得見。當一個目錄得入口刪除后,其他得目錄得入口保持不變。「硬鏈接」的局限性是:文件必須在同一個文件系統里,創建目錄或者一些特殊文件的硬鏈接是不可能的。



ln -s source destination



從叫做source的源文件創建一個叫做destination的目標文件的「標誌鏈接」(軟鏈接)。「標誌鏈接」只是指定到「真實文件」的訪問路由。和「硬鏈接」相比較,它的好處是源文件和目標文件可以在不同的文件系統里。「標誌鏈接」也有自己的不足之處:如果「真實文件」被移動或者刪除,「鏈接」就被破壞??不知道路徑指到什麼地方;「軟鏈接」可以產生「循環參照」 (就象資料庫或者電子表格,舉例:a指向b,b指向c,c指向a)。簡而言之,標誌鏈接非常有用而且也很常用(比「硬鏈接」要常用得多),但是同時可能帶來一些文件管理的複雜性。



rm files



刪除文件。你必須是擁有這些文件才能夠刪除它們(或者是root用戶)。在很多系統里,你將會被提問是否確認刪除文件。如果你不想被提問,使用「-f」(=force,強制刪除)參數。舉例:rm ?f * 將刪除所有當前工作目錄下的所有文件,而且沒有任何確認提示。



mkdir directory



創建新目錄。



rmdir directory



刪除一個空目錄



rm -r files



刪除文件,目錄和所有它們的子目錄。作為root用戶,要小心使用這個命令??如果你在頂級目錄樹上執行這條命令,你將刪除系統里所有的文件,到目前為止在Linux里還沒有「取消刪除」的命令。如果你真的想要這麼做(再仔細想想?),這裡告訴你該怎麼辦:使用命令 」rm ?rf /*」。



rm -rf files

(強制)刪除文件,目錄和所有它們的子目錄如上所述,但是跳過確認信息提示。如果你是root用戶,絕對要小心使用這個命令。



mc



激活「Midnight Commander」文件管理器(看起來有點象Linux下的Norton Commander)。根據一些恐龍級的計算機用戶的反映,這是至今為止最好的文件管理器。



konqueror &



(在X終端下)激活KDE文件管理器。也許這是文件管理器的極品。比微軟的文件瀏覽器要好得多。它集成了網頁瀏覽,PDF文件閱讀和其他功能。真的很酷!



xwc



(在X終端下)另外一個很出色的文件管理器,是X-Win-Commander的縮寫。比Konqueror的速度快,但是功能上稍微遜色。



nautilus &



(在X終端下)一個真正很酷的文件管理器。比Konqueror要慢,但是提供了一些有用的功能??比如圖標提供文件內容預覽!它甚至可以預覽聲音文件!但是對CPU速度依賴較大,它在我的1.33GHZ的計算機上運行出色,但是我從來不在我的133MHZ的老機器上使用它。


5.6 查看和編輯文件

cat filename | more


這個命令用於查看一個被稱為 "filename"的文本文件的內容,每次一頁. "|"符號是"pipe" 符號(在很多美式鍵盤裡, 它與"\"共用一個鍵). more 使文本內容的輸出顯示停止在每一屏.對於長文件,有時可以很方便地使用head 和tail 來顯示文件的開始和結尾部分或用less 使之能上下滾動. 如果你恰巧使用 cat顯示一個二進位文件,你的終端隨後顯示古怪的字元, 你能使用reset命令恢復它.

cat filename | less
less filename


(選用二條命令之一) 滾動一個文本文件的內容.退出按q . "less" 大致相當於 "more" , 該命令來自 DOS,但經常 "less"比 "more"更方便因為它可使我能使用滾動條上下滾動.

head filename


顯示長文本文件的前10行.

tail filename
顯示長文本文件的最後10行. 使用tail -f filename讓文件的末尾持續讀取該文件的不斷出現的數據.

pico filename
使用簡單,標準的文本編輯器pico來編輯一個文本文件. 使用 x推出. Linux有很多文本編輯器, 包括幾個基於圖形用戶界面的編輯器. 一個新的 pico 克隆版(GPLed) 是 nano.

pico -w filename
編輯文本文件, 沒有文本行長度的限制.對於編輯配置文件很方便, 如. /etc/fstab.

kwrite
(在X終端) 很不錯, "高級文本編輯器". 支持垂直文本選擇!

kate
kedit
gedit
(在X終端).簡單但很好的文本編輯器 (基於GUI).

gxedit
(在X終端)另一多用途,具特色的文本編輯器. 它甚至於能定時備份.

latte
(在X終端) "代碼" 編輯器, 即, 用於寫程序的無格式文本編輯器.

nedit
(在X終端) 另一種程序編輯器. 很好.

bluefish
(在X終端) html 編輯器 (源碼的句法高亮標註, 有很多工具和選項).

ispell filename
一個 ASCII 文本文件的拼寫檢查命令. AbiWord, WordPerfect, StarOffice 和其它文本處理器都使用鍵入就檢查的策略,所以除非需要,否則你不用擔心簡單的 ispell 命令. Linux 新版本 (如, RH7.0) 包含了功能增強的拼寫檢查模塊, 稱為 aspell,但上面的命令仍然工作.

look thermo
在你的系統單詞目錄(/usr/share/dict/words)中查尋開始於"thermo"的單詞.

wvHtml ms_word_document.doc > filename.html
轉化MS Word 文件到 html文件.




5.7 查找文件



find / -name "filename"

 

在你的文件系統中從根目錄"/"開始搜索被稱為"filename"的文件. "filename"文件名可以包含通配符(*,?).



find命令功能強大.它有很多選項讓你以不同的方式搜索文件.例如, 通過日期, 文件大小, 許可權, 擁有者等等.但一些的搜索查詢要花上幾分鐘編寫. 查看info find. 這裡是一些使用 find 來完成一些有用的任務的複雜例子.



find $HOME -name core -exec rm -f {} \;

 

以上命令從你的$HOME目錄開始尋找, 發現名字是 "core"的文件. 對於每一個這種被找到的文件,執行 "rm -f" (強制刪除文件). {} 代表了已發現的文件, "\"終止了該命令列表.



find /dev -user "peter" |more

 

以上命令顯示由用戶 "peter"所擁有的所有設備的文件.顯示文件名是 find命令的默認行為,所以如果這就是我所要做的,無須特別指定.



find /home/peter -nouser -exec ls -l {} \; -ok chown peter.peter {} \;

 

在/home/peter目錄下找到非有效擁有者的文件.以長格式列出文件.然後將這些文件的所有權改為用戶"peter" 和 組 "peter". 要處理文件的所有權, 你可能必須是超級用戶.



locate filename

 

發現包含字元串"filename"的文件名.這比前面的命令更容易, 更快, 但基於資料庫(通常在夜間重建),所以你無法找到剛剛存到文件系統的文件. 為了強制立即更新資料庫, 作為超級用戶可以使用: updatedb&.



which executable_name

 

如果我在命令行鍵入可執行文件的名字, 顯示該可執行文件的全路徑.例如, 這條命令:

which mozilla。我的系統出現:
/usr/bin/mozilla



whereis command

 

顯示"command"命令的二進位文件, 源文件和手冊的位置.



rgrep -r 'celeste' . |more

grep -r 'celeste' . |more



(二條命令, 在你的系統中選用一條).在當前目錄和所有子目錄中搜索含有字元串"celeste"所有文件(選項"-r"代表遞歸). 顯示文件名和在文件中包含所尋找的字元串所在的行.



kfind &

 

(在X終端). 在一個GUI前端界面使用find and grep. 很不錯. 命令行末尾的& 使find運行在後台以便使X終端保持可用狀態。

 

 


5.8 X-windows基礎

 

xinit &

 

啟動基本的X-windows伺服器(沒有 windows管理器). "&"使命令運行在後台.



startx &

 

啟動X-windows伺服器和默認windows管理器.就象在帶有Win3.1的DOS下鍵入"win" .



startx -- :1 &

 

在顯示進程1中啟動另一個X-windows(默認顯示進程為0). 你能夠同時運行幾個 GUI 終端.在這些界面之間使用, 來轉換.



xterm

 

(在X終端) 運行一個簡單的 X-windows終端. 鍵入 exit將關閉它.對於Xwindows 有其它更高級的」虛擬」終端.我喜歡普遍使用的 konsole 和kvt (二者均來自 kde) 和gnome-terminal (來自 gnome). 如果你需要看起來更奇特的終端, 試試Eterm. 我還可以選擇簡單, 運行快的rxvt.



startkde
gnome-session
xfce
afterstep
AnotherLevel
fvwm2
fvwm

 

(在X終端, 7 條不同的命令, 使用其中之一來啟動你喜歡的windows 管理器). 在X伺服器上在一個X終端啟動你喜歡的windows 管理器.


5.9 網路應用程序



mozilla &



(在X終端下) 運行mozilla網頁瀏覽器。現在的版本是Mozilla 1.01 (2002年10月),這個瀏覽器非常不錯。Mozilla是Netscape的一個衍生品(在老的Linux系統上一般使用NetScape)。還有其他幾個不錯的替代品比如konqueror和galeon (在Linux的X終端上輸入konqueror和galeon直接運行)



mozilla ?display host: 0.0 &



(在X終端下)在當前的計算機上運行Mozilla如何把輸出定向到叫做「host」的計算機的第0個顯示器的第0個窗口屏幕。你當前的計算機必須有許可權在 「host」 計算機顯示內容(一般的做法是,在「host」計算機上的X終端輸入命令「xhost [當前的計算機名]」。其他的X-Windows的程序也可以通過同樣的辦法來運行)。



lynx file.html



以純文本方式來瀏覽html超文本文件。儘管lynx看起來不像基於圖形用戶界面的網頁瀏覽器那麼出色,但是它很小巧,幾乎沒有出差錯的時候,也不需要什麼特殊的設置,只要你的網路是正常的。



konqueror &



(在X終端下) 集成了文件管理器和網頁瀏覽器的功能。很不錯,和Mozilla的很多功能可以一比高低。KDE自帶的軟體。



pine



一個很不錯,老古董的文本郵件閱讀工具。還有另外一個老古董是elm。你的Mozilla將會閱讀你網際網路上的郵件,pine則讓你閱讀「本地」的郵件。比如,你兒子的郵件或者在你網路里的另外一台計算機的cron進程發送給你的信息。命令mail也可以用來閱讀和寫郵件,但是沒有那麼方便使用。



mutt



一個非常基本但是及其有用的快速郵件閱讀工具。



mail



給email使用的一個基本的操作系統工具。如果你只是要閱讀郵件,可以參考上面的快速email閱讀命令。如果你要在shell腳本上發送郵件,mail倒是一個很好的選擇。



kmail &



(在x終端下)很好的圖形用戶界面的郵件程序。我使用kmail,因為它比Netscape的mail做得要出色的多。我可以擁有多個電子郵件帳號,然後分別從本地的smtp伺服器和ISP的pop3伺服器上下載郵件到同一個收件箱。簡單易用,支持數字簽名。



licq &



(在x終端下)一個ICQ的客戶端程序。還有另外一個不錯的選擇是kxicq。就的Linux發行版本不帶licq客戶端程序,你可能需要自己下載安裝。



knode &



(在x終端下)啟動我喜歡的新聞組閱讀器(usenet)。比Netscape內置的閱讀器要好。



talk username1



和另外一個登錄在系統里的用戶交談(也可以使用「talk username1@machine_name」來和另外一台計算機上的用戶交談)。要接受會談請求,輸入命令「talk username2」。如果你正在忙著而有人想要和你交談,你可以使用命令「mesg n」拒絕接受信息。你可以使用命令who或者rwho來查看有哪些用戶當前登錄在系統里。talk是一個老古董的UNIX標準工具,在某些場合下仍然非常有用。



telnet server



使用telnet協議連接到另外一台計算機。可以使用計算機名或者IP地址。你會要求輸入用戶登錄名和密碼??你必須在遠端計算機上有有效的用戶帳號和密碼。telnet將讓你連接到另外一台計算機上好像你就在使用那一台計算機的鍵盤(幾乎完全一樣)。telnet不是非常安全??你輸入的任何東西在網路上都是開放的文本模式,包括你的密碼!一個在「傳輸路徑」上稍微有點專業知識的系統管理員就可以閱讀你所輸入的內容。如果你要加密的傳輸,使用ssh(需要一些系統設置)。



rlogin server



(=remote login,遠程登錄)。這將使用你在當前登錄系統上使用的用戶名和密碼,如果登錄失敗將會提醒你輸入密碼。



rsh server



(=remote server) 連接到遠程計算機的另外一個辦法。這將使用你在當前登錄系統上使用的用戶名和密碼,如果登錄失敗將會提醒你輸入密碼。



ssh servername ?l username



(=secure shell,安全的shell)使用安全連接遠處登錄到另外一台計算機。ssh是安全的,因為它使用一對RSA「公共-私有」鑰匙壓縮所有傳送的數據。如果你沒有指定用戶名,它假設你使用當前的用戶名。



ftp server



ftp到另外一台計算機(還有一個ncftp帶有一些附加的功能,另外還有基於圖形用戶界面的gftp)。ftp對於從一台計算機上複製文件到另外一台計算機上非常有用。可以試著用「anonymous」(匿名)用戶如果你在遠程計算機上沒有有效帳號。建立連接之後,使用「?」查詢有效的ftp命令一覽。最基本的ftp命令有以下這些:



ls 查看遠程計算機上的文件

ASCII, binary 設置文件傳輸模式為「文本模式」或者「二進位模式」,選擇正確的模式非常重要

get 從遠程計算機上複製一個文件到本地計算機

mget 從遠程計算機上複製多個文件到本地計算機

put 從本地計算機上複製一個文件到遠端計算機

mput 從本地計算機上複製多個文件到遠端計算機

bye 結束連接



如果你要使用腳本文件實現自動化,你可以考慮ncftpput和ncftpget,舉例:



ncftpput ?u my_user_name ?p password ?a remote.host.domain.remote_dir *local.html



如果你的計算機在防火牆後面,ncftpput可能會有一些問題-你需要配置文件 /home/user_name/.ncftp/firewall。另外一個選擇,你也可以使用lftp來達到同樣目的:



lftp ?e 「mput ?a *local.html」 ?u my_username, my_password ftp://remote.host.domain



如果要保留ftp目錄的鏡像,可以使用命令fmirror:



wget -m --no-parent http://sunsite.dk/linux-newbie



從網站上複製文件。以上這個例子使用可選項-m(mirror,鏡像)從主站上獲得完整的文件集合。可選項「--no-parent」限制搜索子目錄里的文件。



minicom



minicom是一個專門給串列口設計的「終端模擬器」。看起來和用起來都很象「procomm」或者「telix」。對於串列口通信的故障診斷非常有用。



rx



使用Zmodem,Ymodem和Xmodem協議接收文件。Xmodem需要文件名。輸入rx ?help得到更多的信息。現在還有誰在使用這些協議?


5.10 文件壓縮和解壓縮

tar -zxvf filename.tar.gz



(=tape archiver,磁帶壓縮) 解壓一個你從網際網路上下載的tarball文件 (*.tar.gz or *.tgz)。



tar -xvf filename.tar



拆解一個tarred(但是沒有壓縮)的文件。



tar czvpf /var/backups/mybackup.tar.gz /home

cd /; tar xzvpf /var/backups/mybackup.tar.gz '*/myfile.rtf'



作為root用戶,創建一個/home目錄的備份壓縮文件。第二條命令顯示如何從備份恢復一個文件。在tarball文件里將不包含「點」文件(指的是以「 .」開頭的文件或者目錄)。要把所有文件解包,可以使用:tar cvzf filename.tgz * .[a-aA-Z]*



gunzip filename.gz



解壓一個壓縮文件(*.gz或者*.z)。如果你想把文件壓縮成這種格式,可以使用 gzip(還有zip或者compress命令)。注意一下gunzip有趣的發音聽起來象「gun zip」(大炮壓縮)。



zcat filename.gz | more



(=zip cat)顯示一個壓縮文件的內容。還有其他一些相關命令不需要預先解開壓縮文件就可以使用:zless, zmore, zgrep…等等。



bunzip2 filename.bz2



(=big unzip)解壓一個由bzip2壓縮工具壓縮的文件(*.bz2)。一般用於很大的文件。



unzip filename.zip



解壓一個由DOS下的PKZIP壓縮工具壓縮的文件(*.zip)



zip filename.zip filename1 filename2



把兩個文件「filename1」和「filename2」壓縮到一個壓縮文件叫做 「filename.zip」。



unarj e filename.arj



解壓一個使用arj壓縮的文件(*.arj)



lha e filename.lha

解壓一個使用lha壓縮的文件(*.lha)



uudecode -o outputfile filename



解碼一個使用uuencode的文件。uu-encoded在使用email傳送非純文本文件的時候應用非常廣泛(uuencoded把任何文件格式都變成文本文件)



cat filename | mimencode -o filename.mime

cat filename.mime | mimencode -u -o filname



(兩個命令)第一個命令把文件filename編碼成基於網際網路郵件7bit數據傳送標準的文件filename.mime。第二個命令把基於網際網路郵件7bit數據傳送標準的文件filename.mime解碼成一般文件filename。



ar -x my_archive.a file1 file2



(=壓縮存檔)。從壓縮文件my_archive.a解壓出文件file1和file2。ar壓縮工具更多的用於保存文件庫記錄。



ark &



(在X終端下)。一個圖形用戶界面的壓縮工具。也許是你管理壓縮文件所需要的方便工具。還有另外一個選擇是gnozip。


5.11 進程式控制制



ps



(=「print status」or 「process status」)列表顯示當前正在運行的進程的進程標識號(PID)。用ps aux查看你的系統上下在運行的所有進程(也包括其他用戶的進程和沒有終端控制的進程),每個進程都顯示其所有者的名字。使用「top」命令持續顯示當前正在運行的進程列表。



any_command &



在後台運行任務命令(符號「&」表示「在後台運行前面的命令」)。任務號(Job_number)(譯者註:和進程號)將顯示在屏幕上,你可以使用任務號將該任務調到前台(見下面)。當我從一個X終端啟動一個GUI程序時,我經常使用「&」。



jobs



列表顯示後台運行或是被停止了的進程並顯示它們的任務號。



fg job_number



將一個後台運行的或是被停止了的進程調到前台運行



bg job_number



將一個進程調至後台運行,這與在命令行用「&」啟動後台進程是完全一樣的。這將重新啟動一個被停止了的後台進程。一般可以用z來停止當前的前台進程。如果你有被停止的或後台運行的任務,你必須在命行輸入exit命令兩次,以從系統中註銷。



batch

at>updatedbd

在系統負荷低的時候執行任何命令(經常昌需要長時間完成的任務)。你可以從系統中註銷,但進程將繼續運行。當命令完成後,一封包含輸出信息的電子郵件將發送給你。在以上示例中,「at>」是一個提示符,將要執行的命令是updatedb,然後按來結束命令的輸入(你可以輸入很多命令提交執行,用來分隔它們)。



at 17:00



在指定時間執行命令。你將被提示輸入要執行的命令,直到你按d。相關的命令有atq(顯示由at啟動的進程隊列)和(從「at 隊列」中刪除一個進程)



kill PID



強制一個進程終止。首先要用ps確定終止的進程的進程標識號(PID)。



killall program_name

通過程序名終止一個(組)程序。例如:killall pppd將斷開你的撥號網路。



Nohup program_name

(=no hangup)。運行程序program_name,並使它在你註銷時不被中斷。輸出結果被重定向到你的用戶的主目錄下的nohup.out文件。在你確信不想運行一個交互程序的時候,使用nohup。



Xkill

(在X終端中)用滑鼠終止一個基於GUI的程序。(用你的滑鼠指到你要終止的進程的窗口並點擊)



kpm

(在X終端中)KDE進程管理程序



lpc

(由root用戶執行)檢查和控制印表機。輸入「?」可以查看命令列表。



lpq

顯示印表機隊列的內容。在你可從「K」菜單-實用程序(「K」menu-Utilities)中調用基於GUI的「印表機隊列」(「Printer Queue」)



lprm job_number

從列印隊列中刪除一個列印任務。



nice program_name

執行一個程序並調整及優先順序。因為在本例中沒有指定優先順序,將從預設優先順序(通常是0)增加10(進程將運行較慢)。較小的值,代表較高的優先順序。優先順序的取值範圍為-20到19。只有root用戶能指定負值。用top可顯示正在運行的進程的優先順序。



renice ?18 PID



(以root用戶運行)將一個正在運行的進行的優先順序調整為-18。普通用戶只能調整他們自己的進程,而且只能從當前值向上調(即使其運行變慢)。可以使用renice +10 ?u peter來減少用戶peter對CPU資源的佔用,這樣當他運行高強度運算任務時,使其他用戶不受到損害。



c,z,s和q也屬於本章內容,但它們在前面已經描述過了。簡單地說,它們表示停止當前命令,調度當前命令到後台運行,停止數據傳輸,恢複數據傳輸。



lsof



列表顯示已經打開的文件。如果你是root用戶,所有的打開的文件都將被顯示。使用lsof /dev/tty1你可以指定顯示由第一控制台所有的進程打開的所有文件。要想只顯示網路文件(對安全審計非常有用),你可以使用lsof ?I(以root用戶執行)。



Watch ?n 60 my_command



以60秒為間隔反覆執行my_command命令(預設間隔為2秒)


5.12 一些管理命令



su



(=substitute user id)採用超級用戶(=root)的身份(將提示你輸入口令)。輸入「exit」返回你先前的註冊。不要習慣於用身份在你的機器上工作。root帳戶是用於管理的,當你需要訪問管理帳戶時,su命令可以使你輕鬆進入。你也可以使用su命令去採用其他任何用戶的身份,例如:su barbara將你變成「barbara」(除非你是超級用戶,否則需要口令)。



Alias ls=」ls ?color=tty」

為命令產生一個別名,用增加一個關於顏色的格式。在這個例子中,別名也叫「ls」,只有當輸出被指向一個終端(而不是文件)時,color選項才被執行。如果你想讓系統上的所有用戶始終能使用這個別名,就把它寫到/etc/bashrc文件中。別名是定製你的系統的一種方便的方法。只輸入「alias」可以查看你的帳戶可使用的別名的列表。使用unalias alias_name可以刪除一個別名。



cat /var/log/httpd/access_log



顯示自從上次日誌文件被「轉動」(一般每天在cron程序運行時轉動一次)后,誰連接過你的http(apache)伺服器。前一次的日誌文件為access_log.1,再前一次的日誌文件access_log.2,依此類推。



cat /var/log/secure



(以root用戶運行)檢查重要系統日誌。如果你使用Internet訪問的話,定時檢查的一個很好的主意。



ftpwho



(以root用戶運行)檢查當前誰連接在你的ftp伺服器。



printtool



(在X終端上以root用戶運行)印表機配置工具。設置文件存放在/etc/printcap和/var/spool/lpd目錄下。



setup



(以root用戶運行)配置滑鼠、音效卡、鍵盤、和系統服務。許多發行套裝都有自己特定的配置實用程序,setup是Redhat的預設配置程序。Mandrake 7.0提供非常好用的DrakConf。



linuxconf



(以root用戶運行,在文本模式或是在X終端上)。在這裡你可以訪問和更改上百種網路設置。功能非常強大??一次不要改動太多東西,改動你所不清楚的項目時一定要小心。Redhat網路配置工具netconf是linuxconf的一個子集,因此它比較簡單而且很多時候容易使用。



mouseconf



(以root用戶運行)。一個配置滑鼠的簡單工具(在完成初始安裝后)。Mandrake也有一個類似的工具mousedrake。



kudzu



(以root用戶運行)。自動檢測和配置硬體。如果你的滑鼠(或是其他串列設備)有問題,你可能想要停用kudzu,這樣它在系統啟動過程中就不會運行(kudzu弄亂了我的系統,使我的滑鼠不能工作)。你可以在你需要時手動運行它。



timeconfig



(以root用戶運行)為你的系統設置時區。我的計算機的硬體時鐘保存的時間是UTC(協調世界時,也稱GMT或格林威治時間)。這樣,我避免了任何在轉換時區時(由夏時制、通過網路跨洲傳送文件或是旅行外出引起的)可能發生的問題。時慣上在伺服器上使用UTC時間來避免時間「倒流」(有時會引發一些問題)。文件的時間戳總是保持使用UTC時間,並使用時區信息來顯示當地時間。例如,許多應用程序(如編譯器,資料庫)是依靠比較文件的時間戳來區分新的文件與舊的文件的。保證時區信息正確是很重要的。我將當地時間作為BIOS時間來避免發生問題的唯一原因是,當我的從一台計算機上進行雙重啟動,而其它操作系統(MS Windows?)不知道如何處理UTC。然後,我通過選擇「Hardware clock set to GMT」來告訴Linux伺服器,這Linux樣在需要UTC時,可以計算出來。



setclock



(以root用戶運行)。從當前linux系統時間設置計算機硬體時鐘。首先,使用「date」命令設置Linux系統時間。例如,我可以將日期和時間改為2000-12-31-23:57,使用命令:

date 123123572000

然後將時間寫到硬體時鐘,使用命令:

setclock



dateconfig&



(在X終端上,以root用戶運行,否則將提示你輸入root用戶口令)。一個非常棒的GUI實用工具,用於設置操作系統時間、硬體時鐘和時區信息,告之BIOS使用UTC時間,而不需要前面的兩個命令。



Xvidtune



(在X終端上)調整所有分辯率下的顯示器設置,以消除黑帶,上下左右調整顯示,等等。(首先使用顯示器自身的調整按鈕,使得文本模式在屏幕上正確顯示)。然後用xvidtune針對每種分辯率調整顯示頻率,使其在屏幕上正確顯示。為了使改動保持下去,在屏幕上顯示頻率,然後將它們傳送到/etc/X11/XF86Config設置文件中。在較新型的顯示器上,你可能更願意使用顯示器的內建設置來調整你的顯示器,xvditune主要是給那些沒有記憶設置參數的功能的老式顯示器用的。



Kvideogen



(在X終端上)為定義你的屏幕分辯率產生「模式行」。在產生設置文本(「模式行」)后,你可以將其複製-粘貼到的設置文件/etc/X11/XF86Config中(或是/etc/X11/XF86Config-4,如果你使用X-sever 4.00版本)。另見快捷鍵<+>。



SVGATextMode 80x25x9

SVGATextMode 80x29x9



(以root用戶運行)修改文本終端的文本分辯率。在示例中(第二行)我我將文本屏幕改為80列x29行,字元高度為9像素。第一行定義的是一個常用的分辯率,這樣第二行命令在系統上不能工作,我能通過按兩次(譯者註:上箭頭)和來重新控制屏幕。可以使用哪些模式取決於你的顯示卡和你的顯示器的刷新頻率??需要編輯文件/etc/TextConfig(以root用戶運行),去掉相應行前面的註釋符,使SVGATextMode知道系統支持哪些模式。



SuperProbe



(以root用戶運行)一個檢測顯示卡類型和內存數量的實用工具。



cat /var/log/Xfree86.0.log



一個對檢測X-window設置過程中的錯誤非常有用的日誌文件。文件名中的「0」表示「顯示方式0」-如果你需要「顯示方式1或2等」的日誌文件,你需要相應地修改文件名。



lspci



顯示主板信息和PCI擴展槽內都插了哪些卡。我的舊的計算機有ISA(或EISA)插槽,沒有PCI。



lsdev



顯示硬體信息(DMA,IRQ,IO埠)



lsof|more



顯示系統上打開的文件。



kernelcfg



(在X終端上以root用戶運行)增加、刪除核心模塊的GUI工具。每個模塊就象一個設備驅動程序?Linux內核中支持一個設備或功能的一段程序。你在命令行使用insmod命令也可以完成同樣的工作。



lsmod



(=list modules)顯示當前載入的核心模塊。一個模塊就象一個設備驅動程序-它對一個硬體或一個特性提供操作系統核心支持。



modprobe ?l|more



列出系統內核的所有可用模塊。哪些模塊可用是由如何編譯Linux核心決定的。幾乎每一種可能的模塊特性都可以被編譯到內核中,以「硬連接」(可能會快一點,但不能刪除)或「模塊」(可能會慢一點,但可以根據需要裝載/刪除),或「無「(根本不支持這個特性)等方式。系統核心所支持的模塊(編譯過的)都以文件的形式存在/lib/modules(及其子目錄)下,當你丟失模塊時,你可以流覽這些目錄,可以找到線索。如果系統核心不支持你所需要的模塊,你可以啟用該模塊並重新編譯系統核心(這是因為原裝的核心都只包括常用的模塊,沒有預編譯一些試驗性的模塊。還有,如果你有一些該死的邊緣硬體…)。 



modprobe sb



裝載soundblaster(sb)模塊。使用前面的命令來查找已經載入的核心模塊。



insmod parport

insmod ppa



(以root用戶運行)向內核中插入模塊(一個模塊大致相當於一個DOS設備驅動程序)。平常,我用「modprobe」(見前面的命令)來插入模塊 。這個例子展示如何為支持一個外置並口100MB ZIP驅動器來插入模塊(好像在RH6.0和6.1下,外部ZIP驅動器以其他方式工作都會有問題)。對於250MB外置ZIP,可用imm模塊來代替ppa模塊。



rmmod module_name



(以root用戶運行,但不是必須)從系統核刪除module_name模塊。



depmod ?a



(以root用戶運行)為核心建立模塊依賴關係表。除非你想/etc/modules而不想重新啟動系統,否則不必要。



setserial /dev/cua0 port 0x03f8 irq 4



(以root用戶運行)將一個串列介面設置為非標準設置。這個例子顯示第一個串口的標準設置(cua0或ttyS0)。第二個串口(cua1ttyS1)的PC標準設置為:埠地址0x02f8,中斷3。第三個串口(cua2或ttyS2)為:0x03e8,中斷4。第四個串口(cua3或ttyS3)為:0x02e8,中斷3,。如果你要它們在啟動時即被設置,將這些設置加到文件中。詳見man setserial。



Tunelp



(以root用戶運行,很少用到)調整并行埠。



/sbin/chkconfig ?level 123456 kudzu off



(以root用戶運行)用來檢查/啟用/禁用在各個運行級下自動啟動的系統服務的工具。一般情況下,如果我需要在當前運行級下啟用/禁用一個服務,我只用Redhat ntsysv實用程序,但chkconfig給了我更多的靈活性。另外一個可用的工具是(基於X界面)。這個例子展示如何禁用kudzu服務,使它在任何運行級都不啟動(它弄亂了我的一台機器上的滑鼠設置)。顯示在所有運行級下啟動/停止的服務,我使用:



chkconfig ?list|more



檢查服務的當前狀態,我使用:



service ?status ?all



立即啟動一個服務,我可以使用一些東西,像(啟動一個ftp伺服器):



service su-ftpd start



重新啟動網路服務(如:在我修改了它的配置后),我可以用:



service smb restart



symlinks ?r ?cds /



(以root用戶運行)檢查和修改系統上的符號鏈接。從根開始,遍歷所有的子目錄(選項 ?r=「rescuer」)修改絕對路徑鏈接雜亂鏈接為相對鏈接,刪除空懸鏈接,縮短超長鏈接(選項 -cds)。如果你的文件系統覆蓋幾個不同的硬碟分區,你需要為每個分區重新運行這個命令(如:symlinks ?r ?cds /usr)。



cd /usr/src/linux-2.4.7-20

make xconfig



(在X終端上以root用戶運行)一個漂亮的GUI前端工具,可在編譯自定義內核的準備過程中配置內核選項。(例子中的目錄名中包含我的的版本號,如果你的內核版本號不是本例中的,你需要修改你的目錄名。你需要「Tk」解釋器來地,並且安裝了核心的源代碼)。「make xconfig」的其他實現方法是「make config」(在文本模式下運行一個腳本,並回答一些問題)和「make menuconfig」(運行一個基於文本菜單驅動的配置工具)。

更多信息;Less /usr/share/doc/HOWTO/Kernel-HOWTO

在使用「」完成新內核的配置選擇后,你要執行以下命令來編譯新的內核;

make clean(這是一個可選的命令;它清除舊的目標文件,它可能會延長編譯過程,但在一些情況下它可以阻止一些問題的發生)



make dep

make bzImage



最後的命令需要一些時間來完成(可能是10分鐘或是2個小時,這取決於你的硬體)。它產生文件arch/386/boot/bzImage, 即是你的新內核。接下來:

make modules

make modules_install

現在新內核安裝在/lib/modules/KernelName



如果你想運行多個內核的時候,不要改動模塊目錄的名字-內核必須能夠找到與其匹配的模塊。如果你想改變內核的名字,你必須編輯主內核makefile文件(如:/usr/src/linux-2.2.14/Makefile),修改最開始的幾行。我的文件(預設TH 7.2)是:

VERSION = 2

PATCHLEVEL = 4

SUBLEVEL = 7

EXTRAVERSION = -10custom



可以用來顯示當前運行的內核的名字。我的是。



我「原裝」的RedHat內核配置在/boot/config-2.4.28-24(RedHat 8.0)文件中,同時一些附加的「custom」內核設置在目錄/usr/src/linux-x.x.x./configs中。我可以從命令的對話框中載入它們中的任何一部分。



現在我能安裝新內核。安裝過程涉及到將新內核複製(同時改名)到目錄中:



cp arch/386/boot/bzImage /boot/vmlinuz-2.4.7-10custom

cp System.map /boot/System.map-2.4.7-10custom



並修改/etc/lilo.conf或/boot/grub/grub.conf,這樣在啟動時我可以選擇用哪一個內核(新的或舊的)引導。強烈建議保存舊內核做為一個引導的選項(萬一新內核拒絕引導)。

如果你使用initrd(initial ram disk)做兩階段引導,你還需要生成一個包含在啟動過程中內核用到的模塊的映像:



mkinitrd /boot/initrd-2.4.7-10custom.img 2.4.7-custom



看一下如何給內核打補釘,快速參考:



cd /usr/src/linux-2.4.7-10

patch ?E ?p1 < /home/download/the_patch_to_apply



閱讀/usr/doc/HOWTO/Kernel_HOWTO也會有所幫助,man depmod也行。配置、編譯和安裝一個新內核非常簡單,但它也能導致許多問題。編譯內核也是檢測你的硬體的一個好方法,因為它涉及到相當大量的計算。如果你的硬體整合得不好的話,你會收到「signal 11」錯誤(請閱讀/usr/doc/FAQ/txt/GCC_SIG11/FAQ)。



ldconfig



(以root用戶運行)為動態鏈接庫的載入程序(「ld」)重新產生聯接和緩存區。當你在系統上安裝一個新的動態鏈接庫的后,你也許想要運行ldconfig。(每次當你引導計算機的時,它都會重新運行一遍,所以如果你重新啟動,就不必再人為運行一遍了)。



mknod /dev/fd0 b 2 0



(=make node,以root用戶運行)手動創建一個設備文件。這個例子展示的是創建一個與你的第一個軟碟機設備相關聯的設備文件,當你意外地刪除了該設備的時候,它會十分有用。選項是:b=塊設備,c=字元設備,p=FIFO設備,u=無緩衝字元設備。兩個整數指定了主設備號和次設備號。平時我也不知道mknod需要哪些參數。要創建設備時,我先閱讀man MAKEDEV來找出設備的名字,然後運行/dev/MAKEDEV腳本文件,這個腳本文件可根據名字知道是何種設備??見下一個命令。如果提到的手冊沒有幫助的話,我推薦包含內核源代碼的最終文檔:

less /usr/src/linux/Documentation/devices.txt



cd /dev

./MAKEDEV audio

(以root用戶運行)恢復「audio」設備,我剛好把它搞得有點不靈了。也可見前面的命令。


5.13 硬碟和軟盤實用工具



fdisk /dev/had



(=「fixed disk」,以root用戶運行)Linux硬碟驅動器分區工具(DOS有一個同名的工具)。在上面的例子中,我指定要對第一個IDE介面上的第一個硬碟進行分區,因此是「hda」。如果我是你,我會在對任何分區使用之前備份所有重要數據。我不知道有誰喜歡用fdisk(無論是Linux,還是DOS版本)??我更喜歡簡單易用的cfdisk,見下一個命令。



cfdisk /dev/had



(以root用戶運行)基於菜單的硬碟驅動器分區工具。比更容易使用(見前一個命令)。物理驅動器包括基本分區(每個硬碟上最多4個),和邏輯分區(數量上沒有限制)。一個基本分區是可以引導的。邏輯分區必須包含在「擴展分區」中;擴展分區不能使用其本身,它們只是邏輯分區的一個容器。當對一個硬碟進行分區時,一般我會:(1)創建一個基本分區,(2)使這個基本分區可以引導,(3)創建一個擴展分區,(4)在擴展分區中創建邏輯分區。



sfdisk ?l ?x |more



(以root用戶運行)列出你的系統上的所有驅動器的分區表(包括擴展分區)。



parted /dev/had



Linux(ext2)和DOS(FAT和FAT32)硬碟分區的處理工具。它可以創建、刪除、移動、複製、壓縮和擴展分區。你在使用它之前應該備份你的數據並仔細閱讀info parted。



fdformat /dev/fd0H1440

mkfs ?c ?t ext2 /dev/fd0



(=floppy disk format, 兩個命令,以root用戶運行)對第一個軟碟機(dev/fd0)中的高密度軟盤(1440KB)執行低級格式化。然後建立一個文件系統(-t ext2),檢查/標出壞塊(-c)。建立文件系統相當於高級格式化。你還可以將軟體盤格式化成不同的密度(非標準的);試一下 ls /dev/fd0。你能夠使用fdformat /dev/fd0格式化成預設密度(一般是1440K)。



badblocks /dev/fd01440 1440



(以root用戶運行)對一張高密度軟盤進行壞塊檢查並將結果顯示到屏幕上。參數「1440」指定了要檢查1440塊。這個命令不修改軟盤。bakblocks也可對用來對硬碟表表進行檢查,但是在我進行全面讀-寫檢查之前,我必須先將文件系統卸下:

mount [查出哪個設備包含我要進行壞塊檢查的磁碟分區]

umount /dev/hda8 [卸下選定的分區]

badblocks ?n /dev/hda8 [以非破壞讀-寫方式檢查選定的分區,這樣我的數據就不會被刪除了]

mount /dev/hda8 [如果沒有壞塊信息顯示出來,將該分區安裝回去]

如果發現壞塊,它們能夠被在硬碟上標記出來,這用它們就不會再被使用了:

e2fsck ?c /dev/hda8



fdck ?t ext2 /dev/hda2



(=file system check,以root用戶運行)檢查和修復文件系統,例如在由於電源故障導致的「不幹凈」關機之後。上面的這個例子執行對分區hda2的檢查,文件系統型為ext2。你必須卸下分區或以「單用戶模式」(在LILO提示符處輸入「linux single」或以用戶使用 init 1 來進入單用戶模式)引導來執行這個命令。如果在文件系統檢查過程中發現錯誤,我選擇預設設置來修復。



Tune2fs ?j /dev/hda2

(以root用戶運行, 只用於支持ext3的內核—RH7.2)調整文件系統的可調參數。上面的這個例子展示如何一個磁碟分區(本例為hda2)增加日誌,成功地將文件系統轉為ext3(日誌)文件系統。要完成這個轉換,你還須編輯/etc/fstab文件,將文件系統類型由ext2改為ext3,否則你將遇到問題??ext2不能安裝一個非正常關閉的日誌文件系統。要檢查文件系統的類型,使用mount(無參數)或cat /etc/mtab。如果你需要關於的更多信息,試一下:

http://www.symonds.net/~rajesh/howto/ext3/ext3-6.html

tune2fs的其它參數可以讓你添加一個卷標籤,調整安裝文件系統(被檢查過)的數量(最大安裝數),或激活定時文件系統檢查(很少用到)。



dd if=/dev/fd0H1440 of=floppy_image

dd if=floppy_image of=/dev/fd0H1440



(兩個命令,dd=」data duplicator」)在當前目錄下創建一個軟盤的映像文件,名為「floppy_image」。然後將floppy_image(文件)複製到另一張軟盤。功能像DOS中的「DISKCOPY」。



mkbootdisk ?device /dev/fd0 2.4.2-3



製作一張應急引導軟盤。在系統安裝過程中你會被問到是否要製作一張引導盤。以上命令展示在安裝后如何製作啟動盤,使用第一個軟盤驅動器(/dev/fd0)。你可以運行uname -a或ls /lib/modules來知道內核名字(命令中需要,這裡是2.4.2-3)。


5.14 用戶帳戶和文件許可權管理



useradd user_name

passwd user_name



(以root用戶運行)創建一個新帳戶(你必須是root用戶)。例如: useradd Barbara。在接下來的一步別忘了為新用戶設置口令。用戶的主目錄(被創建的)是 /home/user_name。 你也可以用一個等價的命令adduser user_name



ls ?l /home/peter

useradd peter ?u 503 ?g 503

(以root用戶運行)創建一個用戶來匹配一個已有目錄(可能是以前安裝中的)。如果用戶ID和組ID(每個文件顯示出來的)以前都是503,那麼我用匹配的用戶名,用戶ID(UID)和組ID(GID)來創建用戶。這樣在系統升級后可以避免由於改變用戶文件的所有權而引起的混亂。



userdel user_name



刪除一個帳戶(你必須是root用戶)。用戶主目錄和未發送郵件必須單獨處理(人工處理,因為你必須決定如何處理這些文件)。還有一個命令groupdel來刪除組。



groupadd group_name



(以root用戶運行)在你的系統上創建一個新組。在一個家用計算機上不是必須的,但對於有少量用戶的家用計算機是十分方便的。



例如,我能夠創建一個「friends」組,使用:



groupadd friends



然後編輯文件,將我的名字和朋友的名字加到組的列表中的一行,最後一行看起來像這樣:

friends:x:502:stan,pete,marie

然後,我改變一個指定文件的許可權,這樣這個文件就屬於我和組「friends」。

chgrp friends my_file

這樣,這個組的成員就有訪問這個文件的特殊許可權,而其他人則沒有,改變讀和寫許可權的例子如下:

chmod g=rw o= my_file

另外一種做法是將寫的許可權賦予所有用戶,即使是在家庭電腦上絕對是不安全的。



groups



列出當前用戶所屬的的組。我還可以使用groups john來找出用戶john所屬的組。



usermod

groupmod



(以root用戶運行)兩個命令行工具,用於修改用戶帳戶和組,而不用修改相關文件:/etc/passwd, /etc/shadow, etc/group /etc/gshadow。一般是不必要的。



userconf



(以root用戶運行)菜單驅動的用戶配置工具(口令政策、組信息更改、增加用戶等)。它是linuxconf包的一部分,但可以單獨運行。



passwd



修改當前帳戶的口令。如果你是root用戶,你能為任何用戶修改口令,使用命令:passwd user_name



chfn



(=」change full name」)修改你的信息(全名,辦公室房間號,電話號碼,等等)。用finger命令運行於你的login_name,便會顯示這些信息。



change ?M 100 login_name



(=」change age」)將用戶的口令有效期設為100天。



quota username

setquota username

quotaon /dev/had

quotaoff /dev/had



管理用戶磁碟限額的一組命令。一般在家中電腦上不用。「Disk quota」意思是每個用戶使用磁碟空間的限制。這些命令分別是顯示用戶限額,設置用戶限額,在一個給定的文件系統(本例是/dev/hda)上啟用限額系統,關閉限額系統。我所見過的典型的發行套裝的預設設置:對所有用戶沒有限制,所有文件系統上的限額系統都關閉。



kuser



(以root用戶運行,在X終端上)使用一個GUI程序管理用戶和組。好用且基本包括你平常管理用戶帳戶的命令。



chmod perm filename



(=change mode)修改你的文件的訪問許可權(除非你是root用戶,你可以修改任何文件)。你能夠以三種方式(讀()、寫()、執行())訪問三個級別(所有者()、文件所有者同組成員()、系統上其他人())的用戶的文件。檢查當前訪問許可權,使用:



ls ?l filename



如果這個文件可以為所有用戶以所有方式訪問,其許可權顯示為:rwxrwxrwx

第一個三位表示文件所有者的許可權,第二個表示擁有這個文件的組的許可權,第三個表示其他人的許可權。沒有許可權顯示為「-」。



當設置許可權時,以下符號被用到:「u」(=用戶或文件所有者),「g」(擁有文件的組),「o」(其他人),「a」(所有人,如所有者,組和其他人),「=」(設置許可權為),「+」(增加許可權),「-」(取消許可權),「r」(讀文件的許可權),「w」(寫文件的許可權,代表修改文件的許可權),「x」(執行文件的許可權)。



例如,這個命令為所有的用戶增加讀文件的許可權:

chmod a+r junk

這個命令將取消所有用戶執行文件的許可權:

chmod o-x junk



你也可以去這裡,有更多的信息。

你可以用命令umask(參閱man umask)為你創建的新文件設置預設許可權。



Chown new_ownername filename

Chgrp new_groupname filename

改變文件的所有者和組。在你複製一個文件供其他人使用時,你應當使用以上兩個命令。只有文件的所有者才能刪除它。



lsattr files



列表文件屬性。不常用到,因為很多最有趣的屬性還沒有實現。屬性可以用命令來修改。這些屬性是:A(=修改文件時不要更新時間),S=(同步更新),a(=此文件只能追加),c(=在內核級上壓縮文件,尚未實現),i(=不變的文件), d(=不可轉儲),s(=安全刪除)和u(不可刪除,尚未實現)。一個有趣的用法是使一個文件不可刪除,即使root用戶也不行(除非設置者清除該屬性)。



Sudo /sbin/shutdown ?h now



(作為一個普通用戶,會被提示輸入用戶口令)運行「shutdown」命令(或另外一個系統管理員授權你可以運行的命令)。使用,系統管理員可能授權指定用戶執行指定命令,而不用出示root用戶口令。/etc/sudoers文件必須被置為類似如下內容:

my_login_name my_host_computer_name=/sbin/shutdown



pwck

grpck



(以root用戶運行,兩個命令)驗證口令文件和組文件的完整性。



pwconv

grpconv



(以root用戶運行)可能你不需要這些命令。它們將舊格式的口令和組文件轉換成更安全的「shadow」文件。


5.15 程序安裝



rpm ?ivg package_name-version.platform.rpm



(以root用戶運行)安裝一個軟體包(選項「i」,必須是破折號(dash)後面的第一個字母),採用交互方式(選項「v」=verbose)並以數值方式顯示安全進程(選項「h」)。rpm代表「RedHat軟體包管理器」



rpm ?Uvh package_name-version.platform.rpm



(以root用戶運行)升級(選項「U」,必須是破折號(dash)後面的第一個字母)一個軟體包,採用交互方式(選項「v」)並以數值方式顯示安全進程(選項「h」)。



rpm ?ivh ?force ?nodep package_name-version.platform.rpm



(以root用戶運行)安裝一個軟體包,忽略任何可能的沖沖和包依存關係問題。



rpm ?e package_name

(以root用戶運行)卸載(選項「e」=刪除(erase))軟體包package_name。請注意在軟體包名稱最後沒有「-version.platform.rpm」(軟體包名稱與用來安裝它的*.rpm文件名一樣,只是沒有了破折號、版本、平台和「rpm」)。



rpm ?qpi package_name-version.platform.rpm



查詢(選項「」,必須是破折號(dash)後面的第一個字母)還沒有安裝的軟體包(選項「p」),顯示軟體包包含的信息(選項「i」)。



rpm ?qpl package_name-version.platform.rpm



查詢(選項「」,必須是破折號(dash)後面的第一個字母)還沒有安裝的軟體包(選項「p」),顯示軟體包包含的全部文件的列表(選項「l」)。



rpm ?qf a_file



查找文件「a_file」所屬的已安裝的軟體包。如果你偶然刪除了一個文件,現在需要找到正確的軟體包來重新安裝,這個命令很有用。



rpm ?qi package_name



查詢已安裝的軟體包,顯示其自身的信息。請注意,請注意在軟體包名稱最後沒有「-version.platform.rpm」



rpm ?qai | more



查詢並顯示系統上安裝的所有的軟體包的信息。在我的簡單的系統上,我安裝了大約600多個軟體包,很顯然,我必須花很多時間來閱讀它們的信息。要查一下你的軟體包的數量,試試:

rpm ?qa | grep ?c 『』

要找出一個指定的軟體包,試:

rpm ?qa | grep ?I the_string_to_find

(選項 ?i 使grep命令忽略了字元的大小寫,所以無論是大寫,還是小寫,都會匹配的)



rpm ?Va



檢驗(選項「V」)我的系統上所有的(選項「a」)軟體包。它列出自安裝后被改動過的所有文件。下面是一些關於輸出的解釋:



. 測試通過

C 這是一個配置文件

5 MD5 校驗實敗

S 文件大小不同

L 符號鏈接已經改變

T 文件修改時間已經改變

D 設備文件被修改

U 擁有文件的用戶已經改變

G 擁有文件的組已經改變

M 文件模式(許可權和/或文件類型)已經被修改



kpackage

gnorpm

glint



(在X終端上,如果你想能夠安裝軟體包,以root用戶運行,3個命令)Redhat軟體包管理器(rpm)的GUI前端。RH5.2中glint的現在看來太舊了。gnorpm是「正式的」GUI軟體包安裝程序,老的版本非常慢並且很難懂,但是新的版本(RH7.0中的)有了很大的改善。kpackage是「正式的」KDE程序,且一直都非常好用。用它們中的任何一個都以查看系統上安裝了哪些軟體包,不有哪些Redhat CD上有但還沒安裝,顯示軟體包的信息,如果你想的話還可以安裝它們(安裝必須由root用戶來進行)。


5.16 訪問磁碟驅動器/分區



mount



關於裝載驅動器的細節見這裡。以下的命令展示一些例子。



mount ?t auto /dev/fd0 /mnt/floppy



(以root用戶運行)裝載軟碟機。/mnt/floppy目錄必須存在,而且是空,並不能是你的當前目錄。在/etc/fstab中不必有設置,因為你是root用戶而且在命令行提供了所有需要的信息。文件系統的類型將被自動檢測。



mount ?t auto /dev/cdrom /mnt/cdrom



(以root用戶運行)裝載CD。你可能需要創建或修改/dev/cdrom文件,它取決於你的CDROM在哪兒。/mnt/cdrom目錄必須存在,而且是空,並不能是你的當前目錄。



mount /mnt/floppy



(以普通用戶或root用戶運行)以用戶的身份裝載軟碟機。在/etc/fstab中必須設置。/mnt/floppy目錄不能是你的當前目錄



mount /mnt/cdrom



(以普通用戶或root用戶運行)以用戶的身份裝載CD。在/etc/fstab中必須設置。/mnt/cdrom目錄不能是你的當前目錄



umount /mnt/floppy



卸載軟碟機。目錄/mnt/floppy不能是你(或其他任何人)的當前工作目錄。取決於你的設置,你可能不能卸載一個別人裝載的驅動器。



Mount /mnt/hda1 /mnt/dos_drive1



從本機硬碟裝載一個DOS(MS Windows)分區。


5.17 網路管理工具



netconf



(以root用戶運行)一個非常好的菜單驅動的網路設置工具。



ping machine_name



檢驗你是否能和其他機器相連(給出機器名或IP),當結束的時候按C(如果不按C,命令將一直執行)象所有的Linux命令一樣,ping有許多選項,包括「ping of death」攻擊,看起來你可以ping許多伺服器,導致它們死機??試一下選項 -f 和 -s。



route ?n



顯示內核路由表。



host host_to_find

nslooup host_to_find

dig ip_to_find



(三個命令,用任意一個)在預設域名伺服器(DNS)上查詢一個Internet名字(或IP地址)host_to_find。用這個方法你可以檢查你的DNS是否工作。如果你只知道一個主機的IP地址,你還可以查出它的名字。



traceroute host_to_trace



查看你的信息到達host_to_trace的線路。(可以是主機名字或IP地址)



mtr host_to_trace



(以root用戶運行)一個強大而好用的工具,結合了舊的ping和traceroute的功能(RH 7.0)。



nmblookup ?A ip_address



查看一個聯網的MS Windows主機(用NetBIOS名字)的狀態。這個命令與Windows的nbtstat命令是等價的。



ipfwadm ?F ?p m



(RH 5.2命令,RH6.0見下一個命令)為保護本機設置防火牆IP轉發策略。(不是很安全,但是簡單)。目的:你的家庭網路的所有機器在外界看起來是一台十分繁忙的機器,而且如你被允許從所有的計算機上同時瀏覽Internet。



echo 1 > /proc/sys/net/ipv4/ip__forward

ipfwadm-wrapper ?F ?p deny

ipfwadm-wrapper ?F ?a ?m ?S xxx.xxx.xxx.0/24 ?D 0.0.0.0/0

(三個命令,RH 6.0)。與前一個命令相同, 用你的家庭網路分配給你的機器的「C」類地址替換那些x。更多的詳細信息見這裡。



ipchains ?P forward DENY

ipchains ?A forward ?s xxx.xxx.xxx.0/24 ?d 0.0.0.0/0 ?j MASQ

(兩個命令,RH 7.0)與前面的命令一個,但是在RH 7.0下工作。



ipchains ?L



列出所有的防火牆規則。用來檢查你的防火牆設置是否工作。



iptables ?L



Linux內核2.4.x使用新的防火牆」iptables」(IP列表)。上面的例子列出防火牆規則。



firewall-config



(以root用戶運行,在X終端上)建立你的自定義防火牆的GUI工具。



ifconfig



(以root用戶運行)顯示當前激活的網路介面(ethernet,ppp,等等)。你的第一塊網卡顯示為

eth0,第二塊網卡為eth1,等。通過數據機的第一個埠為ppp0,第二個埠為ppp1,等等。「lo」是「loopback only」介面,它總是處於激活狀態。使用選項(詳見ifconfig --help)來設置介面。



ifup interface_name



(以普通用戶運行/sbin/ifup)啟動一個網路介面,例如:



ifup eth0

ifup ppp0

ifup ppp1



只有當在ppp設置中授予許可權(使用netconfig)時,用戶才能啟動或關閉ppp介面。要啟動一個ppp介面(撥號連接),我一般使用KDE「K」菜單中的kppp(或在X終端上輸入 kppp)。



/etc/rc.d/init.d/network restart

使用正常初始化腳本重新啟動網路(與系統引導過程中的一樣)。這對於你只是手工修改了網路設置是很有用的。Init.d中列出的其他的服務也可以相似方法停止、啟動或重啟動(用stop,start或restart選項調用腳本)。



ifdown interface_name



(以普通用戶運行/sbin/ifdown)。關閉網路介面,如:ifdown ppp0。也可參見前面的命令。



顯示關於你的網路狀態的信息。



(以用戶運行,如果你希望在X終端上使用基於的界面)。結合了traceroute和ping的功能的網路診斷工具。在RH 7.0版本中。



nmap ip_number



顯示ip_number機器上的埠映射。對於建立你的網路設置的安全真的十分有用,因為你可以看到開放的埠。nmap包括在RH7.0「Linux PowerTools」CD上,是一個非常方便的GUI前端,「nmapfe」。namp還能做操作系統的「指紋」。一般情況下,人們(和他們的ISPs)不喜歡他們的計算機埠被掃描(他們視它為可能是攻擊前的搜索)。所以他們一發覺就會抱怨,如果你在你自己的計算機上練習怎樣使用nmap,你的ISP(一般都找他們抱怨)可能很快就會找你的。我是怎麼知道的?



ethereal



(在X終端上,以root用戶運行)網路分析工具??查看通過你的計算機的網路流量。包括在RH7.0「Linux PowerTools」CD上,在某些場合使用ethereal可能是違反規定的,在工作場合非授權使用可能會導致被解僱。



tcpdump ?i ppp0 ?a -x



(以root用戶運行)以ASCII碼和十六進位顯示所有通過第一個電話撥號介面的網路流量。可能會顯示很多。是一個相當原始的工具,但它很實用,可以用來建造你所需要的自定義的監聽和日誌工具。


5.18 與音樂有關的命令



cdplay play 1



播放音頻CD的第一首曲目。使用cdplay播放整個CD。當你聽夠了的時候,使用cdplay stop。



eject



得到一個免費的咖啡杯托盤。:)))。(彈出CDROM托架)。這個命令對是預設的,但也能用來從指定的安裝點或設備來彈出可移除的介質。如:我可以從一個並口(外置)的zipdrive彈出

zipdisk(以root用戶運行),使用:eject /dev/sda4



play my_file.wav



播放一個wav音頻文件。



rec my_file.wav



從麥克風錄製一個wav音頻文件。



mpg123 myfile.mp3



播放一個mp3文件。



mpg123 ?w my_file.wav my_file.mp3



從一個mp3音頻文件生成一個wave音頻文件。如果你想把一些mp3文件寫到一個正常的音頻CD上,這個命令非常有用??你首先要把mp3文件轉為 *.wav格式。不要驚訝轉換速非常之慢??解壓 mp3文件是需要高強度的CPU運算的。



xmms &



(在X終端上)非常好的GUI mp3播放器。



freeamp &



(在X終端上)另一個非常好的GUI mp3播放器。



lame input_file output_file



MP3 編碼器。你可能需要自己下載和安裝這個程序(Linux標準發行版本不提供這個程序,是因為有關MP3壓縮技術的專利的無妨爭議)。



knapster



(在X終端上)啟動程序下載MP3文件,這些文件是其他napster用戶共享出以供下載的。你可以將你的MP3文件共享出來。當使用它時,感覺相當cool。Gnutella和FreeNet將很快取代它們->那種感覺更cool。



cdparanoia ?B 「1-「



(CD抓軌工具)讀出一個音頻CD的內容,將其轉存成當前目錄的wave音頻文件,每個文件一首曲目。「1-」選項代表「從第一首曲目到最後一首」。-B選項強制將每首曲目放到一個單獨的文件。



grip&



(在X終端上)一個GUI界面的抓軌工具(見前面一個命令)。



playmidi my_file.mid



播放一個MIDI文件。playmidi ?r my_file.mid將在屏幕上顯示文本模式的效果。



sox audio_file another_format_audio_file

=Sound exchange man sox sox



kscd



(在X終端上)CD播放器。



kmidi



(在X終端上)MIDI播放器。



kmid

(在X終端上)MIDI/卡拉OK播放器。



kmix



(在X終端上)聲音混響器。



studio&



(在X終端上)音效工作室??編輯聲音文件,增加效果,等等。你可以從RH 7.x的PowerTools CD上得到。



extace&



(在X終端上)聲音可視化工具。



festival ?tts my_file.txt



讀文件my_file.txt的內容(ASCII碼文本)。「festival」是一個語音合成器,發行在RedHat 7.0 「Linux PowerTools」 CD中。要從命令行讀出一些東西,你需要啟動「festival」,然後在「festival>」提示符處,輸入適當的命令(「scheme」語言解釋器),如在這個例子中(黑體代表提示符):

festival

festival>(SayText 「good dog, really good dog」)

festival>(quit)


5.19 與圖形相關的命令



kghostview my_file.ps



(在X終端上)在屏幕上顯示一個postscript(或pdf)文件。我也能用看起來比較舊的ghostview 或gv來達到同樣的效果。我也能夠從視窗中列印postscript文件。



xpdf my_file.pdf



(在X終端上)查看一個pdf文件。要查看pdf文件,我更願意使用Adobe Acrobat Reader的 Linux版本(會快一些)。

acroread my_file.pdf

你可以從http://www.adobe.com/products/acrobat/readstep2.html下載它。



enscript my_file.txt ?U 2



將一個文本文件轉換為postscript格式並在預設印表機上列印出來。我還能將輸出發送到一個 postscript文件。

enscript my_file.txt ?U 2 ?o my_file.ps

選項-U 2使enscript在一張紙當列印2頁邏輯頁面,這樣可以節省紙張,並帶來方便,壓縮列印輸出。你還可以選擇每頁紙4頁邏輯頁,一頁紙上列印得越多,就越難認。 Enscript真的很靈活,詳見man enscript,在許多格式選項中進行選擇。



ps2pdf my_file.ps my_file.pdf



從一個postscript文件生成一個pdf(Adobe portable document format)文件。



mpage ?2 my_file.ps > new_file.ps



列印postscript文件my_file.ps,在一個物理頁上輸出兩個邏輯頁。將輸出結果保存在文件new_file.ps中。



ps2ps file.ps new_file.ps

psnup ?nup 2 ?pletter new_file.ps new_file2.ps



生成一個物理頁上包含兩個邏輯頁的文件的另一種方法。首先,我用「postscript distiller」將一個postscript文件簡化(代價是文件變得大一點)。然後,我用psnup工具產生new_file2.ps文件,它每一個物理頁包含兩個邏輯頁。我也可以將四或八個邏輯頁放到一個物理頁上。



gimp



(在X終端上)一個看起來不怎麼樣但功能非常強大的圖像處理器。要學習一段時間才能使用,但它對藝術家來說真是太好了,幾乎沒有什麼不能處理的。用你的滑鼠右鍵調出本地菜單,學習怎樣使用圖層。將你的文件保存為本地的gimp文件格式*.xcf(保存圖層,供以後編輯),只有將其平面化(flatten)並保存為png格式(或其他什麼格式),你才可以使用。「學會如何做出正確的選擇是關鍵。」



gphoto



(在X終端上)強大的照片編輯器和相機圖像檢測程序。



kpaint



(在X終端上)簡單的點陣圖畫圖程序(「畫筆」類型)。



xfig



(在X終端上)一個簡單的畫圖程序。對於製作基本的草圖或流程圖非常有用。



dia



(在X終端上)一個用預製組件畫流程圖的工具。



display my_picture



(在X終端上)顯示一幅圖片,只能瀏覽。你還可以輸入display &,然後從菜單中選擇文件睞查看圖像,旋轉,改變顏色,採用特定效果,等等。 Display是ImageMagick軟體包的一部分,在一起的還有下面描述的幾個實用工具。



identify ?verbose my_picture



給出關於圖像文件my_picture的描述:格式、類型、分類、大小(以像素為單位)、顏色數量、大小(以位元組為單位)、等等。



convert ?geometry 60x80 mypicture.gif out_small_picture.gif



將一個圖片轉換為60x80像素尺寸。下面有一個關於如何在不同圖形文件格式進行轉換的例子。



animate ?delay 6x5 pic1 pic2 pic3



連續顯示兩個或多個圖片。在示例中,圖片文件名為pic1,pic2,pic3,圖片的間隔時間為0.06秒,整個展示過程在5秒中之內反覆進行。



combin pic1 pic2 combined_pic.miff



將兩個或多個圖像加到另一個圖像中。例如你可以將一個圖標加到每個圖像中。



montage ?geometry 800x600+0+0 my_picture montage.niff



從my_picture文件生成一個平鋪的圖像上,尺寸為800x600,邊框為0x0。輸出結果送到 montage.miff。



zgv my_picture



在一個vga屏幕上顯示一個圖片以供瀏覽。



giftopnm my_file.giff > my_file.pnm

pnmtopng my_file.pnm > my_file.png



將一個有版權的圖形文件轉換為一個原始的、方便的pnm文件。然後將pnm文件轉換為png文件,png文件是Internet圖片的更新更好的標準(技術上更好,再加上沒有被giff專利擁有者控告的危險)。



xwd ?out my_cupture_screen_file.xwd



(在X終端上)捕捉X-windows屏幕上的內容,並保存到X-windows「轉存」圖像文件(*.xwd)。以後你可以使用轉換工具將xwd文件轉換為你喜歡的格式。在KDE環境下,你可以使用鍵盤快捷鍵來複制當前窗口工將整個桌面送到剪貼板。



convert my_capture_screen_file.xwd my_capture_screen.jpg



將X-windows屏幕轉存文件*.xwd轉換為*.jpg格式文件。這個轉換工具能夠對很多文件格式進行轉換。



import ?display 192.5.100.10:0 ?window root my_file.jpeg



從192.5.100.10伺服器上顯示埠0上運行的X-windows上捕捉root屏幕的內容。輸出文件是my_file.jpeg(可以根據所給出的文件擴展名改變文件格式)。為了能夠捕捉屏幕的內容,你必須有對屏幕寫的許可權(在X-終端上運行命令xhost + 可以將這一許可權賦予任何用戶)。選項見man important。



ksnapshot



(在X終端上)基於GUI的捕捉屏幕內容的工具。



xine Frankenstein.avi &



(在X終端上)。從文件「frankenstein.avi」看電影。看起來你電視。


5.20 幾個小遊戲



你的系統上很可能安裝了許多小遊戲。這個只是從我的標準Linux發行版CD上的一個例子。



kpat



(在X終端上)單人紙牌遊戲。sol(快)和pysol(慢但是?)是另外的兩個選擇。我喜歡:sol ?variation=freecell&



xboing



(在X終端上)非常好的彈球遊戲。



xboard



(在X終端上)國際象棋。對於我來說很好玩。



koquest &



(在X終端上)和你的兒子進行一場權力的角逐。非常好的板上遊戲。



kmines



(在X終端上)掃雷。



civserver

civclient



(在X終端上)(在X終端上)為FreeCivization遊戲啟動一個伺服器(第一個命令)。然後,當伺服器運行正常后,啟動一個客戶端(第二個命令)。有些人也啟動其他的客戶端程序和你玩。FreeCiv在RH7.0 CD上。



fgfs



「Flight Gear」飛行模擬器。





[火星人 via ] Linux的快捷鍵和主要命令已經有298次圍觀

http://www.coctec.com/docs/linux/show-post-136045.html