Awesome Bash
A curated list of delightful Bash scripts and resources.
Inspired by the awesome list thing.
In addition of 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 awesome-link.
Books and Resources
- The Bash-Hackers Wiki - Human-readable documentation of any kind about GNU Bash
- Bash beginner's mistakes (by the Bash-Hackers Wiki)
- Bash Guide - A bash guide for beginners. (by Lhunath)
- Bash FAQ - Answers most of your questions (by Lhunath)
- Bash Pitfalls - Lists the common pitfalls beginners fall into, and how to avoid them
- Bash manual - Bourne-Again Shell manual
- Bash FAQ (by Chet Ramey)
- Advanced Bash-Scripting Guide - An in-depth exploration of the art of shell scripting
- Bash Guide for Beginners (by Machtelt Garrels)
- Bash Programming - Intro/How-to
- bash-handbook - A handbook for those who want to learn Bash without diving in too deeply
- Google's Shell Style Guide - Reasonable advice about code style
- Sobell's Book - A practical guide to commands, editors, and shell programming
- WikiBooks: Bash Shell Scripting
- Use the Unofficial Bash Strict Mode (Unless You Looove Debugging)
- learnyoubash - An interactive workshopper which will teach you how to use the terminal and write your the first Bash script.
- Defensive BASH Programming - Methods to defend your programs from breaking as well as keeping the code tidy and clean.
- Pure Bash Bible - A collection of pure bash alternatives to external processes.
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
- 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 OSX 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
- 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
- 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
- solitaire - Bash implementation of solitaire
- wordle - Wordle in less than 50 lines of Bash
Website
- Bash One-Liners - A collection of practical or just pure awesome bash one-liners (repos by @janosgyerik)
- commandlinefu - A repository for the most elegant and useful UNIX commands
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).
- BashScriptTestingLibrary - 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
- mo - Mustache templates in pure bash
- semver_bash - Semantic Versioning in Bash
- shellcheck - A static analysis tool for shell scripts
- 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
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
To the extent possible under law, aloisdg has waived all copyright and related or neighboring rights to this work.