高頻CLI工具推薦(二):如何提高生產(chǎn)力?
2021-06-30
點(diǎn)擊上方的“ ”,選擇設(shè)置為“Set as Star”
優(yōu)質(zhì)文章,即時(shí)送達(dá)!
作者根據(jù)多年的終端經(jīng)驗(yàn),詳細(xì)介紹了一些實(shí)用的CLI工具,希望能幫助讀者提高工作效率。
我大部分時(shí)間都在使用終端。我覺(jué)得有必要給大家推薦一個(gè)更好的終端工具。首先,為每個(gè)人列出一個(gè)推薦清單,如下所示。
高頻CLI工具推薦
1 條魚(yú)
-毫無(wú)疑問(wèn),在終端中,它是最常用、最重要的工具。過(guò)去我用的是 Bash 和 Z,但現(xiàn)在我用的是 Fish。這是一款出色的終端工具,具有許多開(kāi)箱即用的功能,例如自動(dòng)語(yǔ)法推薦和完成、語(yǔ)法突出顯示或使用快捷鍵在最近訪問(wèn)的文件夾之間來(lái)回切換。
一方面,它非常適合初學(xué)者,因?yàn)橛脩舨恍枰M(jìn)行任何設(shè)置。另一方面,由于其使用的腳本語(yǔ)法與其他腳本不同,通常用戶無(wú)法直接粘貼從網(wǎng)上復(fù)制的腳本。您必須將不兼容的命令更改為合法的 Fish 腳本,或者啟動(dòng) Bash 會(huì)話以運(yùn)行 Bash 腳本。
#-
我可以理解這種變化背后的原因(畢竟 Bash 腳本不是一種用戶友好的語(yǔ)言),但是這種不兼容并沒(méi)有給我?guī)?lái)任何好處。我很少寫(xiě) Bash/Fish 腳本,所以我經(jīng)常忘記這些語(yǔ)法,所以每次我想使用這些腳本時(shí),我總是要從頭開(kāi)始重新學(xué)習(xí)。與 Bash 腳本相比,F(xiàn)ish 腳本的資源相對(duì)較少。我一般不會(huì)看文檔重新發(fā)明輪子,而是復(fù)制粘貼現(xiàn)成的腳本并使用。
雖然前面提到了Fish的幾個(gè)缺點(diǎn),但還是推薦大家使用。因?yàn)榍袚Q工具非常簡(jiǎn)單,值得你一試。尤其是當(dāng)你懶得自己配置,又希望用最少的配置獲得好的使用效果時(shí),那就不要錯(cuò)過(guò)了。
魚(yú)插件
您可以自己添加相關(guān)插件來(lái)擴(kuò)展Fish的功能。安裝插件最簡(jiǎn)單的方法是使用插件管理工具,例如 Oh My Fish 或。現(xiàn)在,我使用的插件管理工具是,我用它來(lái)安裝和管理三個(gè)插件:
/done-在長(zhǎng)時(shí)間運(yùn)行的腳本完成時(shí)發(fā)送通知。
/fish---一個(gè)自動(dòng)補(bǔ)全(線工具)命令的插件。
fzf-一個(gè)將 fzf 工具與 Fish 集成的插件。
以前用過(guò)很多插件(比如,,,, fzf, z),但是為了避免影響我的運(yùn)行速度,我改用其他工具了(這是我在z中使用的一個(gè)教訓(xùn)過(guò)去)。
下載鏈接:
2
如果您必須從本文中選擇我最喜歡的終端工具之一 - 它必須是??梢詰?yīng)用于任何。你只需要安裝它,然后在對(duì)應(yīng)的配置文件././.fish中添加一行配置,剩下的交給它來(lái)完成。
它可以:
還有無(wú)數(shù)其他信息要顯示。但是,它可以以更友好的形式智能地呈現(xiàn)給您!例如,如果您不在 git 存儲(chǔ)庫(kù)中,它將隱藏 git 信息。如果你不在項(xiàng)目中,就不會(huì)有版本信息,因?yàn)轱@示沒(méi)有意義。絕不會(huì)顯示冗余信息,始終保持終端的美觀、優(yōu)雅、簡(jiǎn)潔。
運(yùn)行速度怎么樣?它是用 Rust 編寫(xiě)的,盡管有這么多功能,但它仍然比我以前使用過(guò)的所有工具提示都要快!我對(duì)提示信息很干凈,所以我經(jīng)常破解自己的版本。我會(huì)根據(jù)已有的提示找到對(duì)應(yīng)的功能代碼,然后將它們粘在一起,確保只有我需要的功能才能讓它快速運(yùn)行。 “外部工具永遠(yuǎn)不會(huì)比我精心制作的工具提示更快!”這就是我懷疑的原因。
下載鏈接:
3 z
"z" 允許您在文件目錄之間快速跳轉(zhuǎn)。它會(huì)記住您訪問(wèn)過(guò)的歷史文件夾。經(jīng)過(guò)短暫的學(xué)習(xí),您可以使用 z ame 命令在目錄之間跳轉(zhuǎn)。
比如,如果我經(jīng)常訪問(wèn)~/work/src/,我只需要運(yùn)行z pro,我就可以立即跳轉(zhuǎn)到那里。 z的原理是指算法——一種基于統(tǒng)計(jì)和分析的算法。如果它存儲(chǔ)了您不想使用的路徑文件夾,您可以隨時(shí)手動(dòng)刪除它。它提高了我經(jīng)常使用的不同文件路徑之間頻繁切換的效率,并為我節(jié)省了鍵盤(pán)擊鍵次數(shù)和大量路徑內(nèi)存。
下載鏈接:
4 fzf
fzf—,模糊查找器。它是一個(gè)通用工具,允許您使用模糊搜索來(lái)查找文件、歷史命令、進(jìn)程、git 提交等。您鍵入一些字母,它會(huì)嘗試匹配結(jié)果列表中的任何字母。輸入的字母越多,結(jié)果就越準(zhǔn)確。你在其他代碼編輯器中可能有這種搜索體驗(yàn)——當(dāng)你想打開(kāi)一個(gè)文件時(shí),只需輸入部分文件名即可搜索,無(wú)需輸入完整路徑——這就是模糊搜索。
我通過(guò)fish fzf插件使用它,所以我可以搜索命令歷史或快速打開(kāi)文件。這是一個(gè)很棒的工具,可以每天為我節(jié)省大量時(shí)間。
下載鏈接:
5 fd
上面的動(dòng)畫(huà)是find命令(左)和fd命令(右)的使用對(duì)比。
類似于系統(tǒng)自帶的find命令,但使用更簡(jiǎn)單,查找速度更快,默認(rèn)設(shè)置好。
無(wú)論您想查找名為“”的文件,但不確定文件擴(kuò)展名,您都應(yīng)該找到一個(gè)存儲(chǔ)所有這些文件的目錄,而不僅僅是一個(gè)文件。您可以卷起袖子開(kāi)始為 find 命令編寫(xiě)復(fù)雜的正則表達(dá)式,也可以直接從命令行運(yùn)行 fd。反正對(duì)我來(lái)說(shuō),我只選擇最簡(jiǎn)單的。
默認(rèn)情況下,fd 會(huì)忽略列出的隱藏文件和目錄。大多數(shù)時(shí)候,這是我們想要的,但在少數(shù)特殊情況下,如果您需要禁用此功能,我會(huì)為命令設(shè)置別名: fda='fd -IH'。
你會(huì)發(fā)現(xiàn)fd命令輸出的顏色配置非常漂亮,而且根據(jù)基準(zhǔn)測(cè)試(上面的GIF),它的執(zhí)行速度甚至比f(wàn)ind命令還要快。
下載鏈接:
6
上圖是grep(左)和rg(右)命令執(zhí)行時(shí)的對(duì)比。
與上面的fd命令類似,是grep命令的替代,但是執(zhí)行速度更快,并且有完善的默認(rèn)配置和豐富的色彩輸出。
它也會(huì)跳過(guò)忽略和隱藏的文件軟件編程工具,所以如果有特殊需要,我們可以設(shè)置命令別名:rga ='rg -uuu'。它將禁用所有智能過(guò)濾并使性能與標(biāo)準(zhǔn) grep 命令保持一致。
下載鏈接:
7 htop 和
Mac上最常用的顯示進(jìn)程運(yùn)行狀態(tài)信息的工具就是大家熟悉的top了,是每個(gè)系統(tǒng)管理員的好幫手。而且,即使你像我一樣主要從事網(wǎng)絡(luò)開(kāi)發(fā),查看電腦的運(yùn)行狀態(tài)也是很有用的。您知道,只需查看當(dāng)前進(jìn)程或占用您所有 RAM 的進(jìn)程。你應(yīng)該怎么做?
htop 工具是 top 工具的絕佳替代品。
top工具是一個(gè)很基礎(chǔ)的監(jiān)控工具,功能有限,所以很多人轉(zhuǎn)用htop。與top相比,htop優(yōu)勢(shì)明顯——除了功能更全,配色也非常豐富,整體來(lái)說(shuō)更加人性化。
借助該工具,您還可以一目了然地快速了解系統(tǒng)的當(dāng)前狀態(tài)。
是htop的補(bǔ)充工具。除了列出所有進(jìn)程及其 CPU 和內(nèi)存使用情況外,它還可以顯示有關(guān)系統(tǒng)的其他信息,例如:
我選擇使用htop來(lái)過(guò)濾和終止進(jìn)程,因?yàn)閷?duì)我來(lái)說(shuō)效率提升了很多,而且我也可以用它來(lái)快速瀏覽電腦的運(yùn)行狀態(tài)。提供API接口、Web UI,支持多種導(dǎo)出格式,讓系統(tǒng)監(jiān)控更上一層樓。因此我強(qiáng)烈推薦這里的波浪!
htop 下載鏈接:
下載鏈接:
8 和
是用于在(我更喜歡內(nèi)置的 venv 模塊)中創(chuàng)建虛擬環(huán)境的工具。
是 Fish 的虛擬環(huán)境管理器(如果您不使用 Fish,請(qǐng)查看 )。它提供了許多命令來(lái)執(zhí)行快速創(chuàng)建、列出或刪除虛擬環(huán)境等操作。
下載鏈接:
下載鏈接:
9 和
您可以輕松地在版本之間切換。
,是用于管理計(jì)算機(jī)上不同版本的 Node 和 Ruby 的工具。
假設(shè)您要在計(jì)算機(jī)上安裝兩個(gè)版本。例如,您正在處理兩個(gè)不同的項(xiàng)目,或者由于特殊情況仍然需要使用。計(jì)算機(jī)上不同版本的管理很復(fù)雜。需要保證不同的項(xiàng)目有正確版本的軟件依賴包。一不小心,很容易把這個(gè)脆弱的配置搞亂,被其他軟件包使用的二進(jìn)制文件覆蓋。
這個(gè)工具為版本管理提供了很多幫助,讓這個(gè)噩夢(mèng)更容易管理??梢匀只颉鞍次募A”切換版本,每個(gè)版本相互隔離。
最近發(fā)現(xiàn)了一個(gè)叫做asdf的工具,可以統(tǒng)一管理,和其他envs。它為幾乎所有的編程語(yǔ)言提供版本管理。下次我需要為編程語(yǔ)言設(shè)置版本管理器時(shí),我一定會(huì)嘗試。
下載鏈接:
下載鏈接:
下載鏈接:
10 點(diǎn)像素
解決了很多包管理的問(wèn)題,但還是有辦法解決的。如果我想在全局環(huán)境中安裝包(例如,它是一個(gè)獨(dú)立的工具,如上所述),那么我會(huì)遇到全局安裝導(dǎo)致的問(wèn)題。在虛擬環(huán)境之外安裝軟件包不是一個(gè)好主意,將來(lái)可能會(huì)導(dǎo)致意外問(wèn)題。另一方面,如果我決定使用虛擬環(huán)境,則每次要運(yùn)行程序時(shí)都需要激活虛擬環(huán)境。這也不是最方便的解決方案。
事實(shí)證明,pipx工具可以解決上述問(wèn)題。它將軟件依賴包安裝到單獨(dú)的環(huán)境中(因此不會(huì)出現(xiàn)依賴沖突的問(wèn)題)。同時(shí),這些工具提供的 CLI 命令也可以在全局環(huán)境中使用。因此,我不需要激活任何環(huán)境-pipx 會(huì)為我做這件事!
如果你想進(jìn)一步了解這些工具并想了解如何使用它們,我為 2020 年會(huì)議制作了一個(gè)名為“現(xiàn)代開(kāi)發(fā)者工具包”的視頻。
這是一個(gè)兩小時(shí)的視頻教程,內(nèi)容涉及如何設(shè)置開(kāi)發(fā)環(huán)境、要使用的工具以及如何從頭開(kāi)始制作 TODO 應(yīng)用程序(包括測(cè)試和文檔)。你可以看。
pipx 下載鏈接:
11 ctop 和
Ctop的實(shí)時(shí)監(jiān)控示例
這兩個(gè)工具在您使用和監(jiān)控時(shí)會(huì)非常有用。 ctop 是容器的頂層接口。它可以為您做到:
這比試圖從 ps 命令中查找所有這些信息要方便得多。
?
是我最喜歡的工具
如果你覺(jué)得ctop很酷,請(qǐng)先嘗試再做決定!它是一個(gè)非常成熟的工具,帶有終端UI界面,并提供了非常豐富的管理功能。這是我最喜歡的管理工具!
ctop 下載鏈接:
下載鏈接:
推薦的低頻 CLI 工具
除了我?guī)缀趺刻於荚谑褂玫墓ぞ咧?,這些年來(lái)我還收集了一些很棒的工具,它們對(duì)于某些特定需求非常有用。例如軟件編程工具,一些終端工具可以用來(lái)將終端操作記錄到GIF中(并允許你在GIF中暫停和復(fù)制文本?。渌K端工具可以用來(lái)列出目錄結(jié)構(gòu)、連接數(shù)據(jù)庫(kù)等。一介紹。
12
如果你用的是Mac,那我就不用再介紹了。它是業(yè)界普遍認(rèn)可的包管理器。順便說(shuō)一句,它還有一個(gè)GUI版軟件叫,有興趣的可以試試。
下載鏈接:
13
是一種可用于記錄終端會(huì)話的工具。但是,與錄制 GIF 不同的是,它允許用戶選擇和復(fù)制這些錄制內(nèi)容中的代碼!
這對(duì)于錄制編碼教程非常有用。你應(yīng)該會(huì)遇到那種尷尬的情況——當(dāng)你準(zhǔn)備按照視頻教程在終端輸入一個(gè)巨大的命令時(shí),但是講師沒(méi)有給你提供這段代碼片段,你要花很長(zhǎng)時(shí)間整理這些長(zhǎng)命令。錄制的內(nèi)容支持直接復(fù)制,功能非常強(qiáng)大。
下載鏈接:
14 和 diff-so-
我很少在終端使用diff操作(比較兩個(gè)文件的區(qū)別),但是如果需要進(jìn)行這個(gè)操作,可以放棄使用diff命令而使用。輸出可以高亮顯示,這樣查看文件差異內(nèi)容更方便,而不是在diff命令輸出內(nèi)容下查看所有""符號(hào)比較文件差異。
如果你覺(jué)得還不夠,那我向你推薦diff-so-。是比較友好的差異比較工具。
它通過(guò)以下方式進(jìn)一步改善了文件內(nèi)容差異顯示的外觀:
下載鏈接:
diff-so- 下載鏈接:
15 棵樹(shù)
您可以通過(guò) brew 樹(shù)安裝該工具。如果要查看給定目錄的內(nèi)容,那么樹(shù)是執(zhí)行此操作的必備工具。它可以以漂亮的樹(shù)狀結(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 蝙蝠
類似于終端常用的cat命令,用于顯示文件內(nèi)容,但bat效果更好。
增加了語(yǔ)法高亮、git標(biāo)簽(如果有)、自動(dòng)分頁(yè)(如果文件大)等,讓輸出內(nèi)容更易讀。
bat下載鏈接: