netstat命令
netstat命令的功能是顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息,可以讓用戶得知目前都有哪些網(wǎng)絡(luò)連接正在運(yùn)作。
該命令的一般格式為:
netstat [選項(xiàng)]
命令中各選項(xiàng)的含義如下:
-a 顯示所有socket,包括正在監(jiān)聽的。
-c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網(wǎng)絡(luò)接口的信息,格式同“ifconfig -e”。
-n 以網(wǎng)絡(luò)IP地址代替名稱,顯示出網(wǎng)絡(luò)連接情形。
-r 顯示核心路由表,格式同“route -e”。
-t 顯示TCP協(xié)議的連接情況。
-u 顯示UDP協(xié)議的連接情況。
-v 顯示正在進(jìn)行的工作。
[例]在本地機(jī)上使用netstat命令。
$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 1 [ ] STREAM CONNECTED 270 @00000008
unix 1 [ ] STREAM CONNECTED 150 @00000002
unix 1 [ ] STREAM CONNECTED 104 @00000001
unix 1 [ ] STREAM CONNECTED 222 @00000004
unix 1 [ ] STREAM CONNECTED 171 @00000003
unix 1 [ ] STREAM CONNECTED 271 /dev/log
unix 1 [ ] STREAM CONNECTED 225 /dev/log
unix 1 [ ] STREAM CONNECTED 223 /dev/log
unix 1 [ ] STREAM CONNECTED 203 /dev/log
unix 1 [ ] STREAM CONNECTED 105 /dev/log
……
■ nslookup命令
nslookup命令的功能是查詢一臺機(jī)器的IP地址和其對應(yīng)的域名。它通常需要一臺域名服務(wù)器來提供域名服務(wù)。如果用戶已經(jīng)設(shè)置好域名服務(wù)器,就可以用這個命令查看不同主機(jī)的IP地址對應(yīng)的域名。
該命令的一般格式為:
nslookup [IP地址/域名]
[例]在本地機(jī)上使用nslookup命令。
$ nslookup
Default Server: name.tlc.com.cn
Address: 192.168.1.99
>
在符號“>”后面輸入要查詢的IP地址或域名并回車即可。如果要退出該命令,輸入exit并回車即可。
■ finger命令
finger命令的功能是查詢用戶的信息,通常會顯示系統(tǒng)中某個用戶的用戶名、主目錄、停滯時間、登錄時間、登錄shell等信息。如果要查詢遠(yuǎn)程機(jī)上
的用戶信息,需要在用戶名后面接“@主機(jī)名”,采用[用戶名@主機(jī)名]的格式,不過要查詢的網(wǎng)絡(luò)主機(jī)需要運(yùn)行finger守護(hù)進(jìn)程。
該命令的一般格式為:
finger [選項(xiàng)] [使用者] [用戶@主機(jī)]
命令中各選項(xiàng)的含義如下:
-s 顯示用戶的注冊名、實(shí)際姓名、終端名稱、寫狀態(tài)、停滯時間、登錄時間等信息。
-l 除了用-s選項(xiàng)顯示的信息外,還顯示用戶主目錄、登錄shell、郵件狀態(tài)等信息,以及用戶主目錄下的.plan、.project和.forward文件的內(nèi)容。
-p 除了不顯示.plan文件和.project文件以外,與-l選項(xiàng)相同。
[例]在本地機(jī)上使用finger命令。
$ finger xxq
Login: xxq Name:
Directory: /home/xxq Shell: /bin/bash
Last login Thu Jan 1 21:43 (CST) on tty1
No mail.
No Plan.
$ finger
Login Name Tty Idle Login Time Office Office Phone
root root *1 28 Nov 25 09:17
……
■ ping命令
ping命令用于查看網(wǎng)絡(luò)上的主機(jī)是否在工作,它向該主機(jī)發(fā)送ICMP ECHO_REQUEST包。有時我們想從網(wǎng)絡(luò)上的某臺主機(jī)上下載文件,可是又不知道那臺主機(jī)是否開著,就需要使用ping命令查看。
該命令的一般格式為:
ping [選項(xiàng)] 主機(jī)名/IP地址
命令中各選項(xiàng)的含義如下:
-c 數(shù)目 在發(fā)送指定數(shù)目的包后停止。
-d 設(shè)定SO_DEBUG的選項(xiàng)。
-f 大量且快速地送網(wǎng)絡(luò)封包給一臺機(jī)器,看它的回應(yīng)。
-I 秒數(shù) 設(shè)定間隔幾秒送一個網(wǎng)絡(luò)封包給一臺機(jī)器,預(yù)設(shè)值是一秒送一次。
-l 次數(shù) 在指定次數(shù)內(nèi),以最快的方式送封包數(shù)據(jù)到指定機(jī)器(只有超級用戶可以使用此選項(xiàng))。
-q 不顯示任何傳送封包的信息,只顯示最后的結(jié)果。
-r 不經(jīng)由網(wǎng)關(guān)而直接送封包到一臺機(jī)器,通常是查看本機(jī)的網(wǎng)絡(luò)接口是否有問題。
-s 字節(jié)數(shù) 指定發(fā)送的數(shù)據(jù)字節(jié)數(shù),預(yù)設(shè)值是56,加上8字節(jié)的ICMP頭,一共是64ICMP數(shù)據(jù)字節(jié)。
網(wǎng)絡(luò)通信
ytalk
功能說明:與其他用戶交談。
語 法:ytalk [-isxY][-h<主機(jī)名稱IP地址>][用戶名稱...]
補(bǔ)充說明:通過ytalk指令,你可以和其他用戶線上交談,如果想和其他主機(jī)的用戶交談,在用戶名稱后加上其主機(jī)名稱或IP地址即可。
參 數(shù):
-h<主機(jī)名稱IP地址> 指定交談對象所在的遠(yuǎn)端主機(jī)。
-i 用提醒聲響代替顯示信息。
-s 在指令提示符號先開啟ytalk交談窗。
-x 關(guān)閉圖形界面。
-Y 所有必須回應(yīng)yes或no的問題,都必須用大寫英文字母"Y"或"N"回答。
write
功能說明:傳送信息。
語 法:write [用戶名稱][終端機(jī)編號]
補(bǔ)充說明:通過write指令可傳遞信息給另一位登入系統(tǒng)的用戶,當(dāng)輸入完畢后,鍵入EOF表示信息結(jié)束,write指令就會將信息傳給對方。如果接收信息的用戶不只登入本地主機(jī)一次,你可以指定接收信息的終端機(jī)編號。
wall(write all)
功能說明:傳送信息。
語 法:wall [公告信息]
補(bǔ)充說明:通過wall指令可將信息發(fā)送給每位同意接收公眾信息的終端機(jī)用戶,若不給予其信息內(nèi)容,則wall指令會從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù),然后再把所得到的數(shù)據(jù)傳送給所有終端機(jī)用戶。
uux
功能說明:在遠(yuǎn)端的UUCP主機(jī)上執(zhí)行指令。
語 法:uux [-bcCIjlnrvz][-a<地址>][-g<等級>][-s<文件>][-x<層級>][--help][指令]
補(bǔ)充說明:uux可在遠(yuǎn)端的UUCP主機(jī)上執(zhí)行指令或是執(zhí)行本機(jī)上的指令,但在執(zhí)行時會使用遠(yuǎn)端電腦的文件。
參 數(shù):
-或-p或--stdin 直接從鍵盤讀取要執(zhí)行的指令。
-a<地址>或--requestor<地址> 執(zhí)行郵件地址,以便寄送狀態(tài)信息。
-b或--erturn-stdin 在屏幕上顯示狀態(tài)信息。
-c或--nocopy 不用將文件復(fù)制到緩沖區(qū)。
-C或--copy 將文件復(fù)制到緩沖區(qū)。
-g<等級>或--grade<等級> 指定文件傳送作業(yè)的優(yōu)先順序。
-I或--config file 指定uux配置文件。
-j或--jobid 顯示作業(yè)編號。
-l或--link 將本機(jī)上的文件連接到緩沖區(qū)。
-n或--notification=no 無論發(fā)生任何狀態(tài),都不寄郵件通知用戶。
-r或--nouucico 不要立即啟動uucico服務(wù)程序,僅將作業(yè)送到隊列中,然后再執(zhí)行。
-s<文件>或--status<文件> 將完成狀態(tài)保存為指定的文件。
-v或--version 顯示版本信息。
-x<層級>或--debug<層級> 指定排錯層級。
-z或--notification=error 若發(fā)生錯誤,則以郵件來通知用戶。
--help 顯示幫助。
uustat
功能說明:顯示UUCP目前的狀況。
語 法:uustat
[-aeiKmMNpqQRv][-B<行數(shù)>][-c<指令>][-C<指令>][-I<配置文件
>][-k<工作>][-o<小時>][-r<工作>][-s<主機(jī)>][-S<主機(jī)
>][-u<用戶>][-U<用戶>][-W<附注>][-y<小時>][-x<層級
>][--help]
補(bǔ)充說明:執(zhí)行uucp與uux指令后,會先將工作送到隊列,再由uucico來執(zhí)行工作。uustat可顯示,刪除或啟動隊列中等待執(zhí)行的工作。
參 數(shù):
-a或-all 顯示全部的UUCP工作。
-B<行數(shù)>或--mail-lines<行數(shù)> 與-M或-N參數(shù)一并使用,用來指定郵件中要包含多少行的信息。
-c<指令>或--command<指令> 顯示與<指令>有關(guān)的工作。
-C<指令>或--not-command<指令> 顯示與<指令>無關(guān)的工作。
-e或--executions 僅顯示待執(zhí)行的工作。
-i或--prompt 針對隊列中的每項(xiàng)工作,詢問使用是否要刪除工作。
-I<配置文件>或--config<配置文件> 指定配置文件。
-k<工作>或--kill<工作> 刪除指定的工作。
-m或--status 刪除全部的工作。
-M或-mail 將狀態(tài)信息郵寄給UUCP管理員。
-N或--notify 將狀態(tài)信息分別郵寄給提出該項(xiàng)工作的用戶。
-o<小時>或--older-than<小時> 顯示超過指定時數(shù)的工作。
-p或--ps 顯示負(fù)責(zé)UUCP鎖定的程序。
-q或--list 顯示每臺遠(yuǎn)端主機(jī)上所要執(zhí)行工作的狀態(tài)。
-Q或--no-list 不顯示工作。
-r<工作>或--rejuvenate<工作> 重新啟動指定的工作。
-R或--rejuvenate-all 重新啟動全部的工作。
-s<主機(jī)>或--system<主機(jī)> 顯示與<主機(jī)>有關(guān)的工作。
-S<主機(jī)>或--not-system<主機(jī)> 顯示與<主機(jī)>無關(guān)的工作。
-v或--version 顯示版本信息。
-u<用戶>或--user<用戶> 顯示與<用戶>有關(guān)的工作。
-U<用戶>或--not-user<用戶> 顯示與<用戶>無關(guān)的工作。
-W<附注>或--comment<附注> 要放在郵件信息中的附注。
-y<小時>或--younger-than<小時> 顯示低于指定時數(shù)的工作。
-x<層級>或--debug<層級> 指定排錯層級。
--help 顯示幫助。
uuname
功能說明:顯示全部的UUCP遠(yuǎn)端主機(jī)。
語 法:uuname [-alv][-I<配置文件>][--help]
補(bǔ)充說明:uuname可顯示UUCP遠(yuǎn)端主機(jī)。
參 數(shù):
-a或--aliases 顯示別名。
-I<配置文件>或--config<配置文件> 指定程序的配置文件。
-l或--local 顯示本機(jī)名稱。
-v或--version 顯示版本信息。
--help 顯示幫助。
uulog
功能說明:顯示UUCP記錄文件。
語 法:uulog [-DFISv][-<行數(shù)>][-f<主機(jī)>][-I<配置文件>][-n<行數(shù)>][-s<主機(jī)>][-u<用戶>][-X<層級>][--help]
補(bǔ)充說明:uulog可用來顯示UUCP記錄文件中記錄。
參 數(shù):
-D或--debuglog 顯示排錯記錄。
-f<主機(jī)>或--follow<主機(jī)> 與-F參數(shù)類似,但僅顯示與指定主機(jī)相關(guān)的記錄。
-I<配置文件>或--config<配置文件> 指定程序的配置文件。
-<行數(shù)>,-n<行數(shù)>或--lines<行數(shù)> 顯示記錄文件中,從最后算起指定行數(shù)的數(shù)值。
-s<主機(jī)> 僅顯示記錄文件中,與指定文件相關(guān)的記錄。
-S或--statslog 顯示統(tǒng)計記錄。
-u<用戶>或--suer<用戶> 僅顯示記錄文件中,與指定用戶相關(guān)的記錄。
-v或--version 顯示版本信息。
-X<層級>或--debug<層級> 設(shè)定排錯層級。
--help 顯示幫助。
tty(teletypewriter)
功能說明:顯示終端機(jī)連接標(biāo)準(zhǔn)輸入設(shè)備的文件名稱。
語 法:tty [-s][--help][--version]
補(bǔ)充說明:在Linux操作系統(tǒng)中,所有外圍設(shè)備都有其名稱與代號,這些名稱代號以特殊文件的類型存放于/dev目錄下。你可以執(zhí)行tty指令查詢目前使用的終端機(jī)的文件名稱。
參 數(shù):
-s或--silent或--quiet 不顯示任何信息,只回傳狀態(tài)代碼。
--help 在線幫助。
--version 顯示版本信息。
traceroute
功能說明:顯示數(shù)據(jù)包到主機(jī)間的路徑。
語 法:traceroute
[-dFlnrvx][-f<存活數(shù)值>][-g<網(wǎng)關(guān)>...][-i<網(wǎng)絡(luò)界面>][-m<存活數(shù)值
>][-p<通信端口>][-s<來源地址>][-t<服務(wù)類型>][-w<超時秒數(shù)>][主機(jī)
名稱或IP地址][數(shù)據(jù)包大小]
補(bǔ)充說明:traceroute指令讓你追蹤網(wǎng)絡(luò)數(shù)據(jù)包的路由途徑,預(yù)設(shè)數(shù)據(jù)包大小是40Bytes,用戶可另行設(shè)置。
參 數(shù):
-d 使用Socket層級的排錯功能。
-f<存活數(shù)值> 設(shè)置第一個檢測數(shù)據(jù)包的存活數(shù)值TTL的大小。
-F 設(shè)置勿離斷位。
-g<網(wǎng)關(guān)> 設(shè)置來源路由網(wǎng)關(guān),最多可設(shè)置8個。
-i<網(wǎng)絡(luò)界面> 使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包。
-I 使用ICMP回應(yīng)取代UDP資料信息。
-m<存活數(shù)值> 設(shè)置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小。
-n 直接使用IP地址而非主機(jī)名稱。
-p<通信端口> 設(shè)置UDP傳輸協(xié)議的通信端口。
-r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上。
-s<來源地址> 設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址。
-t<服務(wù)類型> 設(shè)置檢測數(shù)據(jù)包的TOS數(shù)值。
-v 詳細(xì)顯示指令的執(zhí)行過程。
-w<超時秒數(shù)> 設(shè)置等待遠(yuǎn)端主機(jī)回報的時間。
-x 開啟或關(guān)閉數(shù)據(jù)包的正確性檢驗(yàn)。
testparm(test parameter)
功能說明:測試Samba的設(shè)置是否正確無誤。
語 法:testparm [-s][配置文件][<主機(jī)名稱> ]
補(bǔ)充說明:執(zhí)行testparm指令可以簡單測試Samba的配置文件,假如測試結(jié)果無誤,Samba常駐服務(wù)就能正確載入該設(shè)置值,但并不保證其后的操作如預(yù)期般一切正常。
參 數(shù):
-s 不顯示提示符號等待用戶按下Enter鍵,就直接列出Samba服務(wù)定義信息。
telnet
功能說明:遠(yuǎn)端登入。
語 法:telnet
[-8acdEfFKLrx][-b<主機(jī)別名>][-e<脫離字符>][-k<域名>][-l<用戶名稱
>][-n<記錄文件>][-S<服務(wù)類型>][-X<認(rèn)證形態(tài)>][主機(jī)名稱或IP地址<通信端口
>]
補(bǔ)充說明:執(zhí)行telnet指令開啟終端機(jī)階段作業(yè),并登入遠(yuǎn)端主機(jī)。
參 數(shù):
-8 允許使用8位字符資料,包括輸入與輸出。
-a 嘗試自動登入遠(yuǎn)端系統(tǒng)。
-b<主機(jī)別名> 使用別名指定遠(yuǎn)端主機(jī)名稱。
-c 不讀取用戶專屬目錄里的.telnetrc文件。
-d 啟動排錯模式。
-e<脫離字符> 設(shè)置脫離字符。
-E 濾除脫離字符。
-f 此參數(shù)的效果和指定"-F"參數(shù)相同。
-F 使用Kerberos V5認(rèn)證時,加上此參數(shù)可把本地主機(jī)的認(rèn)證數(shù)據(jù)上傳到遠(yuǎn)端主機(jī)。
-k<域名> 使用Kerberos認(rèn)證時,加
其他命令
echo命令
echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。該命令的一般格式為:
echo [ -n ] 字符串
其中選項(xiàng)n表示輸出文字后不換行;字符串可以加引號,也可以不加引號。用echo命令輸出加引號的字符串時,將字符串原樣輸出;用echo命令輸出不加引號的字符串時,將字符串中的各個單詞作為字符串輸出,各字符串之間用一個空格分割。
例1:
$ echo ‘Thank you !’
Thank you !
例2:
$ echo Thank you !
Thank you !
cal命令
cal命令的功能是顯示某年某月的日歷。該命令的一般格式為:
cal [選項(xiàng)] [月 [年]]
命令中各選項(xiàng)的含義為:
- j 顯示出給定月中的每一天是一年中的第幾天(從1月1日算起)。
- y 顯示出整年的日歷?!?br />
例1 顯示1999年11月的日歷。
$ cal 11 1999
November 1999
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
例2 顯示1999年11月的每一天是一年中的第幾天。
$ cal – j 11 1999
November 1999
Sun Mon Tue Wed Thu Fri Sat
305 306 307 308 309 310
311 312 313 314 315 316 317
318 319 320 321 322 323 324
325 326 327 328 329 330 331
332 333 334
date命令
date命令的功能是顯示和設(shè)置系統(tǒng)日期和時間。該命令的一般格式為:
date [選項(xiàng)] 顯示時間格式(以+開頭,后面接格式)
date 設(shè)置時間格式
命令中各選項(xiàng)的含義分別為:
-d datestr, --date datestr 顯示由datestr描述的日期
-s datestr, --set datestr 設(shè)置datestr 描述的日期
-u, --universal 顯示或設(shè)置通用時間
時間域
% H 小時(00..23)
% I 小時(01..12)
% k 小時(0..23)
% l 小時(1..12)
% M 分(00..59)
% p 顯示出AM或PM
% r 時間(hh:mm:ss AM或PM),12小時
% s 從1970年1月1日00:00:00到目前經(jīng)歷的秒數(shù)
% S 秒(00..59)
% T 時間(24小時制)(hh:mm:ss)
% X 顯示時間的格式(%H:%M:%S)
% Z 時區(qū)
日期域
% a 星期幾的簡稱( Sun..Sat)
% A 星期幾的全稱( Sunday..Saturday)
% b 月的簡稱(Jan..Dec)
% B 月的全稱(January..December)
% c 日期和時間( Mon Nov 8 14:12:46 CST 1999)
% d 一個月的第幾天(01..31)
% D 日期(mm/dd/yy)
% h 和%b選項(xiàng)相同
% j 一年的第幾天(001..366)
% m 月(01..12)
% w 一個星期的第幾天(0代表星期天)
% W 一年的第幾個星期(00..53,星期一為第一天)
% x 顯示日期的格式(mm/dd/yy)
% y 年的最后兩個數(shù)字( 1999則是99)
% Y 年(例如:1970,1996等)
需要特別說明的是,只有超級用戶才能用date命令設(shè)置時間,一般用戶只能用date命令顯示時間。
例1:用指定的格式顯示時間。
$ date ‘+This date now is =>%x ,time is now =>%X ,thank you !’
This date now is =>11/12/99 ,time is now =>17:53:01 ,thank you !
例2:用預(yù)定的格式顯示當(dāng)前的時間。
# date
Fri Nov 26 15:20:18 CST 1999
例3:設(shè)置時間為下午14點(diǎn)36分。
# date -s 14:36:00
Fri Nov 26 14:15:00 CST 1999
例4:設(shè)置時間為1999年11月28號。
# date -s 991128
Sun Nov 28 00:00:00 CST 1999
clear命令
clear命令的功能是清除屏幕上的信息,它類似于DOS中的 cls命令。清屏后,提示符移動到屏幕左上角。
例如:$ clear
與用戶有關(guān)的命令
passwd命令
出于系統(tǒng)安全考慮,Linux系統(tǒng)中的每一個用戶除了有其用戶名外,還有其對應(yīng)的用戶口令。因此使用useradd命令增加時,還需使用passwd命令為每一位新增加的用戶設(shè)置口令;用戶以后還可以隨時用passwd命令改變自己的口令。該命令的一般格式為:
passwd [用戶名]
其中用戶名為需要修改口令的用戶名。只有超級用戶可以使用“passwd 用戶名”修改其他用戶的口令,普通用戶只能用不帶參數(shù)的passwd命令修改自己的口令。該命令的使用方法如下:
輸入passwd< Enter>;
在(current) UNIX passwd:下輸入當(dāng)前的口令
在new password:提示下輸入新的口令(在屏幕上看不到這個口令):
系統(tǒng)提示再次輸入這個新口令。
輸入正確后,這個新口令被加密并放入/etc/shdow文件。選取一個不易被破譯的口令是很重要的。選取口令應(yīng)遵守如下規(guī)則:
口令應(yīng)該至少有六位(最好是八位)字符;
口令應(yīng)該是大小寫字母、標(biāo)點(diǎn)符號和數(shù)字混雜的。
超級用戶修改其他用戶(xxq)的口令的過程如下,
# passwd xxq
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
#
su命令
這個命令非常重要。它可以讓一個普通用戶擁有超級用戶或其他用戶的權(quán)限,也可以讓超級用戶以普通用戶的身份做一些事情。普通用戶使用這個命令時必須有超級用戶或其他用戶的口令。如要離開當(dāng)前用戶的身份,可以打exit。
該命令的一般形式為:
su [選項(xiàng)] [? ] [使用者帳號]
說明:若沒有指定使用者帳號,則系統(tǒng)預(yù)設(shè)值為超級用戶root。
該命令中各選項(xiàng)的含義分別為:
? c 執(zhí)行一個命令后就結(jié)束。
? 加了這個減號的目的是使環(huán)境變量和欲轉(zhuǎn)換的用戶相同。
? m 保留環(huán)境變量不變。
例1: 變成root用戶
$ su ?
password: 【輸入超級用戶的密碼】
例2: 變成xu使用者,并執(zhí)行一個命令就結(jié)束。
$ su -xu ? c “rmdir cat1”
與系統(tǒng)管理有關(guān)的命令
wall命令
這個命令的功能是對全部已登錄的用戶發(fā)送信息,用戶可以先把要發(fā)送的信息寫好存入一個文件中,然后輸入:
# wall < 文件名
這樣就能對所有的用戶發(fā)送信息了。
在上面的例子中符號“<”表示輸入重定向,有關(guān)它的含義和用法請參閱第十章的有關(guān)內(nèi)容。
例如:
# wall ‘Thank you!’
Broadcast message from root (tty1) Fri Nov 26 14:15:07 1999…
Thank you!
#
執(zhí)行以上命令后,用戶的屏幕上顯示出“Thank you!”信息后,并不出現(xiàn)系統(tǒng)提示符$(#),再次按回車鍵后,屏幕出現(xiàn)系統(tǒng)提示符。
write命令
write命令的功能是向系統(tǒng)中某一個用戶發(fā)送信息。
該命令的一般格式為:
write 用戶帳號 [終端名稱]
例如:
$ write xxq
hello
此時系統(tǒng)進(jìn)入發(fā)送信息狀態(tài),用戶可以輸入要發(fā)送的信息,輸入完畢,希望退出發(fā)送狀態(tài)時,按組合鍵即可。
上述命令執(zhí)行的結(jié)果是,用戶xxq的屏幕上會顯示:
message from test@test.tlc.com.cn tty1 at 15:51…
hello
EOF
mesg指令
mesg命令設(shè)定是否允許其他用戶用write命令給自己發(fā)送信息。如果允許別人給自己發(fā)送信息,輸入命令:
# mesg y
否則,輸入:
# mesg n
對于超級用戶,系統(tǒng)的默認(rèn)值為 n;而對于一般用戶系統(tǒng)的默認(rèn)值為y。
如果mesg后不帶任何參數(shù),則顯示當(dāng)前的狀態(tài)是y還是n,如:
$ mesg
is y
或:
# mesg
is n
sync命令
sync命令是在關(guān)閉Linux系統(tǒng)時使用的。
用戶需要注意的是,不能用簡單的關(guān)閉電源的方法關(guān)閉系統(tǒng),因?yàn)長inux象其他Unix系統(tǒng)一樣,在內(nèi)存中緩存了許多數(shù)據(jù),在關(guān)閉系統(tǒng)時需要進(jìn)行內(nèi)存數(shù)
據(jù)與硬盤數(shù)據(jù)的同步校驗(yàn),保證硬盤數(shù)據(jù)在關(guān)閉系統(tǒng)時是最新的,只有這樣才能確保數(shù)據(jù)不會丟失。一般正常的關(guān)閉系統(tǒng)的過程是自動進(jìn)行這些工作的,在系統(tǒng)運(yùn)行
過程中也會定時做這些工作,不需要用戶干預(yù)。
sync命令是強(qiáng)制把內(nèi)存中的數(shù)據(jù)寫回硬盤,以免數(shù)據(jù)的丟失。用戶可以在需要的時候使用此命令。該命令的一般格式為:
sync
shutdown命令
shutdown
命令可以安全地關(guān)閉或重啟Linux系統(tǒng),它在系統(tǒng)關(guān)閉之前給系統(tǒng)上的所有登錄用戶提示一條警告信息。該命令還允許用戶指定一個時間參數(shù),可以是一個精確
的時間,也可以是從現(xiàn)在開始的一個時間段。精確時間的格式是hh:mm,表示小時和分鐘;時間段由“+”和分鐘數(shù)表示。系統(tǒng)執(zhí)行該命令后,會自動進(jìn)行數(shù)據(jù)
同步的工作。該命令的一般格式為:
shutdown [選項(xiàng)] [時間] [警告信息]
命令中各選項(xiàng)的含義為:
- k 并不真正關(guān)機(jī),而只是發(fā)出警告信息給所有用戶。
- r 關(guān)機(jī)后立即重新啟動。
- h 關(guān)機(jī)后不重新啟動。
- f 快速關(guān)機(jī),重啟動時跳過fsck。
- n 快速關(guān)機(jī),不經(jīng)過init程序。
- c 取消一個已經(jīng)運(yùn)行的shutdown。
需要特別說明的是,該命令只能由超級用戶使用。
例1:系統(tǒng)在十分鐘后關(guān)機(jī),并且馬上重新啟動。
# shutdown – r +10
例2:系統(tǒng)馬上關(guān)機(jī),并且不重新啟動。
# shutdown – h now
free命令
free命令的功能是查看當(dāng)前系統(tǒng)內(nèi)存的使用情況,它顯示系統(tǒng)中剩余及已用的物理內(nèi)存和交換內(nèi)存,以及共享內(nèi)存和被核心使用的緩沖區(qū)。該命令的一般格式為:
free [-b | -k | -m]
命令中各選項(xiàng)的含義如下:
-b 以字節(jié)為單位顯示。
-k 以K字節(jié)為單位顯示。
-m 以兆字節(jié)為單位顯示。
例:
$ free
total used free shared buffers cached
Mem: 63076 32020 31056 8204 16360 6048
-/+ buffers/cache: 9612 53464
Swap: 64476 2240 62236
uptime命令
uptime命令顯示系統(tǒng)已經(jīng)運(yùn)行了多長時間,它依次顯示下列信息:現(xiàn)在時間、系統(tǒng)已經(jīng)運(yùn)行了多長時間、目前有多少登錄用戶、系統(tǒng)在過去的1分鐘、5分鐘和15分鐘內(nèi)的平均負(fù)載。該命令的一般格式為:
uptime
例:
# uptime
4:43pm up 1 day, 5:51, 2 user, load average: 0.01, 0.01, 0.00
系統(tǒng)備份與恢復(fù)常用命令
1. fbackup & frecover
A. 系統(tǒng)備份命令: fbackup
1) fbackup的常用方式一:
(1) 進(jìn)入單用戶:
# shutdown -y 0
# /etc/mount -a
(2) 系統(tǒng)全備份
# fbackup -f /dev/rmt/0m -0v -i / -I /tmp/sysbk.index
-f : 設(shè)備文件名 ( such as DDS tape driver)
-i : 要包含的目錄
-e: 不包含的目錄
- I: 備份內(nèi)容檢索目錄
- v: 備份內(nèi)容詳細(xì)列表
- 0 :零級備份
# fbackup -f /dev/rmt/0m -i / -e /home
備份除了目錄 /home的所有目錄
(3) 說明
? 該命令方式對系統(tǒng)當(dāng)前"mounted"的文件系統(tǒng)進(jìn)行備份
? 備份級別說明
備份級別有0~9 個級別,如果當(dāng)前系統(tǒng)采用零級備份,當(dāng)下一次采用5 級備份時,系統(tǒng)僅將會對有變化的文件進(jìn)行備份
2) fbackup的常用方式二:
(1) # mkdir -p /tmp/fbackupfiles/index
# mkdir -p /tmp/fbackupfiles/log
(2) # touch /tmp/fbackupfiles/index/full.`date +%y%m%d.%H:%M`
(3) 進(jìn)入單用戶
# shutdown -y 0
# /etc/mount -a
(4) 對系統(tǒng)進(jìn)行全備份
# fbackup -0vi / -f /dev/rmt/0m -I /tmp/fbackupfiles/index/full.`date
+%y%m%d.%H:%M` 2 > /tmp/fbackupfiles/log/ full.`date +%y%m%d.%H:%M`
(5) 說明
通過該方式可以知到系統(tǒng)備份需要的時間
3) fbackup的常用方式三:
(1) 進(jìn)入單用戶
# shutdown -y 0
# /etc/mount -a
(2) 對系統(tǒng)進(jìn)行全備份
# fbackup -0uv / -f /dev/rmt/0m -g /tmp/fbackupfiles/mygraph -I
/tmp/fbackupfiles/index/full.`date +%y%m%d.%H:%M` 2 >
/tmp/fbackupfiles/log/ full.`date +%y%m%d.%H:%M`
(3) 說明
? 文件 mygraph: 包含需要備份的目錄,格式如下:
i /users/data
i /home/app
e /oracle/sql
? 參數(shù) u :
當(dāng)備份系統(tǒng)成功時,系統(tǒng)將更新 /var/adm/fbackupfiles/dates.
4) fbackup的常用方式四:
備份遠(yuǎn)程系統(tǒng)
(1) 登錄在本地系統(tǒng)時
# remsh backup_sysname " fbackup -f DDS_sysname: /dev/rmt/0m -0v -i / "
(2) 登錄在遠(yuǎn)程系統(tǒng)時
# fbackup -f DDS_sysname: /dev/rmt/0m -0v -i /
5) fbackup的常用方式五:
壓縮方式備份( 不建議使用、影響系統(tǒng)性能)
(1) 壓縮方式備份
# fbackup -0vi /dir -f - | compress | dd of=/dev/rmt/0m obs=10k
"-" : 指向標(biāo)準(zhǔn)輸出
(2) 查看備份內(nèi)容
# dd if=/dev/rmt/0m ibs=10k | uncompress | frecover -I - -f -
B. 系統(tǒng)恢復(fù)命令: frecover
1) 恢復(fù)磁帶機(jī)上所有內(nèi)容:
(1) 進(jìn)入單用戶:
# shutdown -y 0
# /etc/mount -a
(2) 恢復(fù)數(shù)據(jù)
# frecover -rf /dev/rmt/0m
恢復(fù)磁帶上的所有數(shù)據(jù)
-f: 設(shè)備文件名
-r: 恢復(fù)磁帶上的所有數(shù)據(jù)
-I: 將磁帶上文件索引存到指定的文件中
# frecover -I /tmp/index.txt -f /dev/rmt/0m
2) 恢復(fù)某一目錄:
# frecover -xi /directory
# frecover -x -i /dir1 -i /dir2
# frecover -xoi /dir
-o: 覆蓋/dir下已有的、相同名稱的文件
# frecover -xvXi /dir
-X: 相對與當(dāng)前目錄恢復(fù)數(shù)據(jù),而不是按絕對路徑恢復(fù)數(shù)據(jù)
# cd /tmp/local; frecover -xvFi /dir
-F: 僅恢復(fù)文件,而不恢復(fù)到文件的路徑
例如:
# cd /tmp/local
# frecover -xvF -i /home/filename
[恢復(fù)結(jié)果] /tmp/local/filename 不是 /home/filename
3) 從遠(yuǎn)程磁帶機(jī)上恢復(fù)數(shù)據(jù)到本地:
# frecover -xi /dir -f remote_name : /dev/rmt/0m
4) 從本地磁帶機(jī)上恢復(fù)數(shù)據(jù)到遠(yuǎn)地系統(tǒng):
# remsh remote_name "frecover -xi /dir -f local_name:
/dev/rmt/0m"
2. tar 命令
A. 對系統(tǒng)全備份
# tar cvf /dev/rmt/0m /
B. 備份某目錄
# tar cvf /dev/rmt/0m /tmp
C. 改變文件的備份路徑
# tar cvf /dev/rmt/0m -C /tmp .
[Note] : 路徑 /tmp 在磁帶上的備份路徑變?yōu)?./
# cd /tmp
# tar cvf /dev/rmt/0m ./*
D. 恢復(fù)數(shù)據(jù)
# tar xvf /dev/rmt/0m (磁帶上所有數(shù)據(jù))
# tar xvf /dev/rmt/0m /tmp ( 恢復(fù)目錄 /tmp )
E. 查看磁帶上的數(shù)據(jù)
# tar tvf /dev/rmt/0m
3. SAM
1) 備份數(shù)據(jù)
# sam
----> Select " Backup and Recovery "
---- >Select " Interactive Backup and Recovery "
---- >Select " Backup Device "
---- > Select " Backup Files Interactively " ( From [ Action ] menus )
----- > Select Backup Scope
----- > Select Local File Systems Only ( no NFS )
-----> Select"OK"
2. 檢查備份的數(shù)據(jù)
(1) 檢查文件 /var/sam/log/br_log
Notes: if Exit code=2, there is problem on backup procedure.
(2) 查看磁帶上有那些文件
# frecover -rNsv -f /dev/rmt/0m
4. Copyutil
如何啟動" Copyutil "
(1) 從CD boot , 進(jìn)入ISL
BOOT_ADMIN>boot scsi.n.m ( path of CDROM drive----such as scsi.4.0)
(2) ISL>ode copyutil
Type help for command information
(3) ISL_CMD>copyutil
please wait while scan device bussess…
TY Indx Path Product ID Bus Size Rev
D 0 16/5.6.0 SEAGATEST31230N disk drive SCSI 1.0 GB HPM4
D 1 16/5.5.0 SEAGATEST31230N disk drive SCSI 1.0 GB HPM4
T 2 16/5.0.0 HPC1504[X]/HPC1521B DDS tape SCSI n/a 1009
a. 備份系統(tǒng)硬盤上的所有數(shù)據(jù)
COPYUTIL>backup
Enter the disk index ([q]/?): 0
Enter the Tape index ([q]/?): 2
Use data compression? (y/[n])? n
When backup finished, system will show: DONE!
COPYUTIL> exit
恢復(fù)數(shù)據(jù)到指定的系統(tǒng)硬盤上
COPYUTIL> restore
Enter the Tape index ([q]/?): 2
Enter the disk index ([q]/?): 0
Use data compression? (y/[n])? Y
After system display: Restored Successful, that means restore is finished!
COPYUTIL> exit
b. 注意:
當(dāng)用copyutil備份RootDisk到相應(yīng)的磁帶時,該磁帶可以作為bootable 磁帶使用。
5. make_recovery
1) 安裝 " Ignite-UX application"
(1) 從 " HP-UX Application CD-ROM"上安裝
a. # swinstall
b. " Mark" [A. 1.53 HP-UX Installation Utility( Ignite-ux for 10.20)]
c. " Analysis"
d. " Install"
(2) 從 WebSite 下載并安裝:
http://www.software.hp.com/
Select : " Network & System administration "
Download: " ignite-ux_10.20.tar"(10.20 為 OS 版本)
(3)從硬盤上安裝:
# cd /tmp
# tar xvf /dev/rmt/0m ./ignite-ux_10.20.tar
# swinstall -s /tmp/ignite-ux_10.20.tar
(4)從磁帶上安裝:
# dd if=/tmp/ignite-ux_10.20.tar of=/dev/rmt/0m bk=2
# swinstall -s /dev/rmt/0m
2)make_recovery:
/opt/ignite/bin/make_recovery [ -AprvC] [-d destination] [-b boot_destination]
-A : 指定要備份整個Root disk / Volume Group
-p : 預(yù)覽備份過程,并不創(chuàng)建 Bootable DDS Tape
a. 確認(rèn) /var/opt/ignite/recovery/mkrec.append 文件
b. 創(chuàng)建 /var/opt/ignite/recovery/arch.include 文件
-r : 使用 -p 選項(xiàng)后,可以用該選項(xiàng)創(chuàng)建 Bootable DDS Tape
a. 該選項(xiàng)可以識別 /var/opt/ignite/recovery/arch.include 文件
-v : 用于顯示備份過程的提示信息
-d : 指定DDS的設(shè)備文件名 ( default: /dev/rmt/0mn )
-b :指定系統(tǒng)備份過程中,用到的臨時文件 ( default)
備份與壓縮命令
用戶經(jīng)常需要備份計算機(jī)系統(tǒng)中的數(shù)據(jù),為了節(jié)省存儲空間,常常將備份文件進(jìn)行壓縮。下面分別介紹備份與壓縮的命令。
tar命令
tar可以為文件和目錄創(chuàng)建檔案。利用tar,用戶可以為某一特定文件創(chuàng)建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。
tar最初被用來在磁帶上創(chuàng)建檔案,現(xiàn)在,用戶可以在任何設(shè)備上創(chuàng)建檔案,如軟盤。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對于
備份文件或?qū)讉€文件組合成為一個文件以便于網(wǎng)絡(luò)傳輸是非常有用的。Linux上的tar是GNU版本的。
語法:tar [主選項(xiàng)+輔選項(xiàng)] 文件或者目錄
使用該命令時,主選項(xiàng)是必須要有的,它告訴tar要做什么事情,輔選項(xiàng)是輔助使用的,可以選用。
主選項(xiàng):
c 創(chuàng)建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項(xiàng)。
r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經(jīng)作好備份文件,又發(fā)現(xiàn)還有一個目錄或是一些文件忘記備份了,這時可以使用該選項(xiàng),將忘記的目錄或文件追加到備份文件中。
t 列出檔案文件的內(nèi)容,查看已經(jīng)備份了哪些文件。
u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最后。
x 從檔案文件中釋放文件。
輔助選項(xiàng):
b 該選項(xiàng)是為磁帶機(jī)設(shè)定的。其后跟一數(shù)字,用來說明區(qū)塊的大小,系統(tǒng)預(yù)設(shè)值為20(20*512 bytes)。
f 使用檔案文件或設(shè)備,這個選項(xiàng)通常是必選的。
k 保存已經(jīng)存在的文件。例如我們把某個文件還原,在還原的過程中,遇到相同的文件,不會進(jìn)行覆蓋。
m 在還原文件時,把所有文件的修改時間設(shè)定為現(xiàn)在。
M 創(chuàng)建多卷的檔案文件,以便在幾個磁盤中存放。
v 詳細(xì)報告tar處理的文件信息。如無此選項(xiàng),tar不報告文件信息。
w 每一步都要求確認(rèn)。
z 用gzip來壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮,但還原時也一定要使用該選項(xiàng)進(jìn)行解壓縮。
例1:把/home目錄下包括它的子目錄全部做備份文件,備份文件名為usr.tar。
$ tar cvf usr.tar /home
例2:把/home目錄下包括它的子目錄全部做備份文件,并進(jìn)行壓縮,備份文件名為usr.tar.gz 。
$ tar czvf usr.tar.gz /home
例3:把usr.tar.gz這個備份文件還原并解壓縮。
$ tar xzvf usr.tar.gz
例4:查看usr.tar備份文件的內(nèi)容,并以分屏方式顯示在顯示器上。
$ tar tvf usr.tar | more
要將文件備份到一個特定的設(shè)備,只需把設(shè)備名作為備份文件名。
例5:用戶在/dev/fd0設(shè)備的軟盤中創(chuàng)建一個備份文件,并將/home 目錄中所有的文件都拷貝到備份文件中。
$ tar cf /dev/fd0 /home
要恢復(fù)設(shè)備磁盤中的文件,可使用xf選項(xiàng):
$ tar xf /dev/fd0
如果用戶備份的文件大小超過設(shè)備可用的存貯空間,如軟盤,您可以創(chuàng)建一個多卷的tar備份文件。M選項(xiàng)指示tar命令提示您使用一個新的存貯設(shè)備,當(dāng)使
用M選項(xiàng)向一個軟驅(qū)進(jìn)行存檔時,tar命令在一張軟盤已滿的時候會提醒您再放入一張新的軟盤。這樣您就可以把tar檔案存入幾張磁盤中。
$ tar cMf /dev/fd0 /home
要恢復(fù)幾張盤中的檔案,只要將第一張放入軟驅(qū),然后輸入有x和M選項(xiàng)的tar命令。在必要時您會被提醒放入另外一張軟盤。
$ tar xMf /dev/fd0
gzip命令
減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網(wǎng)絡(luò)傳輸文件時,可以減少傳輸?shù)臅r間。gzip是在Linux系統(tǒng)中經(jīng)常使用的一個對文件進(jìn)行壓縮和解壓縮的命令,既方便又好用。
語法:gzip [選項(xiàng)] 壓縮(解壓縮)的文件名
各選項(xiàng)的含義:
-c 將輸出寫到標(biāo)準(zhǔn)輸出上,并保留原有文件。
-d 將壓縮文件解壓。
-l 對每個壓縮文件,顯示下列字段:
壓縮文件的大小
未壓縮文件的大小
壓縮比
未壓縮文件的名字
-r 遞歸式地查找指定目錄并壓縮其中的所有文件或者是解壓縮。
-t 測試,檢查壓縮文件是否完整。
-v 對每一個壓縮和解壓的文件,顯示文件名和壓縮比。
-num 用指定的數(shù)字num調(diào)整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統(tǒng)缺省值為6。
假設(shè)一個目錄/home下有文件mm.txt、sort.txt、xx.com。
例1:把/home目錄下的每個文件壓縮成.gz文件。
$ cd /home
$ gzip *
$ ls
m.txt.gz sort.txt.gz xx.com.gz
例2:把例1中每個壓縮的文件解壓,并列出詳細(xì)的信息。
$ gzip -dv *
mm.txt.gz 43.1%-----replaced with mm.txt
sort.txt.gz 43.1%-----replaced with sort.txt
xx.com.gz 43.1%-----replaced with xx.com
$ ls
mm.txt sort.txt xx.com
例3:詳細(xì)顯示例1中每個壓縮的文件的信息,并不解壓。
$ gzip -l *
compressed uncompr. ratio uncompressed_name
277 445 43.1% mm.txt
278 445 43.1% sort.txt
277 445 43.1% xx.com
$ ls
mm.txt.gz sort.txt.gz xx.com.gz
例4:壓縮一個tar備份文件,如usr.tar,此時壓縮文件的擴(kuò)展名為.tar.gz
$ gzip usr.tar
$ ls
usr.tar.gz
unzip命令
用MS Windows下的壓縮軟件winzip壓縮的文件如何在Linux系統(tǒng)下展開呢?可以用unzip命令,該命令用于解擴(kuò)展名為.zip的壓縮文件。
語法:unzip [選項(xiàng)] 壓縮文件名.zip
各選項(xiàng)的含義分別為:
-x 文件列表 解壓縮文件,但不包括指定的file文件。
-v 查看壓縮文件目錄,但不解壓。
-t 測試文件有無損壞,但不解壓。
-d 目錄 把壓縮文件解到指定目錄下。
-z 只顯示壓縮文件的注解。
-n 不覆蓋已經(jīng)存在的文件。
-o 覆蓋已存在的文件且不要求用戶確認(rèn)。
-j 不重建文檔的目錄結(jié)構(gòu),把所有文件解壓到同一目錄下。
例1:將壓縮文件text.zip在當(dāng)前目錄下解壓縮。
$ unzip text.zip
例2:將壓縮文件text.zip在指定目錄/tmp下解壓縮,如果已有相同的文件存在,要求unzip命令不覆蓋原先的文件。
$ unzip -n text.zip -d /tmp
例3:查看壓縮文件目錄,但不解壓。
$ unzip -v text.zip
zgrep命令
這個命令的功能是在壓縮文件中尋找匹配的正則表達(dá)式,用法和grep命令一樣,只不過操作的對象是壓縮文件。如果用戶想看看在某個壓縮文件中有沒有某一句話,便可用zgrep命令。
shell命令
命令行
用戶登錄到Linux系統(tǒng)時,可以看到一個shell提示符,標(biāo)識了命令行的開始。用戶可以在提示符后面輸入任何命令及參數(shù)。例如:
$ date
二 11 23 01:34:58 CST 1999
$
用戶登錄時,實(shí)際進(jìn)入了shell,它遵循一定的語法將輸入的命令加以解釋并傳給系統(tǒng)。命令行中輸入的第一個字必須是一個命令的名字,第二個字是命令的選項(xiàng)或參數(shù),命令行中的每個字必須由空格或TAB隔開,格式如下:
$ Command Option Arguments
■ 選項(xiàng)和參數(shù)
選項(xiàng)是包括一個或多個字母的代碼,它前面有一個減號(減號是必要的,Linux用它來區(qū)別選項(xiàng)和參數(shù)),選項(xiàng)可用于改變命令執(zhí)行的動作的類型。例如:
$ ls
motd passwd
$
這是沒有選項(xiàng)的ls命令,可列出當(dāng)前目錄中所有文件,只列出各個文件的名字,而不顯示其他更多的信息。
$ ls -l
total 2
-rw-r--r-- 2 wzh book 22 Apr 20 20:37 motd
-rw-r--r-- 2 wzh book 796 Apr 20 20:37 passwd
$
加入-l選項(xiàng),將會為每個文件列出一行信息,諸如數(shù)據(jù)大小和數(shù)據(jù)最后被修改的時間。
大多數(shù)命令都被設(shè)計為可以接納參數(shù)。參數(shù)是在命令行中的選項(xiàng)之后鍵入的一個或多個單詞,例如:
$ ls -l text
-rw-r--r-- 2 wzh book 22 Apr 20 20:37 motd
-rw-r--r-- 2 wzh book 796 Apr 20 20:37 passwd
$
將顯示text目錄下的所有文件及其信息。
有些命令,如ls可以帶參數(shù),而有一些命令可能需要一些最小數(shù)目的參數(shù)。例如,cp命令至少需要兩個參數(shù),如果參數(shù)的數(shù)目與命令要求不符,shell將會給出出錯信息。例如:
$ cp -i mydata newdata
注意:命令行中選項(xiàng)先于參數(shù)輸入。
■ 命令行特征
命令行實(shí)際上是可以編輯的一個文本緩沖區(qū),在按回車之前,可以對輸入的文本進(jìn)行編輯。比如利用BACKSPACE鍵可以刪除剛鍵入的字符,可以進(jìn)行整行
刪除,還可以插入字符,使得用戶在輸入命令,尤其是復(fù)雜命令時,若出現(xiàn)鍵入錯誤,無須重新輸入整個命令,只要利用編輯操作,即可改正錯誤。
利用上箭頭可以重新顯示剛執(zhí)行的命令,利用這一功能可以重復(fù)執(zhí)行以前執(zhí)行過的命令,而無須重新鍵入該命令。
bash保存著以前鍵入過的命令的列表,這一列表被稱為命令歷史表。按動上箭頭,便可以在命令行上逐次顯示各條命令。同樣,按動下箭頭可以在命令列表中
向下移動,這樣可以將以前的各條命令顯示在命令行上,用戶可以修改并執(zhí)行這些命令。這一特征將在10.4節(jié)中進(jìn)行詳細(xì)的論述。
在一個命令行中還可以置入多個命令,用分號將各個命令隔開。例如:
$ ls -F;cp -i mydata newdata
也可以在幾個命令行中輸入一個命令,用反斜杠將一個命令行持續(xù)到下一行。
$ cp -i \
mydata \
newdata
上面的cp命令是在三行中輸入的,開始的兩行以反斜杠結(jié)束,把三行作為一個命令行。
shell中的特殊字符
shell中除使用普通字符外,還可以使用一些具有特殊含義和功能的特殊字符。在使用它們時應(yīng)注意其特殊的含義和作用范圍。下面分別對這些特殊字符加以介紹。
■ 通配符
通配符用于模式匹配,如文件名匹配、路經(jīng)名搜索、字符串查找等。常用的通配符有*、?和括在方括號[ ]中的字符序列。用戶可以在作為命令參數(shù)的文件名中包含這些通配符,構(gòu)成一個所謂的“模式串”,在執(zhí)行過程中進(jìn)行模式匹配。
* 代表任何字符串(長度可以不等),例如:“f*”匹配以f打頭的任意字符串。但應(yīng)注意,文件名前的圓點(diǎn)(.)和路經(jīng)名中的斜線(/)必須顯式匹配。例如“*”不能匹配.file,而“.*”才可以匹配.file。
? 代表任何單個字符。
[ ] 代表指定的一個字符范圍,只要文件名中[ ]位置處的字符在[
]中指定的范圍之內(nèi),那么這個文件名就與這個模式串匹配。方括號中的字符范圍可以由直接給出的字符組成,也可以由表示限定范圍的起始字符、終止字符及中間
的連字符(-)組成。例如,f [a- d] 與f
[abcd]的作用相同。Shell將把與命令行中指定的模式串相匹配的所有文件名都作為命令的參數(shù),形成最終的命令,然后再執(zhí)行這個命令。
下面我們給出的表說明這些通配符的具體含義。
■ 模式串
意 義
*
當(dāng)前目錄下所有文件的名稱。
*Text*
當(dāng)前目錄下所有文件名中包含有Text的文件的名稱。
[ab-dm]*
當(dāng)前目錄下所有以a、b、c、d、m開頭的文件的名稱。
[ab-dm]?
當(dāng)前目錄下所有以a、b、c、d、m開頭且后面只跟有一個字符的文件的名稱。
/usr/bin/??
目錄/usr/bin下所有名稱為兩個字符的文件的名稱。
特別需要注意的是,連字符“-”僅在方括號內(nèi)有效,表示字符范圍,如在方括號外面就成為普通字符了。而*和?只在方括號外面是通配符,若出現(xiàn)在方括號之
內(nèi),它們也失去通配符的能力,成為普通字符了。例如,模式“-
a[*?]abc”中只有一對方括號是通配符,*和?均為普通字符,因此,它匹配的字符串只能是- a*abc和- a?abc。
最后說明一下使用通配符時需要注意的一些問題。由于*、?和[
]對于shell來說具有比較特殊的意義,因此在正常的文件名中不應(yīng)出現(xiàn)這些字符。特別是在目錄名中不要出現(xiàn)它們,否則Shell匹配起來可能會無窮的遞
歸下去。另外要注意的一點(diǎn)是:如果目錄中沒有與指定的模式串相匹配的文件名,那么Shell將使用此模式串本身作為參數(shù)傳給有關(guān)命令。這可能就是命令中出
現(xiàn)特殊字符的原因所在。
■ 引號
在shell中引號分為三種:單引號,雙引號和反引號。
■ 單引號 ‘
由單引號括起來的字符都作為普通字符出現(xiàn)。特殊字符用單引號括起來以后,也會失去原有意義,而只作為普通字符解釋。例如:
$ string=’$PATH’
$ echo $string
$PATH
$
可見$保持了其本身的含義,作為普通字符出現(xiàn)。
■ 雙引號 “
由雙引號括起來的字符,除$、\、’、和”這幾個字符仍是特殊字符并保留其特殊功能外,其余字符仍作為普通字符對待。對于$來說,就是用其后指定的變量
的值來代替這個變量和$;對于\而言,是轉(zhuǎn)義字符,它告訴shell不要對其后面的那個字符進(jìn)行特殊處理,只當(dāng)作普通字符即可??梢韵胍?,在雙引號中需要
在前面加上\的只有四個字符$,\,’和”本身。而對”號,若其前面沒有加\,則Shell會將它同前一個”號匹配。
例如,我們假定PATH的值為.:/usr/bin:/bin,輸入如下命令:
$ TestString=”$PATH\\\”\$PATH”
$ echo $TestString
.:/usr/bin:/ bin\”$PATH
$
讀者可以自己試一下在第二個雙引號之前不加\會產(chǎn)生什么結(jié)果。
■ 反引號 `
反引號(`)這個字符所對應(yīng)的鍵一般位于鍵盤的左上角,不要將其同單引號(’)混淆。反引號括起來的字符串被shell解釋為命令行,在執(zhí)行時,shell首先執(zhí)行該命令行,并以它的標(biāo)準(zhǔn)輸出結(jié)果取代整個反引號(包括兩個反引號)部分。例如:
$ pwd
/home/xyz
$ string=”current directory is `pwd`”
$ echo $string
current directour is /home/xyz
$
shell執(zhí)行echo命令時,首先執(zhí)行`pwd`中的命令pwd,并將輸出結(jié)果/home/xyz取代`pwd`這部分,最后輸出替換后的整個結(jié)果。
利用反引號的這種功能可以進(jìn)行命令置換,即把反引號括起來的執(zhí)行結(jié)果賦值給指定變量。例如:
$ today=`date`
$ echo Today is $today
Today is Mon Apr 15 16:20:13 CST 1999
$
反引號還可以嵌套使用。但需注意,嵌套使用時內(nèi)層的反引號必須用反斜線(\)將其轉(zhuǎn)義。例如:
$ abc=`echo The number of users is \`who| wc-l\``
$ echo $abc
The number of users is 5
$
在反引號之間的命令行中也可以使用shell的特殊字符。Shell為得到``中命令的結(jié)果,它實(shí)際上要去執(zhí)行``中指定的命令。執(zhí)行時,命令中的特殊字符,如$,”,?等又將具有特殊含義,并且``所包含的可以是任何一個合法的Shell命令,如:
$ ls
note readme.txt Notice Unix.dir
$ TestString=”`echo $HOME ` ` ls [nN]*`”
$ echo $TestString
/home/yxz note Notice
$
常用網(wǎng)路偵錯指令
一. ifconfig 指令.
ifconfig 指令用來設(shè)定網(wǎng)路介面, 并可查詢目前網(wǎng)路介面的設(shè)定情形.
語法:
1. ifconfig [介面]
介面可以不寫, 若不寫, 則顯示目前使用中的介面.
介面可以填入: eth0, eth1 等.
若是下
2. ifconfig -a
則會列出所有的網(wǎng)路介面情形.
[root@ols3-note /root]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:80:C8:8F:B8:F4
inet addr:192.168.54.51 Bcast:192.168.54.63 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:234 errors:0 dropped:0 overruns:0 frame:0
TX packets:65 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:3 Base address:0x320
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
其中 :
eth0 表示第一張網(wǎng)路卡
lo 表示 loopback , 即沒有連接到真實(shí)網(wǎng)路時的網(wǎng)路介面, 可用來測試網(wǎng)路的應(yīng)用軟體, 并且提供區(qū)域性的 TCP/IP 服務(wù).
HWaddr 是網(wǎng)路卡的硬體位址
inet addr 是網(wǎng)路卡的 IP,
Bcast 是廣播(broadcast) 的位址
Mask 是網(wǎng)路遮罩.
MTU 是 Maximum Trasmission Unit 最大傳輸單元(位元組), 即此介面一次所能傳輸?shù)淖畲蠓獍?
Metric 是權(quán)值之意, 路由權(quán)值, 或所需的花費(fèi), 目前尚未使用, 將來會 implement.
RX 是接收情形.
TX 是傳送情形.
collisions 是網(wǎng)路訊號碰撞的意思
txqueuelen 是傳輸緩區(qū)長度大小意思
Interrupt 是 IRQ 中斷位址
Base address 是 I/O 位址
3. ifconfig 介面 [aftype] 選項(xiàng) | 位址
aftype 是位址家族之意, 預(yù)設(shè)值是 inet (TCP/IP)
其它還有 ddp(AppleTalk) ipx(Novell)
詳細(xì)情形, 請自行 man ifconfig
不建議各位用 ifconfig 手動修改, 請用 linuxconf 較佳.
不過, 在查驗(yàn)為何網(wǎng)路不通時, 經(jīng)常會遇到的問題是 netmask 設(shè)錯了, 這時, 手動設(shè) netmask 倒是十分方便的方法.
假設(shè) netmask 應(yīng)為 255.255.255.128, 但你的網(wǎng)路卡卻是 255.255.255.0
那麼下:
ifconfig eth0 netmask 255.255.255.128
即可改正過來.
ifconfig eth0 down 可將網(wǎng)路卡關(guān)閉, 此時下 ifconfig 將只看到 lo.
[root@ols3-note /root]# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
ifconfig eth0 up 可將網(wǎng)路卡打開, 下 ifcofnig 又可看到 eth0 及 lo 了.
[root@ols3-note /root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:80:C8:8F:B8:F4
inet addr:192.168.54.51 Bcast:192.168.54.63 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:234 errors:0 dropped:0 overruns:0 frame:0
TX packets:65 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:3 Base address:0x320
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
二. ping 指令.
ping 指令用來偵測某一主機(jī)是否存活, 或者網(wǎng)路是否可以正常連線.
指令:
ping IP
ping HOSTNAME
例: ping 192.168.54.49
[root@ols3-note /root]# ping 192.168.54.49
PING 192.168.54.49 (192.168.54.49): 56 data bytes
64 bytes from 192.168.54.49: icmp_seq=0 ttl=128 time=0.8 ms
64 bytes from 192.168.54.49: icmp_seq=1 ttl=128 time=0.7 ms
64 bytes from 192.168.54.49: icmp_seq=2 ttl=128 time=0.7 ms
64 bytes from 192.168.54.49: icmp_seq=3 ttl=128 time=0.7 ms
64 bytes from 192.168.54.49: icmp_seq=4 ttl=128 time=0.7 ms
^C
--- 192.168.54.49 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.7/0.7/0.8 ms
上面表示: 傳遞5個封包, 5個封包都接收到了, 沒有任可 loss 的情形.
icmp 是 ICMP 協(xié)定的意思, seq 是序列之意.
TTL 是 Time To Live , 每當(dāng)經(jīng)過一個 gateway, TTL 就會減 1, 若某一站的 gateway 收到時, TTL 為 0, 就會送回一個 TimeOut 的訊號回來.
為何只傳了5個封包? 因?yàn)槲抑虚g有按了 ^C, 將 ping 中斷了.
若你不想麻煩, 按 ^C, 可以在 ping 執(zhí)行時加 -c 選項(xiàng), 用以設(shè)定 ping 的次數(shù).
如下:
ping -c 10 192.168.54.49
則只 ping 10 次.
三. netstat 指令.
netstat 指令用來查看網(wǎng)路介面的使用狀況及 routing table.
指令:
netstat -i
顯示網(wǎng)路卡的運(yùn)作情形:
[root@ols3-note /root]# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 682 0 0 0 179 0 0 0 BRU
lo 3924 0 0 0 0 0 0 0 0 0 LRU
Iface 是指網(wǎng)路介面
MTU 前面有介紹過!
Met 是 Metric 路由權(quán)值
RX 是接收情形
TX 是傳送情形
OK 表示正常
ERR 表示錯誤
DRP 表示被丟掉的封包數(shù)
OVR 表示 TimeOut 或其它因素
Flg 是旗標(biāo)的意思, 其定義如下:
A 接收 multicast
B 接收 broadcast
D 除錯功能已啟動
L Loopback
M 處於不選擇狀態(tài)
N 沒有處理封包尾端部份
O ARP 已關(guān)閉
P 此介面是做為 point to point 用
R 此介面正在運(yùn)作
U 此介面已經(jīng)啟動
記住上面標(biāo)有顏色的這四個即可.
指令:
netstat -r (等同於 route -e)
查看主機(jī)的 routing table.
[root@ols3-note /root]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.54.48 * 255.255.255.240 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.54.62 0.0.0.0 UG 0 0 0 eth0
Gateway 若是打 *, 表示 ip 位址由 Iface 所指定的介面?zhèn)鞒鋈?
default 表示 default gateway 之意.
Flags :
U 是啟動之意
G 是 Gateway
MSS : TCP Maximum Segment Size 之意
Window : TCP window size for connections over this route.
irtt : initial round trip time for TCP connections over this route to
? milliseconds (1-12000). This is typically only used on AX.25 network.
四. route 指令.
route 指令用來顯示及設(shè)定 IP routing table.
語法如下:
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask
Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I]
[reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A
常用的tar和rpm命令參數(shù)列表
常用的tar和rpm命令參數(shù)列表
一. tar
1.壓縮一組文件為tar.gz后綴。
# tar cvf backup.tar /etc
#gzip -q backup.tar
或
# tar cvfz backup.tar.gz /etc/
2.釋放一個后綴為tar.gz的文件。
#gunzip backup.tar.gz
#tar xvf backup.tar
或
# tar xvfz backup.tar.gz
3.用一個命令完成壓縮
#tar cvf - /etc/ | gzip -qc > backup.tar.gz
4.用一個命令完成釋放
# gunzip -c backup.tar.gz | tar xvf -
5.如何解開tar.Z的文件?
# tar xvfz backup.tar.Z
或
# uncompress backup.tar.Z
#tar xvf backup.tar
6.如何解開.tgz文件?
#gunzip backup.tgz
7.如何壓縮和解壓縮.bz2的包?
#bzip2 /etc/smb.conf
這將壓縮文件smb.conf成smb.conf.bz2
#bunzip2 /etc/smb.conf.bz2
這將在當(dāng)前目錄下還原smb.conf.bz2為smb.conf
注: .bz2壓縮格式不是很常用,你可以man bzip2
二. rpm
1.安裝一個包
# rpm -ivh
2.升級一個包
# rpm -Uvh
3.移走一個包
# rpm -e
4.安裝參數(shù)
--force 即使覆蓋屬于其它包的文件也強(qiáng)迫安裝
--nodeps 如果該RPM包的安裝依賴其它包,即使其它包沒裝,也強(qiáng)迫
安裝。
5.查詢一個包是否被安裝
# rpm -q < rpm package name>
6.得到被安裝的包的信息
# rpm -qi < rpm package name>
7.列出該包中有哪些文件
# rpm -ql < rpm package name>
8.列出服務(wù)器上的一個文件屬于哪一個RPM包
#rpm -qf
9.可綜合好幾個參數(shù)一起用
# rpm -qil < rpm package name>
10.列出所有被安裝的rpm package
# rpm -qa
11.列出一個未被安裝進(jìn)系統(tǒng)的RPM包文件中包含有哪些文件?
# rpm -qilp < rpm package name>
Linux Shell 裡一些很少用到卻很有用的指令
責(zé)任編輯:NicaLiu 你是不是已經(jīng)忘記可以使用命令列來完成工作,還是你從來不知道他可以為你節(jié)省許多的時間與煩惱?
有個叫 80/20 法則的觀念可以聯(lián)想到軟件系統(tǒng)上,觀查發(fā)現(xiàn), 80% 的使用者族群,固定會去使用的只有 20%
的系統(tǒng)功能。不需要去大費(fèi)周章的證實(shí)這樣的統(tǒng)計值,我二十年以上建立軟件架構(gòu)及使用軟件系統(tǒng)的經(jīng)驗(yàn)告訴我,這樣的假定,極有可能是正確的。一堆的
Linux 命令列程序皆無一例外于這樣的普遍現(xiàn)象。 Linux 提供許多 Shell
層級的命令,可能只有十個能普遍被了解并使用之,而剩下的極大部份,幾乎是被忽略的。
這些在 Linux Shell
里不起眼的小東西有哪些是具有被提出來討論的價值的呢? 我在這將簡短的介紹幾個不常用,但卻相當(dāng)好用的 Linux Shell
命令,這些程序是我用了好幾年,經(jīng)得起時間考驗(yàn)的。特別是,我選擇將重點(diǎn)放在語法解析及格式化文字內(nèi)容的命令上。
在這些例子里,我假定大家對命令列的語法有基本的熟悉度,并具簡單的 Shell 概念還有一些并不是那么普遍的Linux命令。即使如此,命令列的范例仍附上適當(dāng)?shù)呐⒍宜呛苤苯拥?。在每一個應(yīng)用上,各個命令列的執(zhí)行底下都會有一個使用范例給大家看。
下列便是這些語法、格式及文字內(nèi)容的展現(xiàn),雖然并非每個范例皆提供具體的說明,不過必須知道的一點(diǎn)是,下列命令若是沒有指定檔案參數(shù),則它會讀取標(biāo)準(zhǔn)輸入。
Head/Tail
head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結(jié)尾某個數(shù)量的文字區(qū)塊,head 用來顯示檔案的開頭至標(biāo)準(zhǔn)輸出中,而 tail 想當(dāng)然爾就是看檔案的結(jié)尾啰~,看看下面的范例:
## (1) displays the first 6 lines of a file
head -6 readme.txt
## (2) displays the last 25 lines of a file
tail -25 mail.txt
范例一是顯示檔案的前 6 行,范例二則是顯示檔案最后的 25 行。
而下面的范別,結(jié)合了 head 與 tail 的指令,顯示檔案的第 11 行到第 20 行:
# (3)
head -20 file | tail -10
在 tail 的使用手冊頁中顯示了比 head 還多的可用參數(shù),其中有一個很好用的參數(shù) " -f ",使用此參數(shù)時,tail
不會回傳結(jié)束信號,除非我們?nèi)プ孕腥ブ袛嗨?;相反的,它會一直等待一段時間,一直到他發(fā)現(xiàn)資料自它最后一次被讀取后,又被加入新的一行時:
## (4) display ongoing updates to the given
## log file
tail -f /usr/tmp/logs/daemon_log.txt
上述范例可以動態(tài)顯示該 log 文件的動態(tài)更新。
假設(shè)該服務(wù)程序是一直不斷的加入動態(tài)資料到 /usr/adm/logs/daemon_log.txt 的 log 文件里,在命令列控制窗口中使用 tail -f,它將會以一定的時間實(shí)時追蹤該檔的所有更新。 ( -f 的只有在其輸入為檔案時才能使用 )。
假如你在 tail 后下了多個檔案參數(shù),你便能在同一個窗口內(nèi)一次追蹤數(shù)個 log 檔:
## track the mail log and the server error log
## at the same time.
tail -f /var/log/mail.log /var/log/apache/error_log
tac -- 反過來串連?!
cat 倒過來怎么拼 ? 對啦 !! 這就是 tac 的功能啰 ~ 它是把檔案的順序內(nèi)容反過來串連用的,那么 ~ 它都用在什么狀況下呢 ?
任何須要以后進(jìn)先出的順序重新排列組件的工作都用得上它 ! 以下面的指令來說,便是以自最后建立的到最先建立的順序,列出三個最新建的使用者帳號:
# (5) last 3 /etc/passwd records - in reverse
$ tail -3 /etc/passwd | tac
curly:x:1003:100:3rd Stooge:/homes/curly:/bin/ksh
larry:x:1002:100:2nd Stooge:/homes/larry:/bin/ksh
moe:x:1001:100:1st Stooge:/homes/moe:/bin/ksh
nl -- 為輸出列加上編號
nl 是一個簡單但很好用的編號過濾工具,我在輸入的地方下了參數(shù),讓所有行列的編碼皆靠左,nl 是供了非常多的參數(shù)使用,可以定義到很細(xì)很細(xì)的程序來制定它下好編號的輸出,下面是一些參數(shù)使用的范例說明:
# (6) Display the first 4 entries of the password
# file - numbers to be three columns wide and
# padded by zeros.
$ head -4 /etc/passwd | nl -nrz -w3
001 root:x:0:1:Super-User:/:/bin/ksh
002 daemon:x:1:1::/:
003 bin:x:2:2::/usr/bin:
004 sys:x:3:3::/:
#
# (7) Prepend ordered line numbers followed by an
# '=' sign to each line -- start at 101.
$ nl -s= -v101 Data.txt
101=1st Line ...
102=2nd Line ...
103=3rd Line ...
104=4th Line ...
105=5th Line ...
.......
fmt -- 格式化
fmt
是一個簡單的文字格式化工具,它重點(diǎn)是在讓文字的資料與最大所能支持的寬度一致,它是利用結(jié)合及截斷行列的空白所完成的。前提是你需要維護(hù)的是一個由文書
處理器所產(chǎn)生的文字內(nèi)容,它所輸出的文字可能含括了各種不同長度的行列,若這樣的文字是由文字編輯器 ( 像是 vi ) 作的,fmt
便能夠?qū)⒋嗽嘉淖洲D(zhuǎn)化成更好維護(hù)的格式。下面的第一個例子,顯示的是下 fmt 指令來重新制作檔案格式,讓它一行不要超過 80 個字符:
# (8) No more than 60 char lines
$ fmt -w 60 README.txt > NEW_README.txt
#
# (9) Force uniform spacing:
# 1 space between words, 2 between sentences
$ echo "Hello World. Hello Universe." |
fmt -u -w80
Hello World. Hello Universe.
fold -- 將輸入分段
fold 跟 fmt 很像,但他通常是用來格式化與非增加文字可讀性的資料,下面有個簡單的例子:
# (10) Format text in 3 column width lines
$ echo oxoxoxoxo | fold -w3
oxo
xox
oxo
# (11) Parse by triplet-char strings -
# search for 'xox'
$ echo oxoxoxoxo | fold -w3 | grep "xox"
xox
# (12) One way to iterate through a string of chars
$ for i in $(echo 12345 | fold -w1)
> do
> ### perform some task ...
> print $i
> done
1
2
3
4
5
tr
tr 為一個簡單的字組轉(zhuǎn)換器,它的實(shí)際應(yīng)用與一些較復(fù)雜的程序有點(diǎn)重復(fù),像是 sed 和 awk [ 更大型的二進(jìn)制程序代碼 ]。tr
在文字的置換、刪從及增加上很好用。它的指令模式是 " 從 ( 放在第一個參數(shù) ) …到 ( 第二個參數(shù) )… "
的模式;下面為它一般的使用語法:
# (13) tr usage
tr [options] "set1" ["set2"]
定制精彩的命令提示行
提示行魔術(shù)--增強(qiáng)系統(tǒng)提示行
Daniel Robbins
Gentoo Technologies 公司總載兼首席執(zhí)行官
內(nèi)容:
提示行基礎(chǔ)
彩色化
Xterm 中的樂趣
參考資源
作者簡介
如果您很容易使 shell 提示行變得色彩絢爛斕且?guī)в懈嘈畔ⅲ?為什么還要堅持用單調(diào) 的標(biāo)準(zhǔn) shell 提示行呢?在這篇技巧中,Daniel Robbins 將說明如何獲得符合您的意愿的shell 提示行,并會說明如何動態(tài)更新 X 終端的標(biāo)題欄。
作為 Linux/UNIX 人,我們有很長的時間是在 shell 中工作,并且在許多情況下, 下面這一行就是始終盯著我們的那個提示行:
bash-2.04$
如果您恰巧是超級用戶 (root),您就有權(quán)使用下面這個美麗的標(biāo)示“身份”的提示行版本:
bash-2.04#
這些提示行并不是十分漂亮。這也就難怪幾種 Linux 版本對默認(rèn)提示行進(jìn)行了升級,
在其中增加了顏色和更多的信息。但是,即便您恰好有一個本身帶有很好的彩色提示行的新式版本,它也不可能是完美無缺的。您或許希望在提示行中增加或更改幾
種顏色,或者增加(或刪除)一些信息。從頭開始設(shè)計屬于您自己的彩色的、經(jīng)過裝飾的提示行并不難。
提示行基礎(chǔ)在 bash 下,可以通過更改 PS1 環(huán)境變量的值來設(shè)置提示行,如下所示:
$ export PS1="> "
>
更改會立即生效,通過將 "export" 定義放在您的 ~/.bashrc 文件中可將這種更改固定
下來。只要您愿意,PS1 可以包含任意數(shù)量的純文本:
$ export PS1="This is my super prompt > "
This is my super prompt >
盡管這很有趣,但在提示行中包含大量靜態(tài)文本并不是特別有用。大多數(shù)定制的提示行包 含諸如用戶名、工作目錄或主機(jī)名之類的信息。 這些花絮信息可以幫助您在 shell 世界中遨游。例如,下面的提示行將顯示您的用戶名和主機(jī)名:
$ export PS1="\u@\H > "
drobbins@freebox >
這個提示行對于那些以多個不同名稱的帳戶登錄多臺機(jī)器的人尤為有用,因?yàn)樗梢蕴嵝涯耗壳霸谀呐_機(jī)器上操作,擁有什么權(quán)限。
在上面的示例中,我們使用了專用的用反斜杠轉(zhuǎn)義的字符序列,藉此通知 bash 將用戶名
和主機(jī)名插入提示行中,當(dāng)這些轉(zhuǎn)義字符序列出現(xiàn)在 PS1 變量中時,bash 就會用特定的值替
換它們。我們使用了序列 "\u"(表示用戶名)和 "\H"(表示主機(jī)名的第一部分)。下面是 bash 可識別的全部專用序列的完整列表(您可以在 bash man page 的 "PROMPTING" 部分找
到這個列表):
序列 說明
\a ASCII 響鈴字符(也可以鍵入 \007)
\d "Wed Sep 06" 格式的日期
\e ASCII 轉(zhuǎn)義字符(也可以鍵入 \033)
\h 主機(jī)名的第一部分(如 "mybox")
\H 主機(jī)的全稱(如 "mybox.mydomain.com")
\j 在此 shell 中通過按 ^Z 掛起的進(jìn)程數(shù)
\l 此 shell 的終端設(shè)備名(如 "ttyp4")
\n 換行符
\r 回車符
\s shell 的名稱(如 "bash")
\t 24 小時制時間(如 "23:01:01")
\T 12 小時制時間(如 "11:01:01")
\@ 帶有 am/pm 的 12 小時制時間
\u 用戶名
\v bash 的版本(如 2.04)
\V Bash 版本(包括補(bǔ)丁級別) ?/td>
\w 當(dāng)前工作目錄(如 "/home/drobbins")
\W 當(dāng)前工作目錄的“基名 (basename)”(如 "drobbins")
\! 當(dāng)前命令在歷史緩沖區(qū)中的位置
\# 命令編號(只要您鍵入內(nèi)容,它就會在每次提示時累加)
\$ 如果您不是超級用戶 (root),則插入一個 "$";如果您是超級用戶,則顯示一個 "#"
\xxx 插入一個用三位數(shù) xxx(用零代替未使用的數(shù)字,如 "\007")表示的 ASCII 字符
\\ 反斜杠
\[ 這個序列應(yīng)該出現(xiàn)在不移動光標(biāo)的字符序列(如顏色轉(zhuǎn)義序列)之前。它使 bash 能夠正確計算自動換行。
\] 這個序列應(yīng)該出現(xiàn)在非打印字符序列之后。
這樣,您已經(jīng)知道了 bash 中用反斜杠轉(zhuǎn)義的全部專用序列。請稍微演練一下這些序列,以對它們的工作方式獲得一些感性認(rèn)識。在您做了一些測試之后,下面開始添加顏色。
彩色化
添加顏色相當(dāng)容易;第一步是設(shè)計不帶顏色的提示行。然后,我們所要做的只是添加終端 (而不是 bash)可識別的專用轉(zhuǎn)義序列,以使它以彩色顯示文本的某些部分。標(biāo)準(zhǔn) Linux 終
端和 X 終端允許您設(shè)置前景(文字)顏色和背景顏色,如果需要,還可以啟用 "bold" 字符。
有八種顏色可供我們選擇。
顏色是通過在 PS1 中添加專用序列來選擇的 -- 基本上是夾在 "\e["(轉(zhuǎn)義開方括號)
和 "m" 之間數(shù)字值。如果指定一個以上的數(shù)字代碼,則用分號將它們分開。 下面是一個顏色
代碼示例:
"\e[0m"
如果將數(shù)字代碼指定為零,則它就會通知終端將前景、背景和加粗設(shè)置重置為它們的默認(rèn) 值。您可能會在在提示行結(jié)束時使用這個代碼,以使您鍵入的文字成為非彩色的?,F(xiàn)在,讓我 們看一下這些顏色代碼。請注意下面的抓屏結(jié)果:
顏色表
要使用這個表,首先請查找您要使用的顏色,然后查找對應(yīng)的前景編號 (30-37) 和背景 編號 (40-47)。例如,如果您喜歡黑底綠字,則可將編號分別設(shè)為 32 和 40。 然后打開您的 提示行定義并在其中添加適當(dāng)?shù)念伾a。下面的定義:
export PS1="\w> "
變?yōu)椋?
export PS1="\e[32;40m\w> "
到現(xiàn)在為止,提示行盡管已經(jīng)很不錯了,但仍不太完美。在 bash 顯示出工作目錄以后,我們需要使用 "\e[0m" 序列將顏色重新設(shè)置為正常值。
export PS1="\e[32;40m\w> \e[0m" 這個定義將顯示一個漂亮的綠色提示行,但我們?nèi)孕枰鲆恍呶补ぷ?。我們不需要包?
"40" 這個背景顏色設(shè)置,因?yàn)樗鼘⒈尘霸O(shè)置為黑色,而黑色是默認(rèn)顏色。此外,綠色還很暗;
我們通過添加一個 "1" 顏色代碼來修正這個問題,這將啟用更亮的加粗文字。 除了這個修改
之外,我們還需要將全部非打印字符用專用的 bash 轉(zhuǎn)義序列 "\[" 和 "\]" 括起來。這兩個序列通知
bash,被括起來的字符不占用行上的任何空間, 這樣就使自動換行能夠繼續(xù)正常工
作。沒有這兩個轉(zhuǎn)義序列,盡管您有了一個非常漂亮的提示行,但是如果您鍵入的命令恰好到 達(dá)終端的最右端,就會造成顯示混亂。下面是我們最終的提示行:
export PS1="\[\e[32;1m\]\w> \[\e[0m\]"
別擔(dān)心在同一個提示行中使用幾種顏色,就像下面這樣:
export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\H> \[\e[0m\]"
Xterm 中的樂趣
我已說明了如何在提示行中添加信息和顏色,但您還可以更進(jìn)一步。您可以通過在提示行中添加專用代碼來使 X 終端(如 rxvt 或 aterm)的標(biāo)題欄得到動態(tài)更新。 您所要做的只是
將下面的序列添加到您的 PS1 提示行中:
"\e]2;titlebar\a"
只須用您希望其出現(xiàn)在 xterm 標(biāo)題欄中的文字替換子串 "titlebar" 即可, 現(xiàn)在已經(jīng)一 切就緒了!不必使用靜態(tài)文字;您可以將
bash 轉(zhuǎn)義序列插入標(biāo)題欄中。請查看下面這個示例,它將用戶名、主機(jī)名和當(dāng)前工作目錄顯示在標(biāo)題欄中,并定義了一個簡短、明亮的綠色提示行:
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
這就是我在上面的抓屏結(jié)果中所用的那個提示行。我喜歡這個提示行,因?yàn)樗鼘⑷啃畔@示在標(biāo)題欄上,而不是顯示在終端上,終端對一行可以顯示多少字符有限制。順便提一句,
確保用 "\[" 和 "\]" 將您的標(biāo)題欄序列括起來(因?yàn)榫徒K端而言,這個序列是非打印序列)。
將大量信息放在標(biāo)題欄中的問題是,如果您使用非圖形終端(如系統(tǒng)控制臺),則看不到這些
信息。為了解決這個問題,可以在您的 .bashrc 中添加以下幾行:
if [ "$TERM" = "linux" ]
then
#we're on the system console or maybe telnetting in
export PS1="\[\e[32;1m\]\u@\H > \[\e[0m\]"
else
#we're not on the console, assume an xterm
export PS1="\[\e]2;\u@\H \w\a\e[32;1m\]>\[\e[0m\] "
fi
這個 bash 條件語句將根據(jù)當(dāng)前的終端設(shè)置動態(tài)設(shè)置提示行。為了獲得一致性,您一定希
望配置您的 ~/.bash_profile,以便它在啟動時搜索 (source) 您的 ~/.bashrc。確保您的
~/.bash_profile 文件中有以下這樣一行:
source ~/.bashrc
這樣,無論您開啟一個登錄 shell 還是一個非登錄 shell,都會獲得同樣的提示行。
好了,您已掌握了提示行魔術(shù)?,F(xiàn)在盡情享受一下,制作一個漂亮的彩色提示行吧!
參考資源
* rxvt 是一款既好又小的 xterm,它恰好有大量關(guān)于轉(zhuǎn)義序列的文檔資料, 這些資料都
集中在源代碼 tar 包中的 "doc" 目錄下。
* aterm 是基于 rxvt 的另一款終端程序。它支持幾種很好的可視化特性,如透明和著色。
* bashish 是適用于各種終端的一種主題引擎。請查看工作中的 bashish 的一些很好的
抓屏結(jié)果!
作者簡介
Daniel Robbins 住在新墨西哥州的 Albuquerque,他是 Gentoo Technologies 公司的總
載兼首席執(zhí)行官,他還是 Gentoo Linux(一種運(yùn)行于個人計算機(jī)上的高級 Linux)和
Portage 系統(tǒng)(Linux 的下一代端口系統(tǒng))的創(chuàng)作者。他同時也是 Macmillan 出版的
Caldera OpenLinux Unleashed、SuSE Linux Unleashed 和 Samba Unleashed 幾本書的重要
作者之一。由于深受 Pan Man 的影響,Daniel 在讀二年級時第一次接解到 Logo 編程語言后
即執(zhí)迷于計算機(jī)。這可能是他后來作為 SONY El
Linux關(guān)機(jī)命令詳解
摘要:在linux下一些常用的關(guān)機(jī)/重啟命令有shutdown、halt、reboot、及init,它們都可以達(dá)到重啟系統(tǒng)的目的,但每個命令的內(nèi)部工作過程是不同的,通過本文的介紹,希望你可以更加靈活的運(yùn)用各種關(guān)機(jī)命令.
在linux下一些常用的關(guān)機(jī)/重啟命令有shutdown、halt、reboot、及init,它們都可以達(dá)到重啟系統(tǒng)的目的,但每個命令的內(nèi)部工作過程是不同的,通過本文的介紹,希望你可以更加靈活的運(yùn)用各種關(guān)機(jī)命令。
1.shutdown
shutdown命令安全地將系統(tǒng)關(guān)機(jī)。
有些用戶會使用直接斷掉電源的方式來關(guān)閉linux,這是十分危險的。因?yàn)閘inux與windows不同,其后臺運(yùn)行著許多進(jìn)程,所以強(qiáng)制關(guān)機(jī)可能會導(dǎo)
致進(jìn)程的數(shù)據(jù)丟失﹐使系統(tǒng)處于不穩(wěn)定的狀態(tài)﹐甚至在有的系統(tǒng)中會損壞硬件設(shè)備。
而在系統(tǒng)關(guān)機(jī)前使用shutdown命令﹐系
統(tǒng)管理員會通知所有登錄的用戶系統(tǒng)將要關(guān)閉。并且login指令會被凍結(jié)﹐即新的用戶不能再登錄。直接關(guān)機(jī)或者延遲一定的時間才關(guān)機(jī)都是可能的﹐還可能重
啟。這是由所有進(jìn)程〔process〕都會收到系統(tǒng)所送達(dá)的信號〔signal〕決定的。這讓像vi之類的程序有時間儲存目前正在編輯的文檔﹐而像處理郵
件〔mail〕和新聞〔news〕的程序則可以正常地離開等等。
shutdown執(zhí)行它的工作是送信號〔signal〕給
init程序﹐要求它改變runlevel。Runlevel 0被用來停機(jī)〔halt〕﹐runlevel
6是用來重新激活〔reboot〕系統(tǒng)﹐而runlevel
1則是被用來讓系統(tǒng)進(jìn)入管理工作可以進(jìn)行的狀態(tài)﹔這是預(yù)設(shè)的﹐假定沒有-h也沒有-r參數(shù)給shutdown。要想了解在停機(jī)〔halt〕或者重新開機(jī)
〔reboot〕過程中做了哪些動作﹐你可以在這個文件/etc/inittab里看到這些runlevels相關(guān)的資料。
shutdown 參數(shù)說明:
[-t] 在改變到其它runlevel之前﹐告訴init多久以后關(guān)機(jī)。
[-r] 重啟計算器。
[-k] 并不真正關(guān)機(jī)﹐只是送警告信號給每位登錄者〔login〕。
[-h] 關(guān)機(jī)后關(guān)閉電源〔halt〕。
[-n] 不用init﹐而是自己來關(guān)機(jī)。不鼓勵使用這個選項(xiàng)﹐而且該選項(xiàng)所產(chǎn)生的后果往往不總是你所預(yù)期得到的。
[-c] cancel current process取消目前正在執(zhí)行的關(guān)機(jī)程序。所以這個選項(xiàng)當(dāng)然沒有時間參數(shù)﹐但是可以輸入一個用來解釋的訊息﹐而這信息將會送到每位使用者。
[-f] 在重啟計算器〔reboot〕時忽略fsck。
[-F] 在重啟計算器〔reboot〕時強(qiáng)迫fsck。
[-time] 設(shè)定關(guān)機(jī)〔shutdown〕前的時間。
2.halt----最簡單的關(guān)機(jī)命令
其實(shí)halt就是調(diào)用shutdown -h。halt執(zhí)行時﹐殺死應(yīng)用進(jìn)程﹐執(zhí)行sync系統(tǒng)調(diào)用﹐文件系統(tǒng)寫操作完成后就會停止內(nèi)核。
參數(shù)說明:
[-n] 防止sync系統(tǒng)調(diào)用﹐它用在用fsck修補(bǔ)根分區(qū)之后﹐以阻止內(nèi)核用老版本的超級塊〔superblock〕覆蓋修補(bǔ)過的超級塊。
[-w] 并不是真正的重啟或關(guān)機(jī)﹐只是寫wtmp〔/var/log/wtmp〕紀(jì)錄。
[-d] 不寫wtmp紀(jì)錄〔已包含在選項(xiàng)[-n]中〕。
[-f] 沒有調(diào)用shutdown而強(qiáng)制關(guān)機(jī)或重啟。
[-i] 關(guān)機(jī)〔或重啟〕前﹐關(guān)掉所有的網(wǎng)絡(luò)接口。
[-p] 該選項(xiàng)為缺省選項(xiàng)。就是關(guān)機(jī)時調(diào)用poweroff。
3.reboot
reboot的工作過程差不多跟halt一樣﹐不過它是引發(fā)主機(jī)重啟﹐而halt是關(guān)機(jī)。它的參數(shù)與halt相差不多。
4.init
init是所有進(jìn)程的祖先﹐它的進(jìn)程號始終為1﹐所以發(fā)送TERM信號給init會終止所有的用戶進(jìn)程﹑守護(hù)進(jìn)程等。shutdown
就是使用這種機(jī)制。init定義了8個運(yùn)行級別(runlevel),init 0為關(guān)機(jī)﹐init
1為重啟。關(guān)于init可以長篇大論﹐這里就不再敘述。另外還有telinit命令可以改變init的運(yùn)行級別﹐比如﹐telinit
-iS可使系統(tǒng)進(jìn)入單用戶模式﹐并且得不到使用shutdown時的信息和等待時間。
ls命令選項(xiàng)詳解
ls 命令可以說是Linux下最常用的命令之一。它有眾多的選項(xiàng),其中有很多是很有用的,你是否熟悉呢?下面列出了 ls 命令的絕大多數(shù)選項(xiàng)。
-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-b 把文件名中不可輸出的字符用反斜杠加字符編號(就象在C語言里一樣)的形式列出。
-c 輸出文件的 i 節(jié)點(diǎn)的修改時間,并以此排序。
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。
-e 輸出時間的全部信息,而不是輸出簡略信息。
-f -U 對輸出的文件不排序。
-g 無用。
-i 輸出文件的 i 節(jié)點(diǎn)的索引信息。
-k 以 k 字節(jié)的形式表示文件的大小。
-l 列出文件的詳細(xì)信息。
-m 橫向輸出文件名,并以“,”作分格符。
-n 用數(shù)字的 UID,GID 代替名稱。
-o 顯示文件的除組信息外的詳細(xì)信息。
-p -F 在每個文件名后附上一個字符以說明該文件的類型,“*”表示可執(zhí)行的普通
文件;“/”表示目錄;“@”表示符號鏈接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可輸出的字符。
-r 對目錄反向排序。
-s 在每個文件名后輸出該文件的大小。
-t 以時間排序。
-u 以文件上次被訪問的時間排序。
-x 按列輸出,橫向排序。
-A 顯示除 “.”和“..”外的所有文件。
-B 不輸出以 “~”結(jié)尾的備份文件。
-C 按列輸出,縱向排序。
-G 輸出文件的組的信息。
-L 列出鏈接文件名而不是鏈接到的文件。
-N 不限制文件長度。
-Q 把輸出的文件名用雙引號括起來。
-R 列出所有子目錄下的文件。
-S 以文件大小排序。
-X 以文件的擴(kuò)展名(最后一個 . 后的字符)排序。
-1 一行只輸出一個文件。
--color=no 不顯示彩色文件名
--help 在標(biāo)準(zhǔn)輸出上顯示幫助信息。
--version 在標(biāo)準(zhǔn)輸出上輸出版本信息并退出。
Linux系統(tǒng)命令(文件傳輸)
uuto
功能說明:將文件傳送到遠(yuǎn)端的UUCP主機(jī)。
語 法:uuto [文件][目的]
補(bǔ)充說明:uuto為script文件,它實(shí)際上會執(zhí)行uucp,用來將文件傳送到遠(yuǎn)端UUCP主機(jī),并在完成工作后,以郵件通知遠(yuǎn)端主機(jī)上的用戶。
參 數(shù):
相關(guān)參數(shù)請參考uucp指令。
-----------------------------------------
uupick
功能說明:處理傳送進(jìn)來的文件。
語 法:uupick [-v][-I<配置文件>][-s<主機(jī)>][-x<層級>][--help]
補(bǔ)充說明:當(dāng)其他主機(jī)通過UUCP將文件傳送進(jìn)來時,可利用uupick指令取出這些文件。
參 數(shù):
-I<配置文件>或--config<配置文件> 指定配置文件。
-s<主機(jī)>或--system<主機(jī)> 處理由指定主機(jī)傳送過來的文件。
-v或--version 顯示版本信息。
--help 顯示幫助。
---------------------------------------
uucp
功能說明:在Unix系統(tǒng)之間傳送文件。
語 法:uucp [-cCdfjmrRtvW][-g<等級>][-I<配置文件>][-n<用戶>][-x<類型>][--help][...來源][目的]
補(bǔ)充說明:UUCP為Unix系統(tǒng)之間,通過序列線來連線的協(xié)議。uucp使用UUCP協(xié)議,主要的功能為傳送文件。
參 數(shù):
-c或--nocopy 不用將文件復(fù)制到緩沖區(qū)。
-C或--copy 將文件復(fù)制到緩沖區(qū)。
-d或--directiories 在傳送文件時,自動在[目的]建立必要的目錄。
-f或--nodirectiories 在傳送文件時,若需要在[目的]建立目錄,則放棄執(zhí)行該作業(yè)。
-g<等級>或--grade<等級> 指定文件傳送作業(yè)的優(yōu)先順序。
-I<配置文件>或--config<配置文件> 指定uucp配置文件。
-j或--jobid 顯示作業(yè)編號。
-m或--mail 作業(yè)結(jié)束后,以電子郵件報告作業(yè)是否順利完成。
-n<用戶>或--notify<用戶> 作業(yè)結(jié)束后,以電子郵件向指定的用戶報告作業(yè)是否順利完成。
-r或--nouucico 不要立即啟動uucico服務(wù)程序,僅將作業(yè)送到隊列中,待稍后再執(zhí)行。
-R或--recursive 若[來源]為目錄,則將整個目錄包含子目錄復(fù)制到[目的]。
-t或--uuto 將最后一個參數(shù)視為"主機(jī)名!用戶"。
-v或--version 顯示版本信息。
-W或--noexpand 不要將目前所在的目錄加入路徑。
-x<類型>或--debug<類型>啟動指定的排錯模式。
--help 顯示幫助。
[源...] 指定源文件或路徑。
[目的] 指定目標(biāo)文件或路徑。
---------------------------------------------
uucico
功能說明:UUCP文件傳輸服務(wù)程序。
語 法:uucico
[-cCDefqvwz][-i<類型>][-I<文件>][-p<連接端口號碼>][-][-rl][-
s<主機(jī)>][-S<主機(jī)>][-u<用戶>][-x<類型>][--help]
補(bǔ)充說明:uucico是用來處理uucp或uux送到隊列的文件傳輸工具。uucico有兩種工作模式:主動模式和附屬模式。當(dāng)在主動模式下時,uucico會調(diào)用遠(yuǎn)端主機(jī);在附屬模式下時,uucico則接受遠(yuǎn)端主機(jī)的調(diào)用。
參 數(shù):
-c或--quiet 當(dāng)不執(zhí)行任何工作時,不要更改記錄文件的內(nèi)容及更新目前的狀態(tài)。
-C或--ifwork 當(dāng)有工作要執(zhí)行時,才調(diào)用-s或-S參數(shù)所指定主機(jī)。
-D或--nodetach 不要與控制終端機(jī)離線。
-e或--loop 在附屬模式下執(zhí)行,并且出現(xiàn)要求登入的提示畫面。
-f或--force 當(dāng)執(zhí)行錯誤時,不等待任何時間即重新調(diào)用主機(jī)。
-i<類型>或--stdin<類型> 當(dāng)使用到標(biāo)準(zhǔn)輸入設(shè)備時,指定連接端口的類型。
-I<文件>--config<文件> 指定使用的配置文件。
-l或--prompt 出現(xiàn)要求登入的提示畫面。
-p<連接端口號碼>或-port<連接端口號碼> 指定連接端口號碼。
-q或--quiet 不要啟動uuxqt服務(wù)程序。
-r0或--slave 以附屬模式啟動。
-s<主機(jī)>或--system<主機(jī)> 調(diào)用指定的主機(jī)。
-u<用戶>或--login<用戶> 指定登入的用戶帳號,而不允許輸入任意的登入帳號。
-v或--version 顯示版本信息,并且結(jié)束程序。
-w或--wait 在主動模式下,當(dāng)執(zhí)行調(diào)用動作時,則出現(xiàn)要求登入的提示畫面。
-x<類型>或-X<類型>或outgoing-debug<類型> 啟動指定的排錯模式。
-z或--try-next 當(dāng)執(zhí)行不成功時,嘗試下一個選擇而不結(jié)束程序。
--help 顯示幫助,并且結(jié)束程序。
--------------------------------------
tftp(trivial file transfer protocol)
功能說明:傳輸文件。
語 法:tftp [主機(jī)名稱或IP地址]
補(bǔ)充說明:FTP讓用戶得以下載存放于遠(yuǎn)端主機(jī)的文件,也能將文件上傳到遠(yuǎn)端主機(jī)放置。tftp是簡單的文字模式ftp程序,它所使用的指令和FTP類似。
-----------------------------------------
ncftp(nc file transfer protocol)
功能說明:傳輸文件。
語 法:ncftp [主機(jī)或IP地址]
補(bǔ)充說明:FTP讓用戶得以下載存放于服務(wù)器主機(jī)的文件,也能將文件上傳到遠(yuǎn)端主機(jī)放置。NcFTP是文字模式FTP程序的佼佼者,它具備多樣特色, 包括顯示傳輸速率,下載進(jìn)度,自動續(xù)傳,標(biāo)住書簽,可通過防火墻和代理服務(wù)器等。
-----------------------------------------
ftpwho
功能說明:顯示目前所有以FTP登入的用戶信息。
語 法:ftpwho
補(bǔ)充說明:執(zhí)行這項(xiàng)指令可得知目前用FTP登入系統(tǒng)的用戶有那些人,以及他們正在進(jìn)行的操作。
--------------------------------
ftpshut(ftp shutdown)
功能說明:在指定的時間關(guān)閉FTP服務(wù)器。
語 法:ftpshut [-d<分鐘>][-l<分鐘>][關(guān)閉時間]["警告信息"]
補(bǔ)充說明:本指令提供系統(tǒng)管理者在設(shè)置的時間關(guān)閉FTP服務(wù)器,且能在關(guān)閉之前發(fā)出警告信息通知用戶。關(guān)閉時間若設(shè)置后為"none",則會馬上關(guān)閉服
務(wù)器。如果采用"+30"的方式來設(shè)置表示服務(wù)器在30分鐘之后關(guān)閉。依次類推,假設(shè)使用"1130"的格式則代表服務(wù)器會在每日的11時30分關(guān)閉,時
間格式為24小時制。FTP服務(wù)器關(guān)閉后,在/etc目錄下會產(chǎn)生一個名稱為shutmsg的文件,把它刪除后即可再度啟動FTP服務(wù)器的功能。
參 數(shù):
-d<分鐘> 切斷所有FTP連線時間。
-l<分鐘> 停止接受FTP登入的時間。
---------------------------------
ftpcount
功能說明:顯示目前以FTP登入的用戶人數(shù)。
語 法:ftpcount
補(bǔ)充說明:執(zhí)行這項(xiàng)指令可得知目前用FTP登入系統(tǒng)的人數(shù)以及FTP登入人數(shù)的上限。
--------------------------------
ftp(file transfer protocol)
功能說明:設(shè)置文件系統(tǒng)相關(guān)功能。
語 法:ftp [-dignv][主機(jī)名稱或IP地址]
補(bǔ)充說明:FTP是ARPANet的標(biāo)準(zhǔn)文件傳輸協(xié)議,該網(wǎng)絡(luò)就是現(xiàn)今Internet的前身。
參 數(shù):
-d 詳細(xì)顯示指令執(zhí)行過程,便于排錯或分析程序執(zhí)行的情形。
-i 關(guān)閉互動模式,不詢問任何問題。
-g 關(guān)閉本地主機(jī)文件名稱支持特殊字符的擴(kuò)充特性。
-n 不使用自動登陸。
-v 顯示指令執(zhí)行過程。
----------------------------------------
bye
功能說明:中斷FTP連線并結(jié)束程序。
語 法:bye
補(bǔ)充說明:在ftp模式下,輸入bye即可中斷目前的連線作業(yè),并結(jié)束ftp的執(zhí)行。
Linux_FAQ之三:系統(tǒng)命令
背景資料
·Linux入門與提高
Q: 請問 mount 命令如何使用?
A: 寫常用的幾個,其馀請 man 8 mount
bootdisk:
mount -t minix /dev/fd0 /mnt
(SingleBoy 注: 這里 -t 后面的參數(shù)可能需要用別的, 可以試下msdos 或者 ext2) DOS Partition:
假設(shè) dos 裝在 /dev/hda1, 并且存在 /dos 這個目錄, 且為空.
則 mount -t vfat /dev/hda1 /dos 光碟機(jī):
假設(shè) CD-ROM 裝在 /dev/hdb, 并且存在 /cdrom 這個目錄, 且為空.則 mount -t is9660 /dev/hdb /cdrom ^^^^^^->cdrom 的檔案格式..
-- by lanzj (nal) 收集整理
Q: 我不能 mount 我的光驅(qū)了,根據(jù) /etc/fstab 來mount /cdrom,系統(tǒng)出錯
A: 請在啟動時看清楚你的光驅(qū)接在哪個設(shè)備上,或者在進(jìn)入系統(tǒng)后運(yùn)行dmesg看看。假設(shè)接在/dev/hdc上,就如此這般:
#cd /dev
#ln -s hdc cdrom
以后就可以用mount /cdrom來將光驅(qū)mount到/cdromm上了。
-- by emi (你既無心我便休)
Q: 某個分區(qū) mount 出來是只讀, 如何解決?
用mount -v可以看到那個分區(qū)是(rw)的,應(yīng)該是可寫的??墒蔷褪菦]法寫進(jìn)東西去,老是說這是一個read-only filesystem
A: mount -n -o remount,rw <安裝點(diǎn)>
--by LinuxFarmer (LinuxZealot)
Q: 請問 ls --color 時顯示的彩色是如何定義的? 如何修改?
A: 顏色:綠色--->可執(zhí)行檔
藍(lán)色--->目錄
紅色--->壓縮檔
淺藍(lán)色->連結(jié)檔
灰色--->一般檔(沒有定義的檔)
可修改/etc/DIR_COLORS
-- by tou.bbs@Friend.pine.ncu.edu.tw (風(fēng))
Q: 如何讓 ls 只列出目錄不列出檔案
A: ls -l | grep ^d
或者
ls -F | grep /
-- by lanzj (nal) 收集整理
Q: 請問gz和tar結(jié)尾的文件如何安裝?
A: .tar .......tar vxf*.tar
tar.gz.....tar vzxf *.tar.gz
-- by aazheng (你快樂所以我快樂)
tar zvfx *.tar.gz(*.tgz) -C directory //把*.tar.gz文件解開到指定目錄 -- by
lcipher (斷劍阿飛) 如果是slackware 的軟件包, 就是用 .tgz 結(jié)尾的. 個人認(rèn)為這是 .tar.gz 的縮寫.
這種軟件包是包含路徑的, 所以不用管它是在哪個目錄下, 安裝就用tar zvxf xxxxx.tgz就可以了.
-- by SingleBoy (孤鷹★無欲無求★)
Q: 如何在 Linux 中拷貝和粘貼文本
A: 在 X Window 環(huán)境下, 可以用鼠標(biāo)左鍵來選擇文本,然后可以用鼠標(biāo)中鍵把它粘貼到你所想要的地方。如果是兩鍵鼠標(biāo)則在配置是要選擇防真3鍵鼠標(biāo),之后同時按下左右鍵模擬中鍵。
在控制臺模式下, 需要啟動gpm守護(hù)神(deamon)程序, 用鼠標(biāo)右鍵來粘貼。
-- by merry (此情不渝)
Q: 如何讓兩個用戶同時使用 X Windows?
A: 在同一個機(jī)器上使用多個XWindow:
Ctrl + Alt + F1: startx
Ctrl + Alt + F1: startx -- :2
然后可以用Crtl + Alt + F7和Ctrl + Alt + F8切換.
-- by nethunter (鳳翼天翔) 收集提供
我記得最多能用四個..., try
startx --:3
startx --:4
then Ctl+Alt+F7~F10
-- by chan (僕は 哲人でない)
Q: 如何在linux下查網(wǎng)卡的MAC地址?
A: 可以用 ifconfig 或者 arp
/sbin/ifconfig
eth1 Link encap:Ethernet HWaddr 00:10:4B:08:CE:38
~~~~~~~~~~~~~~~~~~~~~~~~~
inet addr:192.168.127.45 Bcast:192.168.127.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7253226 errors:8369 dropped:0 overruns:0 frame:8370
TX packets:4501290 errors:0 dropped:0 overruns:0 carrier:2
collisions:111534
Interrupt:10 Base address:0xb800
/sbin/arp
Address HWtype HWaddress Flags Mask Iface
192.168.127.120 ether 00:10:A4:FE:35:02 C eth1
192.168.127.203 ether 00:80:C7:5A:E8:70 C eth1
handsome ether 00:00:E8:75:B6:52 C eth1
掃盲行動之:Linux常用命令簡
su
su命令是最基本的命令之一,常用于不同用戶間切換。例如,如果登錄為 user1,要切換為user2,只要用如下命令:
$su user2
然后系統(tǒng)提示輸入user2口令,輸入正確的口令之后就可以切換到user2。完成之后就可以用exit命令返回到user1。
su命令的常見用法是變成根用戶或超級用戶。如果發(fā)出不帶用戶名的su命令 ,則系統(tǒng)提示輸入根口令,輸入之后則可切換為根用戶。
如果登錄為根用戶,則可以用su命令成為系統(tǒng)上任何用戶而不需要口令。
pwd
pwd命令也是最常用最基本的命令之一,用于顯示用戶當(dāng)前所在的目錄。
cd
cd命令不僅顯示當(dāng)前狀態(tài),還改變當(dāng)前狀態(tài),它的用發(fā)跟dos下的cd命令基本一致。
cd ..可進(jìn)入上一層目錄
cd -可進(jìn)入上一個進(jìn)入的目錄
cd ~可進(jìn)入用戶的home目錄
ls
ls命令跟dos下的dir命令一樣,用于顯示當(dāng)前目錄的內(nèi)容。
如果想取得詳細(xì)的信息,可用ls -l命令, 這樣就可以顯示目錄內(nèi)容的詳細(xì)信息。
如果目錄下的文件太多,用一屏顯示不了,可以用ls -l |more分屏顯示 。
find
find命令用于查找文件。這個命令可以按文件名、建立或修改日期、所有者(通常是建立文件的用戶)、文件長度或文件類型進(jìn)行搜索。
find命令的基本結(jié)構(gòu)如下:
$find
其中指定從哪個目錄開始搜索。指定搜索條件。表示找到文件怎么處理。一般來說,要用-print動作,顯示 整個文件路徑和名稱。如果沒有這個動作,則find命令進(jìn)行所要搜索而不顯示結(jié)果,等于白費(fèi)勁。
例如,要搜索系統(tǒng)上所有名稱為ye的文件,可用如下命令:
$find / -name ye -print
這樣就可以顯示出系統(tǒng)上所有名稱為ye的文件。
tar
tar最初用于建立磁帶備份系統(tǒng),目前廣泛用于建立文件發(fā)布檔案??捎萌缦路椒ńar檔案:
$tar cvf
例如,如果要將當(dāng)前目錄中所有文件存檔到y(tǒng)e.tar中,可用如下命令:
$tar cvf ye.tar *.*
要瀏覽檔案內(nèi)容,將c選項(xiàng)變成t。如果要瀏覽ye.tar檔案中的內(nèi)容,可用如下命令:
$tar tvf ye.tar
要取出檔案內(nèi)的內(nèi)容,將c選項(xiàng)變成x。如果要將ye.tar檔案中的內(nèi)容取到當(dāng)前目錄中,可用如下命令:
$tar xvf ye.tar
gzip
gzip命令用于壓縮文件。 例如,如果要將ye.txt文件壓縮,可用如下命令:
$gzip ye.txt
這樣就可以壓縮文件并在文件名后面加上gz擴(kuò)展名,變成文件ye.txt.gz。
解壓縮文件可用gzip -d命令實(shí)現(xiàn):
$gzip -d ye.txt.gz
這樣就可以解壓縮文件并刪除gz擴(kuò)展名。除此之外還可以用gunzip命令來解 壓縮文件,效果跟用gzip -d命令一樣。
舊版的tar命令不壓縮檔案,可用gzip壓縮。例如:
$tar cvf ye.tar *.txt
$gzip ye.tar
則可建立壓縮檔案ye.tar.gz。
新版的tar可以直接訪問和建立gzip壓縮的tar檔案,只要在tar命令中加上z 選項(xiàng)就可以了。例如:
$tar czvf ye.tar *.txt
生成壓縮檔案ye.tar.gz,
$tar tzvf ye.tar *.txt
顯示壓縮檔案ye.tar.gz的內(nèi)容,而
$tar xzvf ye.tar *.txt
取出壓縮檔案ye.tar.gz的內(nèi)容。
mkdir
這個命令很簡單,跟dos的md命令用法幾乎一樣,用于建立目錄。
cp
cp命令用于復(fù)制文件或目錄。
cp命令可以一次復(fù)制多個文件,例如:
$cp *.txt *.doc *.bak /home
將當(dāng)前目錄中擴(kuò)展名為txt、doc和bak的文件全部復(fù)制到/home目錄中。
如果要復(fù)制整個目錄及其所有子目錄,可以用cp -R命令。
rm
rm命令用于刪除文件或目錄。
rm命令會強(qiáng)制刪除文件,如果想要在刪除時提示確認(rèn),可用rm -i命令。
如果要刪除目錄,可用rm -r命令。rm -r命令在刪除目錄時,每刪除一個文件或目錄都會顯示提示,如果目錄太大,響應(yīng)每個提示是不現(xiàn)實(shí)的。這時可以用 rm -rf命令來強(qiáng)制刪除目錄,這樣即使用了-i標(biāo)志也當(dāng)無效處理。
mv
mv命令用于移動文件和更名文件。例如:
$mv ye.txt /home
將當(dāng)前目錄下的ye.txt文件移動到/home目錄下,
$mv ye.txt ye1.txt
將ye.txt文件改名為ye1.txt。
類似于跟cp命令,mv命令也可以一次移動多個文件,在此不再贅敘。
reboot
重啟命令,不必多說。
halt
關(guān)機(jī)命令,不必多說。
常用的系統(tǒng)狀態(tài)查詢命令
# lsdev –C –s scsi
列出各個SCSI設(shè)備的所有相關(guān)信息:如邏輯單元號,硬件地址及設(shè)備文件名等。
# ps -ef
列出正在運(yùn)行的所有進(jìn)程的各種信息:如進(jìn)程號及進(jìn)程名等。
# netstat -rn
列出網(wǎng)卡狀態(tài)及路由信息等。
# netstat -in
列出網(wǎng)卡狀態(tài)及網(wǎng)絡(luò)配置信息。
# df -k
列出已加載的邏輯卷及其大小信息。
# mount
列出已加載的邏輯卷及其加載位置。
# uname -a
列出系統(tǒng)ID 號,系統(tǒng)名稱,OS版本等信息。
# hostname
列出系統(tǒng)網(wǎng)絡(luò)名稱。
# lsvg –l rootvg,lsvg –p rootvg
顯示邏輯卷組信息,如包含哪些物理盤及邏輯卷等。
# lslv –l datalv,lslv –p datalv
顯示邏輯卷各種信息,如包含哪些盤,是否有鏡像等。
八 網(wǎng)絡(luò)故障定位方法
網(wǎng)絡(luò)不通的診斷過程:
ifconfig 查看網(wǎng)卡是否啟動 (up)
netstat –i 查看網(wǎng)卡狀態(tài)
Ierrs/Ipkts 和 Oerrs/Opkts是否>1%
ping自己網(wǎng)卡地址 (ip 地址)
ping其它機(jī)器地址,如不通,在其機(jī)器上用diag檢測網(wǎng)卡是否有問題。
在同一網(wǎng)中, subnetmask 應(yīng)一致。
網(wǎng)絡(luò)配置的基本方法:
(1) 如需修改網(wǎng)絡(luò)地址、主機(jī)名等,一定要用 chdev 命令
# chdev –l inet0 –a hostname=myhost
# chdev -l en0 -a netaddr='9.3.240.58' -a netmask=255.255.255.0’
(2) 查看網(wǎng)卡狀態(tài):# lsdev –Cc if
(3) 確認(rèn)網(wǎng)絡(luò)地址:# ifconfig en0
(4) 啟動網(wǎng)卡:# ifconfig en0 up
(5) 配置路由
有兩種方式加入路由:
永久路由
# chdev -l inet0 -a route=’10.47.0.0’,’9.3.240.59’
臨時路由
# route add 10.47.1.2 9.3.240.59
用命令 netstat -rn 查看路由表
附:常用命令列表:
Any XXXX, ####, ****, or X is to be substituted by a name, resource name or #,
fn = filename
DIR = Directory
| = pipe symbol
bosboot -a -d /dev/hdiskx -rebuilds boot record/image on boot device(hdiskx)
cat -view contents of a file
cat /tmp/****.1 -view a file, look at output
cat fn fn > newfile -combines two files to a single file
cd -will return you to default DIR
cd / -will put in root DIR
cd /xxxx -change you to a DIR anywhere is system
cd .. -will drop you out of 1 DIR at a time
cd xxxxx -will change you to a DIR in current dir
cfgmgr -will auto config devices
cfgmgr -v & -(-v) shows processes (&) puts in background
chps -s xx hd# -increase paging space (xx=# of addt'l PPs)
cp oldfn newfn -copy a file
cp oldfn Dirn -copy a file to another directory
crontab -l -list crontab entries for the current user
ctrl + v -will page down 1 page
ctrl + 6 -will page up 1 page
del fn -same as rm -i,promts to remove fn
df -I -shows status of file systems (no inodes)
df -Ik -(k) show status in 1024 bites(1mb)(only AIX 4
diag -a -updates changes in hardware configuration
diag ***** -****= a device type(as tape,disk....Fastpath)
diag -cd rmtX -resets tape drive
dosformat -formats a diskette to DOS
dosdir -list files on dos formated diskette
dosread XX YY -copies dos file XX to aix file YY
doswrite YY XX -copies aix file YY to dos file XX
errpt -generates a one line synopsis of logged errors
errpt | pg -list errorlog 1 page @ a time(1st column is ID)
errpt -a -displays detailed information of logged errors
errpt -s Mmddhhmmyy -select entries posted later than date
errpt -aj XXXXXXX -list detail error by ID number.(XXX=1st column)
errpt -d S -list software errors
errpt -j XXXXXXX -list summary report by ID number.
errpt -aN XXXXXX -list detailed report by resource name column
errpt -N XXXXXXX -list summary report by resource name column
errclear 0 -clears errorlog
errclear -N XXXXX 0 -clears errorlog by resource name, 0=all enter
errclear -j XXXXX 0 -clears errorlog by ID number.
finger -same as who but with more details
flcopy -copies a diskette to another diskette
format -formats a diskette in default diskette drive
format -l -formats in lower denity: 1.44 on 2.44 / 720 on 1.44
hostname -responds with host system name
host (hostname) -responds with internet address
instfix -ik IPAR# -lists ipar fix was completely installed
lppchk -v -checks install status of LPPs
lppchk -v 2> /dev/lpX -sends output of lppchk to printer lpx
lpstat -a all -view all printer queues
lptest 80 5 > /dev/lp0 -send test pattern to lp0
ls -list names of files & directories in current dir
ls -lia -list details of files, current dir & subdir
ls -al -list details of files or dir in current dir
lsattr -El xxxxxx -list specific settings on a device
lsdev -C | sort -d -f -list system hardware (devices)
lsdev -C | grep 00-0X -list resourses for a adapter
lsdev -Cc xxxxx -H -list devices(xxx=tty,printer,disk,memory,adpt
lsdev -Cs scsi -list scsi devices(not serial or raid)
lsdev -Cc tape -list tape devices
lsdev -Cs pci -list pci devices
lsdev -Cs isa -list isa devices
lscons -lists the assigned console
lscfg -list hardware list (same as diags list)
lscfg -rl mem* |pg -lists the memory on PCI bus machines
lscfg -vl XXXXX -list config info from a device.(rmt0,hdisk,etc)
lscfg -vl sysplanar0 -lists the machine type, model, s/n on SMP
lsfs -list all filesystems + data from "df" cmd
lslpp -l | grep BROKEN -lists incomplete ptfs
lslv -m hd5 -finds boot drive under pv1 column
lsps -a -checks available paging space
lsps -s -checks available paging space
lspv -lists information about the physical volumes
lspv hdisk# -list drive info
lspv -l hdisk# -lists logical volume group disk in
lsuser -f ALL -lists all attributes for all users
lsvg -lists volume groups
lsvg -p XXXXXX -lists disks in volume group (xxxxx= volume name)
more -reads files and displays the text one screen at a time.
mpcfg -df -list all setting the machine is set to (smp)
mpcfg -cf 11 1 -changes to fast IPL on SMP machines (smp)
mv fn (path fn) -move and rename a file
oslevel -shows AIX version (3.2.4 and above)
pg -reads and displays text one screen at a time.
pdisable -makes unavailable or shows all disabled tty's
pdisable tty# -disables a tty
penable -makes available or shows all enabled tty's
penable tty# -enables a tty
ps -el |pg -look at process running on system
pwd -list what DIR you are currently in
r -repeats last command
rm -i ******* -remove a file & will prompt you if you are sure
rmdev -l XXXXX -removes a device and defines it to data base
rmdev -l XXXXX -d -removes a device and deletes it from data base
set -o vi -sets up to veiw cammands that have been run
:wq -write(save) and quit file
Esc + k -used with SET command to list last command
k,l -k=list next command ran, l=steps you thru command
I -use with SET command inserts characters
j -steps you backwards
cw -cw=removes a word,just type in new word
(use with Esc)
a,x,r -a=added text, x=delete text, r=replace text(r+letter)
R -lets you type over letters or words
smit ***** -(*****= tape,disk,tty,etc.fastpath)
su -stands for switch user,(NOT super user)
su -switches to root id or prompts you for password
su XXXXXX -switches to XXXXXX's id
tar -cvf /dev/rmtX /etc -will copy /etc to a tape drive
tar -tvf /dev/rmtX -will read a tape drive
tctl -f /dev/rmtX rewoffl -rewind & eject tape
tctl -f /dev/rmtX.1 fsf 3 -forward advances a tape to be read by TAR
tctl -F -list avail commands(-F flag is not correct)
tctl retension -retensions tape in tape drive
& -put any command in background with process ID<