NOTE: Documentation is best viewed on https://bash-dev-env.devlab.top
- 1. Overview & Installation
- 2. Features & Supported Software
- 3. Usage, Updates & Migration
- 4. Acknowledgements
Bash Dev Env is a modular Bash-based system for installing, configuring, and maintaining essential developer tools and environments on Ubuntu-based systems (WSL, VirtualBox, or native). It leverages the Bash Tools Framework and a custom compiler to automate setup, upgrades, and configuration for a wide range of developer software, shells, and utilities. The project is designed for repeatable, reliable, and customizable environment management, with built-in backup and update mechanisms.
TIP: Checkout related projects of this suite
Bash Dev Env provides a unified, automated way to install, configure, and maintain a comprehensive set of developer tools and environments on Ubuntu-based systems (including WSL, VirtualBox, and native installs). It uses modular Bash scripts and the Bash Tools Framework to manage everything from shells (Bash, Zsh), editors, version control, cloud tools, and more. Installation is straightforward—just follow the installation instructions.
This project automates the installation, configuration, and updating of a wide range of developer tools and environments, including:
- Shells: Bash (with aliases, completions, custom prompts), Zsh (with plugins, themes, Fzf integration)
- Version control: Git (with default config, aliases, hooks, pre-commit integration)
- Cloud & DevOps: AWS CLI, Awsume, Saml2Aws, Kubernetes tools (Helm, Kind, Minikube), OpenVPN
- Editors & IDEs: Vim, VS Code (with extension profiles), Jetbrains Toolbox
- Utilities: Fzf, fd, jq, curl, dos2unix, parallel, pv, unzip, wget, mysql-client, putty-tools
- Linters & Checkers: ShellCheck, Hadolint, Composer dependencies, Node dependencies (prettier, stylelint, etc.)
- Misc: PlantUML, Fortune, Xvfb, Anacron (for WSL), Docker (VirtualBox), Chrome, Firefox, LXDE, Terminator, font installers
The system is designed for repeatable, idempotent installs and supports backup of config files before changes. It also provides mechanisms for periodic updates and easy migration between distributions.
- Usage: Run the main install script to set up or update your environment. The process is safe to repeat and will only update what’s needed.
- Updates: Anacron (on WSL) can be configured for scheduled updates. The install script is designed for regular re-execution.
- Migration: Tools and scripts are provided to help migrate your environment and data between distributions using
rsync and shared mounts. Config backups are stored in the
backupdirectory for safety.
This project draws inspiration from many sources. Special thanks to Bazyli Brzóska for his work on Bash Infinity, which inspired much of the framework design (and some code). His blog is also highly recommended for anyone interested in advanced Bash scripting.