本文主要介紹終端和 shell 的一些基本概念,并著重介紹了 zsh - 目前最強大方便的 shell 以及它的配置,希望可以提高我們碼農(nóng)的工作效率。
終端
終端 Terminal 是一種用于與計算機進行交互的輸入輸出設(shè)備,它本身不提供運算處理功能。在大型機和小型機的時代,計算機是非常昂貴巨大的。通常計算機會被安置在單獨的房間里,而操作計算機的人在另外的房間通過終端設(shè)備 TTY / CONSOLE 與計算機進行交互。現(xiàn)在由于個人電腦的普及,基本很難看到專門的終端設(shè)備。負(fù)責(zé)輸入的鍵盤,負(fù)責(zé)輸出的顯示器,再加上一個與硬件基本無關(guān)的虛擬終端終端模擬器這三者共同構(gòu)成了傳統(tǒng)意義上的終端。
TIPS: 埃尼阿克
埃尼阿克
ENIAC是世界上第一臺現(xiàn)代電子數(shù)字計算機,誕生于1946 年 2 月 14 號美國賓夕法尼亞大學(xué)。
它長 30.48 米,寬 6 米,高 2.4 米,占地面積約 170 平方米,30 個操作臺,重達(dá) 30 英噸,耗電量 150 千瓦,造價 48 萬美元。計算速度是每秒 5000 次加法或 400 次乘法。
終端 TTY
TTY 是 TeleTYpe 的縮寫,叫電傳打字機,一個類似電報機的設(shè)備。這個也就是最早期的終端。
[圖片上傳失敗...(image-672748-1610644287465)]
它原本的用途是在電報線路上收發(fā)電報,但鑒于它既能通過鍵盤發(fā)送信號,又能將接受到的信號打印在紙帶上,最最最重要的是價格低廉,它就被 Unix 的創(chuàng)始人 Ken Thompson 和 Dennis Ritchie 用于連接到計算機上,讓多個用戶都可以通過終端登陸操作主機,所以它就成了第一個 Unix 終端。
控制臺 CONSOLE
CONSOLE 是控制臺的意思,它是一種特殊的終端,特殊的地方是它和計算機主體是一體的,是專門用來管理主機的,只能給系統(tǒng)管理員使用,有著比普通終端高的權(quán)限。一般一臺計算機上只有一個控制臺,但可以連很多終端。 CONSOLE 和 TTY 都算是終端,硬要說區(qū)別就是親兒子和干兒子或 root 和非 root 用戶的關(guān)系。
終端模擬器
終端模擬器 Terminal Emulator 也叫終端仿真器。它加上鍵盤和顯示器共同構(gòu)建了以前的終端。它的工作流程如下:
- 捕獲鍵盤輸入( STDIN )
- 將輸入發(fā)送給命令行程序( SHELL )
- 拿到命令行程序的輸出結(jié)果( STDOUT 和 STDERR )
- 調(diào)用圖形接口,將輸出結(jié)果渲染到顯示器上
終端窗口和虛擬控制臺
終端模擬器分為兩種,一種是終端窗口,就是我們一般運行在圖形用戶界面里的,像 GNU/Linux 下的 gnome-termial, mac 下的 iterm2, windows 下的 wsl-terminal。另一種叫虛擬控制臺,像 Ubuntu 系統(tǒng)中,通過 Ctrl+Alt+F1,F2...F6 等組合鍵可以切換出全屏的終端界面( Ctrl+Alt+F7 可以切回圖形界面),這就是虛擬控制臺。它是直接由操作系統(tǒng)內(nèi)核直接提供的。
實用終端
mac 神器 - iterm2
-
安裝
# 通過brew安裝 brew cask install iterm2 # 通過iterm2官網(wǎng)下載安裝 -
配置
-
字體
Courier New+meslo# 拉取字體廠庫 git clone https://github.com/powerline/fonts.git --depth=1 # install 安裝 cd fonts && ./install.sh -
終端配色
# 拉取終端配色廠庫 git clone https://github.com/mbadolato/iTerm2-Color-Schemes.git --depth=1Alt text -
終端顯示行數(shù)
Alt text
-
shell
shell 也叫命令解釋器,它通過解析命令來調(diào)用系統(tǒng)調(diào)用和 API 來操作內(nèi)核,進而讀寫硬件完成任務(wù)。

它可以通過圖形化 shell,像 windows 里的文件管理器 Explorer.exe, Linux 的桌面環(huán)境 GNOME, KDE 等完成操作,也可以通過命令行 shell,像 windows 里的 cmd.exe, Linux 里的 bash, zsh 等。
zsh
bash 在 2019 年前幾乎是所有類型操作系統(tǒng)的默認(rèn) shell,但是 2019 年 Mac 的 Catalina 將 zsh 設(shè)置為默認(rèn)的 shell。為什么?因為 zsh 完全兼容 bash,并且提供更多的功能。它提供以下功能:
- 內(nèi)置的拼寫校正
- 改進的命令行完成
- 主題支持
- 各種各樣的可加載插件
其安裝和切換命令如下:
# 安裝
brew install zsh
# 切換
chsh -s /bin/zsh
oh-my-zsh
oh-my-zsh 是一個工具,它可以幫助用戶更輕松的啟用 zsh 插件,在預(yù)制的主題間切換,快速自定義 shell。
-
安裝
oh-my-zshsh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 配置主題 annoster
插件
插件為 zsh 提供了無限可能。
git
默認(rèn)安裝,會提示分支等信息-
語義高亮
zsh-syntax-highlighting# git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting -
自動提示
zsh-autosuggestionsgit clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions -
自動跳轉(zhuǎn)
autojump# 安裝autojump brew install autojump # 在~/.zshrc中添加 [ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.shAlt text
參考文獻
本篇文章由一文多發(fā)平臺ArtiPub自動發(fā)布


