在Windows系統和Linux系統中,如何打造一個好終端?

2020-12-16 讀芯術

全文共6894字,預計學習時長18分鐘

圖源:unsplash

在十多年的開發生涯中,筆者熱衷於使用shell。命令永遠不變,筆者可以創建可靠、快捷的自定義快捷方式,但默認值欠佳。閱讀本文將帶你了解如何在系統上獲得很棒的shell +終端。

術語

shell用於執行命令。終端(terminal)是運行shell的包裝器。在終端上可以設置字體、字體大小、配色方案以及支持多個選項卡。終端仿真器的示例包括GNOME終端、KDE的Konsole,Terminator和XTerm。對於Linux系統,筆者建議保留默認值。Windows適用Windows Terminal;Mac適用iTerm2。

(Linux上的四個終端仿真器(Gnome Terminal、Konsole、XTerm、Terminator)。XTerm不直接支持標籤。其他的打開了2個選項卡。它們都運行Bash shell。| 圖源:MartinThoma)

系統的Shell包括ZSH、Bash、fish。Windows系統典型的shell是PowerShell。可以通過執行echo $ 0來查看正在運行的shell。Linux系統使用更多的是Bash shell。

(在Gnome終端中的三個Linux shell(ZSH、Bash、fish),ZSH shell經過了大量更改;Bash shell和fish shell顯示默認值。可見,fish shell具有其他兩個shell缺少的內聯自動提示功能。| 圖源:Martin Thoma。)

每個shell都有提示符(prompt)。提示符是光標之前寫入的內容。它表示可以輸入指令並提供有用的背景信息。在上面的示例中,提示符包含用戶名moose,當前計算機pc08 ,當前工作目錄 ~/GitHub/MartinThoma/flake8-simplify,活躍git分支feature/19以及進行了±修改的事實。

字體

無論選擇哪個,字體都很重要。你可能想要一個等寬字體,相信我一定要安裝powerline字體。powerline字體能使shell使用像圖像的字符。它可以使提示符效果更好。筆者比較喜歡UbuntuMono和DroidSans Mono:

上面一行是Ubuntu Mono,下面是Droid Sans Mono。二者都不錯,Ubuntu Mono略勝一籌。| 圖源:Martin Thoma

也有Fira Code、Jetbrains Mono 這樣的「編程字體」。筆者不喜歡它們,因為很難識別所寫內容。

Windows終端

首先確保已安裝Windows終端。啟動終端並找到設置。它是這個指下的「小箭頭」:

點擊「Settings」。| 圖源:MartinThoma

可以選擇JSON文件隨自己喜好而更改。如下:

