22 款終端生產(chǎn)力工具,效率飛起!
點(diǎn)擊上方藍(lán)色“小哈學(xué)Java”,選擇“設(shè)為星標(biāo)”
回復(fù)“資源”獲取獨(dú)家整理的學(xué)習(xí)資料!


來(lái)源:switowski.com/blog/favorite-cli-tools
程序員在從事開發(fā)時(shí),終端CLI工具的使用必不可少,往往都是發(fā)展工具,所以今天在此給大家推薦一下比較好用的終端工具。先給大家列個(gè)推薦清單,如下圖。

高頻CLI工具推薦
1,魚殼
過去,我曾經(jīng)使用過Bash和Z Shell,而現(xiàn)在,這個(gè)魚Shell,也是一個(gè)非常優(yōu)秀的終端Shell工具,擁有很多開箱即用的功能,例如語(yǔ)法自動(dòng)推薦補(bǔ)全,語(yǔ)法高亮顯示或使用快捷鍵在最近訪問的文件夾之間來(lái)回切換。

下載地址:https://fishshell.com/
2,星際飛船
如果必須要從本章文章中選擇一個(gè)我最喜歡的終端工具-那非Starship莫屬。Starship可以適用于任何Shell。您只需要安裝它,然后在相應(yīng)的配置文件.bashrc / .zshrc / config .fish添加一行配置,剩下的工作交給它來(lái)完成就好了。

它可以做到:
根據(jù)您是否在代碼倉(cāng)庫(kù)中添加了新文件,是否修改了文件,是否臨時(shí)存了文件等情況,用相應(yīng)的符號(hào)表示git倉(cāng)庫(kù)的狀態(tài)。 根據(jù)你所在的Python項(xiàng)目目錄,展示Python的版本號(hào),這也適用于Go / Node / Rust / Elm等其他編程語(yǔ)言環(huán)境。 展示上一個(gè)命令執(zhí)行所用的時(shí)間,指令運(yùn)行時(shí)間必須在毫米等級(jí)。 如果上一個(gè)命令執(zhí)行失敗,會(huì)展示相應(yīng)的錯(cuò)誤錯(cuò)誤。

但是,它能以更友好友好的形式智能地給你呈現(xiàn)!這樣,如果你不在git存儲(chǔ)庫(kù)中,可以隱藏git信息。如果您不在Python項(xiàng)目中,則不會(huì)有Python版本信息,因?yàn)轱@示它沒有什么意義。它永遠(yuǎn)不會(huì)給你展示多余的信息,始終保持終端的美觀,優(yōu)雅和簡(jiǎn)約。
下載地址:https://starship.rs/
3,z
它會(huì)記住你訪問的歷史文件夾,經(jīng)過短暫的學(xué)習(xí)后,你就可以使用z path_of_the_folder_name命令在目錄之間替換了。

例如,如果我經(jīng)常訪問?/ work / src / projects,我只需要運(yùn)行z pro,就可以立馬替換到那里。z的原理參考了frecency算法-一個(gè)基于統(tǒng)計(jì)頻率和recency進(jìn)行分析的算法。如果它提高了我在常用的不同文件路徑之間轉(zhuǎn)換切換的效率,幫我節(jié)省了鍵盤擊鍵次數(shù)以及大量的路徑記憶。它存儲(chǔ)了你不想使用的路徑文件夾,你隨時(shí)可以手動(dòng)將其刪除。
下載地址:https://github.com/rupa/z
4,fzf
fzf — Fuzzy finder,即模糊查找器。它是一種通用工具,可讓您使用模糊搜索來(lái)查找文件,歷史命令,進(jìn)程,git提交等。您鍵入一些字母,它會(huì)嘗試匹配結(jié)果列表中任何位置的字母。輸入的字母越多,結(jié)果也就越準(zhǔn)確。

下載地址:https://github.com/junegunn/fzf
5,fd

上面動(dòng)圖是find命令(左)和fd命令(右)的使用對(duì)比。
這類系統(tǒng)自帶的find命令,但使用起來(lái)更簡(jiǎn)單,查找速度改變,并具有良好的替代設(shè)置。
例如您想找一個(gè)稱為“發(fā)票”的文件,但不確定文件的擴(kuò)展名,還是查找一個(gè)放置所有發(fā)票的目錄,而不單是一個(gè)文件。您可以擼起袖子,開始為find命令編寫那些復(fù)雜的正則表達(dá)式,也可以直接命令行運(yùn)行fd發(fā)票。
默認(rèn)情況下,fd會(huì)忽略隱藏的以及在.gitignore列出的文件和目錄。大多數(shù)時(shí)候,這也是我們想要的,但是在極少數(shù)特殊情況下,如果需要更多此功能時(shí),我會(huì)給該命令設(shè)置一個(gè)別名:fda ='fd -IH'。
你會(huì)發(fā)現(xiàn),fd命令輸出的顏色配置很漂亮,而且根據(jù)基準(zhǔn)測(cè)試(上述GIF),它的執(zhí)行速度甚至超過find命令的還要快。
下載地址:https://github.com/sharkdp/fd
6,ripgrep

上圖為grep(左)與rg(右)命令執(zhí)行時(shí)的對(duì)比。
與上述fd指令類似,ripgrep是grep命令的替代方法,不過ripgrep的執(zhí)行速度轉(zhuǎn)換,并且具有完善的配置和豐富的彩色輸出。
下載地址:https://github.com/BurntSushi/ripgrep
7,htop和一目了然
在Linux或Mac上顯示進(jìn)程運(yùn)行狀態(tài)信息最常用的工具是我們熟悉的top,它是每位系統(tǒng)管理員的好幫手。

htop工具是top工具的絕佳替代品。
top工具是非常基礎(chǔ)的監(jiān)控工具,提供的功能有限,因此很多人轉(zhuǎn)去使用htop。htop比起top,優(yōu)勢(shì)很明顯-除了功能進(jìn)一步完善之外,它的色彩搭配也很豐富,整體上使用起來(lái)更加友好。

可以一覽無(wú)余,還可以讓你一目了然地快速了解系統(tǒng)當(dāng)前狀態(tài)。
glances是htop的補(bǔ)充工具。除了列出的所有進(jìn)程及其CPU和內(nèi)存使用情況之外,它還可以顯示有關(guān)系統(tǒng)的其他信息,如下:
網(wǎng)絡(luò)及磁盤使用情況 文件系統(tǒng)已使用的空間和總空間 來(lái)自不同傳感器(例如電池)的數(shù)據(jù) 以及最近消耗過多資源的進(jìn)展列表
htop下載地址:https://hisham.hm/htop/ glances下載地址:https://nicolargo.github.io/glances/
8,virtualenv和virtualfish
Virtualenv是用于在Python中創(chuàng)建虛擬環(huán)境的工具。

VirtualFish則是Fish Shell的虛擬環(huán)境管理器。它提供了許多命令來(lái)執(zhí)行快速創(chuàng)建,列出或刪除虛擬環(huán)境等操作。
virtualenv下載地址:https://pypi.org/project/virtualenv/ virtualfish下載地址:https://github.com/justinmayer/virtualfish
9,pyenv,nodenv和rbenv
pyenv可以輕松實(shí)現(xiàn)Python版本的切換。

Pyenv,nodenv和rubyenv是用于管理計(jì)算機(jī)上不同版本的Python,Node和Ruby的工具。
假設(shè),您正在計(jì)算機(jī)上安裝兩個(gè)版本的Python。或者,您正在使用兩個(gè)不同的Python項(xiàng)目,或者因?yàn)樘厥馇闆r仍然需要使用Python2。不同的Python版本在電腦上管理很復(fù)雜。您需要確保不同的項(xiàng)目具有正確版本的軟件依賴包。如果不小心,很容易弄亂這種脆弱的配置。
該工具為版本管理提供了很多幫助,從而使這一糟糕的夢(mèng)變得易于管理。它可以分為或“按文件夾”切換Python版本,而且每個(gè)版本都是相互隔離的。
pyenv下載地址:https://github.com/pyenv/pyenv nodenv下載地址:https://github.com/nodenv/nodenv rbenv下載地址:https://github.com/rbenv/rbenv
10,像素
Virtualenv解決了Python程序包管理中的許多問題,但是還有一個(gè)方案可以解決。如果我想在分區(qū)環(huán)境下安裝Python替代(它是一個(gè)獨(dú)立的工具,而前面提到的glance工具),那么我會(huì)遇到一系列安裝帶來(lái)的問題。在虛擬環(huán)境之外安裝重疊不是一個(gè)好主意,將來(lái)可能會(huì)導(dǎo)致意想不到不到的問題。替換,如果我決定使用虛擬環(huán)境,那么每次我要運(yùn)行程序時(shí)都需要激活該虛擬環(huán)境。這也不是最方便的解決方案。

事實(shí)證明,pipx工具可以解決上面提到的問題。以及Python軟件依賴包安裝到單獨(dú)的環(huán)境中(因此不會(huì)存在依賴項(xiàng)沖突的問題)。同時(shí),這些工具提供的CLI命令在周圍環(huán)境內(nèi)也可用。因此,我無(wú)需激活任何環(huán)境——pipx會(huì)幫我完成這個(gè)操作!
pipx下載地址:https://github.com/pipxproject/pipx
11,ctop和lazydocker

ctop 的實(shí)時(shí)監(jiān)控示例
當(dāng)你使用 Docker 并對(duì)其監(jiān)控時(shí),這兩個(gè)工具會(huì)很有幫助。ctop是 Docker 容器的頂級(jí)接口。它可以為你:
展示正在運(yùn)行和已停止的容器列表。 展示統(tǒng)計(jì)信息,例如內(nèi)存、CPU 使用率以及針對(duì)每個(gè)容器的其他詳細(xì)信息窗口(例如綁定的端口等其他信息)。 提供快捷菜單,方便快速停止、殺掉指定容器進(jìn)程或顯示給定容器的日志。
這比你嘗試從docker ps命令中找出所有這些信息要方便多了。

lazydocker也是一個(gè)非常好用的 Docker 工具
lazydocker它是一個(gè)非常成熟的擁有終端 UI 界面的工具,提供了非常豐富的功能用于管理 Docker。
ctop 下載地址:https://github.com/bcicen/ctoplazydocker 下載地址:https://github.com/jesseduffield/lazydocker
12、Homebrew

如果使用的是 Mac,那就無(wú)需再多介紹 Homebrew 了。它是 macOS 上被業(yè)界普遍認(rèn)可的軟件包管理器。
下載地址:https://brew.sh/
13、asciinema

asciinema是可用于記錄終端會(huì)話的工具。但是,與錄制 GIF 不同,它可以讓用戶選擇并復(fù)制這些錄制中的代碼!這對(duì)于錄制編碼教程來(lái)說(shuō)十分好用。asciinema錄制的內(nèi)容,支持直接復(fù)制,十分給力。
下載地址:https://asciinema.org/
14、colordiff 和 diff-so-fancy

如果想在終端中使用diff操作(比較兩個(gè)文件之間的差異),可以放棄使用diff命令,而是使用 colordiff。colordiff輸出可以高亮顯示,因此在查看文件差異內(nèi)容時(shí)要方便得多,而不是在diff命令輸出內(nèi)容下,費(fèi)力地查看所有的“ <”和“>”符號(hào)來(lái)對(duì)比文件差異。
如果你覺得還不夠,那么推薦 diff-so-fancy。它是比colordiff更友好的一個(gè)差異對(duì)比工具。

