jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂(lè)、美好的愿望和寧?kù)o時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂(lè)或者寧?kù)o的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0
          set命令可以用來(lái)定制shell環(huán)境,使用選項(xiàng)“o”來(lái)打開(kāi)或者關(guān)閉選項(xiàng)。例如打開(kāi)選項(xiàng):set -o 選項(xiàng),關(guān)閉選項(xiàng)目:set +o 選項(xiàng)。

              例如要打開(kāi)vi交互式命令行編輯,則如下:

          [root@localhost ~]# set -o   #查看當(dāng)前設(shè)置情況
          allexport       off
          braceexpand     on
          emacs           on
          errexit         off
          errtrace        off
          functrace       off
          hashall         on
          histexpand      on
          history         on
          ignoreeof       off
          interactive-comments    on
          keyword         off
          monitor         on
          noclobber       off
          noexec          off
          noglob          off
          nolog           off
          notify          off
          nounset         off
          onecmd          off
          physical        off
          pipefail        off
          posix           off
          privileged      off
          verbose         off
          vi              off             #關(guān)閉中
          xtrace          off
          [root@localhost ~]# set -o vi   #把vi選項(xiàng)打開(kāi)
          [root@localhost ~]# set -o      #查看當(dāng)前設(shè)置情況
          allexport       off
          braceexpand     on
          emacs           off
          errexit         off
          errtrace        off
          functrace       off
          hashall         on
          histexpand      on
          history         on
          ignoreeof       off
          interactive-comments    on
          keyword         off
          monitor         on
          noclobber       off
          noexec          off
          noglob          off
          nolog           off
          notify          off
          nounset         off
          onecmd          off
          physical        off
          pipefail        off
          posix           off
          privileged      off
          verbose         off
          vi              on                #已經(jīng)打開(kāi)
          xtrace          off

              內(nèi)置set命令選項(xiàng)

           

          選項(xiàng)名  快捷開(kāi)關(guān) 含義 
          allexport  -a  從這個(gè)選項(xiàng)中被設(shè)置開(kāi)始就自動(dòng)標(biāo)明要輸出的新變量或修改過(guò)的變量,直至選項(xiàng)被復(fù)位 
          braceexpand  -B 打開(kāi)花括號(hào)擴(kuò)展,它是一個(gè)默認(rèn)設(shè)置 
          emacs    使用emacs內(nèi)置編輯器進(jìn)行命令行編輯,是一個(gè)默認(rèn)設(shè)置 
          errexit -e  當(dāng)命令返回一個(gè)非零退出狀態(tài)(失?。r(shí)退出。讀取初始化文件時(shí)不設(shè)置 
          histexpand  -H  執(zhí)行歷史替換時(shí)打開(kāi)!和!!擴(kuò)展,是一個(gè)默認(rèn)設(shè)置 
          history    打開(kāi)命令行歷史、默認(rèn)為打開(kāi) 
          ignoreeof   禁止用EOF(Ctrl+D)鍵退出shell。必須鍵入exit才能退出。等價(jià)于設(shè)置shell變量IGNOREEOF=10 
          keyword  -k   將關(guān)鍵字參數(shù)放到命令的環(huán)境中 
          interactive-comments   對(duì)于交互式shell,把#符后面的文本作為注釋 
          monitor -m  設(shè)置作業(yè)控制 
          noclobber -C  防止文件在重定向時(shí)被重寫 
          noexec -n  讀命令,但不執(zhí)行。用來(lái)檢查腳本的語(yǔ)法。交互式運(yùn)行時(shí)不開(kāi)啟 
          noglob  -d  禁止用路徑名擴(kuò)展。即關(guān)閉通配符 
          notify -b  后臺(tái)作業(yè)完成時(shí)通知用戶 
          nounset -u   擴(kuò)展一個(gè)未設(shè)置的變量時(shí)顯示一個(gè)錯(cuò)誤信息 
          onecmd -t  在讀取和執(zhí)行命令后退出 
          physical -P   設(shè)置時(shí),在鍵入cd或pwd禁止符號(hào)鏈接。用物理目錄代替 
          privileged -p  設(shè)置后,shell不讀取.profile或ENV文件,且不從環(huán)境繼承shell函數(shù),將自動(dòng)為setuid腳本開(kāi)啟特權(quán) 
          verbose  -v  為調(diào)試打開(kāi)verbose模式 
          vi   使用vi內(nèi)置編輯器進(jìn)行命令行編輯 
          xtrace -x  為調(diào)試打開(kāi)echo模式 
               

           

           

             shopt命令是set命令的一種替代,很多方面都和set命令一樣,但它增加了很多選項(xiàng)??捎惺褂?#8220;-p”選項(xiàng)來(lái)查看shopt選項(xiàng)的設(shè)置。“-u”開(kāi) 關(guān)表示一個(gè)復(fù)位的選項(xiàng),“-s”表示選項(xiàng)當(dāng)前被設(shè)置。
           

          [root@localhost ~]# shopt -p    #查看當(dāng)前設(shè)置情況
          shopt -u cdable_vars
          shopt -u cdspell
          shopt -u checkhash
          shopt -s checkwinsize
          shopt -s cmdhist
          shopt -u dotglob
          shopt -u execfail
          shopt -s expand_aliases
          shopt -u extdebug
          shopt -u extglob
          shopt -s extquote
          shopt -u failglob
          shopt -s force_fignore
          shopt -u gnu_errfmt
          shopt -u histreedit
          shopt -u histappend
          shopt -u histverify
          shopt -s hostcomplete
          shopt -u huponexit
          shopt -s interactive_comments
          shopt -u lithist
          shopt -s login_shell
          shopt -u mailwarn
          shopt -u no_empty_cmd_completion
          shopt -u nocaseglob
          shopt -u nullglob
          shopt -s progcomp
          shopt -s promptvars
          shopt -u restricted_shell
          shopt -u shift_verbose
          shopt -s sourcepath
          shopt -u xpg_echo

          [root@localhost ~]# shopt -s cdspell   #把cdspell選項(xiàng)打開(kāi)
          [root@localhost ~]# shopt -p cdspell   #打印cdspell設(shè)置
          shopt -s cdspell
          [root@localhost ~]# cd /raot           # 故意拼寫錯(cuò)誤
          /root
          [root@localhost ~]# pwd                # 查看當(dāng)前目錄
          /root
          [root@localhost ~]# cd /usr/loca/bin   #故意拼寫錯(cuò)誤
          /usr/local/bin
          [root@localhost bin]# pwd              # 查看當(dāng)前目錄  
          /usr/local/bin
          [root@localhost bin]# shopt -u cdspell #把cdspell選項(xiàng)打開(kāi)
          [root@localhost bin]# shopt -p cdspell #打印cdspell設(shè)置
          shopt -u cdspell
          [root@localhost bin]# cd /raot         #故意拼寫錯(cuò)誤
          -bash: cd: /raot: 沒(méi)有那個(gè)文件或目錄     #進(jìn)入目錄錯(cuò)誤

           
          shopt命令選項(xiàng)
          選項(xiàng) 含義 
          cdable_vars 如果給cd內(nèi)置命令的參數(shù)不是一個(gè)目錄,就假設(shè)它是一個(gè)變量名,變量的值是將要轉(zhuǎn)換到的目錄
          cdspell 糾正cd命令中目錄名的較小拼寫錯(cuò)誤。檢查的錯(cuò)誤包括顛倒順序的字符,遺漏的字符以及重復(fù)的字符。如果知道一處修改,正確的路徑就打印出,命令將繼續(xù)。只 用于交互式shell
          checkhash bash在試圖執(zhí)行一個(gè)命令前,先在哈希表中尋找,以確定命令是否存在。如果命令不存在,就執(zhí)行正常路徑搜索
          checkwinsize bash在每個(gè)命令后檢查窗口大小,如果有必要,就更新LINES和COLUMNS的值
          cmdhist bash試圖將一個(gè)多行命令的所有行保存在同一個(gè)歷史項(xiàng)中。這使得多行命令的重新編輯更方便
          dotglob bash在文件名擴(kuò)展的結(jié)果中包括以點(diǎn)(.)開(kāi)頭的文件名
          execfail 如果一個(gè)交互式shell不能執(zhí)行指定給exec內(nèi)置命令作為參數(shù)的文件,它不會(huì)退出。如果exec失敗,一個(gè)交互式shell不會(huì)退出 
          expand_aliases  別名被擴(kuò)展。默認(rèn)為打開(kāi) 
          extglob 打開(kāi)擴(kuò)展的模式匹配特征(正常的表達(dá)式元字符來(lái)自Korn shell的文件名擴(kuò)展) 
          histappend  當(dāng)shell退出時(shí),歷史清單將添加到以HISTFILE變量的值命名的文件中,而不是覆蓋文件 
          histreedit  如果readline正被使用,用戶有機(jī)會(huì)重新編輯一個(gè)失敗的歷史替換 
          histverify 如果設(shè)置,且readline正被使用,歷史替換的結(jié)果不會(huì)立即傳遞給shell解析器。而是將結(jié)果行裝入readline編輯緩沖區(qū)中,允許進(jìn)一步修 改 
          hostcomplete  如果設(shè)置,且readine正被使用,當(dāng)正在完成一個(gè)包含@的詞時(shí)bash將試圖執(zhí)行主機(jī)名補(bǔ)全。默認(rèn)為打開(kāi) 
          huponexit  如果設(shè)置,當(dāng)一個(gè)交互式登陸shell退出時(shí),bash將發(fā)送一個(gè)SIGHUP(掛起信號(hào))給所有的作業(yè) 
          interactive_comments  在一個(gè)交互式shell中,允許以#開(kāi)頭的詞以及同一行中其他的字符被忽略。默認(rèn)為打開(kāi) 
          lithist  如果打開(kāi),且cmdhist選項(xiàng)也打開(kāi),多行命令將用嵌入的換行符保存到歷史中,而無(wú)需在可能的地方用分號(hào)來(lái)分隔 
          mailwarn  如果設(shè)置,且bash用來(lái)檢查郵件的文件自從上次檢查后已經(jīng)被訪問(wèn),將顯示消息“The mail in mailfile has been read” 
          nocaseglob  如果設(shè)置,當(dāng)執(zhí)行文件名擴(kuò)展時(shí),bash在不區(qū)分大小寫的方式下匹配文件名 
          nullglob 如果設(shè)置,bash允許沒(méi)有匹配任何文件的文件名模式擴(kuò)展成一個(gè)空串,而不是它們本身 
          promptvars  如果設(shè)置,提示串在被擴(kuò)展后再經(jīng)歷變量和參量擴(kuò)展。默認(rèn)為打開(kāi) 
          restricted_shell  如果shell在受限模式下啟動(dòng)就設(shè)置這個(gè)選項(xiàng)。該值不能被改變。當(dāng)執(zhí)行啟動(dòng)文件時(shí),不能復(fù)位該選項(xiàng),允許啟動(dòng)文件發(fā)現(xiàn)shell是否是受限的 
          sourcepath 如果設(shè)置,source內(nèi)置命令使用PATH的值來(lái)尋找包含作為參數(shù)提供的文件的目錄。默認(rèn)為打開(kāi) 
          source  點(diǎn)(.)的同義詞 
          shift_verbose 如果該選項(xiàng)設(shè)置,當(dāng)移動(dòng)計(jì)數(shù)超過(guò)位置參量個(gè)數(shù)時(shí),shift內(nèi)置命令將打印一個(gè)錯(cuò)誤消息 

          自Bash 3.1版開(kāi)始,引入新選項(xiàng) nocasematch,可讓Bash在對(duì)比樣式時(shí)忽略大小寫。

          shopt -s nocasematch  #打開(kāi)選項(xiàng)


          原文: http://blog.sina.com.cn/s/blog_44c831df0100luyr.html

          主站蜘蛛池模板: 阜平县| 镇宁| 左云县| 迁西县| 远安县| 通道| 洪洞县| 伊宁市| 临潭县| 加查县| 辽阳市| 遂宁市| 海原县| 乡宁县| 太湖县| 浠水县| 固原市| 潞西市| 互助| 绥棱县| 开鲁县| 镇赉县| 长治县| 丰台区| 双柏县| 罗甸县| 濮阳县| 连江县| 中超| 米林县| 扶沟县| 大名县| 丰都县| 芮城县| 思茅市| 偏关县| 扶绥县| 皋兰县| 东乌珠穆沁旗| 南华县| 如东县|