終端機個人化、實用工具推薦
前言
想必大家都對終端機不陌生了,他就是一個黑底白字的文字介面,像這樣:
但是你有想過他可以長這樣嗎
以下就來介紹一些在終端機上實用的個人化插件和小工具
Windows
👉 總之先把這個視窗跟 CMD 換掉🤣
Windows 終端機
簡介
Windows 終端機是近期微軟新推出的終端機應用程式,為打破傳統命令提示字元而生。提供多設定檔切換和高度個人化,讓終端機不再是一個死板的黑白介面。
以下是微軟在一開始(2019)釋出的概念影片,雖然現在還是有點差異:
💡 官方文件介紹:
安裝
Windows 11 內建 Windows 終端機,除非你把他刪了。
Windows 10 或 Windows 11 但已經刪掉的朋友們,可以透過以下連結安裝:
Get Windows Terminal from the Microsoft Store
設定及使用
啟動 Windows 終端機
到開始功能表尋找「終端機」即可啟動 Windows 終端機
💡 For Windows 11:
可以透過對開始按鈕按右鍵的選單啟動 Windows 終端機
設定 Windows 終端機
透過這個頁面設定終端機行為和個人化,以下挑幾個重點設定介紹:
⚠️ 調整完設定記得按右下角的「儲存」
透過新分頁右邊的箭頭開啟設定頁面
設定預設設定檔
將預設終端機軟體設定成 Windows 終端機
💡 這曾經是 Windows 11 專屬的設定,但現在 Windows 10 也能用了
日後其他軟體要開終端機也會使用 Windows 終端機開啟
選擇終端介面的主題
讓標題列變半透明
⚠️ 儲存設定後,需重開終端機才會生效
設定檔可以個別設定不同環境的終端軟體(如:CMD、PowerShell、Git Bash 等等)、外觀、圖示以及其他行為設定
💡 「預設值」設定會套用到所有設定檔
文字設定:設定字型、文字大小等基本設定
背景影像:終端機的背景(對,可以終端機上放背景圖)
透明度:可以讓終端機變半透明
💡 其他個人化功能可以參考以下文件:
補充:讓 Git Bash 成為 Windows Terminal 的一部份
對的 Windows Terminal 也可以開 Git Bash,不過他預設是關的,因此大部分人都在安裝 Git 的時候忽略掉,此時可以透過重新安裝(不需要把原本的刪掉)將選項補開回來,也可以順便更新一下😃
💡 Git for Windows 下載
直接執行安裝檔,會出下以下畫面,請把
Only show new options
取消勾選,否則他會直接跳過選項直接安裝,接著按下Next
在下一個頁面,將
(NEW!) Add a Git Bash Profile to Windows Terminal
勾起來,也可以順便 Review 一下其他設定(例如自動更新、預設 Branch 名稱、預設 Git 編輯器等)如果沒有要調整其他設定,可以把Only show new options
再次勾起來,跳過剩餘選項(但我還是推薦 review 一下),最後按Install
安裝再次開啟 Windows Terminal,就會多出 Git Bash 的 Profile 了
PowerShell 7
簡介
PowerShell 7 是微軟新推出的終端機,也是微軟第一個跨平台的 Shell,能提供比 CMD 更好的終端機使用體驗。
💡 官方文件介紹
⚠️ 別跟這個 PowerShell 搞混了,這是舊版的
安裝
透過官網下載並進行安裝
透過 Microsoft Store 進行安裝
設定為 Windows 終端機預設設定檔
安裝完 PowerShell 後,開啟 Windows 終端機會自動新增 PowerShell 的設定檔,此時就可以將他設定成預設的終端機了
設定為 Visual Studio Code 的預設終端機
啟動終端機,在新增終端機右邊的選單選擇預設設定檔
選擇 PowerShell (
pwsh.exe
)
自訂終端機提示 - oh-my-posh
安裝完的 PowerShell 終端提示是長這樣,但是長的跟我一開始提到的樣子還是不太一樣。
這時候就要開始介紹一個插件叫做 oh-my-posh,他可以將終端提示個人化,內建許多不同的主題,也可以自訂主題。
安裝 oh-my-posh
透過 winget 安裝
1
winget install JanDeDobbeleer.OhMyPosh -s winget
啟用 oh-my-posh
使用文字編輯器(例如:VSCode)開啟 PowerShell 設定檔
1
code $profile
加上以下指令
1
oh-my-posh init pwsh | Invoke-Expression
重開 PowerShell,如果他長得像下面這個畫面就表示有成功
⚠️ 此時建議將整個終端軟體如 Windows Terminal 重啟,以重新載入環境變數
💡 你可能注意到了終端機啟動緩慢的警告,此為載入 oh-my-posh 的正常現象,通常不會超過 2000 ms
安裝字型
眼尖的應該都發現了,為啥出現了一堆方框?
oh-my-posh 和 Powerlevel10K 是基於 Nerd Font 設計的應用程式。請參閱 Nerd Font 安裝字型,安裝並設定完成後,如果提示跟下方圖示的長一樣,代表安裝成功。
設定主題
在 PowerShell 輸入以下指令取得內建主題列表
1
Get-PoshThemes
選好主題後,記下他的名字,到最底下提供的路徑
💡 Windows Terminal 可以透過 Ctrl + 點一下路徑直接使用檔案總管開啟
找到你選擇的主題,複製完整路徑
💡 Windows 11 的複製路徑按鈕在右鍵選單內
使用文字編輯器(例如:VSCode)開啟 PowerShell 設定檔
1
code $profile
將剛剛的
1
oh-my-posh init pwsh | Invoke-Expression
取代成
1
oh-my-posh init pwsh --config <路徑> | Invoke-Expression
其中將
<路徑>
取代成剛剛複製的路徑即可💡 我在最一開始的主題不是內建的,是根據 Powerlevel10K 主題修改過的
p10k.omp.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"alignment": "left",
"segments": [
{
"background": "#303030",
"foreground": "#eeeeee",
"properties": {
"windows": "\ue70f"
},
"style": "plain",
"template": " {{ if .WSL }}WSL at {{ end }}{{.Icon}}<#707070> \ue0b1</>",
"type": "os"
},
{
"background": "#303030",
"foreground": "#00afff",
"properties": {
"style": "letter"
},
"style": "plain",
"template": " {{ .Path }} ",
"type": "path"
},
{
"background": "#303030",
"foreground": "#5fd700",
"properties": {
"ahead_color": "#00afff",
"behind_color": "#e91e63",
"branch_icon": "\ue725 ",
"fetch_stash_count": true,
"fetch_status": true,
"fetch_upstream_icon": true
},
"style": "plain",
"template": "<#707070>\ue0b1 </>{{ .HEAD }} {{ .BranchStatus }}{{ if .Working.Changed }} \uf044 <#d7af00>{{ .Working.String }}</>{{ end }}{{ if and (.Staging.Changed) (.Working.Changed) }}{{ end }}{{ if .Staging.Changed }} \uf046 <#00afff>{{ .Staging.String }}</>{{ end }}{{ if gt .StashCount 0}} \uf692 {{ .StashCount }}{{ end }}{{ if gt .WorktreeCount 0}} \uf1bb {{ .WorktreeCount }}{{ end }} ",
"type": "git"
},
{
"background": "#303030",
"foreground": "#e91e63",
"properties": {
"root_icon": "#"
},
"style": "plain",
"template": "<#707070>\ue0b1 </>\uf0e7 ",
"type": "root"
},
{
"background": "transparent",
"foreground": "#303030",
"style": "plain",
"template": "\ue0b0 ",
"type": "text"
}
],
"type": "prompt"
},
{
"alignment": "right",
"segments": [
{
"background": "#303030",
"foreground": "#008000",
"foreground_templates": [
"{{ if gt .Code 0 }}#e91e63{{ end }}"
],
"leading_diamond": "\ue0b2",
"properties": {
"always_enabled": true,
"display_exit_code": true
},
"style": "diamond",
"template": " {{ if gt .Code 0 }}\u2718 {{ .Meaning }}{{ else }}\u2714 {{ end }}<#707070>\ue0b3</>",
"type": "exit"
},
{
"background": "#303030",
"foreground": "#00afaf",
"properties": {
"display_mode": "environment"
},
"style": "plain",
"template": " \ue235 {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }} {{ end }}{{ .Full }}{{ end }} ",
"type": "python"
},
{
"background": "#303030",
"properties": {
"style": "round",
"threshold": 500
},
"style": "plain",
"template": " {{ .FormattedMs }} <#707070>\ue0b3</>",
"type": "executiontime"
},
{
"background": "#303030",
"foreground": "#d7af87",
"style": "plain",
"template": " {{ if .SSHSession }}\uf817 {{ end }}{{ .UserName }}@{{ .HostName }} <#707070>\ue0b3</>",
"type": "session"
},
{
"background": "#303030",
"foreground": "#5f8787",
"properties": {
"time_format": "15:04:05"
},
"style": "plain",
"template": " {{ .CurrentDate | date .Format }} \uf017 ",
"type": "time"
}
],
"type": "rprompt"
}
],
"console_title_template": "{{if .Root}}# {{end}}{{.Folder}}",
"version": 2
}自訂方式我就不細說了,有興趣的可以自行參考自訂主題文件:
💡 關於 Python 虛擬環境
有些主題(如我在上面提供的自訂主題)有提供虛擬環境提示,可能會和預設的虛擬環境提示重複,像這樣:
解決方式為開啟 PowerShell 設定檔
1
code $profile
加入以下指令以停用預設虛擬環境提示
1
$env:VIRTUAL_ENV_DISABLE_PROMPT = 1
效果如下
其他插件及設定
posh-git
posh-git 是讓 PowerShell 和 Git 整合的插件,以下是兩個主要功能:
提供 git 的狀態顯示
提供 git 指令自動完成
https://github.com/dahlbyk/posh-git
安裝方式:
開啟 PowerShell,輸入
1
Install-Module posh-git
安裝時會出現以下的警告,表示從來源安裝模組是有風險的,按下
Y
接受使用文字編輯器(例如:VSCode)開啟 PowerShell 設定檔
1
code $profile
加上以下指令
1
Import-Module posh-git
如果你有安裝 oh-my-posh,可以再加上以下指令開啟整合
1
$env:POSH_GIT_ENABLED = $true
重啟 PowerShell 就會啟用
歷史記錄搜尋
可快速執行之前執行過的指令,加速執行重複動作時的流程
設定方式
使用文字編輯器(例如:VSCode)開啟 PowerShell 設定檔
1
code $profile
加上以下指令
1
2
3Set-PSReadLineOption -HistorySearchCursorMovesToEnd
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward重啟 PowerShell 就會啟用
實現和 Linux 一樣的
Ctrl+D
離開設定方式
使用文字編輯器(例如:VSCode)開啟 PowerShell 設定檔
1
code $profile
加上以下指令
1
Set-PSReadlineKeyHandler -Chord Ctrl+d -Function DeleteCharOrExit
Mac / Linux
Zsh & oh-my-zsh
簡介
Z shell (以下簡稱 Zsh)是一個終端機應用程式,改善了原始終端機(sh)的許多功能,並加入 Bash、ksh、tcsh 的某些功能。
而由社群維護的 oh-my-zsh 則是強化了 Zsh 。除了強化 Zsh 的許多功能,也且內建許多主題和插件,當然也可以額外加入其他主題和插件。
豐富的插件
豐富的主題
更好的使用體驗
安裝 Zsh
大部分的套件管理工具均提供 Zsh ,透過套件管理工具安裝 Zsh 即可
以 Ubuntu 為例:
1
sudo apt install zsh
目前最新版 MacOS 預設 Shell 為 Zsh,不需額外安裝
💡 參考資料:
Oh My Zsh - a delightful & open source framework for Zsh
安裝 oh-my-zsh
安裝 oh-my-zsh 需要的套件(系統可能會內建):
- git
- curl
以 Ubuntu 為例:
1
sudo apt install git curl
安裝 oh-my-zsh
1
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
此時會詢問是否要將預設終端應用程式設定成 Zsh,按下 Enter (接受預設值 Y)並輸入密碼即可切換
安裝完之後,出現這個提示即代表安裝成功
For Linux 桌面版:建議重新登入您的作業系統以套用變更,桌面環境需要重新登入整個桌面。
💡 如果重登後終端機設定沒有生效,則需要手動變更啟動終端機為 zsh
如需查看 zsh 的安裝位置,可利用以下指令:
1
which zsh
以 Konsole 為例,需要更改的是目前設定檔的這個欄位,輸入的是上方指令的結果
Powerlevel10K
Powerlevel10K 是一個 ZSH 主題,提供高度個人化的終端機提示
以下是幾個終端機提示的範例:
GitHub - romkatv/powerlevel10k: A Zsh theme
💡 oh-my-posh 和 Powerlevel10K 是基於 Nerd Font 設計的應用程式,因此推薦在安裝使用前先行將字型裝好,請參閱 Nerd Font 安裝字型。
這裡我們將直接利用 oh-my-zsh 的主題系統安裝:
將主題 Clone 下來
1
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
打開 zsh 設定檔
1
code ~/.zshrc
將主題設定為 Powerlevel10K:
將原本的
1
ZSH_THEME="robbyrussell"
取代成
1
ZSH_THEME="powerlevel10k/powerlevel10k"
儲存
~/.zshrc
檔案後,重新開啟終端,Powerlevel10k 就會開始設定精靈,逐步個人化您的終端機💡 選擇的方式直接按一下選項前面顯示的按鍵即可
💡 如果不小心選錯了可以按一下
r
重新開始精靈這是否長得像鑽石?(Unicode 測試)
這是否長得像一個鎖?(確認字型圖示)
這是否長得像一個向上箭頭(偵測 Nerd Font 版本)
🠉 | upwards arrow with large triangle arrowhead (U+1F809) @ Graphemica
💡 Nerd Font 最近做了一次大改版,大幅修改了圖示字元碼,此圖示用意就是拿來偵測 Nerd Font 版本支援,如果你是裝最新版字型看到這題是破圖,代表你不是 Nerd Font 2
Nerd Font 2
Nerd Font 3
重試一次… 這是否長得像一個向上箭頭(偵測 Nerd Font 支援)
請問向下箭頭指在
1
還是2
圖示是否都剛好在
X
內(確認字型重疊)接著會逐步詢問個人化的部分,請依照您的喜好選擇
個人化選完後就會詢問這個問題,因為插件一多載入速度就會變慢,啟用這個就可以在 zsh 啟動時就開始有打字的回饋,這邊直接選建議值
Verbose
即可因為這個設定需要變更 Zsh 設定檔,接著會問你是否寫入
~/.zshrc
,直接按y
讓他幫你寫入跳出你選擇的終端提示主題後代表你已經設定成功
💡 日後想要變更選擇的話,可以執行以下指令重新開始精靈
1
p10k configure
設定 oh-my-zsh
打開 zsh 設定檔
1
code ~/.zshrc
設定 Zsh 行為
oh-my-zsh 貼心的在設定檔中留下許多可以調整的設定(例如:自動更新、是否停用 ls 顏色、主題、插件等),用途說明都有用註解寫起來,依需求調整即可
設定 Zsh 插件
剛剛有提到 oh-my-zsh 有內建很多插件,很多插件都是提供自動完成功能,可以到以下連結查看所有插件
Plugins Overview · ohmyzsh/ohmyzsh Wiki
啟用插件
找到
Plugin=
開頭的那行,可以看到預設已經啟用 git 插件,可以整合 git 並提供 git 指令自動完成加上你想啟用的插件,用空格隔開,並根據插件說明作設定
💡 畫面上啟用的插件,都是提供軟體整合(包括自動完成)的插件,可參考以下連結,視需要啟用插件
⚠️ 注意:越多插件啟用,終端機啟動速度越慢
社群插件:
以下再介紹幾個沒有在官方插件庫的 oh-my-zsh 插件:
https://github.com/zsh-users/zsh-completions
尚未被加入 Zsh 的自動填入腳本
將插件 Clone 下來
1
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
將下方指令加到
~/.zshrc
的source $ZSH/oh-my-zsh.sh
前面1
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
💡 這個安裝方式有點不一樣,因為作者說使用一般插件的方式會有問題
oh-my-zsh installation instructions are sub-optimal · Issue #603 · zsh-users/zsh-completions
https://github.com/zdharma-continuum/fast-syntax-highlighting
指令格式提示,可以更清楚的看指令
將插件 Clone 下來
1
2git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting將
fast-syntax-highlighting
新增到plugin
列表中
https://github.com/zsh-users/zsh-autosuggestions
根據你打過的指令或自動完成提示指令
將插件 Clone 下來
1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
將
zsh-autosuggestions
新增到plugin
列表中設定指令提示類型
此插件預設使用歷史記錄
history
提供建議,可以改為自動完成completion
來提供建議GitHub - zsh-users/zsh-autosuggestions: Fish-like autosuggestions for zsh
這個設定是一個陣列,可以設定成先從歷史記錄提供建議,若沒有,改為從自動完成提供建議
1
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
https://github.com/ntnyq/omz-plugin-pnpm
提供 pnpm 快速指令
將插件 Clone 下來
1
git clone --depth=1 https://github.com/ntnyq/omz-plugin-pnpm.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/pnpm
將
pnpm
新增到plugin
列表中
Misc.
neofetch
用豪華的方式查看系統資訊
安裝:透過套件管理工具安裝 neofetch 即可
1 | sudo apt install neofetch |
nvm
Node.js 版本管理工具,可以快速切換 Node.js 的環境
安裝:
- 使用官方提供的自動化安裝腳本
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash |
使用:
安裝 Node.js 16
1
nvm install 16
解除安裝 Node.js 16.14.0
1
nvm uninstall 16.14.0
暫時切換到 Node.js 14
1
nvm use 14
設定預設 Node.js 版本
1
nvm alias default 16
從另一個版本重新安裝 Global Package
1
nvm reinstall-packages 16.14.0
其他使用方法請參考 https://github.com/nvm-sh/nvm
htop
終端機的「工作管理員」
安裝:透過套件管理工具安裝 htop即可
1 | sudo apt install htop |
簡易使用說明:
F2
: 設定 htopF5
: 切換清單 / 樹狀檢視F9
: 終止程式F10
: 離開 htopH
: 切換執行緒顯示(綠色的那幾行)
Nerd Font
Nerd font 是有名的字型模組,包含了許多圖示,可以在文字介面上擁有豐富的圖示,目前常見的等寬字型都有收錄。
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
安裝
透過 oh-my-posh 自動化安裝
oh-my-posh 有提供安裝字型的指令,目前為 Beta 階段
1
oh-my-posh font install
⚠️ 需使用系統管理員權限執行終端機,才能安裝字型
此時會有字型選擇清單,選擇一個你習慣使用的字型,我的話會選
JetBrainsMono
,按下 Enter 就會開始下載安裝自行安裝 Nerd Font
到以下連結下載您想要的字型
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
Windows
解壓縮後安裝含
NerdFontMono
的字型安裝,如果有很多個,選其中一個(Regular)安裝即可Brew (Mac)
在終端機執行以下指令
1
2brew tap homebrew/cask-fonts
brew install --cask font-<FONT NAME>-nerd-font
其中
<FONT NAME>
以字型的名字代替Linux 安裝方式(以 Ubuntu / Debian 為例)
/usr/local/share/fonts/
是系統字型路徑~/.local/share/fonts/
或~/.fonts
是目前使用者字型路徑下載想要的字型 (下載按鈕的連結,以 JetBrains Mono 為例)
1
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/JetBrainsMono.zip
將下載的字型解壓縮到
~/.fonts
1
2mkdir ~/.fonts
unzip JetBrainsMono.zip -d ~/.fonts重新載入字型快取
1
fc-cache -fv
參考來源:
套用字型設定
Windows Terminal
開啟設定,選擇「預設值」設定檔或「PowerShell」設定檔(建議改「預設值」)
進入外觀設定,將字型改成剛剛安裝的 Nerd Font Mono 字型後,並按下「儲存」
Gnome Shell
按下右上角的選單按鈕,並選擇偏好設定
選擇目前使用的設定檔,將「自訂字型」勾起來,並按一下右邊的按鈕
選擇含「Nerd Font Mono」的字型後按下「選取」
Konsole
⚠️ 安裝字型後需先重新啟動 Konsole
進入設定 > 編輯目前的設定檔
選擇外觀,並按一下字型右邊的選擇按鈕
選擇含「Nerd Font Mono」的字型後按下「確定」
Visual Studio Code
開啟設定
搜尋
terminal.integrated.fontFamily
輸入剛剛安裝的字型名稱
後記
本文是我在 2023/08 寫的公開筆記,有興趣看原文的話可以到 Notion 上看,有任何問題歡迎提出。
- Title: 終端機個人化、實用工具推薦
- Author: jimchen5209
- Created at : 2024-03-05 12:18:50
- Updated at : 2024-11-27 14:50:30
- Link: https://blog.lce-lab.dev/2024/03/05/終端機個人化、實用工具推薦/
- License: This work is licensed under CC BY-NC-SA 4.0.