Skip to content

Latest commit

 

History

History
177 lines (137 loc) · 13.1 KB

README.md

File metadata and controls

177 lines (137 loc) · 13.1 KB

Awesome Bash Awesome

My personal list of delightful Bash scripts and resources.

In addition to this list, consider reading awesome-shell, awesome-zsh or awesome-fish.

Applications

Documentation Generation

  • shdoc - Documentation generator for shell scripts.
  • jqmd - Write and document your jq/shell scripts with markdown.
  • zshelldoc - Doxygen For Shell Scripts.

Tools

Cool Things

Web Frameworks

  • bash-stack - modern web framework in bash.
  • sherver - Pure Bash lightweight web server.
  • bashttpd - A web server written in Bash.
  • ngincat - Tiny Bash HTTP server using netcat.
  • balls - Bash on Balls.

Testing

  • bats - Bash Automated Testing System.
  • shunit2 - shUnit2 is a xUnit based unit test framework for Bourne based shell scripts.
  • assert.sh - Bash unit testing framework.
  • bash_unit - Bash unit testing enterprise edition framework for professionals.
  • bunit - A unit testing framework for Shell scripts - namely Bash.
  • assert.sh (original).
  • test-runner.bash - Integrations Test Runner for tests.sh.

Libraries

Reusable Things

  • modernish - Modernish is a library for writing robust, portable, readable, and powerful programs for POSIX-based shells and utilities.
  • bash-oo-framework (original)
  • bash3boilerplate - Templates to write better Bash scripts.
  • bashful - A collection of libraries to simplify writing Bash scripts.
  • bashly - Bash command line framework and CLI generator.
  • Bashmatic - An easy to use DSL library for building BASH-based tooling & installers (900+ functions).
  • Bash Infinity - A modern boilerplate / framework / standard library for bash.
  • bash-modules - A collection of modules for unofficial strict mode.
  • ebash - enhanced bash.
  • bash-lib - Library for bash utility methods and tools.
  • DevOps-Bash-tools - 750+ DevOps Shell Scripts and Advanced Bash environment.

Helper Function Things

  • bashify - Few helper functions in bash (especially string manipulation functions).
  • async-bash - Implementation of async functions in bash.
  • emitter - Event listeners for bash.
  • furious-bash - Furious is a bash script that benchmarks bunch of functions, and gives you the ability to be able to extract the fastest or slowest function.

Analysis

  • mvdan/sh - A shell parser, formatter, and interpreter with bash support; includes shfmt.
  • shellcheck - A static analysis tool for shell scripts.
  • shellharden - The corrective bash syntax highlighter.
  • kcov - Code coverage tool for compiled programs, Python and Bash.

Interactive Tools

  • bash-preexec - zap preexec and precmd functions for Bash just like Zsh.
  • bleh.sh - Bash Line Editor―a full-featured line editor written in pure Bash!
  • bash-completion - Programmable completion functions for bash.

Prompts and Color Themes

  • 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
  • liquidprompt - A full-featured & carefully designed adaptive prompt for Bash & Zsh
  • oh-my-git - An opinionated git prompt for bash and zsh
  • sexy-bash-prompt - Bash prompt with colors, Git statuses, and Git branches
  • bash-sensible - An attempt at saner Bash defaults

Command-Line Productivity

  • 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.
  • 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.

Package Managers and Tools

  • basher - A package manager for shell scripts.
  • bpkg - A lightweight bash package manager.
  • basalt - The rock-solid Bash package manager.
  • ash - 🐚 A Modular Bash Framework.
  • import.bash Golang-like import statement in bash.
  • bpm (original).

Profile Initialization Frameworks

  • bash-it - A community Bash framework.
  • oh-my-bash - A delightful community-driven framework for managing your bash configuration, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.

Organizations

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

Books and Resources

Credit

Credit to whetu on Reddit for this post.