// This file was initially generated byWindows Terminal 1.2.2381.0// It should still be usable in newerversions, but newer versions might have additional// settings, help text, or changes thatyou will not see unless you clear this file// and let us generate a new one foryou.// To view thedefault settings, hold "alt" while clicking onthe "Settings" button.// For documentation on thesesettings, see: https://aka.ms/terminal-documentation { "$schema": "https://aka.ms/terminal-profiles-schema", "defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}", "initialCols": 120, "initialRows": 30, //Youcanaddmoreglobalapplicationsettingshere.//Tolearnmoreaboutglobalsettings,visithttps://aka.ms/terminal-global-settings//Ifenabled, selectionsareautomaticallycopiedtoyourclipboard."copyOnSelect": false, //Ifenabled,formatteddataisalsocopiedtoyourclipboard"copyFormatting": false, //Aprofilespecifiesacommandtoexecutepairedwithinformationabouthowitshouldlookandfeel.//Eachoneofthemwillappearinthe'NewTab'dropdown,// andcanbeinvokedfromthecommandlinewith`wt.exe-pxxx`//Tolearnmoreaboutprofiles,visithttps://aka.ms/terminal-profile-settings"profiles": { "defaults": { //Putsettingsherethatyouwanttoapplytoallprofiles. }, "list": [ { //Makechangesheretothepowershell.exeprofile."guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", "name": "WindowsPowerShell", "commandline": "powershell.exe", "hidden": false, "fontFace": "DejaVuSans Mono for Powerline" }, { //Makechangesheretothecmd.exeprofile."guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", "name": "CommandPrompt", "commandline": "cmd.exe", "hidden": false }, { "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}", "hidden": false, "name": "Ubuntu", "source": "Windows.Terminal.Wsl", "fontFace": "DejaVuSans Mono for Powerline", "colorScheme": "Solarized Dark", }, { "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}", "hidden": false, "name": "AzureCloud Shell", "source": "Windows.Terminal.Azure" } ] }, //Addcustomcolorschemestothisarray.//Tolearnmoreaboutcolorschemes,visithttps://aka.ms/terminal-color-schemes"schemes": [ { "background": "#073642", "black": "#073642", "blue": "#268BD2", "brightBlack": "#002B36", "brightBlue": "#839496", "brightCyan": "#93A1A1", "brightGreen": "#586E75", "brightPurple": "#6C71C4", "brightRed": "#CB4B16", "brightWhite": "#FDF6E3", "brightYellow": "#657B83", "cyan": "#2AA198", "foreground": "#FDF6E3", "green": "#859900", "name": "Solarized Dark", "purple": "#D33682", "red": "#D30102", "white": "#EEE8D5", "yellow": "#B58900" }, { "background": "#FDF6E3", "black": "#073642", "blue": "#268BD2", "brightBlack": "#002B36", "brightBlue": "#839496", "brightCyan": "#93A1A1", "brightGreen": "#586E75", "brightPurple": "#6C71C4", "brightRed": "#CB4B16", "brightWhite": "#FDF6E3", "brightYellow": "#657B83", "cyan": "#2AA198", "foreground": "#073642", "green": "#859900", "name": "Solarized Light", "purple": "#D33682", "red": "#D30102", "white": "#EEE8D5", "yellow": "#B58900" }, ], //Addcustomkeybindingstothisarray.//Tounbindakeycombinationfromyourdefaults.json,setthecommandto"unbound".//Tolearnmoreaboutkeybindings,visithttps://aka.ms/terminal-keybindings"keybindings": [ //CopyandpasteareboundtoCtrl+Shift+CandCtrl+Shift+Vinyourdefaults.json.//ThesetwolinesadditionallybindthemtoCtrl+CandCtrl+V.//Tolearnmoreaboutselection, visithttps://aka.ms/terminal-selection { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" }, { "command": "paste", "keys": "ctrl+v" }, //PressCtrl+Shift+Ftoopenthesearchbox { "command": "find", "keys": "ctrl+shift+f" }, //PressAlt+Shift+Dtoopenanewpane.//-"split":"auto"makesthispaneopeninthedirectionthatprovidesthemostsurfacearea.//-"splitMode":"duplicate"makesthenewpaneusethefocusedpane'sprofile.//Tolearnmoreaboutpanes, visithttps://aka.ms/terminal-panes { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" }, {"command": "closeTab", "keys": "ctrl+w"}, {"command": "newTab", "keys": "ctrl+t"} ] }

下載並安裝所有4種「 DejaVu Sans Mono Powerline」字體。在已知的所有系統上,字體安裝都是一個流程:雙擊字體,然後跳出一個有「安裝」按鈕的窗口。

Linux和Windows終端:Aminal

Aminal是用Go語言編寫的終端仿真器。可用於Linux、Windows和Mac。它允許通過配置文件完成顏色、鍵盤快捷鍵等配置。首先需要在系統中安裝並配置Go語言。Ubuntu的示例如下:

$ sudo apt-get install golang libgl1-mesa-dev xorg-dev$export GOPATH="$HOME/go"$export GOBIN=$(go env GOPATH)/bin

接著就可以安裝並運行aminal了:

$ go get -u github.com/liamg/aminal$ aminal

Linux系統:Gnome終端

可以通過編輯文件來自定義Gnome終端。這裡筆者用12號字設置了Ubuntu Mono衍生的powerline常規字體。

圖源:Martin Thoma

命令是為了zsh而設置,因為這是筆者最喜歡的shell。

圖源:Martin Thoma

顏色設置為solarized dark(從左到右、從上到下)

· 背景: #2e3436 / #555753

· 深紅: #cc0000 / 淺紅: ef2929

· 深綠: #4e9a06 / 淺綠: #8ae234

· 深黃: #c4a000 / 淺黃: #fce94f

· 深藍: #3465a4 / 淺藍: #729fcf

· 深紫: #75507b / 淺紫: #ad7fa8

· 深藍綠: #06989a / 淺藍綠: #34e2e2

· 深灰: #d3d7cf /淺灰: #eeeeec

Linux系統:fish shell

安裝fish shell:

sudo apt-get install fish

更改終端仿真器的默認shell為fish。在Gnome終端叫做「自定義命令」

接著安裝「Oh My Fish」

curl -L https://get.oh-my.fish | fish

然後將主題設置為agnoster:

omfinstall agnosteromftheme agnoster

別名

要使終端表現出色,核心部分的命令就要簡短。因此為命令創建一個別名,即簡短版的原命令。最常見是將目錄更改為上一級。假如是在 /home/user/foo/bar中,則要轉到 /home/user/foo。大多數shell都必須輸入cd .. 。我喜歡將其縮寫為 ..。所以別名就是alias ..='cd ..' 。

語法可能不同,具體取決於shell。對於Bash、ZSH和fish:

aliasshort='long'

在bash中要插入到 ~/.bashrc,ZSH中則是 ~/.zshrc,fish中也不相同。一些別名如下:

# Shorten thingsalias ..='cd ..'alias ...='cd ../../'alias ll='ls -alF'alias la='ls -A'alias l='ls -CF'alias c='clear'# If your terminal supports colors, use them!alias ls='ls --color=auto'alias grep='grep --color=auto'alias fgrep='fgrep --color=auto'alias egrep='egrep --color=auto'alias diff='colordiff'# Works only if you have notify-sendalias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echoterminal || echo error)" "$(history|tail -n1|sed -e'\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

總結一下:

· 使用不錯的終端仿真器。建議Linux系統使用Gnome終端,Mac系統使用iTerm 2,Windows系統使用Windows終端。

· 安裝比較好的powerline字體,比如Ubuntu Mono Powerline。

· 在終端仿真器中按照喜好調整字體、字號以及顏色。

· 安裝一個好的shell。建議Linux系統使用fish shell,Windows系統使用PowerShell。

· 按需調整shell的提示符。筆者個人喜歡agnoster主題。

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • linux和windows系統的區別
    但不一樣的是linux是開源系統,他是UNIX作業系統中的一種自由和開放原始碼,任何人都可以自由使用、完全不受任何限制,並且是免費的,而正版的Windows是需要自費的。為什麼要建議大家使用linux而不是Windows呢,不僅僅是因為金錢問題,還因為倆個字安全!
  • linux系統中通過dos2unix命令轉換windows系統中編輯的文件
    使用過linux系統的朋友都知道,linux和windows換行符是不同的,Windows格式文件的換行符為\r\n ,而Unix&Linux文件的換行符為\n. dos2unix命令就是將dos文件轉換為unix、linux格式 ,其實就是dos2unix命令將文件中的\
  • Linux和windows系統之間的區別
    相比於不開源的Windows和MacOS,Linux將是程式設計師們施展拳腳的重要根據地。目前,我們常見的網絡設備的作業系統基本都是使用Linux,比如安卓系統、銀行伺服器、企業erp系統伺服器等等都是使用的Linux,它們正式利用了Linux穩定性和安全性高的特點。
  • deepin使用遠程工具控制windows系統
    1、在應用商店裡查找「遠程桌面查看器」,找到相應軟體後,點擊下載即可安裝在deepin作業系統中。2、安裝完成後,打開遠程桌面查看器軟體。界面如下:3、遠程菜單欄中,有連接功能,也就是連接遠程主機使用的功能,工具欄第一項也是它。最近連接會記錄常用的連接地址,方便使用。
  • linux 虛擬主機好嗎
    linux 虛擬主機好嗎?linux 虛擬主機是採用Linux系統搭建的虛擬主機,是企業和個人都非常喜歡使用的虛擬主機種類。運行穩定,對軟體的兼容遠超Windows系統。安全透明linux 虛擬主機因為所有的代碼都是透明可見的,易於查找問題、bug,所以能最大限度的檢查系統中的錯誤,保證系統正常運行。同時由於所有代碼都是可以查看的,一旦發生了問題,也可以第一時間調整代碼,修正錯誤,這是windows系統所不具備的優勢。
  • 網站伺服器選擇windows主機好還是linux主機好
    市場上的網站空間按系統來分可以劃分成兩大類——Windows和Linux,那他們哪個好呢?哪個更能讓你的網站高效運作呢?現在,我從需求性、穩定性、操作性、安全性、性價比來分析一番,然後您就知道該選哪款空間了。
  • 小白一鍵在線重裝windows系統,自己獨立重裝系統,從此告別電腦店
    如果你使用過小白,你已經知道了小白可以幫助你將電腦的系統煥然一新,如果你還不了解小白,那麼今天將帶你認識一下自己是如何將電腦系統重裝的。但其實,網上重裝系統早已經是免費開放給大家使用的,軟體和教程都是免費分享給大家自主學習。收藏好這篇文章,你的電腦一定會用的上。
  • 如何學習Linux,需要找培訓機構嗎?我們來聊一聊
    如何學習Linux,需要找培訓機構嗎?學習linux先確認一個問題:自己學Linux要做什麼,達到什麼程度(基礎、中級、高級)?如何學習Linux,需要找培訓機構嗎?開發人員:開發工作中需要用到Linux,了解linux的基礎操作的話同上;如果你涉及到Linux方向的開發,那麼就要學習linux的一些系統原理,找一些linux系統原理和內核的書籍或教程。
  • 如何設置windows系統字體的大小?
    前幾天有粉絲問蟈蟈,如何設置系統的字體大小?windows默認字體大小對於部分視力有問題的用戶來說,不是很友好。windows系統也提供了設置字體大小這一功能,為此,蟈蟈就來給大家介紹一下如何設置windows字體大小,本文以win10、win7為例,給大家介紹,希望對你有所幫助!一、win10 系統字體大小設置步驟1、首先進入win10系統桌面,點擊桌面左下角的開始按鈕,進入下一步。
  • Linux系統下Java通過shell腳本監控重啟服務
    簡介 最近運維人員提出需求,增加一個運維頁面, 查詢當前的業務進程信息包括:進程名稱、啟動命令、啟動時間、運行時間等,可以通過頁面點擊重啟按鈕,可以重啟後端的一系列系統進程。
  • linux實戰案例-快速查找和刪除進程的方法
    #linux,無終端的為?PID: 當前進程ID%CPU:佔用CPU的比例%MEM:佔用內存的比例VSZ:進程使用的虛擬內存量RSS: 固有內存量TTY: 進程運行的終端信息,無終端的為?>或者killall "進程名"接下來擴充一個windows系統下根據埠找到進程並關閉的方法1、找到埠號對應的進程netstat -ano | findstr "8888"結果如下
  • 學習Linux系統需要明白的一些事情
    直到有一次找工作的時候,看見一個公司招運維人員,抱著試試的態度去跟面試官了解了解,比較幸運的是人家願意試用3個月,然後就正式邁出人生職業的第一步,在實習當中才接觸到linux,然後跟著師父一步一步的深入了解linux,我也以我6年的運維經歷及學習linux的經驗跟大夥分享下我的一些看法,當然,在IT行業,分享是一種精神,也是一種美德。
  • 如何安裝ubuntu kylin(優麒麟)系統?
    對我來說,毋庸置疑是個好消息,QQ和微信已經在Linux上出現,Linux也許真的能在個人桌面上替代windows。接下來是如何裝系統的過程,雖然是以優麒麟為例,但ventoy是多合一U盤啟動器,所以你可以完全按下面的方法去安裝其它發行版,只有使用的鏡像包不同而已,其它步驟完全一樣。正文Ventoy 多合一啟動盤製作工具,可以將多個系統鏡像(如 Win、Linux)裝在1個U盤裡。WePe和Ventoy對比。
  • win10和win7系統到底誰更流暢?你用的什麼系統?
    系統的選擇不僅影響一臺電腦穩定性,也對電腦硬體本身有一定的要求,常見的作業系統有windows作業系統、IOS作業系統、linux作業系統等,今天李叔主要分析一下windows作業系統中win7和win10誰更好用?誰更流暢?
  • Unix和Linux作業系統有什麼區別?
    是的Unix系統可移植性大大提高。所以才說是這位兩位大神創造了Unix系統。②、Linux系統淵源而Linux作業系統的起源則和Unix有關係。它是由李納斯託瓦茲在讀大學的時候編寫出來的。它之所以要開發linux系統,是因為它覺得教學用的Unix太難用了。於是就參考unix系統的特點和功能,開發了一個Linux系統。
  • 安全模式下如何重裝Windows系統?安全模式重新安裝系統教程
    windows作業系統奔潰了,已經無法進入桌面中了,而手上也沒有U盤系統工具,就算有U盤,沒有製作成U盤系統工具也需要其它電腦上先製作成U盤工具才可以使用,遇到這種情況下就無法重新做系統了。但是先不要急,我們可以通過安全模式來重新安裝系統。那麼安全模式下如何重裝Windows系統?
  • 如何將 Linux 終端中命令的輸出保存到文件中 | Linux 中國
    當然你可以在 Linux 終端中複製和粘貼,但是有更好的方法可以在 Linux 命令行中保存 shell 腳本或命令的輸出,讓我演示給你看。,它會在終端中列印輸出方便你立即查看。 有時你需要將輸出保存到文件中以備將來參考。當然你可以在 Linux 終端中複製和粘貼,但是有更好的方法可以在 Linux 命令行中保存 shell 腳本或命令的輸出,讓我演示給你看。 方法 1:使用重定向將命令輸出保存到文件中 你可以在 Linux 中使用重定向來達成目的。
  • linux各個目錄代表什麼
    /boot 刪除了 必須重啟了 只能通過網頁重新安裝系統和設置密碼了 搭建好的LNMP環境和博客沒有了...下次重新搭建了 因為之前試過了 passwd 這個命令 修改密碼這個命令,不全現在補上.,用ls來查看時,連結文件的標誌用l開頭,而文件後以"->"指向所連結的文件;--特殊文件:如磁碟、終端、印表機等都在文件系統中表示出來,常放在/dev目錄內;可以用file命令來識別。
  • 鴻蒙系統和蘋果系統哪個好
    打開APP 鴻蒙系統和蘋果系統哪個好 網絡整理 發表於 2020-07-24 11:43:41   鴻蒙不僅是我國第一款真正意義上的國產作業系統,也是世界上第一款將電腦、平板、手機、手錶和電視等眾多電子整合成一個作業系統,這才是鴻蒙系統的過人和偉大之處。
  • Linux環境配置VS2015詳細教程
    VS2015推出了跨平臺開發,其中包括了對Linux程序開發的支持,最近剛好需要開發linux程序,對其進行了一些研究。系統鏡像可以選擇自己熟悉的版本,下文的介紹將以VMware和ubuntu系統為準。