Ranked awesome lists, all in one place
This list is a copy of alebcay/awesome-shell with ranks
█████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███╗ ███╗███████╗
██╔══██╗██║ ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝
███████║██║ █╗ ██║█████╗ ███████╗██║ ██║██╔████╔██║█████╗
██╔══██║██║███╗██║██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝
██║ ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
███████╗██╗ ██╗███████╗██╗ ██╗
██╔════╝██║ ██║██╔════╝██║ ██║
███████╗███████║█████╗ ██║ ██║
╚════██║██╔══██║██╔══╝ ██║ ██║
███████║██║ ██║███████╗███████╗███████╗
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
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.
- Shells
- Command-Line Productivity
- Customization
- For Developers
- System Utilities
- Downloading and Serving
- Multimedia and File Formats
- Applications
- Games
- Shell Package Management
- Shell Script Development
- Guides
- Awesome Zsh
- Awesome Fish
- Other Awesome Lists
Shells
Choose your base shell.
- bash - GNU Project’s shell (Bourne Again SHell)
- fish - Smart and user-friendly command line shell
- xiki - Makes the shell console more friendly and powerful
- xonsh - Python-ish, BASHwards-looking shell language and command prompt
- zsh - Powerful shell with scripting language
Command-Line Productivity
Search, bookmarks, multiplexing, and other tools that make your terminal experience more productive.
- AdvancedNewFile ★9 - Fast creation of files and directories in a recursive way. Inspired by the Vim plugin.
- ag ★14002 - Super fast string search through a directory hierarchy
- aliases ★104 - Contextual, dynamic, organized aliases for bash
- aliasme ★34 - alias helper to change directory quickly
- autoenv ★3763 - Directory-based environments
- autojump ★6225 - A cd command that learns - easily navigate directories from the command line
- bashhub ★420 - Bash history in the cloud. Indexed and searchable.
- bashmarks ★1207 - Directory bookmarks for the shell
- bd ★706 - Quickly go back to a parent directory
- boilr ★596 - A blazingly fast CLI tool for creating projects from boilerplate templates.
- boom ★1073 - Store links and snippets in the commandline
- borg ★1294 - A terminal based search engine for bash commands
- Buku ★1663 - Powerful command-line bookmark manager
- byobu - Text-based window manager and terminal multiplexer
- commacd ★194 - A faster way to move around in Bash
- desk ★2018 - A lightweight workspace manager for the shell
- direnv ★2978 - An environment switcher for the shell, compare with autoenv
- enhancd ★766 - A next-generation cd command with an interactive filter
- fasd ★3409 - Command-line productivity booster, offers quick access to files and directories
- foxy ★9 ⏳1Y - Plain text bookmarks for firefox and surf browsers.
- fz ★126 - Seamless fuzzy tab completion for z
- fzf ★12621 - A command-line fuzzy finder
- googler ★2131 - Google Search, Google Site Search, Google News from the terminal
-
has ★38 -
has
helps you check presence of various command line tools and their versions on path - hhighlighter ★230 - Colorize words in a command output
-
hr ★1039 -
<hr />
for your terminal - hstr ★813 - Bash History Suggest Box
- jump ★359 - Jump helps you navigate your file system faster by learning your habits.
- k ★867 - k is a Zsh script to make directory listings more readable, adding Git status, fileweight colors and rotting dates
- k alias ★7 ⏳1Y - get kool aliases (and more) working with a simple one-liner
- lf.sh ★10 - Quickly search files with fewer typings and do many more (grepping, copying path to clipboard, etc)
- marker ★665 - Bookmark your shell commands
- modules - Environment manager for the shell (compare to direnv and autoenv)
- nnn ★479 - File browser and disk usage analyzer with excellent desktop integration
- parallel - Build and execute shell command lines from standard input in parallel
- pathpicker ★3624 - Accepts inputs like grep, searches, git etc; allows selecting files from the result of the input, which you can then open or provide as argument to a command.
- percol ★2444 - Adds flavor of interactive filtering to the traditional pipe concept of UNIX shell
- qfc ★432 - File-completion widget for Bash and Zsh
- rg ★7357 - ripgrep is a line oriented search tool that combines the usability of The Silver Searcher with the raw speed of GNU grep
- SHML ★330 - Style framework for the terminal (Shell Markup Language)
- slugify ★194 ⏳1Y - Command that converts filenames and directories to a web friendly format
- sman ★145 - A command-line snippet manager
- spark ★4953 - ▁▂▃▅▂▇ in your shell
- Shark ★146 - ▁▂▃▅ Sparkline Generator
- sheet ★224 ⏳5Y - Text snippets for the command line
- spot ★637 - Tiny file search utility
- snips ★21 ⏳1Y - Commandline tool to manage snippets of code.
- sshfs ★498 - A tool for mounting remote file systems over SSH
- sshrc ★3888 - Bring your .bashrc, .vimrc, etc. with you when you SSH
- sudocabulary ★88 - Learn English Vocabulary from your terminal
- surfraw - browse specific site and search the web from your terminal without browser.
- thefuck ★32629 - Fix common shell mistakes by using an easy to remember command
- tldr ★185 - A fully-functional bash client for tldr, simplified and community-driven man pages
- tmux - Amazing terminal multiplexer
- up ★44 - Ascend directories by name or count; for bash, zsh, and fish.
- v ★291 ⏳1Y - z for vim.
- wemux ★2872 - Multi-User Tmux Made Easy
- z ★7586 - z is the new j, yo
Customization
Custom prompts, color themes, etc.
- base16-builder ★232 - Base16-Builder
- bash-full-of-colors ★26 ⏳1Y - Powerful prompt with screen, tmux, git support and many more
- bash-git-prompt ★3565 - An informative and fancy Bash prompt for Git users
- bash-powerline ★512 - Powerline-style Bash prompt in pure Bash script
- bashstrap ★1462 ⏳1Y - A quick way to spruce up OSX terminal
- bullet-train-oh-my-zsh-theme ★1579 - An oh-my-zsh shell theme based on the Powerline Vim plugin
- emojify ★941 Emoji on the command line
- flatui-terminal-theme - Nicer colors for terminal
- git-prompt ★317 - Bash prompt with Git, SVN and HG modules
- gittify ★23 ⏳1Y - A colorful Bash prompt + customized Git aliases
- Gogh - Color Scheme ★1583 - Color Scheme for Gnome Terminal
- liquidprompt ★3315 - A full-featured & carefully designed adaptive prompt for Bash & Zsh
- mysql-colorize ★42 ⏳1Y - Colorization for mysql comand-line client
- oh-my-git ★2760 - An opinionated git prompt for bash and zsh
- sexy-bash-prompt ★805 - Bash prompt with colors, Git statuses, and Git branches
For Developers
Command-line development, version control, and deployment.
- bcal ★65 - Byte CALculator for storage conversions and calculations
- bocker ★4635 - Docker implemented in 100 lines of bash
- cloc ★3879 - Count Lines of Code
- doclt ★16 - A command line interface to Digital Ocean
- dokku ★14751 - Docker powered mini-Heroku. The smallest PaaS implementation you’ve ever seen.
- getopts ★99 - CLI parser for fish
- git-extra-commands ★228 - Many Git extra utilities. Churn, cut-branch, improved-merge and many more.
- git-extras ★10883 - Git utilities – repo summary, repl, changelog population, author commit percentages and more
-
git-open ★1190 - Type
git open
to open the GitHub page or website for a repository in your browser - git-semver ★125 - Git plugin for easing semantic versioning and changelog validation
- git-sh ★680 - A customized Bash environment suitable for Git work
- git-up ★2726 - Automatically rebase incoming changes instead of merging. Be polite!
- hub ★12000 - hub helps you win at git.
- mr ★1 - Multiple Repository management tool
- overcommit ★2230 - A fully configurable and extendable Git hook manager
- pre-commit - A framework for managing and maintaining multi-language pre-commit hooks
- repren ★148 ⏳1Y - Command-line search-and-replace and file-renaming swiss army knife
- slap ★4792 - Sublime-like terminal-based text editor that runs on Node.js
- shipit ★361 - Minimalistic SSH deployment
- starring ★100 - Automatically star the npm-packages that you are using on GitHub.
- tag ★445 - Instantly jump to your ag matches.
System Utilities
OS-related tools, including system administration, system debugging, and file and process management.
- atop - ASCII full-screen performance monitor that is capable of reporting the activity of all processes
- ccat ★1993 - ccat is the colorizing cat. It works similar to cat but displays content with syntax highlighting.
- colorex - Displays files or sdtin with pretty colors for matched patterns.
- progress ★3535 - Linux tool to show progress for cp, rm, dd, …
- glances ★8869 - Glances an Eye on your system
- goaccess ★6168 - GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems.
- histstat ★35 - History for netstat
-
htop ★2690 - A ncurses based interactive process viewer which aims to be a better
top
- lnav - An advanced log file viewer for the small-scale
- ls++ ★349 - Colorized ls on steroids
-
lsp ★431 ⏳1Y - An improved
ls
, with file descriptions in plain language and intelligent file grouping - mtr ★786 - The functionality of the ‘traceroute’ and ‘ping’ programs in a single network diagnostic tool.
- ncdu - NCurses Disk Usage
- powertop ★277 - Battery/Power usage and device stats monitoring command-line tool, with tune-up options.
- procdog ★45 ⏳2Y - Lightweight command-line control of long-lived processes like servers
- quick-secure ★282 ⏳2Y - Quickly secure and harden UNIX/Linux systems
Downloading and Serving
Self-hosted, lightweight servers and networking tools written in shell scripts.
- aria2 ★7740 - aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, BitTorrent and Metalink
- balls ★678 ⏳1Y - Bash on Balls
- bashttpd ★884 - A web server written in Bash
- bitpocket ★924 - “DIY Dropbox” or “2-way directory (r)sync with proper deletion”
- Dropbox-Uploader ★5091 - Dropbox Uploader is a Bash script which can be used to upload, download, list or delete files from Dropbox
- httpie ★33320 - HTTPie is a command line HTTP client, a user-friendly cURL replacement
- ngincat ★127 ⏳3Y - Tiny Bash HTTP server using netcat
- resty ★2244 - Little command line REST client that you can use in pipelines
- youtube-dl ★32132 - Small command-line program to download videos from YouTube.com and other video sites
Multimedia and File Formats
Tools for handling video and audio files.
- adb-export ★49 - Export Android content providers to CSV format
- Android-Kitchen ★780 - A text-based kitchen for Android ROM customization. Uses shell scripts and works with Cygwin/OS X/Linux
- Beets ★6481 - Music library manager and MusicBrainz tagger
- cmus ★2430 - Cross-platform cli audio player.
- gifgen ★200 - Simple high quality GIF encoding
- image-scraper ★399 - A cool command line image scraper with a lot of features.
- imgp ★283 - Blazing fast batch image resizer and rotator
- jq ★10332 - Sed for json data. You can use it to slice and filter and map and transform structured data
- mpv - Lets you play most audio and video formats (using ASCII characters) in the shell as well as in a GUI.
- nehm ★31 - Console tool, which downloads, sets IDv3 tags and adds to your iTunes (if you use it) your SoundCloud likes in convenient way
- PiCAST ★1442 - PiCAST turns your $35 Raspberry Pi in to a Chromecast like Device
- sejda ★159 - Command line manipulation of PDF documents (split, merge, rotate, convert to jpg, extract text, etc)
- xidel ★83 - Cli tool to filter, map and create HTML/XML/JSON data with (Turing-complete) XPath and XQuery.
- xmlstarlet - Old but powerful tool for command-line XML formatting, filtering, and manipulation.
Applications
Command line-based applications or command line access to existing services.
- ansiweather ★1325 - Weather in your terminal, with ANSI colors and Unicode symbols
- bashblog ★633 - A Bash script that handles blog posting
- choosealicense-cli ★36 ⏳1Y - Choose an OSS license from the comfort of your terminal
- facebook-cli ★161 - Facebook command line tool
- fanyi ★348 - Translate English to Chinese in terminal
- geeknote ★1869 - Command line evernote client
- haxor-news ★2470 - Browse Hacker News like a haxor
- hn-cli ★393 ⏳1Y - Browse Hacker News from the comfort of your Terminal
- iponmap ★135 ⏳1Y - Draw point on world map using ip address
- isitup ★23 ⏳2Y - Check whether a website is up or down
- jrnl ★2823 - A simple command line journal application that stores your journal in a plain text file
- ledger ★2216 - Command line accounting
- licen ★26 ⏳2Y - Generate your license. Yet another lice, but implement with Jinja2 and docopt
- moviemon ★85 ⏳1Y - Everything about your movies within the command line.
- pockyt ★200 - Read, Manage, and Automate your Pocket collection.
- pushblast ★90 ⏳2Y - Get PushBullet notifications when a shell program exits
- pushbullet-bash ★186 - Bash interface to the PushBullet API
- Reddit Terminal Viewer ★2495 - Browse Reddit from your terminal
- SAWS ★3443 - A Supercharged AWS CLI
- taskwarrior - A command-line TODO list manager
- terjira ★362 - Command line power tool for Jira
- transfer.sh — Quickly upload and share files from your shell
- vl ★31 - URL link checker on text documents
- wego ★5098 - Weather app for the terminal
- whereami ★57 - Get your geolocation information from the CLI
- wttr.in ★4307 - The right way to check the weather (curl wttr.in)
Games
All work and no play is a cruddy way to spend your day.
- bash2048 ★609 - Bash implementation of 2048 game
- minesweeper - Bash implementation of minesweeper
- nudoku ★64 - ncurses based sudoku game written in C
- sedtris ★240 - Tetris in sed
- sed-scripts ★27 ⏳4Y - Arkanoid and Sokoban written using sed
- tty-solitaire ★82 - Play solitaire in your terminal!
Shell Package Management
Tools for managing multiple shell configurations. For zsh-specific tools, see the Zsh section.
- bash-it ★7195 - A community Bash framework
- basher ★307 - A package manager for shell scripts
- bpkg - JavaScript has npm, Ruby has Gems, Python has pip and now Shell has bpkg
- dotdrop ★86 - Save your dotfiles once, deploy them everywhere
- dotfiler ★133 – Shell agnostic git based dotfiles package manager, written in Python.
- fresh ★818 - Keep your dotfiles fresh
- homeshick ★1158 - Git dotfile synchronizer written in Bash
- shundle ★61 - Plugin manager for shell scripts
- vcsh ★1333 - Config manager based on Git
- yadm - Git-based dotfiles manager supporting encryption, alternates, and bootstrapping
Shell Script Development
Tools for writing, improving, or organizing Bash or other shell scripts
- ansi ★117 - ANSI escape codes in pure bash - change text color, position the cursor, much more
- assert.sh ★322 - Bash unit testing framework
- bashful ★350 ⏳1Y - A collection of libraries to simplify writing Bash scripts
- bashmanager ★39 ⏳1Y - mini bash framework for creating command line tools
- bashwithnails ★3 ⏳1Y - a Bash framework written just for fun with testing, dependency management & packaging
- bats ★4310 - Bash Automated Testing System
- crash ★10 - Proper error handling, exceptions and try/catch for ZSH
- Fishtape ★211 - TAP producer and test harness for fish
- composure ★210 ⏳1Y - Compose, document, version and organize your shell functions
- dispatch - A command line argument parser in 50 lines of portable shell script.
- is.sh ★46 - An alternative for builtin test command, it will make your “if” statements pretty
- lumberjack ★14 ⏳1Y - A logging interface for shell scripts
- mo ★162 - Mustache templates in pure bash
- optparse ★89 - A BASH wrapper for getopts, for simple command line arguments.
- rerun ★314 - A modular shell automation framework to organize your keeper scripts
- revolver ★45 - A reusable progress spinner for shell scripts
- semver_bash ★111 - Semantic Versioning in Bash
- sh-semver ★13 - Semver tool for bash - finds versions matching to specified rules
- shellcheck ★9571 - Static analysis tool for shell scripts
- shellfire ★1084 ⏳2Y - A repository of namespaced, composable shell (bash, sh and dash) function libraries
- shpec ★293 - A shell testing framework
- shutit - Automation framework based on bash and pexpect
- sub ★1401 - A delicious way to organize programs
- ts ★34 ⏳1Y - A shell test script
- urchin ★149 - An idiomatic shell testing framework that uses only shell commands
- shunit2 ★367 - A unit test framework for Bash scripts with a flavour of JUnit/PyUnit.
- rebash ★26 - Scripting library/framework. Features: imports, exceptions, doc-tests …
- zunit ★35 - A powerful unit testing framework for ZSH
Guides
- Bash Hackers Wiki
- Greg Wooledge’s (aka “greycat”) wiki. Specifically Bash Guide, Bash FAQ and Bash Pitfalls
- Google’s Shell Style Guide
- The Linux Documentation Project: Bash Programming - Intro/How-to
- The Linux Documentation Project: Advanced Bash Scripting Guide
- WikiBooks: Bash Shell Scripting
- Use the Unofficial Bash Strict Mode (Unless You Looove Debugging)
- The Art of Command Line ★32906
- Learn Enough Command Line to Be Dangerous
- A guide to learn bash ★8152
Other Awesome Lists
Other amazingly awesome lists can be found in awesome-awesome and awesome-awesomeness ★20295.
See also
This list is a copy of alebcay/awesome-shell with ranks