終端Terminal實戰(zhàn)

本文主要介紹終端和 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)限。一般一臺計算機上只有一個控制臺,但可以連很多終端。 CONSOLETTY 都算是終端,硬要說區(qū)別就是親兒子和干兒子或 root 和非 root 用戶的關(guān)系。

終端模擬器

終端模擬器 Terminal Emulator 也叫終端仿真器。它加上鍵盤和顯示器共同構(gòu)建了以前的終端。它的工作流程如下:

  1. 捕獲鍵盤輸入( STDIN )
  2. 將輸入發(fā)送給命令行程序( SHELL )
  3. 拿到命令行程序的輸出結(jié)果( STDOUT 和 STDERR )
  4. 調(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=1
      
      Alt text
    • 終端顯示行數(shù)

      Alt text

shell

shell 也叫命令解釋器,它通過解析命令來調(diào)用系統(tǒng)調(diào)用和 API 來操作內(nèi)核,進而讀寫硬件完成任務(wù)。

Alt text

它可以通過圖形化 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,并且提供更多的功能。它提供以下功能:

  1. 內(nèi)置的拼寫校正
  2. 改進的命令行完成
  3. 主題支持
  4. 各種各樣的可加載插件

其安裝和切換命令如下:

# 安裝
brew install zsh
# 切換
chsh -s /bin/zsh

oh-my-zsh

oh-my-zsh 是一個工具,它可以幫助用戶更輕松的啟用 zsh 插件,在預(yù)制的主題間切換,快速自定義 shell。

  • 安裝 oh-my-zsh

    sh -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-autosuggestions

    git 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.sh
    
    Alt text

參考文獻

  1. 命令行界面 (CLI)、終端 (Terminal)、Shell、TTY,傻傻分不清楚?
  2. iterm2官網(wǎng)
  3. iTerm2 + Oh My Zsh 打造舒適終端體驗
  4. Mac終端工具

本篇文章由一文多發(fā)平臺ArtiPub自動發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 光陰荏苒,日月如梭。 如何把有限的時間和精力用在有意義的事情上是人類無法逃避的問題。作為 macOS daily ...
    楓影JustinYan閱讀 740評論 0 0
  • 1、Shell介紹 1.1、何為shell 關(guān)于shell,一個廣義的解釋就是在用戶與操作系統(tǒng)之間,提供一個工具或...
    另一個理瑜閱讀 9,110評論 0 4
  • [TOC] 前言 在類 UNIX 系統(tǒng)(比如 Linux,Mac)環(huán)境中,我們常常在終端中輸入命令與系統(tǒng)進行交互,...
    Whyn閱讀 33,933評論 0 10
  • 工欲善其事,必先利其器。工欲利其器,必先思其行。每次換電腦的時候都得重新倒騰一遍,由于時間過得比較久老是忘記,所以...
    程序媛coco閱讀 970評論 0 0
  • zsh+on-my-zsh配置教程指南(程序員必備)【已備份】 [oh-my-zsh讓終端好用到飛起~](http...
    凌空_lingkong閱讀 10,766評論 0 0

友情鏈接更多精彩內(nèi)容