linux(第八講)_第1頁
linux(第八講)_第2頁
linux(第八講)_第3頁
linux(第八講)_第4頁
linux(第八講)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第八講第八講 shell功能指令功能指令 知識(shí)點(diǎn)知識(shí)點(diǎn) bash中的變量設(shè)定中的變量設(shè)定 指令記憶指令記憶 指令別名指令別名 輸入輸出重定向輸入輸出重定向 管線指令管線指令 配置文件配置文件變量變量 存儲(chǔ)數(shù)據(jù)以備未來所用的場所存儲(chǔ)數(shù)據(jù)以備未來所用的場所 以文字或字符表示的參數(shù)或設(shè)置以文字或字符表示的參數(shù)或設(shè)置 便于參數(shù)修改與維護(hù),減少編譯的需求便于參數(shù)修改與維護(hù),減少編譯的需求變量設(shè)定規(guī)則變量設(shè)定規(guī)則 格式:變量名變量內(nèi)容格式:變量名變量內(nèi)容 等號(hào)兩邊不能加空格(這點(diǎn)與具體的等號(hào)兩邊不能加空格(這點(diǎn)與具體的shell版本有關(guān))版本有關(guān)) 變量名只能是字母或數(shù)字,且首字符不變量名只能是字母或數(shù)字

2、,且首字符不能是數(shù)字能是數(shù)字 特殊字符可用轉(zhuǎn)義符號(hào)特殊字符可用轉(zhuǎn)義符號(hào)“”變?yōu)橐话阕肿優(yōu)橐话阕址兞吭O(shè)定規(guī)則變量設(shè)定規(guī)則 當(dāng)需要顯示的內(nèi)容包含空格等特殊符號(hào)時(shí),使當(dāng)需要顯示的內(nèi)容包含空格等特殊符號(hào)時(shí),使用雙引號(hào)或單引號(hào)將其組合在一起用雙引號(hào)或單引號(hào)將其組合在一起 雙引號(hào)有變量代換功能:當(dāng)雙引號(hào)中的字符串出現(xiàn)了雙引號(hào)有變量代換功能:當(dāng)雙引號(hào)中的字符串出現(xiàn)了變量名時(shí),系統(tǒng)自動(dòng)將變量值作為字符串的一部分看變量名時(shí),系統(tǒng)自動(dòng)將變量值作為字符串的一部分看待待 單引號(hào)不具有變量置換功能單引號(hào)不具有變量置換功能 eg: # name=swh # echo $name is my name # echo “

3、$name is my name” 變量設(shè)定規(guī)則變量設(shè)定規(guī)則 使用引用符號(hào)使用引用符號(hào)“ ”實(shí)現(xiàn)指令的嵌套實(shí)現(xiàn)指令的嵌套 優(yōu)先處理該符號(hào)內(nèi)的指令,反饋結(jié)果被視優(yōu)先處理該符號(hào)內(nèi)的指令,反饋結(jié)果被視為外層指令的一部分為外層指令的一部分 eg: # ls al echo $workdir/testdir 該指令相當(dāng)于該指令相當(dāng)于ls -al /home/swh/testdir eg: # cd /lib/modules/uname r/kernel 將將uname r作為內(nèi)嵌指令可以將本系統(tǒng)的作為內(nèi)嵌指令可以將本系統(tǒng)的版本名提取出來作為外層指令的一部分,既保版本名提取出來作為外層指令的一部分,既保證

4、了通用性又節(jié)省了時(shí)間證了通用性又節(jié)省了時(shí)間變量設(shè)定規(guī)則變量設(shè)定規(guī)則 累加變量內(nèi)容時(shí),使用累加變量內(nèi)容時(shí),使用“$變量名稱變量名稱”指指代變量原值代變量原值 eg: MAIL=$MAIL:/home/swh/mailbox 命名規(guī)范:大寫變量名通常為系統(tǒng)預(yù)設(shè),命名規(guī)范:大寫變量名通常為系統(tǒng)預(yù)設(shè),用戶自定義變量通常用小寫用戶自定義變量通常用小寫 取消變量:取消變量:unset paraname查看變量值查看變量值 echo $varname 查看指定變量查看指定變量varname的值的值 eg:echo $PATH echo $MAIL 若若echo指令后不加指令后不加$則直接顯示其后所接則直接顯

