Skip to content

Instantly share code, notes, and snippets.

@kanguki
Last active September 14, 2022 01:34
Show Gist options
  • Save kanguki/b21fdf7a06a080b40a7faaadfce6e194 to your computer and use it in GitHub Desktop.
Save kanguki/b21fdf7a06a080b40a7faaadfce6e194 to your computer and use it in GitHub Desktop.
so I switch to a new pc~
cat << "EOF"
_ _ _
| | | | (_)
___ ___| |_| |_ _ _ __ __ _ _ _ _ __
/ __|/ _ \ __| __| | '_ \ / _` | | | | | '_ \
\__ \ __/ |_| |_| | | | | (_| | | |_| | |_) |
|___/\___|\__|\__|_|_| |_|\__, | \__,_| .__/
__/ | | |
|___/ |_|
EOF
sudo ls
echo "*****************change hostname to mo*********************"
sudo hostname mo
sudo echo "127.0.0.1 mo" >> /etc/hosts
sudo echo mo > /etc/hostname
sudo apt update
echo "*****************git*********************"
yes | sudo apt --yes install git git-flow curl
eval "$(ssh-agent -s)"
read -p "Enter an email to generate ssh-key: " -a emails
for e in ${emails[@]}
do
private_key=$HOME/.ssh/${e%@*}_rsa
echo $private_key | ssh-keygen -t rsa -C "$e"
ssh-add $private_key
done
echo "*****************node npm nvm*********************"
yes | sudo apt install nodejs npm
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
echo 'export NVM_DIR="$HOME/.nvm"\n[ --s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm\n[ --s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"\n' >> ~/.bashrc
nvm install 14.16.1
nvm use --default 14.16.1
echo "*****************vienamese*********************"
yes | sudo add-apt-repository ppa:bamboo-engine/ibus-bamboo
yes | sudo apt-get update
yes | sudo apt-get install ibus-bamboo
ibus restart
notify-send "open Settings > Region & Language and add more languages"
yes | sudo apt install gnome-control-center && gnome-control-center &
echo "*****************docker*********************"
#echo "*******setup repo*******"
yes | sudo apt-get -y update
yes | sudo apt-get -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#echo "****** install docker*********"
yes | sudo apt-get -y update
yes | sudo apt-get install -y docker-ce docker-ce-cli containerd.io
#sudo systemctl status docker
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
echo "*****************vim*********************"
yes | sudo apt install vim vim-gtk3
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
curl https://gist.githubusercontent.com/kanguki/f955f87e2f1e898f677db09331b754b3/raw/795f51e0f0749eb562c675c63a95e254327547ee/vimrc.txt > ~/.vimrc
vim -c PlugInstall -c q -c q & #execute PlugInstall then quit
echo "*****************gvm*********************"
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
go version
source ~/.bashrc
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
#gvm install go1.16 && gvm use go1.16 --default
yes | sudo apt install graphviz #used for go tool
echo "*****************mongo-compass*********************"
wget https://downloads.mongodb.com/compass/mongodb-compass_1.31.3_amd64.deb
yes | sudo dpkg -i mongodb-compass_1.31.3_amd64.deb
echo "*****************vscode*********************"
sudo snap install --classic code
echo "*****************google-chrome*********************"
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
yes | sudo dpkg -i google-chrome-stable_current_amd64.deb
echo "*****************kind kubectl k8slens helm*********************"
#kind
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/bin
#kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
yes | sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
#k8slens
wget https://api.k8slens.dev/binaries/Lens-5.5.1-latest.20220526.1.amd64.deb
yes | sudo dpkg -i Lens-5.5.1-latest.20220526.1.amd64.deb
#helm
wget https://get.helm.sh/helm-v3.9.0-linux-amd64.tar.gz
tar -zxvf helm-v3.9.0-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
#--depricated way to install helm:
#curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
#sudo apt-get install apt-transport-https --yes
#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
#yes | sudo apt-get update
#yes | sudo apt-get install helm
echo "*****************mysql*********************"
yes | sudo apt-get install mysql-server mysql-common mysql-client
sudo snap install mysql-workbench-community
echo "*****************psql*********************"
docker network create -d bridge pg
docker run --network pg -v postgres:/var/lib/postgresql/data --name pg -p 5432:5432 -e POSTGRES_PASSWORD=root -e POSTGRES_USER=root -d postgres
docker run --network pg -p 5050:80 --name pgad -e PGADMIN_DEFAULT_EMAIL=kanguki2381@gmail.com -e PGADMIN_DEFAULT_PASSWORD=root -d dpage/pgadmin4
echo "*****************scylladb*********************"
docker run --name scylla \
--volume /var/lib/scylla:/var/lib/scylla \
-p 9042:9042 -p 7000:7000 -p 7001:7001 -p 7199:7199 \
-p 9160:9160 -p 9180:9180 -p 10000:10000 \
-d scylladb/scylla --overprovisioned 1
echo "*****************team-viewer*********************"
sudo dpkg --add-architecture i386
wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb -O teamviewer_amd64.deb
yes | sudo dpkg -i teamviewer_amd64.deb
yes | sudo apt install -f
echo "*****************teams*********************"
wget https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_1.5.00.10453_amd64.deb
yes | sudo dpkg -i teams_1.5.00.10453_amd64.deb
echo "*****************other utilities*********************"
yes | sudo apt install at xclip jq tmux ranger
curl https://gist.githubusercontent.com/kanguki/fd9a16b07b414c802bf5d3e1c9f428a9/raw/81305f90990bd380011f324a242b4cd6704ca7d5/tmuxconfig > ~/.tmux.conf
#simplescreenrecorder
yes | sudo apt-add-repository ppa:maarten-baert/simplescreenrecorder
yes | sudo apt-get install simplescreenrecorder
yes | sudo apt autoremove
yes | sudo apt-get install fio #to check disk io. https://support.binarylane.com.au/support/solutions/articles/1000055889-how-to-benchmark-disk-i-o
sudo apt install indicator-multiload && notify-send "need to log out and log in again to see indicator bar"
echo "*****************telepresence*********************"
sudo curl -fL https://app.getambassador.io/download/tel2/linux/amd64/latest/telepresence -o /usr/local/bin/telepresence
sudo chmod a+x /usr/local/bin/telepresence
read -p "enter your telepresence key here: (if u lost it, visit https://app.getambassador.io/cloud/settings/api-keys to create a new one)" telepresenceKey
telepresence login --apikey $telepresenceKey
telepresence connect
echo "*****************tableplus*********************"
sudo apt install software-properties-common
wget -qO - https://deb.tableplus.com/apt.tableplus.com.gpg.key | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://deb.tableplus.com/debian/22 tableplus main"
sudo apt update
sudo apt install tableplus
tee -a ~/.bashrc <<EOF
alias docker='sudo docker'
dkex() { cd && u/dkex "$1"; }
export -f dkex
cop() { $HOME/u/scp-to $1;}
export -f cop
vao() { $HOME/u/ssh-to $1;}
export -f vao
vaol() { $HOME/u/ssh-directly-to $1;}
export -f vaol
res(){ cd && u/restart.sh "$1"; }
export -f res
oi() { telnet "$1" "$2"; }
export -f oi
upkafka(){ cd && u/upkafka ; }
export -f upkafka
dkux(){ docker exec -u root -it -w / "$1" bash;}
export -f dkux
gcm(){
git commit -m"$1";
}
export -f gcm
greppol(){
if [[ -z $2 ]]
then
grep -Eo ".{0,200}$1.{0,200}" | grep "$1"
else
grep -Eo ".{0,$2}$1.{0,$2}" | grep "$1"
fi
}
export greppol
grepo(){
str="";
for var in $@
do
str+="$var|"
done
str=${str%|}
grep -Ei $str
}
export -f grepo
agrep(){
if [[ -z $2 ]]
then
grep -Eo "$1.{0,200}" | grep "$1"
else
grep -Eo "$1.{0,$2}" | grep "$1"
fi
}
export -f agrep
bgrep(){
if [[ -z $2 ]]
then
grep -Eo ".{0,200}$1" | grep "$1"
else
grep -Eo ".{0,$2}$1" | grep "$1"
fi
}
export -f bgrep
cop(){ xclip -sel c < "$1"; }
export -f cop
scan(){
if [[ -z $2 ]]
then
nmap $1
else
nmap $1 -p $2
fi
}
export -f scan
ttd(){ #timestamp to date
date --date @"$1";
}
export -f ttd
dirgrep(){
if [[ -z $2 ]]
then
find . -type f -exec grep $1 {} \;
else
str="";
for var in $@
do
str+="$var "
done
str=${str% }
find . -type f -exec echo {} \; -exec grep $str {} \;
fi
}
dbtt(){
if [[ -z $1 ]]
then
curl http://wttr.in/hanoi
else
curl http://wttr.in/$1
fi
}
export -f dbtt
trim() {
local var="$*"
# remove leading whitespace characters
var="${var#"${var%%[![:space:]]*}"}"
# remove trailing whitespace characters
var="${var%"${var##*[![:space:]]}"}"
printf '%s' "$var"
}
mem()
{
ps -eo rss,pid,euser,args:100 --sort %mem | grep -v grep | grep -i $@ | awk '{printf $1/1024 "MB"; $1=""; print }'
}
export -f mem
dpm(){ podman run --rm -it --pid=container:$1 --name salpine salpine /bin/sh ; } #debug podman: run a podman container that can trace container $1
export -f dpm
difo() { #diff output
diff <($1) <($2); #<() treats process output like a file. no more temp file!
}
export -f difo
brc(){ #build and run c
gcc $1 -o out -lm && ./out
}
export -f brc
tracy() {
docker run --name tracee --rm -it --pid=host --cgroupns=host --privileged -v /etc/os-release:/etc/os-release-host:ro -e LIBBPFGO_OSRELEASE_FILE=/etc/os-release-host -v /usr/src:/usr/src:ro -v /lib/modules:/lib/modules:ro -v /tmp/tracee:/tmp/tracee:rw -e TRACEE_EBPF_ONLY=1 aquasec/tracee:full-0.7.0 --trace pid=$1 ;
}
export -f tracy
alias e='exit'
alias ide='snap run intellij-idea-community &'
alias dll='mvn spring-boot:run'
alias dlll='mvn spring-boot:run -Dspring-boot.run.profiles=local' #run application-local.yml
alias gad='git add '
alias gal='git add .'
alias gam='git add . && git commit -m'
alias xem='vi ~/.bashrc'
alias xong='source ~/.bashrc'
alias cls='clear'
alias dk='docker'
alias dkps='docker ps'
alias dkpa='docker ps -a'
alias dkst='docker start '
alias dkrs='docker restart -t 0 '
alias xemlogmysql='sudo less /var/log/mysql/mysql.log'
alias taillogmysql='sudo tail -f /var/log/mysql/mysql.log -n '
alias tatx="nmcli con down 'vpn'"
alias batx="nmcli con up 'vpn'"
alias mora='xdg-open .'
alias nrb='npm run build-local'
alias c='xclip'
alias v='xclip -o'
alias xe='xclip -sel c < '
alias intellij='intellij-idea-community'
alias suatmuxconf='sudo vi ~/.tmux.conf'
alias scannc='netcat -zv localhost 1-10000 2>&1 | grep succeeded'
#alias grepor='grep -Ei '
alias nrbtim='nrb 2>&1 | grepor '
alias jsfm='python -m json.tool'
alias reloadtmux='tmux source-file ~/.tmux.conf'
alias suavimrc='vi ~/.vimrc'
alias suadoc='vi $HOME/MoRepo/dotfiles/doc-config'
alias suaref='vi $HOME/MoRepo/dotfiles/doc/reference'
alias suatil='vi $HOME/MoRepo/txt/todayILearn/README.md'
alias raomat='sudo ip route add 10.0.0.0/16 via 172.20.0.2'
alias ipinfo='curl ipinfo.io'
alias cps='echo word | xclip -selection clipboard'
alias delFR=' find src -regex "$1" -type f -exec rm -f {} \;' #delete files by regex
alias batmat='tatx && raomat'
alias xemmysqlpw='grep MYSQL_ROOT_PASSWORD ~/NodeRepo/deployment -ri'
alias d1s='date +"%m/%d/%Y %r"' #date format to check in onesignal
alias s2='vimdiff <(echo "") <(echo "")'
alias nmgo='{ echo "package main" ; echo "func main() {"; echo ; echo "}"; } > main.go ; vi main.go' #new main go
alias newminego='git clone --depth=1 --branch=template git@github.com:kanguki/otp.git && mv otp/* . && rm -rf otp && rm log.go && go mod tidy'
alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro assaflavie/runlike"
#alias trace="docker run --name tracee --rm -it --pid=host --cgroupns=host --privileged -v /etc/os-release:/etc/os-release-host:ro -e LIBBPFGO_OSRELEASE_FILE=/etc/os-release-host -v /usr/src:/usr/src:ro -v /lib/modules:/lib/modules:ro -v /tmp/tracee:/tmp/tracee:rw -e TRACEE_EBPF_ONLY=1 aquasec/tracee:full-0.7.0 --trace "
#runlike alternative: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nexdrew/rekcod <container-name>
alias bcclist='ls /usr/share/bcc/tools'
export SSLKEYLOGFILE=~/.ssl-key.log
alias mvnx='sudo mvn org.springframework.boot:spring-boot-maven-plugin:run'
#simpleproxy -d -L 1234 -R 172.20.1.1:3306
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
source <(plz --completion_script)
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
export PYTHON=/usr/bin/python2.7
export GOPATH="$HOME/go"
export GOBIN="$GOPATH/bin"
export PATH=$PATH:/usr/local/go/bin:$HOME/.cargo/bin:/root/.cargo/bin:$HOME/.poetry/bin:$GOBIN:$HOME/snap/flutter/common/flutter/bin
export GO111MODULE="on"
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
alias py='/usr/bin/python3'
source <(kubectl completion bash)
alias k=kubectl
complete -F __start_kubectl k
export PATH=/usr/share/bcc/tools:/usr/share/bcc/examples:$HOME/.sdkman/candidates/java/current/bin:$HOME/.pyenv/bin:$HOME/.gvm/bin:$HOME/.gvm/bin:$HOME/.nvm/versions/node/v14.16.1/bin:$HOME/.poetry/bin:$HOME/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$HOME/go:/usr/lib/dart/bin:$HOME/.fzf/bin:/usr/local/go/bin:$HOME/.cargo/bin:/root/.cargo/bin:$HOME/.poetry/bin:$HOME/go/bin:$HOME/snap/flutter/common/flutter/bin
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment