This script automates the setup of a complete development environment on a fresh Ubuntu 22.04 LTS installation. It is designed to be modular and idempotent, meaning you can run it multiple times without issues, and you can choose to run only specific parts of the installation.
- System Optimization: Disables sleep, removes Snapd, optimizes system parameters, and disables IPv6.
- Essential Tools: Installs common command-line tools like
git
,curl
,htop
,neofetch
, etc. - Development Languages: Installs Node.js, Rust, Go, and Miniconda (Python).
- Containerization: Installs Docker, Docker Compose, Rancher Desktop, and Minikube.
- System & GUI Tools: Installs multimedia applications, system utilities like GParted, and productivity tools like Flameshot and Remmina.
- Shell Configuration: Adds useful aliases and a custom prompt to
~/.bashrc
and~/.profile
. - Modular Execution: Allows running specific setup functions individually.
- A fresh installation of Ubuntu 22.04 LTS.
- Sudo (administrator) privileges.
First, make the script executable:
chmod +x ubuntu-ws-setup.sh
To run the entire setup process, simply execute the script without any arguments. This is the recommended method for a new system.
./ubuntu-ws-setup.sh
You can run one or more specific functions by passing their names as arguments to the script. This is useful if you only want to install a specific set of tools or re-run a part of the configuration.
To see a list of all available functions, use the -h
or --help
flag:
./ubuntu-ws-setup.sh --help
This will display a help menu with the list of available functions.
-
Install only development tools:
./ubuntu-ws-setup.sh install_dev_tools
-
Install system tools and configure the shell:
./ubuntu-ws-setup.sh install_system_tools configure_shell
-
Update the system and install essential tools:
./ubuntu-ws-setup.sh system_update_and_optimize install_essential_tools
- The script should not be run as root. It will ask for sudo privileges when needed.
- A reboot is recommended after the script finishes to ensure all changes take effect.
- The script creates backups of your
~/.bashrc
and~/.profile
files before modifying them.