Last active
April 12, 2025 15:46
-
-
Save a-h-abid/748b6ca11c342b8733e25b0c14ddd9d8 to your computer and use it in GitHub Desktop.
New Ubuntu Post-Installation Command
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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