Linux必學的60個命令(二)

3.用crontab命令實現每天定時的病毒掃描

前面已經介紹了一個簡單的crontab命令操作,這裏看一些更重要的操作。
(1)建立一個文件,文件名稱自己設定,假設爲caoproject:
#crontab -e
(2)文件內容如下:
05 09 * * * antivir
用vi編輯後存盤退出。antivir是一個查殺Linux病毒的軟件,當然需要時先安裝在系統中。
(3)使用crontab命令添加到任務列表中:
#crontab caoproject
這樣系統內所有用戶在每天的9點05分會自動進行病毒掃描。
4.用kill使修改的配置文件馬上生效
Windows用戶一般都知道,重要配置文件修改後往往都要重新啓動計算機才能使修改生效。而Linux由於採用了模塊化設計,可以自己根據需要實時設定服務。這裏以網絡服務inetd爲例介紹一些操作技巧。
inetd
是一個監聽守護進程,監聽與提供互聯網服務進程(如rlogin、telnet、ftp、rsh)進行連接的要求,並擴展所需的服務進程。默認情況下,
inetd監聽的這些daemon均列於/etc
/inetd.conf文件中。編輯/etc/inetd.conf文件,可以改變inetd啓動服務器守護進程的選項,然後驅使inetd以
SIGHUP(signal 1)向當前的inetd進程發送信號,使inetd重讀該文件。這一過程由kill命令來實現。
用vi或其它編輯器修改inetd.conf後,首先使用下面命令:
#ps -ef |grep inetd
上面代碼表明查詢inetd.conf的進程號(PID),這裏假設是1426,然後使用下面命令:
# kill -1426 inetd
這樣配置文件就生效了。
這一講介紹的系統管理命令都是比較重要的,特別是crontab命令和quota命令使用起來會有一定難度,需要多做一些練習。另外,使用kill命令要注意“-9“這個參數,練習時最好不要運行一些重要的程序。 
Linux必學的60個命令(4)-網絡操作命令Linux必學的60個命令:網絡操作命令

爲Linux系統是在Internet上起源和發展的,它與生俱來擁有強大的網絡功能和豐富的網絡應用軟件,尤其是TCP/IP網絡協議的實現尤爲成熟。
Linux的網絡命令比較多,其中一些命令像ping、
ftp、telnet、route、netstat等在其它操作系統上也能看到,但也有一些Unix/Linux系統獨有的命令,如ifconfig、
finger、mail等。Linux網絡操作命令的一個特點是,命令參數選項和功能很多,一個命令往往還可以實現其它命令的功能。
ifconfig
1.作用
ifconfig用於查看和更改網絡接口的地址和參數,包括IP地址、網絡掩碼、廣播地址,使用權限是超級用戶。
2.格式
ifconfig -interface [options] address
3.主要參數
-interface:指定的網絡接口名,如eth0和eth1。
up:激活指定的網絡接口卡。
down:關閉指定的網絡接口。
broadcast address:設置接口的廣播地址。
pointopoint:啓用點對點方式。
address:設置指定接口設備的IP地址。
netmask address:設置接口的子網掩碼。
4.應用說明
ifconfig是用來設置和配置網卡的命令行工具。爲了手工配置網絡,這是一個必須掌握的命令。使用該命令的好處是無須重新啓動機器。要賦給eth0接口IP地址207.164.186.2,並且馬上激活它,使用下面命令:
#fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127

命令的作用是設置網卡eth0的IP地址、網絡掩碼和網絡的本地廣播地址。若運行不帶任何參數的ifconfig命令,這個命令將顯示機器所有激活接口的
信息。帶有“-a”參數的命令則顯示所有接口的信息,包括沒有激活的接口。注意,用ifconfig命令配置的網絡設備參數,機器重新啓動以後將會丟失。
如果要暫停某個網絡接口的工作,可以使用down參數:
#ifconfig eth0 down
ip
1.作用
ip是iproute2軟件包裏面的一個強大的網絡配置工具,它能夠替代一些傳統的網絡管理工具,例如ifconfig、route等,使用權限爲超級用戶。幾乎所有的Linux發行版本都支持該命令。
2.格式
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
3.主要參數
OPTIONS是修改ip行爲或改變其輸出的選項。所有的選項都是以-字符開頭,分爲長、短兩種形式。目前,ip支持如表1所示選項。
OBJECT是要管理者獲取信息的對象。目前ip認識的對象見表2所示。
表1 ip支持的選項
-V,-Version 打印ip的版本並退出。
-s,-stats,-statistics 輸出更爲詳盡的信息。如果這個選項出現兩次或多次,則輸出的信息將更爲詳盡。
-f,-family 這個選項後面接協議種類,包括inet、inet6或link,強調使用的協議種類。如果沒有足夠的信息告訴ip使用的協議種類,ip就會使用默認值inet或any。link比較特殊,它表示不涉及任何網絡協議。
-4 是-family inet的簡寫。
-6 是-family inet6的簡寫。
-0 是-family link的簡寫。
-o,-oneline 對每行記錄都使用單行輸出,回行用字符代替。如果需要使用wc、grep等工具處理ip的輸出,則會用到這個選項。
-r,-resolve 查詢域名解析系統,用獲得的主機名代替主機IP地址
COMMAND
設置針對指定對象執行的操作,它和對象的類型有關。一般情況下,ip支持對象的增加(add)、刪除(delete)和展示(show或list)。有些
對象不支持這些操作,或者有其它的一些命令。對於所有的對象,用戶可以使用help命令獲得幫助。這個命令會列出這個對象支持的命令和參數的語法。如果沒
有指定對象的操作命令,ip會使用默認的命令。一般情況下,默認命令是list,如果對象不能列出,就會執行help命令。
ARGUMENTS
是命令的一些參數,它們倚賴於對象和命令。ip支持兩種類型的參數:flag和parameter。flag由一個關鍵詞組成;parameter由一個
關鍵詞加一個數值組成。爲了方便,每個命令都有一個可以忽略的默認參數。例如,參數dev是ip link命令的默認參數,因此ip link ls
eth0等於ip link ls dev eth0。我們將在後面的詳細介紹每個命令的使用,命令的默認參數將使用default標出。
4.應用實例
添加IP地址192.168.2.2/24到eth0網卡上:
#ip addr add 192.168.1.1/24 dev eth0
丟棄源地址屬於192.168.2.0/24網絡的所有數據報:
#ip rule add from 192.168.2.0/24 prio 32777 reject
ping
1.作用
ping檢測主機網絡接口狀態,使用權限是所有用戶。
2.格式
ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址
3.主要參數
-d:使用Socket的SO_DEBUG功能。
-c:設置完成要求迴應的次數。
-f:極限檢測。
-i:指定收發信息的間隔秒數。
-I:網絡界面使用指定的網絡界面送出數據包。
-l:前置載入,設置在送出要求信息之前,先行發出的數據包。
-n:只輸出數值。
-p:設置填滿數據包的範本樣式。
-q:不顯示指令執行過程,開頭和結尾的相關信息除外。
-r:忽略普通的Routing Table,直接將數據包送到遠端主機上。
-R:記錄路由過程。
-s:設置數據包的大小。
-t:設置存活數值TTL的大小。
-v:詳細顯示指令的執行過程。
ping
命令是使用最多的網絡指令,通常我們使用它檢測網絡是否連通,它使用ICMP協議。但是有時會有這樣的情況,我們可以瀏覽器查看一個網頁,但是卻無法
ping通,這是因爲一些網站處於安全考慮安裝了防火牆。另外,也可以在自己計算機上試一試,通過下面的方法使系統對ping沒有反應:
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
netstat
1.作用
檢查整個Linux網絡狀態。 
2.格式
netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]
3.主要參數
-a--all:顯示所有連線中的Socket。
-A:列出該網絡類型連線中的IP相關地址和網絡類型。
-c--continuous:持續列出網絡狀態。
-C--cache:顯示路由器配置的快取信息。
-e--extend:顯示網絡其它相關信息。
-F--fib:顯示FIB。
-g--groups:顯示多重廣播功能羣組組員名單。
-h--help:在線幫助。
-i--interfaces:顯示網絡界面信息表單。
-l--listening:顯示監控中的服務器的Socket。
-M--masquerade:顯示僞裝的網絡連線。
-n--numeric:直接使用IP地址,而不通過域名服務器。
-N--netlink--symbolic:顯示網絡硬件外圍設備的符號連接名稱。
-o--timers:顯示計時器。
-p--programs:顯示正在使用Socket的程序識別碼和程序名稱。
-r--route:顯示Routing Table。
-s--statistice:顯示網絡工作信息統計表。
-t--tcp:顯示TCP傳輸協議的連線狀況。
-u--udp:顯示UDP傳輸協議的連線狀況。
-v--verbose:顯示指令執行過程。
-V--version:顯示版本信息。
-w--raw:顯示RAW傳輸協議的連線狀況。
-x--unix:和指定“-A unix”參數相同。
--ip--inet:和指定“-A inet”參數相同。
4.應用實例
netstat
主要用於Linux察看自身的網絡狀況,如開啓的端口、在爲哪些用戶服務,以及服務的狀態等。此外,它還顯示系統路由表、網絡接口狀態等。可以說,它是一
個綜合性的網絡狀態的察看工具。在默認情況下,netstat只顯示已建立連接的端口。如果要顯示處於監聽狀態的所有端口,使用-a參數即可:
#netstat -a
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:32768 *:* LISTEN
tcp 0 0 *:32769 *:* LISTEN
tcp 0 0 *:nfs *:* LISTEN
tcp 0 0 *:32770 *:* LISTEN
tcp 0 0 *:868 *:* LISTEN
tcp 0 0 *:617 *:* LISTEN
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:netbios-ssn *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:10000 *:* LISTEN
tcp 0 0 *:http *:* LISTEN
......
上面顯示出,這臺主機同時提供HTTP、FTP、NFS、MySQL等服務。
telnet
1.作用
telnet表示開啓終端機階段作業,並登入遠端主機。telnet是一個Linux命令,同時也是一個協議(遠程登陸協議)。
2.格式
telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主機名稱IP地址]
3.主要參數
-8:允許使用8位字符資料,包括輸入與輸出。
-a:嘗試自動登入遠端系統。
-b:使用別名指定遠端主機名稱。
-c:不讀取用戶專屬目錄裏的.telnetrc文件。
-d:啓動排錯模式。
-e:設置脫離字符。
-E:濾除脫離字符。
-f:此參數的效果和指定“-F”參數相同。
-F:使用Kerberos V5認證時,加上此參數可把本地主機的認證數據上傳到遠端主機。
-k:使用Kerberos認證時,加上此參數讓遠端主機採用指定的領域名,而非該主機的域名。
-K:不自動登入遠端主機。
-l:指定要登入遠端主機的用戶名稱。
-L:允許輸出8位字符資料。
-n:指定文件記錄相關信息。
-r:使用類似rlogin指令的用戶界面。
-S:服務類型,設置telnet連線所需的IP TOS信息。
-x:假設主機有支持數據加密的功能,就使用它。
-X:關閉指定的認證形態。
4.應用說明

戶使用telnet命令可以進行遠程登錄,並在遠程計算機之間進行通信。用戶通過網絡在遠程計算機上登錄,就像登錄到本地機上執行命令一樣。爲了通過
telnet登錄到遠程計算機上,必須知道遠程機上的合法用戶名和口令。雖然有些系統確實爲遠程用戶提供登錄功能,但出於對安全的考慮,要限制來賓的操作
權限,因此,這種情況下能使用的功能是很少的。
telnet只爲普通終端提供終端仿真,而不支持X-
Window等圖形環境。當允許遠程用戶登錄時,系統通常把這些用戶放在一個受限制的Shell中,以防系統被懷有惡意的或不小心的用戶破壞。用戶還可以
使用telnet從遠程站點登錄到自己的計算機上,檢查電子郵件、編輯文件和運行程序,就像在本地登錄一樣。
ftp
1.作用
ftp命令進行遠程文件傳輸。FTP是ARPANet的標準文件傳輸協議,該網絡就是現今Internet的前身,所以ftp既是協議又是一個命令。
2.格式
ftp [-dignv][主機名稱IP地址]
3.主要參數
-d:詳細顯示指令執行過程,便於排錯分析程序執行的情形。
-i:關閉互動模式,不詢問任何問題。
-g:關閉本地主機文件名稱支持特殊字符的擴充特性。
-n:不使用自動登陸。
-v:顯示指令執行過程。
4.應用說明
ftp
命令是標準的文件傳輸協議的用戶接口,是在TCP/IP網絡計算機之間傳輸文件簡單有效的方法,它允許用戶傳輸ASCⅡ文件和二進制文件。爲了使用ftp
來傳輸文件,用戶必須知道遠程計算機上的合法用戶名和口令。這個用戶名/口令的組合用來確認ftp會話,並用來確定用戶對要傳輸的文件進行什麼樣的訪問。
另外,用戶需要知道對其進行ftp會話的計算機名字的IP地址。
用戶可以通過使用ftp客戶程序,連接到另一臺計算機上;可以在目錄中上下移動、列出目錄內容;可以把文件從遠程計算機機拷貝到本地機上;還可以把文件從本地機傳輸到遠程系統中。ftp內部命令有72個,下面列出主要幾個內部命令:
ls:列出遠程機的當前目錄。
cd:在遠程機上改變工作目錄。
lcd:在本地機上改變工作目錄。
close:終止當前的ftp會話。
hash:每次傳輸完數據緩衝區中的數據後就顯示一個#號。
get(mget):從遠程機傳送指定文件到本地機。
put(mput):從本地機傳送指定文件到遠程機。
quit:斷開與遠程機的連接,並退出ftp。
route
1.作用
route表示手工產生、修改和查看路由表。
2.格式
#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]
#route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]
3.主要參數
-add:增加路由。
-delete:刪除路由。
-net:路由到達的是一個網絡,而不是一臺主機。
-host:路由到達的是一臺主機。
-netmask Nm:指定路由的子網掩碼。
gw:指定路由的網關。
[dev]If:強迫路由鏈指定接口。
4.應用實例
route命令是用來查看和設置Linux系統的路由信息,以實現與其它網絡的通信。要實現兩個不同的子網之間的通信,需要一臺連接兩個網絡的路由器,或者同時位於兩個網絡的網關來實現。
在Linux系統中,設置路由通常是爲了解決以下問題:該Linux系統在一個局域網中,局域網中有一個網關,能夠讓機器訪問Internet,那麼就需要將這臺機器的IP地址設置爲Linux機器的默認路由。使用下面命令可以增加一個默認路由:
route add 0.0.0.0 192.168.1.1
rlogin
1.作用
rlogin用來進行遠程註冊。
2.格式
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host
3.主要參數
-8:此選項始終允許8位輸入數據通道。該選項允許發送格式化的ANSI字符和其它的特殊代碼。如果不用這個選項,除非遠端的不是終止和啓動字符,否則就去掉奇偶校驗位。
-E:停止把任何字符當作轉義字符。當和-8選項一起使用時,它提供一個完全的透明連接。
-K:關閉所有的Kerberos確認。只有與使用Kerberos 確認協議的主機連接時才使用這個選項。
-L:允許rlogin會話在litout模式中運行。要了解更多信息,請查閱tty聯機幫助。
-d:打開與遠程主機進行通信的TCP sockets的socket調試。要了解更多信息,請查閱setsockopt的聯機幫助。
-e:爲rlogin會話設置轉義字符,默認的轉義字符是“~”。
-k:請求rlogin獲得在指定區域內遠程主機的Kerberos許可,而不是獲得由krb_realmofhost(3)確定的遠程主機區域內的遠程主機的Kerberos許可。
-x:爲所有通過rlogin會話傳送的數據打開DES加密。這會影響響應時間和CPU利用率,但是可以提高安全性。
4.使用說明
如果在網絡中的不同系統上都有賬號,或者可以訪問別人在另一個系統上的賬號,那麼要訪問別的系統中的賬號,首先就要註冊到系統中,接着通過網絡遠程註冊到賬號所在的系統中。rlogin可以遠程註冊到別的系統中,它的參數應是一個系統名。
rcp
1.作用
rcp代表遠程文件拷貝,用於計算機之間文件拷貝,使用權限是所有用戶。
2.格式
rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
3.主要參數
-r:遞歸地把源目錄中的所有內容拷貝到目的目錄中。要使用這個選項,目的必須是一個目錄。
-p:試圖保留源文件的修改時間和模式,忽略umask。
-k:請求rcp獲得在指定區域內的遠程主機的Kerberos許可,而不是獲得由krb_relmofhost(3)確定的遠程主機區域內的遠程主機的Kerberos許可。
-x:爲傳送的所有數據打開DES加密。
finger
1.作用
finger用來查詢一臺主機上的登錄賬號的信息,通常會顯示用戶名、主目錄、停滯時間、登錄時間、登錄Shell等信息,使用權限爲所有用戶。
2.格式
finger [選項] [使用者] [用戶@主機]
3.主要參數
-s:顯示用戶註冊名、實際姓名、終端名稱、寫狀態、停滯時間、登錄時間等信息。
-l:除了用-s選項顯示的信息外,還顯示用戶主目錄、登錄Shell、郵件狀態等信息,以及用戶主目錄下的.plan、.project和.forward文件的內容。
-p:除了不顯示.plan文件和.project文件以外,與-l選項相同。
4.應用實例
在計算機上使用finger:
[root@localhost root]# Finger
Login Name Tty Idle Login Time Office Office Phone
root root tty1 2 Dec 15 11
root root pts/0 1 Dec 15 11
root root *pts/1 Dec 15 11
5.應用說明
如果要查詢遠程機上的用戶信息,需要在用戶名後面接“@主機名”,採用[用戶名@主機名]的格式,不過要查詢的網絡主機需要運行finger守護進程的支持。
mail
1.作用
mail作用是發送電子郵件,使用權限是所有用戶。此外,mail還是一個電子郵件程序。
2.格式
mail [-s subject] [-c address] [-b address]
mail -f [mailbox]mail [-u user]
3.主要參數
-b address:表示輸出信息的匿名收信人地址清單。
-c address:表示輸出信息的抄送()收信人地址清單。
-f [mailbox]:從收件箱者指定郵箱讀取郵件。
-s subject:指定輸出信息的主體行。
[-u user]:端口指定優化的收件箱讀取郵件。
nslookup
1.作用
nslookup命令的功能是查詢一臺機器的IP地址和其對應的域名。使用權限所有用戶。它通常需要一臺域名服務器來提供域名服務。如果用戶已經設置好域名服務器,就可以用這個命令查看不同主機的IP地址對應的域名。
2.格式
nslookup [IP地址/域名]
3.應用實例
(1)在本地計算機上使用nslookup命令
$ nslookup
Default Server: name.cao.com.cn
Address: 192.168.1.9
>
在符號“>”後面輸入要查詢的IP地址域名,並回車即可。如果要退出該命令,輸入“exit”,並回車即可。
(2)使用nslookup命令測試named
輸入下面命令:
nslookup
然後就進入交換式nslookup環境。如果named正常啓動,則nslookup會顯示當前DNS服務器的地址和域名,否則表示named沒能正常啓動。
下面簡單介紹一些基本的DNS診斷。

檢查正向DNS解析,在nslookup提示符下輸入帶域名的主機名,如hp712.my.com,nslookup應能顯示該主機名對應的IP地址。如
果只輸入hp712,nslookup會根據/etc/resolv.conf的定義,自動添加my.com域名,並回答對應的IP地址。
◆檢查反向DNS解析,在nslookup提示符下輸入某個IP地址,如192.22.33.20,nslookup應能回答該IP地址所對應的主機名。
◆檢查MX郵件地址記錄在nslookup提示符下輸入:
set q=mx
然後輸入某個域名,輸入my.com和mail.my.com,nslookup應能夠回答對應的郵件服務器地址,即support.my.com和support2.my.com。
動手練習
1.危險的網絡命令

聯網的發展使安全成爲一個不能忽視的問題,finger、ftp、rcp和telnet在本質上都是不安全的,因爲它們在網絡上用明文傳送口令和數據,嗅
探器可以非常容易地截獲這些口令和數據。而且,這些服務程序的安全驗證方式也是有弱點的,很容易受到“中間服務器”方式的***。這裏筆者把一些不安全的命
令根據危險等級列出,見表3所示。
現在ftp、telnet可以被SSH命令代替綁定在端口22上,其連
接採用協商方式,使用RSA加密。身份鑑別完成之後,後面的所有流量都使用IDEA
進行加密。SSH(Secure Shell)程序可以通過網絡登錄到遠程主機,並執行命令。rcp、rlogin等遠程調用命令也逐漸被VNC軟件代
替。
2.在一張網卡上綁定多個IP地址
在Linux下,可以使用ifconfig方便地綁定多個IP地址到一張網卡。例如,eth0接口的原有IP地址爲192.168.0 .254,可以執行下面命令:
ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0
ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0
......
3.修改網卡MAC地址
首先必須關閉網卡設備,命令如下:
/sbin/ifconfig eth0 down
修改MAC地址,命令如下:
/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重新啓用網卡:
/sbin/ifconfig eht0 up
這樣網卡的MAC地址就更改完成了。每張網卡的MAC地址是惟一,但不是不能修改的,只要保證在網絡中的MAC地址的惟一性就可以了。
4.初步部署IPv6
IPv4
技術在網絡發展中起到了巨大的作用,不過隨着時間的流逝它無論在網絡地址的提供、服務質量、安全性等方面都越來越力不從心,IPv6呼之欲出。Linux
是所有操作系統中最先支持IPv6的,一般Linux基於2.4內核的Linux發行版本都可以直接使用IPv6,不過主要發行版本沒有加載IPv6模
塊,可以使用命令手工加載,需要超級用戶的權限。
(1)加載IPv6模塊
使用命令檢測,其中inet6 addr: fe80::5054:abff:fe34:5b09/64,就是eth0網卡的IPv6地址。
# modprobe IPv6
#ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:AB:34:5B:09
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::5054:abff:fe34:5b09/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:1360 (1.3 Kb)
Interrupt:5 Base address:0xec00
(2)使用ping命令檢測網卡的IPv6地址是否有效
#ping6 -I eth0 -c 2 fe80::200:e8ff:fea0:2586
和IPv4不一樣,使用ping6命令時必須指定一個網卡界面,否則系統不知道將數據包發送到哪個網絡設備。I表示Interface、eth0是第一個網卡,-c表示迴路,2表示ping6操作兩次。結果見圖1所示。
圖1 IPv6網絡下的ping6命令
(3)使用ip命令在IPv6下爲eth0增加一個IP地址
#ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
使用ifconfig命令,查看網卡是否出現第二個IPv6地址。
Linux網絡的主要優點是能夠實現資源和信息的共享,並且用戶可以遠程訪問信息。Linux提供了一組強有力的網絡命令來爲用戶服務,這些工具能夠幫助用戶進行網絡設定、檢查網絡狀況、登錄到遠程計算機上、傳輸文件和執行遠程命令等。
上面介紹了Linux中比較重要的網絡命令,其實Linux還有許多命令需要學習。Linux網絡操作命令的一個特點就是命令參數選項很多,並不要求全部記住,關鍵在於理解命令的主要用途和學會使用幫助信息。 
Linux必學的60個命令(5)-網絡安全命令Linux必學的60個命令:系統安全相關命令
雖然Linux和Windows NT/2000系統一樣是一個多用戶的系統,但是它們之間有不少重要的差別。對於很多習慣了Windows系統的管理員來講,如何保證Linux操作系統安全、可靠將會面臨許多新的挑戰。本文將重點介紹Linux系統安全的命令。
passwd
1.作用
passwd命令原來修改賬戶的登陸密碼,使用權限是所有用戶。
2.格式
passwd [選項] 賬戶名稱
3.主要參數
-l:鎖定已經命名的賬戶名稱,只有具備超級用戶權限的使用者方可使用。
-u:解開賬戶鎖定狀態,只有具備超級用戶權限的使用者方可使用。
-x, --maximum=DAYS:最大密碼使用時間(天),只有具備超級用戶權限的使用者方可使用。
-n, --minimum=DAYS:最小密碼使用時間(天),只有具備超級用戶權限的使用者方可使用。
-d:刪除使用者的密碼, 只有具備超級用戶權限的使用者方可使用。
-S:檢查指定使用者的密碼認證種類, 只有具備超級用戶權限的使用者方可使用。
4.應用實例
$ passwd
Changing password for user cao.
Changing password for cao
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
從上面可以看到,使用passwd命令需要輸入舊的密碼,然後再輸入兩次新密碼。
su
1.作用
su的作用是變更爲其它使用者的身份,超級用戶除外,需要鍵入該使用者的密碼。
2.格式
su [選項]... [-] [USER [ARG]...]
3.主要參數
-f , --fast:不必讀啓動文件(如 csh.cshrc 等),僅用於csh或tcsh兩種Shell。
-l , --login:加了這個參數之後,就好像是重新登陸爲該使用者一樣,大部分環境變量(例如HOME、SHELL和USER等)都是以該使用者(USER)爲主,並且工作目錄也會改變。如果沒有指定USER,缺省情況是root。
-m, -p ,--preserve-environment:執行su時不改變環境變數。
-c command:變更賬號爲USER的使用者,並執行指令(command)後再變回原來使用者。
USER:欲變更的使用者賬號,ARG傳入新的Shell參數。
4.應用實例
變更賬號爲超級用戶,並在執行df命令後還原使用者。 su -c df root
umask
1.作用
umask設置用戶文件和目錄的文件創建缺省屏蔽值,若將此命令放入profile文件,就可控制該用戶後續所建文件的存取許可。它告訴系統在創建文件時不給誰存取許可。使用權限是所有用戶。
2.格式
umask [-p] [-S] [mode]
3.參數
-S:確定當前的umask設置。
-p:修改umask 設置。
[mode]:修改數值。
4.說明

統Unix的umask值是022,這樣就可以防止同屬於該組的其它用戶及別的組的用戶修改該用戶的文件。既然每個用戶都擁有並屬於一個自己的私有組,那
麼這種“組保護模式”就不在需要了。嚴密的權限設定構成了Linux安全的基礎,在權限上犯錯誤是致命的。需要注意的是,umask命令用來設置進程所創
建的文件的讀寫權限,最保險的值是0077,即關閉創建文件的進程以外的所有進程的讀寫權限,表示爲-rw-------。在
~/.bash_profile中,加上一行命令umask 0077可以保證每次啓動Shell後, 進程的umask權限都可以被正確設定。
5.應用實例
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
上述5行命令,首先顯示當前狀態,然後把umask值改爲177,結果只有文件所有者具有讀寫文件的權限,其它用戶不能訪問該文件。這顯然是一種非常安全的設置。
chgrp
1.作用
chgrp表示修改一個或多個文件或目錄所屬的組。使用權限是超級用戶。
2.格式
chgrp [選項]... 組 文件...

chgrp [選項]... --reference=參考文件 文件...
將每個的所屬組設定爲。
3.參數
-c, --changes :像 --verbose,但只在有更改時才顯示結果。
--dereference:會影響符號鏈接所指示的對象,而非符號鏈接本身。
-h, --no-dereference:會影響符號鏈接本身,而非符號鏈接所指示的目的地(當系統支持更改符號鏈接的所有者,此選項纔有效)。
-f, --silent, --quiet:去除大部分的錯誤信息。
--reference=參考文件:使用的所屬組,而非指定的。
-R, --recursive:遞歸處理所有的文件及子目錄。
-v, --verbose:處理任何文件都會顯示信息。
4.應用說明
該命令改變指定指定文件所屬的用戶組。其中group可以是用戶組ID,也可以是/etc/group文件中用戶組的組名。文件名是以空格分開的要改變屬組的文件列表,支持通配符。如果用戶不是該文件的屬主或超級用戶,則不能改變該文件的組。
5.應用實例
改變/opt/local /book/及其子目錄下的所有文件的屬組爲book,命令如下:
$ chgrp - R book /opt/local /book
chmod
1.作用
chmod命令是非常重要的,用於改變文件或目錄的訪問權限,用戶可以用它控制文件或目錄的訪問權限,使用權限是超級用戶。
2.格式
chmod命令有兩種用法。一種是包含字母和操作符表達式的字符設定法(相對權限設定);另一種是包含數字的數字設定法(絕對權限設定)。
(1)字符設定法
chmod [who] [+ | - | =] [mode] 文件名
◆操作對象who可以是下述字母中的任一個或它們的組合
u:表示用戶,即文件或目錄的所有者。
g:表示同組用戶,即與文件屬主有相同組ID的所有用戶。
o:表示其它用戶。
a:表示所有用戶,它是系統默認值。
◆操作符號
+:添加某個權限。
-:取消某個權限。
=:賦予給定權限,並取消其它所有權限(如果有的話)。
◆設置mode的權限可用下述字母的任意組合
r:可讀。
w:可寫。
x:可執行。
X:只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x屬性。
s:文件執行時把進程的屬主或組ID置爲該文件的文件屬主。方式“u+s”設置文件的用戶ID位,“g+s”設置組ID位。
t:保存程序的文本到交換設備上。
u:與文件屬主擁有一樣的權限。
g:與和文件屬主同組的用戶擁有一樣的權限。
o:與其它用戶擁有一樣的權限。
文件名:以空格分開的要改變權限的文件列表,支持通配符。
一個命令行中可以給出多個權限方式,其間用逗號隔開。
(2) 數字設定法
數字設定法的一般形式爲: chmod [mode] 文件名
數字屬性的格式應爲3個0到7的八進制數,其順序是(u)(g)(o)文件名,以空格分開的要改變權限的文件列表,支持通配符。

字表示的權限的含義如下:0001爲所有者的執行權限;0002爲所有者的寫權限;0004爲所有者的讀權限;0010爲組的執行權限;0020爲組的寫
權限;0040爲組的讀權限;0100爲其他人的執行權限;0200爲其他人的寫權限;0400爲其他人的讀權限;1000爲粘貼位置位;2000表示假
如這個文件是可執行文件,則爲組ID爲位置位,否則其中文件鎖定位置位;4000表示假如這個文件是可執行文件,則爲用戶ID爲位置位。
3.實例
如果一個系統管理員寫了一個表格(tem)讓所有用戶填寫,那麼必須授權用戶對這個文件有讀寫權限,可以使用命令:#chmod 666 tem

面代碼中,這個666數字是如何計算出來的呢?0002爲所有者的寫權限,0004爲所有者的讀權限,0020爲組的寫權限,0040爲組的讀權限,
0200爲其他人的寫權限,0400爲其他人的讀權限,這6個數字相加就是666(注以上數字都是八進制數),結果見圖1所示。
圖1 用chmod數字方法設定文件權限
從圖1可以看出,tem文件的權限是-rw-rw-rw-,即用戶對這個文件有讀寫權限。
如果用字符權限設定使用下面命令:
#chmod a =wx tem
chown
1.作用
更改一個或多個文件或目錄的屬主和屬組。使用權限是超級用戶。
2.格式
chown [選項] 用戶或組 文件
3.主要參數
--dereference:受影響的是符號鏈接所指示的對象,而非符號鏈接本身。
-h, --no-dereference:會影響符號鏈接本身,而非符號鏈接所指示的目的地(當系統支持更改符號鏈接的所有者,此選項纔有效)。
--from=目前所有者:目前組只當每個文件的所有者和組符合選項所指定的,纔會更改所有者和組。其中一個可以省略,這已省略的屬性就不需要符合原有的屬性。
-f, --silent, --quiet:去除大部分的錯誤信息。
-R, --recursive:遞歸處理所有的文件及子目錄。
-v, --verbose:處理任何文件都會顯示信息。
4.說明
chown 將指定文件的擁有者改爲指定的用戶或組,用戶可以是用戶名或用戶ID;組可以是組名或組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員經常使用chown命令,在將文件拷貝到另一個用戶的目錄下以後,讓用戶擁有使用該文件的權限。
5.應用實例
1.把文件shiyan.c的所有者改爲wan
$ chown wan shiyan.c
2.把目錄/hi及其下的所有文件和子目錄的屬主改成wan,屬組改成users。
$ chown - R wan.users /hi
chattr
1.作用
修改ext2和ext3文件系統屬性(attribute),使用權限超級用戶。
2.格式
chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目錄
3.主要參數
-R:遞歸處理所有的文件及子目錄。
-V:詳細顯示修改內容,並打印輸出。
-:失效屬性。
+:激活屬性。
= :指定屬性。
A:Atime,告訴系統不要修改對這個文件的最後訪問時間。
S:Sync,一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤。
a:Append Only,系統只允許在這個文件之後追加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。
i:Immutable,系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那麼任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
D:檢查壓縮文件中的錯誤。
d:No dump,在進行文件系統備份時,dump程序將忽略這個文件。
C:Compress,系統以透明的方式壓縮這個文件。從這個文件讀取時,返回的是解壓之後的數據;而向這個文件中寫入數據時,數據首先被壓縮之後才寫入磁盤。
s:Secure Delete,讓系統在刪除這個文件時,使用0填充文件所在的區域。
u:Undelete,當一個應用程序請求刪除這個文件,系統會保留其數據塊以便以後能夠恢復刪除這個文件。
4.說明
chattr
命令的作用很大,其中一些功能是由Linux內核版本來支持的,如果Linux內核版本低於2.2,那麼許多功能不能實現。同樣-D檢查壓縮文件中的錯誤
的功能,需要2.5.19以上內核才能支持。另外,通過chattr命令修改屬性能夠提高系統的安全性,但是它並不適合所有的目錄。chattr命令不能
保護/、/dev、/tmp、/var目錄。
5.應用實例
1.恢復/root目錄,即子目錄的所有文件
# chattr -R +u/root
2.用chattr命令防止系統中某個關鍵文件被修改
在Linux下,有些配置文件(passwd ,fatab)是不允許任何人修改的,爲了防止被誤刪除或修改,可以設定該文件的“不可修改位(immutable)”,命令如下:
# chattr +i /etc/fstab
sudo
1.作用
sudo是一種以限制配置文件中的命令爲基礎,在有限時間內給用戶使用,並且記錄到日誌中的命令,權限是所有用戶。
2.格式
sudo [-bhHpV] [-s ] [-u ] [指令]
sudo [-klv]
3.主要參數
-b:在後臺執行命令。
-h:顯示幫助。
-H:將HOME環境變量設爲新身份的HOME環境變量。
-k:結束密碼的有效期,即下次將需要輸入密碼。
-l:列出當前用戶可以使用的命令。
-p:改變詢問密碼的提示符號。
-s :執行指定的Shell。
-u :以指定的用戶爲新身份,不使用時默認爲root。
-v:延長密碼有效期5分鐘。
4.說明
sudo
命令的配置在/etc/sudoers文件中。當用戶使用sudo時,需要輸入口令以驗證使用者身份。隨後的一段時間內可以使用定義好的命令,當使用配置
文件中沒有的命令時,將會有報警的記錄。sudo是系統管理員用來允許某些用戶以root身份運行部分/全部系統命令的程序。一個明顯的用途是增強了站點
的安全性,如果需要每天以超級用戶的身份做一些日常工作,經常執行一些固定的幾個只有超級用戶身份才能執行的命令,那麼用sudo是非常適合的。
ps
1.作用
ps顯示瞬間進程 (process) 的動態,使用權限是所有使用者。
2.格式
ps [options] [--help]
3.主要參數
ps的參數非常多, 此出僅列出幾個常用的參數。
-A:列出所有的進程。
-l:顯示長列表。
-m:顯示內存信息。
-w:顯示加寬可以顯示較多的信息。
-e:顯示所有進程。
a:顯示終端上的所有進程,包括其它用戶的進程。
-au:顯示較詳細的信息。
-aux:顯示所有包含其它使用者的進程。
4.說明

對進程進行監測和控制,首先要了解當前進程的情況,也就是需要查看當前進程。ps命令就是最基本、也是非常強大的進程查看命令。使用該命令可以確定有哪些
進程正在運行、運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等。圖2給出了ps-aux命令詳解。大部分信息都可以通過執行該命
令得到。最常用的三個參數是u、a、x。下面就結合這三個參數詳細說明ps命令的作用:ps aux
圖2 ps-aux命令詳解
圖2第2行代碼中,USER表示進程擁有者;PID表示進程標示符;%CPU表示佔用的CPU使用率;%MEM佔用的物理內存使用率;VSZ表示佔用的虛擬內存大小;RSS爲進程佔用的物理內存值;TTY爲終端的次要裝置號碼。
STAT
表示進程的狀態,其中D爲不可中斷的靜止(I/O動作);R正在執行中;S靜止狀態;T暫停執行;Z不存在,但暫時無法消除;W沒有足夠的內存分頁可分
配;高優先序的進程;N低優先序的進程;L有內存分頁分配並鎖在內存體內 (實時系統或
I/O)。START爲進程開始時間。TIME爲執行的時間。COMMAND是所執行的指令。
4.應用實例
在進行系統維護時,經常會出現內存使用量驚人,而又不知道是哪一個進程佔用了大量進程的情況。除了可以使用top命令查看內存使用情況之外,還可以使用下面的命令:
ps aux | sort +5n
who
1.作用
who顯示系統中有哪些用戶登陸系統,顯示的資料包含了使用者ID、使用的登陸終端、上線時間、呆滯時間、CPU佔用,以及做了些什麼。 使用權限爲所有用戶。
2.格式
who - [husfV] [user]
3.主要參數
-h:不要顯示標題列。
-u:不要顯示使用者的動作/工作。
-s:使用簡短的格式來顯示。
-f:不要顯示使用者的上線位置。
-V:顯示程序版本。
4.說明

命令主要用於查看當前在線上的用戶情況。如果用戶想和其它用戶建立即時通信,比如使用talk命令,那麼首先要確定的就是該用戶確實在線上,不然
talk進程就無法建立起來。又如,系統管理員希望監視每個登錄的用戶此時此刻的所作所爲,也要使用who命令。who命令應用起來非常簡單,可以比較準
確地掌握用戶的情況,所以使用非常廣泛。
動手練習
1.使用Linux命令檢測系統***者

裝過Mandrake Linux和Red Hat
Linux的用戶都會知道,Linux系統會內置三種不同級別(標準、高、更高)的防火牆,當進行了Linux服務器的安裝和一些基本的設置後,服務器應
該說是比較安全的,但是也會有***通過各種方法利用系統管理員的疏忽侵入系統。如何快速查找***非常重要。一般來說,可以使用命令查詢***是否***,見表
1。
表1 查詢******現象的命令對應表
舉例說明,如果***嗅探網絡,那麼它必須使網卡接口處於混雜模式,使用下面命令進行查詢:
#ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1
......

這個命令的輸出中,可以看到上面講到的這些概念。第一行的00:00:E8:A0:25:86是mac地址,第二行的192.168.1.7是IP地址,
第四行講的是接收數據狀態,這時正在被***嗅探。一般而言,網卡有幾種接收數據幀的狀態,如Broadcast、Multicast、
Promiscuous等。Broadcast是指接收所有類型爲廣播報文的數據幀;Multicast是指接收特定的組播報文;Promiscuous
則是通常說的混雜模式,是指對報文中的目的硬件地址不加任何檢查、全部接收的工作模式。
2.限制su命令的濫用

們知道,超級用戶在Linux中有最大的權利,幾乎所有***都想得到這個目標。Linux可以增加對切換到超級用戶的限制。使用PAM
(Pluggable Authentication
Modules)可以禁止除在wheel組以外的任何人su成root,修改/etc/pam.d/su文件,除去屏蔽標識#。使用
/usr/sbin/usermod G10 bjecadm將bjecadm這個賬號加入gid爲10的組,就是wheel組。命令如下:
/etc/pam.d/su # 使用密碼驗證#
auth sufficient /lib/security/pam_wheel.so debug
# 限制只有wheel組用戶纔可以切換到root#
auth required /lib/security/pam_wheel.so use_uid
chmod -G10 bjecadm
另外,每當用戶試圖使用su命令進入系統用戶時,命令將在/usr/adm/sulog文件中寫一條信息,若該文件記錄了大量試圖用su進入root的無效操作信息,則表明了可能有人企圖破譯root口令。
Linux命令有着強大的功能。對於Linux系統管理員來說,往往只需要通過各種安全命令技巧,組合構成安全防線。從計算機安全的角度看,世界上沒有絕對安全的計算機系統,Linux系統也不例外。 
Linux必學的60個命令(6)-其他命令
Linux必學的60個命令:其它命令
在前面幾講中,我們把Linux命令按照在系統中的作用分成幾個部分分別予以介紹。但是,還有一些命令不好劃分,然而學習它們同樣是比較重要的。 
tar
1.作用
tar命令是Unix/Linux系統中備份文件的可靠方法,幾乎可以工作於任何環境中,它的使用權限是所有用戶。
2.格式
tar [主選項+輔選項] 文件或目錄
3.主要參數
使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。
主選項:
-c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。
-r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經做好備份文件,又發現還有一個目錄或是一些文件忘記備份了,這時可以使用該選項,將忘記的目錄或文件追加到備份文件中。
-t 列出檔案文件的內容,查看已經備份了哪些文件。
-u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最後。
-x 從檔案文件中釋放文件。
輔助選項:
-b 該選項是爲磁帶機設定的,其後跟一數字,用來說明區塊的大小,系統預設值爲20(20×512 bytes)。
-f 使用檔案文件或設備,這個選項通常是必選的。
-k 保存已經存在的文件。例如把某個文件還原,在還原的過程中遇到相同的文件,不會進行覆蓋。
-m 在還原文件時,把所有文件的修改時間設定爲現在。
-M 創建多卷的檔案文件,以便在幾個磁盤中存放。
-v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。
-w 每一步都要求確認。
-z 用gzip來壓縮/解壓縮文件,加上該選項後可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。
4.應用說明
tar 是Tape Archive(磁帶歸檔)的縮寫,最初設計用於將文件打包到磁帶上。如果下載過Linux的源代碼,或許已經碰到過tar文件
請注意,不要忘了Linux是區分大小寫的。例如,tar命令應該總是以小寫的形式執行。命令行開關可以是大寫、小寫或大小寫的混合。例如,-t和-T執行不同的功能。文件或目錄名稱可以混合使用大小寫,而且就像命令和命令行開關一樣是區分大小寫的。
5.應用實例
tar是一個命令行的工具,沒有圖形界面。使用Konsole打開一個終端窗口,接下來是一個簡單的備份命令(在/temp目錄中創建一個back.tar的文件,/usr目錄中所有內容都包含在其中。):
$tar cvf - /usr > /temp/back.tar

