<em id="pn7p8"><acronym id="pn7p8"><u id="pn7p8"></u></acronym></em>

    <th id="pn7p8"></th>

    <button id="pn7p8"></button>

      <dd id="pn7p8"></dd>
      <progress id="pn7p8"><track id="pn7p8"></track></progress>

      Linux培訓
      達內IT學院

      400-111-8989

      4 個絕佳的命令行終端程序

      • 發布:Linux培訓
      • 來源:網絡
      • 時間:2017-06-14 15:29

      讓我們來看幾個精心設計的 CLI 程序,以及如何解決一些可發現性問題。在本文中,我會指出命令行界面的可發現性缺點以及克服這些問題的幾種方法。

      我喜歡命令行。我第一次接觸命令行是在 1997 的 DOS 6.2 上。我學習了各種命令的語法,并展示了如何在目錄中列出隱藏的文件(attrib)。我會每次仔細檢查命令中的每個字符。 當我犯了一個錯誤,我會從頭開始重新輸入命令。直到有一天,有人向我展示了如何使用向上和向下箭頭按鍵遍歷命令行歷史,我被震驚了。

      后來當我接觸到 Linux 時,讓我感到驚喜的是,上下箭頭保留了它們遍歷歷史記錄的能力。我仍然很仔細地打字,但是現在,我了解如何盲打,并且我能打的很快,每分鐘可以達到 55 個單詞的速度。接著有人向我展示了 tab 補完,再一次改變了我的生活。

      在 GUI 應用程序中,菜單、工具提示和圖標用于向用戶展示功能。而命令行缺乏這種能力,但是有辦法克服這個問題。在深入解決方案之前,我會來看看幾個有問題的 CLI 程序:

      1、 MySQL

      首先讓我們看看我們所鐘愛的 MySQL REPL。我經常發現自己在輸入SELECT * FROM然后按Tab的習慣。MySQL 會詢問我是否想看到所有的 871 種可能性。我的數據庫中絕對沒有 871 張表。如果我選擇yes,它會顯示一堆 SQL 關鍵字、表、函數等。(LCTT 譯注:REPL —— Read-Eval-Print Loop,交互式開發環境)

      干貨:4 個絕佳的命令行終端程序干貨:4 個絕佳的命令行終端程序

      2、 Python

      我們來看另一個例子,標準的 Python REPL。我開始輸入命令,然后習慣按Tab鍵。瞧,插入了一個Tab字符,考慮到Tab在 Python 源代碼中沒有特定作用,這是一個問題。

      干貨:4 個絕佳的命令行終端程序干貨:4 個絕佳的命令行終端程序

      好的用戶體驗

      讓我看下設計良好的 CLI 程序以及它們是如何克服這些可發現性問題的。

      自動補全: bpython

      Bpython 是對 Python REPL 的一個很好的替代。當我運行 bpython 并開始輸入時,建議會立即出現。我沒用通過特殊的鍵盤綁定觸發它,甚至沒有按下Tab鍵。

      干貨:4 個絕佳的命令行終端程序干貨:4 個絕佳的命令行終端程序

      當我出于習慣按下Tab鍵時,它會用列表中的第一個建議補全。這是給 CLI 設計帶來可發現性性的一個很好的例子。

      bpython 的另一個方面是可以展示模塊和函數的文檔。當我輸入一個函數的名字時,它會顯示這個函數附帶的簽名以及文檔字符串。這是一個多么令人難以置信的周到設計啊。

      上下文感知補全:mycli

      mycli 是默認的 MySQL 客戶端的現代替代品。這個工具對 MySQL 來說就像 bpython 之于標準 Python REPL 一樣。mycli 將在你輸入時自動補全關鍵字、表名、列和函數。

      補全建議是上下文相關的。例如,在SELECT * FROM之后,只有來自當前數據庫的表才會列出,而不是所有可能的關鍵字。

      干貨:4 個絕佳的命令行終端程序干貨:4 個絕佳的命令行終端程序

      模糊搜索和在線幫助: pgcli

      如果您正在尋找 PostgreSQL 版本的 mycli,請看看 pgcli。 與 mycli 一樣,它提供了上下文感知的自動補全。菜單中的項目使用模糊搜索縮小范圍。模糊搜索允許用戶輸入整體字符串中的任意子字符串來嘗試找到正確的匹配項。

      干貨:4 個絕佳的命令行終端程序干貨:4 個絕佳的命令行終端程序

      pgcli 和 mycli 在其 CLI 中都實現了這個功能。斜杠命令的文檔也作為補全菜單的一部分展示。

      可發現性: fish

      在傳統的 Unix shell(Bash、zsh 等)中,有一種搜索歷史記錄的方法。此搜索模式由Ctrl-R觸發。當再次調用你上周運行過的命令時,例如 ssh或 docker,這是一個令人難以置信的有用的工具。 一旦你知道這個功能,你會發現自己經常會使用它。

      如果這個功能是如此有用,那為什么不每次都搜索呢?這正是 fish shell 所做的。一旦你開始輸入命令,fish 將開始建議與歷史記錄類似的命令。然后,你可以按右箭頭鍵接受該建議。

      命令行規矩

      我已經回顧了一些解決可發現性的問題的創新方法,但也有一些基本的命令行功能應該作為每個 REPL 所實現基礎功能的一部分:

      確保 REPL 有可通過箭頭鍵調用的歷史記錄。確保會話之間的歷史持續存在。

      提供在編輯器中編輯命令的方法。不管你的補全是多么棒,有時用戶只需要一個編輯器來制作完美的命令來刪除生產環境中所有的表。

      使用分頁器(pager)來管道輸出。不要讓用戶滾動他們的終端。哦,要為分頁器設置個合理的默認值。(記得添加選項來處理顏色代碼。)

      提供一種通過Ctrl-R界面或者 fish 式的自動搜索來搜索歷史記錄的方法。

      總結

      在第 2 節中,我將來看看 Python 中使你能夠實現這些技術的特定庫。同時,請查看其中一些精心設計的命令行應用程序:

      bpython或 ptpython:具有自動補全支持的 Python REPL。

      http-prompt:交互式 HTTP 客戶端。

      mycli:MySQL、MariaDB 和 Percona 的命令行界面,具有自動補全和語法高亮。

      pgcli:具有自動補全和語法高亮,是對 psql 的替代工具。

      wharfee:用于管理 Docker 容器的 shell。

      預約申請免費試聽課

      填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

      上一篇:如何為Linux配置雙顯卡
      下一篇:機器學習的未來屬于 Linux 內核

      拯救者Linux:我是如何給我的團隊引入Linux的

      Linux只有十三個字符的經典Fork炸彈

      騰訊十年運維老兵:運維團隊的五個“殺手锏”

      為您的Linux應用開發加油提速(二)

      • 掃碼領取資料

        回復關鍵字:視頻資料

        免費領取 達內課程視頻學習資料

      • 視頻學習QQ群

        添加QQ群:1143617948

        免費領取達內課程視頻學習資料

      Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

      選擇城市和中心
      黑龍江省

      吉林省

      河北省

      湖南省

      貴州省

      云南省

      廣西省

      海南省

      高清特黄a大片,日本真人真做爰,特级做人爱C级,免费a级毛片 百度 好搜 搜狗
      <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>