Ubuntu Terminal Add-Ons And Applications Every Platform Engineer Should Have

Valente Vidal
5 min readAug 13, 2023

--

After breaking my XORG profile in my Ubuntu work computer I decided, rather than spend more time trying to fix it, I should do a fresh install.

Since I’ll be installing everything from scratch it’s a good opportunity to write about it. If you are not interested in Ubuntu maybe check this article instead: Mac Terminal Add-Ons Every Platform Engineer Should Have

Installing Ubuntu

Before we can install everything from scratch we need to install Ubuntu. This is a very straightforward process :

Step 1: Download the ISO I’m going with 22.04.3

Step 2: Download Rufus & set up boot USB

Step 3: Install Ubuntu

Fresh Start

These are my preferred applications that I always install on a fresh computer

Barrier

The first thing I always install is Barrier, which allows me to use my Windows keyboard and mouse with my other computers

sudo apt install barrier

Chrome

Despite the hate Chrome gets these days I still use it almost every day, also there are several add-ons for Chrome that are essential to what I do.

Caffeine

Have you ever used a full-screen application and had to move the mouse to keep the screen from turning off?

sudo apt install caffeine

Slack

Used for work and for friend groups

sudo snap install slack

Zoom

From the website — https://zoom.us/download?os=linux

sudo apt install ./zoom_amd64.deb

NetSpeed

You would think living in London would mean you have good internet. Wrong. Because of this, I like to keep a network monitor display on the taskbar to see if the internet is slow on my side or on the side of the server.

This one takes some installation. First is chrome-gnome-shell

sudo apt install chrome-gnome-shell

Then Extension Manager from the Ubuntu Software app. From the Extension Manager app search for Net Speed. There are only 2 and only one is supported.

VS Code

My preferred code editor — https://code.visualstudio.com/docs/setup/linux

sudo apt install ./<file>.deb

PulseAudio for Ubuntu

PulseAudio gives you more control over your recording devices as well as well as playback devices. Very handy if you have more than one device.

sudo apt install pulseaudio -y

sudo apt install pavucontrol -y

Terminal Applications

Now we move to terminal add-ons and terminal-only applications like aws and kubectl. But before we start configuring and installing all the other applications in the terminal let’s pump the terminal interface with Oh My ZSH

ZSH

sudo apt install zsh

Great tutorial by @satriajanaka09

Dependencies

  • Install Git — sudo apt install git
  • Install Curl — sudo apt install curl
  • Install Git — sudo apt install vim (I thought that would have been installed by default but apparently not)

AWS

From the AWS website: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Kubectl

Essentials — https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/

kubectx and kubens

sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens



mkdir -p ~/.oh-my-zsh/custom/completions
chmod -R 755 ~/.oh-my-zsh/custom/completions
ln -s /opt/kubectx/completion/_kubectx.zsh ~/.oh-my-zsh/custom/completions/_kubectx.zsh
ln -s /opt/kubectx/completion/_kubens.zsh ~/.oh-my-zsh/custom/completions/_kubens.zsh
echo "fpath=($ZSH/custom/completions $fpath)" >> ~/.zshrc

PIP

Python3 comes preinstalled with Ubuntu 22.04 but pip doesn’t come with it.

sudo apt install python3-pip 

Vault

I use Hashicorp’s Vault quite a lot for work and for personal projects.

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vault

jq

jq is a command line based JSON processor that allows to transform, filter, slice, map, or perform other operations on JSON data.

sudo apt install -y jq

yq

Similar to jq but for yml outputs.

sudo snap install yq

libkecca & sha3sum

I was surprised that this wasn’t installed on Ubuntu 22.04. This is handy for working with key pair keys

git clone https://github.com/maandree/libkeccak
cd libkeccak
make
sudo make install
cd ..
git clone https://github.com/maandree/sha3sum.git
cd sha3sum
autoreconf -i
./configure
make
sudo make install

SSH Keys

Whether you are using Gitlab, Github or BitBucket you need to generate SSH keys and upload them to your repo.

ssh-keygen -t ed25519 

cat /home/<user>/.ssh/id_ed25519.pub

There will be applications that I will have forgotten but I will keep this article updated with any new stack that I end up using or that I forgot.

Single Script

#!/bin/bash

# Update package list and upgrade existing packages
sudo apt update
sudo apt upgrade -y

# Install Barrier
sudo apt install barrier -y

# Install Chrome
# You can manually download Chrome from the website and install it.

# Install Caffeine
sudo apt install caffeine -y

# Install Slack
sudo snap install slack --classic

# Install Zoom
# Download Zoom from the website and then install it.
# Example: sudo apt install ./zoom_amd64.deb

# Install NetSpeed
sudo apt install chrome-gnome-shell -y
# Install Extension Manager manually as described
# Search for and install Net Speed extension

# Install VS Code
# Download VS Code .deb package from the website and install it.
# Example: sudo apt install ./<file>.deb

# Install PulseAudio
sudo apt install pulseaudio pavucontrol -y

# Install ZSH
sudo apt install zsh -y

# Install ZSH dependencies
sudo apt install git curl vim -y

# Install AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

# Install kubectl
# Follow the provided link for installation instructions

# Install kubectx and kubens
sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens
mkdir -p ~/.oh-my-zsh/custom/completions
chmod -R 755 ~/.oh-my-zsh/custom/completions
ln -s /opt/kubectx/completion/_kubectx.zsh ~/.oh-my-zsh/custom/completions/_kubectx.zsh
ln -s /opt/kubectx/completion/_kubens.zsh ~/.oh-my-zsh/custom/completions/_kubens.zsh
echo "fpath=($ZSH/custom/completions $fpath)" >> ~/.zshrc

# Install Python3 pip
sudo apt install python3-pip -y

# Install Vault
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vault -y

# Install jq
sudo apt install -y jq

# Install yq
sudo snap install yq

# Install libkecca and sha3sum
git clone https://github.com/maandree/libkeccak
cd libkeccak
make
sudo make install
cd ..
git clone https://github.com/maandree/sha3sum.git
cd sha3sum
autoreconf -i
./configure
make
sudo make install

# Generate SSH Keys (Replace <user> with your username)
ssh-keygen -t ed25519
cat /home/<user>/.ssh/id_ed25519.pub

# You may need to manually configure and upload SSH keys to your Git repositories

echo "All installations and configurations are complete."

--

--

No responses yet