UNIXBASIC第8章UNIX實用程序課件_第1頁
UNIXBASIC第8章UNIX實用程序課件_第2頁
UNIXBASIC第8章UNIX實用程序課件_第3頁
UNIXBASIC第8章UNIX實用程序課件_第4頁
UNIXBASIC第8章UNIX實用程序課件_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第8章章 UNIX實用程序實用程序 8.1.1 文件查找工具find 8.1.2 模式匹配工具grep 8.1.3 排序工具sort 8.1.4 head和tail工具 8.1.5 網(wǎng)絡基本工具 8.1.6 歸檔工具tar8.1 UNIX實用程序(一) 8.2.1 xargs命令 8.2.2 可執(zhí)行文件查找工具 8.2.3 確定文件類型工具(file) 8.2.4 文件比較工具 8.2.5 解壓縮工具 8.2.6 顯示特殊字符8.2 UNIX實用程序(二)習題掌握find命令的使用掌握grep命令并了解其工作原理掌握sort命令的使用掌握正則表達式的使用掌握head及tail命令的使用掌握如

2、何定位命令所在路徑掌握文件及目錄比較命令掌握文件壓縮命令l 命令語法:命令語法:find path expressionl 功能:功能:1. 在指定路徑(一個或多個目錄)和其下所有的子目錄中遞歸的查找符合指定規(guī)則的文件查找符合指定規(guī)則的文件2. 顯示找到的文件名顯示找到的文件名或對這些文件執(zhí)行命令執(zhí)行命令fleasmiscphone1phone2childlargemediumsmallsyncsizeblue brown greensumwhiteyellowcolormiscoval roundspheresumsyncshapejoehome/l 一般來說find主要用于在指定目錄結構目

3、錄結構中查找特定文件特定文件:$ find . -name sum ./color/sum ./shape/sum l 在一些較老的UNIX系統(tǒng)(例如AIX 4.2),如果需要將查找到的文件名打印出來要指定選項-print: $ find . -name sum -print ./color/sum ./shape/sum場景場景: 在當前目錄下查找所有以在當前目錄下查找所有以c開頭的文件開頭的文件 $ ls c* c1 c2 $ find . -name c* ./c1 ./c2 ./dir1/c3 ./dir1/c4 ./dir1/dir2/c5 ./dir1/dir2/c6/homete

4、am01dir1dir2c1c2c3c4c5c6Shell擴展通配符find擴展通配符l exec選項:選項:對找到的文件執(zhí)行命令執(zhí)行命令,執(zhí)行指定命令時不會產(chǎn)生交互。$ find . -name m* -exec ls -l ;-rw-r-r- 1 joe staff 83 Jan 11 15:55 ./shape/misc-rw-r-r- 1 joe staff 21 Jan 11 16:01 ./size/medium-rw-r-r- 1 joe staff 38 Jan 11 15:34 ./misc匹配的文件名l ok選項:對找到的文件執(zhí)行命令執(zhí)行命令,執(zhí)行指定命令時產(chǎn)生交互交互,詢

5、問用戶是否執(zhí)行該命令。 $ find . -name m* -ok rm ; ? y ? y ? n-typefd普通文件目錄文件-size+n-n n大于“n”塊(block,512字節(jié))小于“n”塊(block,512字節(jié))等于“n”塊(block,512字節(jié))-mtime+x-x修改日期超過“x”天修改日期小于“x”天-permonummode訪問權限等于“onum” (例如, 755)訪問權限等于“mode” (例如, rwx)-useruser根據(jù)文件的所有者-o邏輯“或”運算-newerfile與參照文件相比較更“新”$ find . -name s* -type f -size

6、+2 -exec ls -l ;-rwxr-xr-x 1 joe staff 1512 Jan 11 15:43 ./color/sum-rwxr-xr-x 1 joe staff 2148 Jan 11 15:57 ./shape/sum$ find . -perm 644 -mtime +4 -print./shape/misc$ find . -name fleas -o -name misc./misc./shape/misc./fleas$ find / -name security -print 2 errfile/var/security/usr/lpp/bos.sysmgt/i

7、nst_root/var/security/usr/lib/security/etc/security l 命令語法:命令語法:grep options pattern file1 file2 .l 功能:功能:1. 從系統(tǒng)的一個或多個文件或從標準輸入中查找查找匹配指定模式模式的行。2. 指定模式可以是簡單文本簡單文本或是邏輯結構(正則正則表達式表達式),正則表達式(Regular Expression)通過通配符來擴展。簡單文本正則表達式phone1:As of: 1/31/2000Anatole 389-8200Avis Betty 817 422-8345Baker John 656-4

8、333Computer Room CE phone 689-5790Dade Travel Sue 422-5690Hotline HW 800 322-4500phone2:As of: 2/15/2000Anatole 389-8200Avis Betty 817 422-8345Baker John 656-4333Computer Room CE phone 592-5712Dade Travel Sue 422-5690Hotline HW 800 322-4500$ grep 800 phone1Hotline HW 800 322-4500$ grep 800 phone*pho

9、ne1:Hotline HW 800 322-4500phone2:Hotline HW 800 322-4500l 第一個例子從文件第一個例子從文件phone1中找出了包含中找出了包含800的行的行l(wèi) 第二個例子文件名使用了通配符,所以第二個例子文件名使用了通配符,所以grep會在會在phone1和和phone2中進行搜索中進行搜索 $ ps -ef | grep team01team01 10524 13126 0 09:27:45 pts/1 0:00 kshl 找出當前運行的進程中用戶team01的所有進程。通過管道,ps的標準輸出作為grep的標準輸入。$ ps aux | grep

10、 httpd.l 找出進程名稱包含httpd的進程l 命令語法:命令語法:grep regular_expression filel 正則表達式合法的元字符:正則表達式合法的元字符:.任意單個字符任意單個字符*零個或多個前一個字符零個或多個前一個字符aA枚舉:枚舉:a 或或 Aa-f在在a-f范圍的任一字符范圍的任一字符a以以a開頭的任一行開頭的任一行Z$以以z結尾的任一行結尾的任一行l(wèi) grep命令和find命令中使用元字符,都應該用單引號括起來,避免shell對元字符進行擴展。grepgrep中的含義中的含義shell Shell中的含義中的含義作為一行開頭老的管道符號$作為一行結束$表示

11、變量.單個字符?單個字符.*零個或多個字符*多個字符 - 匹配之間的單個字符 - 匹配之間的單個字符$ grep B phone1Baker John 656-4333$ grep 5$ phone1Avis Betty 817 422-8345$ grep DH phone1Dade Travel Sue 422-5690Hotline HW 800 322-4500$ grep A.*0$ phone1As of: 1/31/2000Anatole 389-8200 : 開頭開頭$: 結尾結尾DH: 枚舉枚舉.* : 零個或多個任意字符零個或多個任意字符-V顯示文件中顯示文件中不匹配不匹配

12、的行的行-c僅打印文件中匹配的僅打印文件中匹配的行數(shù)行數(shù)-l僅顯示有匹配的行的僅顯示有匹配的行的文件名文件名-n顯示匹配行顯示匹配行序號序號-i尋找時尋找時忽略大小寫忽略大小寫-w模式作為模式作為整個字整個字的匹配查找的匹配查找lfgrep$ fgrep HW phone1Hotline HW 800 322-4500legrep$ egrep 800|817 phone1 Avis Betty 817 422-8345Hotline HW 800 322-4500 fast grep: 快速查找,只能匹配固定字符串,不支持正則表達式 Extended grep: 擴展查找,支持多個模式的查找

13、(或)grep ?l 命令語法:命令語法:sort -t delimiter+field.columnoptionsl 功能:功能:對指定文件中所有的行進行排序,并將結果到標準輸出l 命令選項:命令選項:-d按照字典順序僅比較字母、數(shù)字和空格按照字典順序僅比較字母、數(shù)字和空格-r反序排列反序排列-n對數(shù)字字段按算術值順序排序對數(shù)字字段按算術值順序排序-t指定字段的分界符指定字段的分界符,缺省分界符是空格或缺省分界符是空格或tab鍵鍵.$ cat animalsdog.2cat.4elephant.10rabbit.7$ sort animalscat.4dog.2elephant.10rabb

14、it.7$ cat animals | sort +0.1rabbit.7cat.4elephant.10dog.2$ cat animals | sort -t. -n +1dog.2cat.4rabbit.7elephant.10默認的sort排序 (0.0)按第二個字符排序 (0.1) -t: 分隔符 . -n: 數(shù)值順序 +1: 第二個字段 (1.0)# more /etc/passwd | sort -t: -n +2 -6 root:!:0:0:/:/bin/ksh daemon:!:1:1:/etc: bin:!:2:2:/bin: sys:!:3:3:/usr/sys: adm

15、:!:4:4:/var/adm: uucp:!:5:5:/usr/lib/uucp:$ ls l | moretotal 3-rwxr-xr-x 1 team01 staff 175 Dec 11 21:17 script-rwxr-xr-x 1 team01 staff 47 Dec 11 20:35 script1-rwxr-xr-x 1 team01 staff 318 Dec 11 21:41 test$ ls l | sort +4 -5 -n-rwxr-xr-x 1 team01 staff 47 Dec 11 20:35 script1-rwxr-xr-x 1 team01 st

16、aff 175 Dec 11 21:17 script-rwxr-xr-x 1 team01 staff 318 Dec 11 21:41 testtotal 3l 命令語法命令語法:head -number_of_lines file(s)l 功能:功能:顯示文件的前n行,默認是10行。$ head -5 myfile$ ls -l | head -12l 命令語法:命令語法:tail -number_of_lines | +starting_line_number file(s)l 功能:功能:顯示文件后n行。-n表示顯示文件的最后n行,+n表示從文件的第n行一直顯示到文件尾.-f選項顯示

17、后10行并且動態(tài)刷新.$ tail -20 file$ tail +20 filel 遠程登錄工具(telnet)l 文件傳輸工具(ftp)l 非交互式遠程執(zhí)行工具(rexec,rsh)l 安全Shell套件(OpenSSH)使用telnet命令可以登陸到遠程主機l命令語法:命令語法:telnet 主機名/ip地址 端口號(默認23)l示例示例:$ telnet IBM-p610Trying .Connected to IBM-p610.AIX Version 5(C) Copyright by IBM and others 1982, 1996login: team01使用ftp命令可以在主

18、機間傳輸文件l 命令語法:命令語法:ftp 主機名/ip地址 端口號(默認21)l 示例示例:$ ftp IBM-p610Connected to IBM-p610220 readyName (IBM-p610: team01): team05Password required for team05.Password: 230 User team05 logged in.ftpftp提示符,等待用戶輸入ftp子命令常用常用ftp子命令子命令pwd顯示當前所在目錄cd RemoteDir切換遠程的目錄dir (or) ls -l顯示當前目錄下的內容get ReomteFile localFile

19、下載遠程主機上的文件(到本地)put LocalFile remoteFile上傳本地文件到遠程主機help subcommand獲取命令幫助quit (or) bye退出ftp使用rexec 或 rsh 可以非交互式的執(zhí)行遠程命令.示例:示例:$ rexec sys1 dateName (sys1:team01): team01Password (sys1:team01):Fri Nov 23 14:38:23 EST 2007$ rsh sys1 dateFri Nov 23 14:38:30 EST 2007 $l rexec可以通過使用本地主機的$HOME/.netrc文件保存賬號信息

20、實現(xiàn)自動登錄l rsh 需要在遠程主機的/etc/hosts.equiv或$HOME/.rhosts 配置文件中進行設置才能使用l 提供了更安全的命令來代替提供了更安全的命令來代替telnet, ftp, rexec, rlogin, rcp, rsh. 數(shù)據(jù)加密后通過網(wǎng)絡傳輸 連接遠程主機前要進行身份校驗(用戶密碼和RSA密鑰雙重驗證)l 提供的命令提供的命令: ssh:遠程登錄和遠程執(zhí)行命令遠程登錄和遠程執(zhí)行命令 scp:遠程拷貝遠程拷貝 sftp: 加密加密FTP$ ssh team01sys1The authenticity of host sys1 () can

21、t be established.RSA key fingerprint is 21:b0:91:cb:6b:c7:47:7d:96:8d:73:43:44:e8:e3:8d.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added sys1, (RSA) to the list of known hosts.team01s password:$ tar (tape archiver)命令用來遞歸的保存目錄中的所有文件,儲存為一個檔案文件(非壓縮)AXIDISK

22、AXItar -cvf /tmp/ .tar -cvf /dev/rmt0 .tar -cvf /dev/fd0 .tar -xvf /dev/rmt0 tar -xvf /dev/fd0 tar -xvf /tmp/查看檔案文件內容:tar -tvf /dev/rmt0 (or /dev/fd0)-c創(chuàng)建一個歸檔文件-t顯示內容列表 -v顯示詳細的信息-f指定歸檔文件名-r擴展歸檔-x解包歸檔文件名l The find command is used to recursively search directories for files with particular characteris

23、tics.l The grep command is used to select entire lines containing a particular pattern.l The head and tail commands are used to view specific lines in a file.l The sort command sorts the contents of the file by the options specified. 8.2.1 xargs命令 8.2.2 可執(zhí)行文件查找工具 8.2.3 確定文件類型工具(file) 8.2.4 文件比較工具 8.

24、2.5 解壓縮工具 8.2.6 顯示特殊字符8.2 AIX實用程序 (二)習題l 命令語法:命令語法:command1 | xargs command2l 功能:功能:從標準輸入讀取一組參數(shù)標準輸入讀取一組參數(shù),并運行一條命令使用該組參數(shù)。 $ cat old file1 file2 file3 file4 $ cat old | xargs -t rm rm file1 file2 file3 file4file1 file2 file3 file4 $ ls printlist $ vi printlist file1 file2 file3 file4 . file10 $ xargs

25、-t qprt printlist qprt file1 file2 file3 file4 file5 . file10l 使用xargs命令,可以一次打印printlist文件中列出的所有文件l -t參數(shù)的作用是啟動跟蹤模式,在命令執(zhí)行之前將構造的命令輸出到標準輸出設備。 $ ls | xargs -t -I mv .old mv apple apple.old mv banana banana.old mv carrot carrot.oldl -I 選項通知xargs將ls命令的輸出的每一行插入到位置處。l 表示占位符。用戶使用-I選項定義占位符所使用的符號,可以改成其他符號例如等。l

26、 xargs與與find組合使用組合使用$ find . -type f -mtime +30 | xargs -t rmrm ./file1 ./file2 ./file3 ./file4l 只使用只使用find$ find . -type f -mtime +30 -exec rm ; l 兩種方式的區(qū)別:兩種方式的區(qū)別: 這兩種方式都可以刪除同樣的文件。 第一條命令是rm執(zhí)行4個參數(shù),效率高,而且沒有參數(shù)數(shù)量的限制。 第二條命令是find找到的每個文件都去執(zhí)行一次rm,效率低,而且有參數(shù)數(shù)量的限制。l xargs,find和和grep組合使用組合使用$ find . -type f |

27、xargs -t grep -l Hellogrep -l Hello ./file5 ./file7 ./file10 ./file7$ find . type f | xargs t grep abcgrep abc ./file1 ./file2 ./file3 ./file4l find查找當前目錄下的普通文件,這些文件由查找當前目錄下的普通文件,這些文件由xargs作為參數(shù)傳給作為參數(shù)傳給grep進行處理進行處理$ find /home -type f -links +1 | xargs ls li127 -rw-r-r 3 team01 staff 156 July 26 13:1

28、1 /home/team01/myfile127 -rw-r-r 3 team01 staff 156 July 26 13:11 /home/team01/yourfile127 -rw-r-r 3 team01 staff 156 July 26 13:11 /home/team01/akafilel -links +1 硬鏈接數(shù)大于硬鏈接數(shù)大于1l -type f 縮小搜索的范圍縮小搜索的范圍(目錄默認的情況的鏈接數(shù)都大于等于目錄默認的情況的鏈接數(shù)都大于等于2) 如果不使用如果不使用xargs可以改寫成:可以改寫成:$ find /home type f links +1 -exec l

29、s li ;相同的相同的i節(jié)點節(jié)點硬鏈接數(shù)硬鏈接數(shù)文件大小相同文件大小相同$ cat $HOME/.kshrcalias mylinks=find . -type f -links +1 | xargs ls -lialias myrm=find . -type f -mtime +30 | xargs rm$ mylinks127 -rw-r-r- 3 team01 staff . /home/team01/myfile127 -rw-r-r- 3 team01 staff . /home/team01/yourfile127 -rw-r-r- 3 team01 staff . /home/

30、team02/akafile$ myrmENV=$HOME/.kshrcl find命令可以查找所有類型的文件,如果只查命令可以查找所有類型的文件,如果只查找找可執(zhí)行文件可執(zhí)行文件,通常使用:,通常使用: which whereis whencel命令語法:命令語法:which | whereis | whence 命令名稱命令名稱 $ which find grep根據(jù)根據(jù)PATH變量定義查找變量定義查找/usr/bin/find/usr/bin/grep$ whereis find grep在預定義路徑中查找在預定義路徑中查找find: /usr/bin/findgrep: /usr/bi

31、n/grep$ whence -pv find grep根據(jù)根據(jù)alias和和PATH查找查找grep is /usr/bin/grepfind is /usr/bin/findl 命令語法:命令語法:file .l 功能:確定文件類型功能:確定文件類型 使用配置文件使用配置文件/etc/magic來進行識別來進行識別$ file /usr/bin/vi/usr/bin/vi:executable (RISC System/6000) or object module$ file c1c1: ascii text$ file /usr/bin/usr/bin: directory$ ls $

32、cat c1dir1$ c1: ascii textdir1: directoryAIX提供了三個文件比較的工具:提供了三個文件比較的工具:l diffl cmpl dircmpl 命令語法:命令語法: diff -options file1 file2l 功能:比較兩個功能:比較兩個文本文件文本文件之間的之間的差異差異 逐行分析比較的文本文件 將它們之間差異輸出到標準輸出l diff命令只能對文本文件使用命令只能對文本文件使用l 命令選項:命令選項:-w忽略空格鍵和tab鍵-b 忽略開頭的空格鍵和tab鍵, 多個空格鍵看成一個-e 生成適合于ed行編輯器處理的格式l diff的輸出結果表示:

33、的輸出結果表示: 僅在file2中出現(xiàn)的行$ diff names names.old1c1 Caroline4d3 SamCarolBobJimDonMaryCarolineBobJimMarySamnames: ()指令指令如何將文件如何將文件file1轉化為文件轉化為文件file21 1 file2第1行內容 將file1的第1行換成file2的第1行4 3 file2第5行內容 將file2的第5行添加到file1的5行之后l 命令語法:命令語法:cmp -options file1 file2l 功能:功能:比較兩個文件是否相同比較兩個文件是否相同l cmp與與diff的區(qū)別:的區(qū)別

34、:1.diff只能比較文本文件,只能比較文本文件,cmp可以比較所有類型文件可以比較所有類型文件2.diff以以ascii為比較單位,為比較單位,cmp以以bit為比較單位為比較單位3.cmp比較結果以八進制表示,可讀性很差比較結果以八進制表示,可讀性很差$ cmp names names.oldnames names.old differ: byte 6, line 1$ cmp -l names names.old6 12 1517 102 1568 157 145.cmp: EOF on namesl 默認只打印第一個不相同的字符默認只打印第一個不相同的字符l 使用使用-l選項可以顯示詳

35、細的比較信息選項可以顯示詳細的比較信息l 命令語法:命令語法:dircmp -options dir1 dir2l 功能:功能:比較兩個目錄的內容,并將比較結果輸出到標準輸出比較兩個目錄的內容,并將比較結果輸出到標準輸出/home/file.sh_historyc1c2c3c4c5c6dir1dir2/home/file.sh_historyb1c1c2$ dircmp -d /home/team01 /home/team02Fri Jan 21 10:31:10 CDT 2000 /home/team01 only and /home/team02 o

36、nly./dir1 ./b1./dir1/c3./dir1/c4./dir1/dir2./dir1/dir2/c5./dir1/dir2/c6Fri Jan 21 10:31:10 CDT 2000 Comparison of /home/team01 and /home/team02directory .same ./.profiledifferent ./.sh_historydifferent ./c1same ./c2Fri Jan 21 10:31:10 CDT 2000 diff of ./c1 in /home/team01 and /home/team021c1 Now is

37、the time for all good women第第1段段:列出每個目錄獨有的文件列出每個目錄獨有的文件第第2段段: 兩個目錄中同名文件的比較兩個目錄中同名文件的比較第第3段段:顯示有差異的同名文件的細節(jié)顯示有差異的同名文件的細節(jié)UNIX上常用的解壓縮工具包括:上常用的解壓縮工具包括:lcompress 壓縮文件luncompress 解壓文件lzcat 不進行解壓查看壓縮文件的內容$ ls -l file1-rw-r-r- 1 team01 staff 13383 July 26 10:10 file1$ compress -v file1file1: Compression 56.9

38、9% file1 is replaced with $ ls -l file1.Z-rw-r-r- 1 team01 staff 5756 July 26 10:10 $ zcat file1.Z(output is the normal output of the uncompressed file)$ uncompress file1.Z$ ls -l file1-rw-r-r- 1 team01 staff 13383 July 26 10:10 file1$ cat myfileThis tabs and spaces and ends with a return$ cat -vte myfileThisIfileG has tabsIand spaces andIends with aIreturn$選項說明:選項說明:-v:將非打印字符顯示為可見字符。將非打印字符顯示為可見字符。-t:將將tab鍵顯示為鍵顯示為I-e:在每一行的末尾顯示一個在每一行的末尾顯示一個$符號符號$ lsgreat$ rm greatfileNo such file$ ls | cat -vtGgrea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論