外,tar命令支持前面第三講中講過的crontab命令,可以用crontab工具設置成基於時間的有規律地運行。例如,每晚6點把/usr目錄備份到
hda—第一個IDE接口的主驅動器 (總是位於第一個硬盤)中,只要將下面語句添加到root的crontab中即可:
$00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr
一般情況下,以下這些目錄是需要備份的:
◆/etc 包含所有核心配置文件,其中包括網絡配置、系統名稱、防火牆規則、用戶、組,以及其它全局系統項。
◆ /var 包含系統守護進程(服務)所使用的信息,包括DNS配置、DHCP租期、郵件緩衝文件、HTTP服務器文件、dB2實例配置等。
◆/home 包含所有默認用戶的主目錄,包括個人設置、已下載的文件和用戶不希望失去的其它信息。
◆/root 根(root)用戶的主目錄。
◆/opt 是安裝許多非系統文件的地方。IBM軟件就安裝在這裏。OpenOffice、JDK和其它軟件在默認情況下也安裝在這裏。
有些目錄是可以不備份的:
◆ /proc 應該永遠不要備份這個目錄。它不是一個真實的文件系統,而是運行內核和環境的虛擬化視圖,包括諸如/proc/kcore這樣的文件,這個文件是整個運行內存的虛擬視圖。備份這些文件只是在浪費資源。
◆/dev 包含硬件設備的文件表示。如果計劃還原到一個空白的系統,就可以備份/dev。然而,如果計劃還原到一個已安裝的Linux 系統,那麼備份/dev是沒有必要的。
unzip
1.作用
unzip
命令位於/usr/bin目錄中,它們和MS DOS下的pkzip、pkunzip及MS
Windows中的Winzip軟件功能一樣,將文件壓縮成.zip文件,以節省硬盤空間,當需要的時候再將壓縮文件用unzip命令解開。該命令使用權
限是所有用戶。
2.格式
unzip [-cflptuvz][-agCjLMnoqsVX][-P ][.zip文件][文件][-d ][-x ]
3.主要參數
-c:將解壓縮的結果顯示到屏幕上,並對字符做適當的轉換。
-f:更新現有的文件。
-l:顯示壓縮文件內所包含的文件。
-p:與-c參數類似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換。
-t:檢查壓縮文件是否正確。
-u:與-f參數類似,但是除了更新現有的文件外,也會將壓縮文件中的其它文件解壓縮到目錄中。
-v:執行是時顯示詳細的信息。
-z:僅顯示壓縮文件的備註文字。
-a:對文本文件進行必要的字符轉換。
-b:不要對文本文件進行字符轉換。
-C:壓縮文件中的文件名稱區分大小寫。
-j:不處理壓縮文件中原有的目錄路徑。
-L:將壓縮文件中的全部文件名改爲小寫。
-M:將輸出結果送到more程序處理。
-n:解壓縮時不要覆蓋原有的文件。
-o:不必先詢問用戶,unzip執行後覆蓋原有文件。
-P:使用zip的密碼選項。
-q:執行時不顯示任何信息。
-s:將文件名中的空白字符轉換爲底線字符。
-V:保留VMS的文件版本信息。
-X:解壓縮時同時回存文件原來的UID/GID。
[.zip文件]:指定.zip壓縮文件。
[文件]:指定要處理.zip壓縮文件中的哪些文件。
-d:指定文件解壓縮後所要存儲的目錄。
-x:指定不要處理.zip壓縮文件中的哪些文件。
-Z unzip:-Z等於執行zipinfo指令。在Linux中,還提供了一個叫zipinfo的工具,能夠察看zip壓縮文件的詳細信息。unzip最新版本是5.50。
gunzip
1.作用
gunzip命令作用是解壓文件,使用權限是所有用戶。
2.格式
gunzip [-acfhlLnNqrtvV][-s ][文件...]
或者
gunzip [-acfhlLnNqrtvV][-s ][目錄]
3.主要參數
-a或--ascii:使用ASCII文字模式。
-c或--stdout或--to-stdout:把解壓後的文件輸出到標準輸出設備。
-f或-force:強行解開壓縮文件,不理會文件名稱或硬連接是否存在,以及該文件是否爲符號連接。
-h或--help:在線幫助。
-l或--list:列出壓縮文件的相關信息。
-L或--license:顯示版本與版權信息。
-n或--no-name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其忽略不予處理。
-N或--name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其回存到解開的文件上。
-q或--quiet:不顯示警告信息。
-r或--recursive:遞歸處理,將指定目錄下的所有文件及子目錄一併處理。
-S或--suffix:更改壓縮字尾字符串。
-t或--test:測試壓縮文件是否正確無誤。
-v或--verbose:顯示指令執行過程。
-V或--version:顯示版本信息。
4.說明
gunzip是個使用廣泛的解壓縮程序,它用於解開被gzip壓縮過的文件,這些壓縮文件預設最後的擴展名爲“.gz”。事實上,gunzip就是gzip的硬連接,因此不論是壓縮或解壓縮,都可通過gzip指令單獨完成。gunzip最新版本是1.3.3 。
unarj
1.作用
unarj解壓縮格式爲.arj格式的文件,使用權限是所有用戶。
2.格式
unarj [eltx][.arj壓縮文件]
3.主要參數
e:解壓縮.arj文件。
l:顯示壓縮文件內所包含的文件。
t:檢查壓縮文件是否正確。
x:解壓縮時保留原有的路徑。
4.說明
帶有.arj擴展名的文件是由用於MS DOS和Windows的ARJ實用程序創建的。因爲ARJ是一種不能免費獲得源代碼的共享件程序,所以在
mtools
1.作用
mtools
實際上是一個命令集合,是DOS文件系統的工具程序,它可以模擬許多DOS命令,使用起來非常方便。使用權限是所有用戶。Linux系統提供了一組稱爲
mtools的可移植工具,可以讓用戶輕鬆地從標準的DOS軟盤上讀、寫文件和目錄。它們對DOS和Linux環境之間交換文件非常有用。mtools的
使用非常簡單,如果想把軟盤裏所有的文件都拷貝到硬盤上,那麼就可以執行以下命令:
mcopy a:*.*
也就是說,只需要在相應的DOS命令之前加上一個字母“m”,就可以完成對應的功能了。一般Linux發行版本中都有這個軟件,可以使用下面命令檢查一下。
rpm -qa|grep mtools
如果沒有安裝,也沒有關係,可以從網上下載([url]http://mtools.linux.lu/[/url])一個最新版本來安裝。目前可供下載的最新mtools版本是
2.包括的命令
mcd 目錄名:改變MS DOS下的目錄。
mcopy 源文件 目標文件:在MS DOS和Unix之間複製文件。
mdel 文件名:刪除MS DOS下的文件。
mdir 目錄名:顯示MS DOS下的目錄。
mformat 驅動器號:在低級格式化的軟盤上創建MS DOS文件系統。
rnlabel 驅動器號:產生MS DOS下的卷標。
mmd 目錄名:建立MS DOS下的目錄。
mrd 目錄名:刪除MS DOS下的目錄。
mren 源文件 目標文件:重新命名已存在的MS DOS文件。
mtype 文件名:顯示MS DOS文件的內容。
請注意,這些命令和對應的MS DOS命令非常相似。在mtools命令中,“/”和“\”是可以混用的。因爲文件列表的是DOS系統下的文檔,對大小寫並不敏感,所以“CDE”和“cde”在這裏是一樣的。
3.應用實例
(1)如果把軟盤進行快速格式化,可以使用命令mformat:
mformat A:
mtools
當初發展的目的是用來處理DOS文件系統的,所以只能用在FAT文件格式的分區上。需要注意的是,如果用mount命令來掛載了FAT16/32分區,那
麼就不能使用mtools的指令來處理這些分區上的文件。這是因爲一旦FAT16/32分區掛到了Linux文件目錄下,Linux就會將其視爲文件系統
本身的一部分,這時如果要對其操作就必須使用Linux本身所附帶的指令集。
(2)將DOS盤上的文件htca.c複製到當前目錄下,並用ls命令進行驗證。
$ mcopy a:\htca.c
$ ls -l htca.c
-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c
man
1.作用
man命令用來提供在線幫助,使用權限是所有用戶。在Linux系統中存儲着一部聯機使用的手冊,以供用戶在終端上查找。使用man命令可以調閱其中的幫助信息,非常方便和實用。
2.格式
man 命令名稱
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...
3.參數
-C config_file:指定設定文件man.conf,缺省值是/etc/man.conf。
-M path:指定了聯機手冊的搜尋路徑, 如果沒有指定則使用環境變數MANPATH的設定;如果沒有使用MANPATH, 則會使用/usr/lib/man.conf內的設定;如果MANPATH是空字串,則表示使用缺省值。
-P pager:指定使用何種pager.man會優先使用此選項設定,然後是依環境變數MANPAGER設定,然後是環境變數PAGER;man缺省使用/usr/bin/less -is。
-S section_list man:所搜尋的章節列表(以冒號分隔),此選項會覆蓋環境變數MANSECT的設定。
-a man:缺省情況是在顯示第一個找到的手冊之後,就會停止搜尋,使用此選項會強迫man繼續顯示所有符合name的聯機手冊。
-c:即使有最新的cat page,也繼續對聯機手冊重新作排版,本選項在屏幕的行列數改變時或已排版的聯機手冊損壞時特別有意義。
-d:不要真的顯示聯機手冊,只顯示除錯訊息。
-D:同時顯示聯機手冊與除錯訊息。
-h:顯示求助訊息然後結束程式 。
-K:對所有的聯機手冊搜尋所指定的字串。請注意,本功能迴應速度可能很慢,如果指定section(區域)會對速度有幫助。
-m system:依所指定的system名稱而指定另一組的聯機手冊。
man:是manual(手冊)的縮寫。在輸入命令有困難時,可以立刻得到這個文檔。例如, 如果使用ps命令時遇到困難,可以輸入man ps得到幫助信息,此時會顯示出ps的手冊頁(man page)。
由於手冊頁man page是用less程序來看的(可以方便地使屏幕上翻和下翻), 所以在man page裏可以使用less的所有選項。
less中比較重要的功能鍵有:
[q] 退出;
[Enter] 一行行地下翻;
[Space] 一頁頁地下翻;
上翻一頁;
[/] 後跟一個字符串和[Enter]來查找字符串;
[n] 發現上一次查找的下一個匹配。
4.閱讀手冊頁
手冊頁在很少的空間裏提供了很多的信息, 這裏簡單介紹一下大多數手冊頁中都有的部分內容。Linux手冊頁主要有九個部分:用戶指令、系統調用、程序庫、設備說明、文件格式、遊戲、雜項、系統指令、內核,手冊頁快照見圖1所示。
圖1 ps命令手冊頁快照
Linux手冊頁佈局見表1。
5.應用實例
Linux
命令中有一些基礎的、重要的命令,例如ps、find、cat和ls等。下面來舉一個綜合應用的例子,由此可以看出man的地位在Linux中可謂至關重
要。但是,man所顯示的信息卻不是普通的文本,如果直接將這些文字重定向到一個文本文件,就會發現在man中高亮顯示的文字就變成了兩個,而且有不計其
數的製表符,使打印、編輯都變得非常不便。不過,使用下面這樣一條語句就能得到ps命令打印。
# man ps | col -b | lpr
這條命令同時運用了輸出重定向和管道兩種技巧,作用是將ps命令的幫助信息可以直接打印出來。更多的Man文件可以查看Linux Man
unencode
1.作用
unencode命令可以把一個二進制文件表編碼爲一個文本文件,使用權限是所有用戶。
2.格式
uuencode [-hv] [源文件] 目標文件
3.主要參數
-h:列出指令使用格式(help) 。
-v:列出版本信息。
4.應用說明
uuencode指令可以將二進制文件轉化成可使用電子郵件發送的ASCII編碼形式。uuencode編碼後的資料都以 begin開始,以end作爲結束,且通常其中的每一行的開始均爲“M”,中間部分是編碼過的文件,編碼後的文件比源文件要大一些。
uudecode
1.作用
uudecode命令用來將uuencode編碼後的檔案還原,uudecode只會將begin與end標記之間的編碼資料還原,程序會跳過標記以外的資料。它的使用權限爲所有用戶。
2.格式
uuencode [-hv] [file1 ...]
3.主要參數
-h:列出指令使用格式(help)。
-v:列出版本信息。
4.應用實例
使用下面命令一次還原幾個文件:
uuencode file1.uud file2.uud file3.uud
動手練習
1.在Linux命令行下發送郵件
雖然Linux桌面應用發展很快,但是命令行(Shell)在Linux中依然有很強的生命力。如果能確認電子郵件服務器支持8bit的字節,就可以直接使用下面命令:
cat <附件文件名> | mail <郵件地址>
cat(cat是concatenate的縮寫)命令是將幾個文件處理成一個文件,並將這種處理的結果保存到一個單獨的輸出文件,這裏我們用它來合併郵件的文本。
寫好郵件名稱,比如叫cjkmail,然後使用下面命令:
$uuencode <附件文件名> <附件文件名> >>cjkmail
這樣就可以用vi編輯器寫cjkmail文件,並在前面寫上信的正文,然後寄出。
對方收到信後,把信中屬於cjkmail中的內容拷貝出來,存爲themail.uue。如果對方是在Windows下,就可以用WinRAR或WinZip解壓,這樣就可以看到附件。
如果對方也使用Linux,可以用undecode命令還原:
$ uudencode -o<附件文件名> themail.uue
2.實現tar的分卷
筆者想把一個378MB的文件壓縮成多個63MB的文件(筆者的USB爲64MB),使用下面命令:
$tar czvf - dir | split -d -b 63m
然後合併命令:
$cat x* > dir.tgz
以上例子實際是由三個命令組合完成的,即用tar打包,用split分割,用cat合併。“tar czvf - dir”的意思是把dir目錄打包,並輸出到標準輸出(argv),這樣就可以直接用管道輸出給split。
3.連續執行一個命令
使用watch命令,可以反覆執行命令。如果和ls配合,可以達到觀察某文件大小變化的效果。
$watch ls -l file.name
4.用tar命令導出一個文件
有一個tar格式的DVD文件GLvPro6.4_linux.tar,因爲該文件非常大(4.7GB),如果全部解壓比較麻煩,可以用下面命令先導出readme.txt看看。
tar xvf GLvPro6.4_linux.tar readme.txt
這樣readme.txt就單獨被導出了。
5.用tar打包一個目錄時只備份其中的幾個子目錄
tar cf --exclude home/cjh home/cao
這樣home目錄下只有cjh和cao兩個子目錄備份。

到此爲止,Linux必學的60個命令已經全部介紹完了。Linux的命令行方式功能強大,如果熟練掌握了Linux的常用命令,往往只需要通過各種技巧就
可以組合構成一條複雜的命令,從而完成用戶任務。Linux系統中的命令實在是太多了,不可能像在MS
DOS中把所有的命令及參數都記住。Linux系統提供了一些方法,比如可以通過“help”和“man”來查詢名令。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章