Complete Ubuntu setup guide for local development and playground on a GPU machine — includes Nvidia drivers, CUDA, dev tools, monitoring, and daily-use commands.
🧩 Base Setup
Update & Essentials
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl wget git unzip net-tools software-properties-common ca-certificates gnupg lsb-release
🎨 Shell & Editor
Zsh + Powerlevel10k
sudo apt install -y zsh fonts-powerline
chsh -s $(which zsh)
# Plugins
sudo apt install -y zsh-autosuggestions zsh-syntax-highlighting
echo 'source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc
echo 'source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc
# Powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc
Neovim
sudo apt install -y neovim
🧪 Development Tools
Git + Lazygit
sudo apt install -y git
sudo add-apt-repository ppa:lazygit-team/release -y
sudo apt update && sudo apt install -y lazygit
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
Docker + Lazydocker
# Docker
sudo apt remove -y docker docker-engine docker.io containerd runc
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker
# Lazydocker
sudo curl -L https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_$(uname -s)_$(uname -m).tar.gz | sudo tar -xz -C /usr/local/bin lazydocker
💻 SSH Server
sudo apt install -y openssh-server
sudo systemctl enable ssh --now
sudo ufw allow ssh
sudo systemctl status ssh
⚡ Nvidia Drivers + CUDA
📋 Check Latest Versions: For the most current Nvidia drivers and CUDA versions, visit:
- Nvidia Drivers: https://www.nvidia.com/drivers/
- CUDA Toolkit: https://developer.nvidia.com/cuda-downloads
- CUDA Archive: https://developer.nvidia.com/cuda-toolkit-archive
Install Nvidia Driver 520 + CUDA 11.8
#!/bin/bash
sudo apt purge nvidia* -y
sudo apt autoremove -y && sudo apt autoclean -y
sudo apt update && sudo apt upgrade -y
sudo apt install -y g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
sudo apt install -y libnvidia-common-520 libnvidia-gl-520 nvidia-driver-520
# CUDA 11.8 (check CUDA downloads page for latest version)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt update && sudo apt -y install cuda
rm cuda-ubuntu2204.pin cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb
Reboot and verify:
sudo reboot now
nvidia-smi
nvtop
(Optional) Container Toolkit
sudo apt remove --purge -y nvidia-container-toolkit
sudo apt update && sudo apt autoremove -y
apt list -a "*nvidia-container-toolkit*"
sudo apt install -y nvidia-container-toolkit=1.14.0-1 nvidia-container-toolkit-base=1.14.0-1
📊 Monitoring Tools
CPU / Memory
top
vmstat 1
mpstat -P ALL 1
Disk
iostat -x 1
Network
traceroute -n -w 2 -m 15 www.google.com
sar -n DEV 1
Processes / Syscalls
pidstat 1
perf record -F 99 -a -g -- sleep 10
perf report -n --stdio
🧠 Common Command Cheatsheet
System Info
lsblk # List block devices
df -h # Disk usage
free -h # Memory usage
lscpu # CPU info
uname -a # Kernel version
Networking
ip a # Show interfaces
ip route # Show routes
netstat -tulnp # Listening ports
traceroute <host> # Trace route
File & Search
find . -name "*.log"
grep -R "pattern" .
du -h --max-depth=1
Docker
docker ps -a
docker images
docker compose up -d
lazydocker
Git
git status
git log --oneline --graph --decorate --all
lazygit
Zsh
p10k configure