本文首發於:微信公眾號「運維之美」,公眾號 ID:Hi-Linux。
「運維之美」是一個有情懷、有態度,專注於 Linux 運維相關技術文章分享的公眾號。公眾號致力於為廣大運維工作者分享各類技術文章和釋出最前沿的科技資訊。公眾號的核心理念是:分享,我們認為只有分享才能使我們的團體更強大。如果你想第一時間獲取最新技術文章,歡迎關注我們!
公眾號作者 Mike,一個月薪 3000 的雜工。從事 IT 相關工作 15+ 年,熱衷於網際網路技術領域,認同開源文化,對運維相關技術有自己獨特的見解。很願意將自己積累的經驗、心得、技能與大家分享交流,篇篇乾貨不要錯過喲。如果你想聯絡到我,可關注公眾號獲取相關資訊。
眾所周知,我們在 Linux 下大多數時候是使用命令列來處理任務的。這樣不但操作起來效率比較高,而且介面也比較炫酷。下面,我們就給大家推薦一些不但炫酷又好用的 Linux 命令列神器。
1. exa
exa 是一個用來替代 ls 的工具, exa 相比於 ls 增加了很多新的特性,比如:支援不同檔案型別可以用不同顏色來展示、exa 比 ls 速度更快一些等。
專案地址:https://github.com/ogham/exa
更多詳細介紹可參考:「推薦一個比 ls 命令速度快 100 倍的檔案目錄瀏覽神器」 一文。
2. FD
fd 是基於 Rust 開發的一個速度超快的命令列搜尋工具,fd 旨在成為 Linux / Unix 下 find 命令的替代品。
fd 雖然不能提供現在 find 命令所有的強大功能,但它也提供了足夠強大的功能來滿足你日常需要。比如:簡潔的語法、彩色的終端輸出、超快的查詢速度、智慧大小寫、支援正規表示式以及可並行執行命令等特性。
專案地址:https://github.com/sharkdp/fd
更多詳細介紹可參考:「推薦一款比 Find 快 10 倍的搜尋工具 FD」 一文。
3. RipGrep
Ripgrep 是命令列下一個基於行的命令列搜尋工具,比 ag、grep、ack 速度更快。RipGrep 使用 Rust 開發,可以在多平臺下執行,支援 Mac、Linux 和 Windows 等平臺。
專案地址:https://github.com/BurntSushi/ripgrep
更多詳細介紹可參考:「推薦一款命令列下最快的文字搜尋神器 RipGrep」 一文。
4. Tig
Tig 是一款命令列下 Git 的視覺化工具,可以很方便地在命令列下以互動的方式完成 Git 的各種操作。
專案地址:https://github.com/jonas/tig
5. FZF
FZF 是使用 GO 語言開發的一款命令列下支援模糊搜尋的互動式工具。FZF 可以用來查詢任何列表內容,包括檔案、Git 分支、程式等。所有的命令列工具都可以生成列表後再通過管道將結果輸入到 FZF 上進行模糊搜尋。FZF 還可以結合其它工具(比如:rg、bat 和 Fasd )來完成更多的工作。
專案地址:https://github.com/junegunn/fzf
6. FPP
FPP (Facebook Path Picker ) 是由 Fackbook 開源一款終端多檔案路徑選擇工具,它可以用於完善優化終端中的操作, 比如:Git、Grep 等的輸出結果。
專案地址:https://github.com/facebook/PathPicker
7. BAT
BAT 是命令列下一款用來顯示檔案內容的工具,bat 命令功能跟常用命令 cat 類似。只是 bat 功能上更加強大一些,bat 在 cat 命令的基礎上加入了行號顯示、程式碼高亮和 Git 整合。
專案地址: https://github.com/sharkdp/bat
更多詳細介紹可參考:「推薦一款命令列下支援語法高亮和Git整合的檔案檢視工具 bat」 一文。
8. MyCli
MyCli 是一個 MySQL 的命令列客戶端,可以實現自動補全和語法高亮。MyCli 也可用於 MariaDB 和Percona。
專案地址:http://mycli.net/
更多詳細介紹可參考:「MySQL的增強型語法高亮終端-MyCli」 一文。
9. HTop
HTop 稱之為 Top 的增強版,是一個相對於 Top 命令提供更美觀、更方便的程式監控工具。
專案地址: https://hisham.hm/htop/
更多詳細介紹可參考:「一款比 top 強悍好用的程式管理監控工具」 一文。
10. Glances
Glances 是一個用於監控系統的跨平臺、基於文字模式的命令列工具。它是用 Python 編寫的,使用 psutil 庫從系統獲取資訊。你可以用它來監控 CPU、平均負載、記憶體、網路介面、磁碟 I/O,檔案系統空間利用率、掛載的裝置、所有活動程式以及消耗資源最多的程式。資訊比 htop 更加豐富,除了命令列,Glances 還提供頁面服務,可以讓你從頁面上隨時檢視某伺服器的狀態。
專案地址: https://github.com/nicolargo/glances
11. lrzsz
lrzsz 軟體包是一個支援 Zmodem 協議的工具包。 其中包含的 rz、sz 命令是通過 ZModem 協議在遠端伺服器和終端機器間上傳下載檔案的利器。
lrzsz 支援互動式檔案傳輸,在多重跳板機下傳輸檔案非常好用,不用一級一級傳輸。
專案地址: https://www.ohse.de/uwe/software/lrzsz.html
更多詳細介紹可參考:「在 iTerm2 中使用 Zmodem 實現快速傳輸檔案」 一文。
12. Ncdu
Ncdu (NCurses Disk Usage) 是一個基於 Ncurses 庫的 du 命令的介面。它通過大家熟知的 du 命令,為使用者提供一個快速且容易被使用的介面。它可以顯示磁碟使用的百分比,且允許你使用 ncurses 庫的方式在目錄之間導航。
專案地址: https://dev.yorhel.nl/ncdu
13. Tmux
Tmux 是一個優秀的終端複用工具,功能類似 GNU Screen,但使用 BSD 許可釋出。使用者可以通過 Tmux 在一個終端內管理多個分離的會話、視窗及皮膚,對於同時使用多個命令列,或多個任務時非常方便。
專案地址: https://github.com/tmux/tmux
14. MultiTail
MultiTail 是一個開源的 Ncurses 實用程式,可用於在單個視窗或單個 Shell 中將多個日誌檔案同時顯示到標準輸出。
專案地址: https://www.vanheusden.com/multitail
15. ShellCheck
ShellCheck 是一款實用的 Shell 指令碼靜態檢查工具,可以幫助你提前發現並修復語法錯誤以及不規範的寫法。
專案地址:https://github.com/koalaman/shellcheck
16. Explainshell
Explainshell 是一個幫助你解釋命令列的網站,它會分析命令的幫助文件,然後根據你想查詢的命令引數來抽取對應的解釋,然後簡潔易懂地顯示出來。
專案地址: https://github.com/idank/explainshell
17. Asciinema
Asciinema 是一個終端下非常棒的錄屏和回放軟體。Asciinema 對終端輸入輸出進行捕捉,然後以文字的形式來記錄和回放。
基於 Asciinema 用文字來記錄的特性,使其擁有了非常炫酷的特性。你可以在播放過程中隨時暫停,然後對播放器中的文字進行復制或者其它操作。
專案地址:https://github.com/asciinema/asciinema
更多詳細介紹可參考:「手把手教你使用終端錄屏神器 Asciinema」 一文。
18. Svg-term
一個可以根據 Asciinema 錄製檔案生成 SVG 動畫的小工具。
專案地址: https://github.com/marionebl/svg-term-cli
來看一個例項:將通過 Asciinema 在終端錄製的視訊轉換為 SVG 檔案。
# 安裝 svg-term
$ npm install -g svg-term-cli
# 直接轉換髮布在 Asciinema 網站上的視訊,需要先確認視訊所在連結中的錄製 ID,例如: https://asciinema.org/a/219486 的 ID 就是 219486
$ svg-term --cast=219486 --out ~/home/mike/out.svg --padding 18 --height 8 --width 80
# 如果你不想把錄製檔案上傳到 Asciinema 網站上,你也可以直接使用 svg-term 轉換本地錄製檔案
$ asciinema rec cast.json
$ cat cast.json | svg-term-cli複製程式碼
19. Wrk
Wrk 是輕量級的 HTTP 效能測試工具。相比於 Apache ab 功能更強大,支援 HTTP 1.1,而且可以用 Lua 寫指令碼支援更復雜的測試場景。
專案地址:https://github.com/wg/wrk
20. HTTPie
HTTPie (讀aych-tee-tee-pie) 是一款開源的命令列 HTTP 工具。HTTPie 採用 Python 開發,底層用到了 Requests 和 Pygments 庫。
HTTPie 設計用來增強 wget 和 curl 的可用性。它的主要目標是使通過命令列與網路伺服器進行互動的過程變得儘可能的人性化。其提供了一個簡單的 HTTP 環境來讓我們通過簡單而自然的語法傳送任意 HTTP 請求,並顯示彩色輸出。HTTPie 可用於測試,除錯和與 HTTP 伺服器進行普通的互動。
專案地址: http://httpie.org/
更多詳細介紹可參考:「如何用 HTTPie 更高效的除錯介面」 一文。
21. HTTP Prompt
HTTP Prompt 是一個互動式的命令列 HTTP 客戶端,支援自動完成、語法高亮,基於 HTTPie 和 prompt_toolkit 構建。HTTP Prompt 相對於其它命令列的 HTTP 客戶端 (如:HTTPie、Curl 等)使用上更加直觀方便。
專案地址: https://github.com/eliangcs/http-prompt
更多詳細介紹可參考:「Linux 命令列下互動式 HTTP 客戶端--HTTP Prompt」 一文。
22. TLDR
TLDR 全稱Too long, Don’t read,翻譯成中文就是太長不讀。它可以幫助你快速檢視命令列工具的使用例項。簡而言之,就是 Man 頁面的精簡版本。
專案地址: https://github.com/tldr-pages/tldr
更多詳細介紹可參考:「Linux命令列學習神器tldr」 一文。
23. Ranger
Ranger 是一個命令列下的檔案管理器。Ranger 使用 Python 編寫,預設為使用 Vim 風格的按鍵繫結。
專案地址: https://github.com/ranger/ranger
24. Axel
Axel 是 Linux 下一個不錯的高速下載工具。支援多執行緒下載、斷點續傳,且可以從多個地址或者從一個地址的多個連線來下載同一個檔案。非常適合網速不給力時多執行緒下載,以提高下載速度。
專案地址: https://github.com/axel-download-accelerator/axel
25. Cloc
Cloc 是一款使用 Perl 語言開發的開原始碼統計工具,支援多平臺使用、多語言識別,能夠計算指定目標檔案或資料夾中的檔案數(files)、空白行數(blank)、註釋行數(comment)和程式碼行數(code)。
專案地址: http://cloc.sourceforge.net/
更多詳細介紹可參考:「程式碼統計利器 CLOC」 一文。
參考文件
- http://www.google.com
- https://darrenburns.net/posts/tools/
- https://darrenburns.net/posts/more-tools
- https://darrenburns.net/posts/even-more-tools
- https://darrenburns.net/posts/command-line-tools-iv
- https://juejin.im/post/5afabcb1f265da0b886d92b6
- https://www.cnblogs.com/zqb-all/p/10054594.html