使用shell提供的命令列編輯功能, 選擇set -o vi 還是 set -o emacs !

來源:互聯網
上載者:User

今天登入系統, 敲了N多命令後,習慣性的用向上的方向鍵來找尋曆史命令,突然看到了這個:

  $^[[A^[[A^[[A 

按刪除鍵,出來的是這個:

  $ ^H^H^H^H^H^H^H 

只能用 Ctrl+BackSpace 才能刪除游標左邊的內容...用的那個不習慣啊~~~!!! - -b

後來問到 Wells ,原來只需要做一個小小的設定,在Console中啟用:

  $set -o emasc 

原因後來上網查了一下,暫且引用一下《FreeBSD使用大全》中的一段內容:

-----------------------------------------------------------------------------------------------

  • 配置用戶shell
  •   事實上sh與csh,並不是普通用戶的最佳選擇,因為這兩個shell在易用性方面做的不夠好,例如命令列編 輯功能不強、不能利用熱鍵重復執行命令等。較新的shell,如bash和tcsh都具有這些方便用戶使用的功能,但 必須安裝了這些shell程式之後,才能更改普通用戶的shell設置以使用這些shell程式。更改用戶的shell 可以使用pw、vipw或chsh。

      這兩個shell分別遵照sh和csh的風格,因此喜好csh風格的可以選擇tcsh,而喜歡sh風格的選擇 bash。除了這兩種shell之外,還有ksh、zsh等shell可供選擇。如果對兩種shell沒有偏好,可以 選擇bash,它是一個GNU軟件,比標准sh功能強大的多。

      使用了這兩些增強型shell之後,用戶就可以使用shell提供的命令列編輯功能。按照習慣的不同,可以選 擇vi風格的編輯方式或emacs風格的方式,預設為emacs方式,這種方式使用方向鍵來回溯執行過的命令,並進行 修改,而vi風格使用字母命令作編輯鍵,例如使用h、j、k、l四個鍵來移動光標,vi風格的好處是不使用基本鍵盤之 外的控制鍵,因而可以適用於任何終端設備,並且進行編輯時手不需離開基本鍵盤,熟練操作之後最為快捷。emacs風格 比起vi風格更適合從個人計算機轉向Unix的使用者的習慣。bash, ksh ,zsh下使用下面的命令在emacs 風格和vi風格切換:

      bash$ set -o emacs

      bash$ set -o vi

      tcsh中使用不同的命令:

      % bind emacs

      % bind vi

      還可以為常用的命令設置別名,簡化用戶輸入,例如:

      bash$ alias ec=”echo This is a alias”

      bash$ ec

      This is a alias

      shell用於方便用戶操作的另一項能力是自動補全命令或檔案名稱的功能,因為FreeBSD下的檔案名稱可能很 長,將它們全部輸入比較麻煩。事實上可以輸入部分名字,然後按Tab鍵(在vi風格下是連續兩次按Esc鍵),shell 將自動補全檔案名稱的剩餘部分。如果已經輸入的這部分名字不能確定具體的命令或檔案,那麼shell只將能確定的部 分補上,然後響鈴通知使用者繼續輸入以明確具體的檔案。

      事實上即使在基本的sh或csh下,也可以使用 “*” 等特殊字元,用模式比對的方式來簡化輸入。

      bash$ cd /usr/loca*

      bash$ pwd

      /usr/local

      Unix中的多數程式都具備模式比對的處理能力,而shell的模式比對功能最為常用。shell可以使用這 些特殊模式來配置多個檔案,達到簡化操作的目的。如果要熟練掌握Unix,必須掌握模式比對。

      當試圖在bash下輸入漢字的時候,除了必須設置終端屬效能接受8位字元之外(執行stty pass8命令 ),還需要設置bash的輸入輸出轉換,可以在登錄腳本.profile檔案中包括以下設置:

      bind 'set convert-meta off'

      bind 'set meta-flag on'

      bind 'set output-meta on'

    相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.