四虎影视在线影院在线观看,小s货再浪些再咬紧点h,国产精品水嫩水嫩,97精产国品一二三产区

無(wú)標(biāo)題文檔
wdCP系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說(shuō)明,演示,常見(jiàn)問(wèn)題,使用教程) wdCDN系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說(shuō)明,演示,常見(jiàn)問(wèn)題,使用手冊(cè))
wdOS系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說(shuō)明,演示,常見(jiàn)問(wèn)題,使用教程) wdDNS系統(tǒng) (介紹,功能特性,運(yùn)行環(huán)境,安裝說(shuō)明,演示,常見(jiàn)問(wèn)題,使用手冊(cè))
注冊(cè) 發(fā)貼 提問(wèn) 回復(fù)-必看必看 wddns免費(fèi)智能 DNS 開(kāi)通 本地或虛擬機(jī)使 用wdcp 一鍵包在mysql編 譯時(shí)"卡住"
AI導(dǎo)航網(wǎng)AI應(yīng)用網(wǎng)站大全 wdcp官方技術(shù)支持/服務(wù) 阿里云8折優(yōu)惠券 無(wú)敵云 騰訊云優(yōu)惠中,現(xiàn)注冊(cè)更有260代金額券贈(zèng)送
返回列表 發(fā)帖
提問(wèn)三步曲: 提問(wèn)先看教程/FAQ索引(wdcp,wdcp_v3,一鍵包)及搜索,會(huì)讓你更快解決問(wèn)題
1 提供詳細(xì),如系統(tǒng)版本,wdcp版本,軟件版本等及錯(cuò)誤的詳細(xì)信息,貼上論壇或截圖發(fā)論壇
2 做過(guò)哪些操作或改動(dòng)設(shè)置等

溫馨提示:信息不詳,很可能會(huì)沒(méi)人理你!論壇有教程說(shuō)明的,也可能沒(méi)人理!因?yàn)?你懂的

[分享] Linux Shell程序設(shè)計(jì)(一)

4.1.1  shell的特點(diǎn)和主要版本
作為命令解釋程序
一種高級(jí)程序設(shè)計(jì)語(yǔ)言,它有變量,關(guān)鍵字,有各種控制語(yǔ)句,如if、case、while、for等語(yǔ)句,支持函數(shù)模塊,有自己的語(yǔ)法結(jié)構(gòu)

1.shell的特點(diǎn)

☆組合新命令               
☆提供了文件名擴(kuò)展字符

☆直接使用shell的內(nèi)置命令     
☆靈活地使用數(shù)據(jù)流

☆結(jié)構(gòu)化的程序模塊         
☆在后臺(tái)執(zhí)行命令

☆可配置的環(huán)境                     
☆高級(jí)的命令語(yǔ)言


2.shell的種類(lèi)

(1)Bourne  shell(簡(jiǎn)稱(chēng)sh)

(2)C shell(簡(jiǎn)稱(chēng)csh)

(3)Korn  shell(簡(jiǎn)稱(chēng)ksh)

(4)Bourne Again shell(即bash)


4.1.2  shell程序示例
由三條簡(jiǎn)單命令組成的shell程序(文件名為ex1)。

$ cat  ex1

date

pwd

cd  ..
帶有控制結(jié)構(gòu)的shell程序(文件名為ex2)。
$ cat ex2
#!/bin/bash
# If no arguments, then listing the current directory.
# Otherwise, listing each subdirectory.
if  test  $# = 0
then  ls  .
else
    for  i
    do
      ls  -l  $i | grep  '^d'
    done
fi


4.1.3  shell腳本的建立和執(zhí)行
1、shell腳本的建立

2、執(zhí)行shell腳本的方式
     執(zhí)行shell腳本的方式基本上有三種:
       (1)輸入定向到shell腳本
           $ bash < 腳本名
       (2)以腳本名作為參數(shù)
       其一般形式是:  $ bash  腳本名  [參數(shù)]
如果以目前shell(以·表示)執(zhí)行一個(gè)shell腳本,則可以使用如下簡(jiǎn)便形式:
            $ · 腳本名 [參數(shù)]
       (3)將shell腳本的權(quán)限設(shè)置為可執(zhí)行,然后在提示符下直接執(zhí)行它。
        $ chmod  a+x  ex2
        $ PATH=$PATH:.
        $ ex2