它通過以下方式進(jìn)一步改善了文件內(nèi)容差異展示的外觀:
突出顯示每一行中差異的單詞,而不是整行 簡(jiǎn)化變更文件的標(biāo)題 去除 + 和 - 符號(hào)(顏色差異展示就夠了) 清楚地指出新行和刪除的空行
colordiff 下載地址:https://www.colordiff.org/diff-so-fancy 下載地址:https://github.com/so-fancy/diff-so-fancy
15、tree
可以通過brew install tree安裝該工具。如果要查看給定目錄的內(nèi)容,那么 tree 是執(zhí)行此操作的必備工具。它能以漂亮的樹狀結(jié)構(gòu)顯示所有子目錄及文件:
$?tree?.
.
├──?recovery.md
├──?README.md
├──?archive
├──?automator
│???├──?Open\?Iterm2.workflow
│???│???└──?Contents
│???│???????├──?Info.plist
│???│???????├──?QuickLook
│???│???????│???└──?Thumbnail.png
│???│???????└──?document.wflow
│???└──?Start\?Screen\?Saver.workflow
├──?brew-cask.sh
16、bat

類似于在終端中常用的用于顯示文件內(nèi)容的cat命令,但是bat效果更佳。
它增加了語(yǔ)法高亮顯示,git gutter 標(biāo)記(如果適用),自動(dòng)分頁(yè)(如果文件很大)等功能,并且使得輸出的內(nèi)容閱讀起來(lái)更加友好。
bat 下載地址:https://github.com/sharkdp/bat
17、httpie

如果你需要發(fā)送一些 HTTP 請(qǐng)求,但發(fā)現(xiàn)使用curl不夠直觀,那么可以嘗試一下httpie。這是一款非常好用的curl替代工具。合理的默認(rèn)配置以及簡(jiǎn)潔的語(yǔ)法使它更易于使用,命令返回也是彩色輸出。
httpie 下載地址:https://httpie.org/
18、tldr
簡(jiǎn)化版的命令幫助手冊(cè)。

“man pages”展示的信息太全面了,但是很多時(shí)候使用tldr可以更快地幫你找到特定信息,這才是用戶真正想要的。
tldr 下載地址:https://tldr.sh/
19、exa

exa是ls命令的一個(gè)可替代方案。
它色彩艷麗,還可以顯示 git 狀態(tài)等其他信息,自動(dòng)將文件大小轉(zhuǎn)換為方便人們閱讀的單位,并且所有這些都保持與ls幾乎相同的執(zhí)行速度。
exa 下載地址:https://the.exa.website/
20、litecli 和 pgcli

這是SQLite 和 PostgreSQL CLI 的解決方案。借助自動(dòng)提示和語(yǔ)法突出顯示,它們比默認(rèn)的sqlite3和psql工具要好用很多。
litecli 下載地址:https://litecli.com/pgcli 下載地址:https://www.pgcli.com/
21、mas

mas是一個(gè)用于從 App Store 安裝軟件的 CLI 工具。
mas 下載地址:https://github.com/mas-cli/mas
22、ncdu

這是在終端進(jìn)行磁盤分析時(shí)使用的工具,它使用起來(lái)簡(jiǎn)單快捷。當(dāng)需要釋放一些硬盤空間時(shí),可以使用這款工具。
ncdu 下載地址:https://dev.yorhel.nl/ncdu
總結(jié)
以上推薦工具清單很長(zhǎng),小伙伴們有什么好用的也可以安利出來(lái),一起交流進(jìn)步。
END
有熱門推薦?
1.?卸載Notepad++!事實(shí)已證明,它更牛逼……
2.?Spring Boot 集成 JWT 實(shí)現(xiàn)用戶登錄認(rèn)證
最近面試BAT,整理一份面試資料《Java面試BATJ通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。
獲取方式:點(diǎn)“在看”,關(guān)注公眾號(hào)并回復(fù)?Java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。
文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。
謝謝支持喲 (*^__^*)

