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.
- The Bash-Hackers Wiki - Human-readable documentation of any kind about GNU Bash.
- Bash beginner's mistakes - List of Bash beginne 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 - 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.
- explainshell - A website that breaks down and explains shell (Bash) commands (including their flags and options).
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.
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.
Tools for working with data.
- BigBash - Open-source converter that generates a bash one-liner from an SQL Select query, no database necessary.
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.
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.
- 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.
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.
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.
- 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.
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.
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.
- 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.
- pokeget - Displays sprites of pokemon in the terminal.
- 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 amazingly awesome lists can be found in awesome-awesome and awesome-awesomeness.
Contributions welcome! Read the contribution guidelines first.
To the extent possible under law, aloisdg has waived all copyright and related or neighboring rights to this work.