Awesome Bash Awesome

A curated list of delightful Bash scripts and resources.

In addition to this list, you should read the list awesome-shell. It is a curated list of awesome command-line frameworks, toolkits, guides and gizmos. You may also want to check awesome-zsh or awesome-fish. If you are looking for more lists, check sindresorhus/awesome.

Books and Resources

Command-Line Productivity

Search, bookmarks, multiplexing, and other tools that make your terminal experience more productive.

  • aliases - Contextual, dynamic, organized aliases for the bash shell.
  • bashhub - Bash history in the cloud. Indexed and searchable ☁️.
  • bashhub-server - Privately hosted open source bashhub server.
  • bashmarks - Directory bookmarks for the shell.
  • ble.sh - User-friendly and feature rich readline replacement, with syntax highlighting, better command completion, and improved multi-line editing.
  • commacd - A faster way to move around in Bash.
  • has - has helps you check presence of various command line tools and their versions on path.
  • hstr - Bash History Suggest Box.
  • qfc - File-completion widget for Bash and Zsh.
  • sshrc - Bring your .bashrc, .vimrc, etc. with you when you SSH.
  • zoxide - A better way to navigate your filesystem. Written in Rust, cross-shell, and much faster than other autojumpers.

Customization

Custom prompts, color themes, etc.

  • aphrodite-terminal-theme - Minimalistic theme (prompt) for sexy terminals.
  • bash-git-prompt - An informative and fancy Bash prompt for Git users.
  • bash-powerline - Powerline-style Bash prompt in pure Bash script.
  • bashstrap - A quick way to spruce up macOS terminal.
  • git-prompt - Bash prompt with Git, SVN and HG modules.
  • gittify - A colorful Bash prompt + customized Git aliases.
  • liquidprompt - A full-featured & carefully designed adaptive prompt for Bash & Zsh.
  • LS_COLORS - A collection of LS_COLORS definitions.
  • mysql-colorize - Colorization for mysql comand-line client.
  • oh-my-git - An opinionated git prompt for bash and zsh.
  • progress-bar.sh - Simple & sexy progressbar for bash, give it a duration and it will do the rest.
  • sexy-bash-prompt - Bash prompt with colors, Git statuses, and Git branches.
  • bash-sensible - An attempt at saner Bash defaults.

Data

Tools for working with data.

  • BigBash - Open-source converter that generates a bash one-liner from an SQL Select query, no database necessary.

For Developers

Command-line development, version control, and deployment.

  • bocker - Docker implemented in 100 lines of bash.
  • git-sh - A customized Bash environment suitable for Git work.
  • mkdkr - Make + Docker + Shell = CI Pipeline.

Downloading and Serving

Self-hosted, lightweight servers and networking tools written in shell scripts.

  • balls - Bash on Balls.
  • bashttpd - A web server written in Bash.
  • sherver - Pure Bash lightweight web server.
  • httpd.sh - A trivial web server in bash, using ctypes.sh.
  • Bash-web-server - A purely bash web server, no socat, netcat, etc.
  • bash-stack - modern web framework in bash.
  • Dropbox-Uploader - Dropbox Uploader is a Bash script which can be used to upload, download, list or delete files from Dropbox.
  • ngincat - Tiny Bash HTTP server using netcat.
  • xiringuito - SSH-based VPN for poors.

Applications

Command line-based applications or command line access to existing services.

  • bashblog - A Bash script that handles blog posting.
  • pushbullet-bash - Bash interface to the PushBullet API.
  • todo.sh - A simple and extensible shell script for managing your todo.txt file.
  • cheapci - A continuous integration framework implemented in bash.

Games

All work and no play is a cruddy way to spend your day.

  • bash2048 - Bash implementation of 2048 game.
  • minesweeper - Bash implementation of minesweeper.
  • wordle - Wordle in less than 50 lines of Bash.

Website

Shell Package Management

Tools for managing multiple shell configurations.

  • bash-it - A community Bash framework.
  • basher - A package manager for shell scripts.
  • bpkg - A lightweight bash package manager.
  • homeshick - Git dotfile synchronizer written in Bash.

Shell Script Development

Tools for writing, improving, or organizing Bash or other shell scripts

  • ansi - ANSI escape codes in pure bash - change text color, position the cursor, much more.
  • argbash - Bash argument parsing code generator.
  • assert.sh - Bash unit testing framework.
  • async-bash - Implementation of async functions in bash.
  • bats - Bash Automated Testing System.
  • bash3boilerplate - Templates to write better Bash scripts.
  • bashful - A collection of libraries to simplify writing Bash scripts.
  • bashify - Few helper functions in bash (especially string manipulation functions).
  • bashing - Smashing Bash into Pieces - Bash framework for creating command line tools.
  • bashly - Bash command line framework and CLI generator.
  • bashmanager - Mini bash framework for creating command line tools.
  • Bashmatic - An easy to use DSL library for building BASH-based tooling & installers (900+ functions).
  • bunit - A unit testing framework for Bash scripts.
  • Bash Infinity - A modern boilerplate / framework / standard library for bash.
  • bash-modules - A collection of modules for unofficial strict mode.
  • bash_unit - Bash unit testing enterprise edition framework for professionals.
  • bashunit - A simple testing library for bash scripts.
  • mo - Mustache templates in pure bash.
  • semver_bash - Semantic Versioning in Bash.
  • shellcheck - A static analysis tool for shell scripts.
  • shellharden - The corrective bash syntax highlighter.
  • shfmt - Format bash programs.
  • shunit2 - A unit test framework for Bash scripts with a flavour of JUnit/PyUnit.
  • DevOps-Bash-tools - 750+ DevOps Shell Scripts and Advanced Bash environment.
  • modernish - Library with various features for shell scripting.

Just for fun

  • pokeget - Displays sprites of pokemon in the terminal.

Community

  • Stack Overflow - Bash tag on Stack Overflow.
  • /r/bash - A subreddit dedicated to bash scripting.
  • /r/commandline - For anything regarding the command line, in any operating system.
  • #bash - IRC channel on Libera.​Chat. The main contributors of the BashGuide, BashFAQ, BashPitfalls and ShellCheck hang around there.

Other Awesome Lists

Other amazingly awesome lists can be found in awesome-awesome and awesome-awesomeness.

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC0

To the extent possible under law, aloisdg has waived all copyright and related or neighboring rights to this work.