Skip to content

Instantly share code, notes, and snippets.

@a-h-abid
Last active April 12, 2025 15:46
Show Gist options
  • Save a-h-abid/748b6ca11c342b8733e25b0c14ddd9d8 to your computer and use it in GitHub Desktop.
Save a-h-abid/748b6ca11c342b8733e25b0c14ddd9d8 to your computer and use it in GitHub Desktop.
New Ubuntu Post-Installation Command
# Apt Updates & Upgrades
sudo apt update
sudo apt upgrade -y
# Apt Installs
sudo apt install -y tlp apt-transport-https ca-certificates curl nala zip unzip make
# Installs with Snap
sudo snap install telegram-desktop android-studio postman vlc
# Local Bin Dir
mkdir -p ~/.local/bin/
# Update .bashrc for ll alias
sed -i "s|^alias ll=.*|alias ll='ls -alFh --group-directories-first'|" ~/.bashrc
# Password Feedback
sudo cp /etc/sudoers /etc/sudoers.bak
sudo visudo
Defaults env_reset,pwfeedback
reset
# BlueTooth
sudo sed 's/AutoEnable=true/AutoEnable=false/' /etc/bluetooth/main.conf
# Gnome Tweaks
gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'nothing
gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize-or-previews'
# Gnome Shell Extensions
sudo nala install -y chrome-gnome-shell
# Git
sudo add-apt-repository ppa:git-core/ppa
sudo nala install -y git
# Docker
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo nala install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo groupadd docker
sudo usermod -aG docker $USER
echo '{
"log-driver": "local",
"log-opts": {
"max-size": "25m"
}
}' | sudo tee /etc/docker/daemon.json > /dev/null
sudo systemctl restart docker.service
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
echo '
# Docker Buildkit
export DOCKER_BUILDKIT=1
export COMPOSE_DOCKER_CLI_BUILD=1
export COMPOSE_BAKE=1
' >> ~/.bashrc
## PHP
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo nala install -y php8.3-cli php8.3-bcmath php8.3-curl php8.3-gd php8.3-grpc \
php8.3-intl php8.3-ldap php8.3-mbstring php8.3-opentelemetry php8.3-pcov \
php8.3-protobuf php8.3-pcntl php8.3-redis php8.3-sockets php8.3-swoole \
php8.3-xdebug php8.3-xml php8.3-xmlrpc php8.3-zip php8.3-mysql php8.3-sqlite3
php8.3-pgsql
sudo nala install -y php8.4-cli php8.4-bcmath php8.4-curl php8.4-gd php8.4-grpc
php8.4-intl php8.4-ldap php8.4-mbstring php8.4-opentelemetry php8.4-pcov \
php8.4-protobuf php8.4-pcntl php8.4-redis php8.4-sockets php8.4-swoole \
php8.4-xdebug php8.4-xml php8.4-xmlrpc php8.4-zip php8.4-mysql php8.4-sqlite3 \
php8.4-pgsql
# NVM
git clone https://github.com/nvm-sh/nvm.git ~/.nvm
echo '
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
' >> ~/.bashrc
# Java
sudo apt install default-jre
java -version
# Go Lang
mkdir -p ~/dev-tools/go/
curl -Lo ~/dev-tools/go.tar.gz https://go.dev/dl/go1.24.2.linux-amd64.tar.gz
tar -C ~/dev-tools -xzf go.tar.gz
# JMeter
export JMETER_VERSION=5.6.3
mkdir -p ~/dev-tools/jmeter
cd ~/dev-tools/jmeter
curl -L -o apache-jmeter-${JMETER_VERSION}.zip https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-${JMETER_VERSION}.zip
unzip apache-jmeter-${JMETER_VERSION}.zip
ln -s ~/dev-tools/jmeter/apache-jmeter-${JMETER_VERSION}/bin/jmeter ~/.local/bin/jmeter
#Jmeter Plugin
curl -L -o ~/dev-tools/jmeter/apache-jmeter-${JMETER_VERSION}/lib/ext/jmeter-plugins-manager-1.10.jar https://jmeter-plugins.org/get/
# Kubectl
curl -LO -o ~/.local/bin/kubectl "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ~/.local/bin/kubectl
# Kind
[ $(uname -m) = x86_64 ] && curl -Lo ~/.local/bin/kind https://kind.sigs.k8s.io/dl/v0.27.0/kind-linux-amd64
chmod +x ~/.local/bin/kind
# Helm
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt update
sudo nala install -y helm
# VirtualBox
# https://www.virtualbox.org/wiki/Linux_Downloads
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian '$(cat /etc/*-release | grep CODENAME | head -n1 | cut -d '=' -f2)' contrib' | sudo tee /etc/apt/sources.list.d/virtualbox.list > /dev/null
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor
sudo apt update
sudo nala install -y virtualbox-7.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment