█████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███╗ ███╗███████╗
██╔══██╗██║ ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝
███████║██║ █╗ ██║█████╗ ███████╗██║ ██║██╔████╔██║█████╗
██╔══██║██║███╗██║██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝
██║ ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
███████╗██╗ ██╗███████╗██╗ ██╗
██╔════╝██║ ██║██╔════╝██║ ██║
███████╗███████║█████╗ ██║ ██║
╚════██║██╔══██║██╔══╝ ██║ ██║
███████║██║ ██║███████╗███████╗███████╗
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
作為一個合格的程式員,必備的技能就是cli的使用。 自從辦公系統從windows換成ubuntu,再到mac。就已離不開指令行工具了。在終端使用cli工具, 一是提高效率,二是節省系統資源。另外,主要是做後端,也不是很喜歡圖形界面的東西。
今天逛github的時候,發現一個awesome關于shell的資源,我前面也分享了一些awesome的相關的内容。
Awesome Shell
這是一份非常棒的指令行架構、工具包、指南、以及小玩意兒組織清單。由 awesome-php 獲得靈感。該 awesome 收集在 Unix-Shell.ZEEF.com 上也可用。
- 指令行效率
- 定制
- 針對開發者
- 系統工具
- 下載下傳與服務
- 多媒體與檔案格式
- 應用程式
- 遊戲
- Shell 包管理
- Shell 腳本開發
- 指南
- Awesome Zsh ![Awesome][awesome-badge]
- Awesome Fish ![Awesome][awesome-badge]
- 其它 Awesome 清單
指令行效率
使你的終端體驗更有效率的搜尋、書簽、多路複用、以及其它工具。
- AdvancedNewFile - 以遞歸的方式快速建立檔案和目錄。 受Vim插件啟發。
- ag - 在層級目錄中超快的搜尋字元串
- aliases - 針對 bash 的上下文動态組織别名
- aliasme - 用來快速更改目錄的 alias 輔助程式
- autoenv - 基于目錄的環境
- autojump - 自帶學習功能的 cd 指令,從指令行輕易地導航目錄
- bashhub - :cloud: 在雲中的 bash 曆史,已索引且可搜尋。
- bashmarks - 适用于 shell 的目錄書簽
- bd - 迅速回到父目錄
- boilr - 從 boilerplate 模闆建立項目的超快指令行工具
- boom - 在指令行中存儲連結及片斷
- borg - 基于終端的 bash 指令搜尋引擎
- byobu - 基于文本的視窗管理器及終端多路複用器
- CloudClip - 雲剪貼闆,在不同的系統之間 copy/paste (使用 gist 作為後端)
- commacd - 在 Bash 中更快速的移動方式
- desk - 适用于 shell 的輕量級工作區管理器
- direnv - 針對 shell 的環境切換工具(利用 autoenv 比較)
- enhancd - :rocket: 具有互動式過濾功能的下一代 cd 指令
- fasd - 指令行效率提升器,提供快速通路檔案及目錄
- foxy - 适合 Firefox 及 Surf 浏覽器的無格式文本書簽
- fz - z 的無縫模糊補全
- fzf - 指令行下的模糊搜尋器
- hhighlighter - 在指令輸出中給單詞着色
- hr - 适用于終端的
<hr />
- hss - 可互動的ssh批量執行用戶端,具有自動完成遠端路徑和異步執行的特性
- hstr - Bash 曆史建議框
- k - k 是一個使目錄清單更可讀的 Zsh 腳本,它增添了 Git 狀态、檔案顔色、以及腐朽的日期
- k alias - 獲得用于單行的酷 alias
- marker - 将你的 shell 指令加到書簽
- mackup - 雲同步應用程式的配置檔案(OS X/Linux)
- parallel - 以并行化方式從标準輸入構造并執行 shell 指令行
- pathpicker - 允許将 grep、搜尋、git 等的輸出結果作為輸入,并提供友好的選擇界面,以便打開或作為指令的參數
- percol - 為傳統的 UNIX shell 管道添加互動式的過濾
- qfc - 針對 Bash 和 Zsh 的檔案補全 widget
- SHML - 适用于終端的樣式架構 (Shell 标記語言)
- slugify - 将檔案名及目錄轉換為 web 友好的格式
- sman - :bug: 指令行下的片斷管理器
- spark - ▁▂▃▅▂▇ 在你的 shell 中
- shark - ▁▂▃▅ Sparkline 生成器
- sheet - 用于指令行的文本片斷
- spot - 微型的檔案搜尋工具
- snips - 管理代碼片斷的指令行工具
- sshfs - 通過 SSH 挂載遠端檔案系統的工具
- sshpass - 通過指令行傳遞ssh密碼,無需再次輸入,适合用于腳本之中
- autossh - 自動重新開機ssh通道和會話
- mosh - 第一個實作SSP的應用,MIT的博士項目,使得C/S之間可以保持連結持續,即使斷開還能恢複之前的狀态
- sshrc - SSH 時帶上你的 .bashrc、.vimrc 等
- sudocabulary - 從終端學習英語詞彙
- thefuck - 通過使用容易記住的指令修正常見的 shell 錯誤
- tmux - 很棒的終端複用器
- up - 按名稱或計數升序排列目錄,支援 bash 和 zsh
- v - 适用于 Vim 的 z
- wemux - 多使用者使用 Tmux 變得更容易
- z - z 是新的 j
定制
定制提示符、顔色主題等。
- base16-shell - 适用于 shell 的 Base16
- bash-full-of-colors - 超強的指令行提示(含 screen、tmux、git 等支援)
- bash-git-prompt - 針對 Git 使用者的資訊及夢幻提示符
- bash-powerline - Powerline 風格的 Bash 提示符,純 Bash 腳本
- bashstrap - 美化 OS X 終端的快速方法
- bullet-train-oh-my-zsh-theme - :bullettrain_side: 基于 Powerline Vim 插件的 oh-my-zsh shell 主題
- emojify - 适用于指令行的表情 :scream:
- flatui-terminal-theme - 很好的終端顔色主題
- git-prompt - 包含 Git、SVN 及 HG 子產品的 Bash 提示符
- gittify - 彩色的 Bash 提示符及定制的 Git 别名
- Gogh - Color Scheme - 适用于 GNOME 終端的顔色主題
- liquidprompt - 針對 Bash 和 Zsh 的全功能及用心設計的自适應提示符
- mysql-colorize - 彩色的 MySQL 指令行用戶端
- oh-my-git - 針對 Bash 和 Zsh 的自用 Git 提示符
- sexy-bash-prompt - 包含顔色、Git 狀态及 Git 分支的 Bash 提示符
針對開發者
指令行開發、版本控制、以及部署。
- bocker - 使用百行 bash 實作的 Docker
- cloc - 統計代碼行數
- dokku - 百行 Bash 打造的 Docker 迷你 Heroku
- fish-getopts - 适用于 fish 的指令行解析器
- git-extra-commands - 很多 Git 擴充工具,包括 churn、cut-branch、improved-merge 等
- git-extras - Git 工具,包括倉庫摘要、repl、更改日志人數、作者送出百分比等
- git-open - 輸入
在浏覽器中打開 GitHub 頁面或倉庫網站git open
- git-semver - 用來友善的語義化版本及更改日志驗證的 Git 插件
- git-sh - 适合 Git 工作的定制 Bash 環境
- git-up - 自動變基進來的更改代替合并,優雅!
- hub - 更易使用 GitHub 的指令行工具
- mr - 多倉庫管理工具
- overcommit - 完全可配置且可擴充的 Git hook 管理器
- pre-commit - 用于管理及維護多語言 pre-commit hooks 的架構
- repren - 指令行搜尋與替換及檔案重命名的瑞士軍刀式工具
- slap - 運作在 Node.js 上的基于終端的類 Sublime 文本編輯器
- shipit - 極簡 SSH 部署
- tag - 立即跳到你的公牛隊比賽
系統工具
作業系統相關工具,包括系統管理、系統調試、及檔案和程序管理。
- atop - 能夠報告所有程序活動的 ASCII 全屏性能螢幕
- cv - 顯示 cp、rm、dd 等指令進度的 Linux 工具
- glances - 系統監視之眼
- goaccess - 運作于 *nix 系統終端中的實時 web 日志分析器及互動式檢視器
- histstat - 适用于 netstat 的曆史
- htop - 基于 ncurses 的互動式程序檢視器,其目标是比
更好top
- lnav - 小型的進階日志檔案檢視器
- lsp - 改進的
,包含無格式語言的檔案說明及智能的檔案分組ls
- mtr - traceroute 和 ping 功能合二為一的網絡診斷工具
- ncdu - NCurses 磁盤占用統計
- powertop - 電池/電源占用及裝置狀态監視指令行工具,包含調整選項
- procdog - 輕量級的指令行控制類似伺服器的長實時程序
- quick-secure - 快速的安全并加強 UNIX/Linux 系統
- wifi-wand - 一個用來管理MacOs上 WiFi無線網絡的Ruby指令行應用程式, 安裝請執行
)gem install wifi-wand
下載下傳與服務
使用 shell 腳本編寫的自架、輕量級伺服器與網絡工具。
- aria2 - aria2 是一款在指令行中操作的輕量級多協定、多來源、及跨平台下載下傳工具,它支援 HTTP/HTTPS、FTP、BitTorrent 及 Metalink
- balls - Bash on Balls,全功能的 web 平台
- bashttpd - 使用 Bash 編寫的 web 伺服器
- bitpocket - "DIY Dropbox" 或 "雙向目錄同步(含正确删除)"
- Dropbox-Uploader - Dropbox Uploader 是用來從 Dropbox 上傳、下載下傳、列出或删除檔案的 Bash 腳本
- httpie - HTTPie 是一個指令行 HTTP 用戶端,使用者友好的 cURL 替代品
- http-server - http-server可以啟動一個輕量級的http服務
- ngincat - 使用 netcat 的微型 Bash HTTP 伺服器
- resty - 你可以在管道中使用的小型指令行 REST 用戶端
- youtube-dl - 從 YouTube.com 及其它視訊站點下載下傳視訊的小指令行程式
- coursera-dl - 從Course公開課上下載下傳視訊
多媒體與檔案格式
用于處理視訊及音頻檔案的工具。
- adb-export - 導出 Android 内容提供商為 CSV 格式
- Android-Kitchen - 基于文本的 Android ROM 定制 kitchen,使用 shell 腳本并支援 Cygwin/OS X/Linux
- Beets - 音樂庫管理器及 MusicBrainz 标簽工具
- cmus - 跨平台的指令行音樂播放器
- gifgen - 簡單高品質的 GIF 編碼
- image-scraper - 包含諸多特性的酷指令行圖像 scraper
- jq - 針對 json 資料的 Sed,你可以使用它分片、過濾、映射及變換結構化資料
- csvtookit - 使用pip install csvki安裝, csv檔案進行處理的強大工具
- mplayer - 讓你在 shell 中播放主流的音頻及視訊格式(使用 ASCII 字元)
- nehm - 下載下傳、設定 IDv3 标簽、并添加到 iTunes 的控制台工具
- PiCAST - PiCAST 将你的 35 刀 Raspberry Pi 變成類 Chromecast 裝置
- sejda - 指令行下的 PDF 文檔處理工具(分割、合并、旋轉、轉換為 jpg、提取文本等)
- xmlstarlet - 古老而強大的指令行 XML 格式化、過濾及處理工具
- ffmpeg - 非常強大的視訊處理工具
- imageMagick - 其強大有目共睹
應用程式
基于指令行的應用程式或從指令行通路現有服務。
- ansiweather - 終端中的天氣預報,包含 ANSI 顔色及 Unicode 符号
- bashblog - 處理 blog 投遞的 Bash 腳本
- choosealicense-cli - 從終端選授權合約
- facy - 指令行下的 Facebook 用戶端
- fanyi - 翻譯英文為中文的指令行工具
- geeknote - 指令行的 Evernote 用戶端
- haxor-news - 像黑客一樣浏覽 Hacker News
- hn-cli - 從終端舒服的浏覽 Hacker News
- iponmap - 利用 IP 位址在世界地圖上繪點
- isitup - 檢查一個網站是否正常上線
- jrnl - 使用無格式文本檔案存儲日記的簡單指令行程式
- ledger - 指令行記賬
- licen - 生成項目 license
- md2png - 從 markdown 檔案生成 png 圖檔
- moviemon - 有關在指令行下看電影的每樣東東
- pushblast - 當 shell 程式退出時獲得 PushBullet 通知
- pushbullet-bash - PushBullet API 的 Bash 接口
- Reddit Terminal Viewer - 從終端浏覽 Reddit
- SAWS - 超強的 AWS 指令行界面
- taskwarrior - 一個指令行去做清單管理器
- transfer.sh — 從 shell 快速上傳并分享檔案
- vl - 針對文本文檔的 URL 連結檢查器
- wego - 适用于終端的天氣預報應用
- whereami - 從指令行獲得你的地理位置資訊
- fail2ban - SSH防爆破
遊戲
隻顧工作而不玩玩是一種糟糕的度日方式。
- bash2048 - 2048 遊戲的 Bash 實作
- minesweeper - 掃雷的 Bash 實作
- piu-piu - 水準滾動遊戲 Bash 實作
- sedtris - 使用 sed 實作的俄羅斯方塊
- sed-scripts - 使用 sed 編寫的 Arkanoid 和 Sokoban
Shell 包管理
用于管理多個 shell 配置的工具。對于特定的 zsh 工具,參閱 Zsh 節。
- bash-it - 社群化的 Bash 架構
- basher - 針對 shell 腳本的包管理器
- bpkg - JavaScript 有 npm、Ruby 有 Gems、Python 有 pip,現在 Shell 有 bpkg
- dotfiler – 使用 Python 編寫的基于 Git 的 Shell dotfiles 管理器
- fresh - 使你的 dotfiles 保持更新
- homeshick - 使用 Bash 編寫的 Git dotfile 同步器
- vcsh - 基于 Git 的配置管理器
- shundle - 适用于 shell 腳本的插件管理器
Shell 腳本開發
用于編寫、改進、及管理 Bash 或其它 shell 腳本的工具。
- ansi - 使用純 Bash 實作的 ANSI 轉義碼,包括更改文本顔色、定位光标等等
- assert.sh - Bash 單元測試架構
- bashful - 簡化編寫 Bash 腳本的庫收集
- bashmanager - 用來建立指令行工具的微型 Bash 架構
- bats - Bash 自動化測試系統
- Fishtape - 适用于 fish 的 TAP 産生器及測試工具
- composure - 撰寫、文檔、版本、及組織你的 shell 函數
- dispatch - 使用 50 行可移植 shell 腳本寫成的指令行參數解析器
- is.sh - 内置 test 指令的替代品,使 "if" 語句更漂亮
- mo - 使用純 Bash 實作的 Mustache 模闆
- optparse - 針對 getopts 的 BASH wrapper,用于簡單的指令行參數
- rerun - 用來管理保留腳本的子產品化 shell 自動化架構
- semver_bash - 使用 Bash 實作的語義化版本
- sh-semver - 适用于 bash 的 Semver 工具,比對指定規則來查找版本
- shellcheck - 針對 shell 腳本的靜态化分析工具
- shellfire - 命名空間倉庫,可寫 shell (bash、sh 及 dash) 函數庫
- shpec - shell 測試架構
- sub - 以美味之道來管理程式
- ts - shell 測試腳本
- shunit2 - 适用于 Bash 腳本的單元測試架構(具有 JUnit/PyUnit 風味)
- rebash - 腳本庫/架構,包含 imports、exceptions、doc-tests 等功能
指南
- Bash 黑客的維基
- Greg Wooledge(又名 "greycat")的維基:尤其是 Bash 指南、Bash 疑難問答 及 Bash 陷阱
- Google 的 Shell 風格指南
- Linux 文檔項目: Bash 程式設計 - 簡介/如何做
- Linux 文檔項目: 進階 Bash 腳本指南
- WikiBooks: Bash Shell 腳本
- 使用非官方的 Bash 嚴格模式 (除非你愛調試)
- 指令行的藝術
- 學會成為指令行殺手
- 學習bash的指南
其它 Awesome 清單
其它很棒的 awesome 清單可在 awesome-awesome 和 awesome-awesomeness 找到。