5、示其后所接的字符串的字符串查看變量值查看變量值 env 該指令用來查看系統(tǒng)默認(rèn)環(huán)境變量的值,其中該指令用來查看系統(tǒng)默認(rèn)環(huán)境變量的值,其中比較重要的有:比較重要的有: BASH_ENV=/root/.bashrc 用戶自定義的環(huán)境變量的配置文件用戶自定義的環(huán)境變量的配置文件 HISTSIZE=1000 .bash_history中記錄的指令條數(shù)中記錄的指令條數(shù) HOSTNAME=localhost.localdomain 主機(jī)名主機(jī)名查看變量值查看變量值 LANG=zh_CN.GB18030 語言類型語言類型 LOGNAME=swh 當(dāng)前登錄用戶的賬號(hào)當(dāng)前登錄用戶的賬號(hào) MAIL=/var/sp

6、ool/mail/root 郵件的存取地址郵件的存取地址 PATH= 系統(tǒng)可執(zhí)行文件的默認(rèn)查找路徑系統(tǒng)可執(zhí)行文件的默認(rèn)查找路徑查看變量值查看變量值 set 查看當(dāng)前用戶的所有變量,包括環(huán)境變量和用查看當(dāng)前用戶的所有變量,包括環(huán)境變量和用戶自定義變量戶自定義變量 eg: # set # workdir=/home/swh/ # set 可以看到新定義的這個(gè)可以看到新定義的這個(gè)workdir變量變量已經(jīng)記錄在系統(tǒng)中了已經(jīng)記錄在系統(tǒng)中了取消變量指令取消變量指令 unset para 直接取消直接取消para變量的設(shè)定內(nèi)容變量的設(shè)定內(nèi)容變量設(shè)定例題變量設(shè)定例題eg1:按照要求寫出指令以及操作結(jié)果:按照

7、要求寫出指令以及操作結(jié)果將變量將變量test1賦值為賦值為swhs test1test1=“swhs test1” 操作成功,注意等號(hào)前后沒有空操作成功,注意等號(hào)前后沒有空格格查看操作是否成功查看操作是否成功echo $test1將變量將變量2test賦值為賦值為swhs test22testswhs test2 錯(cuò)誤,因?yàn)椴荒苡脭?shù)字作為變量錯(cuò)誤,因?yàn)椴荒苡脭?shù)字作為變量名的開端名的開端查看變量查看變量test1的值的值echo $test1或者或者echo “$test1”或者或者echo $test1變量設(shè)定例題變量設(shè)定例題eg2:請說出下述指令的作用及操作結(jié)果請說出下述指令的作用及操作結(jié)果

8、name1=moon river 錯(cuò)誤,空格是特殊字符,需要進(jìn)行組合或者轉(zhuǎn)義錯(cuò)誤,空格是特殊字符,需要進(jìn)行組合或者轉(zhuǎn)義echo $name1 顯示顯示name1的變量值的變量值name2=“moon river”echo $name2name3=moon river變量設(shè)定例題變量設(shè)定例題echo $name2johnny 沒有結(jié)果可以顯示,因?yàn)榇俗兞坎淮嬖跊]有結(jié)果可以顯示,因?yàn)榇俗兞坎淮嬖趀cho “$name2”johnny顯示顯示moon riverjohnny,進(jìn)行了變量代換,進(jìn)行了變量代換name4=$name2johnny賦值不成功(使用賦值不成功(使用echo指令可以查看是否成功

9、賦指令可以查看是否成功賦值),因?yàn)橹担?,因?yàn)?是特殊字符是特殊字符變量設(shè)定例題變量設(shè)定例題name5=”$name1”johnny賦值成功,所賦的值為賦值成功,所賦的值為moon riverjohnnyname6=$name1johnny和上面的指令結(jié)果一樣和上面的指令結(jié)果一樣name2“$name2”“ mercer”為為name2追加追加“ mercer”指令別名指令別名 格式:格式:alias usrcmd=command 該指令將該指令將command指令置換為指令置換為usrcmd,當(dāng),當(dāng)用戶使用用戶使用usrcmd時(shí),其功效等同于時(shí),其功效等同于command 簡化指令,使其更符合

10、自己的操作習(xí)慣簡化指令,使其更符合自己的操作習(xí)慣 查看別名使用查看別名使用alias 取消別名:取消別名:unalias usrcmd指令別名指令別名 與變量的區(qū)別:與變量的區(qū)別: 指令別名是設(shè)置指令的簡稱,可以指令別名是設(shè)置指令的簡稱,可以視為普通的指令使用,查看時(shí)使用視為普通的指令使用,查看時(shí)使用alias指令指令 變量是指代具體數(shù)值或字符,它將變量是指代具體數(shù)值或字符,它將在指令或文件中被使用,本身不能實(shí)現(xiàn)在指令或文件中被使用,本身不能實(shí)現(xiàn)指令功能,使用指令功能,使用env、set等查看等查看歷史指令歷史指令 history 可以查看的歷史指令包括本次登錄以來可以查看的歷史指令包括本次登

11、錄以來的指令以及以往登錄時(shí)使用過的指令的指令以及以往登錄時(shí)使用過的指令 eg:history 顯示歷史指令顯示歷史指令 ! 執(zhí)行上個(gè)指令執(zhí)行上個(gè)指令 !22 執(zhí)行文件執(zhí)行文件/.bash_history中記載的第中記載的第22號(hào)指令號(hào)指令 !vi 執(zhí)行上一個(gè)以執(zhí)行上一個(gè)以vi開頭的指令開頭的指令輸入輸出重定向輸入輸出重定向 將數(shù)據(jù)導(dǎo)入或?qū)С龅街付ǖ攸c(diǎn)將數(shù)據(jù)導(dǎo)入或?qū)С龅街付ǖ攸c(diǎn) 三種輸入輸出狀態(tài)三種輸入輸出狀態(tài) 標(biāo)準(zhǔn)輸入:標(biāo)準(zhǔn)輸入:,stdout,代碼,代碼1 錯(cuò)誤輸出:錯(cuò)誤輸出:2,stderr,代碼,代碼2輸入輸出重定向輸入輸出重定向 指令格式指令格式 command dev/file co

12、mmand 2 dev/file command dev/file command dev/file輸入輸出重定向輸入輸出重定向 標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸入 :指令的輸入數(shù)據(jù)不是從鍵盤輸入的,而是:指令的輸入數(shù)據(jù)不是從鍵盤輸入的,而是從指定的文件中來的從指定的文件中來的 輸入輸出重定向輸入輸出重定向eg1:在:在linux中手動(dòng)發(fā)送郵件的步驟為:中手動(dòng)發(fā)送郵件的步驟為: mail -s lucky swh 輸入郵件內(nèi)容輸入郵件內(nèi)容 . 這個(gè)這個(gè).說明結(jié)束了郵件的輸入說明結(jié)束了郵件的輸入 出現(xiàn)出現(xiàn)Cc.后回車,即選擇不使用密件發(fā)送后回車,即選擇不使用密件發(fā)送eg2:若使用輸入輸出重定向,只要輸入指令:若使

13、用輸入輸出重定向,只要輸入指令 mail -s lucky swh:將輸出結(jié)果轉(zhuǎn)到某個(gè)指定的文件中去,當(dāng):將輸出結(jié)果轉(zhuǎn)到某個(gè)指定的文件中去,當(dāng)該文件不存在時(shí)就創(chuàng)建一個(gè)新的,當(dāng)該文件存該文件不存在時(shí)就創(chuàng)建一個(gè)新的,當(dāng)該文件存在時(shí)就覆蓋其舊有內(nèi)容,因此在使用時(shí)一定要在時(shí)就覆蓋其舊有內(nèi)容,因此在使用時(shí)一定要先確定該文件中的數(shù)據(jù)是否有用先確定該文件中的數(shù)據(jù)是否有用 :將新的數(shù)據(jù)累加在現(xiàn)有數(shù)據(jù)的后面:將新的數(shù)據(jù)累加在現(xiàn)有數(shù)據(jù)的后面 eg:ls -altestfile 將將ls指令的顯示結(jié)果發(fā)送到指令的顯示結(jié)果發(fā)送到testfile文件中去文件中去 whotestfile 將將who指令的結(jié)果累加到指令的

14、結(jié)果累加到testfile輸入輸出重定向輸入輸出重定向 標(biāo)準(zhǔn)錯(cuò)誤輸出標(biāo)準(zhǔn)錯(cuò)誤輸出 在操作的過程中經(jīng)常會(huì)遇到錯(cuò)誤提示信在操作的過程中經(jīng)常會(huì)遇到錯(cuò)誤提示信息,為了便于未來分析,通常會(huì)將它們息,為了便于未來分析,通常會(huì)將它們保存起來,其操作符號(hào)為保存起來,其操作符號(hào)為2和和2 eg:cd/home/swh 2errorfile 將錯(cuò)誤輸出發(fā)送到將錯(cuò)誤輸出發(fā)送到errorfile中去中去 vi errorfile 查看查看errorfile的內(nèi)容的內(nèi)容輸入輸出重定向輸入輸出重定向 典型用法典型用法將標(biāo)準(zhǔn)錯(cuò)誤輸出與標(biāo)準(zhǔn)輸出分別放在不同文件中將標(biāo)準(zhǔn)錯(cuò)誤輸出與標(biāo)準(zhǔn)輸出分別放在不同文件中command std

15、infile 2errorfile eg: echo $PATH $MALI 1stdinfile 2errorfile 正確信息輸入正確信息輸入stdinfile,錯(cuò)誤信息輸入文件,錯(cuò)誤信息輸入文件errorfile輸入輸出重定向輸入輸出重定向 典型用法典型用法 將標(biāo)準(zhǔn)錯(cuò)誤輸出與標(biāo)準(zhǔn)輸出同時(shí)放在一將標(biāo)準(zhǔn)錯(cuò)誤輸出與標(biāo)準(zhǔn)輸出同時(shí)放在一個(gè)文件中個(gè)文件中 command 1stdinfile 2&1 eg: find passwd_cp shadao 1stdinfile 2&1 正確信息與錯(cuò)誤信息都輸入文件正確信息與錯(cuò)誤信息都輸入文件stdinfile中中注:注:觀察使用指令觀察使

16、用指令find passwd_cp shadao 1stdinfile 2stdinfile會(huì)有什么后果會(huì)有什么后果輸入輸出重定向輸入輸出重定向 典型用法典型用法 丟棄不需要的輸出信息,通常這些信息都是錯(cuò)丟棄不需要的輸出信息,通常這些信息都是錯(cuò)誤信息或者已知的某些提示誤信息或者已知的某些提示 command 1stdinfile 2/dev/null eg: ls passwd shadao stdinfile 2/dev/null 正確信息輸入文件正確信息輸入文件stdinfile中,錯(cuò)誤信息丟棄中,錯(cuò)誤信息丟棄輸入輸出重定向輸入輸出重定向 適用范圍適用范圍 需要保存重要的屏幕輸出信息時(shí)需要

17、保存重要的屏幕輸出信息時(shí) 希望保存后臺(tái)執(zhí)行的程序的輸出結(jié)果時(shí)希望保存后臺(tái)執(zhí)行的程序的輸出結(jié)果時(shí) 系統(tǒng)開機(jī)啟動(dòng)等例行性指令需要保存時(shí)系統(tǒng)開機(jī)啟動(dòng)等例行性指令需要保存時(shí) 需要丟棄無用的信息時(shí)需要丟棄無用的信息時(shí)管線指令管線指令 當(dāng)前一個(gè)指令的輸出為當(dāng)前一個(gè)指令的輸出為stdout(正確輸出)時(shí)(正確輸出)時(shí)才可以進(jìn)行下一個(gè)指令,此時(shí)第二個(gè)指令的輸才可以進(jìn)行下一個(gè)指令,此時(shí)第二個(gè)指令的輸入為前者的輸出入為前者的輸出 eg:last 該指令將曾經(jīng)登錄過系統(tǒng)的用戶賬號(hào)記錄該指令將曾經(jīng)登錄過系統(tǒng)的用戶賬號(hào)記錄下來,同時(shí)還記錄了登錄時(shí)間、登錄終端號(hào)等下來,同時(shí)還記錄了登錄時(shí)間、登錄終端號(hào)等信息信息 last

18、 | grep root last | grep root | wc -l管線指令管線指令 cut:分離參數(shù):分離參數(shù) sort:將結(jié)果進(jìn)行排序,便于比較:將結(jié)果進(jìn)行排序,便于比較 wc:計(jì)算結(jié)果中的行數(shù)、字?jǐn)?shù)、字符數(shù):計(jì)算結(jié)果中的行數(shù)、字?jǐn)?shù)、字符數(shù) tee:同時(shí)將結(jié)果發(fā)送到屏幕和指定文件:同時(shí)將結(jié)果發(fā)送到屏幕和指定文件中中 上述指令均為常出現(xiàn)在管線指令行中的上述指令均為常出現(xiàn)在管線指令行中的特殊指令,它們也可以單獨(dú)使用特殊指令,它們也可以單獨(dú)使用管線指令管線指令 cut -d separator -cf fields filename -d:代表后接分隔符代表后接分隔符 -c: 代表后接的是

19、第幾個(gè)字符代表后接的是第幾個(gè)字符 -f:表示后接第幾個(gè)區(qū)塊表示后接第幾個(gè)區(qū)塊 對某一行中的數(shù)據(jù)進(jìn)行分離以便對其操作對某一行中的數(shù)據(jù)進(jìn)行分離以便對其操作管線指令管線指令 eg:cat /etc/shadow | cut d : f 1 查找文件查找文件/etc/shadow的每行第一個(gè)區(qū)塊的每行第一個(gè)區(qū)塊 cat /etc/shadow | cut c 10-15 將將shadow文件中每行的文件中每行的10-15號(hào)字符提取號(hào)字符提取出來出來 last | cut d “ “ f 1 僅查找所有的用戶賬號(hào)僅查找所有的用戶賬號(hào)管線指令管線指令 sort -t separator (+start)