注意,此時(shí)該腳本所在的目錄應(yīng)被包含在命令搜索路徑(PATH)中



4.2.1  顯示歷史命令
語(yǔ)法格式是:history  [option] [arg…]
如果不帶任何參數(shù),則history命令會(huì)顯示歷史命令的清單
如果history 后給出一個(gè)正整數(shù)(如50),就只顯示歷史表中的最后50行命令  
如果history后給出一個(gè)文件名,就把它作為歷史文件名

常用的選項(xiàng)有:
  -a  在歷史文件中添加“新”歷史命令行。
  -n  從歷史文件中讀取尚未讀入的歷史命令行,添加到當(dāng)前歷史清單中。
  -r  讀取歷史文件的內(nèi)容,并把它作為當(dāng)前的歷史命令。
  -w  把當(dāng)前的歷史寫(xiě)到歷史文件中,覆蓋原有內(nèi)容。
  -c  刪除歷史清單中所有的項(xiàng)。


4.2.2  執(zhí)行歷史命令
執(zhí)行歷史命令是命令替換之一,它以字符“!”開(kāi)頭、后隨1個(gè)或多個(gè)字符來(lái)定義用戶(hù)所需的某種類(lèi)型的歷史命令
                      基本的事件指定字格式
圖片1.png



4.2.3  配置歷史命令環(huán)境
在默認(rèn)方式下,bash使用用戶(hù)主目錄下面的文件“.bash_history”來(lái)保存命令歷史
改變存放歷史命令的文件
    $ HISTFILE="/home/mengqc/.myhistory"
重新設(shè)定能夠保留的命令個(gè)數(shù)
    $ HISTSIZE=600

本帖最后由 marquis 于 2013-4-20 23:41 編輯

4.3  名稱(chēng)補(bǔ)全
可以輸入目錄名或文件名的開(kāi)頭部分,然后按Tab鍵,
Linux根據(jù)輸入的字母查找以這些字母開(kāi)頭的目錄或文件,并自動(dòng)補(bǔ)全剩余的部分。


4.4.1  定義別名
一般語(yǔ)法格式為: alias [name[=value]]…
如果沒(méi)有指定參數(shù),將在標(biāo)準(zhǔn)輸出(屏幕)上顯示別名清單
定義別名時(shí),往往用單引號(hào)將它代表的內(nèi)容括起來(lái),從而防止shell對(duì)其中的內(nèi)容產(chǎn)生歧義,如對(duì)空格和特殊字符另作解釋


4.4.2  取消別名
如果想取消先前定義的別名,可使用如下命令:
        unalias name…

可以一次將所有的別名都從別名表中刪除,使用如下命令:
        unalias -a


4.5.1  通配符
1.一般通配符
*(星號(hào)),它匹配任意字符的0次或多次出現(xiàn),不能匹配文件名前面的.和/
?(問(wèn)號(hào)),它匹配任意一個(gè)字符
[ ](一對(duì)方括號(hào)),其中有一個(gè)字符組。其作用是匹配該字符組所限定的任何一個(gè)字符
!(驚嘆號(hào)),如果它緊跟在一對(duì)方括號(hào)的左方括號(hào)([)之后,則表示不在一對(duì)方括號(hào)中所列出的字符
例:chapter[0-9]*,-a[*?]abc, f[!1-9].c

2.模式表達(dá)式 ——是那些包含一個(gè)或多個(gè)通配符的字
*(模式表)——匹配給定模式表中“模式”的0次或多次出現(xiàn),各模式之間以“|”分開(kāi)(下同)
+(模式表)——匹配給定模式表中“模式”的1次或多次出現(xiàn)
?(模式表)——匹配模式表中任何一種“模式”的0次或1次出現(xiàn)
@(模式表)——僅匹配模式表中給定“模式”的一次出現(xiàn)
!(模式表)——除給定模式表中的一個(gè)“模式”之外,可以匹配其他任何東西
例:file*(.c|.o),file+(.c|.o) ),file?(.c|.o) ),file@(.c|.o)


