Top Related Projects
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
A collection of ZSH frameworks, plugins, themes and tutorials.
🖥 📊 🕹 🛠 A curated list of command line apps
Use your macOS terminal shell to do awesome things.
Master the command line, in one page
💥 A curated list of Terminal frameworks, plugins & resources for CLI lovers.
Quick Overview
Awesome-bash is a curated list of awesome Bash scripts and resources. It serves as a comprehensive collection of tools, frameworks, and learning materials for Bash scripting, aimed at both beginners and experienced users. The repository is part of the larger "awesome" series, known for high-quality, community-driven lists.
Pros
- Extensive collection of Bash resources in one place
- Regularly updated with new tools and resources
- Well-organized into categories for easy navigation
- Community-driven, ensuring quality and relevance
Cons
- May be overwhelming for absolute beginners
- Some listed resources might become outdated over time
- Lacks in-depth explanations or tutorials for each tool
- Primarily focuses on listing resources rather than providing direct learning content
Code Examples
As this is not a code library but a curated list of resources, there are no specific code examples to provide. However, the repository contains links to numerous Bash scripts and tools that users can explore for code examples.
Getting Started
Since awesome-bash is a curated list rather than a code library, there's no specific installation or setup process. To use the resources:
- Visit the GitHub repository: https://github.com/awesome-lists/awesome-bash
- Browse through the categories to find resources you're interested in
- Click on the links to access the tools, scripts, or learning materials
- Star or fork the repository to keep track of updates
For those new to Bash, consider starting with the "Learning Resources" section to build a foundation before exploring the more advanced tools and scripts listed in the repository.
Competitor Comparisons
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
Pros of awesome-shell
- Broader scope, covering various shells and command-line tools
- More comprehensive, with a larger number of curated resources
- Includes sections on shell scripting frameworks and guidelines
Cons of awesome-shell
- Less focused on Bash-specific resources
- May be overwhelming for beginners due to its extensive list
- Updates less frequently than awesome-bash
Code comparison
While both repositories primarily consist of curated lists rather than code, here's a comparison of their README structures:
awesome-shell:
# Awesome Shell
- [Shells](#shells)
- [Command-Line Productivity](#command-line-productivity)
- [Customization](#customization)
- [For Developers](#for-developers)
awesome-bash:
# Awesome Bash
A curated list of delightful Bash scripts and resources.
- [Bash](#bash)
- [Learning Resources](#learning-resources)
- [Command-Line Productivity](#command-line-productivity)
Both repositories use similar Markdown structures, but awesome-bash focuses specifically on Bash-related content, while awesome-shell covers a broader range of shell-related topics.
A collection of ZSH frameworks, plugins, themes and tutorials.
Pros of awesome-zsh-plugins
- Focuses specifically on Zsh plugins, providing a more curated and specialized list
- Includes a wider variety of Zsh-specific tools and frameworks
- Regularly updated with new plugins and contributions
Cons of awesome-zsh-plugins
- Limited to Zsh, not as versatile for users of other shells
- May include some plugins that are less stable or well-maintained
- Can be overwhelming for beginners due to the large number of options
Code Comparison
awesome-bash example:
#!/bin/bash
echo "Hello, World!"
awesome-zsh-plugins example:
#!/usr/bin/env zsh
echo "Hello, World!"
The code examples are similar, with the main difference being the shebang line. Zsh offers additional features and syntax improvements over Bash, which are not apparent in this simple example but become more evident in complex scripts.
awesome-bash provides a comprehensive list of Bash resources, including tutorials, style guides, and command-line tools. It's an excellent starting point for Bash users and those looking to improve their shell scripting skills across different Unix-like systems.
awesome-zsh-plugins, on the other hand, is tailored specifically for Zsh users. It offers a vast collection of plugins that enhance the Zsh experience, including themes, completions, and productivity tools. This repository is ideal for users who have already chosen Zsh as their preferred shell and want to customize and optimize their environment.
🖥 📊 🕹 🛠 A curated list of command line apps
Pros of awesome-cli-apps
- Broader scope, covering CLI apps in various programming languages
- More extensive list with a wider range of applications and tools
- Better organization with clear categories and subcategories
Cons of awesome-cli-apps
- Less focused on Bash-specific tools and resources
- May include some outdated or less maintained projects due to its broader scope
- Lacks in-depth information on Bash scripting techniques and best practices
Code comparison
While both repositories primarily consist of curated lists rather than code, here's a comparison of their README structures:
awesome-cli-apps:
# Awesome CLI Apps
- [Entertainment](#entertainment)
- [Music](#music)
- [Social Media](#social-media)
- [Development](#development)
- [Version Control](#version-control)
- [Databases](#databases)
awesome-bash:
# Awesome Bash
A curated list of delightful Bash scripts and resources.
- [Shells](#shells)
- [Command-Line Productivity](#command-line-productivity)
- [Customization](#customization)
Both repositories use similar Markdown structures for their READMEs, but awesome-cli-apps has a more detailed categorization system, while awesome-bash focuses specifically on Bash-related content.
Use your macOS terminal shell to do awesome things.
Pros of awesome-macos-command-line
- Focused specifically on macOS command-line tools and tricks
- Includes system-specific commands and utilities not found in general Bash resources
- Organized into clear categories for easy navigation
Cons of awesome-macos-command-line
- Limited to macOS, not applicable for other Unix-like systems
- May become outdated as macOS evolves, requiring frequent updates
- Less comprehensive for general Bash scripting techniques
Code Comparison
awesome-macos-command-line example:
# Enable HiDPI display modes
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
awesome-bash example:
# Function to extract various archive formats
extract() {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar e $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
Master the command line, in one page
Pros of the-art-of-command-line
- Provides a comprehensive guide for both beginners and experienced users
- Offers practical tips and real-world examples
- Covers a wide range of command-line topics beyond just Bash
Cons of the-art-of-command-line
- Less structured organization compared to awesome-bash
- May be overwhelming for absolute beginners
- Lacks categorization of resources and tools
Code Comparison
the-art-of-command-line:
# Find files with string 'foo' and print the line number
grep -R --line-number 'foo' .
# Quickly create a directory hierarchy
mkdir -p a/long/directory/path
awesome-bash:
# Print the last 10 lines of a file
tail -n 10 file.txt
# Find the largest files in a directory
du -sh * | sort -rh | head -n 5
Both repositories offer valuable command-line resources, but they serve different purposes. the-art-of-command-line provides a more narrative-driven approach with practical tips and examples, making it suitable for users looking to improve their command-line skills. awesome-bash, on the other hand, offers a curated list of Bash-specific resources, tools, and scripts, making it ideal for those seeking a structured collection of Bash-related content.
💥 A curated list of Terminal frameworks, plugins & resources for CLI lovers.
Pros of terminals-are-sexy
- Broader scope, covering various terminal-related topics beyond just Bash
- Includes sections on terminal emulators, shells, and terminal utilities
- More visually appealing with emojis and better organization
Cons of terminals-are-sexy
- Less focused on Bash-specific resources
- May be overwhelming for beginners due to the wide range of topics covered
- Updates less frequently compared to awesome-bash
Code comparison
terminals-are-sexy:
## 🔧 Tools
- [bat](https://github.com/sharkdp/bat) - A cat(1) clone with wings.
- [exa](https://the.exa.website/) - A modern replacement for ls.
- [lsd](https://github.com/Peltoche/lsd) - The next gen ls command.
awesome-bash:
## Command-Line Productivity
- [aliases](https://github.com/sebglazebrook/aliases) - Contextual, dynamic, organized aliases for the bash shell
- [bashhub](https://github.com/rcaloras/bashhub-client) - :cloud: Bash history in the cloud. Indexed and searchable.
- [bashmarks](https://github.com/huyng/bashmarks) - Directory bookmarks for the shell
Both repositories provide curated lists of terminal-related resources, but terminals-are-sexy offers a broader scope covering various aspects of terminal usage. awesome-bash focuses specifically on Bash-related tools and resources, making it more targeted for Bash users. The code comparison shows that terminals-are-sexy includes more modern command-line tools, while awesome-bash emphasizes productivity-enhancing Bash utilities.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Awesome Bash
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.
Contents
- Books and Resources
- Command-Line Productivity
- Customization
- Data
- For Developers
- Downloading and Serving
- Applications
- Games
- Website
- Shell Package Management
- Shell Script Development
- Just for fun
- Community
- Other Awesome Lists
- Contribute
- License
Books and Resources
- The Bash-Hackers Wiki - Human-readable documentation of any kind about GNU Bash.
- Bash beginner's mistakes - List of Bash beginner 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).
- Safe ways to do things in bash - How to do things safely in Bash.
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 :cloud:.
- 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.
- forkrun - A pure-bash tool for running code in parallel. Similar in syntax and speed to
xargs -P
, but with more features and native Bash function support. - 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.
- utility-bash-scripts - Useful bash scripts to do automatable tasks with a single command.
- 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.
- oh-my-bash - A delightful community-driven framework for managing your bash configuration.
- 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
- 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).
- 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.
- lobash - A modern, safe, powerful utility/library for Bash script development.
- 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.
- json.bash - Bash library and command-line tool that creates JSON.
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.
Top Related Projects
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
A collection of ZSH frameworks, plugins, themes and tutorials.
🖥 📊 🕹 🛠 A curated list of command line apps
Use your macOS terminal shell to do awesome things.
Master the command line, in one page
💥 A curated list of Terminal frameworks, plugins & resources for CLI lovers.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot