嗨!歡迎回到上班族的命令列生存手冊。上一個章節講到 git,我就想到 GitHub。一想到 GitHub,就想到 GitHub Copilot。在 Warp 裡頭叫 AI 下指令好爽,一離開 Warp 就突然不知道怎麼下指令。如果一般環境也能叫 AI 下指令好像挺棒的。
幸好,GitHub Copilot 有提供 Command Line 版,這個要從 GitHub 的 Command Line 版安裝,請讀者準備好 GitHub 帳號(還沒有的,也許可以考慮去開一個),先來安裝 Github command line tools。請開啟這個專案的Repo 網頁
往下捲動到 Installation 區塊,這一次就交給讀者自己安裝看看。先看目前使用的系統是什麼,店進去內頁之後就會有對應的套件管理器指令,跟著下就可以安裝啦。
首先要登入 Github,用以下指令登入,有兩種方式 HTTPs 和 SSH,選擇自己喜歡的方式即可。
筆者選擇 HTTPs 然後開網頁授權,覺得比較容易。
$ gh auth login --web -h github.com
做好之後這樣檢查是不是已經登入成功:
$ gh auth status
如果有顯示:✓ Logged in to github.com account 您的芳名 (keyring)
,就是成功啦。在開始爽爽之前有一些前置流程需要先用,比如說要安裝 gh 的 extension(今年連指令都能有 extension,真有你的微軟。)
廢話不多說,直接進入業配主題。這樣裝:
$ gh extension install github/gh-copilot
就緒後,可以這樣查看指令是否有正常安裝:
$ gh extension list
看到 gh copilot
就代表一切都就緒啦。
基礎的用法是這個樣子的,gh 的 copilot 主要有兩個命令可以用:
舉個例子,怎麼確認目前這台電腦的網路沒有問題?可以這樣下指令:
$ gh copilot suggest "how to check my internet is working?"
之後它會問你,你要問的內容是一般的 Shell 指令,gh
的還是 git
的命令,當然是詢問一般的 Shell 指令。
接下來就會出現結果,目前我們的下法沒有辦法叫它直接執行,讀者可以複製到剪貼簿後貼上執行。
這個功能可以請 copilot 說明輸入的指令,適合用來檢查那些來路不明的指令。比如說這個:
$ ping -c 4 google.com
這是啥?帶著忐忑的心去問 gh copilot:
$ gh copilot explain "ping -c 4 google.com"
可以注意到它會依照順序解釋各個內容。是不是比 tldr
和 man
還要更懶人呢?copilot 在 suggest 完指令後,也可以請它說明指令,如果有不了解,就不用再另外下。
寫到這邊網路寫手已經沒有任何的祕密,東西都在那裡了自己去找吧! 等一下,你說每次都打這個多字,誰受得了?好險上一個章節有介紹的 alias,我們就來設定吧。
zsh 和 bash 的使用者有福了!gh copilot 有幫 zsh/bash 先寫好 alias (其實是 Function),運用上一章節學會的設定檔設定,就能立刻套用(還沒看前一章節,記得去看呦!)請下:
$ gh copilot alias
會注意到有三個選項,分別是:bash、PowerShell 和 zsh。請選擇各自對應的 Shell,選好後會發現印了一堆東西在畫面上,看起來是一堆 function,請讀者先複製這些 Shell Script。
接著開啟 zsh/bash 的設定檔:
$ vim ~/.bashrc
# 或是
$ vim ~/.zshrc
一樣捲動到下方的空白處,將上面複製的那些通通貼上來,就可以存檔離開,重新啟動一個 Session。
別怕!還記得介紹 fish 時介紹了如何安裝外掛嗎?當時介紹一套叫做 fisher 的工具(忘記的可以前去補一下。)讓我們安裝這個 Plugins:
$ fisher install rcny/gh-copilot-cli-alias.fish
安裝好後重新啟動一個 Session。
變得多短?沒看不知道,一看嚇一跳。
$ ghcs '<問題>'
對,其實可以直接問中文:
$ ghcs 怎麼移除空白的資料夾?
而且用 copilot 提供的 alias,結果出來後可以直接叫它執行!是不是更棒了呢?
$ ghce '<指令>'
基本上就跟上面完整的 explain 指令的輸出是一樣的。
因為 gh 是一般的命令列指令,所以就算不在 Warp 裡頭也可以使用。截至這一章節為止,基本上已經沒有任何的指令可以難倒讀者了,那接下來筆者還能寫什麼呢?
這一節題到了 GitHub,那下一個章節就來介紹 git
指令,和他的各種延伸工具。