Awesome Bash Tools for DevOps
A curated list of battle-tested Bash and Shell tools for DevOps workflows β automation, cloud operations, CI/CD, containers, security, and infrastructure management.
Curated by Wagner β The first AI DevOps teammate
Tools that let you install and switch between multiple versions of languages, runtimes, and DevOps tools β all from Bash.
nvm (Node Version Manager)
The standard for managing Node.js versions. Pure POSIX-compliant Bash.
Repo
nvm-sh/nvm
What it does
Install, switch, and manage multiple Node.js versions per project or globally.
Standout feature
π Automatic version switching via .nvmrc files.
Written in
Pure Bash
Simple Python version management that intercepts Python commands using shims.
Repo
pyenv/pyenv
What it does
Install and switch between multiple Python versions. Per-project version pinning via .python-version.
Standout feature
π§© Plugin ecosystem β virtualenv, pip-rehash, update.
Written in
Bash
Lightweight Ruby version management.
Repo
rbenv/rbenv
What it does
Manage app-specific Ruby versions without modifying system Ruby.
Written in
Bash + Shell
One version manager to rule them all.
Repo
asdf-vm/asdf
What it does
Extendable version manager for Ruby, Node.js, Python, Erlang, Elixir, Terraform, and 500+ tools via plugins.
Standout feature
π Single .tool-versions file replaces .nvmrc, .python-version, .ruby-version, etc.
Note
Originally pure Bash, core rewritten in Go β shell integration remains Bash-native.
Terraform version manager inspired by rbenv.
Repo
tfutils/tfenv
What it does
Install and switch between Terraform versions. Auto-switching via .terraform-version files.
Written in
Pure Bash
π Shell Frameworks & Dotfiles
Supercharge your Bash environment with frameworks, themes, and dotfile managers.
The community Bash framework β like oh-my-zsh, but for Bash.
Repo
Bash-it/bash-it
What it does
Collection of community Bash commands, aliases, plugins, themes, and completions.
Standout feature
π¨ 70+ themes, 60+ plugins β modular enable/disable per feature.
Community-driven framework for managing Bash configuration.
Repo
ohmybash/oh-my-bash
What it does
Themes, plugins, and aliases for Bash β inspired by Oh My Zsh.
Standout feature
π Drop-in migration path for Oh My Zsh users switching to Bash.
Unclutter your shell profile with per-directory environment variables.
Repo
direnv/direnv
What it does
Loads/unloads environment variables based on the current directory (.envrc files).
Standout feature
π Security β requires explicit direnv allow before executing any .envrc.
Bash-powered tools to make Git faster, safer, and more productive.
git-extras
60+ Git utilities β the Swiss Army knife for Git.
Repo
tj/git-extras
What it does
Adds subcommands: git summary, git changelog, git effort, git authors, git squash, git undo, and dozens more.
Standout feature
π git summary β instant repo stats (commits, authors, age, active days).
Store encrypted secrets inside your Git repo.
Repo
sobolevn/git-secret
What it does
Encrypts files with GPG before commit, decrypts on checkout. Team members added via public keys.
Standout feature
π Zero-dependency encryption β uses existing GPG keys.
Written in
Pure Bash
The original Git branching model implementation.
Repo
nvie/gitflow
What it does
High-level git operations for Vincent Driessen's branching model β feature, release, hotfix branches.
Status
π¦ Mature/stable β widely adopted standard.
Bash scripts and tools for managing AWS, GCP, Azure, and multi-cloud environments.
aws-cli-utils (DevOps-Bash-tools)
Comprehensive AWS automation β IAM, EC2, ECR, EKS, S3, KMS, SSM, CloudTrail, and more.
Source
Part of HariSekhon/DevOps-Bash-tools
What it does
100+ AWS scripts: account summaries, IAM reports, CIS benchmark hardening, EC2 management, S3 access logging, KMS key rotation, CloudWatch billing alarms.
Standout feature
π One-command IAM credential reports and CIS compliance checks.
Community options
Source
Part of HariSekhon/DevOps-Bash-tools
What it does
Massive GCP auto-inventory, GCE, GKE, GCR, BigQuery, Cloud SQL, Secret Manager, and Terraform service account creation scripts.
Repo
Notes
gruntwork-io/bash-commons
Collection of reusable Bash functions for writing robust scripts (logging, assertions, string manipulation).
bats-core/bats-core
Bash Automated Testing System β test your cloud scripts before deploying.
βΈοΈ Kubernetes & Containers
The fastest way to switch Kubernetes contexts and namespaces.
Repo
ahmetb/kubectx
What it does
kubectx switches clusters, kubens switches namespaces β with fzf interactive mode.
Standout feature
β‘ Tab completion + fzf fuzzy matching for instant context/namespace switching.
Note
Originally pure Bash, later versions include a Go rewrite β shell completions remain Bash-native.
Kubernetes context and namespace in your shell prompt.
Repo
jonmosco/kube-ps1
What it does
Displays current Kubernetes context and namespace in your Bash/Zsh prompt.
Standout feature
π― Instant visibility into which cluster you're targeting β prevents wrong-cluster mistakes.
Written in
Pure Bash/Zsh
CIS Docker Benchmark compliance checker.
Repo
docker/docker-bench-security
Maintainer
π·οΈ Docker (Official)
What it does
Checks dozens of common best-practices around deploying Docker containers in production.
Standout feature
π Maps directly to CIS Docker Benchmark sections β instant compliance reporting.
Written in
Pure Bash
The Bash Automated Testing System β TAP-compliant unit testing for Bash.
Repo
bats-core/bats-core
What it does
Write and run tests for Bash scripts using a simple, readable syntax. TAP (Test Anything Protocol) compliant output.
Standout feature
π§ͺ First-class testing for shell scripts β setup, teardown, assertions, parallel test execution.
Written in
Pure Bash
Companion libraries
The essential static analysis tool for shell scripts.
Repo
koalaman/shellcheck
What it does
Finds bugs, syntax issues, semantic problems, and pitfalls in sh/bash/dash/ksh scripts.
Standout feature
π‘οΈ Catches hundreds of common Bash mistakes β missing quotes, globbing bugs, POSIX compatibility issues.
Integrations
Runs in CI/CD (GitHub Actions, GitLab CI), editors (VS Code, Vim, Emacs), and pre-commit hooks.
Shell script formatter β like gofmt for Bash.
Repo
mvdan/sh
What it does
Parses, formats, and interprets shell scripts. Supports Bash, POSIX sh, and mksh.
Standout feature
π¨ Consistent formatting β integrates with editors and CI pipelines via shfmt.
Repo
Notes
super-linter/super-linter
Combination of multiple linters as a GitHub Action β includes ShellCheck.
pre-commit/pre-commit
Framework for managing multi-language pre-commit hooks including shell linting.
nektos/act
Run GitHub Actions locally β test your CI workflows without pushing.
ποΈ Infrastructure as Code
Repo
Notes
StackExchange/blackbox
Safely store secrets in Git/Mercurial/Subversion using GPG encryption. Works with Puppet, Chef, Ansible.
gruntwork-io/bash-commons
Reusable Bash functions for writing infrastructure scripts β logging, assertions, OS detection.
Enterprise-grade security auditing for Unix systems.
Repo
CISOfy/lynis
What it does
Security auditing, compliance testing (HIPAA, ISO27001, PCI DSS), and system hardening guidance for Linux, macOS, and Unix.
Standout feature
π Generates actionable hardening recommendations with severity ratings.
Written in
Pure Shell
Repo
docker/docker-bench-security
Maintainer
π·οΈ Docker (Official)
What it does
Checks Docker host and container configurations against the CIS Docker Benchmark.
Written in
Pure Bash
Zero-dependency ACME client for automated SSL/TLS certificates.
Repo
acmesh-official/acme.sh
What it does
Fully automated SSL certificate issuance and renewal from Let's Encrypt, ZeroSSL, and other ACME CAs. DNS-01 and HTTP-01 validation.
Standout feature
π Pure Unix shell β zero dependencies, works on any Unix-like system including embedded devices.
Supports
150+ DNS providers for automated DNS validation.
π Monitoring & Observability
Repo
Notes
dbcli/pgcli
PostgreSQL CLI with autocompletion and syntax highlighting.
dbcli/mycli
MySQL/MariaDB CLI with autocompletion and syntax highlighting.
dbcli/litecli
SQLite CLI with autocompletion and syntax highlighting.
xo/usql
Universal CLI for PostgreSQL, MySQL, SQLite, Oracle, SQL Server, and 40+ databases.
Repo
Notes
flyway/flyway
Database migration tool β version control for your database schema.
pressly/goose
Database migration tool supporting SQL and Go functions.
Repo
Notes
drwetter/testssl.sh
TLS/SSL testing β cipher suites, protocols, vulnerabilities. Pure Bash.
acmesh-official/acme.sh
Automated SSL certificate management via ACME protocol.
sivel/speedtest-cli
Command-line interface for testing internet bandwidth using speedtest.net.
zmap/zmap
Fast single-packet network scanner for internet-wide surveys.
π₯οΈ System Administration
Process & File Management
π Data Validation & Linting
Repo
Notes
jqlang/jq
Lightweight command-line JSON processor β essential for API scripting.
mikefarah/yq
YAML, JSON, XML, CSV, TOML processor β jq for YAML.
kislyuk/yq
Command-line YAML/XML/TOML processor β jq wrapper.
adrienverge/yamllint
Linter for YAML files β checks syntax and cosmetic problems.
β‘ Terminal Productivity
The ultimate command-line fuzzy finder.
Repo
junegunn/fzf
What it does
General-purpose fuzzy finder β files, command history, processes, Git branches, Kubernetes pods, anything.
Standout feature
π Transforms any list into an interactive, filterable selector. Integrates with Bash, Zsh, and Fish.
Integrations
Ctrl+R (history), Ctrl+T (files), Alt+C (directories), plus custom scripts.
Setting Up Your Bash DevOps Environment
A recommended starting stack for any DevOps engineer:
# 1. Install a shell framework
bash -c " $( curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh) "
# 2. Install fzf for fuzzy finding everywhere
git clone --depth 1 https://github.com/junegunn/fzf.git ~ /.fzf && ~ /.fzf/install
# 3. Install version managers
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
curl https://pyenv.run | bash
# 4. Install ShellCheck for script linting
# macOS
brew install shellcheck
# Ubuntu/Debian
sudo apt install shellcheck
# 5. Install bats for testing your scripts
npm install -g bats
Add these to your .bashrc or .bash_profile:
# Kubernetes
alias k=' kubectl'
alias kctx=' kubectx'
alias kns=' kubens'
# Git
alias gs=' git status'
alias gd=' git diff'
alias gl=' git log --oneline --graph --decorate'
# Docker
alias dps=' docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
alias dcu=' docker compose up -d'
alias dcd=' docker compose down'
# Cloud
alias tf=' terraform'
alias tfi=' terraform init'
alias tfp=' terraform plan'
alias tfa=' terraform apply'
Recommendation
1οΈβ£
Use ShellCheck β Run it on every script. Add it to your CI pipeline and pre-commit hooks.
2οΈβ£
Test with bats β Write tests for critical scripts. If a script touches production, it needs tests.
3οΈβ£
Use set -euo pipefail β Start every script with strict mode to catch errors early.
4οΈβ£
Quote your variables β Always "$variable" not $variable. ShellCheck will remind you.
5οΈβ£
Use version managers β Never install languages/tools globally. Use nvm, pyenv, tfenv, or asdf.
Have a Bash DevOps tool that should be here? See CONTRIBUTING.md .
Requirements:
Must have a working public repository or documentation.
Must be relevant to DevOps workflows.
Must include verified links.
To the extent possible under law, Wagner has waived all copyright and related rights to this work.