20、(-end) -nru filename -t separator:用來分隔不同的區(qū)塊用來分隔不同的區(qū)塊 +start end:從從start區(qū)塊開始排序,到區(qū)塊開始排序,到end結(jié)束,結(jié)束,注意這里的編號(hào)是從注意這里的編號(hào)是從0開始的開始的 -n:按數(shù)字排序按數(shù)字排序 -r:反向排序反向排序 -u:只列出首次出現(xiàn)的行只列出首次出現(xiàn)的行管線指令管線指令 eg1:查看文件:查看文件/etc/passwd,并按照第一,并按照第一個(gè)區(qū)塊的首字母排序個(gè)區(qū)塊的首字母排序 cat /etc/passwd | sort eg2:查看文件:查看文件/etc/passwd,并按照用戶,并按照用戶ID(第三列第三

21、列)反向排序反向排序 cat /etc/passwd | sort t : +2 nr管線指令管線指令 wc -lmw filename 統(tǒng)計(jì)指令統(tǒng)計(jì)指令 -l:計(jì)算行數(shù)計(jì)算行數(shù) -m:計(jì)算字符數(shù)計(jì)算字符數(shù) -w:計(jì)算字?jǐn)?shù)計(jì)算字?jǐn)?shù)管線指令管線指令eg: cat /etc/passwd | wc l 統(tǒng)計(jì)文件的總行數(shù)統(tǒng)計(jì)文件的總行數(shù) cat /etc/passwd | wc m 統(tǒng)計(jì)文件的總字符數(shù)統(tǒng)計(jì)文件的總字符數(shù) cat /etc/passwd | wc w 統(tǒng)計(jì)文件的總詞(統(tǒng)計(jì)文件的總詞(word)數(shù))數(shù)管線指令管線指令 tee -a filename 雙向重定向指令雙向重定向指令 該指令除

22、了將數(shù)據(jù)導(dǎo)入指定文件外還將其顯示該指令除了將數(shù)據(jù)導(dǎo)入指定文件外還將其顯示到屏幕上到屏幕上 -a:將數(shù)據(jù)向后累加:將數(shù)據(jù)向后累加eg: cat /etc/passwd | tee -a /home/swh/feedback |wc l 屏幕上顯示行數(shù),而屏幕上顯示行數(shù),而feedback文件中放的是文件中放的是cat指令的反饋結(jié)果指令的反饋結(jié)果 vi /home/swh/feedback 特殊組合鍵特殊組合鍵 CtrlC:終止當(dāng)前命令:終止當(dāng)前命令 Ctrl+Z:暫停當(dāng)前命令:暫停當(dāng)前命令 Ctrl+D:結(jié)束輸入:結(jié)束輸入特殊符號(hào)特殊符號(hào) 使用特殊符號(hào)實(shí)現(xiàn)相關(guān)指令的連續(xù)輸入使用特殊符號(hào)實(shí)現(xiàn)相關(guān)指

23、令的連續(xù)輸入 command1 & command2 command1無錯(cuò)時(shí),執(zhí)行無錯(cuò)時(shí),執(zhí)行command2 command1 | command2 command1有錯(cuò)時(shí)才執(zhí)行有錯(cuò)時(shí)才執(zhí)行command2 command1;command2 command2的執(zhí)行與的執(zhí)行與command1是否成功沒有關(guān)系是否成功沒有關(guān)系Bash shell的配置文件的配置文件 在命令行中設(shè)定的用戶自定義變量和指在命令行中設(shè)定的用戶自定義變量和指令別名都是針對本令別名都是針對本shell而言的,若注銷而言的,若注銷了系統(tǒng),再次登錄時(shí),這些設(shè)定就會(huì)丟了系統(tǒng),再次登錄時(shí),這些設(shè)定就會(huì)丟失失 使用配置文件可以將設(shè)定永久保存使用配置文件可以將設(shè)定永久保存Bash shell配置文件配置文件 系統(tǒng)設(shè)定值:需要注銷重啟才能使用系統(tǒng)設(shè)定值:需要注銷重啟才能使用 用戶用戶shell操作環(huán)境啟動(dòng)后首先被調(diào)用的配操作環(huán)境啟動(dòng)后首先被調(diào)用的配置文

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論