.bash_aliases
2021-05-06 / 2024-11-20 | ||
Tipps&Trick für .bash_aliases die ich in meine Linux-Systemen verwende!
#Variable zum unterscheiden um welches OS-System es sich handelt um spezifische Befehle auszuführen.
#Das Prinzip könnte aber z.B. auch mit Hostname durchgeführt werden.
OS=$(lsb_release -si)
#Apt/Pamac
function update {
if [[ $OS == *"Manjaro"* ]]; then
sudo pamac update && flatpak update
else
sudo apt update && sudo apt dist-upgrade && sudo apt autoremove && flatpak update
fi
}
#Fragen ob apt/pamac oder flatpak?
function install {
if [[ $OS == *"Manjaro"* ]]; then
sudo pamac install $@
else
sudo apt install $@
fi
}
function search {
if [[ $OS == *"Manjaro"* ]]; then
pamac search $@ && echo '' && echo '--------' && echo '' && flatpak search $@
else
apt search $@ && echo '--------' && echo '' && flatpak search $@
fi
}
#Verzeichnis auflisten
alias ll='ls -lh'
alias lla='ls -lha'
#Copy
alias cpb='cp --backup=numbered'
#Größe von Verzeichnissen ermitteln
alias dux='du -hs *'
alias duxa='du -hs .[!.]* *'
# -h = Dynamische Göße in K/M/G
# -s = Rekursiv die Summe des Verzeichnisses (Fehlt der Parameter wird jeder Unterordner einzeln gelistet)
# * jedes Verzeichnis einzeln in diesem Ordner
# .[!.]* hiddenfiles
#Verzeichnis
alias cd..='cd ..'
alias ~='cd ~'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'
alias .......='cd ../../../../../..'
alias ........='cd ../../../../../../..'
alias .........='cd ../../../../../../../..'
#Sudo
alias fuck='sudo $(fc -ln -1)' #letzten Befehl als Sudo
alias _='sudo'
#Clear
alias c='clear'
alias cls='clear'
#Taskmanager | falls htop nicht griffbereit
alias psm='ps -AF'
alias ps?='ps -AF | grep' #Suchbegriff
#History
alias ?='history | grep' #Suchbegriff
alias ?x='history -d' #Zeilennummer löschen
#GO
alias goupdate='sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go*.linux-amd64.tar.gz'
# Docker
alias d='docker'
alias dimg='docker images'
alias dps='docker ps'
alias dpsa='docker ps -a'
alias drun='docker run -d --name'
alias dk='docker kill'
alias dlog='docker logs'
alias drm='docker rm'
alias drmi='docker rmi'
alias dbui='docker build . -t'
#kubectl
alias kc='kubectl'
alias kca='kc apply -f ' #yaml-file
#minikube
function mykube {
minikube start --cni calico
# Bei der Erstinstallation Addons Aktivieren...
minikube addons enable metrics-server
minikube addons enable registry
# Sleep vor Push notwendig!
for i in {0..99}; do
if [ $i -lt 10 ]; then echo -ne 'wait a µ for next ... '$i'%\r'; else echo -ne 'wait a µ for next ... '$i'%\r'; fi
sleep 0.3s
done
echo 'wait a µ for next ... 100%'
minikube dashboard --port 33333 --url &
# = http://127.0.0.1:33333/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/workloads?namespace=default
# Push Images
docker push 192.168.49.2:5000/js-motd-kubernetes-example
docker push 192.168.49.2:5000/ubuntu-bash
}
alias majortom='mykube'
alias apollo13='minikube stop'
#Copilot
alias gh?='gh copilot suggest'
alias gh!='gh copilot explain'
alias ghu='gh extension upgrade gh-copilot'
#SSH Connect
function m~ssh {
mkdir -p /tmp/mssh/
sshfs -o idmap=user $1:/home/mani /tmp/mssh/
cp -f ~/.bash_aliases /tmp/mssh/
cp -f ~/.blerc /tmp/mssh/
cp -f ~/.bash_it/themes/m~/m~.theme.bash /tmp/mssh/.bash_it/themes/m~/
fusermount -u /tmp/mssh/
#title
echo -en "\033]0;$2 : $1\007"
ssh $1
}
alias <alias>='m~ssh <IP>'
#SSHFS
#ein Verzeichnis
alias mnt='sshfs -o idmap=user <ip>:<path> ~/<folder>'
alias umnt='fusermount -u ~/<folder>'
#mehrere Verzeichnisse besser in einer Funktion, so können Fehler leichter identifziert werden und führt nicht zum abbruch, wie wenn es per && verknüpft ist.
function wnt {
sshfs -o idmap=user <ip>:<path> ~/<folder>
sshfs -o idmap=user <ip>:<path> ~/<folder>
}
function uwnt {
fusermount -u ~/<folder>
fusermount -u -z ~/<folder> # < -z für lazy mode, d.h. wenn "ressource busy" kann trotzdem ein umount gemacht werden und führt nicht zu einem stehendem System!
}
function m~sshfs {
mkdir ~/tmp-mnt &>/dev/null
fusermount -u ~/tmp-mnt &>/dev/null
sshfs -o idmap=user $1:/$2 ~/tmp-mnt
}
alias <alias>='m~sshfs <IP>'
#
alias umntt='fusermount -u ~/tmp-mnt'
# Backup
function cat_largest_logfile {
local dir=${1:-.} # Standardmäßig aktuelles Verzeichnis, wenn kein Argument übergeben wird
local largest_file=$(find "$dir" -type f -exec ls -s {} + | sort -n -r | head -n 1 | awk '{print $2}')
if [[ -n "$largest_file" ]]; then
echo "Log: $largest_file"
cat "$largest_file"
else
echo "Keine Dateien im Verzeichnis gefunden."
fi
}
alias backuplog='cat_largest_logfile /tmp/Backup-Log/'
alias nanobackup='sudo nano /usr/local/bin/Backup.sh'
#Taschenrechner
alias calc='gnome-calculator&'
#Rechte auf/für www-data
#Optional kann ein Ordner übergeben werden....
function fight { # for your rights... ;-)
if [[ $OS == *"Manjaro"* ]]; then
sudo chown -R http:http /srv/http/$1 && sudo chmod -R 775 /srv/http/$1
else
sudo chown -R www-data:www-data /var/www/html/$1 && sudo chmod -R 775 /var/www/html/$1
fi
}
#Bash-it
alias bashitfix='sed -i "s/en_US/en_GB/g" /home/mani/.bash_it/lib/command_duration.bash'
alias bashitunfix='sed -i "s/en_GB/en_EN/g" /home/mani/.bash_it/lib/command_duration.bash'
#Radio
alias radiostart='mpc stop && sudo service radio start'
alias radiorestart='mpc stop && sudo service radio restart'
alias radiostop='mpc stop && sudo service radio stop'
#mailcow
alias mailcowup='sudo docker compose -f /opt/mailcow-dockerized/docker-compose.yml up -d'
alias mailcowdown='sudo docker compose -f /opt/mailcow-dockerized/docker-compose.yml down'
alias mailcowupdate='cd /opt/mailcow-dockerized && sudo ./update.sh'