# Awesome Shell A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php. This awesome collection is also available on [Unix-Shell.ZEEF.com](https://unix-shell.zeef.com/caleb.xu). - [Awesome Bash](#awesome-bash) - [Networking and Servers](#networking-and-servers) - [Customization](#customization) - [Package Management and Frameworks](#package-management-and-frameworks) - [Writing and Testing Scripts](#writing-and-testing-scripts) - [Multimedia](#multimedia) - [Games](#games) - [Utilities and Tools](#utilities-and-tools) - [Guides](#guides) - [Other Awesome Lists](#other-awesome-lists) ## Networking and Servers *Self-hosted, lightweight servers and networking tools written in shell scripts.* * [balls](https://github.com/jneen/balls) - Bash on Balls * [bashblog](https://github.com/cfenollosa/bashblog) - A Bash script that handles blog posting * [bashttpd](https://github.com/avleen/bashttpd) - A web server written in bash * [bitpocket](https://github.com/sickill/bitpocket) - "DIY Dropbox" or "2-way directory (r)sync with proper deletion" * [dokku](https://github.com/progrium/dokku) - Docker powered mini-Heroku in around 100 lines of Bash * [Dropbox-Uploader](https://github.com/andreafabrizi/Dropbox-Uploader) - Dropbox Uploader is a BASH script which can be used to upload, download, list or delete files from Dropbox * [httpie](https://github.com/jakubroztocil/httpie) - HTTPie is a command line HTTP client, a user-friendly cURL replacement * [ngincat](https://github.com/jaburns/ngincat) - Tiny bash HTTP server using netcat * [pushblast](https://github.com/alebcay/pushblast) - Get PushBullet notifications when a shell program exits * [pushbullet-bash](https://github.com/Red5d/pushbullet-bash) - Bash interface to the PushBullet API * [resty](https://github.com/micha/resty) - Little command line REST client that you can use in pipelines * [aria2](https://github.com/tatsuhiro-t/aria2) - aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, BitTorrent and Metalink * [youtube-dl](https://github.com/rg3/youtube-dl) Small command-line program to download videos from YouTube.com and other video sites ## Customization *Custom prompts, color themes, etc.* * [awesome-zsh-plugins](https://github.com/unixorn/awesome-zsh-plugins) - A list of zsh plugins usable with antigen, dotzsh, oh-my-zsh & prezto. * [base16-shell](https://github.com/chriskempson/base16-shell) - Base16 for Shells * [bash-git-prompt](https://github.com/magicmonty/bash-git-prompt) - An informative and fancy bash prompt for Git users * [bash-powerline](https://github.com/riobard/bash-powerline) - Powerline-style Bash prompt in pure Bash script * [bashstrap](https://github.com/barryclark/bashstrap) - A quick way to spruce up OSX terminal * [flatui-terminal-theme](https://dribbble.com/shots/1021755-Flat-UI-Terminal-Theme) - Nicer colors for terminal * [git-prompt](https://github.com/lvv/git-prompt) - bash prompt with GIT, SVN and HG modules * [liquidprompt](https://github.com/nojhan/liquidprompt) - A full-featured & carefully designed adaptive prompt for Bash & Zsh * [powerline-zsh](https://github.com/carlcarl/powerline-zsh) - Powerline for Zsh * [pure](https://github.com/sindresorhus/pure) - Pretty, minimal and fast ZSH prompt * [sexy-bash-prompt](https://github.com/twolfson/sexy-bash-prompt) - Bash prompt with colors, git statuses, and git branches * [zsh-autosuggestions](https://github.com/tarruda/zsh-autosuggestions) - Fish-like autosuggestions for zsh * [zsh-git-prompt](https://github.com/olivierverdier/zsh-git-prompt) - Informative git prompt for zsh * [zsh-prompt-powerline](https://github.com/Valodim/zsh-prompt-powerline) - A ZSH prompt based on the powerline font from the popular vim plugin * [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) - Fish shell like syntax highlighting for zsh * [zsh-history-substring-search](https://github.com/zsh-users/zsh-history-substring-search) - An implementation of the Fish shell's history search feature for zsh. ## Package Management and Frameworks *Tools for managing multiple shell configurations.* * [antigen](https://github.com/zsh-users/antigen) - A plugin manager for zsh, inspired by oh-my-zsh and vundle * [antigen-hs](https://github.com/Tarrasch/antigen-hs) - A replacement for antigen optimized for a low overhead when starting up the shell. * [bash-it](https://github.com/revans/bash-it) - A community bash framework * [basher](https://github.com/basherpm/basher) - A package manager for shell scripts * [bpkg](http://www.bpkg.io/) - JavaScript has npm, Ruby has Gems, Python has pip and now Shell has bpkg * [dotzsh](https://github.com/dotphiles/dotzsh) - dotzsh strives to be platform and version independent, some functionality may be lost when running under older versions of zsh, but it should degrade cleanly and allow you to use the same setup on multiple machines of differing OS's without problems. * [fresh](https://github.com/freshshell/fresh) - Keep your dotfiles fresh * [homeshick](https://github.com/andsens/homeshick) - git dotfile synchronizer written in bash * [oh-my-fish](https://github.com/bpinto/oh-my-fish) - Framework for managing your fish shell configuration inspired by Oh My ZSH * [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) - A community-driven framework for managing your zsh configuration * [prezto](https://github.com/sorin-ionescu/prezto) - The configuration framework for Zsh * [vcsh](https://github.com/RichiH/vcsh) - config manager based on Git ## Writing and Testing Scripts *Boilerplate-like templates and systems to jump-start whatever script you are writing.* * [bashful](https://github.com/jmcantrell/bashful) - A collection of libraries to simplify writing bash scripts * [bats](https://github.com/sstephenson/bats) - Bash Automated Testing System * [composure](https://github.com/erichs/composure) - Compose, document, version and organize your shell functions * [dispatch](https://github.com/Mosai/workshop/blob/master/doc/dispatch.md) - A command line argument parser in 50 lines of portable shell script. * [shpec](https://github.com/rylnd/shpec) - A shell testing framework * [sub](https://github.com/basecamp/sub) - a delicious way to organize programs * [ts](https://github.com/thinkerbot/ts) - a shell test script ## Multimedia *Tools for handling video and audio files.* * [Beets](https://github.com/sampsyo/beets) - Music library manager and MusicBrainz tagger * [PiCAST](https://github.com/lanceseidman/PiCAST) - PiCAST turns your $35 Raspberry Pi in to a Chromecast like Device ## Games *All work and no play is a cruddy way to spend your day.* * [bash2048](https://github.com/mydzor/bash2048) - Bash implementation of 2048 game * [minesweeper](https://github.com/feherke/Bash-script/blob/master/minesweeper/minesweeper.sh) - Bash implementation of minesweeper * [sedtris](https://github.com/uuner/sedtris) - Tetris in sed * [sed-scripts](https://github.com/aureliojargas/sed-scripts) - Arkanoid and Sokoban written using sed ## Utilities and Tools *Other various neat gizmos to make your terminal experience more enjoyable.* * [adb-export](https://github.com/sromku/adb-export) - Export Android content providers to CSV format * [Android-Kitchen](https://github.com/dsixda/Android-Kitchen) - A text-based kitchen for Android ROM customization. Uses shell scripts and works with Cygwin/OS X/Linux * [ansiweather](https://github.com/fcambus/ansiweather) - Weather in your terminal, with ANSI colors and Unicode symbols * [autoenv](https://github.com/kennethreitz/autoenv) - Directory-based environments * [autojump](https://github.com/joelthelion/autojump) - A cd command that learns - easily navigate directories from the command line * [bash-slugify](https://github.com/benlinton/bash-slugify) - Command that converts filenames and directories to a web friendly format * [bashmarks](https://github.com/huyng/bashmarks) - Directory bookmarks for the shell * [byobu](http://byobu.co/) - Text-based window manager and terminal multiplexer * [cloc](http://cloc.sourceforge.net) - Count Lines of Code * [commacd](https://github.com/shyiko/commacd) - A faster way to move around in Bash * [cv](https://github.com/Xfennec/cv) - Linux tool to show progress for cp, rm, dd, ... * [fasd](https://github.com/clvv/fasd) - Command-line productivity booster, offers quick access to files and directories * [geeknote](https://github.com/VitaliyRodnenko/geeknote) - Command line evernote client * [git-extras](https://github.com/visionmedia/git-extras) - GIT utilities -- repo summary, repl, changelog population, author commit percentages and more * [git-sh](https://github.com/rtomayko/git-sh) - A customized bash environment suitable for git work * [quick-secure](https://github.com/marshyski/quick-secure) - Quickly secure and harden UNIX/Linux systems * [hhighlighter](https://github.com/paoloantinori/hhighlighter) - Colorize words in a command output * [hr](https://github.com/LuRsT/hr) - `
` for your terminal * [hstr](https://github.com/dvorka/hstr) - BASH History Suggest Box * [image-scraper](https://github.com/sananth12/ImageScraper) - A cool command line image scraper with a lot of features. * [jq] (https://github.com/stedolan/jq) - Sed for json data. You can use it to slice and filter and map and transform structured data * [jrnl](https://github.com/maebert/jrnl) - A simple command line journal application that stores your journal in a plain text file * [k](https://github.com/supercrabtree/k) - k is a zsh script to make directory listings more readable, adding git status, fileweight colors and rotting dates * [ledger](https://github.com/ledger/ledger) - Command line accounting * [lsp](https://github.com/dborzov/lsp) - An improved `ls`, with file descriptions in plain language and intelligent file grouping * [mr](https://github.com/joeyh/myrepos) - Multiple Respository management tool * [ncdu](http://dev.yorhel.nl/ncdu) - NCurses Disk Usage * [parallel](http://www.gnu.org/software/parallel) - Build and execute shell command lines from standard input in parallel * [percol](https://github.com/mooz/percol) - Adds flavor of interactive filtering to the traditional pipe concept of UNIX shell * [pretty-time-zsh](https://github.com/sindresorhus/pretty-time-zsh) - Convert seconds to a human readable string: `165392` → `1d 21h 56m 32s` * [rerun](https://github.com/rerun/rerun) - A modular shell automation framework to organize your keeper scripts * [sejda](https://github.com/torakiki/sejda/) - Command line manipulation of PDF documents (split, merge, rotate, convert to jpg, extract text, etc) * [semver_bash](https://github.com/cloudflare/semver_bash) - Semantic Versioning in Bash * [shellcheck](https://github.com/koalaman/shellcheck) - Static analysis tool for shell scripts * [shipit](https://github.com/sapegin/shipit) - Minimalistic SSH deployment * [slap](https://github.com/slap-editor/slap) - Sublime-like terminal-based text editor that runs on Node.js * [spark](https://github.com/holman/spark) - ▁▂▃▅▂▇ in your shell * [spot](https://github.com/guille/spot) - Tiny file search utility * [sshrc](https://github.com/Russell91/sshrc) - bring your .bashrc, .vimrc, etc. with you when you ssh * [tmux](http://tmux.sourceforge.net/) - amazing terminal multiplexer * [transfer.sh](https://transfer.sh/) — Quickly upload and share files from your shell * [v](https://github.com/rupa/v) - z for vim. * [wemux](https://github.com/zolrath/wemux) - Multi-User Tmux Made Easy * [z](https://github.com/rupa/z) - z is the new j, yo * [zsh-dwim](https://github.com/oknowton/zsh-dwim) - ZSH Do what I mean. * [zsh-notify](https://github.com/marzocchi/zsh-notify) - Desktop notifications for long running commands in zsh * [zshmarks](https://github.com/jocelynmallon/zshmarks) - A port of Bashmarks (simple bookmarking plugin by Todd Werth) for oh-my-zsh * [ag](https://github.com/ggreer/the_silver_searcher) - Super fast string search through a directory hierarchy * [sshfs](https://github.com/osxfuse/sshfs) - A tool for mounting remote file systems over SSH # Guides * [Bash Hackers Wiki](http://wiki.bash-hackers.org/) * [Greg Wooledge's (aka "greycat") wiki](http://mywiki.wooledge.org). Specifically [Bash Guide](http://mywiki.wooledge.org/BashGuide), [Bash FAQ](http://mywiki.wooledge.org/BashFAQ) and [Bash Pitfalls](http://mywiki.wooledge.org/BashPitfalls) * [Google's Shell Style Guide](https://google-styleguide.googlecode.com/svn/trunk/shell.xml) * [The Linux Documentation Project: Bash Programming - Intro/How-to](http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html#toc) * [The Linux Documentation Project: Advanced Bash Scripting Guide](http://www.tldp.org/LDP/abs/html/) * [WikiBooks: Bash Shell Scripting](http://en.wikibooks.org/wiki/Bash_Shell_Scripting) * [Use the Unofficial Bash Strict Mode (Unless You Looove Debugging)](http://redsymbol.net/articles/unofficial-bash-strict-mode/) # Other Awesome Lists Other amazingly awesome lists can be found in [awesome-awesome](https://github.com/emijrp/awesome-awesome) and [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness).