Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@nicolasramy
Last active October 9, 2021 08:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicolasramy/d06e544104af4619e82d to your computer and use it in GitHub Desktop.
Save nicolasramy/d06e544104af4619e82d to your computer and use it in GitHub Desktop.
Ubuntu 20.04 LTS - Developer Set Up

Ubuntu 20.04 - Developer Set Up

Recommended

Docker Compose

sudo python3 -m pip install --upgrade docker-compose

Better shell history

sudo add-apt-repository ppa:ultradvorka/ppa
sudo apt-get update
sudo apt-get install hstr
hstr --show-configuration >> ~/.bashrc
source ~/.bashrc

Better Git display

git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt
echo "source ~/.bash-git-prompt/gitprompt.sh" >> ~/.bashrc

Terminal colors

git clone https://github.com/chriskempson/base16-gnome-terminal.git ~/.config/base16-gnome-terminal
source ...

To validate usage

Mesure cp, mv

git clone https://github.com/Xfennec/cv.git
cd cv
sudo apt-get install libncurses5-dev
sudo make && sudo make install

Autoenv

sudo -H pip install autoenv

Extra git commands

sudo apt-get update
sudo apt-get install git-extras

Enhance find

curl -L https://raw.github.com/rauchg/spot/master/spot.sh -o ~/bin/spot
chmod +x ~/bin/spot
#!/bin/bash
#
# Bash Functions
#
# Generate MD5 of passed parameter
#
# $ md5 test
# 098f6bcd4621d373cade4e832627b4f6
#
md5() {
echo -n $1 | md5sum | cut -d" " -f1
}
# Generate SHA1 of passed parameter
#
# $ sha1 test
# a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
#
sha1() {
echo -n $1 | sha1sum | cut -d" " -f1
}
# Generate SHA256 of passed parameter
#
# $ sha256 test
# 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
#
sha256() {
echo -n $1 | sha256sum | cut -d" " -f1
}
# Generate SHA512 of passed parameter
#
# $ sha512 test
# ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
#
sha512() {
echo -n $1 | sha512sum | cut -d" " -f1
}
#
# Retrieve external IP
#
# $ myip
# xx.xx.xxx.xxx
#
myip() {
curl ifconfig.me
}
#
# Return current datetime
#
# $ curdate
# 2014-07-21 15:25:04
#
curdate() {
date +'%Y-%m-%d %H:%M:%S'
}
#
# Return current date mark
#
# $ datetime-mark
# 20140721
#
date-mark() {
date +'%Y%m%d'
}
#
# Return current datetime mark
#
# $ datetime-mark
# 2014-07-21 15:25:04
#
datetime-mark() {
date +'%Y%m%d%H%M%S'
}
use-env() {
export $( cat $1 | xargs)
}
#
# Extract random lines from a source file
#
# $ randomize-file input.file 100 > output.file
#
randomize-file() {
cat $1 | shuf | head -n $2
}
#
# Kill a processus based on its name
# !! BE EXTREMLY CAREFUL WHEN USED!!
#
# $ fkill zombie_script.py
#
fkill() {
ps -ef | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9
}
psef() {
ps -ef | grep $1
}
#
# Docker
#
dockerfile-linter() {
docker run \
--rm \
-v $1:/dockerfilelinter/Dockerfile \
petitnuage/dockerfile-linter:latest \
linter \
-i EC0001,EF0004,ER0001,ER0007,ER0012 \
-f Dockerfile
}
dockerfilelinter() {
docker run \
--rm \
-v "$PWD"/"$1":/dockerfilelinter/Dockerfile petitnuage/dockerfile-linter:latest \
linter \
-i EC0001,EC0002,EF0004,ER0001,ER0007,ER0012 \
-f Dockerfile
}
docker-restart() {
docker stop $1 && docker start $1
}
docker-remove() {
docker stop $1 && docker rm $1
}
docker-ip() {
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1
}
git-user-config() {
if [ $# -ge 2 ]; then
USERNAME=${@:1:$(($#-1))}
EMAIL=${!#}
else
echo "Invalid input"
return 1
fi
echo "Set $USERNAME as username and $EMAIL as email?"
OPTIONS="Yes No"
select option in $OPTIONS; do
if [ "$option" = "No" ]; then
return 1
elif [ "$option" = "Yes" ]; then
git config user.name "$USERNAME"
git config user.email "$EMAIL"
return 0
else
echo "Option not recognized"
fi
done
}
#
# Django
#
django_secret_key() {
SECRET_KEY=`tr -dc 'a-z0-9!@%^*-_=+' < /dev/urandom | head -c50`
echo "$SECRET_KEY"
}
#
# Kubernetes
#
k8s() {
if [[ -f "$HOME/.kube/$1-$2-$3.yml" ]]; then
kubectl --kubeconfig=$HOME/.kube/$1-$2-$3.yml ${@:4}
else
echo "invalid configuration selected"
fi
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment