linux 應(yīng)用基礎(chǔ)教程--ch03_字符界面操作進(jìn)階_第1頁
linux 應(yīng)用基礎(chǔ)教程--ch03_字符界面操作進(jìn)階_第2頁
linux 應(yīng)用基礎(chǔ)教程--ch03_字符界面操作進(jìn)階_第3頁
linux 應(yīng)用基礎(chǔ)教程--ch03_字符界面操作進(jìn)階_第4頁
linux 應(yīng)用基礎(chǔ)教程--ch03_字符界面操作進(jìn)階_第5頁
已閱讀5頁,還剩143頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第3章字符界面操作進(jìn)階主講人: 梁如軍2021-05-05本章內(nèi)容要點(diǎn)文件和目錄操作命令信息顯示命令正那么表達(dá)式和文本文件操作命令Vim文本編輯器命令補(bǔ)全、命令別名、命令歷史重定向、管道、命令替換、命令聚合Shell變量 和 Shell環(huán)境時(shí)鐘、時(shí)區(qū)和語言2022年7月10日2本章學(xué)習(xí)目標(biāo) 掌握各種常用命令的使用學(xué)會使用正那么表達(dá)式學(xué)會使用VIM文本編輯器學(xué)會使用命令補(bǔ)全、命令別名、命令歷史掌握重定向、管道、命令替換、命令聚合掌握Shell變量的定義、作用域和使用學(xué)會配置用戶工作環(huán)境2022年7月10日3文件和目錄操作命令2022年7月10日4常用的目錄操作命令2022年7月10日5命令 功能

2、ls顯示文件和目錄列表cd切換目錄pwd顯示當(dāng)前工作目錄mkdir創(chuàng)建目錄rmdir刪除空目錄tree顯示目錄樹當(dāng)前工作目錄用戶目前所處的目錄用戶登錄后進(jìn)入的目錄通常是自己的主目錄可用 pwd 命令查看用戶的當(dāng)前目錄可用 cd 命令來切換目錄一些特殊字符的特殊含義:“ . 表示當(dāng)前目錄“. 表示當(dāng)前目錄的上一級目錄父目錄“- 表示用 cd 命令切換目錄前所在的目錄“ 表示用戶主目錄的絕對路徑名2022年7月10日6路徑 (path)路徑是指文件或目錄在文件系統(tǒng)中所處的位置絕對路徑 以斜線/開頭 描述到文件位置的完整說明 任何時(shí)候你想指定文件名的時(shí)候都可以使用 相對路徑 不以斜線/開頭 指定相對

3、于你的當(dāng)前工作目錄而言的位置 可以被用作指定文件名的簡捷方式2022年7月10日7ls命令功能:顯示文件或目錄信息格式: ls 選項(xiàng) 目錄或是文件 說明:對于目錄,該命令將列出其中的所有子目錄與文件。對于文件,ls 將輸出其文件名以及所要求的其他信息。默認(rèn)情況下,輸出條目按字母順序排序。當(dāng)未給出目錄名或文件名時(shí),就顯示當(dāng)前目錄的信息。2022年7月10日8ls命令選項(xiàng)選項(xiàng)說明-a列出目錄下的所有文件,包括以 . 開頭的隱含文件。-l列出文件的詳細(xì)信息,通常稱為“長格式”。-d輸入?yún)?shù)是目錄時(shí),只顯示該目錄本身。-A顯示除 “.” 和 “.” 外的所有文件。-R遞歸地列出所有子目錄下的文件。-h

4、以人類易讀的單位顯示文件大小。-S以文件大小排序輸出。-t以時(shí)間排序輸出。2022年7月10日9ls命令舉例2022年7月10日10ls列表顯示當(dāng)前目錄下的文件和目錄ls -a列表顯示當(dāng)前目錄下的文件和目錄(包括隱含文件和目錄)ls -l以長格式列表顯示結(jié)果ls -R遞歸地顯示當(dāng)前目錄及其子目錄下的文件和目錄ls -dl /usr/share/僅顯示/usr/share/目錄本身,而非/usr/share/ 目錄中的內(nèi)容ls -lt按最后修改時(shí)間順序,以長格式列出當(dāng)前目錄下的文件mkdir和tree命令舉例mkdirmkdir /home/lrj/mybin#創(chuàng)立一個(gè)空目錄mkdir -p m

5、ydoc/FAQ#創(chuàng)立一個(gè)空目錄樹mkdir -p /srv/www/abc,bcd/htdocs#創(chuàng)立/srv/www/abc/htdocs和/srv/www/bcd/htdocs目錄treetree /srv/www # 顯示/srv/www 目錄樹tree -L 3 /srv #顯示 /srv/ 的 3級目錄樹2022年7月10日11pwd和cd命令舉例$ pwd$ cd$ cd /some/dir/$ cd $ cd .$ cd ./.$ cd -2022年7月10日12常用的文件操作命令命令 功能touch生成一個(gè)空文件或更改文件的時(shí)間cp復(fù)制文件或目錄mv移動文件或目錄、文件或目錄

6、改名rm刪除文件或目錄ln建立鏈接文件find查找文件file/stat查看文件類型或文件屬性信息2022年7月10日13touch命令功能:生成新的空文件或更改現(xiàn)有文件的時(shí)間假設(shè)文件不存在,系統(tǒng)會建立一個(gè)文件默認(rèn)情況下將文件的時(shí)間記錄改為當(dāng)前時(shí)間格式:touch 參數(shù) 參數(shù)-a : 只更改訪問時(shí)間。-m : 只更改修改時(shí)間。-t : 使用CCYYMMDDhhmm.ss格式的時(shí)間而非當(dāng)前時(shí)間。-r : 使用指定文件的時(shí)間屬性而非當(dāng)前時(shí)間。2022年7月10日14touch命令舉例 $ touch newfile $ touch file $ touch -a file $ touch -m f

7、ile $ touch -t 200701311200 file $ touch -r oldfile newfile2022年7月10日15文件的時(shí)間戳GNU/Linux 文件的3種類型的時(shí)間戳: mtime: 最后修改時(shí)間 (ls -lt) ctime: 狀態(tài)改變時(shí)間 (ls -lc) atime: 最后訪問時(shí)間 (ls -lu) 說明 ctime并非文件創(chuàng)立時(shí)間。 覆蓋一個(gè)文件會改變mtime、ctime和atime三類時(shí)間。 改變文件的訪問權(quán)限或擁有者會改變文件的ctime和atime。 讀文件會改變文件的atime。2022年7月10日16判斷文件類型文件可以包含許多類型的數(shù)據(jù) 在翻

8、開前檢查文件的類型來決定要使用的恰當(dāng)命令或程序 命令 file 選項(xiàng) stat 選項(xiàng) 舉例file /etc/passwd /bin/bash /dev/consolestat /etc/passwd2022年7月10日17cp命令功能:復(fù)制文件或目錄。格式:cp 參數(shù) 說明假設(shè)復(fù)制的目標(biāo)文件已存在,那么被覆蓋??梢詫⒍鄠€(gè)源文件復(fù)制到目標(biāo)目錄中??梢詫⒃茨夸洀?fù)制為指定的目標(biāo)目錄目標(biāo)目錄不存在??梢詫⒃茨夸洀?fù)制到指定的目標(biāo)目錄中。2022年7月10日18cp命令的常用選項(xiàng)參數(shù)說明-a等價(jià)于 dpR-R,-r 遞歸地復(fù)制目錄及目錄內(nèi)的所有項(xiàng)目-p在復(fù)制文件過程中保留文件屬性,包括屬主、組、權(quán)限與時(shí)

9、間戳-d當(dāng)復(fù)制符號鏈接的源文件時(shí),目標(biāo)文件也將創(chuàng)建符號鏈接且指向源文件所鏈接的原始文件-f強(qiáng)制復(fù)制,不管目標(biāo)是否存在-i交互式復(fù)制,覆蓋文件前需要確認(rèn)-u只有當(dāng)源文件的狀態(tài)改變時(shí)間(ctime)比目標(biāo)文件更新時(shí)或目標(biāo)尚不存在時(shí)才進(jìn)行復(fù)制2022年7月10日19cp命令舉例cp file1 file2將當(dāng)前目錄下的file1復(fù)制為file2cp some/dir/file1 someother/dir/將某目錄下的文件復(fù)制到另一個(gè)目錄cp /bin/cpio /bin復(fù)制文件 /bin/cpio 到 /bin 目錄cp abc bcd mydoc將兩個(gè)指定的文件復(fù)制到mydoc目錄下cp som

10、e/dir/f* someother/dir/將某目錄下的以f開頭的文件復(fù)制到另一個(gè)目錄cp /bin/?sh .使用“?”通配符復(fù)制多個(gè)文件到當(dāng)前目錄下cp file1,2,3 someother/dir/將當(dāng)前目錄下的file1、file2、file3復(fù)制到另外一個(gè)目錄cp /etc/httpd/conf/httpd.conf,.orig將/etc/httpd/conf/目錄下的httpd.conf拷貝成httpd.conf.origcp -r some/dir/ someother/dir/將某目錄下的所有文件(包括子目錄)復(fù)制到另一個(gè)目錄2022年7月10日20ln命令功能:創(chuàng)立鏈接文

11、件。格式:ln 參數(shù) 參數(shù):-s : 創(chuàng)立符號鏈接,而非硬鏈接。-f : 強(qiáng)行創(chuàng)立鏈接,不管其是否存在。-i : 覆蓋原有文件之前先詢問用戶。舉例: $ ln somefile hardlinkfile $ ln -s somefile softlinkfile $ ln -s somedir softlinkfile 2022年7月10日21mv和rm命令舉例mvmv file file.bak mv file1 mydata/mv -i file1 mydata/file2mv datadir1 /home/zhang/datarmrm ashrm .*rm -f file1,3,5rm

12、-r myusr/rm -rf myusr/2022年7月10日22find命令功能:在文件系統(tǒng)中查找匹配的文件格式find . 說明:對每個(gè)指定的 遞歸搜索目錄樹省略時(shí)表示當(dāng)前目錄:控制 find 命令的行為:根據(jù)匹配條件查找文件:指定對查找結(jié)果的操作,默認(rèn)為顯示在標(biāo)準(zhǔn)輸出-print不帶任何參數(shù)的 find 命令將在屏幕上遞歸顯示當(dāng)前目錄下的文件列表。2022年7月10日23find 命令選項(xiàng)表達(dá)式選項(xiàng)說明-L 如果遇到符號鏈接文件,就跟蹤鏈接所指的文件-regextype TYPE 指定 -regex 和 -iregex 使用的正則表達(dá)式類型,默認(rèn)為 emacs-depth/-d 查找目

13、錄自身之前先處理目錄中的文件(即深度優(yōu)先) -mount/-xdev 查找文件時(shí)不跨越文件系統(tǒng) -maxdepth LEVELS 設(shè)置最大的查找深度 -help顯示 find 命令幫助信息 -version 顯示 find 的版本2022年7月10日24find命令舉例1遞歸顯示當(dāng)前目錄的文件列表$ find遞歸顯示 / 目錄的文件列表$ find /遞歸顯示 / 目錄的文件列表僅限于3層目錄$ find / -maxdepth 3遞歸顯示 / 目錄的文件列表僅限于 / 文件系統(tǒng)$ find / -xdev遞歸顯示 /home、/www、/srv 目錄的文件列表$ find /home /ww

14、w /srv2022年7月10日25find 命令條件表達(dá)式1文件名條件說明-name PATTERN 匹配文件名-iname PATTERN 匹配文件名(忽略大小寫) -lname PATTERN 匹配符號鏈接文件名 -ilname PATTERN 匹配符號鏈接文件名(忽略大小寫) -wholename PATTERN匹配文件的完整路徑(不把 / 和 . 作為特殊字符)-iwholename PATTERN匹配文件的完整路徑(忽略大小寫) 2022年7月10日26PATTERN 使用 Shell 的匹配模式 可以使用 Shell 的通配符*、? 要用“或括起來find命令舉例2$ find

15、-name myfile$ find -maxdepth 2 -name symfony$ find -name d*$ find -name ?$ find -name ch0-20-9.txt*$ find -iname a-z*$ find -name *.txt $ find . -name A-Z* $ find /etc -name host* 2022年7月10日27find 命令條件表達(dá)式2文件名續(xù)2022年7月10日28條件說明-regex REPATTERN 以正則表達(dá)式匹配文件名-iregex REPATTERN 以正則表達(dá)式匹配文件名(忽略大小寫) REPATTERN

16、使用正那么表達(dá)式匹配模式 使用 -regextype TYPE 指定的正那么表達(dá)式類型 默認(rèn)為 emacs 類型find命令舉例3$ find -regex .*$ find /book -regex .*ch0.*$ find /book -regex .*ch0-9+ $ find /book -iregex .*ch0-9+.txt2022年7月10日29find 命令條件表達(dá)式3時(shí)間屬性條件說明-amin N 查找 N 分鐘以前被訪問過的所有文件-atime N查找 N 天以前被訪問過的所有文件-cmin N查找 N 分鐘以前文件狀態(tài)被修改過的所有文件(比如權(quán)限修改)-ctime N查

17、找 N 天以前文件狀態(tài)被修改過的所有文件 (比如權(quán)限修改)-mmin N 查找 N 分鐘以前文件內(nèi)容被修改過的所有文件-mtime N查找 N 天以前文件內(nèi)容被修改過的所有文件-used N 查找被改動過之后,在N天內(nèi)被存取過的所有文件2022年7月10日30注:以上選項(xiàng)中的 N 可以有三種輸入方式:N,+N,-N 20 表示等于 20 +20 表示大于 20 (21,22,23 等) -20 表示小于 20 (19,18,17 等)find命令舉例4在/home下查找最近2天之內(nèi)改動過的文件$ find /home -mtime -2在/home下查找最近2天之內(nèi)被訪問過的文件$ find

18、/home -atime -2在/home下查找60分鐘之前改動過的文件$ find /home -mmin +60在/home下查找最近5分鐘之內(nèi)修改正的文件$ find /home -mmin -5在/home下查找30分鐘之前被訪問過的文件$ find /home -amin +30在/home下查找最近在2日內(nèi)被改動之后被訪問過的文件$ find /home -used -2 2022年7月10日31find 命令條件表達(dá)式4時(shí)間屬性續(xù)2022年7月10日32條件說明-newer FILE查找所有比 FILE 的內(nèi)容修改時(shí)間新的文件-cnewer FILE查找所有比 FILE 的狀態(tài)修

19、改時(shí)間新的文件(比如權(quán)限修改)-anewer FILE查找所有比 FILE 的訪問時(shí)間新的文件FILE 為要比對的樣板文件或目錄find命令舉例5在/home下查找更新時(shí)間比新的文件或目錄在/home下查找存取時(shí)間比新的文件或目錄2022年7月10日33find 命令條件表達(dá)式5用戶和組條件說明-uid N用戶ID為N的所有文件-gid N組ID為N的所有文件-user USERNAME用戶名為 USERNAME 的所有文件-group GROUPNAME組名為 GROUPNAME 的所有文件-nouser文件屬于不在 /etc/passwd 文件中的用戶-nogroup文件屬于不在 /etc

20、/group 文件中的組2022年7月10日34N 可以使用 N,+N,-Nfind命令舉例6查找在系統(tǒng)中已作廢用戶在/etc/passwd中無記錄的文件$ find / -nouser查找在系統(tǒng)中已作廢組在/etc/group中無記錄的文件$ find / -nogroup查找屬于 osmond 用戶的文件$ find / -user osmond查找屬于 students 組的文件$ find / -group students查找UID為502的所有文件$ find / -uid 502查找UID大于600的所有文件$ find / -uid +600查找GID小于60的所有文件$ fi

21、nd / -gid -602022年7月10日35find 命令條件表達(dá)式6文件權(quán)限條件說明-perm MODE精確匹配權(quán)限模式為 MODE 的文件-perm -MODE匹配權(quán)限模式至少為 MODE 的文件(用戶、組和其他人這三種權(quán)限必須都匹配)-perm /MODE 或-perm +MODE匹配權(quán)限模式至少為 MODE 的文件(用戶、組和其他人這三種權(quán)限中有一種匹配即可)2022年7月10日36MODE 與 chown 命令的書寫方式一致,既可以使用字符模式也可以使用八進(jìn)制的數(shù)值模式,通常使用八進(jìn)制的數(shù)值模式find命令舉例7在/home目錄下查找權(quán)限為700的所有文件或目錄$ find /

22、home -perm 700在/home目錄下查找權(quán)限至少為740的所有文件或目錄$ find /home -perm -740在/bin目錄下查找權(quán)限至少為111的所有文件或目錄或者屬主可執(zhí)行,或者組可執(zhí)行,或者其他人可執(zhí)行$ find /bin -perm /1112022年7月10日37find 命令條件表達(dá)式7類型和大小條件說明-type TYPE 查找類型為 TYPE 的文件,可用的類型:b-塊設(shè)備文件; c-字符設(shè)備文件; d-目錄文件; p-命名管道; f-普通文件; l-符號鏈接; s-socket 文件-links N 查找有N個(gè)鏈接的文件-inum N查找文件inode為N

23、的文件-samefile NAME查找與NAME文件具有相同inode的文件-size NbcwkMG 查找文件大小為N的文件,單位可以為:b-512 字節(jié)的塊(省略單位的默認(rèn)值); c-字節(jié); w-雙字節(jié); k-Kilobytes; M-Megabytes; G-Gigabytes-empty查找空文件(大小為0)2022年7月10日38N 可以使用 : N,+N,-Nfind命令舉例8在當(dāng)前目錄下查找目錄$find . -type d在/home目錄下查找硬連接數(shù)大于2的文件$find /home -links +2在當(dāng)前目錄下查找長度大于10kB的文件$find . -size +10k

24、在/tmp目錄下查找長度等于1GB的文件$find /tmp -size 1G在當(dāng)前目錄下查找長度小于10MB的文件$find . -size -10M在/var/log目錄下查找所有的空文件或目錄 $ find /var/log -empty 2022年7月10日39find 命令組合條件表達(dá)式可以使用邏輯運(yùn)算符與、或、非組成的復(fù)合條件,并可以用()改變默認(rèn)的操作符優(yōu)先級。 假設(shè)以空格作為各個(gè)表達(dá)式的間隔符,那么各個(gè)表示式之間是與關(guān)系。 2022年7月10日40( EXPR ) 改變操作符優(yōu)先次序,一些 UNIX 版的 find 命令要使用 ( EXPR ) 形式 ! EXPR 表示對表達(dá)式

25、取反 EXPR1 EXPR2 與邏輯,若 EXPR1 為假,將不再評估 EXPR2 EXPR1 -a EXPR2 與 EXPR1 EXPR2 功能一致 EXPR1 -o EXPR2 邏輯或,若 EXPR1 為真,將不再評估 EXPR2 EXPR1 , EXPR2 若 EXPR1 為假,繼續(xù)評估 EXPR2find命令舉例9查找 /tmp 目錄下21天之前訪問過的大于 10G 的文件$ find /tmp -size +10M -a -atime +21查找 /home 目錄下屬主為 jjheng 或 osmond 的大于 10M 的文件$ find /home ( -user jjheng -

26、o -user osmond ) -size +10M查找 /tmp 目錄下的屬主不是 osmond 的文件$ find /tmp ! -user osmond在 /mnt 下查找 *.txt 且文件系統(tǒng)類型不為 vfat 的文件$ find /mnt -name *.txt ! -fstype vfat在 /tmp 下查找名為 l 開頭且類型為符號鏈接的文件$ find /tmp -name l* -type l找出 /var/log 目錄下所有的5天前修改正的.log 文件$ find /var/log -name *.log -mtime +5查找所有比 FILE1 的內(nèi)容修改時(shí)間新的且

27、比 FILE2 舊的文件$ find -newer FILE1 ! -newer FILE22022年7月10日41find 命令動作表達(dá)式-print 在標(biāo)準(zhǔn)輸出上列出查找結(jié)果每行一個(gè)文件-ls 使用 ls -dils 在標(biāo)準(zhǔn)輸出上列出查找結(jié)果-prune忽略對某個(gè)目錄的查找-exec COMMAND ; 對符合查找條件的文件執(zhí)行 Linux 命令-ok COMMAND ; 對符合查找條件的文件執(zhí)行 Linux 命令;與 -exec 不同的是,它會詢問用戶是否需要執(zhí)行2022年7月10日42 兩個(gè)大括號之間不能有空格,表示查找到的對象 ; 表示命令結(jié)束,反斜杠與前面的大括號之間必須要留空格f

28、ind命令舉例10查找并列出當(dāng)前目錄下不平安的文件世界可讀寫執(zhí)行$ find . -perm -007 -ls查找 logs 目錄下的所有的 .log 文件并查看它的詳細(xì)信息$ find logs -name *.log -type f -exec ls -l ;查找當(dāng)天修改正的普通文件$ find . -type f -mtime -1 -exec ls -l ;查找當(dāng)前目錄下的.php文件、并用grep過濾出包含include的行$ find . -name *.php -exec grep include ; -print2022年7月10日43find命令舉例10續(xù)查找并刪除當(dāng)前目錄及

29、其子目錄下所有擴(kuò)展名為.tmp 的文件$ find . -name *.tmp -exec rm ;在logs目錄中查找7天之內(nèi)未修改正的文件并在刪除前詢問$ find logs -type f -mtime +7 -exec -ok rm ;從當(dāng)前目錄下查找所有以.repo為后綴的文件,并為其改名添加.bak后綴$ find . -name *.repo -type f -exec mv .bak ;查詢并刪除一周以來從未訪問過的以 .o 結(jié)尾,或名為 a.out 且不存在于 vfat 文件系統(tǒng)中的所有文件$ find / ( -name a.out -o -name *.o ) -atim

30、e +7 ! -fstype vfat -exec rm ;2022年7月10日44find命令舉例10續(xù)2顯示當(dāng)前目錄下除 book 目錄之外的所有文件$ find . -name book -prune -o -print查找當(dāng)前目錄下除了 book 目錄之外的所有 .sh 文件$ find . -name book -prune -o -name *.sh -print顯示當(dāng)前目錄下除了 book/server 目錄之外的所有文件$ find . -path ./book/server -prune -o -print查找當(dāng)前目錄下除了 book/server 目錄之外的所有 .sh 文

31、件$ find . -path ./book/server -prune -o -name *.sh -print顯示當(dāng)前目錄下除 book/server 和 book/server-utf8 目錄的所有文件$ find . -path ./book/server* -prune -o -print查找當(dāng)前目錄下除了 book/server 和 book/server-utf8 目錄的所有 .sh 文件$ find . -path ./book/server* -prune -o -name *.sh -print查找當(dāng)前目錄下除了 book/server 和 book/basic 目錄的所有

32、 .sh 文件$ find . ( -path ./book/server -o -path ./book/basic ) -prune -o -name *.sh -print2022年7月10日45find命令舉例11下面 find 命令的書寫形式均等價(jià)$ find -name *.sh -exec cp /tmp ;$ find -name *.sh -exec cp /tmp ;$ find -name *.sh -exec cp /tmp ;$ find -name *.sh -exec cp /tmp ;$ find -name *.sh -exec cp /tmp ;$ find

33、 -name “*.sh -exec cp “ /tmp ;2022年7月10日46文件打包和壓縮命令2022年7月10日47常用的文件打包和壓縮命令命令 功能compressUNIX早期使用的壓縮程序gzip流行的 GNU gzip 數(shù)據(jù)壓縮/解壓程序bzip2免費(fèi)的,無專利的高性能數(shù)據(jù)壓縮工具zip/unzip與WinZIP兼容的壓縮/解壓工具rar與WinRAR兼容的壓縮/解壓工具7za使用LZMA 算法的高性能壓縮/解壓工具tar文件打包、歸檔工具2022年7月10日48打包和壓縮文件的文件后綴文件后綴說明.bz2用 bzip2 壓縮的文件.gz用 gzip 壓縮的文件.tar用 ta

34、r 打包的文件,也稱 tar 文件.tbz tar 打包時(shí)用 bzip2 壓縮的文件.tgz tar 打包時(shí)用 gzip 壓縮的文件.zip用 zip/winzip 壓縮的文件.rar用 rar 壓縮的文件.7z用 7za 壓縮的文件2022年7月10日49gzipLinux下常用的壓縮和解壓縮命令。由官方倉庫的gzip軟件包提供。壓縮后 gzip 會在每個(gè)文件的后面添加擴(kuò)展名 .gz。壓縮后原文件會被自動刪除。在 windows 下可以用 winzip 或 winrar或7-zip 解壓。2022年7月10日50gizp命令用法:gzip 選項(xiàng) 文件列表選項(xiàng):-d: 解開壓縮文件。-f: 強(qiáng)

35、行壓縮文件,不理會文件名稱或硬鏈接是否存在以及該文件是否為符號鏈接。-l: 列出壓縮文件的相關(guān)信息壓縮文件的大小;未壓縮文件的大??;壓縮比;未壓縮文件的名字。-n: 壓縮文件時(shí),不保存原來的文件名稱及時(shí)間戳默認(rèn)為保存,即-N。-r : 遞歸處理,將指定目錄下的所有文件及子目錄一同處理。-t : 測試壓縮文件是否正確無誤。-v : 顯示指令執(zhí)行過程。- : 壓縮率是一個(gè)介于19的數(shù)值,默認(rèn)值為“6,數(shù)值越大壓縮率越高。-best 參數(shù)等價(jià)于-9;-fast參數(shù)等價(jià)于-1。2022年7月10日51gizp命令舉例壓縮文件filename$ gzip filename壓縮文件 file1和file2

36、并顯示執(zhí)行過程$ gzip -v file1 file2遞歸地高度壓縮mydir目錄下的所有文件逐個(gè)文件進(jìn)行$ gzip -9r mydir顯示當(dāng)前目錄下所有壓縮過的gz文件信息$ gzip -l *.gz解壓文件2022年7月10日52bzip2Linux下常用的壓縮和解壓縮命令。由官方倉庫的bzip2軟件包提供。比gzip的壓縮比更高。壓縮后 bzip2 會在每個(gè)文件的后面添加擴(kuò)展名 .bz2。壓縮后原文件會被自動刪除。在 windows 下可以用 winrar或7-zip 解壓。bzip2命令的格式和參數(shù)與gzip類似。2022年7月10日53bzip2命令舉例壓縮文件filename$

37、 bzip2 filename高度壓縮文件 file1和file2并顯示執(zhí)行過程$ bzip2 -9v file1 file2解壓文件2022年7月10日54zip/unzip與windows下的 winzip兼容由官方倉庫的zip/unzip軟件包提供例如:壓縮文件 file1為 ,原文件保存$ zip file1.zip file1將子目錄 data1/ 下的所有文件壓縮到文件 $ zip r data1.zip data1解壓釋放壓縮文件 data1.zip 中的所有文件2022年7月10日55rar和7zarar由RPMForge倉庫的rar軟件包提供7za由EPEL倉庫的p7zip軟

38、件包提供2022年7月10日56tar根本功能:打包和解包格式: tar 選項(xiàng) 文件或者目錄 常用選項(xiàng)-c:創(chuàng)立新的打包文件。-t:列出打包文件的內(nèi)容,查看已經(jīng)打包了哪些文件。 -x:從打包文件中釋放文件。 -f:指定打包文件名。 -v:詳細(xì)列出 tar 處理的文件信息。 -z:用 gzip 來壓縮/解壓縮打包文件。-j:用 bzip2 來壓縮/解壓縮打包文件。 2022年7月10日57tar命令舉例$ tar -cvf myball.tar somedirname$ tar -zcvf myball.tar.gz somedirname$ tar -zxvf myball.tar.gz $

39、tar -jcvf myball.tar.bz2 somedirname2022年7月10日58注意: “-f 文件名|設(shè)備名是一個(gè)整體, 所以 -cvf myball.tar 不能寫成:-cfv myball.tar 或 -fcv myball.tar 在BASH中提高工作效率2022年7月10日59命令補(bǔ)全通常用戶在 bash 下輸入命令時(shí)不必把命令輸全, shell 就能判斷出你所要輸入的命令。該功能的核心思想是:bash 根據(jù)用戶已輸入的信息來查找以這些信息開頭的命令,從而試圖完成當(dāng)前命令的輸入工作。用來執(zhí)行這項(xiàng)功能的鍵是 Tab 鍵,按下一次 Tab 鍵后,bash 就試圖完成整個(gè)命

40、令的輸入,如果不成功,可以再按一次 Tab 鍵,這時(shí) bash 將列出所有能夠與當(dāng)前輸入字符相匹配的命令列表。2022年7月10日60命令補(bǔ)全舉例執(zhí)行system-config-network-tuisystem-config-network-tui進(jìn)入/etc/sysconfig/network-scripts/目錄cd /esyscne-顯示$BASH變量的值echo $BASH2022年7月10日61命令歷史bash可以記錄一定數(shù)目的以前在Shell中輸入的命令。記錄歷史命令的文本文件由環(huán)境變量 HISTFILE 來指定,默認(rèn)的記錄文件是.bash_history,這是一個(gè)隱含文件,位于

41、用戶自己的目錄中。可以記錄歷史命令的數(shù)目由環(huán)境變量 HISTSIZE 的值指定,默認(rèn)為1000。查看命令歷史historyhistory 30 # 查看最近 30 個(gè)歷史命令fc l 30 50 # 列出命令歷史中第30到第50之間的命令2022年7月10日62命令歷史續(xù)鍵盤快捷鍵最簡單的方法是用上下方向鍵、和鍵來查看歷史命令如果需要的話,可以使用鍵盤上的編輯功能鍵對顯示在命令行上的命令進(jìn)行編輯感慨號的用法用 ! 執(zhí)行最近執(zhí)行過的命令用 ! 執(zhí)行已經(jīng)運(yùn)行過的命令用 ! 執(zhí)行已經(jīng)運(yùn)行過的以該字符串開頭的最近的命令2022年7月10日63命令別名允許用戶按照自己喜歡的方式對命令進(jìn)行自定義格式 al

42、ias alias_name=original_command 說明alias_name是用戶給命令取的別名。original_command是原來的命令和參數(shù)。假設(shè)命令中包含空格或其他的特殊字符串必須使用引號。在定義別名時(shí),等號兩邊不允許有空格。不帶任何參數(shù)的alias命令顯示當(dāng)前已定義的所有別名。可以使用 unalias alias_name 命令取消某個(gè)別名的定義。如果用戶需要別名的定義在每次登錄時(shí)均有效,應(yīng)該將其寫入用戶自家目錄下的.bashrc文件中。2022年7月10日64命令別名續(xù)定義別名舉例alias lh=ls -lhalias grep=grep -color=autoal

43、ias gitcam=git commit -a -m 注意假設(shè)系統(tǒng)中有一個(gè)命令,同時(shí)又定義了一個(gè)與之同名的別名例如,系統(tǒng)中有g(shù)rep命令,且又定義了grep的別名,那么別名將優(yōu)先于系統(tǒng)中原有的命令的執(zhí)行。要想臨時(shí)使用系統(tǒng)中的命令而非別名,應(yīng)該在命令前添加“字符,例如,$ grep命令將運(yùn)行系統(tǒng)中原來的grep命令而不是grep別名,它不在輸出中顯示顏色。2022年7月10日65正那么表達(dá)式2022年7月10日66正那么表達(dá)式正那么表達(dá)式是使用某種模式pattern去匹配matching一類字符串的一個(gè)公式。通常使用正那么表達(dá)式進(jìn)行查找、替換等操作。在適當(dāng)?shù)那闆r下使用正那么表達(dá)式可以極大地提高

44、工作效率。有兩種風(fēng)格的正那么表達(dá)式: POSIX 風(fēng)格的正那么表達(dá)式Perl 風(fēng)格的正那么表達(dá)式Perl-compatible regular expression2022年7月10日67支持 RE 的文本處理工具 根本的正那么表達(dá)式 Basic regular expression (BRE)grep 按模式匹配文本ed 一個(gè)原始的行編輯器sed 一個(gè)流編輯器vim 一個(gè)屏幕編輯器emacs 一個(gè)屏幕編輯器擴(kuò)展的正那么表達(dá)式 Extended regular expression (ERE) egrep 按模式匹配文本awk 進(jìn)行簡單的文本處理 2022年7月10日68正那么表達(dá)式的組成正那

45、么表達(dá)式由一些普通字符和一些元字符metacharacters組成。普通字符包括大小寫的字母、數(shù)字即所有非元字符元字符那么具有特殊的含義 2022年7月10日69正那么表達(dá)式的元字符2022年7月10日70元字符 含義 類型 舉例 說明 匹配首字符 BRE x 以字符x開始的字符串 $ 匹配尾字符 BRE x$ 以x字符結(jié)尾的字符串 . 匹配任意一個(gè)字符 BRE l.e love, life, live ? 匹配任意一個(gè)可選字符 ERE xy? x, xy * 匹配零次或多次重復(fù) BRE xy* x, xy, xyy, xyyy + 匹配一次或多次重復(fù) ERE xy+ xy, xyy, xyy

46、y 匹配任意一個(gè)字符 BRE xyz x, y, z () 對正則表達(dá)式分組 ERE (xy)+ xy, xyxy, xyxyxy, 正那么表達(dá)式的元字符續(xù)2022年7月10日71元字符 含義 類型 舉例 說明 n 匹配n次 BRE go2gle google n, 匹配最少n次 BRE go2,gle google, gooogle, goooogle n,m 匹配n到m次 BRE go2,4gle google, gooogle, goooogle n 匹配n次 ERE go2gle google n, 匹配最少n次 ERE go2,gle google, gooogle, goooogl

