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

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

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

 

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

 

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

<Ctrl><Alt><F1>

 

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

 

<Ctrl><Alt><Fn> (n=1..6)

 

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

 

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

 

<Ctrl><Alt><F7>

 

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

 

 

<Ctrl><Alt><Fn> (n=712)

 

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

 

<Tab>

 

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

 

<ArrowUp>

 

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

 

<ArrowDown>

 

回滾

 

<Shift><PgUp>

 

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

 

<Shift><PgDown>

 

回滾終端輸出

 

<Ctrl><Alt><+>

 

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

 

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

 

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

 

<Ctrl><Alt><->

 

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

 

<Ctrl><Alt><Esc>

 

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

 

<Ctrl><Alt><BkSpc>

 

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

 

<Ctrl><Alt><Delete>

 

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

 

<Ctrl>c

 

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

 

<Ctrl>d

 

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

 

<Ctrl>d

 

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

 

<Ctrl>s

 

停止終端傳輸

 

<Ctrl>q

 

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

 

<Ctrl>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的快捷鍵(很有用,但不是非要不可的)

 

<Alt><Tab>

切換不同的程序窗口。往回切換,使用 <Alt><Shift><Tab>

 

<Ctrl><Tab>  

切換不同的桌面。往回切換,使用 <Ctrl><Shift><Tab>

 

<Ctrl><Esc>  

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

 

<Alt><F1>    

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

 

<Alt><F12>   

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

 

<Alt><鼠標左鍵>     

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

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

 

<Alt><PrintScreen>

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

 

<Ctrl><Alt><PrintScreen>

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

 

<Ctrl><Alt><l>

鎖定桌面

 

<Ctrl><Alt><d>

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

 

 

<Alt><SysRq><command_key> (非必須掌握)

 

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

 

<Alt><SysRq><k>

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

 

<Alt><SysRq><e>

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

 

<Alt><SysRq><i>

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

 

<Alt><SysRq><l>

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

 

<Alt><SysRq><s>

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

 

<Alt><SysRq><u>

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

<Alt><SysRq><r> 關閉鍵盤的原始模式。當你的X窗口程序掛住沒有響應時特別有用。使用這個組合鍵之後,你可能會接着使用<CTRL><ALT><DEL>程序啓動。

 

<Alt><SysRq><b>

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

 

<Alt><SysRq><o>

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

 

<Alt><SysRq><p>

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

 

<Alt><SysRq><t>

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

 

<Alt><SysRq><m>

導出內存的內容到控制檯

 

<Alt>SysRq><數字>

“數字”從09。設置控制檯記錄的級別,用於控制哪一些內核信息將被顯示在控制檯上。舉例,“0”意味着只有象PANICOOPS的之類的緊急信息才被顯示在控制檯上。

 

<Alt><SysRq><h>

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

 

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

輸出用戶標識IDUID)和其對應的用戶組標識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用戶運行setupRedHat特有)激活“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的佔用率排序(佔用率高的排在最前面)。按<CTRL>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環境下,ktopK菜單的“System”菜單下的“Task Manager”裏。

 

uname –a

 

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

 

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-目前沒有使用

5X11 (圖形用戶界面)

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用戶)關機。一般用於在遠程關閉計算機。在控制檯上可以使用<CTRL><ALT><DEL>來關閉計算機(所有用戶都可以)

 

halt

reboot

init 6

 

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

 

vlock

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

 

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指向bb指向cc指向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來編輯一個文本文件.  使用 <Ctrl>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.1DOS下鍵入"win" .

 

startx -- :1 & 

 

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

 

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 (200210),這個瀏覽器非常不錯。MozillaNetscape的一個衍生品(在老的Linux系統上一般使用NetScape)。還有其他幾個不錯的替代品比如konquerorgaleon (LinuxX終端上輸入konquerorgaleon直接運行)

 

mozilla –display host: 0.0 &

 

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

 

lynx file.html

 

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

 

konqueror &

 

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

 

pine

 

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

 

mutt

 

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

 

mail

 

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

 

kmail &

 

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

 

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           結束連接

 

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

 

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

 

從網站上覆制文件。以上這個例子使用可選項-mmirror,鏡像)從主站上獲得完整的文件集合。可選項“--no-parent”限制搜索子目錄裏的文件。

 

minicom

 

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

 

rx

 

使用ZmodemYmodemXmodem協議接收文件。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解壓出文件file1file2ar壓縮工具更多的用於保存文件庫記錄。

 

ark &

 

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

 

5.11   進程控制

 

ps

 

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

 

any_command &

 

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

 

jobs

 

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

 

fg job_number

 

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

 

bg job_number

 

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

 

batch

at>updatedb<Ctrl>d

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

 

at 17:00

 

在指定時間執行命令。你將被提示輸入要執行的命令,直到你按<Ctrl>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(進程將運行較慢)。較小的值,代表較高的優先級。優先級的取值範圍爲-2019。只有root用戶能指定負值。用top可顯示正在運行的進程的優先級。

 

renice –18 PID

 

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

 

<Ctrl>c<Ctrl>z<Ctrl>s<Ctrl>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程序運行時轉動一次)後,誰連接過你的httpapache)服務器。前一次的日誌文件爲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用戶運行)配置鼠標、聲卡、鍵盤、和系統服務。許多發行套裝都有自己特定的配置實用程序,setupRedhat的缺省配置程序。Mandrake 7.0提供非常好用的DrakConf

 

linuxconf

 

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

 

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系統時間。例如,我可以將日期和時間改爲200012312357,使用命令:

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版本)。另見快捷鍵<Ctrl><Alt><+>

 

SVGATextMode 80x25x9

SVGATextMode 80x29x9

 

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

 

SuperProbe

 

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

 

cat /var/log/Xfree86.0.log

 

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

 

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

 

裝載soundblastersb)模塊。使用前面的命令來查找已經加載的核心模塊。

 

insmod parport

insmod ppa

 

(以root用戶運行)向內核中插入模塊(一個模塊大致相當於一個DOS設備驅動程序)。平常,我用“modprobe”(見前面的命令)來插入模塊 。這個例子展示如何爲支持一個外置並口100MB ZIP驅動器來插入模塊(好像在RH6.06.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用戶運行)將一個串行接口設置爲非標準設置。這個例子顯示第一個串口的標準設置(cua0ttyS0)。第二個串口(cua1ttyS1)的PC標準設置爲:端口地址0x02f8,中斷3。第三個串口(cua2ttyS2)爲:0x03e8,中斷4。第四個串口(cua3ttyS3)爲: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=字符設備,pFIFO設備,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

 

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

 

fdformat /dev/fd0H1440

mkfs –c –t ext2 /dev/fd0

 

=floppy disk format, 兩個命令,以root用戶運行)對第一個軟驅(dev/fd0)中的高密度軟盤(1440KB)執行低級格式化。然後建立一個文件系統(-t ext2),檢查/標出壞塊(-c)。建立文件系統相當於高級格式化。你還可以將軟件盤格式化成不同的密度(非標準的);試一下 ls /dev/fd0<Tab>。你能夠使用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 -als /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,那麼我用匹配的用戶名,用戶IDUID)和組IDGID)來創建用戶。這樣在系統升級後可以避免由於改變用戶文件的所有權而引起的混亂。

 

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.2glint的現在看來太舊了。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

 

從本機硬盤裝載一個DOSMS Windows)分區。

 

網絡管理工具

 

netconf

 

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

 

ping machine_name

 

檢驗你是否能和其他機器相連(給出機器名或IP),當結束的時候按<Ctrl>C(如果不按<Ctrl>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用戶運行)一個強大而好用的工具,結合了舊的pingtraceroute的功能(RH 7.0)。

 

nmblookup –A ip_address

 

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

 

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接口(撥號連接),我一般使用KDEK”菜單中的kppp(或在X終端上輸入 kppp)。

 

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

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

 

ifdown interface_name

 

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

 

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

 

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

 

nmap ip_number

 

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

 

ethereal

 

(在X終端上,以root用戶運行)網絡分析工具――查看通過你的計算機的網絡流量。包括在RH7.0Linux PowerToolsCD上,在某些場合使用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文件共享出來。當使用它時,感覺相當coolGnutellaFreeNet將很快取代它們->那種感覺更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.xPowerTools 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 ReaderLinux版本(會快一些)。

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文件生成一個pdfAdobe 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 &,然後從菜單中選擇文件睞查看圖像,旋轉,改變顏色,採用特定效果,等等。  DisplayImageMagick軟件包的一部分,在一起的還有下面描述的幾個實用工具。

 

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環境下,你可以使用鍵盤快捷鍵<Alt><PrintScreen><Ctrl><Alt><PrintScreen>來複制當前窗口工將整個桌面送到剪貼板。

 

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遊戲啓動一個服務器(第一個命令)。然後,當服務器運行正常後,啓動一個客戶端(第二個命令)。有些人也啓動其他的客戶端程序和你玩。FreeCivRH7.0 CD上。

 

fgfs

 

“Flight Gear”飛行模擬器。

 

發佈了18 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章