4.5.2  引號(hào)
1.雙引號(hào)
由雙引號(hào)括起來(lái)的字符(除$、倒引號(hào)(`)和反斜線(xiàn)(\)外)均作為普通字符對(duì)待。

2.單引號(hào)
由單引號(hào)括起來(lái)的字符都作為普通字符出現(xiàn)

3.倒引號(hào)
倒引號(hào)括起來(lái)的字符串被shell解釋為命令行,在執(zhí)行時(shí),shell會(huì)先執(zhí)行該命令行,并以它的標(biāo)準(zhǔn)輸出結(jié)果取代整個(gè)倒引號(hào)部分。
倒引號(hào)還可以嵌套使用。但應(yīng)注意,嵌套使用時(shí)內(nèi)層的倒引號(hào)必須用反斜線(xiàn)(\)將其轉(zhuǎn)義。

TOP

本帖最后由 marquis 于 2013-4-20 23:44 編輯

4.5.3  輸入/輸出重定向符
自動(dòng)打開(kāi)三個(gè)標(biāo)準(zhǔn)文件,即標(biāo)準(zhǔn)輸入文件(stdin),標(biāo)準(zhǔn)輸出文件(stdout)和標(biāo)準(zhǔn)出錯(cuò)輸出文件(stderr)。
1.輸入重定向符   
一般形式是:命令 < 文件名        如:$  score < file1

2.輸出重定向符
一般形式是:命令 > 文件名         如:$ who > abc

3.輸出附加定向符
一般形式是:命令>>文件名         如:$ ps -l >> psfile

輸入和輸出重新定向可以連在一起使用。例如:
    $ wc  -l < infile > outfile

4.即時(shí)文件定向符
即時(shí)文件的形式是:
   命令  [參數(shù)]<< 標(biāo)記符
    輸入行
    …
   標(biāo)記符
  注意:標(biāo)記符要成對(duì)出現(xiàn)
例如:
  mail  $1 << !!
  Best  wishes  to  you  on  your  birthday .
  !!

5.與文件描述字有關(guān)的重定向
系統(tǒng)為每個(gè)進(jìn)程自動(dòng)打開(kāi)三個(gè)標(biāo)準(zhǔn)文件(即標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出),其文件描述字分別為0,1和2。
標(biāo)準(zhǔn)錯(cuò)誤輸出也可重定向到一個(gè)文件中,其一般形式是:
      命令  2> 文件名
      命令  2>> 文件名
標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出可以重定向到同一個(gè)文件,一般形式是:
      command  $>file
等價(jià)于下面形式的命令:
     command > file  2>& 1


4.5.4  注釋、管道線(xiàn)和后臺(tái)命令
1.注釋
    #!/bin/bash
    # If no arguments, then listing the current directory.
    # Otherwise, listing each subdirectory.
2.管道線(xiàn)
    ls -l  $HOME | wc –l
    ls  | grep  m?.c | wc –l
3.后臺(tái)命令
    $ gcc  m1.c&


4.5.5  命令執(zhí)行操作符
1.順序執(zhí)行
    在執(zhí)行時(shí),以分號(hào)隔開(kāi)的各條命令從左到右依次執(zhí)行
pwd ;  who | wc  -l ;  cd  /usr/bin
2.邏輯與
命令1 && 命令2
其功能是,先執(zhí)行命令1,如果執(zhí)行成功,才執(zhí)行命令2;否則,若命令1執(zhí)行不成功,則不執(zhí)行命令2。
3.邏輯或
命令1 || 命令2
其功能是,先執(zhí)行命令1,如果執(zhí)行不成功,則執(zhí)行命令2;否則,若命令1執(zhí)行成功,則不執(zhí)行命令2。


4.5.6  成組命令
1.{ }形式
以花括號(hào)括起來(lái)的全部命令可視為語(yǔ)法上的一條命令,出現(xiàn)在管道符的一邊。
    $ {  echo  “User  Report  for  ` date ` . ”; who ; } | pr
    使用花括號(hào)時(shí)在格式上應(yīng)注意:左括號(hào) “{ ”后面應(yīng)有一個(gè)空格;右括號(hào)“}”之前應(yīng)有一個(gè)分號(hào)( ;)
2.( )形式
    (echo  "Current  directory  is  ` pwd ` . "
    cd  /home/mengqc ;  ls -l ;
    cp  m1  em1 && rm  m1
    cat  em1) | pr
二者存在重要區(qū)別:用花括號(hào)括起來(lái)的成組命令只是在本shell內(nèi)執(zhí)行命令表,不產(chǎn)生新的進(jìn)程;而用圓括號(hào)括起來(lái)的成組命令是在新的子shell內(nèi)執(zhí)行,要建立新的子進(jìn)程。

TOP

返回列表