47、e n,m 匹配n到m次 ERE go2,4gle google, gooogle, goooogle | 以或邏輯連接多個(gè)匹配 ERE good|bon 匹配 good 或 bon 轉(zhuǎn)義字符 BRE * * 正那么表達(dá)式的元字符續(xù)2POSIX RE 用于方括號之內(nèi)的元字符2022年7月10日72元字符 含義 類型 舉例 說明 非(僅用于啟始字符) BRE xyz 匹配xyz之外的任意一個(gè)字符 - 用于指明字符范圍(不能是首字符和尾字符) BRE a-zA-Z 匹配任意一個(gè)字母 轉(zhuǎn)義字符 BRE . .正那么表達(dá)式舉例 12022年7月10日73.x.x.xdthesh$.$.2*.past.

48、*.sh$t*.sh$.a.*中都是單個(gè)字符匹配01234567890-9a-zA-Z0-9-0-9abc1Ggreena-za-z*.0-90-9正那么表達(dá)式舉例 2gr(a|e)y (To:|From:) (Seaman|Ramsay )0-92-0-92-0-94(yellow|red) flower(s)?/etc/rc.d/init.d/ d/usr/sbin/ d(.worker)?/var/www(/.*)?/logs(/.*)? /var/log/apache(2)?(/.*)? /var/www/*/cgi-bin(/.*)?/srv/(/*/)?www(/.*)? /usr

49、/lib(64)?/ d(/.*)?2022年7月10日74文本文件操作命令2022年7月10日75常用的文本文件提取命令2022年7月10日76命令 功能cat、tac滾屏顯示文本文件內(nèi)容more、less分屏顯示文本文件內(nèi)容head、tail顯示文本文件的前或后若干行(橫向截取文本文件內(nèi)容)cut縱向切割出文本指定的部分(縱向截取文本文件內(nèi)容)grep在文本文件中查找指定的字符串(按關(guān)鍵字提取文本文件中匹配的行)文本顯示命令舉例命令舉例cat /etc/passwd滾屏顯示文件/etc/passwd的內(nèi)容cat -n /etc/passwd滾屏顯示文件/etc/passwd的內(nèi)容,并顯示行

50、號more /etc/passwd分屏顯示文件/etc/passwd的內(nèi)容(注意空格鍵、回車鍵和q的使用)more +10 /etc/passwd從第10行分屏顯示文件/etc/passwd的內(nèi)容less /etc/passwd分屏顯示文件/etc/passwd的內(nèi)容(注意空格鍵、回車鍵、PgDn鍵、PgUp鍵和q的使用)head -4 myalllist顯示文件myalllist前4行的內(nèi)容tail -4 myalllist顯示文件myalllist后4行的內(nèi)容tail +10 myalllist顯示文件myalllist從10行開始到文件尾的內(nèi)容tail -f /var/log/messa

51、ges跟蹤顯示不斷增長的文件結(jié)尾內(nèi)容(通常用于顯示日志文件)2022年7月10日77grep 簡介grepglobal search regular expression是一個(gè)強(qiáng)大的文本搜索工具。grep 使用正那么表達(dá)式搜索文本,并把匹配的行打印出來。UNIX 的 grep 家族包括 grep、egrep 和 fgrep: grep 使用 Basic regular expression (BRE) 書寫匹配模式,等效于 grep -Gegrep 使用 Extended regular expression (ERE) 書寫匹配模式,等效于 grep -Efgrep 不使用任何正那么表達(dá)式書

52、寫匹配模式以固定字符串對待,執(zhí)行快速搜索,等效于 grep -F2022年7月10日78grep 命令格式grep options PATTERN FILE.說明PATTERN 是查找條件可以是普通字符串可以是正那么表達(dá)式,通常用單引號將RE括起來。FILE 是要查找的文件,可以是用空格間隔的多個(gè)文件,也可是使用Shell的通配符在多個(gè)文件中查找PATTERN,省略時(shí)表示在標(biāo)準(zhǔn)輸入中查找。grep命令不會對輸入文件進(jìn)行任何修改或影響,可以使用輸出重定向?qū)⒔Y(jié)果存為文件。2022年7月10日79grep命令選項(xiàng)選項(xiàng)說明-c只顯示匹配行的次數(shù)-i搜索時(shí)不區(qū)分大小寫-n輸出匹配行的行號-v輸出不匹配的

53、行(反向選擇)-r對目錄(子目錄)的所有文件遞歸地進(jìn)行-l列出匹配PATTERN的文件名-color=auto 對匹配內(nèi)容高亮顯示-A NUM同時(shí)輸出匹配行的后 NUM 行-B NUM同時(shí)輸出匹配行的前 NUM 行-C NUM同時(shí)輸出匹配行的前、后各 NUM 行2022年7月10日80grep命令舉例在文件 myfile 中查找包含字符串 mystr的行$ grep mystr myfile顯示 myfile 中第一個(gè)字符為字母的所有行$ grep a-zA-Z myfile在文件 myfile 中查找首字符不是 # 的行即過濾掉注釋行$ grep -v # myfile過濾掉的注釋行和空行2

54、022年7月10日81grep命令舉例續(xù)列出/etc目錄包括子目錄下所有文件內(nèi)容中包含字符串“root的文件名# grep -lr root /etc/*在文件 myfile 中查找包含字符 $在RE中具有特殊含義 的行$ grep $ myfile$ grep $ myfile$ fgrep $ myfile$ fgrep $ myfile2022年7月10日82常用的文本文件分析命令2022年7月10日83命令 功能wc統(tǒng)計(jì)文本sort以行為單位對文本文件排序uniq刪除文本文件中連續(xù)的重復(fù)的行diff比較兩個(gè)文本文件的差異diff3比較三個(gè)文本文件的差異patch為文本文件打補(bǔ)丁aspe

55、ll為文本文件做拼寫檢查(西文)wc命令功能:統(tǒng)計(jì)文本文件的行數(shù)、字?jǐn)?shù)、字符數(shù)格式:wc 選項(xiàng) 舉例$ wc file$ wc -l file # 統(tǒng)計(jì)行數(shù)$ wc -w file # 統(tǒng)計(jì)字?jǐn)?shù)$ wc -c file # 統(tǒng)計(jì)字符數(shù)$ wc -L file # 統(tǒng)計(jì)最長一行的長度2022年7月10日84sort命令功能:以行為單位對文件進(jìn)行排序格式:sort 選項(xiàng) 選項(xiàng)2022年7月10日85-r逆向排序-f 忽略字母的大小寫-n根據(jù)字符串的數(shù)值進(jìn)行排序-u對相同的行只輸出一行-t c選項(xiàng)使用c做為列的間隔符-b忽略前導(dǎo)的空格-i只考慮可打印字符-k N以第N列進(jìn)行排序(默認(rèn)以空格或制表符作

56、為列的間隔符)sort命令舉例$ sort file$ sort -n file$ sort -fr file$ sort -u file$ sort file1 file2$ sort -br file1 file2 $ sort -n -k 3 -t : /etc/passwd2022年7月10日86常用的文本文件處理命令2022年7月10日87命令 功能tr字符替換sed流編輯器,常用于字符串替換paste縱向合并多個(gè)文本expand將文件中的制表符轉(zhuǎn)換為空格unexpand將文件中的空格轉(zhuǎn)換為制表符dos2unix將DOS格式的文本轉(zhuǎn)換成UNIX格式unix2dos將UNIX格式的文本

57、轉(zhuǎn)換成DOS格式iconv將文本從一種編碼轉(zhuǎn)換成另一種編碼sed 簡介sed 是一個(gè)流編輯器stream editor。sed 是一個(gè)非交互式的行編輯器,它在命令行中輸入編輯命令、指定被處理的輸入文件,然后在屏幕上查看輸出。輸入文件可以是指定的文件名,也可以來自一個(gè)管道的 輸出。與 vi 不同的是 sed 能夠過濾來自管道的輸入。在 sed 編輯器運(yùn)行的時(shí)候不必人工干預(yù),所以 sed 常常被稱作批編輯器 。 sed 默認(rèn)不改變輸入文件的內(nèi)容,且總是將處理結(jié)果輸出到標(biāo)準(zhǔn)輸出,可以使用輸出重定向?qū)?sed 的輸出保存到文件中。 2022年7月10日88sed 的工作方式sed 以按順序逐行的方式工

58、作,過程為: 從輸入讀取一行數(shù)據(jù)存入臨時(shí)緩沖區(qū),此緩沖區(qū)稱為模式空間pattern space按指定的 sed 編輯命令處理緩沖區(qū)中的內(nèi)容把模式空間的內(nèi)容送往屏幕并將這行內(nèi)容從模式空間中刪除讀取下面一行。重復(fù)上面的過程直到全部處理結(jié)束。2022年7月10日89sed命令格式sed 選項(xiàng) -e cmd1 -e cmd2 . -e cmdn input-file.說明在命令行上執(zhí)行sed編輯命令。可以指定多個(gè)編輯命令,每個(gè)編輯命令前都要使用 -e 參數(shù),sed 將對這些編輯命令依次進(jìn)行處理。假設(shè)只有一個(gè)編輯命令時(shí),-e 可以省略。每個(gè)sed的編輯命令cmdX均應(yīng)使用單引號括起來。input-fil

59、e:sed 處理的文件列表,假設(shè)省略,sed 將從標(biāo)準(zhǔn)輸入中讀取輸入,也可以從輸入重定向或管道獲得輸入。選項(xiàng)-r:使用擴(kuò)展正那么表達(dá)式進(jìn)行模式匹配-i:直接對輸入文件進(jìn)行sed的命令操作2022年7月10日90sed命令舉例sed -i s/Windows/Linux/g myfile將myfile中的所有Windows替換成Linuxsed s/Windows/Linux/g myfile功能同上,但不對輸入文件本身進(jìn)行替換,僅在屏幕輸出結(jié)果sed s/cc*/c/g myfile將myfile中所有連續(xù)出現(xiàn)的c都壓縮成單個(gè)的c,僅在屏幕輸出結(jié)果sed s/ t*/ myfile刪除myfi

60、le中每一行前導(dǎo)的連續(xù)“空白字符”(空格,制表符),僅在屏幕輸出sed s/ *$/ myfile刪除myfile中每行結(jié)尾的所有空格,僅在屏幕輸出sed s/$/ myfile刪除所有空白行,僅在屏幕輸出sed s/ / myfile在每一行開頭加上一個(gè)尖括號和空格(引用信息),僅在屏幕輸出sed s/.*/ myfile刪除路徑前綴,僅在屏幕輸出2022年7月10日91iconv命令功能:將文件從一種編碼轉(zhuǎn)換成另一種編碼格式:iconv 選項(xiàng) 選項(xiàng)-f : 指定原始文本編碼。-t : 指定要轉(zhuǎn)換的編碼。-o : 指定輸出文件,而不是在標(biāo)準(zhǔn)輸出上顯示。-l : 列出所有編碼字符集。2022年

溫馨提示

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

評論

0/150

提交評論